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);