diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/term.c | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/term.c b/src/term.c index 7d148cdfc..f1c718034 100644 --- a/src/term.c +++ b/src/term.c @@ -4050,15 +4050,17 @@ check_termcode(max_offset, buf, buflen) { /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also * eat other possible responses to t_RV, rxvt returns - * "<Esc>[?1;2c". Also accept CSI instead of <Esc>[. */ + * "<Esc>[?1;2c". Also accept CSI instead of <Esc>[. + * mrxvt has been reported to have "+" in the version. Assume + * the escape sequence ends with a letter or one of "{|}~". */ if (*T_CRV != NUL && ((tp[0] == ESC && tp[1] == '[' && len >= 3) || (tp[0] == CSI && len >= 2))) { j = 0; extra = 0; - for (i = 2 + (tp[0] != CSI); - i < len && (VIM_ISDIGIT(tp[i]) - || tp[i] == ';' || tp[i] == '.'); ++i) + for (i = 2 + (tp[0] != CSI); i < len + && !(tp[i] >= '{' && tp[i] <= '~') + && !ASCII_ISALPHA(tp[i]); ++i) if (tp[i] == ';' && ++j == 1) extra = atoi((char *)tp + i + 1); if (i == len) diff --git a/src/version.c b/src/version.c index d3a86e458..82689be0f 100644 --- a/src/version.c +++ b/src/version.c @@ -667,6 +667,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 266, +/**/ 265, /**/ 264, |