src/hb-buffer.h


Log

Author Commit Date CI Message
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 3f82f8ff 2012-11-15T18:45:31 Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties()
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 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 fbaf8ffa 2009-08-10T20:59:25 [HB] Add hb_buffer_reverse()
Behdad Esfahbod 1b7b97f2 2009-08-10T21:10:37 [HB] Add buffer UTF-X API
Behdad Esfahbod 468769b8 2009-08-08T16:53:23 [HB] Rename hb_ot_layout_feature_mask_t to hb_mask_t
Behdad Esfahbod f1322e52 2009-08-01T22:53:04 [HB] Cleanup public buffer structs
Behdad Esfahbod 6d5bb18e 2009-08-01T22:25:04 [OT] Match struct with HB's
Behdad Esfahbod 11fbb548 2009-08-01T22:19:06 [HB] Port buffert to new object API
Behdad Esfahbod 02a37069 2009-07-29T18:41:25 [HB] Move direction to buffer
Behdad Esfahbod f9cd1014 2009-07-28T15:43:34 Apply patch from Jonathan Kew
Behdad Esfahbod 2ebb89d6 2009-07-25T19:09:01 Revert "XX" This reverts commit c939f6aff405ca7b10b1f1538f46148bff719fcb.
Behdad Esfahbod 55520d2a 2009-06-10T23:26:51 XX
Behdad Esfahbod e35bbd57 2009-05-30T12:02:46 [HB] Improve buffer. Don't dup out buffer unless out is longer than in That is, we work in-place even for ligatures now.
Behdad Esfahbod c968fc2d 2009-05-25T04:04:24 [HB] More buffer cleanup
Behdad Esfahbod 6c78683c 2009-05-25T03:22:19 [HB] Update copyright years
Behdad Esfahbod d9d2a07f 2009-05-25T03:24:19 [HB] Remove one XXX, add another
Behdad Esfahbod f96ffd43 2009-05-24T15:01:16 [HB] simplify macros
Behdad Esfahbod 5c0adce1 2009-05-20T05:42:12 [HB] Rename harfbuzz-buffer to hb-buffer