changeset 11702:48a95b916781 v8.0.0734

patch 8.0.0734: the script to check translations can be improved commit https://github.com/vim/vim/commit/7f93703149a46980f1588ff6b819f52e13084141 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jul 19 14:34:42 2017 +0200 patch 8.0.0734: the script to check translations can be improved Problem: The script to check translations can be improved. Solution: Restore the view when no errors are found. Check for matching line break at the end of the message. (Christian Brabandt)
author Christian Brabandt <cb@256bit.org>
date Wed, 19 Jul 2017 14:45:03 +0200
parents efe89fc3014d
children 3257a589d5f5
files src/po/check.vim src/version.c
diffstat 2 files changed, 39 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/po/check.vim
+++ b/src/po/check.vim
@@ -35,6 +35,7 @@ let s:save_wrapscan = &wrapscan
 set nowrapscan
 
 " Start at the first "msgid" line.
+let wsv = winsaveview()
 1
 /^msgid\>
 
@@ -110,7 +111,43 @@ if search('msgid "\("\n"\)\?\([EW][0-9]\
   endif
 endif
 
+func! CountNl(first, last)
+  let nl = 0
+  for lnum in range(a:first, a:last)
+    if getline(lnum) =~ '\\n'
+      let nl += 1
+    endif
+  endfor
+  return nl
+endfunc
+
+" Check that the \n at the end of the msid line is also present in the msgstr
+" line.  Skip over the header.
+/^"MIME-Version:
+while 1
+  let lnum = search('^msgid\>')
+  if lnum <= 0
+    break
+  endif
+  let strlnum = search('^msgstr\>')
+  let end = search('^$')
+  if end <= 0
+    let end = line('$') + 1
+  endif
+  let origcount = CountNl(lnum, strlnum - 1)
+  let transcount = CountNl(strlnum, end - 1)
+  " Allow for a few more or less line breaks when there are 2 or more
+  if origcount != transcount && (origcount <= 2 || transcount <= 2)
+    echomsg 'Mismatching "\\n" in line ' . line('.')
+    if error == 0
+      let error = lnum
+    endif
+  endif
+endwhile
+
 if error == 0
+  " If all was OK restore the view.
+  call winrestview(wsv)
   echomsg "OK"
 else
   exe error
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    734,
+/**/
     733,
 /**/
     732,