From 9c96986b3688974f9381e8509d66a73af1dc8a4f Mon Sep 17 00:00:00 2001 From: Aaron Gyes Date: Mon, 28 Mar 2022 11:20:06 -0700 Subject: [PATCH] set_color: only fixup sitm/ritm/dim if NULL/empty So we'll skip the hack should someone have a fixed terminfo or only do it on the first set_color command. --- src/builtins/set_color.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/builtins/set_color.cpp b/src/builtins/set_color.cpp index 3af941075..f22e2fcbc 100644 --- a/src/builtins/set_color.cpp +++ b/src/builtins/set_color.cpp @@ -110,17 +110,19 @@ maybe_t builtin_set_color(parser_t &parser, io_streams_t &streams, const wc // By the time this is called we should have initialized the curses subsystem. assert(curses_initialized); -// Hack in missing italics and dim capabilities omitted from MacOS xterm-256color terminfo -// Helps Terminal.app/iTerm #ifdef __APPLE__ - const auto term_prog = parser.vars().get(L"TERM_PROGRAM"); - if (!term_prog.missing_or_empty() && - (term_prog->as_string() == L"Apple_Terminal" || term_prog->as_string() == L"iTerm.app")) { - const auto term = parser.vars().get(L"TERM"); - if (!term.missing_or_empty() && (term->as_string() == L"xterm-256color")) { - enter_italics_mode = sitm_esc; - exit_italics_mode = ritm_esc; - enter_dim_mode = dim_esc; + // Hack in missing italics and dim capabilities omitted from MacOS xterm-256color terminfo + // Helps Terminal.app/iTerm + if ((!enter_italics_mode || enter_italics_mode == "") || (!enter_dim_mode || enter_dim_mode == "")) { + const auto term_prog = parser.vars().get(L"TERM_PROGRAM"); + if (!term_prog.missing_or_empty() && + (term_prog->as_string() == L"Apple_Terminal" || term_prog->as_string() == L"iTerm.app")) { + const auto term = parser.vars().get(L"TERM"); + if (!term.missing_or_empty() && (term->as_string() == L"xterm-256color")) { + enter_italics_mode = sitm_esc; + exit_italics_mode = ritm_esc; + enter_dim_mode = dim_esc; + } } } #endif