tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ucurrimp.h (2801B)


      1 // © 2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 /*
      4 **********************************************************************
      5 * Copyright (c) 2002-2016, International Business Machines
      6 * Corporation and others.  All Rights Reserved.
      7 **********************************************************************
      8 */
      9 
     10 #ifndef _UCURR_IMP_H_
     11 #define _UCURR_IMP_H_
     12 
     13 #include "unicode/utypes.h"
     14 #include "unicode/unistr.h"
     15 #include "unicode/parsepos.h"
     16 #include "unicode/uniset.h"
     17 
     18 /**
     19 * Internal method.  Given a currency ISO code and a locale, return
     20 * the "static" currency name.  This is usually the same as the
     21 * UCURR_SYMBOL_NAME, but if the latter is a choice format, then the
     22 * format is applied to the number 2.0 (to yield the more common
     23 * plural) to return a static name.
     24 *
     25 * This is used for backward compatibility with old currency logic in
     26 * DecimalFormat and DecimalFormatSymbols.
     27 */
     28 U_CAPI void
     29 uprv_getStaticCurrencyName(const UChar* iso, const char* loc,
     30                           icu::UnicodeString& result, UErrorCode& ec);
     31 
     32 /**
     33 * Attempt to parse the given string as a currency, either as a
     34 * display name in the given locale, or as a 3-letter ISO 4217
     35 * code.  If multiple display names match, then the longest one is
     36 * selected.  If both a display name and a 3-letter ISO code
     37 * match, then the display name is preferred, unless it's length
     38 * is less than 3.
     39 *
     40 * The parameters must not be NULL.
     41 *
     42 * @param locale the locale of the display names to match
     43 * @param text the text to parse
     44 * @param pos input-output position; on input, the position within
     45 * text to match; must have 0 <= pos.getIndex() < text.length();
     46 * on output, the position after the last matched character. If
     47 * the parse fails, the position in unchanged upon output.
     48 * @param type currency type to parse against, LONG_NAME only or not
     49 * @param partialMatchLen The length of the longest matching prefix;
     50 * this may be nonzero even if no full currency was matched.
     51 * @return the ISO 4217 code, as a string, of the best match, or
     52 * null if there is no match
     53 *
     54 * @internal
     55 */
     56 U_CAPI void
     57 uprv_parseCurrency(const char* locale,
     58                   const icu::UnicodeString& text,
     59                   icu::ParsePosition& pos,
     60                   int8_t type,
     61                   int32_t* partialMatchLen,
     62                   UChar* result,
     63                   UErrorCode& ec);
     64 
     65 /**
     66 * Puts all possible first-characters of a currency into the
     67 * specified UnicodeSet.
     68 *
     69 * @param locale the locale of the display names of interest
     70 * @param result the UnicodeSet to which to add the starting characters
     71 */
     72 void uprv_currencyLeads(const char* locale, icu::UnicodeSet& result, UErrorCode& ec);
     73 
     74 
     75 
     76 #endif /* #ifndef _UCURR_IMP_H_ */
     77 
     78 //eof