summaryrefslogtreecommitdiffstats
path: root/intl/icu-patches/bug-1792775-ICU-22206.diff
diff options
context:
space:
mode:
Diffstat (limited to 'intl/icu-patches/bug-1792775-ICU-22206.diff')
-rw-r--r--intl/icu-patches/bug-1792775-ICU-22206.diff351
1 files changed, 351 insertions, 0 deletions
diff --git a/intl/icu-patches/bug-1792775-ICU-22206.diff b/intl/icu-patches/bug-1792775-ICU-22206.diff
new file mode 100644
index 0000000000..34e3625803
--- /dev/null
+++ b/intl/icu-patches/bug-1792775-ICU-22206.diff
@@ -0,0 +1,351 @@
+# https://github.com/unicode-org/icu/pull/2255
+# https://github.com/unicode-org/icu/pull/2255.diff
+#
+# ICU bug: https://unicode-org.atlassian.net/browse/ICU-22206
+
+diff --git a/intl/icu/source/common/rbbiscan.cpp b/intl/icu/source/common/rbbiscan.cpp
+index 8232bd94e47..87d31f8af40 100644
+--- a/intl/icu/source/common/rbbiscan.cpp
++++ b/intl/icu/source/common/rbbiscan.cpp
+@@ -918,7 +918,7 @@ void RBBIRuleScanner::nextChar(RBBIRuleChar &c) {
+ // Toggle quoting mode.
+ // Return either '(' or ')', because quotes cause a grouping of the quoted text.
+ fQuoteMode = !fQuoteMode;
+- if (fQuoteMode == true) {
++ if (fQuoteMode) {
+ c.fChar = chLParen;
+ } else {
+ c.fChar = chRParen;
+diff --git a/intl/icu/source/common/ucnvisci.cpp b/intl/icu/source/common/ucnvisci.cpp
+index 4d747e1ff84..839f7ff9c62 100644
+--- a/intl/icu/source/common/ucnvisci.cpp
++++ b/intl/icu/source/common/ucnvisci.cpp
+@@ -1472,7 +1472,7 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCo
+ if (targetUniChar != missingCharMarker) {
+ /* now save the targetUniChar for delayed write */
+ *toUnicodeStatus = (UChar) targetUniChar;
+- if (data->resetToDefaultToUnicode==true) {
++ if (data->resetToDefaultToUnicode) {
+ data->currentDeltaToUnicode = data->defDeltaToUnicode;
+ data->currentMaskToUnicode = data->defMaskToUnicode;
+ data->resetToDefaultToUnicode=false;
+diff --git a/intl/icu/source/common/udata.cpp b/intl/icu/source/common/udata.cpp
+index 2bc74c97898..c5d0a9feb7b 100644
+--- a/intl/icu/source/common/udata.cpp
++++ b/intl/icu/source/common/udata.cpp
+@@ -568,7 +568,7 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode)
+ /* check for .dat files */
+ pathBasename = findBasename(pathBuffer.data());
+
+- if(checkLastFour == true &&
++ if(checkLastFour &&
+ (pathLen>=4) &&
+ uprv_strncmp(pathBuffer.data() +(pathLen-4), suffix.data(), 4)==0 && /* suffix matches */
+ uprv_strncmp(findBasename(pathBuffer.data()), basename, basenameLen)==0 && /* base matches */
+diff --git a/intl/icu/source/common/uidna.cpp b/intl/icu/source/common/uidna.cpp
+index 1cbdeec3272..7135a166f21 100644
+--- a/intl/icu/source/common/uidna.cpp
++++ b/intl/icu/source/common/uidna.cpp
+@@ -287,7 +287,7 @@ _internal_toASCII(const UChar* src, int32_t srcLength,
+ failPos = j;
+ }
+ }
+- if(useSTD3ASCIIRules == true){
++ if(useSTD3ASCIIRules){
+ // verify 3a and 3b
+ // 3(a) Verify the absence of non-LDH ASCII code points; that is, the
+ // absence of 0..2C, 2E..2F, 3A..40, 5B..60, and 7B..7F.
+@@ -731,7 +731,7 @@ uidna_IDNToASCII( const UChar *src, int32_t srcLength,
+ remainingDestCapacity = 0;
+ }
+
+- if(done == true){
++ if(done){
+ break;
+ }
+
+@@ -829,7 +829,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength,
+ remainingDestCapacity = 0;
+ }
+
+- if(done == true){
++ if(done){
+ break;
+ }
+
+diff --git a/intl/icu/source/common/uresbund.cpp b/intl/icu/source/common/uresbund.cpp
+index 17c0177a05c..c065387bdae 100644
+--- a/intl/icu/source/common/uresbund.cpp
++++ b/intl/icu/source/common/uresbund.cpp
+@@ -2448,7 +2448,7 @@ U_CAPI UResourceBundle* U_EXPORT2 ures_getByKey(const UResourceBundle *resB, con
+ res = res_getTableItemByKey(&resB->getResData(), resB->fRes, &t, &key);
+ if(res == RES_BOGUS) {
+ key = inKey;
+- if(resB->fHasFallback == true) {
++ if(resB->fHasFallback) {
+ dataEntry = getFallbackData(resB, &key, &res, status);
+ if(U_SUCCESS(*status)) {
+ /* check if resB->fResPath gives the right name here */
+@@ -2503,7 +2503,7 @@ U_CAPI const UChar* U_EXPORT2 ures_getStringByKey(const UResourceBundle *resB, c
+
+ if(res == RES_BOGUS) {
+ key = inKey;
+- if(resB->fHasFallback == true) {
++ if(resB->fHasFallback) {
+ dataEntry = getFallbackData(resB, &key, &res, status);
+ if(U_SUCCESS(*status)) {
+ switch (RES_GET_TYPE(res)) {
+diff --git a/intl/icu/source/common/usprep.cpp b/intl/icu/source/common/usprep.cpp
+index 50d16081d1d..8175dc7fa82 100644
+--- a/intl/icu/source/common/usprep.cpp
++++ b/intl/icu/source/common/usprep.cpp
+@@ -160,7 +160,7 @@ usprep_internal_flushCache(UBool noRefCount){
+ key = (UStringPrepKey *) e->key.pointer;
+
+ if ((noRefCount== false && profile->refCount == 0) ||
+- noRefCount== true) {
++ noRefCount) {
+ deletedNum++;
+ uhash_removeElement(SHARED_DATA_HASHTABLE, e);
+
+@@ -746,16 +746,16 @@ usprep_prepare( const UStringPrepProfile* profile,
+ }
+ }
+ }
+- if(profile->checkBiDi == true){
++ if(profile->checkBiDi){
+ // satisfy 2
+- if( leftToRight == true && rightToLeft == true){
++ if( leftToRight && rightToLeft){
+ *status = U_STRINGPREP_CHECK_BIDI_ERROR;
+ uprv_syntaxError(b2,(rtlPos>ltrPos) ? rtlPos : ltrPos, b2Len, parseError);
+ return 0;
+ }
+
+ //satisfy 3
+- if( rightToLeft == true &&
++ if( rightToLeft &&
+ !((firstCharDir == U_RIGHT_TO_LEFT || firstCharDir == U_RIGHT_TO_LEFT_ARABIC) &&
+ (direction == U_RIGHT_TO_LEFT || direction == U_RIGHT_TO_LEFT_ARABIC))
+ ){
+diff --git a/intl/icu/source/common/utext.cpp b/intl/icu/source/common/utext.cpp
+index 548e6a60f31..89e3d669f6e 100644
+--- a/intl/icu/source/common/utext.cpp
++++ b/intl/icu/source/common/utext.cpp
+@@ -223,7 +223,7 @@ utext_current32(UText *ut) {
+ trail = ut->chunkContents[ut->chunkOffset];
+ }
+ UBool r = ut->pFuncs->access(ut, nativePosition, false); // reverse iteration flag loads preceding chunk
+- U_ASSERT(r==true);
++ U_ASSERT(r);
+ ut->chunkOffset = originalOffset;
+ if(!r) {
+ return U_SENTINEL;
+diff --git a/intl/icu/source/i18n/calendar.cpp b/intl/icu/source/i18n/calendar.cpp
+index f5a40e48395..5431d87bdd2 100644
+--- a/intl/icu/source/i18n/calendar.cpp
++++ b/intl/icu/source/i18n/calendar.cpp
+@@ -3510,7 +3510,7 @@ int32_t Calendar::handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t w
+ switch(bestField) {
+ case UCAL_WEEK_OF_YEAR:
+ if(woy == 1) {
+- if(jan1InPrevYear == true) {
++ if(jan1InPrevYear) {
+ // the first week of January is in the previous year
+ // therefore WOY1 is always solidly within yearWoy
+ return yearWoy;
+diff --git a/intl/icu/source/i18n/dcfmtsym.cpp b/intl/icu/source/i18n/dcfmtsym.cpp
+index 5d06c189fbe..fa5920aaa50 100644
+--- a/intl/icu/source/i18n/dcfmtsym.cpp
++++ b/intl/icu/source/i18n/dcfmtsym.cpp
+@@ -329,11 +329,13 @@ struct CurrencySpacingSink : public ResourceSink {
+ // both beforeCurrency and afterCurrency were found in CLDR.
+ static const char* defaults[] = { "[:letter:]", "[:digit:]", " " };
+ if (!hasBeforeCurrency || !hasAfterCurrency) {
+- for (UBool beforeCurrency = 0; beforeCurrency <= true; beforeCurrency++) {
+- for (int32_t pattern = 0; pattern < UNUM_CURRENCY_SPACING_COUNT; pattern++) {
+- dfs.setPatternForCurrencySpacing((UCurrencySpacing)pattern,
+- beforeCurrency, UnicodeString(defaults[pattern], -1, US_INV));
+- }
++ for (int32_t pattern = 0; pattern < UNUM_CURRENCY_SPACING_COUNT; pattern++) {
++ dfs.setPatternForCurrencySpacing((UCurrencySpacing)pattern,
++ false, UnicodeString(defaults[pattern], -1, US_INV));
++ }
++ for (int32_t pattern = 0; pattern < UNUM_CURRENCY_SPACING_COUNT; pattern++) {
++ dfs.setPatternForCurrencySpacing((UCurrencySpacing)pattern,
++ true, UnicodeString(defaults[pattern], -1, US_INV));
+ }
+ }
+ }
+diff --git a/intl/icu/source/i18n/dtitvinf.cpp b/intl/icu/source/i18n/dtitvinf.cpp
+index f5fb86ce581..0a30cf14419 100644
+--- a/intl/icu/source/i18n/dtitvinf.cpp
++++ b/intl/icu/source/i18n/dtitvinf.cpp
+@@ -504,7 +504,7 @@ DateIntervalInfo::setIntervalPatternInternally(const UnicodeString& skeleton,
+ }
+
+ patternsOfOneSkeleton[index] = intervalPattern;
+- if ( emptyHash == true ) {
++ if ( emptyHash ) {
+ fIntervalPatterns->put(skeleton, patternsOfOneSkeleton, status);
+ }
+ }
+@@ -748,7 +748,7 @@ U_CALLCONV dtitvinfHashTableValueComparator(UHashTok val1, UHashTok val2) {
+ const UnicodeString* pattern2 = (UnicodeString*)val2.pointer;
+ UBool ret = true;
+ int8_t i;
+- for ( i = 0; i < DateIntervalInfo::kMaxIntervalPatternIndex && ret == true; ++i ) {
++ for ( i = 0; i < DateIntervalInfo::kMaxIntervalPatternIndex && ret ; ++i ) {
+ ret = (pattern1[i] == pattern2[i]);
+ }
+ return ret;
+diff --git a/intl/icu/source/i18n/gregocal.cpp b/intl/icu/source/i18n/gregocal.cpp
+index 882d25b4a2a..0e00127e314 100644
+--- a/intl/icu/source/i18n/gregocal.cpp
++++ b/intl/icu/source/i18n/gregocal.cpp
+@@ -487,7 +487,7 @@ int32_t GregorianCalendar::handleComputeJulianDay(UCalendarDateFields bestField)
+ // The following check handles portions of the cutover year BEFORE the
+ // cutover itself happens.
+ //if ((fIsGregorian==true) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */
+- if ((fIsGregorian==true) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */
++ if ((fIsGregorian) != (jd >= fCutoverJulianDay)) { /* cutoverJulianDay)) { */
+ #if defined (U_DEBUG_CAL)
+ fprintf(stderr, "%s:%d: jd [invert] %d\n",
+ __FILE__, __LINE__, jd);
+diff --git a/intl/icu/source/i18n/regexcmp.cpp b/intl/icu/source/i18n/regexcmp.cpp
+index 4b507002d63..adc8f700c7f 100644
+--- a/intl/icu/source/i18n/regexcmp.cpp
++++ b/intl/icu/source/i18n/regexcmp.cpp
+@@ -4065,7 +4065,7 @@ void RegexCompile::nextChar(RegexPatternChar &c) {
+ if (c.fChar == (UChar32)-1) {
+ break; // End of Input
+ }
+- if (c.fChar == chPound && fEOLComments == true) {
++ if (c.fChar == chPound && fEOLComments) {
+ // Start of a comment. Consume the rest of it, until EOF or a new line
+ for (;;) {
+ c.fChar = nextCharLL();
+diff --git a/intl/icu/source/i18n/search.cpp b/intl/icu/source/i18n/search.cpp
+index 56d9b744098..d55902bfa7b 100644
+--- a/intl/icu/source/i18n/search.cpp
++++ b/intl/icu/source/i18n/search.cpp
+@@ -81,10 +81,9 @@ USearchAttributeValue SearchIterator::getAttribute(
+ {
+ switch (attribute) {
+ case USEARCH_OVERLAP :
+- return (m_search_->isOverlap == true ? USEARCH_ON : USEARCH_OFF);
++ return (m_search_->isOverlap ? USEARCH_ON : USEARCH_OFF);
+ case USEARCH_CANONICAL_MATCH :
+- return (m_search_->isCanonicalMatch == true ? USEARCH_ON :
+- USEARCH_OFF);
++ return (m_search_->isCanonicalMatch ? USEARCH_ON : USEARCH_OFF);
+ case USEARCH_ELEMENT_COMPARISON :
+ {
+ int16_t value = m_search_->elementComparisonType;
+@@ -242,7 +241,7 @@ int32_t SearchIterator::next(UErrorCode &status)
+ int32_t matchindex = m_search_->matchedIndex;
+ int32_t matchlength = m_search_->matchedLength;
+ m_search_->reset = false;
+- if (m_search_->isForwardSearching == true) {
++ if (m_search_->isForwardSearching) {
+ int32_t textlength = m_search_->textLength;
+ if (offset == textlength || matchindex == textlength ||
+ (matchindex != USEARCH_DONE &&
+@@ -295,7 +294,7 @@ int32_t SearchIterator::previous(UErrorCode &status)
+ }
+
+ int32_t matchindex = m_search_->matchedIndex;
+- if (m_search_->isForwardSearching == true) {
++ if (m_search_->isForwardSearching) {
+ // switching direction.
+ // if matchedIndex == USEARCH_DONE, it means that either a
+ // setOffset has been called or that next ran off the text
+diff --git a/intl/icu/source/i18n/usearch.cpp b/intl/icu/source/i18n/usearch.cpp
+index 0fecd709e74..39f76a1b985 100644
+--- a/intl/icu/source/i18n/usearch.cpp
++++ b/intl/icu/source/i18n/usearch.cpp
+@@ -819,11 +819,9 @@ U_CAPI USearchAttributeValue U_EXPORT2 usearch_getAttribute(
+ if (strsrch) {
+ switch (attribute) {
+ case USEARCH_OVERLAP :
+- return (strsrch->search->isOverlap == true ? USEARCH_ON :
+- USEARCH_OFF);
++ return (strsrch->search->isOverlap ? USEARCH_ON : USEARCH_OFF);
+ case USEARCH_CANONICAL_MATCH :
+- return (strsrch->search->isCanonicalMatch == true ? USEARCH_ON :
+- USEARCH_OFF);
++ return (strsrch->search->isCanonicalMatch ? USEARCH_ON : USEARCH_OFF);
+ case USEARCH_ELEMENT_COMPARISON :
+ {
+ int16_t value = strsrch->search->elementComparisonType;
+@@ -1249,7 +1247,7 @@ U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch,
+ }
+
+ int32_t matchedindex = search->matchedIndex;
+- if (search->isForwardSearching == true) {
++ if (search->isForwardSearching) {
+ // switching direction.
+ // if matchedIndex == USEARCH_DONE, it means that either a
+ // setOffset has been called or that next ran off the text
+diff --git a/intl/icu/source/i18n/uspoof_conf.cpp b/intl/icu/source/i18n/uspoof_conf.cpp
+index 5ecc59c12a8..376ac64e3ce 100644
+--- a/intl/icu/source/i18n/uspoof_conf.cpp
++++ b/intl/icu/source/i18n/uspoof_conf.cpp
+@@ -407,7 +407,7 @@ void ConfusabledataBuilder::build(const char * confusables, int32_t confusablesL
+ //
+ void ConfusabledataBuilder::outputData(UErrorCode &status) {
+
+- U_ASSERT(fSpoofImpl->fSpoofData->fDataOwned == true);
++ U_ASSERT(fSpoofImpl->fSpoofData->fDataOwned);
+
+ // The Key Table
+ // While copying the keys to the runtime array,
+diff --git a/intl/icu/source/io/uscanf_p.cpp b/intl/icu/source/io/uscanf_p.cpp
+index 9b27e2ebf8d..26a790dd9b6 100644
+--- a/intl/icu/source/io/uscanf_p.cpp
++++ b/intl/icu/source/io/uscanf_p.cpp
+@@ -323,7 +323,7 @@ u_scanf_skip_leading_ws(UFILE *input,
+ UBool isNotEOF;
+
+ /* skip all leading ws in the input */
+- while( ((isNotEOF = ufile_getch(input, &c)) == true) && (c == pad || u_isWhitespace(c)) )
++ while( ((isNotEOF = ufile_getch(input, &c))==(UBool)true) && (c == pad || u_isWhitespace(c)) )
+ {
+ count++;
+ }
+@@ -357,7 +357,7 @@ u_scanf_skip_leading_positive_sign(UFILE *input,
+
+ if (U_SUCCESS(localStatus)) {
+ /* skip all leading ws in the input */
+- while( ((isNotEOF = ufile_getch(input, &c)) == true) && (count < symbolLen && c == plusSymbol[count]) )
++ while( ((isNotEOF = ufile_getch(input, &c))==(UBool)true) && (count < symbolLen && c == plusSymbol[count]) )
+ {
+ count++;
+ }
+@@ -868,7 +868,7 @@ u_scanf_string_handler(UFILE *input,
+ return -1;
+
+ while( (info->fWidth == -1 || count < info->fWidth)
+- && ((isNotEOF = ufile_getch(input, &c)) == true)
++ && ((isNotEOF = ufile_getch(input, &c))==(UBool)true)
+ && (!info->fIsString || (c != info->fPadChar && !u_isWhitespace(c))))
+ {
+
+@@ -959,7 +959,7 @@ u_scanf_ustring_handler(UFILE *input,
+ count = 0;
+
+ while( (info->fWidth == -1 || count < info->fWidth)
+- && ((isNotEOF = ufile_getch(input, &c)) == true)
++ && ((isNotEOF = ufile_getch(input, &c))==(UBool)true)
+ && (!info->fIsString || (c != info->fPadChar && !u_isWhitespace(c))))
+ {
+
+@@ -1262,7 +1262,7 @@ u_scanf_scanset_handler(UFILE *input,
+
+ /* grab characters one at a time and make sure they are in the scanset */
+ while(chLeft > 0) {
+- if ( ((isNotEOF = ufile_getch32(input, &c)) == true) && uset_contains(scanset, c) ) {
++ if ( ((isNotEOF = ufile_getch32(input, &c))==(UBool)true) && uset_contains(scanset, c) ) {
+ readCharacter = true;
+ if (!info->fSkipArg) {
+ int32_t idx = 0;