Commit Graph

143 Commits

Author SHA1 Message Date
Behdad Esfahbod 7a6686a589 [AAT] Fix mort ContextualSubtable offset access
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12312
2019-01-14 15:09:14 -05:00
Behdad Esfahbod 1043ddbee8 [aat] Minor 2018-12-27 18:27:11 -05:00
Ebrahim Byagowi e412008599 Remove redundant void from C++ sources (#1486) 2018-12-17 13:01:01 -05:00
Ebrahim Byagowi b2ebaa9afa Remove redundant 'inline' from methods (#1483) 2018-12-16 14:08:10 -05:00
Behdad Esfahbod fb05908213 Revert ugly fixes
Now that we have 6daf45e0, revert cryptic hacks...

This reverts commit abd81ed4f5.
This reverts commit 9c6921c08c.
This reverts commit d39760cabf.
This reverts commit fedd8e6c17.

Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
2018-11-30 20:56:15 -05:00
Behdad Esfahbod 9c6921c08c More...
hb-ot-layout-gsubgpos.hh:1707: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
...
2018-11-30 15:16:57 -05:00
Behdad Esfahbod 5c4fead734 Convert "static const hb_tag_t" constants to enum 2018-11-29 15:05:47 -05:00
Behdad Esfahbod 44cbd2ea3d Convert "static const bool" constants to anonymous enum 2018-11-29 14:56:27 -05:00
Behdad Esfahbod 2cb235d021 [aat.feat] Fix enum namespace 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 54f4c17f0a [feat] Rename API uses of setting to selector 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi a8726cb483 [feat] Use bsearch 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 19b6025534 [feat] Address @behdad comments 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 9212ec203c [feat] Complete feature types list 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 7a0471aa35 [feat] Turn AAT feature id into enum 2018-11-25 01:16:02 -05:00
Ebrahim Byagowi 95abd53758 [feat] Expose public API
* hb_aat_get_feature_settings
2018-11-25 01:16:01 -05:00
Behdad Esfahbod c405ed0509 [morx] Port to hb_sanitize_with_object_t 2018-11-24 23:46:15 -05:00
Behdad Esfahbod b3c5affc05 Simplify sanitize set_object() 2018-11-24 23:34:34 -05:00
Behdad Esfahbod 748198a671 Revert "[aat.morx] Remove set_object() business"
This reverts commit ae8ed58a6e.

Apparently this broke Apple Chancery from OS X 10.12 :(.
Investigating...
2018-11-24 22:16:59 -05:00
Behdad Esfahbod ae8ed58a6e [aat.morx] Remove set_object() business
With OS X 10.13 Apple Chancery fails to ligate if we limit each morx
sub-chain to its declared length.  Perhaps their newer compiler does
object-sharing across sub-chains.  Anyway, since that's a valid, if
unspecified, way to compile tables, remove enforcement.

Probably do the same with kern/kerx.
2018-11-24 17:14:09 -05:00
Behdad Esfahbod 20edc70d53 [morx/kerx] Fix sanitize regression
Broke in 8dcc1913a1

If sanitizer is left with another object, it wouldn't work.

Better fix coming soon.
2018-11-24 14:53:05 -05:00
Behdad Esfahbod 8dcc1913a1 [kerx/morx] Make sure object length is sanitized before accessing it 2018-11-24 09:48:06 -05:00
Behdad Esfahbod 758c9d68e2 [morx/kerx] Limit range to subtable when sanitizing 2018-11-22 22:16:12 -05:00
Behdad Esfahbod a9fe787a11 [sanitizer] Add reset_object(), make set_object() do bounds-check
Affects morx/kerx run-time only currently.  Will adjust their sanitize next.
2018-11-22 22:12:36 -05:00
Behdad Esfahbod 2c8188bf59 [kerx] Make sure subtables are non-zero-length
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11400
2018-11-22 22:02:19 -05:00
Behdad Esfahbod 29c5302376 [morx] Minor 2018-11-07 17:29:37 -05:00
Behdad Esfahbod 385f78b312 [aat] Remove deleted-glyhs after applying kerx/kern
Finally:  Fixes https://github.com/harfbuzz/harfbuzz/issues/1356

Test case:
$ ./hb-shape GeezaPro.ttc -u U+0628,U+064A,U+064E,U+0651,U+0629
[u0629.final.tehMarbuta=4+713|u064e_u0651.shaddaFatha=1@0,-200+0|u064a.medial.yeh=1+656|u0628.initial.beh=0+656]

The mark positioning (kern table CrossStream kerning) only works if deleted
glyph (as result of ligation) is still in stream and pushed through the
state machine.
2018-11-07 17:20:47 -05:00
Behdad Esfahbod 241ba7da51 [morx/kerx] Rename types 2018-11-07 11:51:40 -05:00
Behdad Esfahbod d5c88af4a2 [kerx] More towards sharing Format1 2018-11-07 11:20:14 -05:00
Behdad Esfahbod b693fd0dc6 [morx] Simplify 2018-11-07 11:10:24 -05:00
Behdad Esfahbod e890753ebb [morx] Minor 2018-11-07 10:59:53 -05:00
Behdad Esfahbod 17335a8161 Clean up buffer->swap_buffers() calls
That function checks for buffer->successful already.  No need
to check at call site.
2018-11-04 02:25:07 -05:00
Behdad Esfahbod 0382b7184a Use as_array in more places 2018-11-02 12:23:26 -04:00
Behdad Esfahbod 40b19fd469 [aat] Fallback to old style "Letter Case" small caps
Fixes https://github.com/harfbuzz/harfbuzz/issues/1342
2018-10-31 18:51:45 -07:00
Behdad Esfahbod 36e90ef56e [mort] Massage some more 2018-10-31 15:09:09 -07:00
Behdad Esfahbod cbaff4ef19 [mort] Some more 2018-10-31 15:06:12 -07:00
Behdad Esfahbod 3087046d31 [mort] Refactor offset-to-index mapping 2018-10-31 14:59:14 -07:00
Ebrahim Byagowi 2e639c47c9
[aat] Fix older compilers by not referencing enum directly (#1340) 2018-10-31 14:20:14 +03:30
Ebrahim Byagowi 642c9dcf1b
[aat] Minor, remove extra semicolons 2018-10-31 14:02:37 +03:30
Behdad Esfahbod c962d5e714 [mort] Make ligatures work
./hb-shape Apple_Chancery_10_12.ttf  "Th th ll te to tr fr fu fj"
[T_h=0+2308|space=2+569|t_h=3+1687|space=5+569|l_l=6+1108|space=8+569|t_e=9+1408|space=11+569|t_o=12+1531|space=14+569|t_r=15+1385|space=17+569|f_r=18+1432|space=20+569|f_u=21+1733|space=23+569|f_j=24+1098]

Part of https://github.com/harfbuzz/harfbuzz/issues/1331
2018-10-31 01:18:21 -07:00
Behdad Esfahbod c077989600 [mort] More Ligature work 2018-10-31 00:36:03 -07:00
Behdad Esfahbod 431c6e496b [mort] Some Ligature work 2018-10-31 00:15:00 -07:00
Behdad Esfahbod 28b68cffe4 [mort] Implement / adjust Contextual substitution 2018-10-30 23:54:29 -07:00
Behdad Esfahbod 9346b1f158 [morx] Remove stale comment 2018-10-30 20:04:13 -07:00
Behdad Esfahbod f864ef215e [mort] More massaging towards mort 2018-10-30 19:42:21 -07:00
Behdad Esfahbod 2d9467340b [mort] Fix version check in sanitize 2018-10-30 19:33:42 -07:00
Behdad Esfahbod c2527a1bc2 [mort] Make it compile / hook it up
Untested.
2018-10-30 19:26:39 -07:00
Behdad Esfahbod 933babdc07 [mort] Fixup on previous commit 2018-10-30 19:22:43 -07:00
Ebrahim Byagowi b053cabacd [mort] Bring back mort generalizations
Started by reverting https://github.com/harfbuzz/harfbuzz/commit/1f1c85a5

Just a starting point, if we agree even mort can come back.
2018-10-30 19:18:06 -07:00
Behdad Esfahbod 6aa019c4af [morx] Fix merge_cluster to end at last ligature component
Don't assume current position was a component in the ligature.
2018-10-26 22:02:17 -07:00
Behdad Esfahbod 00ae4be6bf [morx] Fix bailing out ligation at end-of-text
Check was after a move_to, which wouldn't work.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11147
2018-10-26 21:59:20 -07:00