Mercurial > vim
changeset 11044:eb3a2ff3309a v8.0.0411
patch 8.0.0411: menu translations don't match when case is changed.
commit https://github.com/vim/vim/commit/11dd8c1201033dd74e2ea665ba277425b4b965b0
Author: Bram Moolenaar <Bram@vim.org>
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.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 04 Mar 2017 20:45:05 +0100 |
parents | b715ec9baadc |
children | 2414a0d2e176 |
files | src/menu.c src/testdir/test_menu.vim src/version.c |
diffstat | 3 files changed, 24 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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;
--- 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