]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/common/unicode/uscript.h
ICU-8.11.4.tar.gz
[apple/icu.git] / icuSources / common / unicode / uscript.h
index 5985de89482afd036977b9df9f801421f896b002..d7cbc38eb389862f0f81bf012c2a5c2c1a337908 100644 (file)
@@ -1,6 +1,6 @@
 /*
 **********************************************************************
-*   Copyright (C) 1997-2003, International Business Machines
+*   Copyright (C) 1997-2006, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *
 */
 #ifndef USCRIPT_H
 #define USCRIPT_H
-#include "utypes.h"
+#include "unicode/utypes.h"
 
 /**
- * Constants for Unicode script values from ScriptNames.txt .
+ * \file
+ * \brief C API: Unicode Script Information
+ */
+/**
+ * Constants for ISO 15924 script codes.
+ *
+ * Many of these script codes - those from Unicode's ScriptNames.txt -
+ * are character property values for Unicode's Script property.
+ * See UAX #24 Script Names (http://www.unicode.org/reports/tr24/).
+ *
+ * Starting with ICU 3.6, constants for most ISO 15924 script codes
+ * are included (currently excluding private-use codes Qaaa..Qabx).
+ * For scripts for which there are codes in ISO 15924 but which are not
+ * used in the Unicode Character Database (UCD), there are no Unicode characters
+ * associated with those scripts.
  *
- * @draft ICU 2.2
+ * For example, there are no characters that have a UCD script code of
+ * Hans or Hant. All Han ideographs have the Hani script code.
+ * The Hans and Hant script codes are used with CLDR data.
+ *
+ * ISO 15924 script codes are included for use with CLDR and similar.
+ *
+ * @stable ICU 2.2
  */
 typedef enum UScriptCode {
       USCRIPT_INVALID_CODE = -1,
@@ -30,12 +51,12 @@ typedef enum UScriptCode {
       USCRIPT_BENGALI      =  4,  /* Beng */
       USCRIPT_BOPOMOFO     =  5,  /* Bopo */
       USCRIPT_CHEROKEE     =  6,  /* Cher */
-      USCRIPT_COPTIC       =  7,  /* Qaac */
-      USCRIPT_CYRILLIC     =  8,  /* Cyrl (Cyrs) */
+      USCRIPT_COPTIC       =  7,  /* Copt */
+      USCRIPT_CYRILLIC     =  8,  /* Cyrl */
       USCRIPT_DESERET      =  9,  /* Dsrt */
       USCRIPT_DEVANAGARI   = 10,  /* Deva */
       USCRIPT_ETHIOPIC     = 11,  /* Ethi */
-      USCRIPT_GEORGIAN     = 12,  /* Geor (Geon, Geoa) */
+      USCRIPT_GEORGIAN     = 12,  /* Geor */
       USCRIPT_GOTHIC       = 13,  /* Goth */
       USCRIPT_GREEK        = 14,  /* Grek */
       USCRIPT_GUJARATI     = 15,  /* Gujr */
@@ -48,7 +69,7 @@ typedef enum UScriptCode {
       USCRIPT_KATAKANA     = 22,  /* Kana */
       USCRIPT_KHMER        = 23,  /* Khmr */
       USCRIPT_LAO          = 24,  /* Laoo */
-      USCRIPT_LATIN        = 25,  /* Latn (Latf, Latg) */
+      USCRIPT_LATIN        = 25,  /* Latn */
       USCRIPT_MALAYALAM    = 26,  /* Mlym */
       USCRIPT_MONGOLIAN    = 27,  /* Mong */
       USCRIPT_MYANMAR      = 28,  /* Mymr */
@@ -57,15 +78,15 @@ typedef enum UScriptCode {
       USCRIPT_ORIYA        = 31,  /* Orya */
       USCRIPT_RUNIC        = 32,  /* Runr */
       USCRIPT_SINHALA      = 33,  /* Sinh */
-      USCRIPT_SYRIAC       = 34,  /* Syrc (Syrj, Syrn, Syre) */
+      USCRIPT_SYRIAC       = 34,  /* Syrc */
       USCRIPT_TAMIL        = 35,  /* Taml */
       USCRIPT_TELUGU       = 36,  /* Telu */
       USCRIPT_THAANA       = 37,  /* Thaa */
       USCRIPT_THAI         = 38,  /* Thai */
       USCRIPT_TIBETAN      = 39,  /* Tibt */
-      /** Canadian_Aboriginal script. @draft ICU 2.6 */
+      /** Canadian_Aboriginal script. @stable ICU 2.6 */
       USCRIPT_CANADIAN_ABORIGINAL = 40,  /* Cans */
-      /** Canadian_Aboriginal script (alias). @draft ICU 2.2 */
+      /** Canadian_Aboriginal script (alias). @stable ICU 2.2 */
       USCRIPT_UCAS         = USCRIPT_CANADIAN_ABORIGINAL,
       USCRIPT_YI           = 41,  /* Yiii */
       USCRIPT_TAGALOG      = 42,  /* Tglg */
@@ -73,17 +94,75 @@ typedef enum UScriptCode {
       USCRIPT_BUHID        = 44,  /* Buhd */
       USCRIPT_TAGBANWA     = 45,  /* Tagb */
 
-      /* New scripts in Unicode 4 @draft ICU 2.6 */
-      USCRIPT_BRAILLE,            /* Brai */
-      USCRIPT_CYPRIOT,            /* Cprt */
-      USCRIPT_LIMBU,              /* Limb */
-      USCRIPT_LINEAR_B,           /* Linb */
-      USCRIPT_OSMANYA,            /* Osma */
-      USCRIPT_SHAVIAN,            /* Shaw */
-      USCRIPT_TAI_LE,             /* Tale */
-      USCRIPT_UGARITIC,           /* Ugar */
+      /* New scripts in Unicode 4 @stable ICU 2.6 */
+      USCRIPT_BRAILLE      = 46,  /* Brai */
+      USCRIPT_CYPRIOT      = 47,  /* Cprt */
+      USCRIPT_LIMBU        = 48,  /* Limb */
+      USCRIPT_LINEAR_B     = 49,  /* Linb */
+      USCRIPT_OSMANYA      = 50,  /* Osma */
+      USCRIPT_SHAVIAN      = 51,  /* Shaw */
+      USCRIPT_TAI_LE       = 52,  /* Tale */
+      USCRIPT_UGARITIC     = 53,  /* Ugar */
+
+      /** New script code in Unicode 4.0.1 @stable ICU 3.0 */
+      USCRIPT_KATAKANA_OR_HIRAGANA = 54,/*Hrkt */
+      
+#ifndef U_HIDE_DRAFT_API
+      /* New scripts in Unicode 4.1 @draft ICU 3.4 */
+      USCRIPT_BUGINESE      = 55, /* Bugi */
+      USCRIPT_GLAGOLITIC    = 56, /* Glag */
+      USCRIPT_KHAROSHTHI    = 57, /* Khar */
+      USCRIPT_SYLOTI_NAGRI  = 58, /* Sylo */
+      USCRIPT_NEW_TAI_LUE   = 59, /* Talu */
+      USCRIPT_TIFINAGH      = 60, /* Tfng */
+      USCRIPT_OLD_PERSIAN   = 61, /* Xpeo */
 
-      USCRIPT_CODE_LIMIT
+      /* New script codes from ISO 15924 @draft ICU 3.6 */
+      USCRIPT_BALINESE                      = 62, /* Bali */
+      USCRIPT_BATAK                         = 63, /* Batk */
+      USCRIPT_BLISSYMBOLS                   = 64, /* Blis */
+      USCRIPT_BRAHMI                        = 65, /* Brah */
+      USCRIPT_CHAM                          = 66, /* Cham */
+      USCRIPT_CIRTH                         = 67, /* Cirt */
+      USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC  = 68, /* Cyrs */
+      USCRIPT_DEMOTIC_EGYPTIAN              = 69, /* Egyd */
+      USCRIPT_HIERATIC_EGYPTIAN             = 70, /* Egyh */
+      USCRIPT_EGYPTIAN_HIEROGLYPHS          = 71, /* Egyp */
+      USCRIPT_KHUTSURI                      = 72, /* Geok */
+      USCRIPT_SIMPLIFIED_HAN                = 73, /* Hans */
+      USCRIPT_TRADITIONAL_HAN               = 74, /* Hant */
+      USCRIPT_PAHAWH_HMONG                  = 75, /* Hmng */
+      USCRIPT_OLD_HUNGARIAN                 = 76, /* Hung */
+      USCRIPT_HARAPPAN_INDUS                = 77, /* Inds */
+      USCRIPT_JAVANESE                      = 78, /* Java */
+      USCRIPT_KAYAH_LI                      = 79, /* Kali */
+      USCRIPT_LATIN_FRAKTUR                 = 80, /* Latf */
+      USCRIPT_LATIN_GAELIC                  = 81, /* Latg */
+      USCRIPT_LEPCHA                        = 82, /* Lepc */
+      USCRIPT_LINEAR_A                      = 83, /* Lina */
+      USCRIPT_MANDAEAN                      = 84, /* Mand */
+      USCRIPT_MAYAN_HIEROGLYPHS             = 85, /* Maya */
+      USCRIPT_MEROITIC                      = 86, /* Mero */
+      USCRIPT_NKO                           = 87, /* Nkoo */
+      USCRIPT_ORKHON                        = 88, /* Orkh */
+      USCRIPT_OLD_PERMIC                    = 89, /* Perm */
+      USCRIPT_PHAGS_PA                      = 90, /* Phag */
+      USCRIPT_PHOENICIAN                    = 91, /* Phnx */
+      USCRIPT_PHONETIC_POLLARD              = 92, /* Plrd */
+      USCRIPT_RONGORONGO                    = 93, /* Roro */
+      USCRIPT_SARATI                        = 94, /* Sara */
+      USCRIPT_ESTRANGELO_SYRIAC             = 95, /* Syre */
+      USCRIPT_WESTERN_SYRIAC                = 96, /* Syrj */
+      USCRIPT_EASTERN_SYRIAC                = 97, /* Syrn */
+      USCRIPT_TENGWAR                       = 98, /* Teng */
+      USCRIPT_VAI                           = 99, /* Vaii */
+      USCRIPT_VISIBLE_SPEECH                = 100, /* Visp */
+      USCRIPT_CUNEIFORM                     = 101,/* Xsux */
+      USCRIPT_UNWRITTEN_LANGUAGES           = 102,/* Zxxx */
+      USCRIPT_UNKNOWN                       = 103,/* Zzzz */ /* Unknown="Code for uncoded script", for unassigned code points */
+      /* Private use codes from Qaaa - Qabx are not supported*/
+#endif /* U_HIDE_DRAFT_API */
+      USCRIPT_CODE_LIMIT    = 104
 } UScriptCode;
 
 /**
@@ -102,9 +181,9 @@ typedef enum UScriptCode {
  * @param capacity the capacity (size) fo UScriptCode buffer passed in.
  * @param err the error status code.
  * @return The number of script codes filled in the buffer passed in 
- * @draft ICU 2.4
+ * @stable ICU 2.4
  */
-U_CAPI int32_t  U_EXPORT2 
+U_STABLE int32_t  U_EXPORT2 
 uscript_getCode(const char* nameOrAbbrOrLocale,UScriptCode* fillIn,int32_t capacity,UErrorCode *err);
 
 /**
@@ -113,9 +192,9 @@ uscript_getCode(const char* nameOrAbbrOrLocale,UScriptCode* fillIn,int32_t capac
  * @param scriptCode UScriptCode enum
  * @return script long name as given in
  * PropertyValueAliases.txt, or NULL if scriptCode is invalid
- * @draft ICU 2.4
+ * @stable ICU 2.4
  */
-U_CAPI const char*  U_EXPORT2 
+U_STABLE const char*  U_EXPORT2 
 uscript_getName(UScriptCode scriptCode);
 
 /**
@@ -124,9 +203,9 @@ uscript_getName(UScriptCode scriptCode);
  * @param scriptCode UScriptCode enum
  * @return script abbreviated name as given in
  * PropertyValueAliases.txt, or NULL if scriptCode is invalid
- * @draft ICU 2.4
+ * @stable ICU 2.4
  */
-U_CAPI const char*  U_EXPORT2 
+U_STABLE const char*  U_EXPORT2 
 uscript_getShortName(UScriptCode scriptCode);
 
 /** 
@@ -135,9 +214,9 @@ uscript_getShortName(UScriptCode scriptCode);
  * @param codepoint UChar32 codepoint
  * @param err the error status code.
  * @return The UScriptCode, or 0 if codepoint is invalid 
- * @draft ICU 2.4
+ * @stable ICU 2.4
  */
-U_CAPI UScriptCode  U_EXPORT2 
+U_STABLE UScriptCode  U_EXPORT2 
 uscript_getScript(UChar32 codepoint, UErrorCode *err);
 
 #endif