src


Log

Author Commit Date CI Message
Behdad Esfahbod 92f13bbd 2025-02-01T19:11:20 [set-digest] Inline combiner Instead of defining one digest and then combining three of them at different shifts, inline the code The compiler can optimize it better. 3% speedup with Amiri benchmark.
Behdad Esfahbod c4c8eb4f 2025-01-26T16:25:55 [algs] Rename a macro Clashes with Apple simd/simd.h
Behdad Esfahbod 9ba286de 2025-02-01T14:23:47 [ot-shape] Micro-optimize ::equal For two integers, it's faster to compare them directly.
Behdad Esfahbod 6be66b0e 2025-01-24T16:26:54 [ft/coretext] Fail setting font-funcs gracefully Fixes https://github.com/harfbuzz/harfbuzz/issues/5020
Behdad Esfahbod 4df11621 2025-01-24T05:00:05 [VARC] Fix variable binding Ouch.
Behdad Esfahbod 2fa9ccee 2025-01-23T23:13:49 [VARC] Simplify
Behdad Esfahbod 2d2418eb 2025-01-23T23:13:11 [VARC] Avoid float div-by-zero
Behdad Esfahbod fe9398e9 2025-01-23T22:59:12 [VARC] Chain transforms Previous code was actually wrong even, for non-uniform x/y font scale. Fixes https://github.com/harfbuzz/harfbuzz/issues/5017
David Corbett 22fbc756 2025-01-22T11:08:28 [ot-tags] Update IANA and OT language registries
Khaled Hosny a888761a 2025-01-21T15:56:26 [hb-ft] Hopefully clarify hb_ft_font_create() life cycle even more Add “only” to one more place.
Behdad Esfahbod 3a7ebc32 2025-01-13T14:53:16 [config] Fix build with HB_LEAN Fixes https://github.com/harfbuzz/harfbuzz/issues/4997
Khaled Hosny 1e629c35 2025-01-12T23:06:23 [morx] Blocklist dysfunctional morx table of AALMAGHRIBI.ttf font Fixes #4108
Khaled Hosny 7b27c8ed 2025-01-11T18:13:18 10.2.0
Behdad Esfahbod 021b4438 2025-01-10T13:57:16 Garay script is RTL Fixes https://github.com/harfbuzz/harfbuzz/issues/4996
Khaled Hosny fc42cdd6 2025-01-08T22:17:03 [docs] Reduce warnings
Khaled Hosny 1ce81912 2025-01-08T15:25:46 [subset-serialize] Formatting
Khaled Hosny e943a009 2025-01-08T15:22:47 [subset-serialize] Try to fix MSVC build
Khaled Hosny 9d5beeaf 2025-01-08T01:07:09 [subset-serialize] Fix doc generation gtk-doc is rather sensitive to white space, and it does not seem to be able to parse bare `unsigned` without `int`.
Garret Rieger bdb50f1c 2025-01-07T20:32:05 [repacker] Also rename api method from hb_subset_repack_or_fail -> hb_subset_serialize_or_fail.
Garret Rieger 05650416 2025-01-07T19:56:25 [repacker] rename hb-subset-repacker -> hb-subset-serialize. Also hb_link_t and hb_object_t to hb_subset_serialize_link_t and hb_subset_serialize_object_t.
Behdad Esfahbod 503553c3 2025-01-07T11:50:12 [docs] Fix build for real this time
Behdad Esfahbod fca062eb 2025-01-07T11:38:25 [docs] Fix build fail
Behdad Esfahbod 379e3c98 2025-01-07T11:29:35 [shape] Wrap justify API in EXPERIMENTAL Fixes https://github.com/harfbuzz/harfbuzz/issues/4984
Garret Rieger 5a6f5922 2025-01-06T21:16:24 [repacker] Promote repacking API to stable. For #227.
David Corbett 57569baa 2025-01-02T21:14:25 Don’t insert U+25CC before super/subscript digits
wang-bin 3258b1f2 2024-12-20T10:58:14 [coretext]: fix tvOS build define kCTFont* when unavailable, i.e. ios < 6.0, macOS < 10.8 or tvOS < 9.0. MAC_OS_X_VERSION_MIN_REQUIRED is always defined in AvailabilityMacros.h for all targets, while __ENVIRONMENT_*_VERSION_MIN_REQUIRED__ is defined by compiler when building a specific target
Khaled Hosny 524e0f0a 2024-12-19T11:53:37 [doc] Improve hb_face_reference_table() docs
David Corbett f887096a 2024-12-15T10:53:09 [myanmar] Allow all tones (& visarga) in any order
Behdad Esfahbod c8050b38 2024-12-10T11:22:15 [coretext] Fix build on old Mac Fixes https://github.com/harfbuzz/harfbuzz/issues/4968
David Corbett 40ef6c05 2024-12-05T16:03:28 [ot-tags] Update OpenType language system registry
Kesavan Yogeswaran 1c249be9 2024-12-02T15:51:19 Sidestep nontrivial-memaccess warning in Crap() With -Wnontrivial-memaccess, recent versions of clang flag the usage of memcpy in hb-null.hh with pointers to nontrivially-copyable types. Sidestep this warning by casting the problematic pointer to void*.
Caleb Maclennan 10cf348a 2024-11-11T10:32:01 [gsubgpos] Guard integer arithmetic against wrapping below zero When either casting a signed integer to an unsigned one or subtracting a value from an unsigned one, add assertions to verify we will not end up below expected bounds.
Luca Ebach 780aaca8 2024-11-27T16:12:51 set harfbuzz version in cmake config file
Qunxin Liu 3bb89eeb 2024-11-24T17:00:14 [instancer] use hb_parse_double() for parsing axis positions Added hb_subset_axis_range_from/to_string()
Khaled Hosny 056cc560 2024-11-24T07:33:12 [config] Improve language handling with HB_LEAN Remove HB_NO_LANGUAGE_LONG and HB_NO_LANGUAGE_PRIVATE_SUBTAG defines to support language tags longer than 2 letters and private language tags (needed to set language using OpenType language tags) respectively. HB_LEAN is used when smaller binary size is desired, but in general it should not produce different shaping output. Fixes https://github.com/harfbuzz/harfbuzzjs/issues/108
Garret Rieger 0b7beefd 2024-11-22T01:00:57 Raise table growth limit during subsetting. Real case encountered that exceeded the current limit. Fixes #4943.
Khaled Hosny 773fe850 2024-11-20T17:20:49 [layout] Blocklist the GDEF table of various Courier New versions These files have incorrectly give several base glyphs GDEF mark glyph class leading in zeroing there advance widths. Fixes https://github.com/harfbuzz/harfbuzz/issues/4936
Behdad Esfahbod 39246326 2024-11-16T12:20:24 [cairo] Protect against some invalid matrices hb-view --font-size 0,10 still fails with cairo error. To be debugged separately.
Behdad Esfahbod d759ee5a 2024-11-15T16:18:34 [ft] Guard FT_LOAD_NO_SVG Also pass FT_LOAD_NO_BITMAP.
Behdad Esfahbod 96579076 2024-11-15T15:33:11 [ft-colr] Don't load SVG table since we don't support it Part of https://github.com/harfbuzz/harfbuzz/issues/4938
Behdad Esfahbod 21cba9e5 2024-11-15T15:21:03 [cairo] Fix scaling in paint_color_glyph Fixes https://github.com/harfbuzz/harfbuzz/issues/4938
Behdad Esfahbod de7f97b7 2024-11-15T15:14:37 [COLR] Add comment
Garret Rieger b0d52abe 2024-10-23T20:49:44 [subset] consider variation selectors subsetting cmap14 cmap14 subsetting code was not considering variation selectors in the input unicode set when deciding which variant glyphs to keep. This updates subsetting to only keeps variant glyphs if their variation selector code point is in the input unicodes set. For https://github.com/harfbuzz/harfbuzz/issues/4911
Behdad Esfahbod 1767f99e 2024-11-10T22:43:28 [cairo] Guard hb_cairo_glyphs_from_buffer() against bad UTF-8 Previously it was assuming valid UTF-8.
Qunxin Liu b5ed7846 2024-11-08T14:46:57 [subset-serialize] release discarded objects
Qunxin Liu 622e9c33 2024-11-06T10:59:17 [instancer] fix for incorrect offset calculation when we have gvar padding
Khaled Hosny 9ef44a2d 2024-11-05T08:01:56 10.1.0
Behdad Esfahbod c85a6c2a 2024-11-04T17:33:30 [cairo] Respect HB_NO_VAR Fixes https://github.com/harfbuzz/harfbuzz/issues/4924
Behdad Esfahbod 9974a661 2024-10-27T16:14:53 [icu] Make it build with ICU 76 Fixes https://github.com/harfbuzz/harfbuzz/issues/4915
Qunxin Liu e5139c51 2024-10-21T12:54:56 bug fix in hashmap get_with_hash()
Behdad Esfahbod de1a1e27 2024-10-15T14:17:38 [coretext-font] Implement get_glyph_v_origin() For a font without vertical metrics, I'm getting different values from ot/ft. But that's expected, since in ot we just implemented the same heuristics as ft.
Behdad Esfahbod 78609702 2024-10-15T14:12:07 [coretext-font] Implement get_glyph_v_advances
Behdad Esfahbod e1026a22 2024-10-15T14:05:39 [coretext-font] Implement get_variation_glyph() Not sure if I got it right, but *seems* to work.
Behdad Esfahbod d44cc8a1 2024-10-15T13:54:16 [coretext-font] Implement get_glyph_name()
Behdad Esfahbod 0ce67f56 2024-10-15T13:49:01 [coretext-font] Implement font_get_h_metrics
Behdad Esfahbod e31ea830 2024-10-14T16:00:06 [ft] Try using a ref-counted ft_library https://github.com/harfbuzz/harfbuzz/pull/4895#issuecomment-2412348792
Behdad Esfahbod 12fc715d 2024-10-12T20:14:59 [ft] Add hb_ft_face_create_from_file_or_fail() New API: +hb_ft_face_create_from_file_or_fail()
Behdad Esfahbod 89c83b5b 2024-10-12T19:45:12 [coretext] Add hb_coretext_face_create_from_file_or_fail() New API hb_coretext_face_create_from_file_or_fail()
Behdad Esfahbod b12acba4 2024-10-12T19:29:02 [face] Add hb_face_create_from_file_or_fail() New API: + hb_face_create_from_file_or_fail()
Behdad Esfahbod 2437fd88 2024-10-12T19:24:42 [face] Add hb_face_create_or_fail() New API: + hb_face_create_or_fail()
Behdad Esfahbod 2166a46a 2024-10-12T08:47:38 [coretext] Don't set CoreText funcs on new CoreText fonts
Behdad Esfahbod 62ae9fbd 2024-10-10T14:26:49 [coretext-font] Implement get_glyph_from_name
Behdad Esfahbod b5e9f2cb 2024-10-10T14:15:50 [coretext-font] Implement get_glyph_extents
Behdad Esfahbod 8db2997e 2024-10-10T13:55:11 [coretext] Configure hb_coretext_font_create() with CT font funcs Not sure if this is a good idea...
Behdad Esfahbod 8a805271 2024-10-10T12:56:31 [coretext] Start implementing CoreText font-funcs Does nominal glyph mapping, horiz advances, and draw so far.
Behdad Esfahbod 064b2417 2024-10-09T15:12:59 [coretext] Rename hb-coretext.cc to hb-coretext-shape.cc
Behdad Esfahbod ab360899 2024-10-10T14:46:27 [CFF] Increase max op num limit This actually counts operands too, not just operators. In a big variable-font design-space, each blend can easily take a dozen ops or more. I was sent a font for which this limit was hit. Increase by 20x for now.
Behdad Esfahbod 1a4bdd69 2024-10-10T14:16:14 [font] Change fallback y_advance sign Ouch.
Khaled Hosny 6a25df24 2024-10-09T14:09:22 [COLR] Add and use get_clip_list ()
Khaled Hosny 5462978c 2024-10-09T13:43:13 [COLR] Lets see if this makes CIFUZZ any happier
Behdad Esfahbod 008505e1 2024-10-08T09:27:09 [COLR] Pepper some hb_barrier()'s around The version is a minor version (because uint16), as such version > 1 should be considered as supporting version 1 data.
Khaled Hosny cec95a2d 2024-10-07T21:06:56 Try to fix heap-buffer-overflow
Khaled Hosny 4d1f6e04 2024-10-06T18:25:24 [COLR] Enable COLRv0 support in get_extents() paint_glyph() supports COLRv0 but this code is never reached because of the early return if version is not 1. This early return seems to be from before COLRv0 extents were supported.
Behdad Esfahbod 4587e08a 2024-10-07T08:41:23 [VarStoreInstancer] Fix null deref Should fix this hopefully: https://github.com/harfbuzz/harfbuzz/actions/runs/11203732283/job/31141330056?pr=4885
Behdad Esfahbod e8de8d88 2024-10-07T06:11:25 [CONFIG] Remove unused HB_NDEBUG
David Corbett b6196986 2024-10-03T15:56:04 [USE] Update the data files This uses the data files from <https://github.com/microsoft/font-tools/tree/e00698c07a0444647db84a7f8bf03d1081bd53b3/USE>.
David Corbett 31b22016 2024-10-03T14:16:54 [ot-tags] Update IANA and OT language registries
Julien Nabet 5772f4ff 2024-10-01T19:29:04 missing-field-initializers in main.cc FAILED: src/main.p/main.cc.o clang++ -Isrc/main.p -Isrc -I../src -I. -I.. -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/sysprof-6 -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++11 -fno-exceptions -O3 -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -DHAVE_CONFIG_H -Wall -Wextra -Werror -pthread -Wno-non-virtual-dtor -UNDEBUG -MD -MQ src/main.p/main.cc.o -MF src/main.p/main.cc.o.d -o src/main.p/main.cc.o -c ../src/main.cc ../src/main.cc:220:33: error: missing field 'y_bearing' initializer [-Werror,-Wmissing-field-initializers] hb_glyph_extents_t extents = {0}; ^ ../src/main.cc:270:36: error: missing field 'y_bearing' initializer [-Werror,-Wmissing-field-initializers] hb_glyph_extents_t extents = {0}; ^ 2 errors generated.
Julien Nabet 18f1d912 2024-10-01T18:56:51 missing-field-initializers in hb-draw.h With clang build, I got: FAILED: test/api/test-draw.p/test-draw.c.o clang -Itest/api/test-draw.p -Itest/api -I../test/api -I. -I.. -Isrc -I../src -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/sysprof-6 -I/usr/include/freetype2 -I/usr/include/libpng16 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -DHAVE_CONFIG_H -Wall -Wextra -Werror -pthread -MD -MQ test/api/test-draw.p/test-draw.c.o -MF test/api/test-draw.p/test-draw.c.o.d -o test/api/test-draw.p/test-draw.c.o -c ../test/api/test-draw.c ../test/api/test-draw.c:920:26: error: missing field 'reserved4' initializer [-Werror,-Wmissing-field-initializers] hb_draw_state_t st = HB_DRAW_STATE_DEFAULT; ^ ../src/hb-draw.h:73:71: note: expanded from macro 'HB_DRAW_STATE_DEFAULT' define HB_DRAW_STATE_DEFAULT {0, 0.f, 0.f, 0.f, 0.f, {0.}, {0.}, {0.}}
Behdad Esfahbod c7ef6a2e 2024-09-25T19:42:40 Remove the hack re variation-selectors Instead of abusing an unused Gen_Cat value, use existing facilities to remember variation selectors. Addresses https://github.com/RazrFalcon/rustybuzz/pull/134#issuecomment-2374894164
Khaled Hosny a1d9bfe6 2024-09-24T19:52:43 10.0.1
Behdad Esfahbod 527e60b0 2024-09-24T09:18:08 [morx] Relax sanitizing Ignore claimed ChainSubtable length and only sanitize against the whole table. Works around what seems to be a broken LookupFormat0 in a Noncontextual subtable in GeezaPro on MacOS 15.0 Fixes https://github.com/harfbuzz/harfbuzz/issues/4873
Behdad Esfahbod 70ca19df 2024-09-24T08:42:44 Use hb_barrier() instead of longer name No functional change.
Khaled Hosny d5261f72 2024-09-23T23:07:55 10.0.0
chitao1234 700ef11c 2024-08-23T11:29:34 [meson] Add back with_libstdcxx build option Building harfbuzz when targeting Android API<=20 would need libstdc++ due to lack of uselocale and freelocale in C library but present in libstdc++. This reverts commit 0151da23d605c7709d432ebfb17a337a5f662839.
David Corbett 242b5844 2024-09-15T14:43:55 [USE] Update the data files This uses the data files from <https://github.com/microsoft/font-tools/tree/1ffb9024b755313e661e8f492d87954856cc96a6/USE>.
Behdad Esfahbod 7a890c2e 2024-09-22T13:19:02 Add hb_barrier() to switches of unions https://github.com/harfbuzz/harfbuzz/pull/4864#issuecomment-2366923736
Behdad Esfahbod 7aace3d3 2024-09-23T07:47:24 Ignore CGJ and Mongolian Variation Selectors during GPOS Fixes https://github.com/harfbuzz/harfbuzz/issues/4869
Behdad Esfahbod 540666b8 2024-09-23T07:01:26 [paint] Err. Make previous commit actually work
Behdad Esfahbod ed636260 2024-09-23T07:00:41 [paint] Intersect clips
Behdad Esfahbod b0cf3d81 2024-09-23T06:50:59 [paint] Comment
Behdad Esfahbod 5e5cd10e 2024-09-22T12:36:51 Don't make variation-selectors default-ignorable if not-found set https://github.com/harfbuzz/harfbuzz/pull/4863#issuecomment-2366908261
Behdad Esfahbod b94a39d7 2024-09-22T08:23:34 Follow up to variation-selector-not-found glyph Addresses https://github.com/harfbuzz/harfbuzz/pull/4529#discussion_r1769638033 I'm not sure if this is an improvement. By leaving the var-selector as default-ignorable, ligatures can form around it, and the resulting cluster won't make it clear *which* base+var-selector could not be resolved... That doesn't quite help font fallback the way we want. Putting up for review.
Behdad Esfahbod 09589295 2024-09-22T13:01:18 [post] Add a hb_barrier()
Behdad Esfahbod 48774052 2024-09-22T13:00:09 [GDEF] Sprinkle some hb_barrier()s
Behdad Esfahbod e4e9f6a1 2024-09-22T11:17:48 [gsubgpos] Add a barrier Fixes https://github.com/harfbuzz/harfbuzz/issues/4852
Behdad Esfahbod 0dace9f3 2024-09-21T12:38:16 [PairPos] Forgo an optimization for the sake of compatibility Fixes https://github.com/harfbuzz/harfbuzz/issues/4797
Behdad Esfahbod 287046f7 2023-12-15T10:24:03 [buffer] Hook up not-found-variation-selector-glyph Fixes https://github.com/harfbuzz/harfbuzz/issues/4398
Behdad Esfahbod a003890e 2024-09-21T11:30:56 [buffer] Add hb_buffer_[sg]et_not_found_variation_selector_glyph() Unused.
Qunxin Liu 6fd76e1f 2024-09-17T13:50:10 [subset] offset format fix in gvar table