summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2012-01-20 17:15:51 +0100
committerBram Moolenaar <bram@vim.org>2012-01-20 17:15:51 +0100
commit1020717c52c4998da25d347b396782e57644dfbf (patch)
tree4825c510d75f747f82cb25d0b73a9f367a4b0c89
parent48bf019e402e8a49b0461fcfe032435ef8560d9c (diff)
downloadvim-1020717c52c4998da25d347b396782e57644dfbf.tar.gz
updated for version 7.3.405v7.3.405v7-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)
-rw-r--r--src/keymap.h1
-rw-r--r--src/misc2.c11
-rw-r--r--src/term.c6
-rw-r--r--src/version.c2
4 files changed, 17 insertions, 3 deletions
diff --git a/src/keymap.h b/src/keymap.h
index 8ec00938..4706dfe0 100644
--- 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)
diff --git a/src/misc2.c b/src/misc2.c
index 22d1fb46..00d1ff4a 100644
--- 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"},
diff --git a/src/term.c b/src/term.c
index f40d39a0..93d325e4 100644
--- 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;
diff --git a/src/version.c b/src/version.c
index e2a2fa21..73bb3abf 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 405,
+/**/
404,
/**/
403,