diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-10-18 21:26:05 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-10-18 21:26:05 +0200 |
commit | 89577b3b3e559d6ed8467b8e756f86f9f9607cae (patch) | |
tree | cf36ae89257af02be7e6a26c2958f18ea6afd028 /src/term.c | |
parent | 92ea26b925a0835badb0af2d5887238a4198cabb (diff) | |
download | vim-git-89577b3b3e559d6ed8467b8e756f86f9f9607cae.tar.gz |
patch 8.1.2174: screen not recognized as supporting "sgr" mouse codesv8.1.2174
Problem: Screen not recognized as supporting "sgr" mouse codes.
Solution: Recognize screen 4.7. (Jordan Christiansen, closes #5042)
Diffstat (limited to 'src/term.c')
-rw-r--r-- | src/term.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/term.c b/src/term.c index cfbd7fe59..fa4375e4e 100644 --- a/src/term.c +++ b/src/term.c @@ -4649,8 +4649,8 @@ not_enough: if (tp[0] == CSI) switch_to_8bit(); - // rxvt sends its version number: "20703" is 2.7.3. // Screen sends 40500. + // rxvt sends its version number: "20703" is 2.7.3. // Ignore it for when the user has set 'term' to xterm, // even though it's an rxvt. if (version > 20000) @@ -4661,6 +4661,7 @@ not_enough: int need_flush = FALSE; int is_iterm2 = FALSE; int is_mintty = FALSE; + int is_screen = FALSE; // mintty 2.9.5 sends 77;20905;0c. // (77 is ASCII 'M' for mintty.) @@ -4706,14 +4707,21 @@ not_enough: is_not_xterm = TRUE; } + // screen sends 83;40500;0 83 is 'S' in ASCII. + if (arg[0] == 83) + is_screen = TRUE; + // Only set 'ttymouse' automatically if it was not set // by the user already. if (!option_was_set((char_u *)"ttym")) { // Xterm version 277 supports SGR. Also support - // Terminal.app, iTerm2 and mintty. - if (version >= 277 || is_iterm2 || is_mac_terminal - || is_mintty) + // Terminal.app, iTerm2, mintty, and screen 4.7+. + if ((!is_screen && version >= 277) + || is_iterm2 + || is_mac_terminal + || is_mintty + || (is_screen && arg[1] >= 40700)) set_option_value((char_u *)"ttym", 0L, (char_u *)"sgr", 0); // if xterm version >= 95 use mouse dragging |