Behdad Esfahbod
b4c6113032
Try fixing MSVC 2008 build
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
2018-11-10 16:35:39 -05:00
Behdad Esfahbod
f2e942f302
Fix hb_bytes_t's unused template array constructor
2018-11-10 16:11:14 -05:00
Behdad Esfahbod
6213a75b68
Add trivial casts to hb_bytes_t
2018-11-10 16:09:21 -05:00
Behdad Esfahbod
8bb97d2ce1
Revert back hb_bytes_t.cmp() to the scheme it was
...
But fix UBSan complaint.
There's nothing in hb_bytes_t that guarantees lexical ordering, and
ordering by length first is much faster.
2018-11-10 16:00:51 -05:00
Behdad Esfahbod
534e1d7694
Fix hb_bytes_t.cmp() for realz this time
2018-11-10 15:45:31 -05:00
Behdad Esfahbod
929f07dbfc
Fix hb_bytes_t.cmp()
...
Ouch!
2018-11-10 15:39:07 -05:00
Behdad Esfahbod
5547bfa9f2
Merge pull request #1376 from ebraminio/minor
...
[colr/feat/trak] minor
2018-11-10 15:35:12 -05:00
Ebrahim Byagowi
1d82b4761d
[colr/feat/trak] minor
2018-11-10 19:31:12 +03:30
Behdad Esfahbod
3a9fa8c026
[qsort] Fix O(N^2) behavior if all array elements are the same
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11327
Reported as https://github.com/noporpoise/sort_r/issues/7
2018-11-10 01:58:26 -05:00
Behdad Esfahbod
b308aaccf0
[post] Minor
2018-11-10 01:58:26 -05:00
Behdad Esfahbod
4111c3b8cd
[post] Move sanitize close to data fields
2018-11-10 01:58:26 -05:00
Behdad Esfahbod
e26e6dbb33
[post] Remove unnecessary hb_nonnull_ptr_t<>
2018-11-10 01:58:26 -05:00
Ebrahim Byagowi
6b8178c649
[glyf] minor
2018-11-10 02:42:08 +03:30
Behdad Esfahbod
5f97fe9956
Fix a few MSVC 2008 warnings
...
https://github.com/harfbuzz/harfbuzz/issues/1374
2018-11-09 10:01:50 -05:00
Behdad Esfahbod
f51bb6ee7b
Merge pull request #1358 from ebraminio/lcar
...
Hook AAT's lcar to _get_ligature_carets
2018-11-08 14:42:40 -05:00
Ebrahim Byagowi
b986fead0a
Hook AAT's lcar to _get_ligature_carets
2018-11-08 23:06:26 +03:30
Ebrahim Byagowi
2d987110c0
[aat] Minor
2018-11-08 21:46:26 +03:30
Behdad Esfahbod
9fae611740
[test/text-rendering-tests] Update from upstream
2018-11-08 12:26:38 -05:00
Ebrahim Byagowi
b989507fa6
[aat] Minor ( #1369 )
2018-11-08 20:48:54 +03:30
Ebrahim Byagowi
f90423847b
[just] Initial table implementation ( #1364 )
...
A starting point, its sanitization is not tested however
2018-11-08 19:17:02 +03:30
Ebrahim Byagowi
b8b00fb3c6
[aat] Support Lookup<OffsetTo<>>, needed by just and lcar ( #1368 )
2018-11-08 18:53:14 +03:30
Ebrahim Byagowi
073d0a9fbc
[ci] minor
2018-11-08 10:59:50 +03:30
Behdad Esfahbod
15326826bf
[aat] Ignore cross-stream offset of deleted-glyphs
...
I think it makes sense to accumulate it, but Ned tells me that's
what CoreText does.
2018-11-07 21:58:04 -05:00
Behdad Esfahbod
0bf76154f1
[fuzzing] Take whatever text we can
2018-11-07 19:12:27 -05:00
Behdad Esfahbod
517a1bac97
Merge pull request #1362 from harfbuzz/cross-kern
...
Vastly improve kern/kerx tables, including cross-stream "kerning"
2018-11-07 18:40:48 -05:00
Behdad Esfahbod
b18a56a290
[kerx] Comment
2018-11-07 18:13:22 -05:00
Behdad Esfahbod
006386be3a
[kern] Implement negative state numbers
...
Let the fuzzing bots rip this code apart...
2018-11-07 18:04:53 -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
1909072235
[aat] Add debug info to state machine
2018-11-07 16:42:16 -05:00
Behdad Esfahbod
ca23567f41
Disable fallback mark positioning if kern table has cross-stream kerning
...
Happens even if the cross-stream kerning is for cursive attachment only. Oh well..
2018-11-07 16:19:51 -05:00
Behdad Esfahbod
5cf6f94dfd
Don't apply both kerx and kern
...
Ouch!
2018-11-07 16:07:22 -05:00
Behdad Esfahbod
41cff7afc9
Minor
2018-11-07 16:05:36 -05:00
Behdad Esfahbod
9af983af24
[kern] Switch to dispatch
2018-11-07 16:03:09 -05:00
Behdad Esfahbod
bc06e2805a
[kerx/kern] Add has_cross_stream()
2018-11-07 16:02:40 -05:00
Behdad Esfahbod
ea579f9ccc
[kerx] Fix peculiar indexing that was needed previously
...
Not needed now that we use GPOS attachment for cursive kerx.
2018-11-07 15:50:23 -05:00
Behdad Esfahbod
6ee6cd93d8
[GPOS] Only mark unsafe-to-break if kerning happened
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1365
2018-11-07 15:40:55 -05:00
Behdad Esfahbod
501a364d9b
[GPOS] Add TODO item
2018-11-07 15:02:16 -05:00
Behdad Esfahbod
7a9629f2f1
[kerx] Implement CrossStream kerning for non-state-machine subtables
...
Untested.
2018-11-07 14:52:57 -05:00
Behdad Esfahbod
0eb4157011
[kerx] Disable backwards-kerning for non-state-machine tables
...
That's what the spec says for Backwards flag, only applicable to
formats 1 and 4.
2018-11-07 14:42:15 -05:00
Behdad Esfahbod
b2f687c256
[kerx] Use GPOS attachment facilities for CrossStream kerning
2018-11-07 14:38:29 -05:00
Behdad Esfahbod
e10a856eb2
[kerx] Format
2018-11-07 14:11:48 -05:00
Behdad Esfahbod
649cc3ef27
[kerx] Don't disable crossKerning if kern feature is off
2018-11-07 14:07:13 -05:00
Behdad Esfahbod
0c3b061ac2
[kern] Apply erlier, where GPOS/kerx are applied
2018-11-07 13:58:41 -05:00
Behdad Esfahbod
f4bad0086e
[kerx] Implement tupleKerning for Format1
...
Untested.
2018-11-07 13:51:17 -05:00
Behdad Esfahbod
39b4ef6f18
[kerx] Better sanitize tupleKerning
2018-11-07 13:48:45 -05:00
Behdad Esfahbod
14772da06f
[kern/kerx] Share KernTable, renamed to KerxTable
2018-11-07 13:40:22 -05:00
Behdad Esfahbod
c038f5be6b
[fallback] Minor
2018-11-07 13:35:06 -05:00
Behdad Esfahbod
db6e658e8c
[kern/kerx] More towards sharing KernTable
2018-11-07 13:33:23 -05:00
Behdad Esfahbod
89ec095979
[kern] Disable Format1 and Format3 for OT-style tables
2018-11-07 13:10:05 -05:00