38 lines
1.6 KiB
Plaintext
38 lines
1.6 KiB
Plaintext
$OpenBSD: patch-glib_glibmm_ustring_cc,v 1.1 2018/06/01 07:23:48 ajacoutot Exp $
|
|
|
|
From e798fa7b20847c875435a8a8884987e29e7ddf9b Mon Sep 17 00:00:00 2001
|
|
From: Clemens Lang <cal@macports.org>
|
|
Date: Thu, 26 Apr 2018 15:25:44 +0200
|
|
Subject: [PATCH] ustring: Fix wchar conversion on macOS with libc++
|
|
|
|
Index: glib/glibmm/ustring.cc
|
|
--- glib/glibmm/ustring.cc.orig
|
|
+++ glib/glibmm/ustring.cc
|
|
@@ -1364,7 +1364,7 @@ ustring::FormatStream::to_string() const
|
|
#ifdef GLIBMM_HAVE_WIDE_STREAM
|
|
const std::wstring str = stream_.str();
|
|
|
|
-#if defined(__STDC_ISO_10646__) && SIZEOF_WCHAR_T == 4
|
|
+#if (defined(__STDC_ISO_10646__) || defined(_LIBCPP_VERSION)) && SIZEOF_WCHAR_T == 4
|
|
// Avoid going through iconv if wchar_t always contains UCS-4.
|
|
glong n_bytes = 0;
|
|
const auto buf = make_unique_ptr_gfree(g_ucs4_to_utf8(
|
|
@@ -1452,7 +1452,7 @@ operator>>(std::wistream& is, ustring& utf8_string)
|
|
std::wstring wstr;
|
|
is >> wstr;
|
|
|
|
-#if defined(__STDC_ISO_10646__) && SIZEOF_WCHAR_T == 4
|
|
+#if (defined(__STDC_ISO_10646__) || defined(_LIBCPP_VERSION)) && SIZEOF_WCHAR_T == 4
|
|
// Avoid going through iconv if wchar_t always contains UCS-4.
|
|
glong n_bytes = 0;
|
|
const auto buf = make_unique_ptr_gfree(g_ucs4_to_utf8(
|
|
@@ -1483,7 +1483,7 @@ operator<<(std::wostream& os, const ustring& utf8_stri
|
|
{
|
|
GError* error = nullptr;
|
|
|
|
-#if defined(__STDC_ISO_10646__) && SIZEOF_WCHAR_T == 4
|
|
+#if (defined(__STDC_ISO_10646__) || defined(_LIBCPP_VERSION)) && SIZEOF_WCHAR_T == 4
|
|
// Avoid going through iconv if wchar_t always contains UCS-4.
|
|
const auto buf = make_unique_ptr_gfree(
|
|
g_utf8_to_ucs4(utf8_string.raw().data(), utf8_string.raw().size(), nullptr, nullptr, &error));
|