libfmt: fix compilation with mariadb
authorRosen Penev <rosenp@gmail.com>
Sun, 18 Feb 2024 21:48:49 +0000 (13:48 -0800)
committerRosen Penev <rosenp@gmail.com>
Sun, 18 Feb 2024 23:39:04 +0000 (15:39 -0800)
Upstream backport.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
libs/libfmt/Makefile
libs/libfmt/patches/010-static.patch [new file with mode: 0644]

index 76d7c1ffa0068d1ac67d384f519fb0ec7eec2b25..73d3c4329690a288356a5c56b632168d0f80c5af 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libfmt
 PKG_VERSION:=10.2.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_NAME:=fmt
 PKG_SOURCE:=$(PKG_SOURCE_NAME)-$(PKG_VERSION).tar.gz
diff --git a/libs/libfmt/patches/010-static.patch b/libs/libfmt/patches/010-static.patch
new file mode 100644 (file)
index 0000000..27bfda2
--- /dev/null
@@ -0,0 +1,32 @@
+From 44c3fe1ebb466ab5c296e1a1a6991c7c7b51b72e Mon Sep 17 00:00:00 2001
+From: Victor Zverovich <viz@meta.com>
+Date: Fri, 9 Feb 2024 15:58:56 -0800
+Subject: [PATCH] Fix handling of static separator
+
+---
+ include/fmt/format-inl.h | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+--- a/include/fmt/format-inl.h
++++ b/include/fmt/format-inl.h
+@@ -114,7 +114,11 @@ template <typename Char> FMT_FUNC Char d
+ FMT_FUNC auto write_loc(appender out, loc_value value,
+                         const format_specs<>& specs, locale_ref loc) -> bool {
+-#ifndef FMT_STATIC_THOUSANDS_SEPARATOR
++#ifdef FMT_STATIC_THOUSANDS_SEPARATOR
++  value.visit(loc_writer<>{
++      out, specs, std::string(1, FMT_STATIC_THOUSANDS_SEPARATOR), "\3", "."});
++  return true;
++#else
+   auto locale = loc.get<std::locale>();
+   // We cannot use the num_put<char> facet because it may produce output in
+   // a wrong encoding.
+@@ -123,7 +127,6 @@ FMT_FUNC auto write_loc(appender out, lo
+     return std::use_facet<facet>(locale).put(out, value, specs);
+   return facet(locale).put(out, value, specs);
+ #endif
+-  return false;
+ }
+ }  // namespace detail