From 6c2761f51a0400772f443f12ea23a75576e195d3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 11 Oct 2024 23:24:17 +0200
Subject: [PATCH] widget: termprops: Use fast_float

From d09330585e648b5c9991dffab4a06d1f127bf916 Mon Sep 17 00:00:00 2001
From: Christian Persch <chpe@src.gnome.org>
Date: Wed, 16 Oct 2024 21:40:10 +0200
Subject: [PATCH] build: Use correct path to include fast_float.h

Index: src/color-parser.cc
--- src/color-parser.cc.orig
+++ src/color-parser.cc
@@ -29,6 +29,8 @@
 
 #include <glib.h>
 
+#include <fast_float/fast_float.h>
+
 #include "color-names.hh"
 
 namespace vte::color::impl {
@@ -298,7 +300,7 @@ parse_csslike(std::string const& spec) noexcept
                 auto value = uint64_t{};
                 auto const start = spec.c_str() + 1;
                 auto const end = spec.c_str() + spec.size();
-                auto const rv = std::from_chars(start, end, value, 16);
+                auto const rv = fast_float::from_chars(start, end, value, 16);
                 if (rv.ec != std::errc{} || rv.ptr != end)
                         return std::nullopt;
 
@@ -424,7 +426,7 @@ parse_x11like(std::string const& spec) noexcept
                 auto value = uint64_t{};
                 auto const start = spec.c_str() + 1;
                 auto const end = spec.c_str() + spec.size();
-                auto const rv = std::from_chars(start, end, value, 16);
+                auto const rv = fast_float::from_chars(start, end, value, 16);
                 if (rv.ec != std::errc{} || rv.ptr != end)
                         return std::nullopt;
 
@@ -447,13 +449,13 @@ parse_x11like(std::string const& spec) noexcept
                 // Note that the length check above makes sure that @r, @g, @b,
                 // don't exceed @bits.
                 auto r = UINT64_C(0), b = UINT64_C(0), g = UINT64_C(0);
-                auto rv = std::from_chars(start, end, r, 16);
+                auto rv = fast_float::from_chars(start, end, r, 16);
                 if (rv.ec != std::errc{} || rv.ptr == end || *rv.ptr != '/')
                         return std::nullopt;
-                rv = std::from_chars(rv.ptr + 1, end, g, 16);
+                rv = fast_float::from_chars(rv.ptr + 1, end, g, 16);
                 if (rv.ec != std::errc{} || rv.ptr == end || *rv.ptr != '/')
                         return std::nullopt;
-                rv = std::from_chars(rv.ptr + 1, end, b, 16);
+                rv = fast_float::from_chars(rv.ptr + 1, end, b, 16);
                 if (rv.ec != std::errc{} || rv.ptr != end)
                         return std::nullopt;
 
