diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 6 | ||||
-rw-r--r-- | src/menu.c | 9 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c index 276547bbc9..2a90cc3580 100644 --- a/src/main.c +++ b/src/main.c @@ -3606,11 +3606,11 @@ server_to_input_buf(str) * B set - backslashes are *not* treated specially * k set - keycodes are *not* reverse-engineered * < unset - <Key> sequences *are* interpreted - * The last parameter of replace_termcodes() is TRUE so that the <lt> - * sequence is recognised - needed for a real backslash. + * The last but one parameter of replace_termcodes() is TRUE so that the + * <lt> sequence is recognised - needed for a real backslash. */ p_cpo = (char_u *)"Bk"; - str = replace_termcodes((char_u *)str, &ptr, FALSE, TRUE); + str = replace_termcodes((char_u *)str, &ptr, FALSE, TRUE, FALSE); p_cpo = cpo_save; if (*ptr != NUL) /* trailing CTRL-V results in nothing */ diff --git a/src/menu.c b/src/menu.c index dac4754cda..96a535ff49 100644 --- a/src/menu.c +++ b/src/menu.c @@ -91,6 +91,7 @@ ex_menu(eap) char_u *map_to; int noremap; int silent = FALSE; + int special = FALSE; int unmenu; char_u *map_buf; char_u *arg; @@ -131,6 +132,12 @@ ex_menu(eap) arg = skipwhite(arg + 8); continue; } + if (STRNCMP(arg, "<special>", 9) == 0) + { + special = TRUE; + arg = skipwhite(arg + 9); + continue; + } break; } @@ -390,7 +397,7 @@ ex_menu(eap) else if (modes & MENU_TIP_MODE) map_buf = NULL; /* Menu tips are plain text. */ else - map_to = replace_termcodes(map_to, &map_buf, FALSE, TRUE); + map_to = replace_termcodes(map_to, &map_buf, FALSE, TRUE, special); menuarg.modes = modes; #ifdef FEAT_TOOLBAR menuarg.iconfile = icon; |