intl/icu/source/i18n/upluralrules.cpp

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/intl/icu/source/i18n/upluralrules.cpp	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,56 @@
     1.4 +/*
     1.5 +*****************************************************************************************
     1.6 +* Copyright (C) 2010-2012, International Business Machines
     1.7 +* Corporation and others. All Rights Reserved.
     1.8 +*****************************************************************************************
     1.9 +*/
    1.10 +
    1.11 +#include "unicode/utypes.h"
    1.12 +
    1.13 +#if !UCONFIG_NO_FORMATTING
    1.14 +
    1.15 +#include "unicode/upluralrules.h"
    1.16 +#include "unicode/plurrule.h"
    1.17 +#include "unicode/locid.h"
    1.18 +#include "unicode/unistr.h"
    1.19 +
    1.20 +U_NAMESPACE_USE
    1.21 +
    1.22 +
    1.23 +U_CAPI UPluralRules* U_EXPORT2
    1.24 +uplrules_open(const char *locale, UErrorCode *status)
    1.25 +{
    1.26 +    return uplrules_openForType(locale, UPLURAL_TYPE_CARDINAL, status);
    1.27 +}
    1.28 +
    1.29 +U_CAPI UPluralRules* U_EXPORT2
    1.30 +uplrules_openForType(const char *locale, UPluralType type, UErrorCode *status)
    1.31 +{
    1.32 +    return (UPluralRules*)PluralRules::forLocale(Locale(locale), type, *status);
    1.33 +}
    1.34 +
    1.35 +U_CAPI void U_EXPORT2
    1.36 +uplrules_close(UPluralRules *uplrules)
    1.37 +{
    1.38 +    delete (PluralRules*)uplrules;
    1.39 +}
    1.40 +
    1.41 +U_CAPI int32_t U_EXPORT2
    1.42 +uplrules_select(const UPluralRules *uplrules,
    1.43 +                double number,
    1.44 +                UChar *keyword, int32_t capacity,
    1.45 +                UErrorCode *status)
    1.46 +{
    1.47 +    if (U_FAILURE(*status)) {
    1.48 +        return 0;
    1.49 +    }
    1.50 +    if (keyword == NULL ? capacity != 0 : capacity < 0) {
    1.51 +        *status = U_ILLEGAL_ARGUMENT_ERROR;
    1.52 +        return 0;
    1.53 +    }
    1.54 +    UnicodeString result = ((PluralRules*)uplrules)->select(number);
    1.55 +    return result.extract(keyword, capacity, *status);
    1.56 +}
    1.57 +
    1.58 +
    1.59 +#endif /* #if !UCONFIG_NO_FORMATTING */

mercurial