changeset 4223:5c0652f455c9 v7.3.863

updated for version 7.3.863 Problem: Problem with 'ambiwidth' detection for ANSI terminal. Solution: Work around not recognizing a term response. (Hayaki Saito)
author Bram Moolenaar <bram@vim.org>
date Sat, 16 Mar 2013 14:33:36 +0100
parents 75c8ace648d9
children 7f628bf3878a
files src/term.c src/version.c
diffstat 2 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/term.c
+++ b/src/term.c
@@ -3926,8 +3926,7 @@ check_termcode(max_offset, buf, bufsize,
      * Check at several positions in typebuf.tb_buf[], to catch something like
      * "x<Up>" that can be mapped. Stop at max_offset, because characters
      * after that cannot be used for mapping, and with @r commands
-     * typebuf.tb_buf[]
-     * can become very long.
+     * typebuf.tb_buf[] can become very long.
      * This is used often, KEEP IT FAST!
      */
     for (offset = 0; offset < max_offset; ++offset)
@@ -4098,7 +4097,11 @@ check_termcode(max_offset, buf, bufsize,
 #ifdef FEAT_TERMRESPONSE
 	if (key_name[0] == NUL
 	    /* URXVT mouse uses <ESC>[#;#;#M, but we are matching <ESC>[ */
-	    || key_name[0] == KS_URXVT_MOUSE)
+	    || key_name[0] == KS_URXVT_MOUSE
+# ifdef FEAT_MBYTE
+	    || u7_status == U7_SENT
+# endif
+            )
 	{
 	    /* Check for some responses from terminal start with "<Esc>[" or
 	     * CSI.
@@ -4129,7 +4132,7 @@ check_termcode(max_offset, buf, bufsize,
 
 #ifdef FEAT_MBYTE
 		/* eat it when it has 2 arguments and ends in 'R' */
-		if (u7_status == U7_SENT && j == 1 && tp[i] == 'R')
+		if (j == 1 && tp[i] == 'R')
 		{
 		    char *p = NULL;
 
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    863,
+/**/
     862,
 /**/
     861,