Behdad Esfahbod
ae2b854eab
Move code around
2014-06-03 16:59:09 -04:00
Behdad Esfahbod
17c3b809f4
[indic] Treat U+A8E0..A8F1 as OT_A instead of OT_VD
...
Apparently they can intermix with other OT_A.
Test: U+0915,A8E2,1CD0
2014-06-02 15:08:18 -04:00
Behdad Esfahbod
6ae13f257c
[graphite2] Fix cluster mapping
...
Patch from Martin Hosken. I expect this to fix the following bugs:
https://bugs.freedesktop.org/show_bug.cgi?id=75076
https://bugzilla.gnome.org/show_bug.cgi?id=723582
https://bugzilla.redhat.com/show_bug.cgi?id=998812
2014-05-30 17:38:14 -04:00
Behdad Esfahbod
7977ca17aa
[indic] Allow decimal and Brahmi digits as placeholders
...
Tests: U+0967,0951 U+0031,093F
2014-05-29 15:34:26 -04:00
Behdad Esfahbod
e8b5d64039
[indic] Do NOT allow reph formation on placeholders
...
Only allow it on DOTTED CIRCLE. No effect on test numbers.
Test: U+0930,094D,00A0
2014-05-29 15:20:15 -04:00
Behdad Esfahbod
52b562a6a0
[indic] Clean up a bit
...
No functional change intended.
2014-05-27 18:19:52 -04:00
Behdad Esfahbod
3bf652b907
[indic] Treat U+002D and U+2010..2014 as placeholders
2014-05-27 18:07:26 -04:00
Behdad Esfahbod
e0de95f402
[indic] Treat U+00D7 MULTIPLICATION SIGN as placeholder
2014-05-27 17:58:34 -04:00
Behdad Esfahbod
cf78dd483c
[indic/myanmar] Rename OT_NBSP to OT_PLACEHOLDER
2014-05-27 17:53:37 -04:00
Behdad Esfahbod
186ece94c8
[myanmar] Use OT_NBSP instead of OT_DOTTEDCIRCLE for OT_GB
...
No functional change.
2014-05-27 17:49:45 -04:00
Behdad Esfahbod
cf71d28c38
[indic/myanmar] Refactor a few macros
2014-05-27 17:47:43 -04:00
Behdad Esfahbod
2307268e01
[indic] Treat U+0A72..0A73 like regular consonants
...
Unicode 6.x IndicSyllableCategory categorizes them as
placeholders, but they can subjoin.
2014-05-27 17:39:01 -04:00
Behdad Esfahbod
e9b2a4cfe5
[indic] Support U+1CED
2014-05-23 15:49:10 -04:00
Behdad Esfahbod
d19f8e8570
[indic] Support U+A8F2..A8F7,1CE9..1CEC,1CEE..1CF1
2014-05-23 15:47:36 -04:00
Behdad Esfahbod
ddbdfcbf1c
[indic] Simplify grammar
...
No functional change.
2014-05-23 15:39:55 -04:00
Behdad Esfahbod
4e9b1f662b
[indic] Always start new syllable for Avagraha
...
In fact, the previous grammar was ambigious. No functional
change.
2014-05-23 15:38:42 -04:00
Behdad Esfahbod
9f9bd9bf31
[indic] Rename avagraha cluster to symbol cluster
...
In anticipation of adding more characters to that class of clusters.
2014-05-23 15:35:38 -04:00
Behdad Esfahbod
a498565ced
[indic] Support U+1CF2,U+1CF3
2014-05-22 19:39:56 -04:00
Behdad Esfahbod
ecb98babba
[indic] Support U+1CE2..U+1CE8
2014-05-22 19:36:21 -04:00
Behdad Esfahbod
37bf2c9224
Minor
2014-05-22 19:35:17 -04:00
Behdad Esfahbod
131e17ff9a
[indic] Support U+1CF5,1CF6
2014-05-22 19:33:10 -04:00
Behdad Esfahbod
72ead0cc72
[indic] Treat U+1CE1 as a tone-mark too
...
It's spacing, but otherwise the same as the other ones.
2014-05-22 19:12:10 -04:00
Behdad Esfahbod
e848bfae7c
[indic] Recategorize U+A8E0..A8F1 as OT_VD
...
Up to two of them come after all OT_A characters.
2014-05-22 18:50:34 -04:00
Behdad Esfahbod
c519536c34
[indic] Allow up to three tone marks
...
According to Roozbeh, there are valid combinations in Unicode
proposals for up to three. Previously we were allowing up to two.
2014-05-22 18:43:14 -04:00
Behdad Esfahbod
c11fc68339
[indic] Support more extended Devanagari tone marks
...
Also adjust U+0953,0954 handling.
2014-05-22 18:41:49 -04:00
Behdad Esfahbod
26c836e53d
[indic] Handle "Cantillation marks for the Samaveda"
2014-05-21 18:35:48 -04:00
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
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
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
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
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
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
09732cc669
Remove dead warning
2014-03-19 12:00:17 -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
Behdad Esfahbod
bb8ffb581b
Use AM_MISSING_PROG for ragel and git
2014-03-04 13:03:51 -08:00
Behdad Esfahbod
a82165248c
Only do fallback Hebrew composition if no GPOS 'mark' available
...
Apparently some modern fonts have proper GPOS mark positioning
tables, but undesirable precomposed forms! See thread
"Hebrew composition to presentation forms" and:
http://tex.stackexchange.com/questions/156775/having-trouble-with-vowel-positioning-in-ezra-sil-xelatex
Test case: U+fb1d,05d9,05b4
2014-02-18 15:53:56 -05:00
Werner Lemberg
db068d81cd
typo in ucdn's Makefile.am
2014-02-10 13:05:48 -05:00
Behdad Esfahbod
fbb2847f54
Improve MemoryBarrier() implementation
...
See thread "[HarfBuzz] compilation error of 0.9.26 with MinGW"
started by Werner.
2014-02-05 08:22:06 -05:00
Jonathan Kew
7691a154e5
Ensure hb_script_t can safely hold any hb_tag_t value it's given.
...
Fixes https://github.com/behdad/harfbuzz/pull/21
2014-01-29 16:09:16 -05:00
Behdad Esfahbod
c29993a181
[coretext] Handle surrogate pairs when generating notdef glyphs
...
Fixes github.com/behdad/harfbuzz/pull/19
2014-01-28 17:29:42 -05:00
Behdad Esfahbod
748b2782e4
[coretext] Minor optimization
2014-01-28 17:10:05 -05:00
Konstantin Ritt
24e6b11f12
Fix double destruction in case of OOM
2014-01-28 11:21:18 -05:00
Konstantin Ritt
083225916a
Micro optimizations
2014-01-28 11:14:12 -05:00
Konstantin Ritt
c9522de233
Make it possible to disable the fallback shaper at configure time
...
The OT shaper supersedes the fallback shaper in every case
and the latter become an extra weight for 99.9% of users.
2014-01-28 11:13:53 -05:00
Behdad Esfahbod
6775da3a7c
Fix clang warning 'private field 'xxx' is not used
...
Fixes https://github.com/behdad/harfbuzz/pull/16
2014-01-23 14:18:49 -05:00
Behdad Esfahbod
62299826f4
Fix typo in _hb_buffer_serialize_glyphs_text()
...
Fixes https://github.com/behdad/harfbuzz/pull/17
2014-01-23 14:11:03 -05:00
Behdad Esfahbod
ae23c24c32
[arabic] Disable 'cswh' by default
...
I believe Windows 8 disables it, and spec update dated
Jan 2014 also clearly says it's disabled by default:
http://www.microsoft.com/typography/OpenTypeDev/arabic/intro.htm#features
2014-01-22 11:03:02 -05:00
Behdad Esfahbod
08cf5d75ef
[ot] Don't try to compose if normalization is off
2014-01-22 07:53:55 -05:00
Behdad Esfahbod
0596343bfe
Merge pull request #13 from jfkthame/hangul-shaper
...
Tone-mark reordering and improved Old Hangul support
2014-01-22 04:43:51 -08:00
Jonathan Kew
62cb28dfc6
fixup for 64-bit windows build
2014-01-22 07:31:54 -05:00
Jonathan Kew
83d7e7915a
[hangul] Fix ordering of dotted circle with Hangul tone mark (reported by Dohyun Kim).
2014-01-20 19:49:47 +00:00
Jonathan Kew
deef186265
[hangul] Don't force zero-width for marks - this is not wanted for the Jamo Filler glyphs.
2014-01-20 10:38:27 +00:00
Jonathan Kew
391934db0a
[unicode] Exclude the Jamo Filler characters from Default_Ignorable, as some fonts want these to be visible/spacing glyphs.
2014-01-20 10:37:32 +00:00
Jonathan Kew
7244b3fc3b
[hangul] Reorder Hangul tone mark to beginning of syllable, unless font implements it using a zero-width glyph.
2014-01-20 10:35:51 +00:00
Jonathan Kew
103436838d
[hangul] Apply the appropriate *jmo features to decomposed syllables, including Old Hangul sequences that don't have Unicode compositions. Merge clusters in decomposed syllables.
2014-01-20 10:35:07 +00:00
Behdad Esfahbod
8fc1f7fe74
[ot/hangul] Don't decompose Hangul even when combining marks present
...
As discussed on
https://github.com/behdad/harfbuzz/pull/10#issuecomment-31442030
2014-01-02 17:04:04 +08:00
Behdad Esfahbod
64426ec73a
[ot] Simplify composing
...
Not tested. Ouch.
2014-01-02 14:33:10 +08:00
Behdad Esfahbod
8de20b1e8a
Add font->has_glyph()
2014-01-02 14:30:45 +08:00
Behdad Esfahbod
f6298e55ae
[fallback] Minor
2014-01-02 14:23:56 +08:00
Behdad Esfahbod
29ea403d67
[hangul] Fix decomposition logic
...
Seems to be working now.
2014-01-02 14:20:00 +08:00
Behdad Esfahbod
bdb20dafc3
[hangul] Fix decomposition
...
Part of https://github.com/behdad/harfbuzz/pull/10
2014-01-02 14:04:30 +08:00
Behdad Esfahbod
32478656ce
[hangul] Tighten up character categories
...
I had tried to expand to fill the blocks, but that sounds wrong in
retrospect.
2014-01-02 14:01:56 +08:00
Behdad Esfahbod
f14bb7de63
[ot] Separate out hebrew and tibetan shapers from default
...
Now default shaper is truly no-op.
2013-12-31 16:49:15 +08:00
Behdad Esfahbod
6300cd7253
[ot] Define HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT
2013-12-31 16:38:47 +08:00
Behdad Esfahbod
3d6ca0d32e
[ot] Simplify normalization_preference again
...
No shaper has more than one behavior re this, so no need for a callback.
2013-12-31 16:35:37 +08:00
Behdad Esfahbod
c98b7183f7
[ot] Add Hangul shaper
...
Not exhaustively tested, but I think I got the intended logic
right.
The logic can perhaps be simplified. Maybe we should disabled
normalization with this shaper. Then again, for now focusing on
correctness.
2013-12-31 16:23:48 +08:00
Behdad Esfahbod
15f67048e4
Reorder Tai Tham SAKOT to ensure it comes after any tone marks
2013-12-27 19:33:28 -05:00
Behdad Esfahbod
3216e44feb
[uniscribe] Fix scratch-buffer accounting
2013-12-23 14:39:23 -05:00
Behdad Esfahbod
beeb12c9af
Add TODO item
2013-12-22 22:53:27 -05:00