diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-01-26 08:38:43 -0500 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-01-26 08:43:57 -0500 |
commit | 1338702b2b4bac918159d9f8e571aff1ea7c626c (patch) | |
tree | c4d19486811ce98a3ffba4d1e6772717cb58d110 /src | |
parent | ec5a4d862d71729569acf4afac4c371a09edc314 (diff) | |
download | rneovim-1338702b2b4bac918159d9f8e571aff1ea7c626c.tar.gz rneovim-1338702b2b4bac918159d9f8e571aff1ea7c626c.tar.bz2 rneovim-1338702b2b4bac918159d9f8e571aff1ea7c626c.zip |
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.
https://github.com/vim/vim/commit/11dd8c1201033dd74e2ea665ba277425b4b965b0
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/menu.c | 4 | ||||
-rw-r--r-- | src/nvim/testdir/test_menu.vim | 20 |
2 files changed, 22 insertions, 2 deletions
diff --git a/src/nvim/menu.c b/src/nvim/menu.c index 1c54db10eb..074feb9906 100644 --- a/src/nvim/menu.c +++ b/src/nvim/menu.c @@ -1520,7 +1520,7 @@ static char_u *menutrans_lookup(char_u *name, int len) char_u *dname; for (int 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; } } @@ -1531,7 +1531,7 @@ static char_u *menutrans_lookup(char_u *name, int len) dname = menu_text(name, NULL, NULL); name[len] = c; for (int i = 0; i < menutrans_ga.ga_len; i++) { - if (STRCMP(dname, tp[i].from_noamp) == 0) { + if (STRICMP(dname, tp[i].from_noamp) == 0) { xfree(dname); return tp[i].to; } diff --git a/src/nvim/testdir/test_menu.vim b/src/nvim/testdir/test_menu.vim index af18760065..60da6be158 100644 --- a/src/nvim/testdir/test_menu.vim +++ b/src/nvim/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_report('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 |