diff options
author | Daniel Hahler <github@thequod.de> | 2018-10-03 00:35:25 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2018-10-03 00:35:25 +0200 |
commit | 65206714bc0990a469da5efd2edbe52e81903014 (patch) | |
tree | 47ca38b57435587d1198cf6cfbe6bcb339aea317 | |
parent | 14ae394532aae5e1be3b20c0ade98b9d7625ae4b (diff) | |
download | rneovim-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.c | 15 |
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( |