]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/i18n/nfrule.cpp
ICU-62141.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / nfrule.cpp
index ec87bd3d296dd70815767c0dc936722403a21fca..12c5b9e1ce61c46343ab6f14889ef7aadc97893a 100644 (file)
@@ -900,6 +900,7 @@ NFRule::doParse(const UnicodeString& text,
                 ParsePosition& parsePosition,
                 UBool isFractionRule,
                 double upperBound,
+                uint32_t nonNumericalExecutedRuleMask,
                 Formattable& resVal,
                 UBool isDecimFmtParseable) const
 {
@@ -1015,6 +1016,7 @@ NFRule::doParse(const UnicodeString& text,
         temp.setTo(ruleText, sub1Pos, sub2Pos - sub1Pos);
         double partialResult = matchToDelimiter(workText, start, tempBaseValue,
             temp, pp, sub1,
+            nonNumericalExecutedRuleMask,
             upperBound);
 
         // if we got a successful match (or were trying to match a
@@ -1035,6 +1037,7 @@ NFRule::doParse(const UnicodeString& text,
             temp.setTo(ruleText, sub2Pos, ruleText.length() - sub2Pos);
             partialResult = matchToDelimiter(workText2, 0, partialResult,
                 temp, pp2, sub2,
+                nonNumericalExecutedRuleMask,
                 upperBound);
 
             // if we got a successful match on this second
@@ -1171,6 +1174,7 @@ NFRule::matchToDelimiter(const UnicodeString& text,
                          const UnicodeString& delimiter,
                          ParsePosition& pp,
                          const NFSubstitution* sub,
+                         uint32_t nonNumericalExecutedRuleMask,
                          double upperBound) const
 {
        UErrorCode status = U_ZERO_ERROR;
@@ -1204,6 +1208,7 @@ NFRule::matchToDelimiter(const UnicodeString& text,
 #else
                     formatter->isLenient(),
 #endif
+                    nonNumericalExecutedRuleMask,
                     result);
 
                 // if the substitution could match all the text up to
@@ -1257,6 +1262,7 @@ NFRule::matchToDelimiter(const UnicodeString& text,
 #else
             formatter->isLenient(),
 #endif
+            nonNumericalExecutedRuleMask,
             result);
         if (success && (tempPP.getIndex() != 0)) {
             // if there's a successful match (or it's a null