summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-03-04 20:41:34 +0100
committerBram Moolenaar <Bram@vim.org>2017-03-04 20:41:34 +0100
commit11dd8c1201033dd74e2ea665ba277425b4b965b0 (patch)
treedb01122d72935924ffb9f1c664419c5ff7537c21
parenta54d2fc0d3ec7c4c8ca99b91e2ff7f7fee45c8bd (diff)
downloadvim-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.
-rw-r--r--src/menu.c4
-rw-r--r--src/testdir/test_menu.vim20
-rw-r--r--src/version.c2
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,