platform/upstream/libHarfBuzzSharp.git
11 years agoAdd hb_utf_strlen()
Behdad Esfahbod [Tue, 25 Sep 2012 15:42:16 +0000 (11:42 -0400)]
Add hb_utf_strlen()

Speeds up UTF-8 parsing by calling strlen().

11 years ago[buffer] Templatize UTF handling
Behdad Esfahbod [Tue, 25 Sep 2012 15:22:28 +0000 (11:22 -0400)]
[buffer] Templatize UTF handling

Also move UTF routines into a separate file, to be reused from shapers
that need it.

11 years ago[buffer] Towards template'izing different UTF adders
Behdad Esfahbod [Tue, 25 Sep 2012 15:09:04 +0000 (11:09 -0400)]
[buffer] Towards template'izing different UTF adders

11 years agoMinor
Behdad Esfahbod [Tue, 25 Sep 2012 15:04:41 +0000 (11:04 -0400)]
Minor

11 years agoRemove unused indic.cc
Behdad Esfahbod [Tue, 25 Sep 2012 14:50:41 +0000 (10:50 -0400)]
Remove unused indic.cc

11 years ago[Indic] Import ragel-generated Indic machine in git
Behdad Esfahbod [Tue, 25 Sep 2012 01:51:13 +0000 (21:51 -0400)]
[Indic] Import ragel-generated Indic machine in git

I don't expect ragel to be creating too much noise in its generated
output, and including this in-tree helps users right now.  We can
revisit this later if it proved to be too much trouble.

11 years agoUse a C++ linker on Windows
Behdad Esfahbod [Tue, 25 Sep 2012 00:23:00 +0000 (20:23 -0400)]
Use a C++ linker on Windows

On Windows we don't care whether or not we link to libstdc++.
Seems to fix build with mingw32 on msys, as reported by Werner.

11 years agoBetter autofoo
Behdad Esfahbod [Tue, 18 Sep 2012 23:42:06 +0000 (19:42 -0400)]
Better autofoo

11 years agoFix dependencies
Behdad Esfahbod [Tue, 18 Sep 2012 00:59:09 +0000 (20:59 -0400)]
Fix dependencies

11 years agoReturn NULL, not false
Behdad Esfahbod [Mon, 10 Sep 2012 13:56:27 +0000 (09:56 -0400)]
Return NULL, not false

Oh well...

11 years ago[Indic] Find syllables before any features are applied
Behdad Esfahbod [Fri, 7 Sep 2012 18:55:07 +0000 (14:55 -0400)]
[Indic] Find syllables before any features are applied

With FreeSerif, it seems that the 'ccmp' feature does ligature
substituttions.  That was then causing syllable match failures.  We now
find syllables before any features have been applied.

Test sequence: U+0D9A,U+0DCA,U+200D,U+0DBB,U+0DCF

11 years agoAdd hb_buffer_[sg]et_content_type
Behdad Esfahbod [Fri, 7 Sep 2012 02:26:16 +0000 (22:26 -0400)]
Add hb_buffer_[sg]et_content_type

And hb_buffer_content_type_t and enum values.

11 years agoAdd hb_feature_to/from_string()
Behdad Esfahbod [Fri, 7 Sep 2012 02:09:06 +0000 (22:09 -0400)]
Add hb_feature_to/from_string()

11 years ago[OT] Do per-ligature-component fallback mark positioning
Behdad Esfahbod [Thu, 6 Sep 2012 21:22:31 +0000 (17:22 -0400)]
[OT] Do per-ligature-component fallback mark positioning

With this in place, you can remove GDEF/GSUB/GPOS tables from Arabic
fonts and still get per-component marks positioned on
oh-yeah-fallback-formed LAM-ALEF ligatures with marks in between the LAM
and ALEF.

Now *that*'s pretty cool, if a bit anachronistic...

11 years ago[OT] Make fallback mark positioning more robust
Behdad Esfahbod [Thu, 6 Sep 2012 20:02:07 +0000 (16:02 -0400)]
[OT] Make fallback mark positioning more robust

...with clusters spanning multiple base characters.

11 years ago[old] Clear offset array
Behdad Esfahbod [Thu, 6 Sep 2012 19:29:29 +0000 (15:29 -0400)]
[old] Clear offset array

11 years ago[OT] Simplify fallback positioning condition
Behdad Esfahbod [Thu, 6 Sep 2012 18:27:15 +0000 (14:27 -0400)]
[OT] Simplify fallback positioning condition

11 years agoRefactor common macro
Behdad Esfahbod [Thu, 6 Sep 2012 18:25:48 +0000 (14:25 -0400)]
Refactor common macro

11 years ago[OT] Streamline Arabic fallback shaping table
Behdad Esfahbod [Thu, 6 Sep 2012 05:16:39 +0000 (01:16 -0400)]
[OT] Streamline Arabic fallback shaping table

11 years agoMinor
Behdad Esfahbod [Thu, 6 Sep 2012 05:12:50 +0000 (01:12 -0400)]
Minor

11 years ago[OT] Port Arabic fallback shaping to synthetic GSUB
Behdad Esfahbod [Thu, 6 Sep 2012 02:19:28 +0000 (22:19 -0400)]
[OT] Port Arabic fallback shaping to synthetic GSUB

All of init/medi/fina/isol and rlig implemented.

Let there be dragons... ⻯

11 years ago[Indic] Allow "H,ZWJ,M"
Behdad Esfahbod [Wed, 5 Sep 2012 21:32:57 +0000 (17:32 -0400)]
[Indic] Allow "H,ZWJ,M"

Uniscribe accepts a Halant,ZWJ before matras.  Allow that.

BENGALI down from 295 to 291
DEVANAGARI down from 69 to 57
GUJARATI down from 19 to 17
KANNADA down from 871 to 867
MALAYALAM down from 340 to 337
TELUGU down from 20 to 16

Currently at:

BENGALI: 353897 out of 354188 tests passed. 291 failed (0.0821598%)
DEVANAGARI: 707337 out of 707394 tests passed. 57 failed (0.00805774%)
GUJARATI: 366440 out of 366457 tests passed. 17 failed (0.00463902%)
GURMUKHI: 60704 out of 60747 tests passed. 43 failed (0.0707854%)
KANNADA: 951046 out of 951913 tests passed. 867 failed (0.0910798%)
KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1047997 out of 1048334 tests passed. 337 failed (0.0321462%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970557 out of 970573 tests passed. 16 failed (0.00164851%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)

11 years ago[Indic] Relax grammar
Behdad Esfahbod [Wed, 5 Sep 2012 21:21:17 +0000 (17:21 -0400)]
[Indic] Relax grammar

Now that we insert dotted-circle, tests break more easily when our indic
machine breaks.

In particular, a few Devanagari tests were having sequences like
"C,H,ZWJ,N", and because of the ZWJ the Nukta does NOT get reordered to
before the Halant as the grammar used to expect...  Fixup.

Another case is as simple as "C,ZWJ,SM".

Fixes 10 out of 79 failures:

DEVANAGARI: 707325 out of 707394 tests passed. 69 failed (0.00975411%)

11 years ago[Indic] Fix Khmer syllable-final coeng-consonant
Behdad Esfahbod [Wed, 5 Sep 2012 19:54:21 +0000 (15:54 -0400)]
[Indic] Fix Khmer syllable-final coeng-consonant

Brings down Khmer failures from 162 to 47.

KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%)

Also rebaselined some of the test files that had only-inherited lines.
Removing those, the stats are:

BENGALI: 353893 out of 354188 tests passed. 295 failed (0.0832891%)
DEVANAGARI: 707315 out of 707394 tests passed. 79 failed (0.0111678%)
GUJARATI: 366438 out of 366457 tests passed. 19 failed (0.00518478%)
GURMUKHI: 60704 out of 60747 tests passed. 43 failed (0.0707854%)
KANNADA: 951042 out of 951913 tests passed. 871 failed (0.0915%)
KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1047994 out of 1048334 tests passed. 340 failed (0.0324324%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970553 out of 970573 tests passed. 20 failed (0.00206064%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)

Still some regressions, but some of the more egregious cases are
addressed.

11 years agoFixup test failure reporting
Behdad Esfahbod [Wed, 5 Sep 2012 19:50:47 +0000 (15:50 -0400)]
Fixup test failure reporting

After we implemented dotted-circle, we were still ignoring any tests
that had dottedcircle in it for any of the shapers.  That meant that if
we wrongly outputted dottedcircle, the test was being ignored.  Ouch!

Fixing that shows regressions across the board.  Most are Uniscribe
bugs: NOT inserting dotted-circle when it should.  Some are arou
machine bugs.  This is in fact a nice way to catch Indic-machine
deficiencies and when I fix the regressions, our clusters should be
much closer to Uniscribe.  For now, we regressed from:

BENGALI: 353997 out of 354285 tests passed. 288 failed (0.0812905%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60769 out of 60809 tests passed. 40 failed (0.0657797%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271747 out of 271847 tests passed. 100 failed (0.0367854%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970558 out of 970573 tests passed. 15 failed (0.00154548%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)

To:

BENGALI: 353990 out of 354285 tests passed. 295 failed (0.0832663%)
DEVANAGARI: 707315 out of 707394 tests passed. 79 failed (0.0111678%)
GUJARATI: 366447 out of 366506 tests passed. 59 failed (0.016098%)
GURMUKHI: 60707 out of 60809 tests passed. 102 failed (0.167738%)
KANNADA: 951042 out of 951913 tests passed. 871 failed (0.0915%)
KHMER: 298962 out of 299124 tests passed. 162 failed (0.0541581%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048074 out of 1048416 tests passed. 342 failed (0.0326206%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091835 out of 1091837 tests passed. 2 failed (0.000183178%)
TELUGU: 970553 out of 970573 tests passed. 20 failed (0.00206064%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)

Investigating.

11 years ago[Indic] Tamil does not have half-forms either
Behdad Esfahbod [Wed, 5 Sep 2012 19:11:14 +0000 (15:11 -0400)]
[Indic] Tamil does not have half-forms either

The Win7 Tamil font does not realy on this behavior, but the WinXP
version does.  Handle Tamil like Malayalam: Matras always move to
before base.

WinXP Tamil failures went down from 168964 (15.4752%) to 167
(0.0152953%) (two orders of magnitude reduction!).

Included in this is a minor fixup that actually fixed a few tests
with non-Tamil too.  Numbers at:

BENGALI: 353997 out of 354285 tests passed. 288 failed (0.0812905%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60769 out of 60809 tests passed. 40 failed (0.0657797%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271747 out of 271847 tests passed. 100 failed (0.0367854%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970558 out of 970573 tests passed. 15 failed (0.00154548%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)

11 years ago[OT] Allow adding features with fallback implementation
Behdad Esfahbod [Wed, 5 Sep 2012 03:06:38 +0000 (23:06 -0400)]
[OT] Allow adding features with fallback implementation

11 years agoMinor
Behdad Esfahbod [Wed, 5 Sep 2012 02:42:17 +0000 (22:42 -0400)]
Minor

11 years ago[OT] Add SubstLookup serialize API
Behdad Esfahbod [Wed, 5 Sep 2012 01:13:17 +0000 (21:13 -0400)]
[OT] Add SubstLookup serialize API

11 years agoMinor
Behdad Esfahbod [Wed, 5 Sep 2012 00:10:17 +0000 (20:10 -0400)]
Minor

11 years ago[OT] Start adding Lookup-level serialize API
Behdad Esfahbod [Wed, 5 Sep 2012 00:00:44 +0000 (20:00 -0400)]
[OT] Start adding Lookup-level serialize API

11 years ago[OT] More serialize. Implements all basic GSUB subtables
Behdad Esfahbod [Tue, 4 Sep 2012 22:17:57 +0000 (18:17 -0400)]
[OT] More serialize.  Implements all basic GSUB subtables

11 years agoMinor
Behdad Esfahbod [Tue, 4 Sep 2012 22:17:21 +0000 (18:17 -0400)]
Minor

11 years ago0.9.4
Behdad Esfahbod [Tue, 4 Sep 2012 19:32:37 +0000 (15:32 -0400)]
0.9.4

11 years agoRefactor
Behdad Esfahbod [Tue, 4 Sep 2012 19:15:19 +0000 (15:15 -0400)]
Refactor

11 years ago[OT] Really fix possible NULL dereference this time
Behdad Esfahbod [Tue, 4 Sep 2012 18:55:00 +0000 (14:55 -0400)]
[OT] Really fix possible NULL dereference this time

11 years ago[OT] Implement serialize() for AlternateSubst
Behdad Esfahbod [Tue, 4 Sep 2012 03:31:14 +0000 (23:31 -0400)]
[OT] Implement serialize() for AlternateSubst

11 years ago[OT] Implement serialize() for MultiSubst
Behdad Esfahbod [Tue, 4 Sep 2012 03:28:34 +0000 (23:28 -0400)]
[OT] Implement serialize() for MultiSubst

11 years agoMinor
Behdad Esfahbod [Tue, 4 Sep 2012 00:58:03 +0000 (20:58 -0400)]
Minor

11 years agoFix possible NULL dereference
Behdad Esfahbod [Tue, 4 Sep 2012 00:19:46 +0000 (20:19 -0400)]
Fix possible NULL dereference

As reported by Kenichi Ishibashi.

11 years ago[OT] Remove serialize alignment
Behdad Esfahbod [Sun, 2 Sep 2012 01:56:06 +0000 (21:56 -0400)]
[OT] Remove serialize alignment

Will reintroduce in a different way when we actually need it.

11 years ago[OT] A bit more serialize
Behdad Esfahbod [Sun, 2 Sep 2012 01:43:38 +0000 (21:43 -0400)]
[OT] A bit more serialize

11 years ago[OT] Improve serialize syntax
Behdad Esfahbod [Sun, 2 Sep 2012 01:30:17 +0000 (21:30 -0400)]
[OT] Improve serialize syntax

For some definition of improvement...

11 years ago[OT] Restart work on serialize()
Behdad Esfahbod [Sun, 2 Sep 2012 00:48:22 +0000 (20:48 -0400)]
[OT] Restart work on serialize()

11 years ago[OT] Insert dotted-circle for run-initial marks
Behdad Esfahbod [Sun, 2 Sep 2012 00:38:45 +0000 (20:38 -0400)]
[OT] Insert dotted-circle for run-initial marks

Unfortunately if the font has GPOS and 'mark' feature does
not position mark on dotted-circle, our inserted dotted-circle
will not get the mark repositioned to itself.  Uniscribe cheats
here.

If there is no GPOS however, the fallback positioning kicks in
and sorts this out.

I'm not willing to address the first case.

11 years ago[OT] Fallback-position ccc=0 Thai / Lao marks
Behdad Esfahbod [Sun, 2 Sep 2012 00:06:26 +0000 (20:06 -0400)]
[OT] Fallback-position ccc=0 Thai / Lao marks

Not perfect, but so is fallback positioning in 2012...

11 years agoMove code around
Behdad Esfahbod [Sat, 1 Sep 2012 23:20:41 +0000 (19:20 -0400)]
Move code around

11 years ago[Indic] Implement dotted-circle insertion for broken clusters
Behdad Esfahbod [Fri, 31 Aug 2012 22:12:01 +0000 (18:12 -0400)]
[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.

11 years ago[Indic] Start adding dotted-circle instrastructure
Behdad Esfahbod [Fri, 31 Aug 2012 20:49:34 +0000 (16:49 -0400)]
[Indic] Start adding dotted-circle instrastructure

11 years agoMinor
Behdad Esfahbod [Fri, 31 Aug 2012 20:29:17 +0000 (16:29 -0400)]
Minor

11 years agoMinor
Behdad Esfahbod [Fri, 31 Aug 2012 18:06:26 +0000 (14:06 -0400)]
Minor

11 years ago[OT] Better fallback-position Thai / Lao ccc!=0 marks
Behdad Esfahbod [Fri, 31 Aug 2012 02:53:29 +0000 (22:53 -0400)]
[OT] Better fallback-position Thai / Lao ccc!=0 marks

11 years ago[OT] Add serialize() for Coverage
Behdad Esfahbod [Thu, 30 Aug 2012 01:08:59 +0000 (21:08 -0400)]
[OT] Add serialize() for Coverage

11 years ago[OT] Start adding serialize() API
Behdad Esfahbod [Thu, 30 Aug 2012 00:26:08 +0000 (20:26 -0400)]
[OT] Start adding serialize() API

11 years agoAdd HB_BUFFER_ASSERT_VAR
Behdad Esfahbod [Wed, 29 Aug 2012 17:59:16 +0000 (13:59 -0400)]
Add HB_BUFFER_ASSERT_VAR

To be used in places we access buffer vars...

11 years agoMove code around
Behdad Esfahbod [Wed, 29 Aug 2012 15:53:26 +0000 (11:53 -0400)]
Move code around

11 years agoPort Arabic fallback ligating to share code with GSUB
Behdad Esfahbod [Wed, 29 Aug 2012 15:11:54 +0000 (11:11 -0400)]
Port Arabic fallback ligating to share code with GSUB

This will eventually allow us to skip marks, as well as (fallback)
attach marks to ligature components of fallback-shaped Arabic.
That would be pretty cool.  I kludged GDEF props in, so mark-skipping
works, but the produced ligature id/components will be cleared later
by substitute_start() et al.

Perhaps using a synthetic table for Arabic fallback shaping was a better
idea.  The current approach has way too many layering violations...

11 years agoMinor
Behdad Esfahbod [Wed, 29 Aug 2012 14:40:49 +0000 (10:40 -0400)]
Minor

11 years ago[GSUB] Move ligation logic over
Behdad Esfahbod [Wed, 29 Aug 2012 03:18:22 +0000 (23:18 -0400)]
[GSUB] Move ligation logic over

11 years ago[GSUB] Merge Ligature and context input matching
Behdad Esfahbod [Wed, 29 Aug 2012 02:58:55 +0000 (22:58 -0400)]
[GSUB] Merge Ligature and context input matching

Looks better now...

11 years agoStart converging Ligature and match_input
Behdad Esfahbod [Wed, 29 Aug 2012 02:24:51 +0000 (22:24 -0400)]
Start converging Ligature and match_input

11 years ago[hb-icu-le] Add visbility
Behdad Esfahbod [Tue, 28 Aug 2012 23:16:38 +0000 (19:16 -0400)]
[hb-icu-le] Add visbility

11 years agoMinor
Behdad Esfahbod [Tue, 28 Aug 2012 23:08:36 +0000 (19:08 -0400)]
Minor

11 years agoMinor
Behdad Esfahbod [Tue, 28 Aug 2012 23:08:22 +0000 (19:08 -0400)]
Minor

11 years agoUse VisualStudio-style atomic intrinsics on mingw32
Behdad Esfahbod [Tue, 28 Aug 2012 22:03:35 +0000 (18:03 -0400)]
Use VisualStudio-style atomic intrinsics on mingw32

11 years agoUse namespace for OpenType tables
Behdad Esfahbod [Tue, 28 Aug 2012 21:57:49 +0000 (17:57 -0400)]
Use namespace for OpenType tables

Avoids USHORT, SHORT, ULONG, LONG clashes with Windows API.

11 years agoRevert "Minor"
Behdad Esfahbod [Tue, 28 Aug 2012 20:31:23 +0000 (16:31 -0400)]
Revert "Minor"

This reverts commit 3e0a03978b91994bb7fa7922593cbdfc50878dfc.

I know remember why that line is there :).

11 years agoMinor
Behdad Esfahbod [Mon, 27 Aug 2012 21:10:02 +0000 (17:10 -0400)]
Minor

11 years agoMinor
Behdad Esfahbod [Mon, 27 Aug 2012 21:00:44 +0000 (17:00 -0400)]
Minor

11 years agoOnly fallback-position glyphs if we have the ccc
Behdad Esfahbod [Mon, 27 Aug 2012 20:54:34 +0000 (16:54 -0400)]
Only fallback-position glyphs if we have the ccc

Previously, ccc=0 Thai / Lao marks were being
mispositioned.  Don't touch them.

11 years agoCenter unknown marks horizontally
Behdad Esfahbod [Mon, 27 Aug 2012 20:28:05 +0000 (16:28 -0400)]
Center unknown marks horizontally

11 years agoMinor
Behdad Esfahbod [Mon, 27 Aug 2012 19:54:15 +0000 (15:54 -0400)]
Minor

11 years ago[Indic] Fix switch
Behdad Esfahbod [Sun, 26 Aug 2012 18:30:18 +0000 (14:30 -0400)]
[Indic] Fix switch

D'oh.  Was working by pure chance :)).

11 years agoBug 53815 - CoreText backend doesn't link
Behdad Esfahbod [Sun, 26 Aug 2012 18:27:44 +0000 (14:27 -0400)]
Bug 53815 - CoreText backend doesn't link

11 years agoRemove TODO items
Behdad Esfahbod [Fri, 24 Aug 2012 04:44:53 +0000 (00:44 -0400)]
Remove TODO items

11 years ago[graphite2] Cleanup scratch buffer allocation
Behdad Esfahbod [Fri, 24 Aug 2012 04:41:51 +0000 (00:41 -0400)]
[graphite2] Cleanup scratch buffer allocation

11 years ago[icu-le] Implement icu layout engine shaper
Behdad Esfahbod [Fri, 24 Aug 2012 03:59:55 +0000 (23:59 -0400)]
[icu-le] Implement icu layout engine shaper

11 years ago[icu-le] Hook up to hb_face_t
Behdad Esfahbod [Fri, 24 Aug 2012 01:52:44 +0000 (21:52 -0400)]
[icu-le] Hook up to hb_face_t

11 years ago[icu-le] Actually use the FontTableCache
Behdad Esfahbod [Fri, 24 Aug 2012 01:37:51 +0000 (21:37 -0400)]
[icu-le] Actually use the FontTableCache

11 years ago[icu-le] Start adding a icu-layout-engine backend
Behdad Esfahbod [Fri, 24 Aug 2012 01:23:41 +0000 (21:23 -0400)]
[icu-le] Start adding a icu-layout-engine backend

Import PortableFontInstance and add shaper stub.

11 years ago[Indic] For old-spec, match non-zero context
Behdad Esfahbod [Thu, 23 Aug 2012 20:26:07 +0000 (16:26 -0400)]
[Indic] For old-spec, match non-zero context

Fixes consonant-position with old-spec Malayalam.  Uniscribe seem to be
doing this.  Fixes below-base La (eg. Pa,H,La) with AnjaliNewLipi.ttf.
Doesn't regress new-spec or other scripts.

11 years ago[GSUB] Allow non-zero-context matching in would_apply()
Behdad Esfahbod [Thu, 23 Aug 2012 20:22:28 +0000 (16:22 -0400)]
[GSUB] Allow non-zero-context matching in would_apply()

To be used in the next patch.

11 years agoRevert "[Indic/GSUB] Ignore context when matching would_apply()"
Behdad Esfahbod [Thu, 23 Aug 2012 20:10:37 +0000 (16:10 -0400)]
Revert "[Indic/GSUB] Ignore context when matching would_apply()"

This reverts commit 24dd4e56743c6ce5e01cb710ca9e01b3e527af58.

Oops.  My bad.  The change _regressed_ Malayalam test suite, not
improved it.  I'll redo it, differentiating between old-spec and
new-spec cases.

11 years ago[Indic/GSUB] Ignore context when matching would_apply()
Behdad Esfahbod [Thu, 23 Aug 2012 19:47:10 +0000 (15:47 -0400)]
[Indic/GSUB] Ignore context when matching would_apply()

The MS Indic specs say "...all classifications are determined ... using
context-free substitutions."  However, testing shows that MS's Malayalam
shapers (both old and new), "match" even if there is no zero-context rule.
We follow.

Fixes below-base La (eg. Pa,H,La) with AnjaliNewLipi.ttf (old spec).
Moreover, test suite Malayalam failures are down to 312 from 875!  No
change in other scripts.

Current numbers:

BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60769 out of 60809 tests passed. 40 failed (0.0657797%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1047541 out of 1048416 tests passed. 875 failed (0.0834592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970558 out of 970573 tests passed. 15 failed (0.00154548%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)

11 years ago[Indic] Implement pre-base reordering Ra for old-spec Malayalam
Behdad Esfahbod [Thu, 23 Aug 2012 19:19:45 +0000 (15:19 -0400)]
[Indic] Implement pre-base reordering Ra for old-spec Malayalam

Fixes Pa,H,Ra sequence with AnjaliNewLipi.ttf.

11 years ago[Indic] Only apply basic features per-syllable
Behdad Esfahbod [Thu, 23 Aug 2012 16:06:14 +0000 (12:06 -0400)]
[Indic] Only apply basic features per-syllable

Free up syllables and let features work across syllables for the
presentation forms features and GPOS.

Fixed:
- 1 GURMUKHI test (remains 40)
- 12 KHMER tests (remains 18)
- 11 SINHALA tests (remains 121)

Regresses:
- 5 MALAYALAM tests (up to 312)

Current numbers:

BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60769 out of 60809 tests passed. 40 failed (0.0657797%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970558 out of 970573 tests passed. 15 failed (0.00154548%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)

11 years agoWhitespace
Behdad Esfahbod [Thu, 23 Aug 2012 13:33:30 +0000 (09:33 -0400)]
Whitespace

11 years agoRelease 0.9.3
Behdad Esfahbod [Sat, 18 Aug 2012 17:59:46 +0000 (13:59 -0400)]
Release 0.9.3

11 years agoFix ChangeLog generation rule
Behdad Esfahbod [Sat, 18 Aug 2012 17:56:10 +0000 (13:56 -0400)]
Fix ChangeLog generation rule

11 years agoAdd comment
Behdad Esfahbod [Thu, 16 Aug 2012 15:46:46 +0000 (11:46 -0400)]
Add comment

11 years ago[OT] Fix Arabic shaper OOB access
Behdad Esfahbod [Thu, 16 Aug 2012 15:35:50 +0000 (11:35 -0400)]
[OT] Fix Arabic shaper OOB access

https://bugzilla.mozilla.org/show_bug.cgi?id=782908

11 years ago[configure] Cleanup check for ICU
Behdad Esfahbod [Thu, 16 Aug 2012 12:09:44 +0000 (08:09 -0400)]
[configure] Cleanup check for ICU

Check for upstream-provided 'icu-uc' pkgconfig package.

11 years ago[ICU] Fix includes
Behdad Esfahbod [Thu, 16 Aug 2012 11:32:59 +0000 (07:32 -0400)]
[ICU] Fix includes

As reported by Steven Loomis, including uversion.h works everywhere.

11 years agoWhitespace
Behdad Esfahbod [Wed, 15 Aug 2012 22:52:17 +0000 (18:52 -0400)]
Whitespace

11 years ago[NEWS] Fix date
Behdad Esfahbod [Wed, 15 Aug 2012 21:24:28 +0000 (17:24 -0400)]
[NEWS] Fix date

Oops!

11 years agoMinor
Behdad Esfahbod [Tue, 14 Aug 2012 13:33:18 +0000 (09:33 -0400)]
Minor

11 years agoFix ICU build with older ICUs
Behdad Esfahbod [Mon, 13 Aug 2012 14:52:52 +0000 (10:52 -0400)]
Fix ICU build with older ICUs

11 years agoMinor
Behdad Esfahbod [Sun, 12 Aug 2012 21:11:27 +0000 (17:11 -0400)]
Minor

11 years agominor
Behdad Esfahbod [Sun, 12 Aug 2012 01:32:23 +0000 (21:32 -0400)]
minor

11 years ago[ICU] Use new normalizer2 compose/decompose API
Behdad Esfahbod [Sun, 12 Aug 2012 01:26:25 +0000 (21:26 -0400)]
[ICU] Use new normalizer2 compose/decompose API

It's considerably faster than the fallback implementation we had
previously!