Commit Graph

4253 Commits

Author SHA1 Message Date
Behdad Esfahbod 97d7c3a100 [graphite2] Fix bunch of stuff
Based on patch from Martin Hosken, with review from Jonathan and I.
2015-07-22 14:28:25 +01:00
Behdad Esfahbod ea7f8414e3 [graphite2] Enlarge buffer for output glyphs! 2015-07-22 13:53:45 +01:00
Behdad Esfahbod 9cd59db1af [USE] Implement topographical features for non-Arabic-joining scripts
This works per-syllable as per the spec, but we think it should be per
spacing/base/??? glyph instead.
2015-07-22 13:31:07 +01:00
Behdad Esfahbod ecb0b24ef3 Use foreach_cluster in Indic shaper 2015-07-22 12:02:09 +01:00
Behdad Esfahbod 56f71ff988 Use foreach_syllable in Myanmar shaper 2015-07-22 11:58:11 +01:00
Behdad Esfahbod ac596511a8 Add foreach_syllable
Use it in USE.
2015-07-22 11:54:02 +01:00
Behdad Esfahbod 8ba9e68968 [USE] Do Arabic-like shaping 2015-07-22 11:17:34 +01:00
Behdad Esfahbod 9daf2dfb6b Add hb-ot-shape-complex-arabic-private.hh 2015-07-22 10:49:13 +01:00
Behdad Esfahbod a51a661fe1 [USE] Only reorder the first component of a split left mark 2015-07-21 18:24:21 +01:00
Behdad Esfahbod a08a278b15 [USE] Don't compose split matras
Same logic as in Indic shaper.
2015-07-21 18:09:40 +01:00
Behdad Esfahbod 21cb08a417 Remove unused SEA shaper 2015-07-21 17:47:06 +01:00
Behdad Esfahbod db1e9cdd41 Retire SEA shaper in favor of USE 2015-07-21 17:46:06 +01:00
Behdad Esfahbod 87dde9c647 [USE] Only use USE shaper if script system is not DFLT
Same logic as Indic and SEA.
2015-07-21 17:31:43 +01:00
Behdad Esfahbod 29832d797f Route misc untested scripts through USE shaper instead of Indic
These were never tested with Indic shaper, and indeed wouldn't work there
because they didn't have their viramas and other config defined.  They are
all also supported by MS through USE, so route them there.
2015-07-21 17:24:18 +01:00
Behdad Esfahbod 40c4a991c7 [USE] Implement dotted-circle
This makes USE feature-complete as far as the Indic-like features
are concerned.
2015-07-21 17:14:54 +01:00
Behdad Esfahbod 7ce03ebe7c [USE] Move pref 2015-07-21 16:55:26 +01:00
Behdad Esfahbod 2d4b62ead9 [USE] Fix-up variation selectors and word joiner in table 2015-07-21 16:46:37 +01:00
Behdad Esfahbod ad7178227f [USE] Use a couple warnings 2015-07-21 16:43:27 +01:00
Behdad Esfahbod a85c4da9b1 [USE] Move rphf 2015-07-21 16:07:10 +01:00
Behdad Esfahbod 5b5617e066 Add FLAG_UNSAFE()
Unused right now.
2015-07-21 15:52:15 +01:00
Behdad Esfahbod f8160a4959 Add FLAG_SAFE() for values known to be small-enough
And add check to FLAG()
2015-07-21 15:50:02 +01:00
Behdad Esfahbod 366aeaad00 Add note re ASSERT_STATIC_EXPR_ZERO() 2015-07-21 15:45:48 +01:00
Behdad Esfahbod d6adca9fbb Remove unused macro ASSERT_STATIC_EXPR() 2015-07-21 15:17:27 +01:00
Behdad Esfahbod 1025e1a9e7 Use unsigned in FLAG() 2015-07-21 15:05:35 +01:00
Behdad Esfahbod cf59c7589c [USE] Use use_category() for rphf/pref memory 2015-07-21 14:51:45 +01:00
Behdad Esfahbod 595936ec25 [USE] Hook of rphf and pref custom processing
Still no reordering.
2015-07-21 14:15:35 +01:00
Behdad Esfahbod ba72801325 [USE] Add CGJ to table 2015-07-21 11:57:23 +01:00
Behdad Esfahbod 4febed61ed [USE] Set up features 2015-07-21 10:38:48 +01:00
Behdad Esfahbod 52a9577956 [USE] Hook up new scripts to USE shaper
Don't reroute scripts that we were routing to other shapers
before (just yet).
2015-07-21 10:02:04 +01:00
Behdad Esfahbod b4c0829bc1 [USE] Remove unused Unicode data enums from USE C++ side 2015-07-21 09:31:19 +01:00
Behdad Esfahbod 44910cef62 [USE] Finish converting Unicode positional categories to USE
Even compiles.
2015-07-20 18:01:10 +01:00
Behdad Esfahbod ad72555252 [USE] Map from Unicode data to USE syllabic categories
Positional sub-categories not applied yet.
2015-07-20 17:00:06 +01:00
Behdad Esfahbod 20e246e674 [USE] Start moving Unicode-to-USE mapping into Python code 2015-07-20 15:56:19 +01:00
Behdad Esfahbod eb74535cc2 [USE] Fix Number clusters
The spec wrongly has "H" where "HN" is meant.
2015-07-20 15:33:25 +01:00
Behdad Esfahbod a9663958fe [USE] Start putting together the shaper body 2015-07-20 14:24:55 +01:00
Behdad Esfahbod e0eabd7f67 [USE] Put a Ragel machine together
Grammar from the spec!
2015-07-20 13:50:38 +01:00
Behdad Esfahbod fd74b939b1 Minor 2015-07-20 13:30:45 +01:00
Behdad Esfahbod 5e5c8560cc [USE] Minor optimization of USE table 2015-07-20 12:01:20 +01:00
Behdad Esfahbod 14b12f92a9 [USE] Add Kharoshti test data from Unicode proposal 2015-07-20 11:57:44 +01:00
Behdad Esfahbod c48ff28852 [USE] Build Universal Shaping Engine data table from Unicode 8 files 2015-07-20 11:46:17 +01:00
Behdad Esfahbod e2c95116e1 [USE] Add Universal Shaping Engine to Makefile 2015-07-20 11:33:27 +01:00
Behdad Esfahbod 41a29af805 Update Arabic shaping table for Unicode 8.0 2015-07-15 01:39:57 +01:00
Behdad Esfahbod 64a2726e2c Add Unicode 8.0 scripts
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1183209
2015-07-15 01:36:39 +01:00
Behdad Esfahbod 9ae156b768 Fix pragma usage
https://bugs.freedesktop.org/show_bug.cgi?id=91228

Commit cdcdfe61b9 changed two `#pragma
message` to `#pragma error` in hb-unicode.cc, however MSVC uses #error,
just like the #else branch. `#pragma error` is an unknown pragma so
MSVC does not fail the build because of it, which I believe was the
intention of that commit.

If it's meant to be an #error, then the #ifdef for _MSC_VER can be
removed entirely.
2015-07-05 22:43:17 +01:00
ThePhD 8ad89f057d Spelling words is not my strong point. 2015-06-23 09:09:24 -04:00
ThePhD e0a828ecbd Back to using regular `strdup`, with an `hb-private.hh` fix that special-cases VC++'s
definition and usage of the words
2015-06-23 09:07:17 -04:00
ThePhD 8e545d5961 Fix all VC++ warnings and errors in the current commit's builds. 2015-06-22 22:29:04 -04:00
Behdad Esfahbod 5f13bbd9d4 When removing default-ignorables, merge clusters
Fixes test-shape, and:
https://code.google.com/p/chromium/issues/detail?id=497578
2015-06-19 13:31:49 -07:00
Behdad Esfahbod 82b521aeb7 Rewrite hide_default_ignorables
Separate the loops for the two cases of replacing with space
and deleting.  For deleting, use the out-buffer machinery.

Needed for upcoming cluster merge fix.
2015-06-19 13:26:03 -07:00
Behdad Esfahbod b3a2f6afba [test] Add test for cluster merging
Based on test from https://code.google.com/p/chromium/issues/detail?id=497578

Currently fails.  Basically, if there's a default_ignorable at the
start of text, and font has no space glyph, we remove the default_ignorable,
and that makes the first char in text to correspond to no cluster.

Fix coming.
2015-06-18 17:15:33 -07:00