Commit Graph

3329 Commits

Author SHA1 Message Date
Behdad Esfahbod 29531128f2 [indic] Improve reph formation of Sinhala and Telugu
Sinhala and Telugu use "explicit" reph.  That is, the reph is formed by
a Ra,H,ZWJ sequence.  Previously, upon detecting this sequence, we were
checking checking whether the 'rphf' feature applies to the first two
glyphs of the sequence.  This is how the Microsoft fonts are designed.
However, testing with Noto shows that apparently Uniscribe also forms
the reph if the lookup ligates all three glyphs.  So, try both
sequences.

Doesn't affect test results for Sinhala or Telugu.

https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=232
2014-05-15 14:04:02 -06:00
Oleg Oshmyan 8c703f13bf Fix build with --coretext on older OS X
Fixes https://github.com/behdad/harfbuzz/pull/40
2014-05-14 17:42:20 -06:00
Behdad Esfahbod 439b05867c [myanmar] Allow MedialYa+Asat in the grammar
The grammar in the OT spec, and the existing Windows implementation
seem to be confused around where to allow Asat around the medial
consonants.

The previous grammar for medial group was allowing an Asat after
the medial group only if there was a medial Wa or Ha, but not if
there was only a medial Ya.  This doesn't make sense to me and
sounds reversed, as both medial Wa and Ha are below marks while
Asat is an above mark.  An Asat can come before the medial group
already (in fact, multiple ones can.  Why?!).  The medial Ya
however is a spacing mark and according to Roozbeh it's valid
to want an Asat on the medial Ya instead of the base, so it looks
to me like we want to allow an Asat after the medial group if
there *was* a Ya but not if there wasn't any.  Not wanting to
produce dotted-circle where Windows is not, this commit changes
the grammar to allow one Asat after the medial group no matter
what comes in the group.

Test: U+1002,103A,103B vs U+1002,103B,103A
2014-05-14 16:44:39 -06:00
Behdad Esfahbod 0a017ce169 Add tests for Myanmar Asat+MedialYa and MedialYa+Asat sequences
One of them currently produces dotted-circle.  Fix and detailed
message coming.
2014-05-14 16:44:16 -06:00
Behdad Esfahbod c95587618c [ot] Minor note re cmap subtable format 2 and 8 2014-05-14 00:42:18 -04:00
Behdad Esfahbod b7878cd58e [ot] Implement cmap subtable format 0 2014-05-13 21:47:51 -04:00
Behdad Esfahbod ca7b77431d [ot] Factor out code between cmap sutable format 12 and 13 2014-05-13 21:26:34 -04:00
Behdad Esfahbod 94759e8219 [ot] Factor out code between cmap subtable format 6 and 10 2014-05-13 21:19:49 -04:00
Behdad Esfahbod 1a8ffc5129 Minor 2014-05-13 21:06:39 -04:00
Behdad Esfahbod 91bbfca875 [ot] Implement cmap subtable formats 6 and 10 2014-05-12 18:19:29 -04:00
Behdad Esfahbod d294a2cb16 [ot] Implement cmap subtable format 13 2014-05-12 17:58:31 -04:00
Behdad Esfahbod 0d75793fae [ot] Implement cmap subtable format 12 2014-05-12 17:51:15 -04:00
Behdad Esfahbod 3608a6847e [ot] Hook up cmap table to hb_ot_font_funcs() 2014-05-12 13:46:29 -04:00
Behdad Esfahbod c8a4745299 [ot] Implement cmap subtable format 4 2014-05-09 19:55:51 -04:00
Behdad Esfahbod 4719621f20 Minor 2014-05-09 16:09:11 -04:00
Behdad Esfahbod 41ca1fbebf [ot] Start implementing cmap table 2014-05-09 15:35:56 -04:00
Behdad Esfahbod c7074b8798 [otlayout] Add GenericArrayOf::search() 2014-05-08 18:24:31 -04:00
Behdad Esfahbod 40a479797a [otlayout] Add GenericSortedArrayOf 2014-05-08 18:21:04 -04:00
Behdad Esfahbod 0ddecabc6d [main] Minor improvement to output 2014-05-01 16:01:40 -07:00
Behdad Esfahbod 79ecdc3f95 0.9.28 2014-04-28 14:30:44 -07:00
Behdad Esfahbod 6faff8e413 Add static storage classifier to inline functions
Before we were just relying on the compiler inlining them and not
leaving a trace in our public API.  Try to fix.  Hopefully not
breaking anyone's build.
2014-04-28 14:30:44 -07:00
Behdad Esfahbod 9c9411839b [tibetan] Reorder PADMA sign to occur after other below marks
Based on suggestion from Andrew Glass.

Test: U+0F40,0FC6,0F83
2014-04-28 12:44:14 -07:00
Behdad Esfahbod 659cd3c5b4 [test] Add test case for Tibetan sign PADMA
Currently fails.
2014-04-28 12:44:14 -07:00
Behdad Esfahbod ee703bc3ef Reshuffle test data 2014-04-28 12:44:14 -07:00
Behdad Esfahbod b082ef373c Typo 2014-04-25 11:48:10 -07:00
Behdad Esfahbod 828e109c7a [indic] Fix-up zero-context matching
commit b5a0f69e47
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Oct 17 18:04:23 2013 +0200

    [indic] Pass zero-context=false to would_substitute for newer scripts

    For scripts without an old/new spec distinction, use zero-context=false.
    This changes behavior in Sinhala / Khmer, but doesn't seem to regress.
    This will be useful and used in Javanese.

The *intention* was to change zero-context from true to false for scripts that
don't have old-vs-new specs.  However, checking the code, looks like we
essentially change zero-context to always be true; ie. we only changed things
for old-spec, and we broke them.  That's what causes this bug:

  https://bugs.freedesktop.org/show_bug.cgi?id=76705

The root of the bug is here:

  /* Use zero-context would_substitute() matching for new-spec of the main
   * Indic scripts, but not for old-spec or scripts with one spec only. */
  bool zero_context = indic_plan->config->has_old_spec || !indic_plan->is_old_spec;

Note that is_old_spec itself is:

  indic_plan->is_old_spec = indic_plan->config->has_old_spec && ((plan->map.chosen_script[0] & 0x000000FF) != '2');

It's easy to show that zero_context is now always true.  What we really meant was:

  bool zero_context = indic_plan->config->has_old_spec && !indic_plan->is_old_spec;

Ie, "&&" instead of "||".  We made this change supposedly to make Javanese
work.  But apparently we got it working regardless!  So I'm going to fix this
to only change the logic for old-spec and not touch other cases.
2014-04-18 16:53:34 -07:00
Behdad Esfahbod 66c6a48b6c Add HB_NO_MERGE_CLUSTERS
Disables any cluster-merging.  Added for testing purposes while
we investigate what kind of API to add for this.
2014-04-14 15:55:42 -07:00
Behdad Esfahbod 897c7b804d Add Khmer test for U+17DD 2014-04-10 16:27:13 -07:00
Behdad Esfahbod 50a00535cc Require gobject-introspection 1.34.0
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=75384
2014-04-10 16:03:29 -07:00
Behdad Esfahbod 5fd996c4a4 Further adjust check-defs and check-symbols for mipsel
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=74491
2014-04-09 16:38:26 -07:00
Behdad Esfahbod 75ec6d0bc5 Tighten up check-static-inits.sh check
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=74490
2014-04-09 16:33:32 -07:00
Behdad Esfahbod 110ec0714a Typo 2014-04-08 17:32:08 -07:00
Behdad Esfahbod 0682ddd05c [indic] Support U+17DD KHMER SIGN ATTHACAN
As requested by Martin Hosken on the list.
2014-04-08 16:03:35 -07:00
Primiano Tucci 05870ed62e Use __aarch64__ for 64-bit ARM detection, not __arm64__
Many GCC versions don't define __arm64__
2014-04-02 12:41:11 -07:00
Behdad Esfahbod 04d894e897 Minor 2014-03-25 12:11:32 -07:00
Behdad Esfahbod 903648437c Start fleshing out builtin font functions 2014-03-24 15:19:15 -07:00
Behdad Esfahbod 343a0e4e74 Add "make built-sources" 2014-03-21 14:37:27 -07:00
Behdad Esfahbod e9853f33d1 One more fix for build without gtk-doc
Fixes https://github.com/behdad/harfbuzz/pull/35
2014-03-21 12:53:08 -07:00
Konstantin Ritt b96af03c20 Fix build with --coretext on iOS
On iOS CoreText and CoreGraphics are stand-alone frameworks
2014-03-21 10:29:34 -07:00
Behdad Esfahbod ea5e8a02eb [util] Plug minor leak 2014-03-19 15:38:02 -07:00
Behdad Esfahbod 09732cc669 Remove dead warning 2014-03-19 12:00:17 -07:00
Behdad Esfahbod b934b0f9d1 Yet another try to make build without gtk-doc succeed 2014-03-19 11:52:40 -07:00
Behdad Esfahbod a7a5be090d Another try to make gtk-doc optional 2014-03-19 11:39:23 -07:00
Dominik Röttsches ba8c9d9293 0.9.27 2014-03-18 10:07:01 -07:00
Behdad Esfahbod a949cd329e Don't use "register" storage class specifier
Fixes warnings.
https://bugzilla.mozilla.org/show_bug.cgi?id=984081
2014-03-16 20:22:42 -07:00
jfkthame 0082dbeae6 wrap definition of free_langs() with HAVE_ATEXIT
...to avoid an unused function warning; see mozilla bug https://bugzilla.mozilla.org/show_bug.cgi?id=984081.
2014-03-16 13:40:33 -07:00
Behdad Esfahbod a9e25e90a4 [coretext] Add hb_coretext_face_create()
Not tested.
2014-03-14 19:55:46 -07:00
Behdad Esfahbod c79865f90f [coretext] Add coretext_aat shaper
This is a higher-priority shaper than default shaper ("ot"), but
only picks up fonts that have AAT "morx"/"mort" table.

Note that for this to work the font face's get_table() implementation
should know how to return the full font blob.

Based on patch from Konstantin Ritt.
2014-03-14 19:38:58 -04:00
Behdad Esfahbod af1aa362ca If HAVE_ICU_BUILTIN is defined, use hb-icu Unicode callbacks
Useful for Android / Chrome / etc when ICU is built in the same
library as harfbuzz itself.
2014-03-14 15:54:13 -07:00
Behdad Esfahbod 853daf857f Remove old cruft 2014-03-14 15:49:18 -07:00