[HarfBuzz] harfbuzz-ng: Branch 'master' - 4 commits
Behdad Esfahbod
behdad at kemper.freedesktop.org
Thu May 24 10:04:56 PDT 2012
TODO | 18
src/hb-atomic-private.hh | 2
src/hb-ot-layout-gsub-table.hh | 10
src/hb-ot-layout-gsubgpos-private.hh | 23
test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/MANIFEST | 2
test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/MANIFEST | 5
test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/lam-alef.txt | 28
test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-arabic.txt | 695 ++++++++++
test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-persian.txt | 48
test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-urdu.txt | 188 ++
test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/ligature-diacritics.txt | 1
test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/ligature-diacritics.txt | 1
12 files changed, 993 insertions(+), 28 deletions(-)
New commits:
commit cde1c0114ba66a45d907e81a49bf625e0dc946b0
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Thu May 24 10:46:39 2012 -0400
Fix hb_atomic_int_set() implementation for HB_NO_MT
As pointed out by Jonathan Kew.
diff --git a/src/hb-atomic-private.hh b/src/hb-atomic-private.hh
index 03d7df1..684e856 100644
--- a/src/hb-atomic-private.hh
+++ b/src/hb-atomic-private.hh
@@ -79,7 +79,7 @@ typedef volatile int hb_atomic_int_t;
#define HB_ATOMIC_INT_NIL 1
typedef volatile int hb_atomic_int_t;
#define hb_atomic_int_add(AI, V) ((AI) += (V), (AI) - (V))
-#define hb_atomic_int_set(AI) ((void) ((AI) = (V)))
+#define hb_atomic_int_set(AI, V) ((void) ((AI) = (V)))
#define hb_atomic_int_get(AI) (AI)
#endif
commit 3b9b7133bea787f787170beea073f185e36d2327
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Wed May 23 22:00:25 2012 -0400
Update TODO
diff --git a/TODO b/TODO
index 18d730c..168ff9a 100644
--- a/TODO
+++ b/TODO
@@ -1,8 +1,8 @@
General fixes:
=============
-- Warn at compile time (and runtime with HB_DEBUG?) if no Unicode funcs
- found / set.
+- Warn at compile time (and runtime with HB_DEBUG?) if no Unicode / font
+ funcs found / set.
- In hb_shape(), assert if direction is INVALID.
@@ -26,10 +26,24 @@ General fixes:
- Synthetic GDEF.
+- Add Pango backend?
+
+- Add ICUlayout backend?
+
+- Add ICUlayout API?
+
+- Add Old HarfBuzz backend?
+
+- Add Old HarfBuzz API?
+
API issues to fix before 1.0:
============================
+- Add default font_funcs / Unicode funcs API and to utils.
+
+- Add init_func to font_funcs. Adjust ft.
+
- Add pkg-config files for glue codes (harfbuzz-glib, etc)
- Figure out how many .so objects, how to link, etc
commit ff3524c21aabf5d0d6014d1ce1b3e12ca5f0990f
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Wed May 23 21:50:43 2012 -0400
Add Arabic diacritics tests
diff --git a/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/MANIFEST b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/MANIFEST
index ff8270e..0ac75c3 100644
--- a/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/MANIFEST
+++ b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/MANIFEST
@@ -1 +1 @@
-ligature-diacritics.txt
+diacritics
diff --git a/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/MANIFEST b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/MANIFEST
new file mode 100644
index 0000000..df0e4b5
--- /dev/null
+++ b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/MANIFEST
@@ -0,0 +1,5 @@
+lam-alef.txt
+language-arabic.txt
+language-persian.txt
+language-urdu.txt
+ligature-diacritics.txt
diff --git a/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/lam-alef.txt b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/lam-alef.txt
new file mode 100644
index 0000000..26f6f7b
--- /dev/null
+++ b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/lam-alef.txt
@@ -0,0 +1,28 @@
+ÙÙا
+ÙÙÙا
+ÙاÙ
+ÙÙاÙ
+ÙÙا
+ÙÙÙا
+ÙاÙ
+ÙÙاÙ
+ÙÙÙا
+ÙÙÙÙا
+ÙاÙÙ
+ÙÙاÙÙ
+ÙÙÙا
+ÙÙÙÙا
+ÙاÙÙ
+ÙÙاÙÙ
+ÙÙا
+ÙÙÙا
+ÙاÙ
+ÙÙاÙ
+ÙÙا
+ÙÙÙا
+ÙاÙ
+ÙÙاÙ
+ÙÙا
+ÙÙÙا
+ÙاÙ
+ÙÙاÙ
diff --git a/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-arabic.txt b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-arabic.txt
new file mode 100644
index 0000000..24eb0c9
--- /dev/null
+++ b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-arabic.txt
@@ -0,0 +1,695 @@
+ÙÙÙÙ
+ÙاÙ
+ÙÙÙ
+ÙرÙ
+ÙÙÙÙ
+ÙدÙ
+رÙ
+رÙ
+ÙبÙÙ
+ÙرÙ
+Ù
ÙÙ
+ÙضÙÙ
+Ù
ÙÙ
+ÙدÙ
+ÙÙÙ
+ÙÙ
ÙÙ
+ÙتÙÙ
+ÙÙÙÙ
+ÙÙÙ
+تÙÙ
+Ø¡Ù
+دÙ
+ÙÙÙ
+ÙÙ
ÙÙ
+ÙÙ
ÙÙ
+Ø©Ù
+ØÙÙ
+ÙÙÙ
+ÙØÙÙ
+ÙرÙÙ
+ÙØ©Ù
+ÙÙ
+ÙÙ
Ù
+ÙÙÙ
+ÙÙÙÙ
+ÙعÙÙ
+ÙصÙÙ
+اÙ
+سÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙØ°Ù
+ÙجÙÙ
+بÙÙ
+غÙÙ
+ÙÙÙÙ
+ÙصÙÙ
+ÙÙÙ
+ÙدÙÙ
+ÙسÙÙÙ
+ÙزÙ
+ÙÙ
+ÙØ«ÙÙ
+بÙÙ
+ÙغÙÙ
+Ø®ÙÙ
+ÙدÙÙ
+ÙÙ
+ÙسÙÙ
+ÙÙÙÙ
+عÙÙ
+ÙÙÙÙ
+ÙÙÙÙÙ
+ÙÙÙ
+ÙØ·ÙÙ
+ÙبÙÙ
+ÙØ·ÙÙ
+ÙجÙÙÙ
+عÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙئÙÙ
+جÙÙ
+ÙØ°ÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙØ®ÙÙ
+ÙتÙÙ
+رÙ
+ÙÙÙ
+Ø·ÙÙ
+ÙÙÙ
+رÙ
+ÙÙ
+ÙضÙÙ
+بÙÙ
+عÙÙ
+زÙ
+Ù
ÙÙ
+ÙÙÙÙÙ
+ÙدÙ
+ÙدÙ
+Ø£Ù
+ÙÙ
ÙÙÙ
+ÙØ£Ù
+ÙرÙ
+ÙزÙ
+ØÙÙ
+Ù
ÙÙ
+ÙÙÙÙÙ
+ÙÙÙÙ
+ÙÙ
ÙÙ
+صÙÙ
+ضÙÙ
+ÙرÙ
+
+ÙÙ
+ÙÙ
+ÙÙ
ÙÙÙ
+ÙÙÙÙÙ
+ÙرÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+رÙ
+ÙÙÙÙÙ
+ÙجÙÙ
+ÙÙÙ
+ÙجÙÙÙ
+ÙاÙ
+ÙØ°Ù
+ÙÙÙÙ
+ÙغÙÙÙ
+ÙØ®ÙÙ
+ÙسÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ØÙÙ
+ÙجÙÙ
+ÙÙÙÙÙ
+Ø´ÙÙ
+جÙÙ
+ÙÙÙÙ
+سÙÙ
+ÙعÙÙ
+ÙدÙ
+دÙ
+رÙÙ
+ÙØ°Ù
+ÙبÙÙÙ
+ÙتÙÙ
+دÙ
+ÙتÙ
+ÙÙ
+سÙÙÙ
+ÙÙÙ
+دÙ
+دÙ
+ÙÙÙ
+جÙÙ
+ÙÙ
+ÙÙÙÙ
+ÙÙÙÙÙ
+ÙÙÙÙÙ
+ÙعÙÙ
+بÙÙ
+تÙÙ
+ÙÙÙÙÙ
+ÙÙÙÙÙ
+ÙسÙÙ
+Ù
ÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙ
+ÙتÙ
+سÙÙ
+ÙÙ
+ÙسÙÙ
+ÙتÙ
+Ø´ÙÙ
+ÙÙÙ
+صÙÙ
+ÙضÙÙÙ
+تÙ
+ÙÙÙÙÙ
+ÙØ·ÙÙÙ
+ÙÙÙÙ
+سÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙصÙÙÙ
+عÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙتÙÙ
+ÙÙ
ÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙ
+ÙØ·Ù
+ÙØ©Ù
+ÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙبÙÙ
+رÙ
+ØÙÙ
+تÙÙ
+ÙÙÙ
+زÙ
+ÙÙÙÙ
+ÙÙÙÙÙ
+تÙ
+سÙÙ
+ضÙ
+بÙÙ
+Ø®ÙÙ
+ÙÙ
+ضÙÙ
+ÙبÙÙÙ
+Ø®ÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙظÙÙ
+ظÙÙ
+Ø©Ù
+ÙغÙÙ
+ÙÙÙÙ
+Ø·ÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙبÙÙ
+دÙ
+Ø«ÙÙ
+ÙÙÙ
+ÙÙ
+ÙÙÙ
+ضÙÙ
+جÙÙ
+ÙÙ
+ÙØ´ÙÙ
+ÙÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙظÙÙ
+ÙسÙÙ
+ÙظÙÙÙ
+ÙبÙÙÙ
+رÙ
+تÙÙÙ
+بÙ
+ÙبÙÙ
+ÙزÙÙ
+ÙدÙ
+ÙÙÙÙ
+Ø·ÙÙ
+صÙÙ
+تÙÙ
+ÙغÙÙÙ
+ÙعÙÙ
+ÙÙÙÙÙ
+ÙرÙ
+ÙØ«ÙÙ
+سÙÙÙ
+Ø°Ù
+ÙÙ
Ù
+ÙÙÙÙÙ
+ÙزÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙØ´ÙÙÙ
+ÙسÙÙ
+Ø´Ù
+سÙ
+تÙÙ
+ÙÙÙÙ
+ÙØÙÙ
+ÙصÙ
+ÙØÙÙ
+ÙجÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙبÙÙ
+اÙ
+ÙÙÙ
+ÙØ´ÙÙ
+Ø®ÙÙ
+ÙسÙ
+ØÙÙ
+ÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙØ·ÙÙÙ
+سÙÙ
+زÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙ
+Ù
ÙÙÙ
+Ù
Ù
+ÙÙÙ
+ÙÙÙÙÙ
+ÙÙ
ÙÙ
+ÙدÙÙ
+ÙØÙÙ
+ÙتÙÙÙ
+رÙÙ
+ÙØ·Ù
+ÙرÙÙ
+عÙ
+زÙ
+Ø®ÙÙÙ
+ÙÙÙ
+ÙØ´ÙÙ
+ÙØÙÙ
+ÙجÙÙÙ
+Ù
Ù
+ÙÙÙÙ
+ÙÙÙ
+ÙغÙ
+ÙØ·Ù
+ÙØ´ÙÙ
+صÙÙ
+Ø´ÙÙ
+جÙÙÙ
+جÙÙ
+ÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙرÙ
+ÙاÙÙ
+Ø·ÙÙÙ
+Ø«ÙÙ
+تÙ
+بÙÙÙ
+ÙÙÙ
+ÙÙÙ
+صÙÙ
+دÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙعÙÙ
+ÙØ°Ù
+ÙØ©Ù
+دÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙؤÙ
+زÙ
+ØÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙضÙÙ
+ÙصÙÙ
+صÙÙÙ
+Ø´ÙÙÙ
+رÙÙ
+ÙÙÙÙ
+ÙاÙ
+عÙ
+Ø´ÙÙ
+ئÙÙ
+Ù
ÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙØ®ÙÙ
+ÙØ©Ù
+دÙÙ
+جÙÙ
+Ø©Ù
+ÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙزÙÙ
+ÙزÙ
+ÙاÙ
+عÙÙ
+ØÙÙÙ
+Ø«ÙÙ
+Ø£Ù
+ÙÙ
Ù
+ÙÙÙÙÙ
+عÙÙ
+صÙÙÙ
+ÙÙÙ
+Ù
ÙÙ
+Ù
Ù
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙ
ÙÙ
+ÙÙÙÙ
+ÙصÙÙÙ
+ÙصÙÙ
+ÙاÙÙ
+ØÙÙ
+Ø«ÙÙ
+اÙ
+ÙÙ
+ÙÙ
+ÙÙ
Ù
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙظÙÙÙ
+ÙزÙ
+ÙØ©Ù
+ÙØ£Ù
+عÙÙÙ
+Ø´ÙÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙØ·ÙÙÙ
+ÙØ·ÙÙ
+ÙضÙÙÙ
+ÙصÙÙ
+ÙسÙÙÙ
+ÙØÙ
+ÙØ«Ù
+ÙØ£Ù
+ضÙÙ
+تÙ
+اÙ
+Ù
ÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙ
ÙÙÙ
+ÙÙÙÙ
+ÙعÙÙ
+ÙرÙÙ
+ÙتÙÙ
+ÙتÙ
+ÙاÙ
+غÙÙ
+عÙ
+Ø·Ù
+Ø´ÙÙ
+زÙ
+تÙ
+بÙÙ
+بÙ
+ÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙعÙÙÙ
+ÙØ´ÙÙÙ
+ÙØ´ÙÙ
+ÙØ°Ù
+ÙدÙ
+Ø·ÙÙ
+Ø·ÙÙ
+ضÙÙÙ
+صÙÙ
+رÙÙ
+Ø°Ù
+جÙÙÙ
+بÙÙÙ
+ئÙÙ
+Ø¡Ù
+ÙÙÙÙ
+Ù
ÙÙÙ
+Ù
Ù
+ÙÙ
+ÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙعÙ
+ÙØ·Ù
+ÙسÙÙ
+ÙرÙ
+ÙØ°ÙÙ
+ÙدÙÙ
+ÙØ®ÙÙÙ
+ÙØÙ
+ÙجÙÙ
+ÙØ«ÙÙÙ
+ÙØ«ÙÙ
+ÙتÙ
+ÙبÙ
+ÙاÙ
+ÙØ¥Ù
+عÙ
+Ø·ÙÙÙ
+صÙÙÙ
+زÙ
+Ø®ÙÙÙ
+Ø®Ù
+Ø«ÙÙ
+تÙÙ
+تÙ
+بÙÙ
+Ø¡Ù
+Ø¡Ù
+ÙÙ
+ÙÙ
+Ù
Ù
+ÙÙ
+ÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙÙ
+ÙÙÙÙÙ
+ÙعÙ
+ÙعÙ
+ÙØ·ÙÙ
+ÙØ·ÙÙ
+ÙØ·ÙÙ
+ÙصÙ
+ÙرÙ
+ÙرÙÙ
+ÙØ°ÙÙ
+ÙدÙ
+ÙدÙÙ
+ÙØ®ÙÙ
+ÙجÙÙÙ
+ÙØ«Ù
+ÙتÙÙ
+ÙØ©Ù
+سÙ
+Ø®ÙÙ
+Ø«Ù
+تÙÙÙ
+تÙÙ
+Ø¥Ù
+Ø£Ù
+Ø£Ù
+Ø¡Ù
+Ø¡Ù
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙ
+ÙÙ
+ÙÙ
+ÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙÙÙ
+ÙÙÙÙÙ
+ÙÙÙÙÙ
+ÙÙ
ÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙÙ
+ÙعÙ
+ÙØ·ÙÙ
+ÙضÙÙ
+ÙضÙ
+ÙضÙÙ
+ÙصÙÙ
+
+ÙصÙÙÙ
+ÙصÙÙÙ
+ÙسÙÙÙ
+ÙدÙÙ
+ÙØ«ÙÙÙ
+ÙØ«ÙÙ
+ÙتÙÙÙ
+ÙبÙ
+ÙبÙ
+ÙØ£Ù
+غÙÙ
+ظÙÙ
+Ø·ÙÙ
+ضÙÙ
+ضÙ
+صÙ
+صÙ
+Ø´ÙÙ
+سÙÙ
+Ø°Ù
+Ø°Ù
+Ø®Ù
+Ø®ÙÙ
+Ø®ÙÙ
+ØÙÙÙ
+ØÙÙ
+بÙÙ
+بÙÙ
+بÙ
+ÙÙÙ
+ÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙÙ
+Ù
Ù
+Ù
Ù
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙ
+ÙÙÙÙ
+ÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙ
ÙÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙغÙÙ
+ÙغÙÙ
+ÙغÙÙ
+ÙعÙÙ
+ÙظÙ
+ÙظÙÙ
+ÙظÙ
+ÙØ·ÙÙ
+ÙØ·ÙÙÙ
+ÙØ·Ù
+ÙضÙ
+ÙصÙ
+ÙصÙ
+ÙصÙ
+ÙØ´Ù
+ÙسÙ
+ÙسÙÙÙ
+ÙزÙ
+ÙزÙ
+ÙرÙÙ
+ÙدÙÙ
+ÙØ®ÙÙ
+ÙØ®Ù
+ÙØÙÙÙ
+ÙجÙÙ
+ÙØ«Ù
+ÙØ«Ù
+ÙتÙÙ
+ÙتÙ
+ÙتÙ
+ÙبÙ
+ÙبÙÙ
+ÙبÙÙÙ
+ÙبÙ
+ÙبÙÙÙ
+Ùأٰ
+ÙØ£Ù
+ÙØ£Ù
+غÙÙ
+غÙÙÙ
+عÙ
+ظÙÙ
+ضÙ
+Ø´Ù
+سÙÙ
+زÙÙ
+دÙÙ
+ØÙ
+ØÙ
+جÙ
+Ø«Ù
+تÙÙ
+تÙ
+Ø©Ù
+Ø©Ù
+Ø©Ù
+Ø£Ù
+Ø£Ù
+Ø£Ù
diff --git a/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-persian.txt b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-persian.txt
new file mode 100644
index 0000000..00d9840
--- /dev/null
+++ b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-persian.txt
@@ -0,0 +1,48 @@
+ÙاÙ
+اÙ
+ÙÙÙ
+ÙÙ
+ÙÙ
+Ù¾ÙÙ
+ÙÙÙ
+سÙÙ
+اÙ
+اÙ
+ÙÙÙ
+ÙرÙ
+Ú¯ÙÙ
+Ú©ÙÙ
+Ú©ÙÙ
+ÚÙ
+ÙÛÙ
+ÙÙÙÙ
+ÙÙ
Ù
+ÙصÙÙ
+ÙسÙÙ
+رÙ
+دÙ
+دÙ
+ÛÙ
+ÙÙ
+ÙÙÙ
+ÙÙ
+ÙÛÙ°
+ÙÛÙ
+ÙÛÙÙ
+ÙÙÙ
+ÙÙ
ÙÙ
+ÙعÙÙ
+ÙØ´Ù
+ÙسÙ
+ÙزÙ
+ÙرÙ
+ÙØ°Ù
+ÙØ®ÙÙ
+ÙØÙ
+ÙØ«Ù
+ÙبÙÙ
+ÙبÙ
+ÙØ£Ù
+تÙÙ
+تÙ
+بÙÙ
diff --git a/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-urdu.txt b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-urdu.txt
new file mode 100644
index 0000000..fddb6e5
--- /dev/null
+++ b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/language-urdu.txt
@@ -0,0 +1,188 @@
+ÙÛÙÙ
+ÙÙ
ÙÙ
+ÙÙÙÙ
+ÙرÙ
+ÙاÙ
+ÙÙÙÙ
+ÙرÙ
+بÙÙ
+ÙÙÙ
+ÙÙ
+اÙ
+اÙ
+ÙÙÙÙ
+Ø«ÙÙ
+ÙجÙÙ
+Ù¾ÙÙ
+ÙصÙÙ
+ÙÛÙ°Ù
+ÙعÙÙ
+ÙØ®ÙÙ
+ÛÙÙ
+Ú©ÙÙ
+جÙÙ
+ÙÙÙ°Ù
+ÙظÙÙ
+دÙ
+ÙÚ¾ÙÙ
+اÙ
+Ú©ÙÙ
+ÙÙÙ
+بÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙ°Ù
+ÙدÙ
+Ù
ÙÙ
+Ú¯ÙÙ
+ÙÙÙ
+ÙسÙÙ
+سÙÙ
+رÙ
+ÙÚ¾ÙÙ
+Ù
ÙÙ
+ÙÙÙ
+ÙØ·ÙÙ
+Ø´ÙÙ
+سÙÙ
+ÙÚ¯ÙÙ
+زÙ
+ÙÚ¯ÙÙ
+ئÙÙ
+ÙÙÙ
+ÙÙÙ
+ÙÙÙÙ
+Ø®ÙÙ
+ÙÙÙ
+ÙبÙÙ
+ÛÙ
+تÙÙ
+بÙÙ
+ÙÙÙ
+بÙÙ
+ÙÛÙ°
+ÙÙ¹ÙÙ
+ÙÙ
+ÚÙÙ
+Ù¾ÙÙ
+ÙÙÙ
+دÙ
+ÙÙÙ
+ÙبٰÙ
+ÙÚÙÙ
+سÙÙ
+Ú©ÙÙ
+Ù¹ÙÙ
+ÙÙ
+ÙÛÙÙ
+ÙÛÙ
+ÙÙÙ°
+ÙÙ
+ÙÛÙ
+ÙÚ©ÙÙ
+ÙÙ
+Ù
ÙÙ
+ÙتÙÙ
+دÙ
+ÛÙÙ
+ÛÙÙ
+Ú¯ÙÙ
+Ù¾ÙÙ
+Ù¹Ù
+ÛÙ
+ÛÙÙ
+ÛÙÙ
+ÚÙÙ
+Ù
Ù
+ÙÙÙ
+ÙاÙ
+اÙ
+Ú¯ÙÙ
+ÙÙ
+ÙÛÙ
+ÙÚÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙجÙ
+اٰ
+ÙÚÙ
+ÙÙ¾ÙÙ
+ÙÙ¹ÙÙ
+ÙÙ
ÙÙ
+ÙÙÙÙ
+ÙØ®Ù
+رÙ
+تÙ
+بÙ
+ÛÙ
+Ú©ÙÙ
+Ù¹ÙÙ
+ÙÛÙ
+ÙÚºÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙعÙ
+ÙØ´ÙÙ
+ÙرÙ
+ÙØÙÙ
+ÙجÙÙ
+ÙبÙÙ
+Ø·ÙÙ
+Ø´Ù
+Ø´ÙÙ
+رÙ
+جÙÙ
+ئٰÙ
+ÛÙ°Ù
+ÛÙ
+ÚÙ
+ÚÙ
+ÚÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙ
+Ù
Ù°Ù
+Ù
Ù
+Ù
ÙÙ
+ÙÙÙÙ
+ÙÙ
+ÙÙÙ
+ÙÛÙ
+ÙÛÙÙ
+ÙÛÙÙ
+ÙÛÙ
+ÙÛÙÙ
+ÙÚºÙ
+ÙÚ¯ÙÙ
+ÙÚ©Ù°Ù
+ÙÚ©ÙÙ
+ÙÙ¹ÙÙ
+ÙÙÙÙ
+ÙÙÙ
+ÙÙÙÙ
+ÙÙÙÙ
+ÙصÙ
+ÙسÙÙ
+ÙزÙ
+ÙرÙ
+ÙدÙ
+ÙØÙÙ
+ÙØÙ
+ÙتÙÙ°Ù
+ÙتÙ
+ÙبÙÙ
+ÙاÙ
+عÙÙ
+ظÙ
+صÙÙ
+صÙÙ
+زÙ
+رÙ
+دÙÙ
+Ø®ÙÙ
+ØÙ
+ØÙÙ
+جÙ
+جÙÙ
+جÙÙ
+تÙÙ
diff --git a/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/ligature-diacritics.txt b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/ligature-diacritics.txt
new file mode 100644
index 0000000..80ba2f7
--- /dev/null
+++ b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/diacritics/ligature-diacritics.txt
@@ -0,0 +1 @@
+ÙÙا Ùا ÙÙÙÙ ÙÙÙÙ ÙÙÙ
diff --git a/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/ligature-diacritics.txt b/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/ligature-diacritics.txt
deleted file mode 100644
index 80ba2f7..0000000
--- a/test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/ligature-diacritics.txt
+++ /dev/null
@@ -1 +0,0 @@
-ÙÙا Ùا ÙÙÙÙ ÙÙÙÙ ÙÙÙ
commit ed2f1363a391add41f10cff18792003583a10257
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Tue May 22 22:12:22 2012 -0400
Fix substitution glyph class propagation
The old code was doing nothing.
Still got to find an example font+string that makes this matter, but
need this for fixing synthetic GDEF anyway.
diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh
index 452214a..f6a7575 100644
--- a/src/hb-ot-layout-gsub-table.hh
+++ b/src/hb-ot-layout-gsub-table.hh
@@ -212,9 +212,8 @@ struct Sequence
TRACE_APPLY ();
if (unlikely (!substitute.len)) return TRACE_RETURN (false);
- if (c->property & HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE)
- c->guess_glyph_class (HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH);
- c->replace_glyphs_be16 (1, substitute.len, (const uint16_t *) substitute.array);
+ unsigned int klass = c->property & HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE ? HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH : 0;
+ c->replace_glyphs_be16 (1, substitute.len, (const uint16_t *) substitute.array, klass);
return TRACE_RETURN (true);
}
@@ -495,8 +494,7 @@ struct Ligature
if (likely (c->buffer->info[skippy_iter.idx].codepoint != component[i])) return TRACE_RETURN (false);
}
- if (first_was_mark && found_non_mark)
- c->guess_glyph_class (HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE);
+ unsigned int klass = first_was_mark && found_non_mark ? HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE : 0;
/* Allocate new ligature id */
unsigned int lig_id = allocate_lig_id (c->buffer);
@@ -504,7 +502,7 @@ struct Ligature
if (skippy_iter.idx < c->buffer->idx + count) /* No input glyphs skipped */
{
- c->replace_glyphs_be16 (count, 1, (const uint16_t *) &ligGlyph);
+ c->replace_glyphs_be16 (count, 1, (const uint16_t *) &ligGlyph, klass);
}
else
{
diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh
index 919360f..a2e4b2f 100644
--- a/src/hb-ot-layout-gsubgpos-private.hh
+++ b/src/hb-ot-layout-gsubgpos-private.hh
@@ -222,31 +222,20 @@ struct hb_apply_context_t
- inline void replace_glyph (hb_codepoint_t glyph_index) const
+ inline void replace_glyph (hb_codepoint_t glyph_index,
+ unsigned int klass = 0) const
{
- clear_property ();
+ buffer->cur().props_cache() = klass; /*XXX if has gdef? */
buffer->replace_glyph (glyph_index);
}
inline void replace_glyphs_be16 (unsigned int num_in,
unsigned int num_out,
- const uint16_t *glyph_data_be) const
+ const uint16_t *glyph_data_be,
+ unsigned int klass = 0) const
{
- clear_property ();
+ buffer->cur().props_cache() = klass; /* XXX if has gdef? */
buffer->replace_glyphs_be16 (num_in, num_out, glyph_data_be);
}
-
- inline void guess_glyph_class (unsigned int klass)
- {
- /* XXX if ! has gdef */
- buffer->cur().props_cache() = klass;
- }
-
- private:
- inline void clear_property (void) const
- {
- /* XXX if has gdef */
- buffer->cur().props_cache() = 0;
- }
};
More information about the HarfBuzz
mailing list