Accepting request 1089033 from home:gmbr3:Active
- Add icu-UCHAR-uint16t.patch: fixes builds where UCHAR_TYPE is re-defined such as libqt5-qtwebengine OBS-URL: https://build.opensuse.org/request/show/1089033 OBS-URL: https://build.opensuse.org/package/show/X11:common:Factory/icu?expand=0&rev=166
This commit is contained in:
parent
f142a07840
commit
3d0c34cfd3
117
icu-UCHAR-uint16t.patch
Normal file
117
icu-UCHAR-uint16t.patch
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
From 4fd9d6ce9a951e66e727b296138f22cd05479de1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fredrik Roubert <roubert@google.com>
|
||||||
|
Date: Tue, 18 Apr 2023 23:39:28 +0200
|
||||||
|
Subject: [PATCH] ICU-22356 Use ConstChar16Ptr to safely cast from UChar* to
|
||||||
|
char16_t*.
|
||||||
|
|
||||||
|
This is necessary for this header file to be usable by clients that
|
||||||
|
define UCHAR_TYPE as a type not compatible with char16_t, eg. uint16_t.
|
||||||
|
---
|
||||||
|
icu4c/source/common/unicode/ures.h | 9 +++++----
|
||||||
|
icu4c/source/test/intltest/Makefile.in | 2 +-
|
||||||
|
icu4c/source/test/intltest/intltest.vcxproj | 1 +
|
||||||
|
icu4c/source/test/intltest/intltest.vcxproj.filters | 3 +++
|
||||||
|
icu4c/source/test/intltest/uchar_type_build_test.cpp | 7 +++++++
|
||||||
|
5 files changed, 17 insertions(+), 5 deletions(-)
|
||||||
|
create mode 100644 icu4c/source/test/intltest/uchar_type_build_test.cpp
|
||||||
|
|
||||||
|
diff --git a/icu4c/source/common/unicode/ures.h b/icu4c/source/common/unicode/ures.h
|
||||||
|
index cc25b6e49cd..babc01d426a 100644
|
||||||
|
--- icu4c/source/common/unicode/ures.h
|
||||||
|
+++ icu4c/source/common/unicode/ures.h
|
||||||
|
@@ -25,6 +25,7 @@
|
||||||
|
#ifndef URES_H
|
||||||
|
#define URES_H
|
||||||
|
|
||||||
|
+#include "unicode/char16ptr.h"
|
||||||
|
#include "unicode/utypes.h"
|
||||||
|
#include "unicode/uloc.h"
|
||||||
|
|
||||||
|
@@ -812,7 +813,7 @@ inline UnicodeString
|
||||||
|
ures_getUnicodeString(const UResourceBundle *resB, UErrorCode* status) {
|
||||||
|
UnicodeString result;
|
||||||
|
int32_t len = 0;
|
||||||
|
- const char16_t *r = ures_getString(resB, &len, status);
|
||||||
|
+ const char16_t *r = ConstChar16Ptr(ures_getString(resB, &len, status));
|
||||||
|
if(U_SUCCESS(*status)) {
|
||||||
|
result.setTo(true, r, len);
|
||||||
|
} else {
|
||||||
|
@@ -837,7 +838,7 @@ inline UnicodeString
|
||||||
|
ures_getNextUnicodeString(UResourceBundle *resB, const char ** key, UErrorCode* status) {
|
||||||
|
UnicodeString result;
|
||||||
|
int32_t len = 0;
|
||||||
|
- const char16_t* r = ures_getNextString(resB, &len, key, status);
|
||||||
|
+ const char16_t* r = ConstChar16Ptr(ures_getNextString(resB, &len, key, status));
|
||||||
|
if(U_SUCCESS(*status)) {
|
||||||
|
result.setTo(true, r, len);
|
||||||
|
} else {
|
||||||
|
@@ -859,7 +860,7 @@ inline UnicodeString
|
||||||
|
ures_getUnicodeStringByIndex(const UResourceBundle *resB, int32_t indexS, UErrorCode* status) {
|
||||||
|
UnicodeString result;
|
||||||
|
int32_t len = 0;
|
||||||
|
- const char16_t* r = ures_getStringByIndex(resB, indexS, &len, status);
|
||||||
|
+ const char16_t* r = ConstChar16Ptr(ures_getStringByIndex(resB, indexS, &len, status));
|
||||||
|
if(U_SUCCESS(*status)) {
|
||||||
|
result.setTo(true, r, len);
|
||||||
|
} else {
|
||||||
|
@@ -882,7 +883,7 @@ inline UnicodeString
|
||||||
|
ures_getUnicodeStringByKey(const UResourceBundle *resB, const char* key, UErrorCode* status) {
|
||||||
|
UnicodeString result;
|
||||||
|
int32_t len = 0;
|
||||||
|
- const char16_t* r = ures_getStringByKey(resB, key, &len, status);
|
||||||
|
+ const char16_t* r = ConstChar16Ptr(ures_getStringByKey(resB, key, &len, status));
|
||||||
|
if(U_SUCCESS(*status)) {
|
||||||
|
result.setTo(true, r, len);
|
||||||
|
} else {
|
||||||
|
diff --git a/icu4c/source/test/intltest/Makefile.in b/icu4c/source/test/intltest/Makefile.in
|
||||||
|
index 8007d3c1880..f57f8d995f4 100644
|
||||||
|
--- icu4c/source/test/intltest/Makefile.in
|
||||||
|
+++ icu4c/source/test/intltest/Makefile.in
|
||||||
|
@@ -70,7 +70,7 @@ numbertest_parse.o numbertest_doubleconversion.o numbertest_skeletons.o \
|
||||||
|
static_unisets_test.o numfmtdatadriventest.o numbertest_range.o erarulestest.o \
|
||||||
|
formattedvaluetest.o formatted_string_builder_test.o numbertest_permutation.o \
|
||||||
|
units_data_test.o units_router_test.o units_test.o displayoptions_test.o \
|
||||||
|
-numbertest_simple.o
|
||||||
|
+numbertest_simple.o uchar_type_build_test.o
|
||||||
|
|
||||||
|
DEPS = $(OBJECTS:.o=.d)
|
||||||
|
|
||||||
|
diff --git a/icu4c/source/test/intltest/intltest.vcxproj b/icu4c/source/test/intltest/intltest.vcxproj
|
||||||
|
index 0985ba1e808..71ce1254038 100644
|
||||||
|
--- icu4c/source/test/intltest/intltest.vcxproj
|
||||||
|
+++ icu4c/source/test/intltest/intltest.vcxproj
|
||||||
|
@@ -291,6 +291,7 @@
|
||||||
|
<ClCompile Include="units_data_test.cpp" />
|
||||||
|
<ClCompile Include="units_router_test.cpp" />
|
||||||
|
<ClCompile Include="units_test.cpp" />
|
||||||
|
+ <ClCompile Include="uchar_type_build_test.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="colldata.h" />
|
||||||
|
diff --git a/icu4c/source/test/intltest/intltest.vcxproj.filters b/icu4c/source/test/intltest/intltest.vcxproj.filters
|
||||||
|
index ffe9bc1467d..5d8777c5aaf 100644
|
||||||
|
--- icu4c/source/test/intltest/intltest.vcxproj.filters
|
||||||
|
+++ icu4c/source/test/intltest/intltest.vcxproj.filters
|
||||||
|
@@ -568,6 +568,9 @@
|
||||||
|
<ClCompile Include="units_test.cpp">
|
||||||
|
<Filter>formatting</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
+ <ClCompile Include="uchar_type_build_test.cpp">
|
||||||
|
+ <Filter>configuration</Filter>
|
||||||
|
+ </ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="itrbbi.h">
|
||||||
|
diff --git a/icu4c/source/test/intltest/uchar_type_build_test.cpp b/icu4c/source/test/intltest/uchar_type_build_test.cpp
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..ca9335441a3
|
||||||
|
--- /dev/null
|
||||||
|
+++ icu4c/source/test/intltest/uchar_type_build_test.cpp
|
||||||
|
@@ -0,0 +1,7 @@
|
||||||
|
+// © 2023 and later: Unicode, Inc. and others.
|
||||||
|
+// License & terms of use: http://www.unicode.org/copyright.html#License
|
||||||
|
+
|
||||||
|
+// ICU-22356 Test that client code can be built with UCHAR_TYPE redefined.
|
||||||
|
+#undef UCHAR_TYPE
|
||||||
|
+#define UCHAR_TYPE uint16_t
|
||||||
|
+#include "unicode/ures.h"
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 25 12:52:50 UTC 2023 - Callum Farmer <gmbr3@opensuse.org>
|
||||||
|
|
||||||
|
- Add icu-UCHAR-uint16t.patch: fixes builds where UCHAR_TYPE is
|
||||||
|
re-defined such as libqt5-qtwebengine
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Apr 13 23:05:00 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
|
Thu Apr 13 23:05:00 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
|
||||||
|
|
||||||
|
1
icu.spec
1
icu.spec
@ -43,6 +43,7 @@ Patch6: icu-error-reporting.diff
|
|||||||
Patch7: icu-avoid-x87-excess-precision.diff
|
Patch7: icu-avoid-x87-excess-precision.diff
|
||||||
Patch8: locale.diff
|
Patch8: locale.diff
|
||||||
Patch9: nan-undefined-conversion.patch
|
Patch9: nan-undefined-conversion.patch
|
||||||
|
Patch10: icu-UCHAR-uint16t.patch
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: pkg-config
|
BuildRequires: pkg-config
|
||||||
|
Loading…
Reference in New Issue
Block a user