src/hb-buffer.h


Log

Author Commit Date CI Message
Ebrahim Byagowi a0b4ac4d 2019-08-24T17:57:14 Turn 8 spaces to tab across the project According to the current code style of the project
Behdad Esfahbod d6fc1d49 2019-03-28T21:21:26 2.4.0
Khaled Hosny c2442c90 2019-03-12T01:09:27 [doc] Add placeholder since version for new flag
Eric Muller 30d7c40f 2019-02-09T02:55:27 Add a flag to hb_buffer_t to prevent the insertion of dotted circles on incorrect character sequences. Current behavior unchanged if this flag is not set (and it isn't by default).
Behdad Esfahbod 1a2eb108 2018-11-19T12:36:56 [ot-var] Add hb_ot_var_axis_get_flags() Part of https://github.com/harfbuzz/harfbuzz/issues/1241 New API: +hb_ot_var_axis_flags_t +hb_ot_var_axis_get_flags
Behdad Esfahbod 1e39833b 2018-10-20T16:56:06 [docs] Minor
Behdad Esfahbod e42cd58c 2018-10-07T20:46:11 Rename invisible_codepoint to invisible_glyph in API Deleted recently added API: hb_buffer_set_invisible_codepoint() hb_buffer_get_invisible_codepoint() hb-shape / hb-view --invisible-codepoint New API: hb_buffer_set_invisible_glyph() hb_buffer_get_invisible_glyph() hb-shape / hb-view --invisible-glyph Fixes https://github.com/harfbuzz/harfbuzz/issues/1216
Behdad Esfahbod 71b65eb2 2018-10-07T18:41:52 Add API for setting invisible-codepoint Fixes https://github.com/harfbuzz/harfbuzz/issues/1216 New API: hb_buffer_set_invisible_codepoint() hb_buffer_get_invisible_codepoint() hb-shape / hb-view --invisible-codepoint
Behdad Esfahbod ad1c190e 2018-09-30T18:26:45 Correct fix for glib-mkenum warning
Behdad Esfahbod 1dd1e56b 2018-09-30T18:25:58 Revert "Fix glib-mkenum warning" This reverts commit 247756a7d89008ee6a7d1171dc07ba22454c6034. Was wrong. Right fix coming.
Behdad Esfahbod 247756a7 2018-09-30T13:10:54 Fix glib-mkenum warning GEN hb-gobject-enums.h WARNING: Failed to parse "/*< private >*/" in ../../src/hb-buffer.h
Behdad Esfahbod 55bae682 2018-09-24T10:43:06 [docs] A few improvements If we wrote just this much every day...
Behdad Esfahbod a981d798 2018-02-10T15:17:28 Fix more build issues Hopefully most bots come back with this...
Behdad Esfahbod d45f240e 2018-02-09T15:51:45 Typo
Behdad Esfahbod 3b7aa651 2018-02-09T15:43:20 [docs] Improve UNSAFE_TO_BREAK docs
bungeman 671f0a77 2018-02-01T13:31:25 Documentation for HB_GLYPH_FLAG_UNSAFE_TO_BREAK. HB_GLYPH_FLAG_UNSAFE_TO_BREAK means that the glyph with this flag is somehow affected by the previous logical glyph (the previous index in the buffer if ltr and the next index if the buffer is rtl). If these two glyphs are separated by a break (line or otherwise) then the underlying text should be re-shaped on both sides up to corresponding position in the text of some glyph not marked with this flag.
Bruce Mitchener 19a93fcf 2018-01-21T20:40:34 Fix typos.
Khaled Hosny 0b22da95 2018-01-10T07:12:07 Improve HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES docs Add the note about absolute glyph positions from the commit message.
Behdad Esfahbod 3b1e97f3 2018-01-10T03:35:20 Add HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES New API: HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES hb-shape / hb-view --remove-default-ignorables One more text-rendering-tests test passing. Eleven failing.
Behdad Esfahbod 71fd6325 2018-01-10T02:20:14 Add option to buffer serialization to not output glyph advances When advances are not printed, glyph offsets reflect absolute glyph positions. New API: HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES hb-shape --no-advances
Behdad Esfahbod fbb937b6 2017-10-15T12:04:16 Don't use NULL in public headers
fanc999 48a94068 2017-10-07T18:57:14 Fix build of HarfBuzz tools and HarfBuzz-GObject on Visual Studio (#555) * hb-buffer.h: Mark hb_buffer_diff() for export This will fix the tools builds on Visual Studio, as the symbol is used by the tools. * build: Adapt NMake Makefiles for GLib 2.53.4 or later glib-mkenums was ported from a PERL script to a Python script, so we need to update how we generate the enum sources for HarfBuzz-GObject in the NMake builds. Let this be known in the build documentation for MSVC builds. One of the problems with the underlying cmd.exe that the NMake Makefiles run on is that shebang lines are not recognized, so we need to to test run the script with Python and see whether it succeeded by outputing a source file that is larger than 0 in file size (since running the PERL version of the script will clearly fail and cause an empty file to be created). If it succeeds, we then run a small Python utility script that makes the necessary string replacements, and we are done. If that fails, then we run the glib-mkenums script with PERL, and do the replacements with the PERL one-liners as we did before. We need to make replace.py use latin-1 encoding when using Python 3.x to cope with the copyright sign that is in the generated enum sources.
Behdad Esfahbod d03f11f2 2017-09-04T20:14:13 Fix buffer_diff for empty buffers If buffers are empty, content type should be ignored. This fixes last of the failing tests: fuzzed.tests. Green again!
Behdad Esfahbod b2dd0c1c 2017-08-23T13:12:54 Add hb_glyph_info_get_glyph_flags() New API.
Behdad Esfahbod 3e8f4f14 2017-08-22T17:56:25 Rename HB_BUFFER_DIFF_FLAG_MASK_MISMATCH to HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH
Behdad Esfahbod 338e61ad 2017-08-14T12:36:38 Fix typo
Jonathan Kew 331d66c7 2014-07-19T23:09:09 Add function to compare two buffers Based on patch from Jonathan Kew. Needs more cleaning up and documentation. New API: hb_buffer_diff_flags_t hb_buffer_diff()
Behdad Esfahbod 39a97494 2017-08-11T15:52:06 New API: hb_buffer_append()
Behdad Esfahbod 5287ccc9 2017-08-10T14:25:53 [unsafe-to-break] Allocate public bits from 0
Behdad Esfahbod 40bd7e9a 2016-05-02T14:47:45 [unsafe-to-break] Add UNSAFE_TO_BREAK flag Not all shapers code is updated to set this properly. GSUB and Arabic shaper are updated. GPOS and other shapers are NOT. Fixes https://github.com/behdad/harfbuzz/issues/224
Behdad Esfahbod 97624d92 2016-01-11T12:58:45 [docs] Minor fixes.
Khaled Hosny 9ab9f974 2016-01-01T20:38:21 [docs] More buffers documentation
Khaled Hosny fb192c26 2015-12-30T15:05:50 [docs] A bit more buffers documentation
Khaled Hosny 8ab797c5 2015-12-29T17:42:16 [docs] A bit more buffers documentation
Behdad Esfahbod 0475ef2f 2015-12-18T18:17:07 [buffer] Add debugging, aka, message, API Currently just announces lookup applications. Message-API *will* change. hb-shape / hb-view are updated to print-out messages to stder if --debug is specified.
Chun-wei Fan 835bbdc7 2015-11-19T18:34:12 Public headers: Decorate public symbols with HB_EXTERN This prepares the headers for exporting symbols using visibility attributes or __declspec(dllexport), so that we do not need to maintain symbols listing files, as this is what was and is done in GLib and GTK+.
Behdad Esfahbod b8811429 2015-09-03T15:53:22 Fix Since tags Fixes https://github.com/behdad/harfbuzz/issues/103
Behdad Esfahbod fdd1770e 2015-08-24T13:49:55 Add API/cmdline to show glyph extents when serializing buffer New API: HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS hb-shape now accepts --show-extents. Patch from Simon Cozens.
Behdad Esfahbod 376d587f 2015-07-22T16:51:12 Implement more granular cluster-merging TODO: Documentation. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=71445
Behdad Esfahbod 81bedda5 2015-04-30T13:04:16 New API: hb_buffer_reverse_range()
Behdad Esfahbod 61820bc4 2015-01-26T14:25:52 [API] Add hb_buffer_add_latin1() This is by no ways to promote non-Unicode encodings. This is an entry point that takes Unicode codepoints that happen to all be the first 256 characters and hence fit in 8bit strings. This is useful eg in Chrome where strings that can fit in 8bit are implemented that way, and this avoids copying into UTF-8 or UTF-16. Perhaps we should rename this to hb_buffer_add_codepoints8(). I'm also curious if anyone would be really interested in hb_buffer_add_codepoints16(). Please discuss!
Behdad Esfahbod 976c8f45 2014-07-16T15:34:20 New API: hb_buffer_[sg]et_replacement_codepoint() With this change, we now by default replace broken UTF-8/16/32 bits with U+FFFD. This can be changed by calling new API on the buffer. Previously the replacement value used to be (hb_codepoint_t)-1. Note that hb_buffer_clear_contents() does NOT reset the replacement character. See discussion here: https://github.com/behdad/harfbuzz/commit/6f13b6d62daae4989e3cc2fe4b168e5c59650964 New API: hb_buffer_set_replacement_codepoint() hb_buffer_get_replacement_codepoint()
Behdad Esfahbod bcba8b45 2014-07-16T14:59:04 New API hb_buffer_add_codepoints() Like hb_buffer_add_utf32, but doesn't do any Unicode validation. This is like what hb_buffer_add_utf32 used to be until a couple commits ago.
Behdad Esfahbod 11fb16cb 2013-10-17T20:57:57 Use unsigned enums for mask types
Behdad Esfahbod 4dc798de 2013-08-26T20:39:00 Add hb-deprecated.h, and rename a couple enum values Add deprecated alias for old name.
Behdad Esfahbod 847794e9 2013-02-27T17:59:28 [buffer] Implement buffer deserialization for format=text Using a ragel machine.
Behdad Esfahbod e54dd263 2013-02-27T13:01:02 [buffer] Start implementing buffer deserialization
Behdad Esfahbod bcc8f32b 2013-02-27T12:02:42 [buffer] Minor
Behdad Esfahbod 1172dc73 2013-01-07T16:46:37 Rename hb_buffer_clear() to hb_buffer_clear_contents() The previous name was clashing with harfbuzz.old. There are systems that need to link both... Clash-free now again.
Behdad Esfahbod f3064103 2012-11-15T18:39:46 Bunch of independent changes (ouch) API additions: hb_segment_properties_t HB_SEGMENT_PROPERTIES_DEFAULT hb_segment_properties_equal() hb_segment_properties_hash() hb_buffer_set_segment_properties() hb_buffer_get_segment_properties() hb_ot_layout_glyph_class_t hb_shape_plan_t hb_shape_plan_create() hb_shape_plan_create_cached() hb_shape_plan_get_empty() hb_shape_plan_reference() hb_shape_plan_destroy() hb_shape_plan_set_user_data() hb_shape_plan_get_user_data() hb_shape_plan_execute() hb_ot_shape_plan_collect_lookups() API changes: Rename hb_ot_layout_feature_get_lookup_indexes() to hb_ot_layout_feature_get_lookups(). New header file: hb-shape-plan.h And a bunch of prototyped but not implemented stuff. Coming soon. (Tests fail because of the prototypes right now.)
Behdad Esfahbod 3f82f8ff 2012-11-15T18:45:31 Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties()
Behdad Esfahbod c54599ad 2012-11-15T16:14:23 Minor
Behdad Esfahbod 072ae7a9 2012-11-15T13:14:12 Add hb_buffer_serialize_list_formats()
Behdad Esfahbod f9edf167 2012-11-15T12:14:09 Add buffer serialization / deserialization API Two output formats for now: TEXT, and JSON. For example: hb-shape --output-format=json Deserialization API is added, but not implemented yet.
Behdad Esfahbod 92f9bfed 2012-11-13T16:50:45 Minor
Behdad Esfahbod 66ac2ff3 2012-11-13T16:26:32 API change: Remove "mask" from hb_buffer_add() I don't expect anybody using hb_buffer_add(), so this shouldn't break anyone's code.
Behdad Esfahbod 0c7df222 2012-11-13T14:42:35 Add buffer flags New API: hb_buffer_flags_t HB_BUFFER_FLAGS_DEFAULT HB_BUFFER_FLAG_BOT HB_BUFFER_FLAG_EOT HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES hb_buffer_set_flags() hb_buffer_get_flags() We use the BOT flag to decide whether to insert dottedcircle if the first char in the buffer is a combining mark. The PRESERVE_DEFAULT_IGNORABLES flag prevents removal of characters like ZWNJ/ZWJ/...
Behdad Esfahbod 82ecaff7 2012-11-13T13:57:52 Add hb_buffer_clear() Which is like _reset(), but does NOT clear unicode-funcs.
Behdad Esfahbod 05207a79 2012-09-25T17:44:53 [buffer] Save pre/post textual context To be used for a variety of purposes. We save up to five characters in each direction. No public API changes, everything is taken care of already. All clients need to do is to call hb_buffer_add_utf* with the full text + segment info (or at least some context) instead of just passing in the segment. Various operations (hb_buffer_reset, hb_buffer_set_length, hb_buffer_add*) automatically reset the relevant contexts.
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 560d68af 2012-08-08T17:16:01 Use a export-file for Windows builds Apparently even that doesn't make check-internal-symbols.sh happy with mingw32. Going to disable that for DLLs again, but hopefully the export-file is doing *something*.
Behdad Esfahbod 39b17837 2012-07-17T17:09:29 Add hb_buffer_normalize_glyphs() and hb-shape --normalize-glyphs This reorders glyphs within the cluster to a nominal order. This should have no visible effect on the output, but helps with testing, for getting the same hb-shape output for visually-equal glyphs for each cluster.
Behdad Esfahbod 1bc1cb36 2012-06-16T15:21:55 Make source more digestable for gobject-introspection
Behdad Esfahbod 0594a244 2012-06-05T20:35:40 Cleanup TRUE/FALSE vs true/false
Behdad Esfahbod d1c9eb45 2012-04-12T13:17:44 Make it an error to include non-top-level headers Users should #include <hb.h> (or hb-ft.h, hb-glib.h, etc), but never things like hb-shape.h directly. This makes it easier to refactor headers later on without breaking compatibility.
Behdad Esfahbod e6c09cdf 2011-08-17T19:07:59 Remove the pre_allocate argument from hb_buffer_create() For two reasons: 1. User can always call hb_buffer_pre_allocate() themselves, and 2. Now we do a pre_alloc in add_utfX anyway, so the total number of reallocs is limited to a small number (~3) anyway. This just makes the API cleaner.
Behdad Esfahbod 33ccc779 2011-08-09T00:43:24 [API] Make set_user_data() functions take a replace parameter We need this to set data on objects safely without worrying that some other thread unsets it by setting it at the same time.
Behdad Esfahbod 944b2ba1 2011-08-09T00:23:58 [buffer] Make API take signed int length Since we already switched to accepting -1 as 'zero-terminated'.
Behdad Esfahbod 02aeca98 2011-08-04T22:31:05 [API] Changes to main shape API hb_shape() now accepts a shaper_options and a shaper_list argument. Both can be set to NULL to emulate previous API. And in most situations they are expected to be set to NULL. hb_shape() also returns a boolean for now. If shaper_list is NULL, the return value can be ignored. shaper_options is ignored for now, but otherwise it should be a NULL-terminated list of strings. shaper_list is a NULL-terminated list of strings. Currently recognized strings are "ot" for native OpenType Layout implementation, "uniscribe" for the Uniscribe backend, and "fallback" for the non-complex backend (that will be implemented shortly). The fallback backend never fails. The env var HB_SHAPER_LIST is also parsed and honored. It's a colon-separated list of shaper names. The fallback shaper is invoked if none of the env-listed shapers succeed. New API hb_buffer_guess_properties() added.
Behdad Esfahbod 80a6833b 2011-05-11T18:14:44 [API] Add hb_*_get_empty() for all objects
Behdad Esfahbod 5fa849b7 2011-04-27T21:46:01 [API] Add _set/get_user_data() for all objects
Behdad Esfahbod 2409d5f8 2011-04-21T17:14:28 Update Copyright headers
Behdad Esfahbod af029337 2011-04-20T15:49:31 [API] Remove hb_*_get_reference_count() This was a bizzare piece of API that I inherited from cairo. It has been wrong adding them to cairo in the first place. Remove them before someone uses them!
Behdad Esfahbod f85faee9 2011-04-19T00:38:01 [API] Rename hb_buffer_add_glyph() to hb_buffer_add()
Behdad Esfahbod aab0de50 2011-04-19T00:32:19 [API] Add hb_buffer_allocation_successful() Returns the error status of the buffer.
Ryan Lortie 02a534b2 2011-04-15T18:34:45 [API] Rename hb_buffer_ensure() to hb_buffer_pre_allocate() The new name is self-documenting.
Ryan Lortie 70566bef 2011-04-15T18:32:36 [API} hb_buffer_get_glyph_{infos,positions}: Add length out parameter Return the length, whenever we return an array. Makes it easier on the language bindings.
Behdad Esfahbod b54cd07b 2011-04-15T19:12:01 Mark internal buffer variables private
Behdad Esfahbod 8f0d7e0c 2011-04-15T18:59:56 Remove hb_buffer_clear_positions(), add hb_ot_layout_position_start()
Behdad Esfahbod 2fc56edf 2011-04-15T18:35:08 [API] Remove hb_buffer_clear() One should use hb_buffer_reset() really.
Behdad Esfahbod c910bec8 2011-04-13T15:49:06 Add hb_buffer_reset() and hb_buffer_set_length()
Behdad Esfahbod 8e4bb3ca 2011-04-11T17:55:58 Fold hb-language.[ch] into hb-common.[ch]
Behdad Esfahbod 88474c6f 2010-10-27T14:42:15 Get rid of the OpenType-specific internal buffer representation Add variant integers to buffer item types. More cleanup coming.
Behdad Esfahbod 6cb8c349 2010-10-27T14:27:03 Add hb_var_int_t
Behdad Esfahbod acdba3f9 2010-07-23T15:11:18 Prefer C linkage
Behdad Esfahbod a6a79df5 2010-05-14T23:20:16 Handle malloc failture in the buffer
Behdad Esfahbod c755cb3e 2010-04-22T00:11:43 Change header comment
Behdad Esfahbod ff44f88d 2009-11-06T19:48:16 Handle shaping in non-native direction
Behdad Esfahbod 9db8ad75 2009-11-06T16:47:31 Add hb_ot_layout_position_finish() We expect buffer to be setup with default positions before GPOS.
Behdad Esfahbod 3d14528b 2009-11-06T15:13:17 Rename hb_buffer_get_len() to hb_buffer_get_length()
Behdad Esfahbod 9bef3611 2009-11-05T12:20:11 Rename [xy]_pos to [xy]_offset since we don't accumulate positions
Behdad Esfahbod ae070b7d 2009-11-04T20:29:54 Add script and language to buffer
Behdad Esfahbod 5ebabece 2009-11-03T15:15:07 Move unicode_funcs to buffer
Behdad Esfahbod 2f5931e4 2009-08-19T16:07:40 [HB] Hide lig_id and component members of hb_glyph_info_t
Behdad Esfahbod 864e2560 2009-08-18T16:38:48 [HB] Fix pedantic warnings
Behdad Esfahbod 2866d297 2009-08-13T11:47:08 [HB] Bitfield packing *is* very delicate Fix the second instance.
Behdad Esfahbod 299f0896 2009-08-10T22:47:57 [HB] Implement buffer UTF-X input
Behdad Esfahbod 1b7b97f2 2009-08-10T21:10:37 [HB] Add buffer UTF-X API
Behdad Esfahbod fbaf8ffa 2009-08-10T20:59:25 [HB] Add hb_buffer_reverse()
Behdad Esfahbod 468769b8 2009-08-08T16:53:23 [HB] Rename hb_ot_layout_feature_mask_t to hb_mask_t