|
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()
|
|
1c17c2bd
|
2017-08-11T19:06:07
|
|
[unsafe-to-break] Copy flag to all glyphs in a cluster
Makes consumption easier.
|
|
e2a2b5b2
|
2017-08-10T20:10:12
|
|
[unsafe-to-break] Be careful with flag propagation when merging clusters
|
|
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
|
|
33317310
|
2016-08-08T17:24:04
|
|
Fix sign of shift operators
This one:
map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit);
before the fix, the shift was done as an int, causing overflow
if it ever got to 1 << 31. Sprinkle 'u's around.
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=634805
|
|
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!
|
|
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.
|
|
98816502
|
2016-02-25T12:23:02
|
|
Disable internal buffer variable bookkeeping in NDEBUG builds
Saves some sweet time and binary size!
|
|
cbc3a76c
|
2016-02-11T16:48:13
|
|
[GPOS] Merge fixing of offsets for cursive and mark attachments
Part of fixing https://github.com/behdad/harfbuzz/issues/211
|
|
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.
|
|
13188cba
|
2015-11-19T11:59:03
|
|
Revert "Fix hang in OOM situations"
This reverts commit f0599db761d7fc2d585d86e757a797f75ebc7499.
Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better
fix for this.
|
|
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.
|
|
167c3271
|
2015-11-09T17:17:56
|
|
Fix build on MSVC >= 2012
Use the DEFINE_ENUM_FLAG_OPERATORS macro in winnt.h on Visual Studio,
which defines the bitwise operators for the enumerations that we want to
mark as hb_mark_as_flags_t, which will take care of the situation on newer
Visual Studio (>= 2012), where the build breaks with C2057 errors as the
underlying types of the enumerations is not clear to the compiler when we
do a bitwise op within the declaration of the enumerations themselves.
Also disable the C4200 (nonstandard extension used : zero-sized array in
struct/union) and C4800 ('type' : forcing value to bool 'true' or 'false'
(performance warning)) warnings as the C4200 is the intended scenario and
C4800 is harmless but is so far an unavoidable side effect of using
DEFINE_ENUM_FLAG_OPERATORS.
|
|
f1c4adbc
|
2015-11-06T09:46:05
|
|
Fix typo
|
|
68b507a3
|
2015-11-06T00:09:26
|
|
Make sure we make progress in OOM situations
|
|
f0599db7
|
2015-11-05T23:52:41
|
|
Fix hang in OOM situations
Fixes https://github.com/behdad/harfbuzz/issues/161
|
|
4301703b
|
2015-11-05T23:44:59
|
|
Limit buffer max size growth
https://github.com/behdad/harfbuzz/issues/161
|
|
73fec399
|
2015-11-05T15:22:18
|
|
Reserve a few scratch-flags bits for complex shapers
|
|
550bd14d
|
2015-11-04T22:58:58
|
|
Actually commit changes for previous commit
|
|
e3e4bb01
|
2015-11-04T18:58:02
|
|
Don't do fractions if buffer is ASCII-only
|
|
6986208b
|
2015-11-04T18:46:22
|
|
Optimize runs without Default_Ignorable's
Now that we have a buffer-wide scratch flags facility, use it to
optimize away a few passes.
|
|
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
|
|
aa7044de
|
2015-11-04T16:25:57
|
|
Generalize flags types
|
|
85658394
|
2015-11-04T14:46:52
|
|
Protect against possible invalid-memory access after OOM
|
|
4cc80bed
|
2015-11-04T14:46:10
|
|
Fix typo!
Ouch! Fortunately that function was unused.
|
|
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.
|
|
2dbd3d29
|
2015-07-22T18:28:39
|
|
Fix hide-ignorables if font doesn't have space glyph
Was broken by 82b521aeb7cc73879b44ca4278d6fa8b4347527f, as we have
positioning data by then and can't use the output buffer. Ouch!
|
|
376d587f
|
2015-07-22T16:51:12
|
|
Implement more granular cluster-merging
TODO: Documentation.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=71445
|
|
701112da
|
2015-07-22T15:42:20
|
|
[ot] Simplify form_clusters()
|
|
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
|
|
82b521ae
|
2015-06-19T11:57:57
|
|
Rewrite hide_default_ignorables
Separate the loops for the two cases of replacing with space
and deleting. For deleting, use the out-buffer machinery.
Needed for upcoming cluster merge fix.
|
|
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.
|
|
a6b8dc87
|
2014-08-11T15:08:19
|
|
[coretext] Fix buffer resize handling
We can't really resize buffer and continue in this shaper as we are
using the scratch buffer for string_ref and log_cluster. Restructure
shaper to retry from (almost) scratch.
|
|
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()
|
|
2a8c49ad
|
2013-12-11T20:22:28
|
|
Remove unnecessary includes
|
|
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.
|
|
061cb464
|
2013-11-13T14:50:25
|
|
Use long alignment for scratch buffer
Fixes last of scratch alignment warnings in hb-coretext.
|
|
68c372ed
|
2013-11-13T14:44:01
|
|
More scratch-buffer cleanup
|
|
16f175cb
|
2013-11-12T17:22:49
|
|
Fix scratch-buffer alignment warnings
|
|
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.
|
|
8b63efb6
|
2013-05-02T14:29:32
|
|
Minor
|
|
847794e9
|
2013-02-27T17:59:28
|
|
[buffer] Implement buffer deserialization for format=text
Using a ragel machine.
|
|
3f82f8ff
|
2012-11-15T18:45:31
|
|
Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties()
|
|
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.)
|
|
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.
|
|
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/...
|
|
82ecaff7
|
2012-11-13T13:57:52
|
|
Add hb_buffer_clear()
Which is like _reset(), but does NOT clear unicode-funcs.
|
|
0bc7a384
|
2012-10-29T22:02:45
|
|
[OT] Fix ReverseChainingSubst
We should make it clear that we don't want output buffer in this case,
otherwise buffer->backtrack_len() would be wrong.
|
|
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.
|
|
96fdc04e
|
2012-09-06T22:26:16
|
|
Add hb_buffer_[sg]et_content_type
And hb_buffer_content_type_t and enum values.
|
|
b85800f9
|
2012-08-31T18:12:01
|
|
[Indic] Implement dotted-circle insertion for broken clusters
No panic, we reeally insert dotted circle when it's absolutely broken.
Fixes most of the dotted-circle cases against Uniscribe. (for Devanagari
fixes 80% of them, for Khmer 70%; the rest look like Uniscribe being
really bogus...)
I had to make a decision. Apparently Uniscribe adds one dotted circle
to each broken character. I tried that, but that goes wrong easily with
split matras. So I made it add only one dotted circle to an entire
broken syllable tail. As in: "if there was a dotted circle here, this
would have formed a correct cluster." That works better for split
stuff, and I like it more.
|
|
1be368e9
|
2012-08-31T16:29:17
|
|
Minor
|
|
965c280d
|
2012-08-29T13:59:16
|
|
Add HB_BUFFER_ASSERT_VAR
To be used in places we access buffer vars...
|
|
801298b5
|
2012-08-08T14:26:36
|
|
Fix cast
https://bugs.freedesktop.org/show_bug.cgi?id=53233
|
|
69cc492d
|
2012-07-31T14:51:36
|
|
[buffer] Minor
|
|
2f87cebe
|
2012-07-27T04:02:38
|
|
Implement shape_plan caching
Should give us some performance boost.
|
|
ea278d38
|
2012-07-27T02:12:28
|
|
Partially switch ot shaper to shape_plan
|
|
d16ccc4a
|
2012-07-18T15:43:55
|
|
Leave one extra item at the end of buffer allocation
Just in case, for the times we do out-of-bounds access.
jk
|
|
1bc1cb36
|
2012-06-16T15:21:55
|
|
Make source more digestable for gobject-introspection
|
|
e085fcf7
|
2012-06-08T21:45:00
|
|
Remove unused buffer->replace_glyphs_be16
|
|
2a3d911f
|
2012-06-07T17:31:46
|
|
Fix alignment-requirement missmatch
Detected by clang and lots of cmdline options.
|
|
6220e5fc
|
2012-06-06T03:30:09
|
|
Add ASSERT_POD for most objects
|
|
0594a244
|
2012-06-05T20:35:40
|
|
Cleanup TRUE/FALSE vs true/false
|
|
99c26957
|
2012-05-13T15:45:18
|
|
Add accessort to buffer for current info, current pos, and prev info
|
|
8e3715f8
|
2012-04-23T22:18:54
|
|
Minor
|
|
d4cc4471
|
2012-04-07T21:52:28
|
|
Move code around, in prep for Thai/Lao shaper
|
|
9ebe8c02
|
2011-08-26T09:29:42
|
|
Add buffer->replace_glyphs()
|
|
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.
|
|
c605bbbb
|
2011-08-04T20:00:53
|
|
Remove C++ guards from source files
Where causing issues for people with MSVC.
|
|
e62df436
|
2011-08-03T17:38:54
|
|
Add internal hb_buffer_t::get_scratch_buffer()
|
|
b65c0602
|
2011-07-28T16:48:43
|
|
Formalize buffer var allocations
|
|
a9ad3d34
|
2011-07-28T15:42:18
|
|
Move more code around
Buffer var allocation coming into shape
|
|
f4a579bc
|
2011-07-25T16:20:16
|
|
Add internal API for buffer var allocation
|
|
468e9cb2
|
2011-07-22T11:28:07
|
|
Move buffer methods into the object
|
|
9111b21e
|
2011-07-21T00:58:29
|
|
Add _hb_buffer_output_glyph() and _hb_buffer_skip_glyph()
|
|
31f18abe
|
2011-06-15T09:49:58
|
|
Minor compiler warning fixes
|
|
e0db4b86
|
2011-04-28T12:56:49
|
|
[buffer] More error handling
Should be all set now.
|
|
fca368c4
|
2011-04-21T18:24:02
|
|
Add hb_object_header_t which is the common part of all objects
Makes way for adding arbitrary user_data support.
|
|
2409d5f8
|
2011-04-21T17:14:28
|
|
Update Copyright headers
|
|
c57d454a
|
2011-04-20T18:50:27
|
|
Rename all private sources and headers to C++ files
So we can liberally use the simple features of C++ that parts of the
codebase is already using.
|
|
fb194b87
|
2011-04-20T02:00:47
|
|
unicode: Cleanup implementation
|
|
c0af193c
|
2011-04-15T19:26:24
|
|
Change buffer default properties to invalid
This includes HB_DIRECTION_INVALID and HB_SCRIPT_INVALID.
The INVALID will cause a "guess whatever from the text" in hb_shape().
While it's not ideal, it works better than the previous defaults at
least (HB_DIRECTION_LTR and HB_SCRIPT_COMMON).
|
|
8f0d7e0c
|
2011-04-15T18:59:56
|
|
Remove hb_buffer_clear_positions(), add hb_ot_layout_position_start()
|
|
cc1a8a93
|
2011-01-06T14:58:52
|
|
Fix ChanContext backtrack matching with GPOS
Reported on mailing list by Keith Stribley and Khaled Hosny.
|
|
dd2ffd28
|
2010-10-27T16:57:01
|
|
Minor renaming
|
|
98370e89
|
2010-10-27T17:39:01
|
|
WIP removing external synthesized GDEF support and implementing it internally
|
|
870e2d6e
|
2010-10-27T17:37:20
|
|
Remove unused function
|
|
1115890b
|
2010-10-27T17:07:04
|
|
More cleanup
|
|
dbf56b1d
|
2010-10-27T17:06:12
|
|
More lig-id cleanup
|
|
fe263272
|
2010-10-27T16:51:02
|
|
Move setting lig_id/component out of buffer and to the gsub code
|
|
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.
|
|
bd7378b2
|
2010-10-13T18:33:16
|
|
Massage mask setting a bit more
Still finding the exact correct way the masks should be set.
|
|
57ac0ecb
|
2010-10-12T17:07:02
|
|
Merge clearing masks and setting global masks
|
|
a7c5046d
|
2010-10-08T18:47:47
|
|
Add private hb_segment_properties_t
|
|
4e4ef24e
|
2010-07-23T17:22:11
|
|
Towards separating bit allocation from shaping
|
|
acdba3f9
|
2010-07-23T15:11:18
|
|
Prefer C linkage
|
|
da8edbb6
|
2010-06-09T07:15:39
|
|
Fix header
|
|
81c5e872
|
2010-05-28T18:31:16
|
|
Allow disabling default features
Patch from Jonathan Kew
|
|
1ce7b87c
|
2010-05-21T17:31:45
|
|
Cleanup bitmask allocation
|
|
a6a79df5
|
2010-05-14T23:20:16
|
|
Handle malloc failture in the buffer
|