Re: [HarfBuzz] Arabic vowels and shaping - incomplete behavior
On Wed, Oct 27, 2010 at 01:28:38PM +0200, Tom Hacohen wrote: Hey, Is it just me, or do vowels break shaping in Arabic? It shouldn't, either the font is broken or you are not doing it right. Regards, Khaled -- Khaled Hosny Arabic localiser and member of Arabeyes.org team Free font developer ___ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Re: [HarfBuzz] Arabic vowels and shaping - incomplete behavior
On 10/27/10 07:28, Tom Hacohen wrote: Hey, Is it just me, or do vowels break shaping in Arabic? Pango has code to work around Arabic fonts that have no GDEF table, and no GPOS table. I've had planned to implement that in HarfBuzz but been putting it off for a while. I'll go ahead and do that today. What font are you using? behdad Any ideas? Example text that works in gtk but doesn't with my implementation: ضَلُّو Thanks, Tom. ___ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Re: [HarfBuzz] Arabic vowels and shaping - incomplete behavior
Maybe you can attach a screenshot at least? On 10/27/10 09:19, Tom Hacohen wrote: On Wed, 2010-10-27 at 14:26 +0200, Khaled Hosny wrote: On Wed, Oct 27, 2010 at 01:28:38PM +0200, Tom Hacohen wrote: Hey, Is it just me, or do vowels break shaping in Arabic? It shouldn't, either the font is broken or you are not doing it right. Regards, Khaled Probably the latter. What I'm currently doing produces (for the word ضَلُّو): infos[0] = {codepoint = 1390, mask = 1, cluster = 5, internal1 = 0, internal2 = 2} positions[0] = {x_advance = 2304, y_advance = 0, x_offset = 0, y_offset = 0, internal = 0} infos[1] = {codepoint = 5333, mask = 1, cluster = 3, internal1 = 0, internal2 = 8} positions[1] = {x_advance = 0, y_advance = 0, x_offset = 322, y_offset = 233, internal = 0} infos[2] = {codepoint = 1386, mask = 1, cluster = 2, internal1 = 0, internal2 = 2} positions[2] = {x_advance = 3520, y_advance = 0, x_offset = 0, y_offset = 0, internal = 0} infos[3] = {codepoint = 1396, mask = 1, cluster = 1, internal1 = 0, internal2 = 8} positions[3] = {x_advance = 0, y_advance = 0, x_offset = 206, y_offset = -934, internal = 0} infos[4] = {codepoint = 1377, mask = 1, cluster = 0, internal1 = 0, internal2 = 2} positions[4] = {x_advance = 5824, y_advance = 0, x_offset = 0, y_offset = 0, internal = 0} Which as you can see is 5 chars while the original string was 6 (the two vowels merged into one), but other chars didn't substituted. My font is DejaVuSans and I just checked with font forge, LAM does have a medial form in the font, furthermore, removing the vowels make it transform correctly. After thinking about it, I realized it's maybe because I didn't use Unicode functions with the harfbuzz buffer (disabled them, waiting for a non-glib implementation), since maybe harfbuzz depends on get combining class, but after enabling them I get: Program received signal SIGSEGV, Segmentation fault. _hb_ot_shape_complex_setup_masks_arabic (c=0xbfff9d30) at hb-ot-shape-complex-arabic.cc:712 712 c-buffer-info[i].mask |= mask_array[c-buffer-info[i].gproperty]; because c-buffer-info[i].gproperty == 65535 So I think there's still an issue. Language = en, Script = HB_SCRIPT_ARABIC, Buffer = as I said Anything more needed? Thanks, Tom. ___ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz ___ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Re: [HarfBuzz] Arabic vowels and shaping - incomplete behavior
On Wed, 2010-10-27 at 09:48 -0400, Behdad Esfahbod wrote: Maybe you can attach a screenshot at least? I just get isolated forms of all of them, anyhow, screenshot attached. But please also look at the bottom of the previous message where I described a SEGFAULT I was getting and also what I think I did wrong that made it not work in the first place. -- Tom. attachment: Screenshot-Notepad-1.png___ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Re: [HarfBuzz] Arabic vowels and shaping - incomplete behavior
On 10/27/10 09:58, Tom Hacohen wrote: On Wed, 2010-10-27 at 09:48 -0400, Behdad Esfahbod wrote: Maybe you can attach a screenshot at least? I just get isolated forms of all of them, anyhow, screenshot attached. I fixed that bug and pushed out this morning. Please check with master. But please also look at the bottom of the previous message where I described a SEGFAULT I was getting and also what I think I did wrong that made it not work in the first place. Busy debugging some other bug. Will check later if your problem persists. behdad -- Tom. ___ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Re: [HarfBuzz] Arabic vowels and shaping - incomplete behavior
On 10/27/10 09:19, Tom Hacohen wrote: because c-buffer-info[i].gproperty == 65535 So I think there's still an issue. Fixed that too. Pushed out. behdad ___ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Re: [HarfBuzz] Arabic vowels and shaping - incomplete behavior
On Wed, 2010-10-27 at 10:41 -0400, Behdad Esfahbod wrote: On 10/27/10 09:19, Tom Hacohen wrote: because c-buffer-info[i].gproperty == 65535 So I think there's still an issue. Fixed that too. Pushed out. Cool to know my assumptions were correct. Thank you very much, works like a charm. -- Tom. ___ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz