summaryrefslogtreecommitdiff
path: root/source/ap/vim/patches/7.3.091
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.091')
-rw-r--r--source/ap/vim/patches/7.3.091321
1 files changed, 321 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.091 b/source/ap/vim/patches/7.3.091
new file mode 100644
index 00000000..f0aac0d9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.091
@@ -0,0 +1,321 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.091
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.091
+Problem: "vim -w foo" writes special key codes for removed escape
+ sequences. (Josh Triplett)
+Solution: Don't write K_IGNORE codes.
+Files: src/getchar.c, src/misc1.c, src/term.c, src/vim.h
+
+
+*** ../vim-7.3.090/src/getchar.c 2010-10-27 17:39:00.000000000 +0200
+--- src/getchar.c 2010-12-30 12:16:36.000000000 +0100
+***************
+*** 1506,1514 ****
+ }
+ }
+
+- #define KL_PART_KEY -1 /* keylen value for incomplete key-code */
+- #define KL_PART_MAP -2 /* keylen value for incomplete mapping */
+-
+ /*
+ * Get the next input character.
+ * Can return a special key or a multi-byte character.
+--- 1506,1511 ----
+***************
+*** 2171,2177 ****
+ if (!timedout)
+ {
+ /* break at a partly match */
+! keylen = KL_PART_MAP;
+ break;
+ }
+ }
+--- 2168,2174 ----
+ if (!timedout)
+ {
+ /* break at a partly match */
+! keylen = KEYLEN_PART_MAP;
+ break;
+ }
+ }
+***************
+*** 2192,2198 ****
+
+ /* If no partly match found, use the longest full
+ * match. */
+! if (keylen != KL_PART_MAP)
+ {
+ mp = mp_match;
+ keylen = mp_match_len;
+--- 2189,2195 ----
+
+ /* If no partly match found, use the longest full
+ * match. */
+! if (keylen != KEYLEN_PART_MAP)
+ {
+ mp = mp_match;
+ keylen = mp_match_len;
+***************
+*** 2230,2236 ****
+ }
+ /* Need more chars for partly match. */
+ if (mlen == typebuf.tb_len)
+! keylen = KL_PART_KEY;
+ else if (max_mlen < mlen)
+ /* no match, may have to check for termcode at
+ * next character */
+--- 2227,2233 ----
+ }
+ /* Need more chars for partly match. */
+ if (mlen == typebuf.tb_len)
+! keylen = KEYLEN_PART_KEY;
+ else if (max_mlen < mlen)
+ /* no match, may have to check for termcode at
+ * next character */
+***************
+*** 2238,2244 ****
+ }
+
+ if ((mp == NULL || max_mlen >= mp_match_len)
+! && keylen != KL_PART_MAP)
+ {
+ int save_keylen = keylen;
+
+--- 2235,2241 ----
+ }
+
+ if ((mp == NULL || max_mlen >= mp_match_len)
+! && keylen != KEYLEN_PART_MAP)
+ {
+ int save_keylen = keylen;
+
+***************
+*** 2264,2271 ****
+ /* If no termcode matched but 'pastetoggle'
+ * matched partially it's like an incomplete key
+ * sequence. */
+! if (keylen == 0 && save_keylen == KL_PART_KEY)
+! keylen = KL_PART_KEY;
+
+ /*
+ * When getting a partial match, but the last
+--- 2261,2268 ----
+ /* If no termcode matched but 'pastetoggle'
+ * matched partially it's like an incomplete key
+ * sequence. */
+! if (keylen == 0 && save_keylen == KEYLEN_PART_KEY)
+! keylen = KEYLEN_PART_KEY;
+
+ /*
+ * When getting a partial match, but the last
+***************
+*** 2302,2308 ****
+ continue;
+ }
+ if (*s == NUL) /* need more characters */
+! keylen = KL_PART_KEY;
+ }
+ if (keylen >= 0)
+ #endif
+--- 2299,2305 ----
+ continue;
+ }
+ if (*s == NUL) /* need more characters */
+! keylen = KEYLEN_PART_KEY;
+ }
+ if (keylen >= 0)
+ #endif
+***************
+*** 2339,2345 ****
+ if (keylen > 0) /* full matching terminal code */
+ {
+ #if defined(FEAT_GUI) && defined(FEAT_MENU)
+! if (typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
+ && typebuf.tb_buf[typebuf.tb_off + 1]
+ == KS_MENU)
+ {
+--- 2336,2343 ----
+ if (keylen > 0) /* full matching terminal code */
+ {
+ #if defined(FEAT_GUI) && defined(FEAT_MENU)
+! if (typebuf.tb_len >= 2
+! && typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
+ && typebuf.tb_buf[typebuf.tb_off + 1]
+ == KS_MENU)
+ {
+***************
+*** 2381,2387 ****
+ /* Partial match: get some more characters. When a
+ * matching mapping was found use that one. */
+ if (mp == NULL || keylen < 0)
+! keylen = KL_PART_KEY;
+ else
+ keylen = mp_match_len;
+ }
+--- 2379,2385 ----
+ /* Partial match: get some more characters. When a
+ * matching mapping was found use that one. */
+ if (mp == NULL || keylen < 0)
+! keylen = KEYLEN_PART_KEY;
+ else
+ keylen = mp_match_len;
+ }
+***************
+*** 2553,2559 ****
+ #endif
+ && typebuf.tb_maplen == 0
+ && (State & INSERT)
+! && (p_timeout || (keylen == KL_PART_KEY && p_ttimeout))
+ && (c = inchar(typebuf.tb_buf + typebuf.tb_off
+ + typebuf.tb_len, 3, 25L,
+ typebuf.tb_change_cnt)) == 0)
+--- 2551,2558 ----
+ #endif
+ && typebuf.tb_maplen == 0
+ && (State & INSERT)
+! && (p_timeout
+! || (keylen == KEYLEN_PART_KEY && p_ttimeout))
+ && (c = inchar(typebuf.tb_buf + typebuf.tb_off
+ + typebuf.tb_len, 3, 25L,
+ typebuf.tb_change_cnt)) == 0)
+***************
+*** 2783,2791 ****
+ ? 0
+ : ((typebuf.tb_len == 0
+ || !(p_timeout || (p_ttimeout
+! && keylen == KL_PART_KEY)))
+ ? -1L
+! : ((keylen == KL_PART_KEY && p_ttm >= 0)
+ ? p_ttm
+ : p_tm)), typebuf.tb_change_cnt);
+
+--- 2782,2790 ----
+ ? 0
+ : ((typebuf.tb_len == 0
+ || !(p_timeout || (p_ttimeout
+! && keylen == KEYLEN_PART_KEY)))
+ ? -1L
+! : ((keylen == KEYLEN_PART_KEY && p_ttm >= 0)
+ ? p_ttm
+ : p_tm)), typebuf.tb_change_cnt);
+
+*** ../vim-7.3.090/src/misc1.c 2010-12-02 16:01:23.000000000 +0100
+--- src/misc1.c 2010-12-30 12:28:59.000000000 +0100
+***************
+*** 3114,3123 ****
+ && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
+ continue;
+
+! /* found a termcode: adjust length */
+! if (n > 0)
+ len = n;
+! if (len == 0) /* nothing typed yet */
+ continue;
+
+ /* Handle modifier and/or special key code. */
+--- 3114,3124 ----
+ && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
+ continue;
+
+! if (n == KEYLEN_REMOVED) /* key code removed */
+! continue;
+! if (n > 0) /* found a termcode: adjust length */
+ len = n;
+! if (len == 0) /* nothing typed yet */
+ continue;
+
+ /* Handle modifier and/or special key code. */
+*** ../vim-7.3.090/src/term.c 2010-08-15 21:57:32.000000000 +0200
+--- src/term.c 2010-12-30 12:14:48.000000000 +0100
+***************
+*** 3828,3833 ****
+--- 3831,3837 ----
+ * Check from typebuf.tb_buf[typebuf.tb_off] to typebuf.tb_buf[typebuf.tb_off
+ * + max_offset].
+ * Return 0 for no match, -1 for partial match, > 0 for full match.
++ * Return KEYLEN_REMOVED when a key code was deleted.
+ * With a match, the match is removed, the replacement code is inserted in
+ * typebuf.tb_buf[] and the number of characters in typebuf.tb_buf[] is
+ * returned.
+***************
+*** 3845,3850 ****
+--- 3849,3855 ----
+ int slen = 0; /* init for GCC */
+ int modslen;
+ int len;
++ int retval = 0;
+ int offset;
+ char_u key_name[2];
+ int modifiers;
+***************
+*** 4940,4945 ****
+--- 4945,4957 ----
+ #endif
+ string[new_slen++] = key_name[1];
+ }
++ else if (new_slen == 0 && key_name[0] == KS_EXTRA
++ && key_name[1] == KE_IGNORE)
++ {
++ /* Do not put K_IGNORE into the buffer, do return KEYLEN_REMOVED
++ * to indicate what happened. */
++ retval = KEYLEN_REMOVED;
++ }
+ else
+ {
+ string[new_slen++] = K_SPECIAL;
+***************
+*** 4976,4982 ****
+ (size_t)(buflen - offset));
+ mch_memmove(buf + offset, string, (size_t)new_slen);
+ }
+! return (len + extra + offset);
+ }
+
+ return 0; /* no match found */
+--- 4988,4994 ----
+ (size_t)(buflen - offset));
+ mch_memmove(buf + offset, string, (size_t)new_slen);
+ }
+! return retval == 0 ? (len + extra + offset) : retval;
+ }
+
+ return 0; /* no match found */
+*** ../vim-7.3.090/src/vim.h 2010-12-17 20:23:56.000000000 +0100
+--- src/vim.h 2010-12-30 12:06:45.000000000 +0100
+***************
+*** 2211,2214 ****
+--- 2211,2218 ----
+ #define MSCR_LEFT -1
+ #define MSCR_RIGHT -2
+
++ #define KEYLEN_PART_KEY -1 /* keylen value for incomplete key-code */
++ #define KEYLEN_PART_MAP -2 /* keylen value for incomplete mapping */
++ #define KEYLEN_REMOVED 9999 /* keylen value for removed sequence */
++
+ #endif /* VIM__H */
+*** ../vim-7.3.090/src/version.c 2010-12-30 11:41:05.000000000 +0100
+--- src/version.c 2010-12-30 12:24:56.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 91,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+56. You leave the modem speaker on after connecting because you think it
+ sounds like the ocean wind...the perfect soundtrack for "surfing the net".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///