From 970cf451664a49d3a19272c780b75feeb8464d64 Mon Sep 17 00:00:00 2001 From: Michael Jarvis <michael@jarvis.com> Date: Thu, 14 Apr 2022 07:52:09 -0500 Subject: [PATCH] Remove test for italics_mode and dim_mode on Apple This resolves an issue where fish crashes with SIGSEGV if the TERM environment variable is not set. See: - https://github.com/fish-shell/fish-shell/issues/8873 - https://github.com/microsoft/vscode/issues/147320 --- src/builtins/set_color.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/builtins/set_color.cpp b/src/builtins/set_color.cpp index 09a1a26f2..ba04e1fcd 100644 --- a/src/builtins/set_color.cpp +++ b/src/builtins/set_color.cpp @@ -113,17 +113,14 @@ maybe_t<int> builtin_set_color(parser_t &parser, io_streams_t &streams, const wc #ifdef __APPLE__ // 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; - } + 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