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.