| Index: source/i18n/digitinterval.cpp
|
| diff --git a/source/i18n/digitinterval.cpp b/source/i18n/digitinterval.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e909816157107d3bc170f2390597ddcc91aa222f
|
| --- /dev/null
|
| +++ b/source/i18n/digitinterval.cpp
|
| @@ -0,0 +1,54 @@
|
| +/*
|
| + * Copyright (C) 2015, International Business Machines
|
| + * Corporation and others. All Rights Reserved.
|
| + *
|
| + * file name: digitinterval.cpp
|
| + */
|
| +
|
| +#include "unicode/utypes.h"
|
| +
|
| +#include "digitinterval.h"
|
| +
|
| +U_NAMESPACE_BEGIN
|
| +
|
| +void DigitInterval::expandToContain(const DigitInterval &rhs) {
|
| + if (fSmallestInclusive > rhs.fSmallestInclusive) {
|
| + fSmallestInclusive = rhs.fSmallestInclusive;
|
| + }
|
| + if (fLargestExclusive < rhs.fLargestExclusive) {
|
| + fLargestExclusive = rhs.fLargestExclusive;
|
| + }
|
| +}
|
| +
|
| +void DigitInterval::shrinkToFitWithin(const DigitInterval &rhs) {
|
| + if (fSmallestInclusive < rhs.fSmallestInclusive) {
|
| + fSmallestInclusive = rhs.fSmallestInclusive;
|
| + }
|
| + if (fLargestExclusive > rhs.fLargestExclusive) {
|
| + fLargestExclusive = rhs.fLargestExclusive;
|
| + }
|
| +}
|
| +
|
| +void DigitInterval::setIntDigitCount(int32_t count) {
|
| + fLargestExclusive = count < 0 ? INT32_MAX : count;
|
| +}
|
| +
|
| +void DigitInterval::setFracDigitCount(int32_t count) {
|
| + fSmallestInclusive = count < 0 ? INT32_MIN : -count;
|
| +}
|
| +
|
| +void DigitInterval::expandToContainDigit(int32_t digitExponent) {
|
| + if (fLargestExclusive <= digitExponent) {
|
| + fLargestExclusive = digitExponent + 1;
|
| + } else if (fSmallestInclusive > digitExponent) {
|
| + fSmallestInclusive = digitExponent;
|
| + }
|
| +}
|
| +
|
| +UBool DigitInterval::contains(int32_t x) const {
|
| + return (x < fLargestExclusive && x >= fSmallestInclusive);
|
| +}
|
| +
|
| +
|
| +U_NAMESPACE_END
|
| +
|
|
|