|
59c45f6d
|
2022-11-22T12:54:50
|
|
Use hb_memcpy instead of memcpy consistently
|
|
f7f6d278
|
2022-07-17T22:15:42
|
|
Add hb_language_matches()
New API:
+ hb_language_matches()
|
|
a972d05d
|
2022-07-17T21:42:04
|
|
[aat] Fix build
|
|
2124ad89
|
2022-07-17T21:32:27
|
|
[aat/morx] Implement language-specific forms
Test on Mac with, eg.
$ hb-view /Library/Fonts/BigCaslon.ttf -u 107
vs
$ hb-view /Library/Fonts/BigCaslon.ttf -u 107 --language pl
Fixes https://github.com/harfbuzz/harfbuzz/issues/1373
|
|
9e1479b5
|
2022-06-01T07:54:45
|
|
[morx] Limit context length
Fixes https://github.com/harfbuzz/harfbuzz/issues/3097
|
|
4d48fae4
|
2022-04-20T11:35:19
|
|
Enforce Regional_Indicators native direction to LTR
And undo the morx direction reversal change introduced in
https://github.com/harfbuzz/harfbuzz/pull/3315
23159084b43c1ce429d9e98035bf845919fd8a89
This fixes original bug https://github.com/harfbuzz/harfbuzz/issues/3314
And the reversion in morx code fixes regressions:
https://github.com/harfbuzz/harfbuzz/issues/3528
https://github.com/harfbuzz/harfbuzz/issues/3535
Supersedes:
https://github.com/harfbuzz/harfbuzz/pull/3529
|
|
23159084
|
2021-12-10T15:00:16
|
|
[morx] Reverse graphemese, not whole buffer
Fixes https://github.com/harfbuzz/harfbuzz/issues/3314
Supersedes https://github.com/harfbuzz/harfbuzz/pull/3315
|
|
6d555ce8
|
2021-11-02T00:18:22
|
|
[meta] Use std::forward instead of hb_forward()
|
|
c852b868
|
2021-09-19T16:30:12
|
|
Rename HBGlyphID to HBGlyphID16
|
|
4f1e8d2b
|
2021-05-05T11:11:43
|
|
[aat] Update glyph properties from GDEF if available when doing a replacement.
|
|
5efe3609
|
2021-03-31T15:33:22
|
|
Rename (Unsized)OffsetListOf
|
|
34a1204f
|
2021-03-15T14:39:06
|
|
[buffer] HB_NODISCARD output_glyph()
Also, generalize and use replace_glyphs() in morx where output_glyph() was used
in a loop.
|
|
2a0dbb3e
|
2021-03-15T14:10:39
|
|
[buffer] HB_NODISCARD copy_glyph()
|
|
cac6c86d
|
2021-03-15T13:46:54
|
|
[buffer] HB_NODISCARD move_to()
|
|
3f1998a0
|
2021-03-15T13:33:44
|
|
[buffer] HB_NODISCARD replace_glyph()
|
|
567cedcc
|
2021-02-22T22:09:15
|
|
Narrow down cast operators on IntType
Say for USHORT, we were implementing casts from and to unsigned.
With this change, we cast from and to uint16_t only. This allows
compiler more opportunities to catch possible narrowing issues in
the code.
It needed a couple of fixes in the codebase though, because
previously, if a USHORT was participating in arithmetic with signed
numbers, eg. "u + 1", the result would have been unsigned. With
this change, it would be signed. The correct fix is to update the
code to read "u + 1u".
That said, I think about conditionally adding back the cast
out to signed/unsigned, to facilitate better type deduction.
But I couldn't think of a real situation where that would help
with anything. So I didn't add. Here's what it was:
template <typename Type2 = hb_conditional<hb_is_signed (Type), signed, unsigned>,
hb_enable_if (sizeof (Type) < sizeof (Type2))>
operator hb_type_identity_t<Type2> () const { return v; }
https://github.com/harfbuzz/harfbuzz/pull/2875
|
|
d0e2addd
|
2020-07-18T22:14:52
|
|
minor
|
|
9566904c
|
2020-07-14T15:17:17
|
|
[morx] minor, mark with unlikely
at least just to show this is the unusual path
|
|
11d583a9
|
2020-07-14T06:23:06
|
|
[aat] Consume glyph insertion from buffer's max_ops (#2223)
Glyph insertion is an expensive operation and we like to have it limited
based on buffer's input size which is handled by buffer's max_ops.
clusterfuzz-testcase-minimized-harfbuzz_fuzzer-5754958982021120:
Before the change: 0.67s user 0.00s system 99% cpu 0.674 total
After the change: 0.02s user 0.00s system 98% cpu 0.024 total
Which takes much longer on valgrind and tsan bots.
|
|
e7c79e16
|
2020-06-17T15:32:40
|
|
Merge pull request #2287 from simoncozens/instrumentation
Add messages for GPOS/GSUB (take 2)
|
|
fe926970
|
2020-06-16T09:12:44
|
|
Reformat messages again
Messages can be:
start/end table XXXX
start/end lookup NNNN
start/end subtable NNNN (for kerx/kern)
start/end chainsubtable NNNN (for morx)
|
|
2dda6dd7
|
2020-04-20T14:12:45
|
|
minor, tweak spacing
turn 8 spaces to tab, add space before Null/Crap
|
|
573b6bf8
|
2020-03-30T23:20:30
|
|
Handle non-exclusive features when mapping OpenType tags to AAT feature type/selector pairs.
Fixes #2290.
|
|
bef7ef81
|
2020-03-30T16:39:43
|
|
Reformat kerx/morx instrumentation to 'verb noun identifier'
|
|
d512087e
|
2019-09-14T10:36:29
|
|
Rename GlyphID to HBGlyphID
Avoid collision with macOS's ATSUnicodeTypes.h GlyphID
|
|
170b5dd8
|
2019-09-08T16:34:11
|
|
[aat] Minor
|
|
a0695687
|
2019-09-08T16:32:12
|
|
[aat] Minor
|
|
a0b4ac4d
|
2019-08-24T17:57:14
|
|
Turn 8 spaces to tab across the project
According to the current code style of the project
|
|
83e3eabd
|
2019-05-07T20:58:43
|
|
Whitespace
|
|
41248cce
|
2019-05-07T20:54:31
|
|
Remove MIN/MAX in favor of hb_min/hb_max
|
|
36bb24f7
|
2019-05-05T10:14:17
|
|
[dispatch] Forward arguments in all dispatch multiplexers
|
|
92588782
|
2019-04-30T13:05:10
|
|
Remove space between right angle brackets now that we have C++11 (#1689)
|
|
e970de48
|
2019-01-24T18:16:17
|
|
[AAT] Minor sign
|
|
a371a28c
|
2019-01-24T18:12:25
|
|
[AAT] Use a ring buffer for ligature stack
I think Apple does very similarly, but probably with a stack size of 16.
We do it with a stack size that is currently set to 64.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1531
|
|
7886b157
|
2019-01-24T18:06:17
|
|
Whitespace
|
|
b9769402
|
2019-01-24T18:01:07
|
|
[AAT] Handle transition errors during machine operation
Before we used to give up. Now, just ignore error and continue processing.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1531
|
|
1ec90514
|
2019-01-24T17:21:41
|
|
[AAT] Minor
|
|
36fb2b4d
|
2019-01-23T20:53:57
|
|
[AAT] In InsertionChain, set mark to previous-position if inserting
Fixes MORX-31
|
|
baf4d6a6
|
2019-01-23T20:36:07
|
|
[AAT] Remove mark_set from InsertionChain
|
|
ef006549
|
2019-01-22T12:08:57
|
|
Convert tag enum class consts to static constexpr
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
|
|
39e1b6d0
|
2019-01-22T12:07:43
|
|
Convert boolean enum class consts to static constexpr
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
|
|
7e6bd510
|
2019-01-17T18:24:18
|
|
Use NNOffsetTo<> in rest of places
|
|
7a6686a5
|
2019-01-14T15:09:14
|
|
[AAT] Fix mort ContextualSubtable offset access
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12312
|
|
1043ddbe
|
2018-12-27T18:27:11
|
|
[aat] Minor
|
|
e4120085
|
2018-12-17T21:31:01
|
|
Remove redundant void from C++ sources (#1486)
|
|
b2ebaa9a
|
2018-12-16T22:38:10
|
|
Remove redundant 'inline' from methods (#1483)
|
|
fb059082
|
2018-11-30T20:45:40
|
|
Revert ugly fixes
Now that we have 6daf45e0, revert cryptic hacks...
This reverts commit abd81ed4f5cbc5a94171747909bc6b77551cb929.
This reverts commit 9c6921c08c905a0cf45ba0182134e6ff910fac51.
This reverts commit d39760cabfe4007cefdfc45231e85e93fababac2.
This reverts commit fedd8e6c176dea85194693399e50243eb1c117c4.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
|
|
9c6921c0
|
2018-11-30T15:16:57
|
|
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:
...
|
|
5c4fead7
|
2018-11-29T15:04:34
|
|
Convert "static const hb_tag_t" constants to enum
|
|
44cbd2ea
|
2018-11-29T14:53:43
|
|
Convert "static const bool" constants to anonymous enum
|
|
2cb235d0
|
2018-11-23T12:23:35
|
|
[aat.feat] Fix enum namespace
|
|
54f4c17f
|
2018-11-23T12:05:06
|
|
[feat] Rename API uses of setting to selector
|
|
a8726cb4
|
2018-11-17T14:23:11
|
|
[feat] Use bsearch
|
|
19b60255
|
2018-11-17T01:07:09
|
|
[feat] Address @behdad comments
|
|
9212ec20
|
2018-11-09T00:50:10
|
|
[feat] Complete feature types list
|
|
7a0471aa
|
2018-11-01T21:38:54
|
|
[feat] Turn AAT feature id into enum
|
|
95abd537
|
2018-11-01T13:14:29
|
|
[feat] Expose public API
* hb_aat_get_feature_settings
|
|
c405ed05
|
2018-11-24T23:46:15
|
|
[morx] Port to hb_sanitize_with_object_t
|
|
b3c5affc
|
2018-11-24T23:34:34
|
|
Simplify sanitize set_object()
|
|
748198a6
|
2018-11-24T22:16:59
|
|
Revert "[aat.morx] Remove set_object() business"
This reverts commit ae8ed58a6e53441d9ccbf67afd8a00b815cde99e.
Apparently this broke Apple Chancery from OS X 10.12 :(.
Investigating...
|
|
ae8ed58a
|
2018-11-24T17:11:09
|
|
[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.
|
|
20edc70d
|
2018-11-24T14:52:34
|
|
[morx/kerx] Fix sanitize regression
Broke in 8dcc1913a1670ede7b124f7b5b775d7ab8791386
If sanitizer is left with another object, it wouldn't work.
Better fix coming soon.
|
|
8dcc1913
|
2018-11-24T09:47:45
|
|
[kerx/morx] Make sure object length is sanitized before accessing it
|
|
758c9d68
|
2018-11-22T22:16:12
|
|
[morx/kerx] Limit range to subtable when sanitizing
|
|
a9fe787a
|
2018-11-22T22:12:36
|
|
[sanitizer] Add reset_object(), make set_object() do bounds-check
Affects morx/kerx run-time only currently. Will adjust their sanitize next.
|
|
2c8188bf
|
2018-11-22T22:02:19
|
|
[kerx] Make sure subtables are non-zero-length
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11400
|
|
29c53023
|
2018-11-07T17:29:37
|
|
[morx] Minor
|
|
385f78b3
|
2018-11-07T17:19:21
|
|
[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.
|
|
241ba7da
|
2018-11-07T11:51:40
|
|
[morx/kerx] Rename types
|
|
d5c88af4
|
2018-11-07T11:20:14
|
|
[kerx] More towards sharing Format1
|
|
b693fd0d
|
2018-11-07T11:05:28
|
|
[morx] Simplify
|
|
e890753e
|
2018-11-07T10:58:50
|
|
[morx] Minor
|
|
17335a81
|
2018-11-04T02:25:07
|
|
Clean up buffer->swap_buffers() calls
That function checks for buffer->successful already. No need
to check at call site.
|
|
0382b718
|
2018-11-02T12:23:26
|
|
Use as_array in more places
|
|
40b19fd4
|
2018-10-31T18:51:45
|
|
[aat] Fallback to old style "Letter Case" small caps
Fixes https://github.com/harfbuzz/harfbuzz/issues/1342
|
|
36e90ef5
|
2018-10-31T15:09:09
|
|
[mort] Massage some more
|
|
cbaff4ef
|
2018-10-31T15:06:12
|
|
[mort] Some more
|
|
3087046d
|
2018-10-31T14:59:14
|
|
[mort] Refactor offset-to-index mapping
|
|
2e639c47
|
2018-10-31T14:20:14
|
|
[aat] Fix older compilers by not referencing enum directly (#1340)
|
|
642c9dcf
|
2018-10-31T14:02:37
|
|
[aat] Minor, remove extra semicolons
|
|
c962d5e7
|
2018-10-31T01:16:33
|
|
[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
|
|
c0779896
|
2018-10-31T00:36:03
|
|
[mort] More Ligature work
|
|
431c6e49
|
2018-10-31T00:15:00
|
|
[mort] Some Ligature work
|
|
28b68cff
|
2018-10-30T23:33:30
|
|
[mort] Implement / adjust Contextual substitution
|
|
9346b1f1
|
2018-10-30T20:04:13
|
|
[morx] Remove stale comment
|
|
f864ef21
|
2018-10-30T19:42:21
|
|
[mort] More massaging towards mort
|
|
2d946734
|
2018-10-30T19:33:31
|
|
[mort] Fix version check in sanitize
|
|
c2527a1b
|
2018-10-30T19:26:16
|
|
[mort] Make it compile / hook it up
Untested.
|
|
933babdc
|
2018-10-30T19:22:43
|
|
[mort] Fixup on previous commit
|
|
b053caba
|
2018-10-30T18:41:34
|
|
[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.
|
|
6aa019c4
|
2018-10-26T22:02:17
|
|
[morx] Fix merge_cluster to end at last ligature component
Don't assume current position was a component in the ligature.
|
|
00ae4be6
|
2018-10-26T21:59:20
|
|
[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
|
|
39bd07ae
|
2018-10-26T21:01:11
|
|
Fix bunch of unused parameter warnings
Show up with gcc -O0.
There's a few more but those are functions that need to be filled in.
Maybe this is a lost battle...
|
|
ba5ca6a7
|
2018-10-25T17:41:26
|
|
[morx] Use deleted-glyph, instead of actual deletion, in Ligation
Closer to what CoreText does.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1302
|
|
5c272e36
|
2018-10-25T17:36:33
|
|
[morx] Remove deleted-glyph at the end of processing
|
|
ba502dea
|
2018-10-23T16:46:10
|
|
[morx] Fix cluster-merging when ligating
Only merge when actual ligature happened.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1305
|
|
ffe34784
|
2018-10-23T14:14:03
|
|
[aat] Allow enabling/disabling features
Only works at entire-buffer range, not sub-ranges.
Test with:
$ hb-shape Zapfino.dfont Zapfino
[Z_a_p_f_i_n_o=0+2333]
$ hb-shape Zapfino.dfont Zapfino --features=-dlig
[Z=0+416|a=1@-21,0+264|p_f=2+433|i=4+181|n=5+261|o=6+250]
$ hb-shape Zapfino.dfont Zapfino --features=+dlig
[Z_a_p_f_i_n_o=0+2333]
Fixes https://github.com/harfbuzz/harfbuzz/issues/1303
|
|
531f9822
|
2018-10-23T01:32:08
|
|
[morx] Add a few debug messages to Ligature chain
|
|
0e5bcdef
|
2018-10-23T00:39:44
|
|
[morx] Clear stack upon underflow when acting ligatures
|
|
792071de
|
2018-10-22T23:38:34
|
|
[morx] Leave ligature on stack after ligating
Test with Apple Color Emoji.ttf of ~66MB and following sequence:
./hb-shape Apple\ Color\ Emoji-old.ttf --font-funcs=ot -u U+1F468,200d,U+1F469,200d,U+1F467,200d,1f466
Should form full family if matching works correctly. It first makes
family of three, then makes family of four out of that and the last
two characters.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1292
|