summaryrefslogtreecommitdiffstats
path: root/intl/icu/source/common/pluralmap.cpp
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /intl/icu/source/common/pluralmap.cpp
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'intl/icu/source/common/pluralmap.cpp')
-rw-r--r--intl/icu/source/common/pluralmap.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/intl/icu/source/common/pluralmap.cpp b/intl/icu/source/common/pluralmap.cpp
new file mode 100644
index 000000000..fc5f8fc23
--- /dev/null
+++ b/intl/icu/source/common/pluralmap.cpp
@@ -0,0 +1,44 @@
+// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+/*
+ * Copyright (C) 2015, International Business Machines Corporation and
+ * others. All Rights Reserved.
+ */
+
+#include "unicode/unistr.h"
+#include "charstr.h"
+#include "cstring.h"
+#include "pluralmap.h"
+
+U_NAMESPACE_BEGIN
+
+static const char * const gPluralForms[] = {
+ "other", "zero", "one", "two", "few", "many"};
+
+PluralMapBase::Category
+PluralMapBase::toCategory(const char *pluralForm) {
+ for (int32_t i = 0; i < UPRV_LENGTHOF(gPluralForms); ++i) {
+ if (uprv_strcmp(pluralForm, gPluralForms[i]) == 0) {
+ return static_cast<Category>(i);
+ }
+ }
+ return NONE;
+}
+
+PluralMapBase::Category
+PluralMapBase::toCategory(const UnicodeString &pluralForm) {
+ CharString cCategory;
+ UErrorCode status = U_ZERO_ERROR;
+ cCategory.appendInvariantChars(pluralForm, status);
+ return U_FAILURE(status) ? NONE : toCategory(cCategory.data());
+}
+
+const char *PluralMapBase::getCategoryName(Category c) {
+ int32_t index = c;
+ return (index < 0 || index >= UPRV_LENGTHOF(gPluralForms)) ?
+ NULL : gPluralForms[index];
+}
+
+
+U_NAMESPACE_END
+