Behdad Esfahbod
da500568de
[API] Add hb_buffer_[sg]et_not_found_glyph() and --not-found-glyph
...
Instead of using gid=0 when a character is not found in the font,
client can now set a custom value. This is useful for shaper-driven
font fallback and to differentiate that from .notdef glyph.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1360
2021-10-26 08:02:29 -06: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
Behdad Esfahbod
cd77846bd9
[util] Fix leak of an hb_font_t
2021-09-14 08:35:19 -04:00
Behdad Esfahbod
da285d511f
[util/shape-consumer] Simplify font tracking
2021-09-14 08:28:12 -04: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
fdce294120
[util/hb-subset] Print error and suggest filing github issue if operation fails
...
https://github.com/harfbuzz/harfbuzz/issues/3173#issuecomment-906715780
2021-08-29 09:46:42 -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
Garret Rieger
9db494f517
[subset] Update remaining subset input sets to use inversion for all. ( #3172 )
...
* [subset] Update remaining subset input sets to use inversion for all.
* [subset] Update flag help for remaining sets to mention -=.
2021-08-26 10:51:38 -06:00
Behdad Esfahbod
99356ea5f0
Merge pull request #3150 from harfbuzz/item-context-tests
...
[test] Add tests for item context
2021-08-25 17:19:06 -06:00
Garret Rieger
75efade7a4
[subset] format --gids and --unicodes help messages better.
2021-08-25 14:51:21 -07:00
Garret Rieger
fa4bf7cf58
[subset] use inverted sets for glyph id input.
...
Adds --gids-=, --glyphs-=, --text-=, --unicodes-= options. Use inverted sets to represent all glyphs and/or all unicodes.
2021-08-25 14:31:11 -07:00
Garret Rieger
8f4f47df7c
[subset] use inverted set for all unicodes.
...
Modify the code that handles input->unicodes to be safe with possibly inverted sets. Also adds --unicodes-= and --unicodes+= flags.
2021-08-25 13:34:05 -07:00
Garret Rieger
f2441a4b65
[subset] Remove retain all layout features flag.
...
Instead use inverted sets to handle requesting all features. Modifies feature collection in subset plan to intersect the set of requested features against the features in the font. This prevents iterating a fully filled feature tag set.
2021-08-24 18:17:07 -06:00
Khaled Hosny
430224b1a0
[buffer] Handle pre/post-context in buffer_append
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1843
2021-08-24 02:11:17 +02:00
Khaled Hosny
6ca0ffd42e
[util] Add --unicodes-before/after
...
Parallel to --unicodes for --text-before/after. To be used in tests.
2021-08-24 02:08:01 +02:00
Behdad Esfahbod
829b0f3353
Merge pull request #3154 from harfbuzz/set-invert
...
Resurrect hb_set_invert()
2021-08-20 01:28:15 -06:00
Behdad Esfahbod
7115af23eb
[util] Fix glib deprecation warning re g_memdup()
2021-08-19 15:55:21 -06:00
Simon Cozens
e29f56354a
Replace "langstr" with more helpful help.
2021-08-18 09:31:44 -06:00
Behdad Esfahbod
ccc2a1921a
[util/hb-subset] Whitespace
2021-08-12 13:00:28 -06:00
Behdad Esfahbod
4dfc668e0a
[util/hb-subset] Move glyph name parsing inline instead of post_parse
...
Now that we have face around we can just do it as it happens.
2021-08-12 13:00:28 -06:00
Behdad Esfahbod
08d43d1ba1
[util/hb-subset] Move add_all_unicodes inline, instead of post_parse
...
Now that we have the font loaded, we can do it as it happens.
2021-08-12 13:00:28 -06:00
Behdad Esfahbod
11b0b68853
[util/hb-subset] Pre-parse font-face so we can use it during main parsing
2021-08-12 13:00:28 -06:00
Behdad Esfahbod
c45d2a9c9d
[util] Allow setting cli summary / description
2021-08-12 11:19:59 -06:00
Behdad Esfahbod
4f3b7b7035
[util] Remove unused usage
2021-08-12 11:05:31 -06:00
Behdad Esfahbod
1cb621d35d
[util/hb-subset] Minor move parsing
2021-08-12 10:58:19 -06:00
Behdad Esfahbod
3f94177ee8
[util] Use g_set_error() in one more place
2021-08-12 10:43:31 -06:00
Behdad Esfahbod
4d73b3d9b1
[util] Add --batch to hb-view / hb-ot-shape-closure
2021-08-12 10:39:46 -06:00
Behdad Esfahbod
23282c9c9d
[util/hb-subset] Support ranges in --unicodes / --unicodes-file
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3109
2021-08-11 22:49:47 -06:00
Behdad Esfahbod
f60f005b1f
[util/hb-subset] Remove wrong hb_set_destroy() in error paths
2021-08-11 22:36:00 -06:00
Behdad Esfahbod
49cf36027c
[util/hb-subset] Parse --gids-file, --glyphs-file, --text-file, --unicodes-file
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/2455
Fixes https://github.com/harfbuzz/harfbuzz/issues/3002
2021-08-11 22:34:14 -06:00
Behdad Esfahbod
bf80b7ea45
[util/hb-subset] Add --glyphs for passing glyph names
...
Part of https://github.com/harfbuzz/harfbuzz/issues/2455
2021-08-11 22:07:45 -06:00
Behdad Esfahbod
5b07c3c7d0
[util/hb-subset] Parse --text & --unicodes
2021-08-11 21:32:28 -06:00
Behdad Esfahbod
4ec727e55f
[util] Minor edit of failure messages
2021-08-11 20:46:16 -06:00
Behdad Esfahbod
b83f25c749
[util/hb-subset] Revamp option groups
2021-08-11 20:42:20 -06:00
Behdad Esfahbod
9a6055caa8
[util/hb-ot-shape-closure] Remove unnecessary include
2021-08-11 20:30:25 -06:00
Behdad Esfahbod
c98773ebb0
[util/hb-subset] Move output-file validation code into post_parse
2021-08-11 20:22:03 -06:00
Behdad Esfahbod
58bfe40794
[util] Move hb-subset away from main-font-text
2021-08-11 20:12:36 -06:00
Behdad Esfahbod
ba418cfc52
[util] Use automatic casts
2021-08-11 19:29:07 -06:00
Behdad Esfahbod
97a9e4e41e
[util] Separate shape_text_options_t from text_options_t
2021-08-11 19:28:16 -06:00
Behdad Esfahbod
6ba7ddafed
[util] Move text-file opening to post_parse
2021-08-11 19:06:57 -06:00
Behdad Esfahbod
23298bc846
[util] Remove unnecessary check
2021-08-11 18:58:25 -06:00
Behdad Esfahbod
fd0778aa2a
[util] Use post_parse in output_options_t
2021-08-11 18:54:46 -06:00
Behdad Esfahbod
24a9d8c78d
[util] Use post_parse in font_options_t
2021-08-11 18:49:59 -06:00
Behdad Esfahbod
e4b33d9d36
[util] Use post_parse in face_options_t
2021-08-11 18:49:58 -06:00
Behdad Esfahbod
c0ea4e2d33
[util] Use post_parse to validate
2021-08-11 18:30:08 -06:00
Behdad Esfahbod
9468e46998
[util] Rename main_font_text back to main_font_text_t
2021-08-11 16:46:04 -06:00
Behdad Esfahbod
7e4fcf1be8
[util] Rename add_main_options
2021-08-11 12:12:49 -06:00
Behdad Esfahbod
62fb102184
[util] Move add_main_options() invocation
2021-08-11 12:03:07 -06:00
Behdad Esfahbod
9d8bbe3e53
[util] Make main_font_text a struct again
...
Going to move to G_OPTION_REMAINING.
2021-08-11 11:53:32 -06:00
Behdad Esfahbod
5bd463f130
[util/hb-subset] Access input directly
2021-08-10 14:26:48 -06:00
Behdad Esfahbod
6905f6fa60
[util/hb-subset] Use templated function to parse flags directly
2021-08-10 14:24:42 -06:00
Behdad Esfahbod
3e3e1801a5
[util] Small tweaks in --help output
2021-08-10 14:24:42 -06:00
Behdad Esfahbod
f3acb977ec
[test/shaping;util] Use ';' instead of ':' to separate test fields
...
Accept that in --batch mode. Also in batch mode don't send the 0th arg.
Related discussion: https://github.com/harfbuzz/harfbuzz/pull/3102
2021-08-10 11:08:36 -06:00
Behdad Esfahbod
b83fd3a564
[util] Refactor batch-processing code into batch.hh
2021-08-10 02:32:55 -06:00
Behdad Esfahbod
d92ee726ce
[util/hb-shape] Treat as single-paragraph text other than provided by a file
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3129
2021-08-09 19:16:13 -06:00
Behdad Esfahbod
7d2e9164ab
[util] Move text options into text_options_t
...
Remove now empty options.cc.
2021-08-07 13:38:19 -06:00
Behdad Esfahbod
93bc62e9b2
[util] Move output options into output-options.hh
2021-08-07 13:13:58 -06:00
Behdad Esfahbod
af9d2495dc
[util] Use inheritance for output_options_t
2021-08-07 13:09:56 -06:00
Behdad Esfahbod
9db0fd4821
[util] Don't show --output-format if no supported formats provided
2021-08-07 12:22:17 -06:00
Behdad Esfahbod
5545eea7e5
[util] Remove main_font_text_t class, use bare function
2021-08-07 11:04:46 -06:00
Behdad Esfahbod
58c223357b
[util] Move face/font options into face/font-options.hh
2021-08-06 23:47:48 -06:00
Behdad Esfahbod
6edd50ae7f
[util] Move option_parser_t code into options.hh
2021-08-06 23:36:45 -06:00
Behdad Esfahbod
798bb89c96
[util] Move shape format options into shape-format.hh
2021-08-06 23:30:55 -06:00
Behdad Esfahbod
c3599fded7
[util] Move shape options into shape-options.hh
2021-08-06 23:24:28 -06:00
Behdad Esfahbod
cfb2d6ad9e
[util] Move view options into view-options.hh
2021-08-06 23:14:30 -06:00
Behdad Esfahbod
167f58a2ca
[util] Move subset options into subset-options.hh
2021-08-06 23:10:49 -06:00
Behdad Esfahbod
370e961faf
[util/hb-subset] Use hb-subset.h public API instead of poking inside
...
Oops.
2021-08-06 22:59:50 -06:00
Behdad Esfahbod
4e97678ebb
[util] Use inheritence to embed inherent options of objects
2021-08-06 22:53:44 -06:00
Behdad Esfahbod
06d661803c
[util] Fix compiler error
...
../util/options.cc:588:3: error: narrowing conversion of ‘font_size_flags’ from ‘unsigned int’ to ‘gint {aka int}’ inside { } [-Werror=narrowing]
2021-08-06 19:20:47 -06:00
Behdad Esfahbod
c5337c43e9
[util] Fold helper-cairo.cc into helper-cairo.hh
2021-08-06 19:19:50 -06:00
Behdad Esfahbod
c329ce1000
[util] Also hide ppem settings in hb-ot-shape-closure
...
Leaving ptem, as that can in theory change shape closure if we apply it
to optical-size axis (we currently don't).
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
c40e00796c
[util] Fold helper-cairo-ansi.cc into helper-cairo-ansi.hh
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
4fe43ccbf1
[util] Fold ansi-print.cc into ansi-print.hh
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
b1db0e4a0f
[util] Fold view-cairo.cc into view-cairo.hh
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
6500f68f1f
[util] Change hb-subset to use face_options_t instead of font_options_t
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
869e20e09f
[util] separate face options from font options
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
b3a2f2bfcf
[util/main-font-text] Simplify
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
71440dbd90
[util] Move font-size and upem to be extern variables
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
fc0339eef0
[util] Simplify shape-consumer by removing buffer arg
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
e014c6fa2d
[util/main-font-text] Move eol from template arg to main() arg
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
463411a1de
[util] Remove unused option_group_t
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
8588173ee6
[util] Rework post_parse() handling
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
3362b48f5a
[util] Templatize add_group logic
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
fe90fbeba3
[util] Remove unused pre_parse callback logic
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
09e4d7dd30
[util] Simplify output_options_t
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
e109f9a6f9
[util] Collect cmdline arg options outside of constructor
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
e57dd66889
[util] Initialize struct members inline
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
21f1054d47
[util/hb-subset] Keep face around instead of font
2021-08-06 19:17:12 -06:00
Behdad Esfahbod
db6fbe29e4
[util/hb-subset] Use driver_t<> in outer block as well
...
a363ce573c (r54282223)
2021-08-04 10:25:03 -06:00
Behdad Esfahbod
47d47e8c43
[util/hb-shape/hb-subset] Don't terminate on first error in batch mode
...
There's no reason to quit processing. The failure is already
communicated via stdout in both cases.
2021-08-01 22:12:08 -06:00
Behdad Esfahbod
a363ce573c
[util/hb-subset] Minor refactor of batch mode
...
To match recent changes to hb-shape.
2021-08-01 22:11:13 -06:00
Khaled Hosny
10e73d188a
[test] Add batch mode to hb-subset and use it
...
time meson test --suite=subset down from:
real 0m22.822s
user 0m44.561s
sys 0m9.255s
to:
real 0m19.418s
user 0m38.171s
sys 0m3.587s
Does not seem to help much, but it is something.
Part of https://github.com/harfbuzz/harfbuzz/issues/3089
2021-08-01 22:08:28 -06:00
Behdad Esfahbod
ed99c80623
[util/hb-shape] Refactor driver type duplication
2021-08-01 08:14:59 -06:00
Behdad Esfahbod
05cf81283b
[util/hb-shape] Fix use of EOF as end-of-line
...
EOF is -1, which was being treated as a valid char (255).
Use int instead.
2021-08-01 08:12:40 -06:00
Garret Rieger
f9d8e4a976
[subset] switch ..._set_flags to not take a mask.
2021-07-29 18:30:27 -07:00
Garret Rieger
3d534b146c
[subset] convert subset input flags into bit flags.
...
Store the flags in a bit set. Updates the public api to work with the bit set directly.
2021-07-29 18:02:34 -07:00
Behdad Esfahbod
d7541f7b55
[util/hb-shape] Free cached resources on termination
2021-07-29 00:34:52 -06:00
Behdad Esfahbod
ad03f34df7
[util/hb-shape] Cache blob/face in batch mode
2021-07-29 00:34:52 -06:00