]>
Commit | Line | Data |
---|---|---|
4388f060 A |
1 | /* |
2 | ***************************************************************************************** | |
3 | * Copyright (C) 2010-2011, International Business Machines | |
4 | * Corporation and others. All Rights Reserved. | |
5 | ***************************************************************************************** | |
6 | */ | |
7 | ||
8 | #include "unicode/utypes.h" | |
9 | ||
10 | #if !UCONFIG_NO_FORMATTING | |
11 | ||
12 | #include "unicode/upluralrules.h" | |
13 | #include "unicode/plurrule.h" | |
14 | #include "unicode/locid.h" | |
15 | #include "unicode/unistr.h" | |
16 | ||
17 | U_NAMESPACE_USE | |
18 | ||
19 | ||
20 | U_CAPI UPluralRules* U_EXPORT2 | |
21 | uplrules_open(const char *locale, | |
22 | UErrorCode *status) | |
23 | { | |
24 | return (UPluralRules*)PluralRules::forLocale(Locale(locale), *status); | |
25 | } | |
26 | ||
27 | U_CAPI void U_EXPORT2 | |
28 | uplrules_close(UPluralRules *uplrules) | |
29 | { | |
30 | delete (PluralRules*)uplrules; | |
31 | } | |
32 | ||
33 | U_CAPI int32_t U_EXPORT2 | |
34 | uplrules_select(const UPluralRules *uplrules, | |
35 | double number, | |
36 | UChar *keyword, int32_t capacity, | |
37 | UErrorCode *status) | |
38 | { | |
39 | if (U_FAILURE(*status)) { | |
40 | return 0; | |
41 | } | |
42 | if (keyword == NULL ? capacity != 0 : capacity < 0) { | |
43 | *status = U_ILLEGAL_ARGUMENT_ERROR; | |
44 | return 0; | |
45 | } | |
46 | UnicodeString result = ((PluralRules*)uplrules)->select(number); | |
47 | return result.extract(keyword, capacity, *status); | |
48 | } | |
49 | ||
50 | ||
51 | #endif /* #if !UCONFIG_NO_FORMATTING */ |