aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-01-26 08:38:43 -0500
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-01-26 08:43:57 -0500
commit1338702b2b4bac918159d9f8e571aff1ea7c626c (patch)
treec4d19486811ce98a3ffba4d1e6772717cb58d110 /src
parentec5a4d862d71729569acf4afac4c371a09edc314 (diff)
downloadrneovim-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.c4
-rw-r--r--src/nvim/testdir/test_menu.vim20
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