Mercurial > vim
changeset 3273:c75a8d2404bd v7.3.405
updated for version 7.3.405
Problem: When xterm gets back the function keys it may delete the urxvt
mouse termcap code.
Solution: Check for the whole code, not just the start. (Egmont Koblinger)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 20 Jan 2012 17:15:51 +0100 |
parents | 3ab7f7a36bbf |
children | 26e46538d65b |
files | src/keymap.h src/misc2.c src/term.c src/version.c |
diffstat | 4 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/keymap.h +++ b/src/keymap.h @@ -411,6 +411,7 @@ enum key_extra #define K_DEC_MOUSE TERMCAP2KEY(KS_DEC_MOUSE, KE_FILLER) #define K_JSBTERM_MOUSE TERMCAP2KEY(KS_JSBTERM_MOUSE, KE_FILLER) #define K_PTERM_MOUSE TERMCAP2KEY(KS_PTERM_MOUSE, KE_FILLER) +#define K_URXVT_MOUSE TERMCAP2KEY(KS_URXVT_MOUSE, KE_FILLER) #define K_SELECT TERMCAP2KEY(KS_SELECT, KE_FILLER) #define K_TEAROFF TERMCAP2KEY(KS_TEAROFF, KE_FILLER)
--- a/src/misc2.c +++ b/src/misc2.c @@ -2416,10 +2416,21 @@ static struct key_name_entry {'<', (char_u *)"lt"}, {K_MOUSE, (char_u *)"Mouse"}, +#ifdef FEAT_MOUSE_NET {K_NETTERM_MOUSE, (char_u *)"NetMouse"}, +#endif +#ifdef FEAT_MOUSE_DEC {K_DEC_MOUSE, (char_u *)"DecMouse"}, +#endif +#ifdef FEAT_MOUSE_JSB {K_JSBTERM_MOUSE, (char_u *)"JsbMouse"}, +#endif +#ifdef FEAT_MOUSE_PTERM {K_PTERM_MOUSE, (char_u *)"PtermMouse"}, +#endif +#ifdef FEAT_MOUSE_URXVT + {K_URXVT_MOUSE, (char_u *)"UrxvtMouse"}, +#endif {K_LEFTMOUSE, (char_u *)"LeftMouse"}, {K_LEFTMOUSE_NM, (char_u *)"LeftMouseNM"}, {K_LEFTDRAG, (char_u *)"LeftDrag"},
--- a/src/term.c +++ b/src/term.c @@ -5252,12 +5252,12 @@ find_term_bykeys(src) char_u *src; { int i; - int slen; + int slen = STRLEN(src); for (i = 0; i < tc_len; ++i) { - slen = termcodes[i].len; - if (slen > 1 && STRNCMP(termcodes[i].code, src, (size_t)slen) == 0) + if (slen == termcodes[i].len + && STRNCMP(termcodes[i].code, src, (size_t)slen) == 0) return i; } return -1;