Behdad Esfahbod
f9edf16725
Add buffer serialization / deserialization API
...
Two output formats for now: TEXT, and JSON. For example:
hb-shape --output-format=json
Deserialization API is added, but not implemented yet.
2012-11-15 13:10:07 -08:00
Behdad Esfahbod
fd0de881f4
Avoid C++ undefined behavior
...
https://bugzilla.mozilla.org/show_bug.cgi?id=810823
2012-11-15 10:48:50 -08:00
Behdad Esfahbod
f41dc2d35b
Fix undefined behavior in Indic dottedcircle
...
Chromium Issue 158998: Conditional jump in harfbuzz-ng
http://code.google.com/p/chromium/issues/detail?id=158998
2012-11-15 10:36:43 -08:00
Behdad Esfahbod
1eb3e94fe9
[Thai] Implement PUA-based fallback shaping
...
As explained here:
http://linux.thai.net/~thep/th-otf/shaping.html
Our output now matches Uniscribe for old fonts (eg. XP Tahoma) with no
Thai GSUB table.
2012-11-14 17:53:09 -08:00
Behdad Esfahbod
851784f837
Improve shaper selection
2012-11-14 17:53:09 -08:00
Behdad Esfahbod
f3584d3a3a
Add test cases for Thai PUA shaping
2012-11-14 17:53:06 -08:00
Behdad Esfahbod
43f04a7456
Move Thai shaper into a separate file
2012-11-14 15:51:54 -08:00
Behdad Esfahbod
ba82325b7a
Add note re 'Phags-pa letter U+A872, which is Joining_Type=L
2012-11-14 15:36:53 -08:00
Behdad Esfahbod
d469fadce8
[Indic] Exchange abort() for assert()
2012-11-14 15:07:36 -08:00
Behdad Esfahbod
0f80a89de9
Don't route Kharoshthi through the Indic shaper
...
It's a simple, right-to-left, script.
2012-11-14 15:05:19 -08:00
Behdad Esfahbod
e67072bb17
[Indic] Handle overstruck matra position
2012-11-14 15:00:53 -08:00
Behdad Esfahbod
7e99e4f074
Reposition Lao marks
...
Lao marks are center-aligned, unlike Thai ones.
2012-11-14 14:09:46 -08:00
Behdad Esfahbod
865745b5b8
Don't do fallback positioning for Indic and Thai shapers
2012-11-14 13:48:26 -08:00
Behdad Esfahbod
981748cb2e
[Indic] If Khmer fonts have a 'liga' feature, use generic shaper
...
Seems to produce more coherent results than trying the Indic shaper on
them. I'm looking at you, Kh-* fonts...
2012-11-14 13:38:16 -08:00
Behdad Esfahbod
6b19fa4862
Adjust diff rule for the new hb-shape output format
2012-11-14 11:38:50 -08:00
Behdad Esfahbod
dde5506fd9
[Indic] Don't move virama with left matra
...
This is important for the Sinhala U+0DDA split matra since it decomposes
to U+0DD9,U+0DCA where U+0DD9 is a left matra and U+0DCA is the virama.
We don't want to move the virama with the left matra.
TEST: U+0D9A,U+0DDA
Note that we were already doing this in the Uniscribe bug compatibility
mode. We now do it all the time.
2012-11-14 11:37:04 -08:00
Behdad Esfahbod
82c4d9880a
Add Sinhala test case for split matra U+0DDA
2012-11-14 10:56:02 -08:00
Behdad Esfahbod
d04b128531
Fix test
2012-11-14 10:53:10 -08:00
Behdad Esfahbod
92f9bfed42
Minor
2012-11-13 16:50:45 -08:00
Behdad Esfahbod
66ac2ff32e
API change: Remove "mask" from hb_buffer_add()
...
I don't expect anybody using hb_buffer_add(), so this shouldn't break
anyone's code.
2012-11-13 16:26:32 -08:00
Behdad Esfahbod
407f80d625
[util] Add --bot / --eot / --preserve-default-ignorables
2012-11-13 15:33:27 -08:00
Behdad Esfahbod
78d41d8d69
Minor
2012-11-13 15:15:09 -08:00
Behdad Esfahbod
321f73c16e
[util] Add --text-before and --text-after to hb-shape / hb-view
...
Use with Arabic, for example, to see the effect on joining.
2012-11-13 15:12:24 -08:00
Behdad Esfahbod
e13f8d280b
Fix UTF-8 backward iteration
...
Ouch!
2012-11-13 15:12:06 -08:00
Behdad Esfahbod
5669a6cf41
[Arabic] Fix post-context handling
...
Ouch!
2012-11-13 15:11:51 -08:00
Behdad Esfahbod
0c7df22228
Add buffer flags
...
New API:
hb_buffer_flags_t
HB_BUFFER_FLAGS_DEFAULT
HB_BUFFER_FLAG_BOT
HB_BUFFER_FLAG_EOT
HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES
hb_buffer_set_flags()
hb_buffer_get_flags()
We use the BOT flag to decide whether to insert dottedcircle if the
first char in the buffer is a combining mark.
The PRESERVE_DEFAULT_IGNORABLES flag prevents removal of characters like
ZWNJ/ZWJ/...
2012-11-13 14:42:35 -08:00
Behdad Esfahbod
1c7e55511a
Minor fix
...
Ouch
2012-11-13 14:42:22 -08:00
Behdad Esfahbod
c8d4f8b0fe
Minor
2012-11-13 14:10:19 -08:00
Behdad Esfahbod
82ecaff736
Add hb_buffer_clear()
...
Which is like _reset(), but does NOT clear unicode-funcs.
2012-11-13 14:10:00 -08:00
Behdad Esfahbod
da43a92b04
0.9.6
2012-11-13 13:48:26 -08:00
Behdad Esfahbod
0736915b8e
[Indic] Decompose Sinhala split matras the way old HarfBuzz / Pango did
...
Had to do some refactoring to make this happen...
Under uniscribe bug compatibility mode, we still plit them
Uniscrie-style, but Jonathan and I convinced ourselves that there is no
harm doing this the Unicode way. This change makes that happen, and
unbreaks free Sinhala fonts.
2012-11-13 12:35:35 -08:00
Behdad Esfahbod
c8149ca85e
[hb-shape] Adjust postioning output format
...
1. If there is any offset (x or y), print out both x and y offsets.
2. Always print out the advance in the major direction of the buffer.
Ie. even for zero-advance glyphs, print a "+0". This is more intuitive.
2012-11-13 11:07:20 -08:00
Behdad Esfahbod
6fd5335622
[Indic] Update auto-generated Indic machine to reflect previous commit
2012-11-12 18:42:18 -08:00
Behdad Esfahbod
9cac1338c4
[Indic] Allow Consonant_Medial's after Consonant's
...
Mostly affects Myanmar, but also Tai Tham, Javanese, and Cham. The
latter three are untested (no fonts!).
2012-11-12 18:41:22 -08:00
Behdad Esfahbod
d187099cba
[Indic] Categorize Myanmar "tone marks" as nuktas
2012-11-12 18:38:06 -08:00
Behdad Esfahbod
8173f23f3f
[Indic] Add config for Myanmar
2012-11-12 18:37:20 -08:00
Behdad Esfahbod
9e92978c8a
[Indic] Route "new" Myanmar tag through the Indic shaper
...
Windows 8 adds a Myanmar shaper using the 'mym2' tag. Route that
through the Indic shaper. It's still very broken, but at least this
does NOT break old-style Myanmar shaping using the generic shaper.
2012-11-12 18:36:10 -08:00
Behdad Esfahbod
5ab3855f81
Choose shaper based on chosen OT script tag
...
For Arabic and Indic shapers, if the font doesn't have a script system
for the script, use default shaper.
Make an exception for Arabic script since we have fallback logic for
that one.
2012-11-12 18:27:42 -08:00
Behdad Esfahbod
9b37b4c580
Make planner available to complex shaper choosing logic
2012-11-12 18:23:38 -08:00
Behdad Esfahbod
6fddf2d739
Refactoring ot-map building to make chosen script available earlier
2012-11-12 18:03:07 -08:00
Behdad Esfahbod
f17ed8116e
Minor TODO
2012-11-12 17:48:46 -08:00
Behdad Esfahbod
de796a6fb9
Add "new" Myanmar OT Script tag
...
Windows 8 added support for Myanmar shaping using the "mym2" script tag,
even though Windows never supported the old "mymr" tag.
2012-11-12 17:27:51 -08:00
Behdad Esfahbod
27f52dc3f6
Add Myanmar tests from UTN#11
2012-11-12 16:54:03 -08:00
Behdad Esfahbod
e9334ce97b
Break build when ragel is needed and missing
2012-11-12 14:57:02 -08:00
Behdad Esfahbod
dba186711e
[Indic] Make more room in the table
...
To be used in upcoming commits.
2012-11-12 14:48:33 -08:00
Behdad Esfahbod
c4be991743
Typo
2012-11-12 14:27:33 -08:00
Behdad Esfahbod
56be677781
[Indic] Port 'pref' logic to look into font tables
...
...instead of using a hardcoded list of Ra characters.
2012-11-12 14:09:40 -08:00
Behdad Esfahbod
f2c0f59043
[Indic] Port reph handling logic to look into font features
...
...instead of using a hardcoded list of Ra characters.
2012-11-12 14:02:02 -08:00
Behdad Esfahbod
43149afbc0
Route MEETEI_MAYEK through the Indic shaper
...
Since it has a couple of left-"matras".
2012-11-12 13:34:17 -08:00
Behdad Esfahbod
d0905c3400
Minor
2012-11-12 13:03:52 -08:00