Mercurial > vim
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;