| Index: source/i18n/nfrule.h
 | 
| diff --git a/source/i18n/nfrule.h b/source/i18n/nfrule.h
 | 
| index 96474630a4501fb4886169bf3811e376b6f3d2df..f5697f3da4004d98ec0e696767e50f578be72d51 100644
 | 
| --- a/source/i18n/nfrule.h
 | 
| +++ b/source/i18n/nfrule.h
 | 
| @@ -1,6 +1,6 @@
 | 
|  /*
 | 
|  *******************************************************************************
 | 
| -* Copyright (C) 1997-2014, International Business Machines
 | 
| +* Copyright (C) 1997-2015, International Business Machines
 | 
|  * Corporation and others. All Rights Reserved.
 | 
|  *******************************************************************************
 | 
|  */
 | 
| @@ -38,17 +38,19 @@ public:
 | 
|          kImproperFractionRule = -2,
 | 
|          kProperFractionRule = -3,
 | 
|          kMasterRule = -4,
 | 
| -        kOtherRule = -5
 | 
| +        kInfinityRule = -5,
 | 
| +        kNaNRule = -6,
 | 
| +        kOtherRule = -7
 | 
|      };
 | 
|  
 | 
|      static void makeRules(UnicodeString& definition,
 | 
| -                          const NFRuleSet* ruleSet, 
 | 
| +                          NFRuleSet* ruleSet, 
 | 
|                            const NFRule* predecessor, 
 | 
|                            const RuleBasedNumberFormat* rbnf, 
 | 
|                            NFRuleList& ruleList,
 | 
|                            UErrorCode& status);
 | 
|  
 | 
| -    NFRule(const RuleBasedNumberFormat* rbnf);
 | 
| +    NFRule(const RuleBasedNumberFormat* rbnf, const UnicodeString &ruleText, UErrorCode &status);
 | 
|      ~NFRule();
 | 
|  
 | 
|      UBool operator==(const NFRule& rhs) const;
 | 
| @@ -60,10 +62,12 @@ public:
 | 
|      int64_t getBaseValue() const { return baseValue; }
 | 
|      void setBaseValue(int64_t value, UErrorCode& status);
 | 
|  
 | 
| +    UChar getDecimalPoint() const { return decimalPoint; }
 | 
| +
 | 
|      double getDivisor() const { return uprv_pow(radix, exponent); }
 | 
|  
 | 
| -    void doFormat(int64_t number, UnicodeString& toAppendTo, int32_t pos, UErrorCode& status) const;
 | 
| -    void doFormat(double  number, UnicodeString& toAppendTo, int32_t pos, UErrorCode& status) const;
 | 
| +    void doFormat(int64_t number, UnicodeString& toAppendTo, int32_t pos, int32_t recursionCount, UErrorCode& status) const;
 | 
| +    void doFormat(double  number, UnicodeString& toAppendTo, int32_t pos, int32_t recursionCount, UErrorCode& status) const;
 | 
|  
 | 
|      UBool doParse(const UnicodeString& text, 
 | 
|                    ParsePosition& pos, 
 | 
| @@ -78,13 +82,15 @@ public:
 | 
|      int32_t findTextLenient(const UnicodeString& str, const UnicodeString& key, 
 | 
|                       int32_t startingAt, int32_t* resultCount) const;
 | 
|  
 | 
| +    void setDecimalFormatSymbols(const DecimalFormatSymbols &newSymbols, UErrorCode& status);
 | 
| +
 | 
|  private:
 | 
|      void parseRuleDescriptor(UnicodeString& descriptor, UErrorCode& status);
 | 
|      void extractSubstitutions(const NFRuleSet* ruleSet, const UnicodeString &ruleText, const NFRule* predecessor, UErrorCode& status);
 | 
|      NFSubstitution* extractSubstitution(const NFRuleSet* ruleSet, const NFRule* predecessor, UErrorCode& status);
 | 
|      
 | 
|      int16_t expectedExponent() const;
 | 
| -    int32_t indexOfAny(const UChar* const strings[]) const;
 | 
| +    int32_t indexOfAnyRulePrefix() const;
 | 
|      double matchToDelimiter(const UnicodeString& text, int32_t startPos, double baseValue,
 | 
|                              const UnicodeString& delimiter, ParsePosition& pp, const NFSubstitution* sub, 
 | 
|                              double upperBound) const;
 | 
| @@ -99,6 +105,7 @@ private:
 | 
|      int64_t baseValue;
 | 
|      int32_t radix;
 | 
|      int16_t exponent;
 | 
| +    UChar decimalPoint;
 | 
|      UnicodeString ruleText;
 | 
|      NFSubstitution* sub1;
 | 
|      NFSubstitution* sub2;
 | 
| 
 |