head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.8 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.6 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.4 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.2 pkgsrc-2025Q2-base:1.1; locks; strict; comment @// @; 1.1 date 2025.04.27.20.07.25; author wiz; state Exp; branches; next ; commitid WmI80Rd64H3BdJSF; desc @@ 1.1 log @nlohmann-json: add post-release patches from upstream Fixes build of openrct2. Bump PKGREVISION. @ text @$NetBSD$ https://github.com/nlohmann/json/pull/4736 --- include/nlohmann/detail/conversions/to_json.hpp.orig 2025-04-11 08:42:28.000000000 +0000 +++ include/nlohmann/detail/conversions/to_json.hpp @@@@ -15,7 +15,8 @@@@ #include // copy #include // begin, end -#include // string +#include // allocator_traits +#include // basic_string, char_traits #include // tuple, get #include // is_same, is_constructible, is_floating_point, is_enum, underlying_type #include // move, forward, declval, pair @@@@ -440,15 +441,21 @@@@ inline void to_json(BasicJsonType& j, co } #if JSON_HAS_FILESYSTEM || JSON_HAS_EXPERIMENTAL_FILESYSTEM +#if defined(__cpp_lib_char8_t) +template +inline void to_json(BasicJsonType& j, const std::basic_string& s) +{ + using OtherAllocator = typename std::allocator_traits::template rebind_alloc; + j = std::basic_string, OtherAllocator>(s.begin(), s.end(), s.get_allocator()); +} +#endif + template inline void to_json(BasicJsonType& j, const std_fs::path& p) { -#ifdef JSON_HAS_CPP_20 - const std::u8string s = p.u8string(); - j = std::string(s.begin(), s.end()); -#else - j = p.u8string(); // returns std::string in C++17 -#endif + // Returns either a std::string or a std::u8string depending whether library + // support for char8_t is enabled. + j = p.u8string(); } #endif @