# HG changeset patch # User Bram Moolenaar # Date 1363440816 -3600 # Node ID 5c0652f455c9f2ae72790a782fe5b5fd1a0e857c # Parent 75c8ace648d9fe54dc027c8d0de56e51281f2b21 updated for version 7.3.863 Problem: Problem with 'ambiwidth' detection for ANSI terminal. Solution: Work around not recognizing a term response. (Hayaki Saito) diff --git a/src/term.c b/src/term.c --- 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" 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 [#;#;#M, but we are matching [ */ - || 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 "[" 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; diff --git a/src/version.c b/src/version.c --- 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,