From 738186c1010282ac7aa0c86e78d88fa6626f75f8 Mon Sep 17 00:00:00 2001
From: James Holderness <j4_james@hotmail.com>
Date: Tue, 13 Aug 2024 20:37:19 +0100
Subject: [PATCH] Don't include INVALID_COLOR entries in the report.

---
 src/terminal/adapter/adaptDispatch.cpp | 29 ++++++++++++++------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/src/terminal/adapter/adaptDispatch.cpp b/src/terminal/adapter/adaptDispatch.cpp
index 78b1299ec25..3aca2abfdf9 100644
--- a/src/terminal/adapter/adaptDispatch.cpp
+++ b/src/terminal/adapter/adaptDispatch.cpp
@@ -4222,21 +4222,24 @@ void AdaptDispatch::_ReportColorTable(const DispatchTypes::ColorModel colorModel
     const auto modelNumber = static_cast<int>(colorModel);
     for (size_t colorNumber = 0; colorNumber < TextColor::TABLE_SIZE; colorNumber++)
     {
-        response.append(colorNumber > 0 ? L"/"sv : L""sv);
-        const auto color = til::color(_renderSettings.GetColorTableEntry(colorNumber));
-        auto x = 0, y = 0, z = 0;
-        switch (colorModel)
+        const auto color = _renderSettings.GetColorTableEntry(colorNumber);
+        if (color != INVALID_COLOR)
         {
-        case DispatchTypes::ColorModel::HLS:
-            std::tie(x, y, z) = Utils::ColorToHLS(color);
-            break;
-        case DispatchTypes::ColorModel::RGB:
-            std::tie(x, y, z) = Utils::ColorToRGB100(color);
-            break;
-        default:
-            return;
+            response.append(colorNumber > 0 ? L"/"sv : L""sv);
+            auto x = 0, y = 0, z = 0;
+            switch (colorModel)
+            {
+            case DispatchTypes::ColorModel::HLS:
+                std::tie(x, y, z) = Utils::ColorToHLS(color);
+                break;
+            case DispatchTypes::ColorModel::RGB:
+                std::tie(x, y, z) = Utils::ColorToRGB100(color);
+                break;
+            default:
+                return;
+            }
+            fmt::format_to(std::back_inserter(response), FMT_COMPILE(L"{};{};{};{};{}"), colorNumber, modelNumber, x, y, z);
         }
-        fmt::format_to(std::back_inserter(response), FMT_COMPILE(L"{};{};{};{};{}"), colorNumber, modelNumber, x, y, z);
     }
 
     // An ST ends the sequence.