More Unicode script age annotation, and a couple more RTL scripts
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 7 Mar 2012 20:52:02 +0000 (15:52 -0500)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 7 Mar 2012 20:52:02 +0000 (15:52 -0500)
Cross-checked with Mark Davis's spreadsheet at http://goo.gl/x9ilM

src/hb-common.cc
src/hb-common.h

index 170b75f..e003c09 100644 (file)
@@ -264,10 +264,14 @@ hb_script_to_iso15924_tag (hb_script_t script)
 hb_direction_t
 hb_script_get_horizontal_direction (hb_script_t script)
 {
+  /* http://goo.gl/x9ilM */
   switch ((hb_tag_t) script)
   {
+    /* Unicode-1.1 additions */
     case HB_SCRIPT_ARABIC:
     case HB_SCRIPT_HEBREW:
+
+    /* Unicode-3.0 additions */
     case HB_SCRIPT_SYRIAC:
     case HB_SCRIPT_THAANA:
 
@@ -296,6 +300,10 @@ hb_script_get_horizontal_direction (hb_script_t script)
     /* Unicode-6.0 additions */
     case HB_SCRIPT_MANDAIC:
 
+    /* Unicode-6.1 additions */
+    case HB_SCRIPT_MEROITIC_CURSIVE:
+    case HB_SCRIPT_MEROITIC_HIEROGLYPHS:
+
       return HB_DIRECTION_RTL;
   }
 
index 96093e4..b6a9279 100644 (file)
@@ -174,48 +174,54 @@ typedef enum
 /* hb_script_t */
 
 /* http://unicode.org/iso15924/ */
+/* http://goo.gl/x9ilM */
 typedef enum
 {
+  /* Unicode-1.1 additions */
   HB_SCRIPT_COMMON                     = HB_TAG ('Z','y','y','y'),
-  HB_SCRIPT_INHERITED                  = HB_TAG ('Z','i','n','h'),
   HB_SCRIPT_ARABIC                     = HB_TAG ('A','r','a','b'),
   HB_SCRIPT_ARMENIAN                   = HB_TAG ('A','r','m','n'),
   HB_SCRIPT_BENGALI                    = HB_TAG ('B','e','n','g'),
   HB_SCRIPT_BOPOMOFO                   = HB_TAG ('B','o','p','o'),
+  HB_SCRIPT_CANADIAN_ABORIGINAL                = HB_TAG ('C','a','n','s'),
   HB_SCRIPT_CHEROKEE                   = HB_TAG ('C','h','e','r'),
   HB_SCRIPT_COPTIC                     = HB_TAG ('C','o','p','t'),
   HB_SCRIPT_CYRILLIC                   = HB_TAG ('C','y','r','l'),
   HB_SCRIPT_DEVANAGARI                 = HB_TAG ('D','e','v','a'),
-  HB_SCRIPT_ETHIOPIC                   = HB_TAG ('E','t','h','i'),
   HB_SCRIPT_GEORGIAN                   = HB_TAG ('G','e','o','r'),
   HB_SCRIPT_GREEK                      = HB_TAG ('G','r','e','k'),
   HB_SCRIPT_GUJARATI                   = HB_TAG ('G','u','j','r'),
   HB_SCRIPT_GURMUKHI                   = HB_TAG ('G','u','r','u'),
-  HB_SCRIPT_HAN                                = HB_TAG ('H','a','n','i'),
   HB_SCRIPT_HANGUL                     = HB_TAG ('H','a','n','g'),
+  HB_SCRIPT_HAN                                = HB_TAG ('H','a','n','i'),
   HB_SCRIPT_HEBREW                     = HB_TAG ('H','e','b','r'),
   HB_SCRIPT_HIRAGANA                   = HB_TAG ('H','i','r','a'),
+  HB_SCRIPT_INHERITED                  = HB_TAG ('Z','i','n','h'),
   HB_SCRIPT_KANNADA                    = HB_TAG ('K','n','d','a'),
   HB_SCRIPT_KATAKANA                   = HB_TAG ('K','a','n','a'),
-  HB_SCRIPT_KHMER                      = HB_TAG ('K','h','m','r'),
   HB_SCRIPT_LAO                                = HB_TAG ('L','a','o','o'),
   HB_SCRIPT_LATIN                      = HB_TAG ('L','a','t','n'),
   HB_SCRIPT_MALAYALAM                  = HB_TAG ('M','l','y','m'),
   HB_SCRIPT_MONGOLIAN                  = HB_TAG ('M','o','n','g'),
-  HB_SCRIPT_MYANMAR                    = HB_TAG ('M','y','m','r'),
   HB_SCRIPT_OGHAM                      = HB_TAG ('O','g','a','m'),
   HB_SCRIPT_ORIYA                      = HB_TAG ('O','r','y','a'),
   HB_SCRIPT_RUNIC                      = HB_TAG ('R','u','n','r'),
-  HB_SCRIPT_SINHALA                    = HB_TAG ('S','i','n','h'),
   HB_SCRIPT_SYRIAC                     = HB_TAG ('S','y','r','c'),
   HB_SCRIPT_TAMIL                      = HB_TAG ('T','a','m','l'),
   HB_SCRIPT_TELUGU                     = HB_TAG ('T','e','l','u'),
-  HB_SCRIPT_THAANA                     = HB_TAG ('T','h','a','a'),
   HB_SCRIPT_THAI                       = HB_TAG ('T','h','a','i'),
-  HB_SCRIPT_TIBETAN                    = HB_TAG ('T','i','b','t'),
-  HB_SCRIPT_CANADIAN_ABORIGINAL                = HB_TAG ('C','a','n','s'),
   HB_SCRIPT_YI                         = HB_TAG ('Y','i','i','i'),
 
+  /* Unicode-2.0 additions */
+  HB_SCRIPT_TIBETAN                    = HB_TAG ('T','i','b','t'),
+
+  /* Unicode-3.0 additions */
+  HB_SCRIPT_ETHIOPIC                   = HB_TAG ('E','t','h','i'),
+  HB_SCRIPT_KHMER                      = HB_TAG ('K','h','m','r'),
+  HB_SCRIPT_MYANMAR                    = HB_TAG ('M','y','m','r'),
+  HB_SCRIPT_SINHALA                    = HB_TAG ('S','i','n','h'),
+  HB_SCRIPT_THAANA                     = HB_TAG ('T','h','a','a'),
+
   /* Unicode-3.1 additions */
   HB_SCRIPT_DESERET                    = HB_TAG ('D','s','r','t'),
   HB_SCRIPT_GOTHIC                     = HB_TAG ('G','o','t','h'),
@@ -231,41 +237,41 @@ typedef enum
   HB_SCRIPT_BRAILLE                    = HB_TAG ('B','r','a','i'),
   HB_SCRIPT_CYPRIOT                    = HB_TAG ('C','p','r','t'),
   HB_SCRIPT_LIMBU                      = HB_TAG ('L','i','m','b'),
+  HB_SCRIPT_LINEAR_B                   = HB_TAG ('L','i','n','b'),
   HB_SCRIPT_OSMANYA                    = HB_TAG ('O','s','m','a'),
   HB_SCRIPT_SHAVIAN                    = HB_TAG ('S','h','a','w'),
-  HB_SCRIPT_LINEAR_B                   = HB_TAG ('L','i','n','b'),
   HB_SCRIPT_TAI_LE                     = HB_TAG ('T','a','l','e'),
   HB_SCRIPT_UGARITIC                   = HB_TAG ('U','g','a','r'),
 
   /* Unicode-4.1 additions */
-  HB_SCRIPT_NEW_TAI_LUE                        = HB_TAG ('T','a','l','u'),
   HB_SCRIPT_BUGINESE                   = HB_TAG ('B','u','g','i'),
   HB_SCRIPT_GLAGOLITIC                 = HB_TAG ('G','l','a','g'),
-  HB_SCRIPT_TIFINAGH                   = HB_TAG ('T','f','n','g'),
-  HB_SCRIPT_SYLOTI_NAGRI               = HB_TAG ('S','y','l','o'),
-  HB_SCRIPT_OLD_PERSIAN                        = HB_TAG ('X','p','e','o'),
   HB_SCRIPT_KHAROSHTHI                 = HB_TAG ('K','h','a','r'),
+  HB_SCRIPT_NEW_TAI_LUE                        = HB_TAG ('T','a','l','u'),
+  HB_SCRIPT_OLD_PERSIAN                        = HB_TAG ('X','p','e','o'),
+  HB_SCRIPT_SYLOTI_NAGRI               = HB_TAG ('S','y','l','o'),
+  HB_SCRIPT_TIFINAGH                   = HB_TAG ('T','f','n','g'),
 
   /* Unicode-5.0 additions */
-  HB_SCRIPT_UNKNOWN                    = HB_TAG ('Z','z','z','z'),
   HB_SCRIPT_BALINESE                   = HB_TAG ('B','a','l','i'),
   HB_SCRIPT_CUNEIFORM                  = HB_TAG ('X','s','u','x'),
-  HB_SCRIPT_PHOENICIAN                 = HB_TAG ('P','h','n','x'),
-  HB_SCRIPT_PHAGS_PA                   = HB_TAG ('P','h','a','g'),
   HB_SCRIPT_NKO                                = HB_TAG ('N','k','o','o'),
+  HB_SCRIPT_PHAGS_PA                   = HB_TAG ('P','h','a','g'),
+  HB_SCRIPT_PHOENICIAN                 = HB_TAG ('P','h','n','x'),
+  HB_SCRIPT_UNKNOWN                    = HB_TAG ('Z','z','z','z'),
 
   /* Unicode-5.1 additions */
+  HB_SCRIPT_CARIAN                     = HB_TAG ('C','a','r','i'),
+  HB_SCRIPT_CHAM                       = HB_TAG ('C','h','a','m'),
   HB_SCRIPT_KAYAH_LI                   = HB_TAG ('K','a','l','i'),
   HB_SCRIPT_LEPCHA                     = HB_TAG ('L','e','p','c'),
+  HB_SCRIPT_LYCIAN                     = HB_TAG ('L','y','c','i'),
+  HB_SCRIPT_LYDIAN                     = HB_TAG ('L','y','d','i'),
+  HB_SCRIPT_OL_CHIKI                   = HB_TAG ('O','l','c','k'),
   HB_SCRIPT_REJANG                     = HB_TAG ('R','j','n','g'),
-  HB_SCRIPT_SUNDANESE                  = HB_TAG ('S','u','n','d'),
   HB_SCRIPT_SAURASHTRA                 = HB_TAG ('S','a','u','r'),
-  HB_SCRIPT_CHAM                       = HB_TAG ('C','h','a','m'),
-  HB_SCRIPT_OL_CHIKI                   = HB_TAG ('O','l','c','k'),
+  HB_SCRIPT_SUNDANESE                  = HB_TAG ('S','u','n','d'),
   HB_SCRIPT_VAI                                = HB_TAG ('V','a','i','i'),
-  HB_SCRIPT_CARIAN                     = HB_TAG ('C','a','r','i'),
-  HB_SCRIPT_LYCIAN                     = HB_TAG ('L','y','c','i'),
-  HB_SCRIPT_LYDIAN                     = HB_TAG ('L','y','d','i'),
 
   /* Unicode-5.2 additions */
   HB_SCRIPT_AVESTAN                    = HB_TAG ('A','v','s','t'),