# HG changeset patch # User Christian Brabandt # Date 1488656705 -3600 # Node ID eb3a2ff3309a2dacab3dac615d8f1676132c9c89 # Parent b715ec9baadc00ca60e5743e161fad52c2e1d9ef patch 8.0.0411: menu translations don't match when case is changed. commit https://github.com/vim/vim/commit/11dd8c1201033dd74e2ea665ba277425b4b965b0 Author: Bram Moolenaar 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. diff --git a/src/menu.c b/src/menu.c --- 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 --- 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 --- 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,