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