Re: [HarfBuzz] Arabic vowels and shaping - incomplete behavior

2010-10-27 Thread Khaled Hosny
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

2010-10-27 Thread Behdad Esfahbod
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

2010-10-27 Thread Behdad Esfahbod
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

2010-10-27 Thread Tom Hacohen
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

2010-10-27 Thread Behdad Esfahbod
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

2010-10-27 Thread Behdad Esfahbod
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

2010-10-27 Thread Tom Hacohen
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