changeset 11044:eb3a2ff3309a v8.0.0411

patch 8.0.0411: menu translations don't match when case is changed. commit https://github.com/vim/vim/commit/11dd8c1201033dd74e2ea665ba277425b4b965b0 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 4 20:41:34 2017 +0100 patch 8.0.0411: menu translations don't match when case is changed. Problem: We can't change the case in menu entries, it breaks translations. Solution: Ignore case when looking up a menu translation.
author Christian Brabandt <cb@256bit.org>
date Sat, 04 Mar 2017 20:45:05 +0100
parents b715ec9baadc
children 2414a0d2e176
files src/menu.c src/testdir/test_menu.vim src/version.c
diffstat 3 files changed, 24 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/menu.c
+++ b/src/menu.c
@@ -2455,7 +2455,7 @@ menutrans_lookup(char_u *name, int len)
     char_u		*dname;
 
     for (i = 0; i < menutrans_ga.ga_len; ++i)
-	if (STRNCMP(name, tp[i].from, len) == 0 && tp[i].from[len] == NUL)
+	if (STRNICMP(name, tp[i].from, len) == 0 && tp[i].from[len] == NUL)
 	    return tp[i].to;
 
     /* Now try again while ignoring '&' characters. */
@@ -2466,7 +2466,7 @@ menutrans_lookup(char_u *name, int len)
     if (dname != NULL)
     {
 	for (i = 0; i < menutrans_ga.ga_len; ++i)
-	    if (STRCMP(dname, tp[i].from_noamp) == 0)
+	    if (STRICMP(dname, tp[i].from_noamp) == 0)
 	    {
 		vim_free(dname);
 		return tp[i].to;
--- a/src/testdir/test_menu.vim
+++ b/src/testdir/test_menu.vim
@@ -1,9 +1,29 @@
 " Test that the system menu can be loaded.
 
+if !has('menu')
+  finish
+endif
+
 func Test_load_menu()
   try
     source $VIMRUNTIME/menu.vim
   catch
     call assert_false(1, 'error while loading menus: ' . v:exception)
   endtry
+  source $VIMRUNTIME/delmenu.vim
 endfunc
+
+func Test_translate_menu()
+  if !has('multi_lang')
+    return
+  endif
+  if !filereadable($VIMRUNTIME . '/lang/menu_de_de.latin1.vim')
+    throw 'Skipped: translated menu not found'
+  endif
+
+  set langmenu=de_de
+  source $VIMRUNTIME/menu.vim
+  call assert_match(':browse tabnew', execute(':menu File.In\ neuem\ Tab\ öffnen\.\.\.'))
+
+  source $VIMRUNTIME/delmenu.vim
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    411,
+/**/
     410,
 /**/
     409,