Mercurial > vim
comparison src/menu.c @ 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 | 4aead6a9b7a9 |
children | 506f5d8b7d8b |
comparison
equal
deleted
inserted
replaced
11043:b715ec9baadc | 11044:eb3a2ff3309a |
---|---|
2453 menutrans_T *tp = (menutrans_T *)menutrans_ga.ga_data; | 2453 menutrans_T *tp = (menutrans_T *)menutrans_ga.ga_data; |
2454 int i; | 2454 int i; |
2455 char_u *dname; | 2455 char_u *dname; |
2456 | 2456 |
2457 for (i = 0; i < menutrans_ga.ga_len; ++i) | 2457 for (i = 0; i < menutrans_ga.ga_len; ++i) |
2458 if (STRNCMP(name, tp[i].from, len) == 0 && tp[i].from[len] == NUL) | 2458 if (STRNICMP(name, tp[i].from, len) == 0 && tp[i].from[len] == NUL) |
2459 return tp[i].to; | 2459 return tp[i].to; |
2460 | 2460 |
2461 /* Now try again while ignoring '&' characters. */ | 2461 /* Now try again while ignoring '&' characters. */ |
2462 i = name[len]; | 2462 i = name[len]; |
2463 name[len] = NUL; | 2463 name[len] = NUL; |
2464 dname = menu_text(name, NULL, NULL); | 2464 dname = menu_text(name, NULL, NULL); |
2465 name[len] = i; | 2465 name[len] = i; |
2466 if (dname != NULL) | 2466 if (dname != NULL) |
2467 { | 2467 { |
2468 for (i = 0; i < menutrans_ga.ga_len; ++i) | 2468 for (i = 0; i < menutrans_ga.ga_len; ++i) |
2469 if (STRCMP(dname, tp[i].from_noamp) == 0) | 2469 if (STRICMP(dname, tp[i].from_noamp) == 0) |
2470 { | 2470 { |
2471 vim_free(dname); | 2471 vim_free(dname); |
2472 return tp[i].to; | 2472 return tp[i].to; |
2473 } | 2473 } |
2474 vim_free(dname); | 2474 vim_free(dname); |