[vim] - patchlevel 091

Karsten Hopp karsten at fedoraproject.org
Mon Jan 3 16:47:39 UTC 2011


commit a7ea2bd1967289077c24ee458eb9a337edd1c453
Author: Karsten Hopp <karsten at redhat.com>
Date:   Mon Jan 3 17:46:38 2011 +0100

    - patchlevel 091

 7.3.091 |  321 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 321 insertions(+), 0 deletions(-)
---
diff --git a/7.3.091 b/7.3.091
new file mode 100644
index 0000000..f0aac0d
--- /dev/null
+++ b/7.3.091
@@ -0,0 +1,321 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.091
+Fcc: outbox
+From: Bram Moolenaar <Bram at 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 at 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    ///


More information about the scm-commits mailing list