summaryrefslogtreecommitdiff
path: root/dev-libs/icu/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-05-10 23:44:42 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-05-10 23:44:42 +0100
commitf356af92b88d56b78588e81310493d4f5a2f6d18 (patch)
tree0326fb33173ae3d096527af28f85685515533fbb /dev-libs/icu/files
parent560358ad7081e6bb2a4e097d4c442b0bab626163 (diff)
gentoo auto-resync : 10:05:2023 - 23:44:41
Diffstat (limited to 'dev-libs/icu/files')
-rw-r--r--dev-libs/icu/files/icu-73.1-fix-UChar-api-deux.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/dev-libs/icu/files/icu-73.1-fix-UChar-api-deux.patch b/dev-libs/icu/files/icu-73.1-fix-UChar-api-deux.patch
new file mode 100644
index 000000000000..ea943873a82b
--- /dev/null
+++ b/dev-libs/icu/files/icu-73.1-fix-UChar-api-deux.patch
@@ -0,0 +1,82 @@
+https://bugs.gentoo.org/904381
+https://unicode-org.atlassian.net/browse/ICU-22356
+https://github.com/unicode-org/icu/pull/2431 (what we originally applied)
+https://github.com/unicode-org/icu/pull/2432 (this commit)
+https://github.com/unicode-org/icu/commit/4fd9d6ce9a951e66e727b296138f22cd05479de1
+
+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.
+--- a/common/unicode/ures.h
++++ b/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 {
+--- a/test/intltest/Makefile.in
++++ b/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)
+
+--- /dev/null
++++ b/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"
+