Behdad Esfahbod [Mon, 25 Feb 2013 22:54:10 +0000 (17:54 -0500)]
Behdad Esfahbod [Mon, 25 Feb 2013 22:06:35 +0000 (17:06 -0500)]
Always create sub-blobs in MEMORY_MODE_READONLY
This fixes a design bug with sanitize and sub-blobs that can
cause crashes. Jonathan and I found and debugged this issue
when we tested a corrupt font with the md5sum / filename:
ea395483d37af0cb933f40689ff7b60a. Two hours of intense
debugging we found out that the font has overlapping GSUB/GPOS
tables, and as such, sanitizing the second table can modify
the first one, which can cause all kinds of undefined behavior.
The correct way to fix this is to make sure sub-blobs are
always created readonly, since we consider the parent blob
to be a shared resource and can't modify it, even if it *is*
writable.
This essentially makes the READONLY_MAY_MAKE_WRITABLE mode
unused... Maybe we should simply remove / deprecate it.
Behdad Esfahbod [Thu, 21 Feb 2013 20:54:05 +0000 (15:54 -0500)]
Minor
Behdad Esfahbod [Thu, 21 Feb 2013 20:39:57 +0000 (15:39 -0500)]
Port TrueType-kerning to use skippy iterator
It skips joiners and default ignorables now. Skips marks too, but only
if there is proper GDEF classes for marks.
Behdad Esfahbod [Thu, 21 Feb 2013 20:37:51 +0000 (15:37 -0500)]
Fixup previous commit
Was not decreasing num_items. Ouch!
Behdad Esfahbod [Thu, 21 Feb 2013 20:23:39 +0000 (15:23 -0500)]
Move code around
Behdad Esfahbod [Thu, 21 Feb 2013 20:07:03 +0000 (15:07 -0500)]
[OTLayout] Correctly skip Default_Ignorable when match_func not set
When a match_func was not set on the matcher_t object (ie. from GPOS),
then the Default_Ignorables (including joiners) were never skipped.
This meant that they were not skipped as they should during GPOS
matching. Fix that.
A few Indic numbers have "regressed": BENGALI and DEVANAGARI went
up from 290 and 58 respectively, but in both cases new results are
superior to Uniscribe, as they apply GPOS when we weren't (and
Uniscribe isn't) before.
BENGALI: 353686 out of 354188 tests passed. 502 failed (0.141733%)
DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%)
GUJARATI: 366262 out of 366457 tests passed. 195 failed (0.0532122%)
GURMUKHI: 60706 out of 60747 tests passed. 41 failed (0.067493%)
KANNADA: 950680 out of 951913 tests passed. 1233 failed (0.129529%)
KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed (0.0334817%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271539 out of 271847 tests passed. 308 failed (0.113299%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.
00185457%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
Behdad Esfahbod [Thu, 21 Feb 2013 19:51:40 +0000 (14:51 -0500)]
Minor
Behdad Esfahbod [Tue, 19 Feb 2013 05:58:10 +0000 (00:58 -0500)]
[tests] Add Myanmar torture tests from Martin Hosken
Behdad Esfahbod [Tue, 19 Feb 2013 05:50:46 +0000 (00:50 -0500)]
Minor
Moving files around
Behdad Esfahbod [Sun, 17 Feb 2013 17:12:37 +0000 (12:12 -0500)]
[SEA] Fix order of pre-base reordering Ra and left matras
The code was confused because it was expecting left matra to have
POS_PRE_M, like we do in the Myanmar shaper, but that is not what
we were doing in this shaper. Rewrite to rely on category only.
Test case: U+AA06,U+AA34,U+AA2F
Behdad Esfahbod [Fri, 15 Feb 2013 16:47:24 +0000 (11:47 -0500)]
Minor
Behdad Esfahbod [Fri, 15 Feb 2013 16:47:09 +0000 (11:47 -0500)]
[OTLayout] Remove unused code
Behdad Esfahbod [Fri, 15 Feb 2013 14:33:10 +0000 (09:33 -0500)]
Remove TODO items that don't make sense
The spec says those features need to be disabled by default.
Behdad Esfahbod [Fri, 15 Feb 2013 14:27:02 +0000 (09:27 -0500)]
[Arabic] Fix shaping of left-joining 'Phags-Pa U+A872
This is the first character in Unicode to have Arabic left-joining
behavior. Update the machine to recognize that.
Test case: U+A840,U+A872,U+A840.
Behdad Esfahbod [Fri, 15 Feb 2013 14:26:41 +0000 (09:26 -0500)]
[tests] Add Syriac Alaph shaping test cases
Behdad Esfahbod [Fri, 15 Feb 2013 12:51:47 +0000 (07:51 -0500)]
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 [Fri, 15 Feb 2013 12:46:57 +0000 (07:46 -0500)]
Add assertions for a couple programmer errors
Behdad Esfahbod [Fri, 15 Feb 2013 12:41:07 +0000 (07:41 -0500)]
Allow disabling of TrueType kerning
Responds to the same feature tag that GPOS kerning does:
'kern' for horizontal and 'vkrn' for vertical.
Behdad Esfahbod [Fri, 15 Feb 2013 12:40:10 +0000 (07:40 -0500)]
Fix partial disabling of default-on features
Surprisingly, if user ever tried to turn a default feature off partially
(say, disable liga for a range), the feature was being turned off
globally! Fixed now.
Behdad Esfahbod [Fri, 15 Feb 2013 12:02:08 +0000 (07:02 -0500)]
[OTLayout] Respect syllable boundaries for backtrack/lookahead matching
Originally we meant to match backtrack/lookahead across syllable
boundaries. But a bug in the code meant that this was NOT done for
backtrack. We "fixed" that in
2c7d0b6b80d412de3fddd443ed1a485ea1cbb03c,
but that broke Myanmar shaping.
We now believe that for Indic-like shapers (which is where syllables are
used), all basic shaping forms should be fully contained within their
syllables, so now we limit backtrack/lookahead matching to the syllable
too. Unbreaks Myanmar.
Behdad Esfahbod [Fri, 15 Feb 2013 11:22:26 +0000 (06:22 -0500)]
Minor refactoring
Behdad Esfahbod [Thu, 14 Feb 2013 15:40:12 +0000 (10:40 -0500)]
[Indic-like] Disable automatic joiner handling for basic shaping features
Not for Arabic, but for Indic-like scripts. ZWJ/ZWNJ have special
meanings in those scripts, so let font lookups take full control.
This undoes the regression caused by automatic-joiners handling
introduced two commits ago.
We only disable automatic joiner handling for the "basic shaping
features" of Indic, Myanmar, and SEAsian shapers. The "presentation
forms" and other features are still applied with automatic-joiner
handling.
This change also changes the test suite failure statistics, such that
a few scripts show more "failures". The most affected is Kannada.
However, upon inspection, we believe that in most, if not all, of the
new failures, we are producing results superior to Uniscribe. Hard to
count those!
Here's an example of what is fixed by the recent joiner-handling
changes:
https://bugs.freedesktop.org/show_bug.cgi?id=58714
New numbers, for future reference:
BENGALI: 353892 out of 354188 tests passed. 296 failed (0.0835714%)
DEVANAGARI: 707336 out of 707394 tests passed. 58 failed (0.
00819911%)
GUJARATI: 366262 out of 366457 tests passed. 195 failed (0.0532122%)
GURMUKHI: 60706 out of 60747 tests passed. 41 failed (0.067493%)
KANNADA: 950680 out of 951913 tests passed. 1233 failed (0.129529%)
KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed (0.0334817%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271539 out of 271847 tests passed. 308 failed (0.113299%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.
00185457%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
Behdad Esfahbod [Thu, 14 Feb 2013 15:46:52 +0000 (10:46 -0500)]
[OTLayout] Add fine-grained control over ZWJ matching
Not used yet. Next commit...
Behdad Esfahbod [Thu, 14 Feb 2013 12:43:13 +0000 (07:43 -0500)]
[OTLayout] Ignore default-ignorables when matching GSUB/GPOS
When matching lookups, be smart about default-ignorable characters.
In particular:
Do nothing specific about ZWNJ, but for the other default-ignorables:
If the lookup in question uses the ignorable character in a sequence,
then match it as we used to do. However, if the sequence match will
fail because the default-ignorable blocked it, try skipping the
ignorable character and continue.
The most immediate thing it means is that if Lam-Alef forms a ligature,
then Lam-ZWJ-Alef will do to. Finally!
One exception: when matching for GPOS, or for backtrack/lookahead of
GSUB, we ignore ZWNJ too. That's the right thing to do.
It certainly is possible to build fonts that this feature will result
in undesirable glyphs, but it's hard to think of a real-world case
that that would happen.
This *does* break Indic shaping right now, since Indic Unicode has
specific rules for what ZWJ/ZWNJ mean, and skipping ZWJ is breaking
those rules. That will be fixed in upcoming commits.
Behdad Esfahbod [Thu, 14 Feb 2013 16:25:10 +0000 (11:25 -0500)]
Add hb_ot_map_feature_flags_t
Code cleanup. No (intended) functional change.
Behdad Esfahbod [Thu, 14 Feb 2013 16:05:56 +0000 (11:05 -0500)]
Clean-up add_bool_feature
Behdad Esfahbod [Thu, 14 Feb 2013 16:05:36 +0000 (11:05 -0500)]
Fix compile warnings for ragel-generated machines
Behdad Esfahbod [Thu, 14 Feb 2013 12:42:42 +0000 (07:42 -0500)]
[OTLayout] Remove unused function
Behdad Esfahbod [Thu, 14 Feb 2013 12:41:03 +0000 (07:41 -0500)]
[OTLayout] Port apply_lookup to skippy_iter
Behdad Esfahbod [Thu, 14 Feb 2013 12:20:52 +0000 (07:20 -0500)]
[OTLayout] Port ligate_input to skippy_iter
Behdad Esfahbod [Thu, 14 Feb 2013 11:24:30 +0000 (06:24 -0500)]
[OTLayout] Minor fix for apply_lookup()
Should NOT change behavior, since first glyph is a match.
Behdad Esfahbod [Wed, 13 Feb 2013 17:17:25 +0000 (12:17 -0500)]
[OTLayout] Make table type known to apply context
Behdad Esfahbod [Wed, 13 Feb 2013 17:10:08 +0000 (12:10 -0500)]
[OTLayou] Unbreak backtrack matching
Was introduced by
28b9d502bb69a8045818d5f6113ded9c59a56bd7.
Behdad Esfahbod [Wed, 13 Feb 2013 16:22:42 +0000 (11:22 -0500)]
[OTLayout] Minor refactoring
Behdad Esfahbod [Wed, 13 Feb 2013 16:13:06 +0000 (11:13 -0500)]
[OTLayout] Remove bogus caching of glyph property
Behdad Esfahbod [Wed, 13 Feb 2013 16:02:54 +0000 (11:02 -0500)]
Remember ZWNJ
To be used in upcoming changes.
Behdad Esfahbod [Wed, 13 Feb 2013 14:38:40 +0000 (09:38 -0500)]
Indent
Behdad Esfahbod [Wed, 13 Feb 2013 14:26:55 +0000 (09:26 -0500)]
[Indic] Improve base finding in final_reordering
Fixes 5 Malayalam failures!
MALAYALAM: 1048016 out of 1048334 tests passed. 318 failed (0.0303338%)
Behdad Esfahbod [Wed, 13 Feb 2013 13:29:21 +0000 (08:29 -0500)]
Add more dot-reph tests
Behdad Esfahbod [Wed, 13 Feb 2013 12:32:46 +0000 (07:32 -0500)]
[Indic] Track base position when reordering things
Ouch, how did things ever work without this?! The added test that has a
dot-reph as well as a pre-base reordering Ra perfectly demonstrates the
bug (tested with Nirmala font from Win8 for example). Testing suggests
that Win8 shaper has the *exact* same bug / behavior that we used to
have. Odd.
Behdad Esfahbod [Wed, 13 Feb 2013 10:59:06 +0000 (05:59 -0500)]
[SEA] Don't zero any mark advances
Keep the logic simple, easier to explain to font developers.
Behdad Esfahbod [Wed, 13 Feb 2013 10:57:24 +0000 (05:57 -0500)]
Further adjust mark advance zeroing
This is a followup to
568000274c8edb5f41bc4f876ce21fcc8bdaeed8.
Looks like in the Latin shaper, Uniscribe zeroes all Unicode NSM
advances *after* GPOS, not before. Match that.
Can be tested using DejaVu Sans Mono, since that font has GPOS
rules to zero the mark advances on its own.
Behdad Esfahbod [Tue, 12 Feb 2013 23:17:39 +0000 (18:17 -0500)]
[Indic] Fix Eyelash Ra with old Devanagari spec
Behdad Esfahbod [Tue, 12 Feb 2013 23:17:12 +0000 (18:17 -0500)]
[tests] Add tests for Devanagary Eyelash Ra
Currently broken with Sanskrit 2003 font.
Behdad Esfahbod [Tue, 12 Feb 2013 22:57:49 +0000 (17:57 -0500)]
[Indic] Apply 'blwf' before 'half'
This reverts
167b625d988b74572d6b2f646c285b666b650d49. It didn't
matter before, but that's going to change with next commit.
Behdad Esfahbod [Tue, 12 Feb 2013 23:01:21 +0000 (18:01 -0500)]
[Indic] Apply 'vatu' before 'cjct'
This essentially reverts
1d6846db9ebf84561bb30a4e48c6c43184914099,
but that commit is from way back when. We should be better
following the spec order now again.
Behdad Esfahbod [Tue, 12 Feb 2013 21:29:25 +0000 (16:29 -0500)]
Didn't mean to push this out
Ouch!
Behdad Esfahbod [Tue, 12 Feb 2013 21:13:56 +0000 (16:13 -0500)]
[Myanmar] Use master Indic table for syllable data
Behdad Esfahbod [Tue, 12 Feb 2013 20:45:59 +0000 (15:45 -0500)]
[tests] Add Cham sample
Behdad Esfahbod [Tue, 12 Feb 2013 20:35:32 +0000 (15:35 -0500)]
Improve checks for setmode()
As reported by Jonathan, OS X has setmode() that is something other
than what setmode() is on Win32. So, limit invocation to Windows
platforms only.
Behdad Esfahbod [Tue, 12 Feb 2013 20:31:58 +0000 (15:31 -0500)]
Improve check for Windows platforms
Instead of checking for compiler, check for platform.
Behdad Esfahbod [Tue, 12 Feb 2013 20:28:21 +0000 (15:28 -0500)]
[SEA] Treat Consonant_Final like Consonant_Medial
Behdad Esfahbod [Tue, 12 Feb 2013 20:26:45 +0000 (15:26 -0500)]
Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS
The Myanmar shaper now respects the uniscribe-bug-compatibility
option too.
Behdad Esfahbod [Tue, 12 Feb 2013 17:14:10 +0000 (12:14 -0500)]
Add South-East Asian shaper
Handles Tai Tham, Cham, and New Tai Lue for now.
Behdad Esfahbod [Tue, 12 Feb 2013 15:33:58 +0000 (10:33 -0500)]
Minor test reshufflings
Behdad Esfahbod [Tue, 12 Feb 2013 15:31:14 +0000 (10:31 -0500)]
[Indic] Make sure New Tai Lue works!
Behdad Esfahbod [Tue, 12 Feb 2013 14:44:57 +0000 (09:44 -0500)]
Adjust mark advance-width zeroing logic for Myanmar
Before, we were zeroing advance width of attached marks for
non-Indic scripts, and not doing it for Indic.
We have now three different behaviors, which seem to better
reflect what Uniscribe is doing:
- For Indic, no explicit zeroing happens whatsoever, which
is the same as before,
- For Myanmar, zero advance width of glyphs marked as marks
*in GDEF*, and do that *before* applying GPOS. This seems
to be what the new Win8 Myanmar shaper does,
- For everything else, zero advance width of glyphs that are
from General_Category=Mn Unicode characters, and do so
before applying GPOS. This seems to be what Uniscribe does
for Latin at least.
With these changes, positioning of all tests matches for Myanmar,
except for the glitch in Uniscribe not applying 'mark'. See preivous
commit.
Behdad Esfahbod [Tue, 12 Feb 2013 14:44:35 +0000 (09:44 -0500)]
[Myanmar] Add note re Uniscribe NOT applying 'mark'
Behdad Esfahbod [Mon, 11 Feb 2013 22:02:17 +0000 (17:02 -0500)]
Minor
Behdad Esfahbod [Mon, 11 Feb 2013 21:16:16 +0000 (16:16 -0500)]
[Myanmar] Fix handling of Punctuation and Symbol types
Testing with "clusters" now on par with testing without them. 15
failures both.
Behdad Esfahbod [Mon, 11 Feb 2013 21:06:02 +0000 (16:06 -0500)]
[Myanmar] Fixup handling of joiners and GB characters
Behdad Esfahbod [Mon, 11 Feb 2013 19:27:02 +0000 (14:27 -0500)]
[Myanmar] Prevent reordering between Asat and Dot below
Implemented as a hack for now. Myanmar failures down from 23 to 15.
MYANMAR: 1123868 out of 1123883 tests passed. 15 failed (0.
00133466%)
The remaining 15 cases are all where the syllable is wrong according to
the OpenType spec. We insert dottedcircle. Uniscribe fails to do that,
but it also fails to reorder the prebase-reordering medial-Ra. So it
gets it wrong.
Behdad Esfahbod [Mon, 11 Feb 2013 19:24:03 +0000 (14:24 -0500)]
Shuffle test data around
Behdad Esfahbod [Mon, 11 Feb 2013 18:36:23 +0000 (13:36 -0500)]
Add Win8-style Myanmar shaper
Myanmar failures down from 51% to 0.
00204648%!
MYANMAR: 1123860 out of 1123883 tests passed. 23 failed (0.
00204648%)
Behdad Esfahbod [Mon, 11 Feb 2013 19:17:54 +0000 (14:17 -0500)]
Minor
Behdad Esfahbod [Mon, 11 Feb 2013 18:27:17 +0000 (13:27 -0500)]
[OTLayout] Respect lookup-flags skipping over non-mark glyphs
Before, when matching ligatures, we never skipping over base / liga
glyphs even if that was what the LookupFlags asked for.
Fixed now. We carefully reviewed all instances of this, and tested with
Amiri as well as some Indic scripts, and are confident that this should
NOT break anyone's fonts. It's also how Uniscribe does it, from what
we can tell.
Behdad Esfahbod [Mon, 11 Feb 2013 18:14:15 +0000 (13:14 -0500)]
[OTLayout] s/mark_skipping/skipping/
In aticipation of upcoming changes.
Behdad Esfahbod [Mon, 11 Feb 2013 11:58:27 +0000 (06:58 -0500)]
[Indic] Fix bug introduced in
8b217f5ac54aa0dcbba2dd6d59aa89dde33e56c2
Was breaking reph formation logic when the Ra is the only consonant.
Devanagari regression fixed. Down to 57 failures again. Ouch.
Behdad Esfahbod [Mon, 11 Feb 2013 11:50:17 +0000 (06:50 -0500)]
Improve normalization heuristic
Before, for most scripts, we were not trying to recompose two characters
if the second one had ccc=0. That fails for Myanmar where U+1026
decomposes to U+1025,U+102E, both of which have ccc=0. However, we do
want to try to recompose those. We now check whether the second is a
mark, using general category instead.
At the same time, remove optimization that was conflicting with this.
[Let the Ngapi hackfest begin!]
Behdad Esfahbod [Thu, 7 Feb 2013 04:45:27 +0000 (23:45 -0500)]
Revert "Include config.h.in in tree"
This reverts commit
01013a0f5c58d5d54a37e5b4d6692e0bbd4baf80.
Conflicts:
config.h.in
Same argument as previous commit.
Behdad Esfahbod [Thu, 7 Feb 2013 04:43:27 +0000 (23:43 -0500)]
Revert "[Indic] Import ragel-generated Indic machine in git"
This reverts commit
fab7a71f110ed646745d54b23284537c50058c21.
Conflicts:
src/hb-ot-shape-complex-indic-machine.hh
Keeping that generated file in-tree causes problems with processes like
tinderbox that automatically fetch and build harfbuzz. It's harder to
bootstrap harfbuzz now (as was previously), but I'm willing to give this
another chance and see how it goes.
Behdad Esfahbod [Wed, 6 Feb 2013 20:29:07 +0000 (15:29 -0500)]
Don't use $(ENV)
As reported by Peter Breitenlohner:
I think this is a very bad idea because ENV is used to specify a startup
file to be read by some/all shells.
Behdad Esfahbod [Tue, 5 Feb 2013 04:31:24 +0000 (23:31 -0500)]
Add color-tests automake option
Behdad Esfahbod [Tue, 5 Feb 2013 04:28:22 +0000 (23:28 -0500)]
Bug 60035 - intermittent make install failure on hb-version.h
Behdad Esfahbod [Tue, 5 Feb 2013 04:24:16 +0000 (23:24 -0500)]
Bug 59637 - check-exported-symbols.sh & check-internal-symbols.sh fail on mips/mipsel
Behdad Esfahbod [Tue, 5 Feb 2013 04:06:50 +0000 (23:06 -0500)]
Merge check-internal-symbols.sh and check-exported-symbols.sh
Behdad Esfahbod [Fri, 1 Feb 2013 00:27:36 +0000 (19:27 -0500)]
Really fix setmode this time
Thanks to Khaled for spotting it.
Behdad Esfahbod [Thu, 31 Jan 2013 23:37:10 +0000 (18:37 -0500)]
Fixup previous commit
Now, it looks like this breaks Cygwin again. Have to figure out what's
going on.
Behdad Esfahbod [Thu, 31 Jan 2013 23:18:05 +0000 (18:18 -0500)]
Use setmode() instead of _setmode()
Looks like Cygwin / MSVC declare it that way, and it still works on
MinGW32 cross.
Behdad Esfahbod [Wed, 30 Jan 2013 03:45:00 +0000 (22:45 -0500)]
Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used
Behdad Esfahbod [Fri, 18 Jan 2013 23:10:47 +0000 (17:10 -0600)]
0.9.12
Behdad Esfahbod [Thu, 17 Jan 2013 04:07:50 +0000 (22:07 -0600)]
Minor
Behdad Esfahbod [Mon, 14 Jan 2013 19:51:46 +0000 (13:51 -0600)]
Minor
Behdad Esfahbod [Mon, 14 Jan 2013 06:33:58 +0000 (00:33 -0600)]
Fix build with Sun compiler
Behdad Esfahbod [Mon, 14 Jan 2013 06:32:12 +0000 (00:32 -0600)]
Revert "Minor"
This reverts commit
0a492357016bc9a614d2a726f2006c10af68ca58.
Enables code on more compilers.
Behdad Esfahbod [Mon, 14 Jan 2013 06:27:21 +0000 (00:27 -0600)]
Fix linking with non-gcc compilers
Behdad Esfahbod [Mon, 14 Jan 2013 06:26:43 +0000 (00:26 -0600)]
Fix residuals from fontconfig changes
Behdad Esfahbod [Thu, 10 Jan 2013 15:06:34 +0000 (09:06 -0600)]
0.9.11
Behdad Esfahbod [Thu, 10 Jan 2013 07:17:59 +0000 (01:17 -0600)]
Add atomic ops for Solaris
Based on fontconfig patch from Raimund Steger.
Behdad Esfahbod [Thu, 10 Jan 2013 06:03:36 +0000 (00:03 -0600)]
Fix crasher during multi-thread shaper data creation
Sample crash:
0 _hb_graphite2_shaper_face_data_destroy (data=0xffffffffffffffff)
at ../../src/hb-graphite2.cc:129
1 0x00007ffff4271d7d in hb_graphite2_shaper_face_data_ensure (
face=<optimized out>) at ../../src/hb-shaper-list.hh:35
2 hb_shape_plan_plan (shaper_list=<optimized out>, num_user_features=0,
user_features=0x0, shape_plan=0xf7b490) at ../../src/hb-shaper-list.hh:35
3 hb_shape_plan_create (face=<optimized out>, props=<optimized out>,
user_features=0x0, num_user_features=0, shaper_list=<optimized out>)
at ../../src/hb-shape-plan.cc:108
4 0x00007ffff4272c93 in hb_shape_plan_create_cached (face=0x10cf2b0,
props=0x11980d8, user_features=0x0, num_user_features=<optimized out>,
shaper_list=0x0) at ../../src/hb-shape-plan.cc:283
Behdad Esfahbod [Wed, 9 Jan 2013 00:09:46 +0000 (18:09 -0600)]
[Indic] In old-spec shaping, don't move viramas around if seq ends with one
For example: u0c9a u0ccd u0c9a u0ccd with Lohit. See:
https://bugs.freedesktop.org/show_bug.cgi?id=59118
Behdad Esfahbod [Tue, 8 Jan 2013 22:15:46 +0000 (16:15 -0600)]
[GPOS] If an Anchor offset is NULL, return false
If in a MarkPos table, a base has no anchor for a particular mark class,
return NULL such that the subsequent subtables get a chance at it.
Test case:
hb-shape ./EBGaramond12-Regular.otf ἂ --features="ss20","smcp"
Behdad Esfahbod [Mon, 7 Jan 2013 23:34:24 +0000 (17:34 -0600)]
Bug 58638 - Building fails with ICU due to not passing required flags
Behdad Esfahbod [Mon, 7 Jan 2013 22:46:37 +0000 (16:46 -0600)]
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 [Fri, 4 Jan 2013 07:25:27 +0000 (01:25 -0600)]
Remove a few unnecessary const's
Apparently helps with MSVC compilation.
Behdad Esfahbod [Thu, 3 Jan 2013 06:14:24 +0000 (00:14 -0600)]
0.9.10
Behdad Esfahbod [Thu, 3 Jan 2013 06:07:16 +0000 (00:07 -0600)]
[OTLayout] Always collect default language system in collect_lookups
Not sure if this is the most desired behavior. It's the most easily
defined though.
Behdad Esfahbod [Thu, 3 Jan 2013 06:04:40 +0000 (00:04 -0600)]
[OTLayout] Fix feature iteration in collect_lookups
Previous logic was just wrong.
Behdad Esfahbod [Thu, 3 Jan 2013 06:00:23 +0000 (00:00 -0600)]
[OTLayout] Whitespace