1
0
forked from aniani/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.
This commit is contained in:
Bram Moolenaar
2017-03-04 20:41:34 +01:00
parent a54d2fc0d3
commit 11dd8c1201
3 changed files with 24 additions and 2 deletions

View File

@@ -2455,7 +2455,7 @@ menutrans_lookup(char_u *name, int len)
char_u *dname; char_u *dname;
for (i = 0; i < menutrans_ga.ga_len; ++i) 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; return tp[i].to;
/* Now try again while ignoring '&' characters. */ /* Now try again while ignoring '&' characters. */
@@ -2466,7 +2466,7 @@ menutrans_lookup(char_u *name, int len)
if (dname != NULL) if (dname != NULL)
{ {
for (i = 0; i < menutrans_ga.ga_len; ++i) 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); vim_free(dname);
return tp[i].to; return tp[i].to;

View File

@@ -1,9 +1,29 @@
" Test that the system menu can be loaded. " Test that the system menu can be loaded.
if !has('menu')
finish
endif
func Test_load_menu() func Test_load_menu()
try try
source $VIMRUNTIME/menu.vim source $VIMRUNTIME/menu.vim
catch catch
call assert_false(1, 'error while loading menus: ' . v:exception) call assert_false(1, 'error while loading menus: ' . v:exception)
endtry 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 endfunc

View File

@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
411,
/**/ /**/
410, 410,
/**/ /**/