Commit graph

136 commits

Author SHA1 Message Date
Garret Rieger
efcb7d3de1 [subset] close unicodes over bidi mirror variants during subsetting.
Some checks failed
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 3s
Fixes #5281. Does the closure by default, but I've introduced a new flag and option to disable this behaviour since some users may want to get the minimal set if they know they don't need the mirrored variants.
2025-04-11 18:13:28 -06:00
Behdad Esfahbod
fd9903fc4e [hb-subset] Try to fix leak 2025-04-06 16:20:23 -06:00
Behdad Esfahbod
00b4f86e5f [hb-subset] In batch mode preprocess font once
Speeds up cmap.tests from 3s to under .5s.
2025-04-05 16:20:05 -06:00
Behdad Esfahbod
fa737da022 [hb-subset] Speed up parsing glyphs-file
Cache the font used to load glyph names.
2025-04-05 16:02:09 -06:00
Behdad Esfahbod
54295ccf45 [hb-subset] Speed up parsing glyphs-file
Some checks failed
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1s
Cache the font used to load glyph names.
2025-04-05 15:26:07 -06:00
Behdad Esfahbod
0fecd2ecc3 [hb-subset] Accept gidXXX-style glyph names 2025-04-05 15:20:49 -06:00
Behdad Esfahbod
a637c08d5a [hb-subset] Fix leak 2025-04-05 15:02:28 -06:00
Behdad Esfahbod
3207575979 [subset] Allow options before --font-file
Fixes https://github.com/harfbuzz/harfbuzz/issues/4913
2025-04-04 18:13:36 -06:00
Behdad Esfahbod
59001aa952 [util] Add brief --help descriptions
Part of https://github.com/harfbuzz/harfbuzz/issues/5208
2025-03-26 12:33:06 -06:00
Behdad Esfahbod
3d3f241941 [util] Improve help messages a bit
Some checks failed
arm / arm-none-eabi (push) Waiting to run
configs-ci / build (push) Waiting to run
fontations / build (push) Waiting to run
linux-ci / build (push) Waiting to run
macos-ci / build (push) Waiting to run
msvc / msvc-2019-amd64 (push) Waiting to run
msvc / msvc-2019-x86 (push) Waiting to run
msys2 / CLANG64 (push) Waiting to run
msys2 / MINGW32 (push) Waiting to run
msys2 / MINGW64 (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1s
Part of https://github.com/harfbuzz/harfbuzz/issues/5208
2025-03-26 01:18:09 -06:00
Behdad Esfahbod
39ea4cdd77 [hb-subset] Fix a resource leak
Part of https://github.com/harfbuzz/harfbuzz/issues/4832
2024-08-14 10:14:42 -07:00
Behdad Esfahbod
d5596dfb0b [hb-subset] Report "Invalid font file."
Fixes https://github.com/harfbuzz/harfbuzz/issues/4824#issuecomment-2272156543
2024-08-06 15:15:41 -06:00
Garret Rieger
4cf606f674 [instancer] Promote partial instancing api out of experimental. 2024-05-02 21:22:18 +00:00
Qunxin Liu
97309483ea [instancer] rename HB_SUBSET_FLAGS_IUP_DELTA_OPT to HB_SUBSET_FLAGS_OPTIMIZE_IUP_DELTAS 2024-02-02 16:59:19 -08:00
Qunxin Liu
2dabbdfc66 [instancer] fix help message for --optimize 2024-02-02 13:39:33 -08:00
Qunxin Liu
c7a6030b31 [instancer] add a flag HB_SUBSET_FLAGS_IUP_DELTA_OPT 2024-01-26 09:27:27 -08:00
Garret Rieger
d30c1dacf5 Add test suite for instancing option parsing. 2023-11-15 20:16:07 +00:00
Garret Rieger
43236ce345 [instancer] add the option to leave blanks in the min:def:max syntax.
When parsing axis positions in the --variations flag recognize empty values as meaning the existing value for that part. For example:

:300:500

Specifies min = existing, def = 300, max = 500.

See: https://github.com/fonttools/fonttools/issues/3322
2023-11-15 17:54:56 +00:00
Garret Rieger
c6884377ec [subset] Add HB_SUBSET_FLAGS_IFTB_REQUIREMENTS flag.
When enabled the output subset conforms to the requirements for a base font to be patched by IFTB patches. IFTB is a proposed incremental font transfer patch. This new flag is set as experimental. Currently, setting this flag causes the output subset to also use long offsets for outline data in loca/glyf, gvar, CFF, and CFF2.

This change is a version of 3ae2fe2084 rebased onto head w/ tests added.
2023-11-06 16:49:09 -07:00
Garret Rieger
7b46d772c4 [instancer] Update help message for --instance.
Remove note about partial instancing not being supported. Add --variations flag as an alternate name for --instance. This matches other hb utils.
2023-11-01 14:56:47 -06:00
Behdad Esfahbod
598de82f3a [hb-subset] Fix warning 2023-10-27 12:13:13 -06:00
Qunxin Liu
0aa5dafefd fix bots.
-Also disable partial instancing tests for now, cause the command option
is wrapped by experimental_api
2023-08-08 08:44:31 -07:00
Qunxin Liu
32cfa37e2e [instancer] command line support for partial instancing
-Also updated hb_subset_input_set_axis_range (), so user can define
default value as well
2023-08-07 14:37:13 -07:00
Garret Rieger
3021b2dbe2 [subset] change glyph mapping api to return a mutable map.
Maintains consistency with our other set based api methods.
2023-05-05 05:57:05 +00:00
Garret Rieger
98e73192f4 [subset] Add command line flag to provide a gid mapping. 2023-05-04 22:20:06 +00:00
Garret Rieger
90356eb226 [subset] Note --no-layout-closure is only for GSUB. 2023-04-14 15:12:41 -06:00
Garret Rieger
14b9d8d534 [subset] add --no-layout-closure flag.
Disables layout glyph closure. Fixes #4192.
2023-04-14 15:12:41 -06:00
Behdad Esfahbod
30d4a73473 [hb-subset] Adjust help for instancing 2023-01-06 16:00:53 -07:00
Behdad Esfahbod
aba6cbe867 [hb-subset] Adjust --help-all formatting
Meh.
2023-01-06 13:09:10 -07:00
Behdad Esfahbod
85e8f2b53f [hb-subset] Initialize preprocess variable 2023-01-01 18:26:08 -07:00
Behdad Esfahbod
4a5bd7a926 [subset] Add hb_subset_input_keep_everything()
Fixes https://github.com/harfbuzz/harfbuzz/issues/3998

New API:
+ hb_subset_input_keep_everything()
2023-01-01 16:53:28 -07:00
Behdad Esfahbod
d87add41b3 [hb-subset] Rename --preprocess-face to --preprocess
Keep old name working but hidden.
2023-01-01 16:27:26 -07:00
Garret Rieger
1a51f71afd [subset] don't segfault when --help-all is specified w/ instancing options. 2022-12-19 16:02:05 -07:00
Garret Rieger
9fbe52b88d [subset] enable instancing tests by default. 2022-12-12 20:24:24 +00:00
Garret Rieger
eda02c2ebd [subset] Move hb_subset_preprocess to be non-experimental. 2022-12-08 16:32:24 -07:00
Behdad Esfahbod
1b86753031 [hb-subset] Support -u, -g, -t
For --unicodes, --gids, --text.
2022-12-05 11:44:52 -07:00
Garret Rieger
4c49daf7cd [subset] actually use the preprocessed face in hb-subset.
Tests weren't actually using the preprocessed face due to this typo in util/hb-subset.
2022-11-23 22:33:57 +00:00
Garret Rieger
515863e57c [subset] Remove add accelerator flag, replace with new api method.
Adds hb_subset_preprocess() which preprocesses the face and attaches accelerator data.
2022-10-13 23:42:00 +00:00
Garret Rieger
3394ec7048 [subset] use subset accelerator in tests.
This ensures it produces equivalent subsets as without the accelerator.
2022-10-13 23:02:54 +00:00
Behdad Esfahbod
a66ba594b4 [util] Fix stack-underflow
Fixes https://github.com/harfbuzz/harfbuzz/issues/3737
2022-07-19 16:32:32 -06:00
Qunxin Liu
2a4773e43d add option "--instance", store axes_location in subset_plan and drop all
variation tables when all axes are pinned at default
2022-07-18 14:59:07 -06:00
jfkthame
0cd404d0b8 Typo fix in hb-subset
s/substract/subtract/
2022-07-09 13:34:48 -06:00
Garret Rieger
38e81f2be9 [subset] Add --layout-scripts command line flag. 2022-06-30 21:09:11 +00:00
Cosimo Lupo
cc0f1f3b60 Expose --passthrough-tables option to hb-subset CLI tool 2022-04-12 10:40:46 -06:00
luz paz
e2e305066a Fix various typos
Found via `codespell -q 3 -S ./perf/texts -L actualy,ba,beng,fo,gir,inout,nd,ot,pres,ro,te,teh,timne`
2022-01-16 05:39:03 -08:00
Garret Rieger
d700646c33 [subset] In preperation for 3.0.0 release remove legacy subsetting api methods. 2021-09-16 15:31:29 -06:00
Khaled Hosny
838d670752 [subset] Improve alignment of --help-all message 2021-09-08 15:12:52 +02:00
Behdad Esfahbod
04cf6212d7 [util/hb-subset] Fix --version and --help again
38ad093216
2021-08-30 18:35:26 -06:00
Behdad Esfahbod
38ad093216 [util/hb-subset] Don't ignore errors during face parsing
Was ignoring file-not-found errors.
2021-08-29 09:46:42 -06:00
Garret Rieger
1e1438c4fb
[subset] fix --*-file options in hb-subset. (#3176)
The previous change to add -/+ versions of each set type broke all of the --*-file input options since all of the parse functions now default to replacing the set if the + variant is not being used. This fixes the issue by changing parse_file_for to pass '+' as the name to the parsing function. This triggers the append mode.
2021-08-26 14:59:29 -06:00