diff options
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/icu4c.scm | 5 | ||||
-rw-r--r-- | gnu/packages/patches/icu4c-icu-22132-fix-vtimezone.patch | 31 |
2 files changed, 34 insertions, 2 deletions
diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 2031d72768..6f09fae65c 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -126,8 +126,9 @@ C/C++ part.") (base32 "0iccpdvc0kvpww5a31k9gjkqigyz016i7v80r9zamd34w4fl6mx4")) (patches - (cons - (search-patch + (append + (search-patches + "icu4c-icu-22132-fix-vtimezone.patch" "icu4c-fix-TestHebrewCalendarInTemporalLeapYear.patch") (origin-patches (package-source icu4c)))))))) diff --git a/gnu/packages/patches/icu4c-icu-22132-fix-vtimezone.patch b/gnu/packages/patches/icu4c-icu-22132-fix-vtimezone.patch new file mode 100644 index 0000000000..4fe520318a --- /dev/null +++ b/gnu/packages/patches/icu4c-icu-22132-fix-vtimezone.patch @@ -0,0 +1,31 @@ +Source: https://unicode-org.atlassian.net/browse/ICU-22132?focusedCommentId=166752 +Author: Sean Burke +License: +Fixes: https://bugzilla.mozilla.org/show_bug.cgi?id=1843007 + +diff --git a/icu4c/source/i18n/vtzone.cpp b/icu4c/source/i18n/vtzone.cpp +index 3035106701..5e738e11fa 100644 +--- a/source/i18n/vtzone.cpp ++++ b/source/i18n/vtzone.cpp +@@ -1735,14 +1735,14 @@ VTimeZone::write(VTZWriter& writer, UErrorCode& status) const { + } + } + } else { +- UnicodeString icutzprop; +- UVector customProps(nullptr, uhash_compareUnicodeString, status); ++ UVector customProps(uprv_deleteUObject, uhash_compareUnicodeString, status); + if (olsonzid.length() > 0 && icutzver.length() > 0) { +- icutzprop.append(olsonzid); +- icutzprop.append(u'['); +- icutzprop.append(icutzver); +- icutzprop.append(u']'); +- customProps.addElement(&icutzprop, status); ++ LocalPointer<UnicodeString> icutzprop(new UnicodeString(ICU_TZINFO_PROP), status); ++ icutzprop->append(olsonzid); ++ icutzprop->append(u'['); ++ icutzprop->append(icutzver); ++ icutzprop->append(u']'); ++ customProps.adoptElement(icutzprop.orphan(), status); + } + writeZone(writer, *tz, &customProps, status); + } |