#if U_HAVE_RBNF
#include "unicode/normlzr.h"
+#include "unicode/plurfmt.h"
#include "unicode/tblcoll.h"
#include "unicode/uchar.h"
#include "unicode/ucol.h"
#include "uresimp.h"
// debugging
-// #define DEBUG
+// #define RBNF_DEBUG
-#ifdef DEBUG
+#ifdef RBNF_DEBUG
#include "stdio.h"
#endif
UChar* nextString(void);
};
-#ifdef DEBUG
+#ifdef RBNF_DEBUG
#define ERROR(msg) parseError(msg); return NULL;
#define EXPLANATION_ARG explanationArg
#else
pe.postContext[limit-p] = 0;
pe.offset = (int32_t)(p - data);
-#ifdef DEBUG
+#ifdef RBNF_DEBUG
fprintf(stderr, "%s at or near character %ld: ", EXPLANATION_ARG, p-data);
UnicodeString msg;
FieldPosition& /* pos */) const
{
if (defaultRuleSet) {
+ UErrorCode status = U_ZERO_ERROR;
int32_t startPos = toAppendTo.length();
- defaultRuleSet->format((int64_t)number, toAppendTo, toAppendTo.length());
+ defaultRuleSet->format((int64_t)number, toAppendTo, toAppendTo.length(), status);
adjustForCapitalizationContext(startPos, toAppendTo);
}
return toAppendTo;
FieldPosition& /* pos */) const
{
if (defaultRuleSet) {
+ UErrorCode status = U_ZERO_ERROR;
int32_t startPos = toAppendTo.length();
- defaultRuleSet->format(number, toAppendTo, toAppendTo.length());
+ defaultRuleSet->format(number, toAppendTo, toAppendTo.length(), status);
adjustForCapitalizationContext(startPos, toAppendTo);
}
return toAppendTo;
toAppendTo += decFmtSyms->getConstSymbol(DecimalFormatSymbols::kNaNSymbol);
}
} else if (defaultRuleSet) {
- defaultRuleSet->format(number, toAppendTo, toAppendTo.length());
+ UErrorCode status = U_ZERO_ERROR;
+ defaultRuleSet->format(number, toAppendTo, toAppendTo.length(), status);
}
return adjustForCapitalizationContext(startPos, toAppendTo);
}
NFRuleSet *rs = findRuleSet(ruleSetName, status);
if (rs) {
int32_t startPos = toAppendTo.length();
- rs->format((int64_t)number, toAppendTo, toAppendTo.length());
+ rs->format((int64_t)number, toAppendTo, toAppendTo.length(), status);
adjustForCapitalizationContext(startPos, toAppendTo);
}
}
NFRuleSet *rs = findRuleSet(ruleSetName, status);
if (rs) {
int32_t startPos = toAppendTo.length();
- rs->format(number, toAppendTo, toAppendTo.length());
+ rs->format(number, toAppendTo, toAppendTo.length(), status);
adjustForCapitalizationContext(startPos, toAppendTo);
}
}
NFRuleSet *rs = findRuleSet(ruleSetName, status);
if (rs) {
int32_t startPos = toAppendTo.length();
- rs->format(number, toAppendTo, toAppendTo.length());
+ rs->format(number, toAppendTo, toAppendTo.length(), status);
adjustForCapitalizationContext(startPos, toAppendTo);
}
}
adoptDecimalFormatSymbols(new DecimalFormatSymbols(symbols));
}
+PluralFormat *
+RuleBasedNumberFormat::createPluralFormat(UPluralType pluralType,
+ const UnicodeString &pattern,
+ UErrorCode& status) const
+{
+ return new PluralFormat(locale, pluralType, pattern, status);
+}
+
U_NAMESPACE_END
/* U_HAVE_RBNF */