platform/upstream/libHarfBuzzSharp.git
11 years ago[Indic] Decompose Sinhala split matras the way old HarfBuzz / Pango did
Behdad Esfahbod [Tue, 13 Nov 2012 20:35:35 +0000 (12:35 -0800)]
[Indic] Decompose Sinhala split matras the way old HarfBuzz / Pango did

Had to do some refactoring to make this happen...

Under uniscribe bug compatibility mode, we still plit them
Uniscrie-style, but Jonathan and I convinced ourselves that there is no
harm doing this the Unicode way.  This change makes that happen, and
unbreaks free Sinhala fonts.

11 years ago[hb-shape] Adjust postioning output format
Behdad Esfahbod [Tue, 13 Nov 2012 19:07:20 +0000 (11:07 -0800)]
[hb-shape] Adjust postioning output format

1. If there is any offset (x or y), print out both x and y offsets.

2. Always print out the advance in the major direction of the buffer.
Ie. even for zero-advance glyphs, print a "+0".  This is more intuitive.

11 years ago[Indic] Update auto-generated Indic machine to reflect previous commit
Behdad Esfahbod [Tue, 13 Nov 2012 02:42:18 +0000 (18:42 -0800)]
[Indic] Update auto-generated Indic machine to reflect previous commit

11 years ago[Indic] Allow Consonant_Medial's after Consonant's
Behdad Esfahbod [Tue, 13 Nov 2012 02:41:22 +0000 (18:41 -0800)]
[Indic] Allow Consonant_Medial's after Consonant's

Mostly affects Myanmar, but also Tai Tham, Javanese, and Cham.  The
latter three are untested (no fonts!).

11 years ago[Indic] Categorize Myanmar "tone marks" as nuktas
Behdad Esfahbod [Tue, 13 Nov 2012 02:38:06 +0000 (18:38 -0800)]
[Indic] Categorize Myanmar "tone marks" as nuktas

11 years ago[Indic] Add config for Myanmar
Behdad Esfahbod [Tue, 13 Nov 2012 02:37:20 +0000 (18:37 -0800)]
[Indic] Add config for Myanmar

11 years ago[Indic] Route "new" Myanmar tag through the Indic shaper
Behdad Esfahbod [Tue, 13 Nov 2012 02:36:10 +0000 (18:36 -0800)]
[Indic] Route "new" Myanmar tag through the Indic shaper

Windows 8 adds a Myanmar shaper using the 'mym2' tag.  Route that
through the Indic shaper.  It's still very broken, but at least this
does NOT break old-style Myanmar shaping using the generic shaper.

11 years agoChoose shaper based on chosen OT script tag
Behdad Esfahbod [Tue, 13 Nov 2012 02:27:42 +0000 (18:27 -0800)]
Choose shaper based on chosen OT script tag

For Arabic and Indic shapers, if the font doesn't have a script system
for the script, use default shaper.

Make an exception for Arabic script since we have fallback logic for
that one.

11 years agoMake planner available to complex shaper choosing logic
Behdad Esfahbod [Tue, 13 Nov 2012 02:23:38 +0000 (18:23 -0800)]
Make planner available to complex shaper choosing logic

11 years agoRefactoring ot-map building to make chosen script available earlier
Behdad Esfahbod [Tue, 13 Nov 2012 01:57:24 +0000 (17:57 -0800)]
Refactoring ot-map building to make chosen script available earlier

11 years agoMinor TODO
Behdad Esfahbod [Tue, 13 Nov 2012 01:48:26 +0000 (17:48 -0800)]
Minor TODO

11 years agoAdd "new" Myanmar OT Script tag
Behdad Esfahbod [Tue, 13 Nov 2012 01:27:51 +0000 (17:27 -0800)]
Add "new" Myanmar OT Script tag

Windows 8 added support for Myanmar shaping using the "mym2" script tag,
even though Windows never supported the old "mymr" tag.

11 years agoAdd Myanmar tests from UTN#11
Behdad Esfahbod [Tue, 13 Nov 2012 00:54:03 +0000 (16:54 -0800)]
Add Myanmar tests from UTN#11

11 years agoBreak build when ragel is needed and missing
Behdad Esfahbod [Mon, 12 Nov 2012 22:57:02 +0000 (14:57 -0800)]
Break build when ragel is needed and missing

11 years ago[Indic] Make more room in the table
Behdad Esfahbod [Mon, 12 Nov 2012 22:48:33 +0000 (14:48 -0800)]
[Indic] Make more room in the table

To be used in upcoming commits.

11 years agoTypo
Behdad Esfahbod [Mon, 12 Nov 2012 22:27:33 +0000 (14:27 -0800)]
Typo

11 years ago[Indic] Port 'pref' logic to look into font tables
Behdad Esfahbod [Mon, 12 Nov 2012 22:09:40 +0000 (14:09 -0800)]
[Indic] Port 'pref' logic to look into font tables

...instead of using a hardcoded list of Ra characters.

11 years ago[Indic] Port reph handling logic to look into font features
Behdad Esfahbod [Mon, 12 Nov 2012 22:02:02 +0000 (14:02 -0800)]
[Indic] Port reph handling logic to look into font features

...instead of using a hardcoded list of Ra characters.

11 years agoRoute MEETEI_MAYEK through the Indic shaper
Behdad Esfahbod [Mon, 12 Nov 2012 21:34:17 +0000 (13:34 -0800)]
Route MEETEI_MAYEK through the Indic shaper

Since it has a couple of left-"matras".

11 years agoMinor
Behdad Esfahbod [Mon, 12 Nov 2012 21:02:20 +0000 (13:02 -0800)]
Minor

11 years agoWork around older compilers
Behdad Esfahbod [Mon, 12 Nov 2012 19:16:57 +0000 (11:16 -0800)]
Work around older compilers

As reported on the list:

I am seeing a similar problem building harfbuzz 0.9.5 with Apple gcc
4.0.1 on OS X 10.5 Leopard:

hb-ot-layout-common-private.hh:406: error: 'struct
OT::CoverageFormat1::Iter' is private
hb-ot-layout-common-private.hh:646: error: within this context
hb-ot-layout-common-private.hh:500: error: 'struct
OT::CoverageFormat2::Iter' is private
hb-ot-layout-common-private.hh:647: error: within this context
make[4]: *** [libharfbuzz_la-hb-ot-layout.lo] Error 1

Also reported as happening with MSVC 2005.

11 years ago[Indic] Don't apply 'liga'
Behdad Esfahbod [Mon, 12 Nov 2012 19:02:56 +0000 (11:02 -0800)]
[Indic] Don't apply 'liga'

Uniscribe doesn't.  And some fonts abuse this feature to get Indic
shaping working in non-complex applications like Adobe's apps.

No change in numbers:

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: 299074 out of 299124 tests passed. 50 failed (0.0167155%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed (0.0308108%)
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 agoFix hb-ft glyph name for broken fonts that return empty glyph names
Behdad Esfahbod [Mon, 12 Nov 2012 18:26:50 +0000 (10:26 -0800)]
Fix hb-ft glyph name for broken fonts that return empty glyph names

11 years agoMinor
Behdad Esfahbod [Mon, 12 Nov 2012 18:07:28 +0000 (10:07 -0800)]
Minor

12 years agoU+A872 PHAGS-PA SUPERFIXED LETTER RA is "Right"-Joining
Behdad Esfahbod [Thu, 8 Nov 2012 23:08:26 +0000 (15:08 -0800)]
U+A872 PHAGS-PA SUPERFIXED LETTER RA is "Right"-Joining

12 years agoAdjust Mongolian shaping
Behdad Esfahbod [Mon, 5 Nov 2012 23:20:10 +0000 (15:20 -0800)]
Adjust Mongolian shaping

For U+1880..U+1886 Uniscribe thinks they are non-joining.
For U+1887 Uniscribe thinks it's joining, but looks wrong to me.
For now, match Uniscribe.

12 years agoAdd test for non-joining Mongolian letters
Behdad Esfahbod [Mon, 5 Nov 2012 23:18:49 +0000 (15:18 -0800)]
Add test for non-joining Mongolian letters

For U+1880..U+1886 Uniscribe thinks they are non-joining.
For U+1887 Uniscribe thinks it's joining, but looks wrong to me.

12 years agoMinor
Behdad Esfahbod [Mon, 5 Nov 2012 00:48:45 +0000 (16:48 -0800)]
Minor

12 years agoMinor
Behdad Esfahbod [Mon, 5 Nov 2012 00:44:47 +0000 (16:44 -0800)]
Minor

12 years agoAdd Tifinagh test data
Behdad Esfahbod [Fri, 2 Nov 2012 20:53:18 +0000 (13:53 -0700)]
Add Tifinagh test data

12 years agoMinor
Behdad Esfahbod [Fri, 2 Nov 2012 20:38:55 +0000 (13:38 -0700)]
Minor

12 years agoAdd Mongolian and 'Phags-pa joining test cases
Behdad Esfahbod [Fri, 2 Nov 2012 17:21:26 +0000 (10:21 -0700)]
Add Mongolian and 'Phags-pa joining test cases

12 years agoImplement 'Phags-pa shaping
Behdad Esfahbod [Fri, 2 Nov 2012 03:05:04 +0000 (20:05 -0700)]
Implement 'Phags-pa shaping

Through the Arabic shaper.  It's similar to Mongolian.

12 years agoMinor build fix
Behdad Esfahbod [Thu, 1 Nov 2012 23:26:01 +0000 (16:26 -0700)]
Minor build fix

12 years agoDon't clear buffer pre-context if no new context is being provided
Behdad Esfahbod [Wed, 31 Oct 2012 20:45:30 +0000 (13:45 -0700)]
Don't clear buffer pre-context if no new context is being provided

Patch from Jonathan Kew.

Part of fixing:

Mozilla Bug 801410 - avoid inserting dotted-circle for run-initial
Unicode combining characters in "simple" scripts such as Latin

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

12 years ago[OT] Fix ReverseChainingSubst
Behdad Esfahbod [Tue, 30 Oct 2012 05:02:45 +0000 (22:02 -0700)]
[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.

12 years agoMore tracing fixups
Behdad Esfahbod [Tue, 30 Oct 2012 04:51:56 +0000 (21:51 -0700)]
More tracing fixups

12 years ago[Arabic] Enable dlig and mset for Arabic
Behdad Esfahbod [Tue, 30 Oct 2012 04:49:33 +0000 (21:49 -0700)]
[Arabic] Enable dlig and mset for Arabic

That's what the spec says, and what Uniscribe does.

12 years agoIgnore gid0 in test results
Behdad Esfahbod [Tue, 30 Oct 2012 02:42:19 +0000 (19:42 -0700)]
Ignore gid0 in test results

12 years agoAdd missing TRACE_RETURN
Behdad Esfahbod [Tue, 30 Oct 2012 02:03:55 +0000 (19:03 -0700)]
Add missing TRACE_RETURN

12 years agoAdd Ethiopic test case
Behdad Esfahbod [Tue, 30 Oct 2012 01:18:24 +0000 (18:18 -0700)]
Add Ethiopic test case

This sequence: U+120B,U+135F,U+120B with the Nyala font from Win7
exposes a GPOS bug in Uniscribe, in that the positioned mark is wrongly
moved as a result a following kern.

This is the one "failure" in the Ethiopic test suite :-).

ETHIOPIC: 118900 out of 118901 tests passed. 1 failed (0.000841036%)

12 years ago[Indic] Position pre-base reordering Ra after Chillus in Malayalam
Behdad Esfahbod [Mon, 29 Oct 2012 23:27:02 +0000 (16:27 -0700)]
[Indic] Position pre-base reordering Ra after Chillus in Malayalam

The logic for pre-base reordering follows the left matra logic.
We had an exception for Malayalam/Tamil in the left matra repositioning
which was not reflected in pre-base reordering.

Malayalam failures down from 337 to 323.

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: 1048011 out of 1048334 tests passed. 323 failed (0.0308108%)
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%)

12 years agoAdd missed file
Behdad Esfahbod [Mon, 29 Oct 2012 21:21:09 +0000 (14:21 -0700)]
Add missed file

12 years agoInclude config.h.in in tree
Behdad Esfahbod [Mon, 29 Oct 2012 17:56:04 +0000 (10:56 -0700)]
Include config.h.in in tree

I typically don't like including generating files in tree.  But like to
make an exception for this, since this forms the canonical list of
options one would need to go through when building with alternative
build systems.

12 years agoImprove license information
Behdad Esfahbod [Mon, 29 Oct 2012 04:26:19 +0000 (21:26 -0700)]
Improve license information

12 years agoMinor
Behdad Esfahbod [Mon, 29 Oct 2012 03:27:25 +0000 (20:27 -0700)]
Minor

12 years agoFix hb_buffer_set_length(buffer, 0)
Behdad Esfahbod [Mon, 29 Oct 2012 03:11:47 +0000 (20:11 -0700)]
Fix hb_buffer_set_length(buffer, 0)

Was causing invalid realloc()s.

12 years agoAdd XXX
Behdad Esfahbod [Mon, 29 Oct 2012 03:11:42 +0000 (20:11 -0700)]
Add XXX

12 years agoPort to ICU LayoutEngine C API
Behdad Esfahbod [Mon, 29 Oct 2012 02:18:11 +0000 (19:18 -0700)]
Port to ICU LayoutEngine C API

Incidentally, this makes it not crash with icu-le-hb anymore...
I'm not smart / stupid enough to spend two more days debugging C++
linking issues, and this is ABI-stable at least.

12 years agoRemove unused members
Behdad Esfahbod [Fri, 26 Oct 2012 20:48:06 +0000 (13:48 -0700)]
Remove unused members

12 years agoRename and revamp is_zero_width() to be is_default_ignorable()
Behdad Esfahbod [Thu, 25 Oct 2012 23:32:54 +0000 (16:32 -0700)]
Rename and revamp is_zero_width() to be is_default_ignorable()

That's really the logic desired.  Except that MONGOLIAN VOWEL SEPARATOR
is not default_ignorable but it really should be.  Reported to Unicode.

Based on suggestion from Konstantin Ritt.

12 years agoUpdate TODO
Behdad Esfahbod [Wed, 24 Oct 2012 21:02:15 +0000 (14:02 -0700)]
Update TODO

12 years ago0.9.5
Behdad Esfahbod [Sun, 14 Oct 2012 23:37:09 +0000 (18:37 -0500)]
0.9.5

12 years agoFixup hb_ot_shape_closure()
Behdad Esfahbod [Sun, 7 Oct 2012 21:19:58 +0000 (17:19 -0400)]
Fixup hb_ot_shape_closure()

Broke it when merged cmap mapping and normalizer.  Ouch!

12 years agoMark debug message functions static
Behdad Esfahbod [Sun, 7 Oct 2012 21:13:46 +0000 (17:13 -0400)]
Mark debug message functions static

12 years agoUpdate UCDN to upstream commit 3f159c87824230b59af56e40e2db32caf6afa51a
Behdad Esfahbod [Wed, 3 Oct 2012 00:44:43 +0000 (20:44 -0400)]
Update UCDN to upstream commit 3f159c87824230b59af56e40e2db32caf6afa51a

- Unicode 6.2.0 goodness,
- Unassigned codepoints now have correct properties.  Passes test suite.

12 years agoFix visibility of UCDN symbols
Behdad Esfahbod [Tue, 2 Oct 2012 21:42:13 +0000 (17:42 -0400)]
Fix visibility of UCDN symbols

12 years agoImport UCDN into source tree
Behdad Esfahbod [Tue, 2 Oct 2012 20:03:18 +0000 (16:03 -0400)]
Import UCDN into source tree

https://github.com/grigorig/ucdn

12 years agoRemove Glib thread-safety support
Behdad Esfahbod [Tue, 2 Oct 2012 18:59:00 +0000 (14:59 -0400)]
Remove Glib thread-safety support

Now that we have pthread detection in configure, we don't need Glib
anymore.  Glib will only be a Unicode data provider.

12 years agoCheck for pthreads
Behdad Esfahbod [Tue, 2 Oct 2012 18:55:32 +0000 (14:55 -0400)]
Check for pthreads

12 years agoAdd ax_pthread.m4
Behdad Esfahbod [Tue, 2 Oct 2012 18:46:34 +0000 (14:46 -0400)]
Add ax_pthread.m4

12 years agoAdd pkg.m4 to git repo
Behdad Esfahbod [Tue, 2 Oct 2012 18:46:04 +0000 (14:46 -0400)]
Add pkg.m4 to git repo

12 years agoAdd AC_CONFIG_MACRODIR
Behdad Esfahbod [Tue, 2 Oct 2012 18:44:47 +0000 (14:44 -0400)]
Add AC_CONFIG_MACRODIR

12 years ago[OT] Only insert dottedcircle if at the beginning of paragraph
Behdad Esfahbod [Wed, 26 Sep 2012 01:35:35 +0000 (21:35 -0400)]
[OT] Only insert dottedcircle if at the beginning of paragraph

If the first char in the run is a combining mark, but there is text
before the run, don't insert dottedcircle.

Part of addressing:
https://bugzilla.redhat.com/show_bug.cgi?id=858736

12 years ago[Arabic] Respect Arabic joining from neighboring context
Behdad Esfahbod [Wed, 26 Sep 2012 01:32:35 +0000 (21:32 -0400)]
[Arabic] Respect Arabic joining from neighboring context

Now we respect Arabic joining across runs.

12 years ago[buffer] Save pre/post textual context
Behdad Esfahbod [Tue, 25 Sep 2012 21:44:53 +0000 (17:44 -0400)]
[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.

12 years agoAdd hb_utf_prev()
Behdad Esfahbod [Tue, 25 Sep 2012 17:59:24 +0000 (13:59 -0400)]
Add hb_utf_prev()

12 years agoSlightly optimize UTF-8 parsing
Behdad Esfahbod [Tue, 25 Sep 2012 16:30:16 +0000 (12:30 -0400)]
Slightly optimize UTF-8 parsing

12 years ago[buffer] Cleanup / optimize UTF-16 parsing a bit
Behdad Esfahbod [Tue, 25 Sep 2012 16:26:12 +0000 (12:26 -0400)]
[buffer] Cleanup / optimize UTF-16 parsing a bit

12 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().

12 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.

12 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

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

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

12 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.

12 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.

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

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

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

Oh well...

12 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

12 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.

12 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()

12 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...

12 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.

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

12 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

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

12 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

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

12 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... ⻯

12 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%)

12 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%)

12 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.

12 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.

12 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%)

12 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

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

12 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

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

12 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