Behdad Esfahbod [Mon, 8 Jul 2013 14:37:15 +0000 (08:37 -0600)]
[uniscribe] Fix buffer allocation
Email from Jonathan Kew:
My cygwin build kept aborting on certain test words when run with the
uniscribe backend. Turned out this was caused by a bug in the allocation
of scratch buffers in hb-uniscribe.cc.
Commit
2a17f9568d9724e045d2c1d660e007f3acd747d9 introduced a new line
ALLOCATE_ARRAY (SCRIPT_VISATTR, vis_attr, glyphs_size);
but it failed to account for this in the computation of glyphs_size
(the number of glyphs for which scratch buffer space is available),
with the result that the vis_clusters array ends up overrunning the
end of the scratch buffer and clobbering the beginning of the buffer's
info[].
AFAICS, the vis_attr array is not actually used, so the simple fix is
to remove the line that allocates it. (If/when we -do- need to use
vis_attr for something, we'll need to add another term to the earlier
calculation of glyphs_size.)
With this patch, the uniscribe backend runs reliably again.
JK
Behdad Esfahbod [Thu, 27 Jun 2013 00:57:58 +0000 (20:57 -0400)]
[Indic] Add Javanese config
We should add for other scripts too, send me the virama codepoint
and script name...
Behdad Esfahbod [Thu, 27 Jun 2013 00:14:18 +0000 (20:14 -0400)]
[OT] Collect requiredFeature only if features are not provided
As per Werner's report on the list.
Behdad Esfahbod [Wed, 26 Jun 2013 23:46:55 +0000 (19:46 -0400)]
Fix contextual lookup recursion indexing
See email thread "Skipping Control for Attaching Marks using OpenType"
from earlier this month.
Behdad Esfahbod [Sat, 22 Jun 2013 15:04:05 +0000 (08:04 -0700)]
Merge pull request #3 from LogosBible/master
Destroy lookups before blobs.
Bradley Grainger [Fri, 21 Jun 2013 22:02:18 +0000 (15:02 -0700)]
Destroy lookups before blobs.
'layout->gsub' may depend on data owned by 'layout->gsub_blob', so it must
be deinitialized before the blob is destroyed.
Behdad Esfahbod [Thu, 13 Jun 2013 23:01:07 +0000 (19:01 -0400)]
If variation selector is not consumed by cmap, pass it on to GSUB
This changes the semantics of get_glyph() callback and expect that
callbacks return false if the requested variant is not available, and
then we will call them back with variation_selector=0 and will retain
the glyph for the selector in the glyph stream.
Apparently most Mongolian fonts implement the Mongolian Variation
Selectors using GSUB, not cmap.
https://bugs.freedesktop.org/show_bug.cgi?id=65258
Note that this doesn't fix the Mongolian shaping yet, because the way
that's implemented is that the, say, 'init' feature ligates the letter
and the variation-selector. However, since currently the variation
selector doesn't have the 'init' mask on, it will not be matched...
Behdad Esfahbod [Fri, 7 Jun 2013 00:17:32 +0000 (20:17 -0400)]
Skip over multiple variation selectors in a row
Behdad Esfahbod [Mon, 10 Jun 2013 18:39:51 +0000 (14:39 -0400)]
Fix misc warnings reported by cppcheck
https://bugs.freedesktop.org/show_bug.cgi?id=65544
Behdad Esfahbod [Mon, 10 Jun 2013 17:56:51 +0000 (13:56 -0400)]
Fix PKG_CHECK_MODULES usage
Oops.
Bug 65246 - Fix build without graphite2
Behdad Esfahbod [Thu, 6 Jun 2013 22:57:15 +0000 (18:57 -0400)]
Fix PKG_CHECK_MODULES usage
Bug 65246 - Fix build without graphite2
If we don't provide ACTION-IF-NOT-FOUND, configure aborts if it can't
find the libraries. We handle that ourselves so we don't want the
macro to abort.
Behdad Esfahbod [Thu, 6 Jun 2013 21:16:01 +0000 (17:16 -0400)]
Minor
Chun-wei Fan [Mon, 3 Jun 2013 09:55:29 +0000 (17:55 +0800)]
util/ansi-print.cc: Use fallback implementation for lround on MSVC
Unfortuately Visual Studio (still) does not support the C99 function
lround, so provide a fallback implementation for it.
Behdad Esfahbod [Mon, 3 Jun 2013 22:39:14 +0000 (18:39 -0400)]
Fix build for C89 compilers
Behdad Esfahbod [Mon, 3 Jun 2013 22:36:26 +0000 (18:36 -0400)]
Remove unnecessary stdint.h include
Chun-wei Fan [Mon, 3 Jun 2013 09:49:37 +0000 (17:49 +0800)]
hb-uniscribe.cc: Re-enable build under Visual Studio
-Declare hinstLib at the top of block
-Fix the definitions of the typedefs of ScriptItemizeOpenType,
ScriptShapeOpenType and ScriptPlaceOpenType
Behdad Esfahbod [Thu, 30 May 2013 22:04:24 +0000 (18:04 -0400)]
Fix ChangeLog regen
Behdad Esfahbod [Wed, 29 May 2013 19:30:54 +0000 (15:30 -0400)]
Update TODO
Behdad Esfahbod [Tue, 28 May 2013 21:34:37 +0000 (17:34 -0400)]
Fix test build
Behdad Esfahbod [Tue, 28 May 2013 21:33:16 +0000 (17:33 -0400)]
Minor
Behdad Esfahbod [Tue, 28 May 2013 21:28:59 +0000 (17:28 -0400)]
0.9.18
Behdad Esfahbod [Tue, 28 May 2013 21:23:56 +0000 (17:23 -0400)]
Fix dist
Behdad Esfahbod [Tue, 28 May 2013 21:18:30 +0000 (17:18 -0400)]
Generate harfbuzz-icu.pc
Currently it only works with ICU that has .pc files. I'll
wait till someone complains before fixing it for icu-config
systems.
Behdad Esfahbod [Tue, 28 May 2013 19:27:40 +0000 (15:27 -0400)]
Build hb-icu into libharfbuzz-icu.so
Behdad Esfahbod [Tue, 28 May 2013 19:25:06 +0000 (15:25 -0400)]
Minor
Behdad Esfahbod [Tue, 28 May 2013 17:10:51 +0000 (13:10 -0400)]
Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP
Fallback to older API if OpenType variants are not available.
Behdad Esfahbod [Mon, 27 May 2013 23:43:48 +0000 (19:43 -0400)]
Add --with-cairo
Behdad Esfahbod [Mon, 27 May 2013 23:33:36 +0000 (19:33 -0400)]
Add --with-freetype
Defaults to auto.
Behdad Esfahbod [Mon, 27 May 2013 23:30:48 +0000 (19:30 -0400)]
Default glib to auto again
Behdad Esfahbod [Mon, 27 May 2013 23:29:09 +0000 (19:29 -0400)]
Add --with-coretext
Defaults to no.
Behdad Esfahbod [Mon, 27 May 2013 23:27:43 +0000 (19:27 -0400)]
Add --with-uniscribe
Defaults to no.
Behdad Esfahbod [Mon, 27 May 2013 23:10:33 +0000 (19:10 -0400)]
Disable UCDN if glib is available
We only want UCDN if we don't have any other Unicode provider.
I'm going to remove ICU from the list of default Unicode providers
as part of moving hb-icu into its own library. As such, the only
providers will be UCDN and glib.
Behdad Esfahbod [Mon, 27 May 2013 23:09:50 +0000 (19:09 -0400)]
Minor
Behdad Esfahbod [Mon, 27 May 2013 23:06:50 +0000 (19:06 -0400)]
Disable icu_le shaper
Will add a way to enable it later.
Behdad Esfahbod [Mon, 27 May 2013 23:05:23 +0000 (19:05 -0400)]
Remove icu-config fallback for icu_le shaper
Bug 64878 - compile error with ICU but not ICU
Behdad Esfahbod [Mon, 27 May 2013 23:04:40 +0000 (19:04 -0400)]
Bug 65053 - Add configure option to enable/disable ICU support
Behdad Esfahbod [Mon, 27 May 2013 22:54:30 +0000 (18:54 -0400)]
Disable hb-old shaper
Will add proper way to enable it later.
Behdad Esfahbod [Mon, 27 May 2013 22:47:58 +0000 (18:47 -0400)]
Bug 65054 - Add configure option to enable/disable Graphite2
Add --with-graphite2. Defaults to off.
Behdad Esfahbod [Mon, 27 May 2013 22:24:56 +0000 (18:24 -0400)]
Remove hb-icu dependency from hb-icu-le shaper
Behdad Esfahbod [Mon, 27 May 2013 18:48:34 +0000 (14:48 -0400)]
Don't zero advance of mark-non-mark ligatures
If there's a mark ligating forward with non-mark, they were
inheriting the GC of the mark and later get advance-zeroed.
Don't do that if there's any non-mark glyph in the ligature.
Sample test: U+1780,U+17D2,U+179F with Kh-Metal-Chrieng.ttf
Also:
Bug 58922 - Issue with mark advance zeroing in generic shaper
Behdad Esfahbod [Fri, 24 May 2013 19:28:11 +0000 (15:28 -0400)]
[icu_le] Support non-BMP text
Behdad Esfahbod [Thu, 23 May 2013 21:05:39 +0000 (17:05 -0400)]
[icu_le] A bit better scaling
Behdad Esfahbod [Thu, 23 May 2013 19:54:52 +0000 (15:54 -0400)]
Behdad Esfahbod [Thu, 23 May 2013 19:43:02 +0000 (15:43 -0400)]
[icu_le] Fix scaling
Seems to work...
Behdad Esfahbod [Tue, 21 May 2013 21:22:13 +0000 (17:22 -0400)]
Copy stdint.h boilerplate to ucdn
Behdad Esfahbod [Mon, 20 May 2013 13:23:58 +0000 (09:23 -0400)]
0.9.17
Behdad Esfahbod [Mon, 20 May 2013 13:18:52 +0000 (09:18 -0400)]
Minor refactoring
Behdad Esfahbod [Mon, 20 May 2013 13:11:35 +0000 (09:11 -0400)]
Arabic mark width-zeroing regression
Mozilla Bug 873902 - Display Arabic text with diacritics is bad
https://bugzilla.mozilla.org/show_bug.cgi?id=873902
Behdad Esfahbod [Tue, 14 May 2013 19:30:55 +0000 (15:30 -0400)]
Bug 64476 - Typo in hb_set_t.get_min()
Fixes previous commit's test.
Behdad Esfahbod [Tue, 14 May 2013 19:30:17 +0000 (15:30 -0400)]
[test] Add test for hb_set_get_min() bug
Failing now.
Bug 64476 - Typo in hb_set_t.get_min()
Behdad Esfahbod [Fri, 3 May 2013 22:10:10 +0000 (18:10 -0400)]
[OTLayout] Use is_inplace() when flipping buffers
Behdad Esfahbod [Fri, 3 May 2013 21:49:44 +0000 (17:49 -0400)]
[OTLayout] Merge / templateize apply_string()
Behdad Esfahbod [Fri, 3 May 2013 21:34:29 +0000 (17:34 -0400)]
[OTLayout] Minor
Behdad Esfahbod [Fri, 3 May 2013 21:33:16 +0000 (17:33 -0400)]
[OTLayout] Minor
Behdad Esfahbod [Wed, 24 Apr 2013 20:42:05 +0000 (16:42 -0400)]
[OTLayout] Add is_inplace() method to GSUB
Behdad Esfahbod [Thu, 2 May 2013 22:52:24 +0000 (18:52 -0400)]
[OTLayout] Refactor a bit more
Behdad Esfahbod [Thu, 2 May 2013 22:18:24 +0000 (18:18 -0400)]
Move code around
Behdad Esfahbod [Thu, 2 May 2013 22:06:51 +0000 (18:06 -0400)]
[OTLayout] Add hb_ot_layout_lookup_accelerator_t
Behdad Esfahbod [Sat, 4 May 2013 20:01:20 +0000 (16:01 -0400)]
[OTLayout] Add note about collect_glyphs() and recursive lookups
Behdad Esfahbod [Fri, 3 May 2013 18:45:04 +0000 (14:45 -0400)]
Add U+061C ARABIC LETTER MARK to Default_Ignorable
Behdad Esfahbod [Thu, 2 May 2013 18:44:45 +0000 (14:44 -0400)]
[OTLayout] Make MultipleSubst in-place for sequences of len=1
Behdad Esfahbod [Thu, 2 May 2013 19:27:53 +0000 (15:27 -0400)]
[OTLayout] Whitespace
Behdad Esfahbod [Thu, 2 May 2013 19:16:59 +0000 (15:16 -0400)]
[OTLayout] Minor refactoring
Behdad Esfahbod [Thu, 2 May 2013 18:41:39 +0000 (14:41 -0400)]
Minor
Behdad Esfahbod [Thu, 2 May 2013 18:29:32 +0000 (14:29 -0400)]
Minor
Behdad Esfahbod [Thu, 2 May 2013 18:25:09 +0000 (14:25 -0400)]
Minor
Behdad Esfahbod [Thu, 2 May 2013 17:59:46 +0000 (13:59 -0400)]
Minor
Behdad Esfahbod [Tue, 30 Apr 2013 15:34:00 +0000 (11:34 -0400)]
Renamed DEBUG to something else
Some infrastructures use DEBUG as a generic symbol.
Behdad Esfahbod [Mon, 29 Apr 2013 17:48:49 +0000 (13:48 -0400)]
Fix icu linking by requesting the library searchpath from icu-config
This is not ideal as we don't like -L/usr/lib in our linker line.
But this is only relevant to environments that don't have pkgconfig
files for ICU...
https://github.com/behdad/harfbuzz/pull/2
Behdad Esfahbod [Mon, 29 Apr 2013 17:40:52 +0000 (13:40 -0400)]
Make both old autoconf and new automake happy
Sigh..
Bug 64039 - undefined macro AM_PROG_AR
Behdad Esfahbod [Sun, 21 Apr 2013 19:39:25 +0000 (15:39 -0400)]
Minor
Behdad Esfahbod [Sun, 21 Apr 2013 19:21:49 +0000 (15:21 -0400)]
Minor renaming
Behdad Esfahbod [Sun, 21 Apr 2013 19:19:38 +0000 (15:19 -0400)]
Rename "pause" to "stage"
The compile() function is starting to become illegible...
Behdad Esfahbod [Sun, 21 Apr 2013 19:13:57 +0000 (15:13 -0400)]
Minor
Behdad Esfahbod [Sun, 21 Apr 2013 19:13:08 +0000 (15:13 -0400)]
Remove unneeded code
We always push a pause at the end such that each lookup falls in exactly
one pause_map_t. Now, only if I can find a better name for that...
Behdad Esfahbod [Fri, 19 Apr 2013 20:32:06 +0000 (16:32 -0400)]
0.9.16
Behdad Esfahbod [Fri, 19 Apr 2013 18:33:17 +0000 (14:33 -0400)]
Hand-code bsearch in the hot inner loop.
Saves another 3 / 4 percent with Amiri.
Behdad Esfahbod [Thu, 18 Apr 2013 23:04:12 +0000 (19:04 -0400)]
Minor
Behdad Esfahbod [Thu, 18 Apr 2013 03:49:54 +0000 (23:49 -0400)]
[util] Unbreak --show-text / --show-unicode
Behdad Esfahbod [Thu, 18 Apr 2013 03:04:03 +0000 (23:04 -0400)]
Obssesive optimization
Not measurable by any means, but conceptually this is faster since
the mask matches more often than the digest.
Behdad Esfahbod [Wed, 17 Apr 2013 23:01:49 +0000 (19:01 -0400)]
Remove HB_DEBUG_SET_DIGESTS
Wasn't correct with the new combiner. I should add it back somehow,
but for now the digests seem to be working very well...
Behdad Esfahbod [Wed, 17 Apr 2013 22:20:44 +0000 (18:20 -0400)]
Remove hb_set_digest_common_bits_t
Was unused.
Behdad Esfahbod [Wed, 17 Apr 2013 22:19:21 +0000 (18:19 -0400)]
Improve hb_set_digest_t
Make Amiri rendering faster a whopping 45% again! Speends up pretty
much anything I tested.
Behdad Esfahbod [Wed, 17 Apr 2013 21:45:39 +0000 (17:45 -0400)]
Templatize hb_set_digest_lowest_bits_t filter
Behdad Esfahbod [Wed, 17 Apr 2013 21:26:56 +0000 (17:26 -0400)]
Add comment
Behdad Esfahbod [Wed, 17 Apr 2013 03:21:38 +0000 (23:21 -0400)]
Add hb_set_digest_combiner_t
Behdad Esfahbod [Wed, 17 Apr 2013 03:13:10 +0000 (23:13 -0400)]
Speed up Speed up hb_set_digest_common_bits_t calcs
Correctly this time.
Behdad Esfahbod [Wed, 17 Apr 2013 01:50:33 +0000 (21:50 -0400)]
Initialize set digests
We were not initializing the digests properly and as a result they were
being initialized to zero, making digest1 to never do any useful work.
Speeds up Amiri shaping significantly.
Behdad Esfahbod [Wed, 17 Apr 2013 01:57:21 +0000 (21:57 -0400)]
Print set-digest hit ratio with HB_DEBUG_SET_DIGESTS
Behdad Esfahbod [Wed, 17 Apr 2013 01:47:40 +0000 (21:47 -0400)]
Revert "Speed up hb_set_digest_common_bits_t calcs"
This reverts commit
3d1b66a35e1ab3be19335705f310b278d76d66d2.
The calculations were buggy. It's not worth optimizing right now.
Behdad Esfahbod [Tue, 16 Apr 2013 20:11:09 +0000 (16:11 -0400)]
Fix typo in unused macro
Behdad Esfahbod [Thu, 11 Apr 2013 20:31:01 +0000 (16:31 -0400)]
[util] Add --num-iterations
Useful for profiling shapers.
Behdad Esfahbod [Thu, 11 Apr 2013 18:45:58 +0000 (14:45 -0400)]
[old] Speed up Unicode properties access in hb-old shaper
Just to be sure it's not punishing the old shaper performance
numbers. Doesn't seem to have a measurable effect.
Behdad Esfahbod [Thu, 11 Apr 2013 17:38:37 +0000 (13:38 -0400)]
[git.mk] Update
Behdad Esfahbod [Tue, 9 Apr 2013 18:06:54 +0000 (14:06 -0400)]
Minor
Behdad Esfahbod [Fri, 5 Apr 2013 22:02:43 +0000 (18:02 -0400)]
0.9.15
Behdad Esfahbod [Fri, 5 Apr 2013 21:58:25 +0000 (17:58 -0400)]
[git.mk] Ignore ar-lib
Behdad Esfahbod [Fri, 5 Apr 2013 16:38:58 +0000 (12:38 -0400)]
Add note re Hangul shaping
Behdad Esfahbod [Fri, 5 Apr 2013 03:06:54 +0000 (23:06 -0400)]
Don't compose Hangul jamo
See thread "an issue regarding discrepancy between Korean and Unicode
standards" on the mailing list for the rationale. In short: Uniscribe
doesn't, so fonts are designed to work without it.
Behdad Esfahbod [Thu, 4 Apr 2013 19:02:03 +0000 (15:02 -0400)]
Put back MemoryBarrier fallback implementation on MINGW32
This almost reverts
2761e8a632c14353f286708898be8df6ebad7407,
but only if under MINGW32, so it doesn't affect MSVC.