Files
loongoffice/external/libnumbertext/deprecated.patch.0
Stephan Bergmann e37e1a7d20 external/libnumbertext: Silence -Werror,-Wdeprecated-declarations
...as seen now with LLVM 15 trunk libc++, which marks the std::codecvt_utf8 and
std::wstring_convert functionality, deprecated since C++17, as such
(<3ee9a50a14>
"[libc++] Implement P0618R0 (Deprecating <codecvt>)")

Change-Id: Id34e3fea540b76591ead8ba3df4c31a71d7b4aaf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136776
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-07-01 22:18:20 +02:00

50 lines
1.6 KiB
Plaintext

--- src/Numbertext.cxx
+++ src/Numbertext.cxx
@@ -41,7 +41,14 @@
std::wifstream wif(filename);
if (wif.fail())
return false;
+#if defined __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
wif.imbue(std::locale(std::locale(), new std::codecvt_utf8<wchar_t>));
+#if defined __GNUC__
+#pragma GCC diagnostic pop
+#endif
std::wstringstream wss;
wss << wif.rdbuf();
result = wss.str();
@@ -122,8 +129,15 @@
MultiByteToWideChar(CP_UTF8, 0, s.c_str(), -1, wstr.get(), nSize);
return wstr.get();
#elif !defined NUMBERTEXT_BOOST
+#if defined __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
typedef std::codecvt_utf8<wchar_t> convert_type;
std::wstring_convert<convert_type, wchar_t> converter;
+#if defined __GNUC__
+#pragma GCC diagnostic pop
+#endif
return converter.from_bytes( s );
#else
return ::locale::conv::utf_to_utf<wchar_t>(s.c_str(), s.c_str() + s.size());
@@ -138,8 +152,15 @@
WideCharToMultiByte(CP_UTF8, 0, s.c_str(), -1, str.get(), nSize, nullptr, nullptr);
return str.get();
#elif !defined NUMBERTEXT_BOOST
+#if defined __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
typedef std::codecvt_utf8<wchar_t> convert_type;
std::wstring_convert<convert_type, wchar_t> converter;
+#if defined __GNUC__
+#pragma GCC diagnostic pop
+#endif
return converter.to_bytes( s );
#else
return ::locale::conv::utf_to_utf<char>(s.c_str(), s.c_str() + s.size());