src/hb-shape.cc


Log

Author Commit Date CI Message
Behdad Esfahbod 1fc128f6 2023-06-26T18:34:27 Replace a few memset/memcpy's with hb_ equivalents
Behdad Esfahbod ab4c3211 2023-03-03T09:31:16 [justify] Set out params in more cases
Khaled Hosny e57defc0 2023-03-03T13:05:30 [justify] Set var_value when expanding/shrinking to max When expanding/shrinking the buffer to max (and still not fitting), we need to also set var_value to the axis max/min otherwise client not have the correct axis value to draw with.
Behdad Esfahbod 43dbdd9d 2023-03-02T13:42:52 [justify] Document algorithm
Behdad Esfahbod c98bb4cf 2023-03-02T13:18:06 [justify] Fix up after recent changes Oops.
Behdad Esfahbod 78971738 2023-03-02T10:38:12 [justify] Fix compiler warnings
Khaled Hosny e359f46a 2023-03-02T03:06:53 Fix build
Behdad Esfahbod 25c66d63 2023-03-01T14:16:08 [justify] Wrap in HB_EXPERIMENTAL_API
Behdad Esfahbod 96d4ed09 2023-03-01T14:08:16 [justify] Document API
Behdad Esfahbod d29d7b7a 2023-03-01T13:10:11 [algs] Adjust solve_itp
Behdad Esfahbod 93252c6f 2023-03-01T10:59:04 [justify] Debug output
Behdad Esfahbod b937edfb 2023-03-01T10:44:57 [justify] Add min/max target_width Speeds up solving when some slack available.
Behdad Esfahbod 6e483c40 2023-02-28T12:25:32 [shape] Add hb_shape_justify() and hb-view --width
Behdad Esfahbod 5c462865 2023-02-28T12:16:46 Revert "." This reverts commit 59434578cd453d9dcdcaf5d010d5f5686c17717e.
Behdad Esfahbod 59434578 2023-02-28T12:13:55 .
Behdad Esfahbod 1a5c7495 2022-12-04T15:20:51 [config] Flesh out HB_NO_SHAPER a bit more
Khaled Hosny 98e90cc6 2022-06-30T08:43:57 [docs] Reduce warnings Use markdown syntax for inline code blocks instead of %true, %false, and %NULL.
Behdad Esfahbod a5cf1a87 2022-06-20T18:01:25 Another null adjustment
Behdad Esfahbod 0d031233 2022-06-20T16:51:35 Mark a null variable as const
Behdad Esfahbod e246723f 2022-06-01T04:54:18 [shape] Fail shaping internally if buffer ops exceeded
Behdad Esfahbod a441c6c1 2022-05-31T07:52:04 [shape] Only verify if text_buffer is successful
Behdad Esfahbod d72d3700 2022-06-01T04:43:10 [shape] Allow null buffer Ouch!
Behdad Esfahbod 9a2a8570 2022-05-31T04:25:20 [ot-shape] Don't verify buffer if shaping failed Fixes all of fuzzing verify failures, which were result of buffer failure on super-long results, which fails unsafe-to-break because shorter strings don't fail shaping.
Behdad Esfahbod 61823838 2022-01-28T13:45:25 [buffer] Add HB_BUFFER_FLAG_VERIFY Move buffer verification code inside the library, from util/. Part of https://github.com/harfbuzz/harfbuzz/issues/3010
Behdad Esfahbod ed116320 2021-09-14T07:09:54 Call atexit() via hb_atexit() Part of https://github.com/harfbuzz/harfbuzz/issues/3197
Behdad Esfahbod 2337f0d0 2021-07-08T10:58:50 Internally use hb_malloc/.../hb_free instead of malloc/.../free Redefining those stock names as macros was conflicting with gcc 10 headers. Fixes https://github.com/harfbuzz/harfbuzz/issues/3044
Khaled Hosny 5151c2b6 2020-12-31T00:28:27 [introspection] Replace deprecated allow-none Use optional or nullable as appropriate.
Behdad Esfahbod e40c0d82 2020-09-16T12:48:30 [ENOMEM] Handle immutable buffer in shape_full() Move the content_type changing to shape_plan_execute() where it belongs. Skip setting if content type is UNKNOWN, which happens with empty buffers only, including the immutable buffer. Alternate fix to https://github.com/harfbuzz/harfbuzz/pull/2606 and https://github.com/harfbuzz/harfbuzz/pull/2625
Ebrahim Byagowi 679fac87 2020-07-30T15:29:43 Skip hb_shape if buffer object is immutable
Ben Wagner b918cd8c 2019-10-10T15:30:48 Document hb_feature_t. This documents hb_feature_t. This is motivated mostly by the ambiguity of the units for 'start' and 'end' (clusters) and whether they are inclusive or exclusive. This also documents that for lookup type 3 the value is the one based index into the alternates and that in a list of features later feature values override previous feature values with the same tag.
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Behdad Esfahbod b89c7fd3 2018-11-21T12:32:48 Allow defining HB_USE_ATEXIT to 0 That's better use of that value than requiring extra macro HB_NO_ATEXIT
Behdad Esfahbod 3bf1ce74 2018-11-14T21:08:54 [shaper] Rename
Behdad Esfahbod 1db672a5 2018-11-12T16:05:09 [shaper] Rename
Behdad Esfahbod cf5fa57f 2018-10-27T04:50:38 [docs] Change section titles again I think I like the uniform "hb-*" more.
Behdad Esfahbod 00cf4e5e 2018-10-27T04:07:33 [docs] Fill in some sections
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.
Emil A Eklund 7112c641 2018-08-14T13:50:24 Guard free_static function definitions with macro Add HB_USE_ATEXIT macros around free_static function definitions to avoid unused function compiler warnings/errors.
Behdad Esfahbod 26636899 2018-08-12T18:10:59 Another clang bot fix
Behdad Esfahbod 7bd508a0 2018-08-12T17:19:55 [lazy] Rename free()
Behdad Esfahbod a3b97db9 2018-08-12T17:14:32 [lazy] Port more to it
Behdad Esfahbod 1f738094 2018-08-09T00:22:37 [atomic] Add hb_atomic_ptr_t<> and port all uses Found and fixed a couple bugs. Found a couple multithreading issues. Marked them with "XXX-MT-bug".
Ebrahim Byagowi 70d36543 2018-03-30T05:00:28 Make atexit callbacks threadsafe (#930)
Behdad Esfahbod dbdbfe3d 2017-10-15T12:11:08 Use nullptr instead of NULL
Behdad Esfahbod 5dfd341f 2017-01-22T16:55:40 Minor
Behdad Esfahbod 72364103 2017-01-20T20:16:53 Move code around
Behdad Esfahbod 72ada4f0 2016-09-10T03:57:24 [GX] Hook up feature variations Shape-plan caching is not implemented.
Behdad Esfahbod 70e72e5f 2016-06-28T21:00:37 [gobject] Fix a few warnings Part of https://github.com/behdad/harfbuzz/issues/277
Khaled Hosny 9ab9f974 2016-01-01T20:38:21 [docs] More buffers documentation
Behdad Esfahbod 26ba4d1e 2015-10-02T07:25:52 Fix segfault with empty buffer in hb_shape_plan_execute() Move the empty-buffer check from hb_shape_full() to hb_shape_plan_execute(). Reported by Simon Cozens.
Behdad Esfahbod b8811429 2015-09-03T15:53:22 Fix Since tags Fixes https://github.com/behdad/harfbuzz/issues/103
Sascha Brawer 01c3a885 2015-06-01T13:22:01 Fix "Since:" tags Based on data from http://upstream-tracker.org/versions/harfbuzz.html Resolves #103
Behdad Esfahbod be66ec53 2015-04-30T18:27:13 Use TRUE/FALSE instead of true/false in docs
Khaled Hosny d055e1fc 2014-01-08T02:28:55 Some attempt into initial hb-shape documentation Very anaemic, needs to descripe the format understood by hb_feature_from_string() etc., but it is just start.
Khaled Hosny a394bb66 2015-03-22T20:29:10 [bindings] Fix *_from_string functions Without the element-type they will be getting garbage, at least with Python.
Behdad Esfahbod b91904a4 2015-01-06T15:43:14 [bindings] Replace deprecated allow-none with optional and nullable
Chris Peterson fb85d618 2015-01-04T19:31:10 Add #ifdef HB_USE_ATEXIT to fix -Wunused-function warnings
Behdad Esfahbod 38fb30d7 2014-08-06T13:34:49 Use atexit() only if it's safe to call from shared library Apparently they are not (advertised as?) safe on BSD systems. We ignore the case of static libraries. Whitelisted on glibc, Android, and MSVC / mingw. https://bugs.freedesktop.org/show_bug.cgi?id=82246
Behdad Esfahbod 6e69200a 2014-07-25T12:30:47 Fix snprintf() format Patch from Maks Naumov. Fixes https://github.com/behdad/harfbuzz/pull/22
Behdad Esfahbod 5c5cdbbd 2014-07-25T12:21:49 Make sure broken feature strings are not partially parsed If user doesn't check hb_feature_from_string() return value, we don't want them to end up see the partially-parsed feature.
Behdad Esfahbod a795fe63 2014-07-25T12:15:33 Allow quotation marks around feature tag in hb_feature_from_string() With this, I believe we accept CSS feature strings completely.
Behdad Esfahbod 3f646184 2014-07-25T12:04:27 Allow space at the end of feature string with values, eg 'dlig=1 '
Behdad Esfahbod f31f7d22 2014-07-25T12:03:52 Minor
Behdad Esfahbod 60cb18a5 2014-07-25T12:01:22 Allow on/off in hb_feature_from_string() We now allow things like "dlig on" / "dlig=on".
Behdad Esfahbod d9e618ec 2014-07-25T11:56:01 Remove duplicate definition of ISALNUM It's defined in hb-private.h already.
Behdad Esfahbod 2ee5f665 2014-07-25T11:53:46 Fix parsing of features like "- liga" (with the space)
Behdad Esfahbod e15fa7a8 2014-07-25T11:44:35 Do not require the '=' in hb_feature_from_string() Towards accepting CSS font-feature-settings strings.
Behdad Esfahbod f4fe9bae 2014-07-25T11:39:55 Reject tags longer than 4 chars in hb_feature_from_string()
Behdad Esfahbod 288f2899 2013-09-06T15:40:22 [docs/introspection] More annotations
Behdad Esfahbod 38b8b405 2013-08-27T11:44:09 Fix possible snprintf OOM https://bugzilla.redhat.com/show_bug.cgi?id=1001645
Behdad Esfahbod 7235f33f 2013-06-10T14:39:51 Fix misc warnings reported by cppcheck https://bugs.freedesktop.org/show_bug.cgi?id=65544
Behdad Esfahbod 847794e9 2013-02-27T17:59:28 [buffer] Implement buffer deserialization for format=text Using a ragel machine.
Behdad Esfahbod 20b817ac 2013-02-27T18:39:37 [buffer] Implement buffer deserialization for format=json Using a ragel machine.
Behdad Esfahbod 8da51112 2013-02-27T17:48:31 Minor
Behdad Esfahbod c462b32d 2013-02-15T07:51:47 Disable automatic segment properties guessing Before, if one called hb_shape() without setting script, language, and direction on the buffer, hb_shape() was calling hb_buffer_guess_segment_properties() on the user's behalf to guess these. This is very dangerous, since any serious user of HarfBuzz must set these properly (specially important is direction). So now, we don't guess properties by default. People not setting direction will get an abort() now. If the old behavior is desired (fragile, good for simple testing only), users can call hb_buffer_guess_segment_properties() on the buffer just before calling hb_shape().
Behdad Esfahbod e9171af5 2013-01-29T22:45:00 Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used
Behdad Esfahbod 3f82f8ff 2012-11-15T18:45:31 Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties()
Behdad Esfahbod 1c7e5551 2012-11-13T14:42:22 Minor fix Ouch
Behdad Esfahbod 96fdc04e 2012-09-06T22:26:16 Add hb_buffer_[sg]et_content_type And hb_buffer_content_type_t and enum values.
Behdad Esfahbod e30ebd27 2012-09-06T22:09:06 Add hb_feature_to/from_string()
Behdad Esfahbod 5393e3a6 2012-08-02T09:24:35 [OT] Minor refactoring
Behdad Esfahbod a8842e4a 2012-07-31T23:10:11 Remove some TODO items
Behdad Esfahbod 2f87cebe 2012-07-27T04:02:38 Implement shape_plan caching Should give us some performance boost.
Behdad Esfahbod b6b7ba13 2012-07-27T01:26:11 Switch old and uniscribe backends to shape_plan
Behdad Esfahbod c32c096a 2012-07-27T01:13:53 Switch to shape_plan Not optimized yet. Eats babies. And no shaper uses the shape_plan.
Behdad Esfahbod 5b95c148 2012-07-26T23:46:53 Start implementing shape_plan
Behdad Esfahbod bd26b4d2 2012-07-26T22:05:39 Minor
Behdad Esfahbod 027857d0 2012-07-26T17:34:25 Start adding a unified shaper access infrastructure Add global shape_plan. Unused so far.
Behdad Esfahbod 8fe4c740 2012-07-24T21:05:12 [hb-old] Add HarfBuzz.old shaper Choose using shaper name "old".
Jonathan Kew aa6d8498 2012-07-24T15:52:32 [CoreText] Add basic Core Text backend for comparison with our native shaping Does not attempt to handle clusters in a Uniscribe- or HarfBuzz-compatible way; just returns the original string indexes that CT maintains. These may even be out-of-order in the case of reordrant glyphs.
Behdad Esfahbod 97aa0b73 2012-07-24T15:02:34 Minor const correctness shuffling
Behdad Esfahbod 6095de16 2012-06-07T15:48:18 Fix clang warning with NO_MT path
Behdad Esfahbod 0594a244 2012-06-05T20:35:40 Cleanup TRUE/FALSE vs true/false
Behdad Esfahbod f64b2ebf 2012-06-05T19:23:29 Remove last static initializer We're free! Lazy or immediate...
Behdad Esfahbod a5e40542 2012-04-17T12:37:19 Make font immutable in hb_shape()
Behdad Esfahbod 6bd9b479 2012-04-12T14:53:53 Hide backend-specific shape functions Also remove shaper_options argument to hb_shape_full(). That was unused and for "future". Let it go. More shaper API coming in preparation for plan/planned API.
Behdad Esfahbod cd2b9010 2011-08-24T01:47:25 [graphite] Minor
Behdad Esfahbod 1f49cf32 2011-08-24T01:29:25 Add graphite2 integration from Martin Hosken To be modified, a lot.
Behdad Esfahbod 0501573d 2011-08-10T16:25:56 Fix const correctness in the API