[HarfBuzz] harfbuzz-ng: Branch 'master' - 2 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Wed Mar 7 12:52:44 PST 2012


 src/gen-arabic-table.py                 |   11 +++---
 src/gen-indic-table.py                  |    9 +++--
 src/hb-common.cc                        |    8 ++++
 src/hb-common.h                         |   52 +++++++++++++++++---------------
 src/hb-ot-shape-complex-arabic-table.hh |    6 +++
 src/hb-ot-shape-complex-indic-table.hh  |    4 ++
 6 files changed, 58 insertions(+), 32 deletions(-)

New commits:
commit fa2673c1ee954ddbbfbfca7cced7b839d7776fc0
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Mar 7 15:52:02 2012 -0500

    More Unicode script age annotation, and a couple more RTL scripts
    
    Cross-checked with Mark Davis's spreadsheet at http://goo.gl/x9ilM

diff --git a/src/hb-common.cc b/src/hb-common.cc
index 170b75f..e003c09 100644
--- a/src/hb-common.cc
+++ b/src/hb-common.cc
@@ -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;
   }
 
diff --git a/src/hb-common.h b/src/hb-common.h
index 96093e4..b6a9279 100644
--- a/src/hb-common.h
+++ b/src/hb-common.h
@@ -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'),
commit 6d4016f1ba48d409800dc3281b93e5cd58c99d9f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Mar 7 15:33:14 2012 -0500

    Make src tests pass again

diff --git a/src/gen-arabic-table.py b/src/gen-arabic-table.py
index 8744fab..32bf66c 100755
--- a/src/gen-arabic-table.py
+++ b/src/gen-arabic-table.py
@@ -24,11 +24,13 @@ print " *"
 for line in header:
 	print " * %s" % (line.strip())
 print " */"
-
+print
+print "#ifndef HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH"
+print "#define HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH"
+print
 print "static const uint8_t joining_table[] ="
 print "{"
 
-
 min_u = 0x110000
 max_u = 0
 num = 0
@@ -71,15 +73,14 @@ for line in f:
 	else:
 		value = "JOINING_TYPE_" + fields[2]
 	print "  %s, /* %s */" % (value, '; '.join(fields))
-
 print
 print "};"
 print
-
 print "#define JOINING_TABLE_FIRST	0x%04X" % min_u
 print "#define JOINING_TABLE_LAST	0x%04X" % max_u
 print
-
+print "#endif /* HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH */"
+print
 print "/* == End of generated table == */"
 
 occupancy = num * 100 / (max_u - min_u + 1)
diff --git a/src/gen-indic-table.py b/src/gen-indic-table.py
index 72e6aaa..0474a27 100755
--- a/src/gen-indic-table.py
+++ b/src/gen-indic-table.py
@@ -74,9 +74,12 @@ for h in headers:
 	for l in h:
 		print " * %s" % (l.strip())
 print " */"
+print
+print "#ifndef HB_OT_SHAPE_COMPLEX_INDIC_TABLE_HH"
+print "#define HB_OT_SHAPE_COMPLEX_INDIC_TABLE_HH"
+print
 
 # Shorten values
-print
 short = [{
 	"Bindu":		'Bi',
 	"Visarga":		'Vs',
@@ -178,7 +181,6 @@ print "#define indic_offset_total %d" % offset
 print
 occupancy = used * 100. / total
 print "}; /* Table occupancy: %d%% */" % occupancy
-
 print
 print "static INDIC_TABLE_ELEMENT_TYPE"
 print "get_indic_categories (hb_codepoint_t u)"
@@ -190,7 +192,6 @@ for u,d in singles.items ():
 	print "  if (unlikely (u == 0x%04X)) return _(%s,%s);" % (u, short[0][d[0]], short[1][d[1]])
 print "  return _(x,x);"
 print "}"
-
 print
 print "#undef _"
 for i in range (2):
@@ -200,8 +201,8 @@ for i in range (2):
 	for v in vv:
 		print "#undef %s_%s" % \
 			(what_short[i], short[i][v])
-
 print
+print "#endif /* HB_OT_SHAPE_COMPLEX_INDIC_TABLE_HH */"
 print
 print "/* == End of generated table == */"
 
diff --git a/src/hb-ot-shape-complex-arabic-table.hh b/src/hb-ot-shape-complex-arabic-table.hh
index e7ee226..0ce0b36 100644
--- a/src/hb-ot-shape-complex-arabic-table.hh
+++ b/src/hb-ot-shape-complex-arabic-table.hh
@@ -9,6 +9,10 @@
  * # ArabicShaping-6.1.0.txt
  * # Date: 2011-04-15, 23:16:00 GMT [KW]
  */
+
+#ifndef HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH
+#define HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH
+
 static const uint8_t joining_table[] =
 {
 
@@ -720,4 +724,6 @@ static const uint8_t joining_table[] =
 #define JOINING_TABLE_FIRST	0x0600
 #define JOINING_TABLE_LAST	0x08AC
 
+#endif /* HB_OT_SHAPE_COMPLEX_ARABIC_TABLE_HH */
+
 /* == End of generated table == */
diff --git a/src/hb-ot-shape-complex-indic-table.hh b/src/hb-ot-shape-complex-indic-table.hh
index 40a7ae7..5b4b344 100644
--- a/src/hb-ot-shape-complex-indic-table.hh
+++ b/src/hb-ot-shape-complex-indic-table.hh
@@ -14,6 +14,9 @@
  * # Date: 2011-06-14, 18:26:00 GMT [KW, LI]
  */
 
+#ifndef HB_OT_SHAPE_COMPLEX_INDIC_TABLE_HH
+#define HB_OT_SHAPE_COMPLEX_INDIC_TABLE_HH
+
 
 #define ISC_A	INDIC_SYLLABIC_CATEGORY_AVAGRAHA		/*  11 chars; Avagraha */
 #define ISC_Bi	INDIC_SYLLABIC_CATEGORY_BINDU			/*  34 chars; Bindu */
@@ -864,5 +867,6 @@ get_indic_categories (hb_codepoint_t u)
 #undef IMC_TR
 #undef IMC_VOL
 
+#endif /* HB_OT_SHAPE_COMPLEX_INDIC_TABLE_HH */
 
 /* == End of generated table == */



More information about the HarfBuzz mailing list