From: Bram Moolenaar Date: Sat, 4 Mar 2017 19:41:34 +0000 (+0100) Subject: patch 8.0.0411: menu translations don't match when case is changed. X-Git-Tag: v8.0.0411 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=11dd8c1201033dd74e2ea665ba277425b4b965b0;p=vim 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. --- diff --git a/src/menu.c b/src/menu.c index d4ee45b42..05a229b45 100644 --- 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; diff --git a/src/testdir/test_menu.vim b/src/testdir/test_menu.vim index be559467c..8fdaa1f98 100644 --- 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 diff --git a/src/version.c b/src/version.c index 1020bf964..5db9f66f2 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 411, /**/ 410, /**/