src/hb-buffer.cc


Log

Author Commit Date CI Message
Behdad Esfahbod cf5fa57f 2018-10-27T04:50:38 [docs] Change section titles again I think I like the uniform "hb-*" more.
Behdad Esfahbod 5dd86aa3 2018-10-27T04:28:40 [docs] Rename section titles to object names More useful.
Behdad Esfahbod 00cf4e5e 2018-10-27T04:07:33 [docs] Fill in some sections
Behdad Esfahbod 8d304ef7 2018-10-16T19:04:48 [utf] Add UTF16-BE and UTF32-BE
Behdad Esfahbod 3d9a0306 2018-10-18T05:58:17 2.0.0
Behdad Esfahbod 2e7c7165 2018-10-16T18:35:03 [buffer] Add an assert See if it helps debugging https://bugs.chromium.org/p/chromium/issues/detail?id=895117
David Corbett a03f5f4d 2017-12-28T22:59:29 Replace "ISO 639" with "BCP 47" `hb_language_from_string` accepts not only ISO 639 but also BCP 47. Not all ISO 639 codes are valid BCP 47 tags but the function does not accept overlong language subtags anyway.
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 14ebf8af 2018-10-07T20:35:06 [buffer] Improve shift_forward() "Improve" is a strong word in this case though, I understand.
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 2a6f1521 2018-10-03T20:09:14 [buffer] Inline some more
Behdad Esfahbod ba0f0f15 2018-09-30T03:49:52 Document setlocale() threadsafety issue "Fixes" //github.com/harfbuzz/harfbuzz/issues/1191
Behdad Esfahbod 55bae682 2018-09-24T10:43:06 [docs] A few improvements If we wrote just this much every day...
Behdad Esfahbod 606bf574 2018-09-16T19:33:48 Revert forcing use of single-parameter static_assert() Some clang versions define static_assert as a macro apparently, so we cannot redefine it... This reverts commit 94bfea0ce6a7b4d5641c198d50751748a353df11. This reverts commit 4e62627831e7457ed60ff87712570065b14b200a.
Behdad Esfahbod 4e626278 2018-09-16T18:09:36 Enforce single-param static_assert() only So we don't accidentally break it again.
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.
Behdad Esfahbod f0ef096b 2018-08-13T10:30:41 Don't add reference in get_unicode_funcs() functions Users don't expect a new reference returned from a get() function. Indeed, all users of that API I foud where NOT destroying the reference. Just change the implementations to NOT return a reference. This applies to the following APIs: hb_unicode_funcs_get_default() hb_glib_get_unicode_funcs() hb_icu_get_unicode_funcs() Fixes https://github.com/harfbuzz/harfbuzz/issues/1134
Behdad Esfahbod 3506672c 2018-08-06T06:17:48 Port _nil objects to Null() machinery Finally, unified!
Behdad Esfahbod bddeb2b1 2018-07-10T14:12:37 Minor renamings of internal inline functions
Behdad Esfahbod 7185b273 2018-05-31T20:03:00 Rename in_error to !successful Towards possibly using Null pool for some nil objects.
Behdad Esfahbod f673cfbd 2018-05-07T13:58:32 Support scripts that are written both LTR and RTL Right now only Old Italic is marked as such. Fixes https://github.com/harfbuzz/harfbuzz/issues/1000
Behdad Esfahbod cc1e0840 2018-02-06T10:20:48 [buffer] Tweak diff re glyph_flags again We expect the buffer to have no flags that the reference doesn't... Meh. Makes MORX tests pass now. Need to better define the behavior.
Ebrahim Byagowi d49ae515 2018-02-06T13:48:10 Fix hb-buffer logic error
Behdad Esfahbod 54e6efad 2018-02-04T14:58:02 [aat] Fix unsafe-to-break At any position, if state is not zero, mark unsafe-to-break before, unless we can reason it safe. At any position, if there's an action entry for end-of-text, mark unsafe to break. Also changes buffer diff impl to allow for flag differences as long as the buffer glyph flags are superset of reference glyph flags. With this, all MORX tests pass.
Behdad Esfahbod baf7779d 2017-11-14T21:53:48 Limit how much recursion GSUB/GPOS does This only counts recursions right now. Good start. Hopefully... Fixes https://github.com/behdad/harfbuzz/issues/429
ebraminio 102f5ead 2017-11-01T02:10:18 Enable PSVita (arm-none-eabi) compile again and add it to CI (#594)
Behdad Esfahbod dbdbfe3d 2017-10-15T12:11:08 Use nullptr instead of NULL
Behdad Esfahbod c3448e8d 2017-10-15T12:02:00 Use static_assert instead of custom ASSERT_STATIC
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 099472e0 2017-08-30T16:45:06 hb_buffer_diff() tweak I like to have a mode where CONTAINS_NOTDEF and CONTAINS_DOTTEDCIRCLE are not returned. Abused a value of -1 for that. hb-shape now uses it. Fixes two of the six tests failing with --verify in test/shaping/run-tests.sh.
Behdad Esfahbod 224d20e4 2017-08-23T14:41:48 [docs] Minor
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
Emil A Eklund (eae) 91770e1c 2017-08-15T16:25:18 Fix signed/unsigned warning (#522) Change hb_buffer_diff to explicitly cast result of abs to unsigned when comparing with position_fuzz to avoid unsafe signed/unsigned comparions warnings on windows.
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 05fabbd0 2017-08-11T19:51:06 [unsafe-to-break] Towards verifying unsafe-to-break in --verify We break and shape fragments and reconstruct shape result from them. Remains to compare to original buffer. Going to add some buffer comparison API and use here, instead of open-coding.
Behdad Esfahbod 6ce25f57 2017-08-11T19:31:05 Fix hb_buffer_append() Ouch!
Behdad Esfahbod 1c17c2bd 2017-08-11T19:06:07 [unsafe-to-break] Copy flag to all glyphs in a cluster Makes consumption easier.
Behdad Esfahbod ec104e59 2017-08-11T18:24:27 [unsafe-to-break] Mark unsafe is cluster merging is disabled We were relying on cluster merges not requiring unsafe flagging because they get merged. If cluster level requests no merging, then we flag unsafe when merge would have happened.
Behdad Esfahbod 39a97494 2017-08-11T15:52:06 New API: hb_buffer_append()
Behdad Esfahbod e2a2b5b2 2017-08-10T20:10:12 [unsafe-to-break] Be careful with flag propagation when merging clusters
Behdad Esfahbod f2868c20 2017-08-10T19:58:05 Set mask to 0, instead of 1, by default This shouldn't matter.
Behdad Esfahbod 91ce0c45 2016-05-05T16:13:03 [safe-to-break] Fix logic when there is no out-buffer
Behdad Esfahbod a043c99f 2016-05-04T19:51:22 [unsafe-to-break] Simplify logic Always use the algorithm for non-monotone case. It's more robust.
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
Ebrahim Byagowi 3b0e47ca 2017-06-19T14:47:09 Fix arm-none-eabi build (fixes #451) (#496)
Behdad Esfahbod 6363d7df 2016-07-20T01:43:56 Clean up buffer area when rewinding Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=614647 If allocation fails, we might be leaving junk behind. At least clear it up.
Behdad Esfahbod 70e72e5f 2016-06-28T21:00:37 [gobject] Fix a few warnings Part of https://github.com/behdad/harfbuzz/issues/277
Behdad Esfahbod 0c7fb741 2016-02-25T14:40:09 Speed up buffer variable allocation sanity check This makes defining HB_NDEBUG much less relevant, to the point of irrelevance. Sorry about all the fuss in previous release!
Behdad Esfahbod 91dd1156 2016-02-25T13:56:47 Add HB_NDEBUG API changes: - If NDEBUG is defined, define HB_NDEBUG - Disable costlier sanity checks if HB_NDEBUG is defined. In 1.2.3 introduced some code to disable costly sanity checks if NDEBUG is defined. NDEBUG, however, disables all assert()s as well. With HB_NDEBUG, one can disable costlier checks but keep assert()s. I'll probably add a way to define HB_NDEBUG automatically in release tarballs. But for now, production systems that do NOT define NDEBUG, are encouraged to define HB_NDEBUG for our build.
Behdad Esfahbod 98816502 2016-02-25T12:23:02 Disable internal buffer variable bookkeeping in NDEBUG builds Saves some sweet time and binary size!
Behdad Esfahbod b87e36f6 2016-02-19T14:52:31 Avoid buffer->move_to() in case of buffer error Fixes https://github.com/behdad/harfbuzz/issues/223 Right now we cannot test this because it has to be tested using hb-fuzzer. We should move all fuzzing tests from test/shaping/tests/fuzzed.tests to test/fuzzing/ and have its own test runner. At that point, should add test from this issue as well.
Khaled Hosny 9ab9f974 2016-01-01T20:38:21 [docs] More buffers documentation
Khaled Hosny 9cffe329 2015-12-30T22:50:08 [docs] Typo
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
Khaled Hosny f18d2226 2015-12-29T15:21:20 [docs] Some documentation on buffers Some of it (create, reference, destroy) are adapted from Cairo docs.
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.
Behdad Esfahbod 35d18585 2015-11-26T19:30:37 Fix a few docs blocks
Behdad Esfahbod 18e1c6b6 2015-11-19T11:50:58 Revert "Make sure we make progress in OOM situations" This reverts commit 68b507a3c3c62c28c38e13fee733702bb703b6ca. Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better fix for this.
Behdad Esfahbod 68b507a3 2015-11-06T00:09:26 Make sure we make progress in OOM situations
Behdad Esfahbod 4301703b 2015-11-05T23:44:59 Limit buffer max size growth https://github.com/behdad/harfbuzz/issues/161
Behdad Esfahbod 49ef6309 2015-11-04T17:27:07 Adjust the width of various spaces if font does not cover them See discussion here: https://github.com/behdad/harfbuzz/commit/81ef4f407d9c7bd98cf62cef951dc538b13442eb There's no way to disable this fallback, but I don't think it would be needed. Let's hope for the best! Fixes https://github.com/behdad/harfbuzz/issues/153
Behdad Esfahbod b8811429 2015-09-03T15:53:22 Fix Since tags Fixes https://github.com/behdad/harfbuzz/issues/103
Behdad Esfahbod e995d33c 2015-09-01T16:13:32 [OT] Merge clusters when reordering marks for normalization Fixes https://bugzilla.gnome.org/show_bug.cgi?id=541608 and cluster test.
Behdad Esfahbod 85846b3d 2015-09-01T15:07:52 Use insertion-sort instead of bubble-sort Needed for upcoming merge-clusters fix.
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 701112da 2015-07-22T15:42:20 [ot] Simplify form_clusters()
Behdad Esfahbod 5f13bbd9 2015-06-19T13:31:49 When removing default-ignorables, merge clusters Fixes test-shape, and: https://code.google.com/p/chromium/issues/detail?id=497578
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 81bedda5 2015-04-30T13:04:16 New API: hb_buffer_reverse_range()
Khaled Hosny 22524a51 2015-04-10T18:14:45 [bindings] Fix hb_buffer_get_segment_properties Annotate the output parameter.
Khaled Hosny 04f89e8f 2015-04-10T17:49:01 [bindings] Fix ownership of returned hb_language_t It should not be freed by the caller.
Behdad Esfahbod 9e401f68 2015-03-20T16:08:38 Fix reverse_range() for empty range Fixes coretext notdef loop consisting of all default_ignorable glyphs https://code.google.com/p/chromium/issues/detail?id=464755
Behdad Esfahbod 8ac345e5 2015-03-02T16:06:55 Fix reverse_range() to only reverse alt array if positions are used In hb-coretext, when we were using scratch buffer for book-keeping, a reverse_range() caused by the notdef-insertion loop could mess up our log_clusters. Ouch!
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 78c6e86c 2015-01-26T14:08:36 Fix hb_buffer_add_codepoints to actually NOT validate
Behdad Esfahbod b632e799 2015-01-06T14:05:26 Fix up gobject-introspection a bit Minimal shaping works now!
Behdad Esfahbod b5fbc3b8 2014-08-11T18:40:01 API: Do not clear buffer-flags in hb_buffer_clear_contents() After 763e5466c0a03a7c27020e1e2598e488612529a7, one doesn't need to set flags for different pieces of text. The flags now are something the client sets up once, depending on how it actually uses the buffer. As such, don't clear it in clear_contents(). Tests updated.
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 625dbf14 2014-07-16T14:49:55 [buffer] Templatize UTF-* functions
Behdad Esfahbod 66c6a48b 2014-04-14T15:55:42 Add HB_NO_MERGE_CLUSTERS Disables any cluster-merging. Added for testing purposes while we investigate what kind of API to add for this.
Behdad Esfahbod 02c6c8cd 2013-11-15T13:05:38 Set buffer content type to INVALID in hb_buffer_set_length(0) Previously we were only setting this in hb_buffer_clear_contents(), but set_length(0) is a valid way to reinitialize buffer to use with new text.
Behdad Esfahbod 061cb464 2013-11-13T14:50:25 Use long alignment for scratch buffer Fixes last of scratch alignment warnings in hb-coretext.
Behdad Esfahbod 68c372ed 2013-11-13T14:44:01 More scratch-buffer cleanup
Behdad Esfahbod 16f175cb 2013-11-12T17:22:49 Fix scratch-buffer alignment warnings
Behdad Esfahbod da72042c 2013-10-17T12:01:50 [otlayout] Fix up recent Context matching change Commit 6b65a76b40522a4f57a6fedcbdfc5a4d736f1d3c. "end" was becoming negative. Was trigerred by Lohit-Kannada 2.5.3 and the sequence: U+0CB0,U+200D,U+0CBE,U+0CB7,U+0CCD,U+0C9F,U+0CCD,U+0CB0,U+0C97,U+0CB3 Two glyphs were being duplicated.
Behdad Esfahbod 6b65a76b 2013-10-14T18:51:39 [otlayout] Fix (Chain)Context recursion! Previously we only supported recursive sublookups with ascending indices. We were also not correctly handling non-1-to-1 recursed lookups. Fix all that! Fixes the three tests in test/shaping/tests/context-matching.tests, which were derived from NotoSansBengali and NotoSansDevanagari among others.
Behdad Esfahbod 085d4291 2013-09-12T17:14:33 [introspection] Disable constructors for now Since our types are not associated with their methods, marking constructors makes them inaccessible from bindings. Undo for now.
Behdad Esfahbod 288f2899 2013-09-06T15:40:22 [docs/introspection] More annotations
Behdad Esfahbod c44b8183 2013-09-06T15:13:16 Whitespace
Behdad Esfahbod 5f512017 2013-09-04T18:28:39 [docs] Document a few symbols
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 6c15ddfe 2013-04-30T11:34:00 Renamed DEBUG to something else Some infrastructures use DEBUG as a generic symbol.
Behdad Esfahbod 847794e9 2013-02-27T17:59:28 [buffer] Implement buffer deserialization for format=text Using a ragel machine.
Behdad Esfahbod d3e14aaf 2013-02-27T11:06:36 [buffer] Move buffer serialization code to a new file
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 f4abcbfc 2012-12-21T16:48:51 Minor
Behdad Esfahbod 8465a05a 2012-11-30T08:46:43 Fix hb_buffer_guess_segment_properties() for empty buffer Was causing assertion failure in shape_plan().