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 <beh...@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 <beh...@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 <beh...@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 <beh...@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; - } };
_______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz