aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hahler <github@thequod.de>2018-10-03 00:35:25 +0200
committerJustin M. Keyes <justinkz@gmail.com>2018-10-03 00:35:25 +0200
commit65206714bc0990a469da5efd2edbe52e81903014 (patch)
tree47ca38b57435587d1198cf6cfbe6bcb339aea317
parent14ae394532aae5e1be3b20c0ade98b9d7625ae4b (diff)
downloadrneovim-65206714bc0990a469da5efd2edbe52e81903014.tar.gz
rneovim-65206714bc0990a469da5efd2edbe52e81903014.tar.bz2
rneovim-65206714bc0990a469da5efd2edbe52e81903014.zip
TUI: fix support for undercurl/underline color #9080
-rw-r--r--src/nvim/tui/tui.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
index 2c93c95ecc..d81493ee3d 100644
--- a/src/nvim/tui/tui.c
+++ b/src/nvim/tui/tui.c
@@ -1439,6 +1439,18 @@ static int unibi_find_ext_str(unibi_term *ut, const char *name)
return -1;
}
+static int unibi_find_ext_bool(unibi_term *ut, const char *name)
+{
+ size_t max = unibi_count_ext_bool(ut);
+ for (size_t i = 0; i < max; i++) {
+ const char * n = unibi_get_ext_bool_name(ut, i);
+ if (n && 0 == strcmp(n, name)) {
+ return (int)i;
+ }
+ }
+ return -1;
+}
+
/// Patches the terminfo records after loading from system or built-in db.
/// Several entries in terminfo are known to be deficient or outright wrong;
/// and several terminal emulators falsely announce incorrect terminal types.
@@ -1840,7 +1852,8 @@ static void augment_terminfo(TUIData *data, const char *term,
data->unibi_ext.disable_mouse = (int)unibi_add_ext_str(
ut, "ext.disable_mouse", "\x1b[?1002l\x1b[?1006l");
- if ((int)unibi_add_ext_bool(ut, "Su", 0)) {
+ int ext_bool_Su = unibi_find_ext_bool(ut, "Su");
+ if (ext_bool_Su != -1 && unibi_get_ext_bool(ut, (size_t)ext_bool_Su)) {
data->unibi_ext.enter_undercurl_mode = (int)unibi_add_ext_str(
ut, "ext.enter_undercurl_mode", "\x1b[4:3m");
data->unibi_ext.exit_undercurl_mode = (int)unibi_add_ext_str(