aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYoshimasa Niwa <niw@niw.at>2024-04-22 17:17:43 -0700
committerGitHub <noreply@github.com>2024-04-23 08:17:43 +0800
commitcb2b5e2780a6de8a3f3cad84cad7318535571a68 (patch)
tree9f2418e3d153976f6a8744c2fc85f9ec11c5cd2a /src
parent39fc340276a4fdbe1f1bb4bfbe7328267ad7f9d6 (diff)
downloadrneovim-cb2b5e2780a6de8a3f3cad84cad7318535571a68.tar.gz
rneovim-cb2b5e2780a6de8a3f3cad84cad7318535571a68.tar.bz2
rneovim-cb2b5e2780a6de8a3f3cad84cad7318535571a68.zip
fix(tui): disable DECRQM and DECRQSS queries for Terminal.app (#28453)
**Problems** When launching Neovim on Terminal.app on macOS (Apple Terminal), it briefly shows like `p$qm+q5463;524742;73657472676266;73657472676262$qm` in orange background color partially on the screen. **Solution** Since Terminal.app seems not supporting DECRQM and DECRQSS queries, calling `tui_request_term_mode` and `tui_query_extended_underline` caused this unexpected output. Therefore, if we know it's Apple Terminal (when `nsterm` is `true`), don't call these checks. Tested on Terminal.app (2.14, 453) on macOS 14.4.1. Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: Gregory Anders <greg@gpanders.com>
Diffstat (limited to 'src')
-rw-r--r--src/nvim/tui/tui.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
index f9bdf6843a..e1bb1e55e3 100644
--- a/src/nvim/tui/tui.c
+++ b/src/nvim/tui/tui.c
@@ -410,11 +410,15 @@ static void terminfo_start(TUIData *tui)
// Query support for mode 2026 (Synchronized Output). Some terminals also
// support an older DCS sequence for synchronized output, but we will only use
- // mode 2026
- tui_request_term_mode(tui, kTermModeSynchronizedOutput);
+ // mode 2026.
+ // Some terminals (such as Terminal.app) do not support DECRQM, so skip the query.
+ if (!nsterm) {
+ tui_request_term_mode(tui, kTermModeSynchronizedOutput);
+ }
// Don't use DECRQSS in screen or tmux, as they behave strangely when receiving it.
- if (tui->unibi_ext.set_underline_style == -1 && !(screen || tmux)) {
+ // Terminal.app also doesn't support DECRQSS.
+ if (tui->unibi_ext.set_underline_style == -1 && !(screen || tmux || nsterm)) {
// Query the terminal to see if it supports extended underline.
tui_query_extended_underline(tui);
}