diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-05-10 23:44:42 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-05-10 23:44:42 +0100 |
commit | f356af92b88d56b78588e81310493d4f5a2f6d18 (patch) | |
tree | 0326fb33173ae3d096527af28f85685515533fbb /dev-libs/icu/files | |
parent | 560358ad7081e6bb2a4e097d4c442b0bab626163 (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.patch | 82 |
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" + |