From 92abe859ed8dc8b9a49b9cc2692d1a2569ebd31e Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 3 Jul 2015 13:05:50 +0200 Subject: patch 7.4.766 Problem: Background color check does not work on Tera Term. Solution: Also recognize ST as a termination character. (Hirohito Higashi) --- src/term.c | 13 +++++++++---- src/version.c | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/term.c b/src/term.c index 8221e3f06..8d8ac407f 100644 --- a/src/term.c +++ b/src/term.c @@ -4264,7 +4264,9 @@ check_termcode(max_offset, buf, bufsize, buflen) * * - Background color response: * ]11;rgb:{rrrr}/{gggg}/{bbbb}\007 - * The final byte must be '\007'. + * Or + * ]11;rgb:{rrrr}/{gggg}/{bbbb}ST + * The final byte must be '\007' or ST(0x9c or ESC\). */ char_u *argp = tp[0] == CSI ? tp + 1 : tp + 2; @@ -4408,12 +4410,15 @@ check_termcode(max_offset, buf, bufsize, buflen) key_name[1] = (int)KE_IGNORE; slen = i + 1; } - else if (*T_RBG != NUL && len >= 24 - (tp[0] == CSI) + else if (*T_RBG != NUL + && len >= 24 - (tp[0] == CSI) + && len >= 24 - (tp[0] == CSI) + (argp[21] == ESC) && argp[0] == '1' && argp[1] == '1' && argp[2] == ';' && argp[3] == 'r' && argp[4] == 'g' && argp[5] == 'b' && argp[6] == ':' && argp[11] == '/' && argp[16] == '/' - && argp[21] == '\007') + && (argp[21] == '\007' || argp[21] == STERM + || (argp[21] == ESC && argp[22] == '\\'))) { LOG_TR("Received RBG"); rbg_status = RBG_GOT; @@ -4427,7 +4432,7 @@ check_termcode(max_offset, buf, bufsize, buflen) } key_name[0] = (int)KS_EXTRA; key_name[1] = (int)KE_IGNORE; - slen = 24; + slen = 24 - (tp[0] == CSI) + (argp[21] == ESC); } } diff --git a/src/version.c b/src/version.c index 8336b6d62..ff024760b 100644 --- a/src/version.c +++ b/src/version.c @@ -741,6 +741,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 766, /**/ 765, /**/ -- cgit v1.2.1