Home | History | Annotate | Download | only in unicode
      1 /*
      2 **********************************************************************
      3 *   Copyright (C) 1997-2004, International Business Machines
      4 *   Corporation and others.  All Rights Reserved.
      5 **********************************************************************
      6 *
      7 * File USCRIPT.H
      8 *
      9 * Modification History:
     10 *
     11 *   Date        Name        Description
     12 *   07/06/2001    Ram         Creation.
     13 ******************************************************************************
     14 */
     15 #ifndef USCRIPT_H
     16 #define USCRIPT_H
     17 #include "unicode/utypes.h"
     18 
     19 /**
     20  * Constants for Unicode script values from ScriptNames.txt .
     21  *
     22  * @stable ICU 2.2
     23  */
     24 typedef enum UScriptCode {
     25       USCRIPT_INVALID_CODE = -1,
     26       USCRIPT_COMMON       =  0 , /* Zyyy */
     27       USCRIPT_INHERITED    =  1,  /* Qaai */
     28       USCRIPT_ARABIC       =  2,  /* Arab */
     29       USCRIPT_ARMENIAN     =  3,  /* Armn */
     30       USCRIPT_BENGALI      =  4,  /* Beng */
     31       USCRIPT_BOPOMOFO     =  5,  /* Bopo */
     32       USCRIPT_CHEROKEE     =  6,  /* Cher */
     33       USCRIPT_COPTIC       =  7,  /* Copt */
     34       USCRIPT_CYRILLIC     =  8,  /* Cyrl (Cyrs) */
     35       USCRIPT_DESERET      =  9,  /* Dsrt */
     36       USCRIPT_DEVANAGARI   = 10,  /* Deva */
     37       USCRIPT_ETHIOPIC     = 11,  /* Ethi */
     38       USCRIPT_GEORGIAN     = 12,  /* Geor (Geon, Geoa) */
     39       USCRIPT_GOTHIC       = 13,  /* Goth */
     40       USCRIPT_GREEK        = 14,  /* Grek */
     41       USCRIPT_GUJARATI     = 15,  /* Gujr */
     42       USCRIPT_GURMUKHI     = 16,  /* Guru */
     43       USCRIPT_HAN          = 17,  /* Hani */
     44       USCRIPT_HANGUL       = 18,  /* Hang */
     45       USCRIPT_HEBREW       = 19,  /* Hebr */
     46       USCRIPT_HIRAGANA     = 20,  /* Hira */
     47       USCRIPT_KANNADA      = 21,  /* Knda */
     48       USCRIPT_KATAKANA     = 22,  /* Kana */
     49       USCRIPT_KHMER        = 23,  /* Khmr */
     50       USCRIPT_LAO          = 24,  /* Laoo */
     51       USCRIPT_LATIN        = 25,  /* Latn (Latf, Latg) */
     52       USCRIPT_MALAYALAM    = 26,  /* Mlym */
     53       USCRIPT_MONGOLIAN    = 27,  /* Mong */
     54       USCRIPT_MYANMAR      = 28,  /* Mymr */
     55       USCRIPT_OGHAM        = 29,  /* Ogam */
     56       USCRIPT_OLD_ITALIC   = 30,  /* Ital */
     57       USCRIPT_ORIYA        = 31,  /* Orya */
     58       USCRIPT_RUNIC        = 32,  /* Runr */
     59       USCRIPT_SINHALA      = 33,  /* Sinh */
     60       USCRIPT_SYRIAC       = 34,  /* Syrc (Syrj, Syrn, Syre) */
     61       USCRIPT_TAMIL        = 35,  /* Taml */
     62       USCRIPT_TELUGU       = 36,  /* Telu */
     63       USCRIPT_THAANA       = 37,  /* Thaa */
     64       USCRIPT_THAI         = 38,  /* Thai */
     65       USCRIPT_TIBETAN      = 39,  /* Tibt */
     66       /** Canadian_Aboriginal script. @stable ICU 2.6 */
     67       USCRIPT_CANADIAN_ABORIGINAL = 40,  /* Cans */
     68       /** Canadian_Aboriginal script (alias). @stable ICU 2.2 */
     69       USCRIPT_UCAS         = USCRIPT_CANADIAN_ABORIGINAL,
     70       USCRIPT_YI           = 41,  /* Yiii */
     71       USCRIPT_TAGALOG      = 42,  /* Tglg */
     72       USCRIPT_HANUNOO      = 43,  /* Hano */
     73       USCRIPT_BUHID        = 44,  /* Buhd */
     74       USCRIPT_TAGBANWA     = 45,  /* Tagb */
     75 
     76       /* New scripts in Unicode 4 @stable ICU 2.6 */
     77       USCRIPT_BRAILLE,            /* Brai */
     78       USCRIPT_CYPRIOT,            /* Cprt */
     79       USCRIPT_LIMBU,              /* Limb */
     80       USCRIPT_LINEAR_B,           /* Linb */
     81       USCRIPT_OSMANYA,            /* Osma */
     82       USCRIPT_SHAVIAN,            /* Shaw */
     83       USCRIPT_TAI_LE,             /* Tale */
     84       USCRIPT_UGARITIC,           /* Ugar */
     85 
     86       /** New script code in Unicode 4.0.1 @draft ICU 3.0 */
     87       USCRIPT_KATAKANA_OR_HIRAGANA,/*Hrkt */
     88 
     89       USCRIPT_CODE_LIMIT
     90 } UScriptCode;
     91 
     92 /**
     93  * Gets script codes associated with the given locale or ISO 15924 abbreviation or name.
     94  * Fills in USCRIPT_MALAYALAM given "Malayam" OR "Mlym".
     95  * Fills in USCRIPT_LATIN given "en" OR "en_US"
     96  * If required capacity is greater than capacity of the destination buffer then the error code
     97  * is set to U_BUFFER_OVERFLOW_ERROR and the required capacity is returned
     98  *
     99  * <p>Note: To search by short or long script alias only, use
    100  * u_getPropertyValueEnum(UCHAR_SCRIPT, alias) instead.  This does
    101  * a fast lookup with no access of the locale data.
    102  * @param nameOrAbbrOrLocale name of the script, as given in
    103  * PropertyValueAliases.txt, or ISO 15924 code or locale
    104  * @param fillIn the UScriptCode buffer to fill in the script code
    105  * @param capacity the capacity (size) fo UScriptCode buffer passed in.
    106  * @param err the error status code.
    107  * @return The number of script codes filled in the buffer passed in
    108  * @stable ICU 2.4
    109  */
    110 U_STABLE int32_t  U_EXPORT2
    111 uscript_getCode(const char* nameOrAbbrOrLocale,UScriptCode* fillIn,int32_t capacity,UErrorCode *err);
    112 
    113 /**
    114  * Gets a script name associated with the given script code.
    115  * Returns  "Malayam" given USCRIPT_MALAYALAM
    116  * @param scriptCode UScriptCode enum
    117  * @return script long name as given in
    118  * PropertyValueAliases.txt, or NULL if scriptCode is invalid
    119  * @stable ICU 2.4
    120  */
    121 U_STABLE const char*  U_EXPORT2
    122 uscript_getName(UScriptCode scriptCode);
    123 
    124 /**
    125  * Gets a script name associated with the given script code.
    126  * Returns  "Mlym" given USCRIPT_MALAYALAM
    127  * @param scriptCode UScriptCode enum
    128  * @return script abbreviated name as given in
    129  * PropertyValueAliases.txt, or NULL if scriptCode is invalid
    130  * @stable ICU 2.4
    131  */
    132 U_STABLE const char*  U_EXPORT2
    133 uscript_getShortName(UScriptCode scriptCode);
    134 
    135 /**
    136  * Gets the script code associated with the given codepoint.
    137  * Returns USCRIPT_MALAYALAM given 0x0D02
    138  * @param codepoint UChar32 codepoint
    139  * @param err the error status code.
    140  * @return The UScriptCode, or 0 if codepoint is invalid
    141  * @stable ICU 2.4
    142  */
    143 U_STABLE UScriptCode  U_EXPORT2
    144 uscript_getScript(UChar32 codepoint, UErrorCode *err);
    145 
    146 #endif
    147 
    148 
    149