]> granicus.if.org Git - vim/commitdiff
patch 8.0.0411: menu translations don't match when case is changed. v8.0.0411
authorBram Moolenaar <Bram@vim.org>
Sat, 4 Mar 2017 19:41:34 +0000 (20:41 +0100)
committerBram Moolenaar <Bram@vim.org>
Sat, 4 Mar 2017 19:41:34 +0000 (20:41 +0100)
Problem:    We can't change the case in menu entries, it breaks translations.
Solution:   Ignore case when looking up a menu translation.

src/menu.c
src/testdir/test_menu.vim
src/version.c

index d4ee45b423f64908965b5210c9669ea352d867d5..05a229b45582829746d923fcde393929165486d6 100644 (file)
@@ -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;
index be559467c805d6f6986f57c1b99dc014797282e0..8fdaa1f98c7db4a68c183ec68ce1c71a000a9c10 100644 (file)
@@ -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
index 1020bf96454a96461537810ec0e702e640491135..5db9f66f2dae6226d3932f9473d963686cd8d36e 100644 (file)
@@ -764,6 +764,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    411,
 /**/
     410,
 /**/