diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-03-04 20:41:34 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-03-04 20:41:34 +0100 |
commit | 11dd8c1201033dd74e2ea665ba277425b4b965b0 (patch) | |
tree | db01122d72935924ffb9f1c664419c5ff7537c21 /src | |
parent | a54d2fc0d3ec7c4c8ca99b91e2ff7f7fee45c8bd (diff) | |
download | vim-git-11dd8c1201033dd74e2ea665ba277425b4b965b0.tar.gz |
patch 8.0.0411: menu translations don't match when case is changed.v8.0.0411
Problem: We can't change the case in menu entries, it breaks translations.
Solution: Ignore case when looking up a menu translation.
Diffstat (limited to 'src')
-rw-r--r-- | src/menu.c | 4 | ||||
-rw-r--r-- | src/testdir/test_menu.vim | 20 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 24 insertions, 2 deletions
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 @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 411, +/**/ 410, /**/ 409, |