From 1338702b2b4bac918159d9f8e571aff1ea7c626c Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sat, 26 Jan 2019 08:38:43 -0500 Subject: 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 --- src/nvim/menu.c | 4 ++-- src/nvim/testdir/test_menu.vim | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) (limited to 'src') 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 -- cgit From 64f91fa1fd426a7187b5b51b4841f121071554fe Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sat, 26 Jan 2019 08:44:16 -0500 Subject: vim-patch:8.0.0412: menu test fails on MS-Windows Problem: Menu test fails on MS-Windows. Solution: Use a menu entry with only ASCII characters. https://github.com/vim/vim/commit/5558d19432120696409c007c64d5ba52eed42670 --- src/nvim/testdir/test_menu.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/testdir/test_menu.vim b/src/nvim/testdir/test_menu.vim index 60da6be158..5f84c622ab 100644 --- a/src/nvim/testdir/test_menu.vim +++ b/src/nvim/testdir/test_menu.vim @@ -23,7 +23,7 @@ func Test_translate_menu() set langmenu=de_de source $VIMRUNTIME/menu.vim - call assert_match(':browse tabnew', execute(':menu File.In\ neuem\ Tab\ öffnen\.\.\.')) + call assert_match('browse confirm w', execute(':menu Datei.Speichern')) source $VIMRUNTIME/delmenu.vim endfunc -- cgit