platform/upstream/libHarfBuzzSharp.git
12 years ago[Indic] Implement Uniscribe Reph+Matra+Halant bug feature
Behdad Esfahbod [Fri, 11 May 2012 14:54:40 +0000 (16:54 +0200)]
[Indic] Implement Uniscribe Reph+Matra+Halant bug feature

12 years ago[Indic] Add example of different Uniscribe behavior
Behdad Esfahbod [Fri, 11 May 2012 14:51:23 +0000 (16:51 +0200)]
[Indic] Add example of different Uniscribe behavior

12 years ago[Indic] Add runtime Uniscribe bug compatibility mode!
Behdad Esfahbod [Fri, 11 May 2012 14:43:12 +0000 (16:43 +0200)]
[Indic] Add runtime Uniscribe bug compatibility mode!

Enable by setting envvar:

  HB_OT_INDIC_OPTIONS=uniscribe-bug-compatible

Plus, LeftMatra+Halant "feature".

12 years ago[Indic] Add #define UNISCRIBE_BUG_COMPATIBLE 1
Behdad Esfahbod [Fri, 11 May 2012 14:25:02 +0000 (16:25 +0200)]
[Indic] Add #define UNISCRIBE_BUG_COMPATIBLE 1

12 years ago[Indic] Fix Left Matra + Halant reordering
Behdad Esfahbod [Fri, 11 May 2012 14:23:43 +0000 (16:23 +0200)]
[Indic] Fix Left Matra + Halant reordering

As can be seen in: U+092B,U+093F,U+094D

12 years agoMinor
Behdad Esfahbod [Fri, 11 May 2012 14:23:38 +0000 (16:23 +0200)]
Minor

12 years ago[Indic] Add test for Left Matra with Halant
Behdad Esfahbod [Fri, 11 May 2012 14:22:46 +0000 (16:22 +0200)]
[Indic] Add test for Left Matra with Halant

Uniscribe doesn't move the Halant, we do.  And do a broken job of it now.

12 years ago[GSUB/GPOS] Check all glyph masks when matching input
Behdad Esfahbod [Fri, 11 May 2012 14:01:44 +0000 (16:01 +0200)]
[GSUB/GPOS] Check all glyph masks when matching input

12 years ago[Indic] Apply Reph mask to all POS_REPH glyphs
Behdad Esfahbod [Fri, 11 May 2012 13:34:13 +0000 (15:34 +0200)]
[Indic] Apply Reph mask to all POS_REPH glyphs

Needed for upcoming changes to GSUB/GPOS mask matching.

12 years ago[Indic] Fix state machine to backtrack
Behdad Esfahbod [Fri, 11 May 2012 12:39:01 +0000 (14:39 +0200)]
[Indic] Fix state machine to backtrack

12 years ago[Indic] Move syllable tracking from Indic to generic layer
Behdad Esfahbod [Fri, 11 May 2012 09:41:39 +0000 (11:41 +0200)]
[Indic] Move syllable tracking from Indic to generic layer

This is to incorporate it into GSUB/GPOS processing.

12 years ago[Indic] Disable conjuncts when a ZWJ happens
Behdad Esfahbod [Fri, 11 May 2012 09:17:23 +0000 (11:17 +0200)]
[Indic] Disable conjuncts when a ZWJ happens

Not that the code makes any difference since the presence of ZWJ itself
causes the ligature to fail to match anyway.

12 years ago[Indic] Fix bitops typo!
Behdad Esfahbod [Fri, 11 May 2012 09:07:40 +0000 (11:07 +0200)]
[Indic] Fix bitops typo!

Another 1000 down!

12 years agoMake APPLY debug output print current index and codepoint
Behdad Esfahbod [Fri, 11 May 2012 01:45:28 +0000 (03:45 +0200)]
Make APPLY debug output print current index and codepoint

Yay!

12 years agoMinor
Behdad Esfahbod [Fri, 11 May 2012 01:40:58 +0000 (03:40 +0200)]
Minor

12 years agoSome more...
Behdad Esfahbod [Fri, 11 May 2012 01:35:08 +0000 (03:35 +0200)]
Some more...

Done.  I promise.

12 years agoMore beauty in debug output!
Behdad Esfahbod [Fri, 11 May 2012 01:33:36 +0000 (03:33 +0200)]
More beauty in debug output!

12 years agoFinish off debug output beautification
Behdad Esfahbod [Fri, 11 May 2012 01:16:57 +0000 (03:16 +0200)]
Finish off debug output beautification

12 years agoOnly print class name in debug output if there's one available
Behdad Esfahbod [Fri, 11 May 2012 00:46:26 +0000 (02:46 +0200)]
Only print class name in debug output if there's one available

12 years agoOnly printout class name in tracing, if one is available
Behdad Esfahbod [Fri, 11 May 2012 00:40:42 +0000 (02:40 +0200)]
Only printout class name in tracing, if one is available

Makes debug output much more pleasant.

12 years agoMinor
Behdad Esfahbod [Fri, 11 May 2012 00:34:06 +0000 (02:34 +0200)]
Minor

12 years agoAdd return annotation for APPLY
Behdad Esfahbod [Fri, 11 May 2012 00:33:11 +0000 (02:33 +0200)]
Add return annotation for APPLY

12 years ago/Minor/
Behdad Esfahbod [Fri, 11 May 2012 00:19:41 +0000 (02:19 +0200)]
/Minor/

12 years agoAnnotate SANITIZE return values
Behdad Esfahbod [Thu, 10 May 2012 23:25:34 +0000 (01:25 +0200)]
Annotate SANITIZE return values

More to come, for APPLY, CLOSURE, etc.

12 years agoMinor
Behdad Esfahbod [Thu, 10 May 2012 22:52:16 +0000 (00:52 +0200)]
Minor

12 years agoCode reshuffling
Behdad Esfahbod [Thu, 10 May 2012 22:50:38 +0000 (00:50 +0200)]
Code reshuffling

12 years agoBeautify debug output
Behdad Esfahbod [Thu, 10 May 2012 22:16:40 +0000 (00:16 +0200)]
Beautify debug output

12 years agoMore massaging trace messaging
Behdad Esfahbod [Thu, 10 May 2012 21:24:43 +0000 (23:24 +0200)]
More massaging trace messaging

12 years agoMinor
Behdad Esfahbod [Thu, 10 May 2012 21:09:48 +0000 (23:09 +0200)]
Minor

12 years agoBetter trace message support infrastructure
Behdad Esfahbod [Thu, 10 May 2012 21:06:58 +0000 (23:06 +0200)]
Better trace message support infrastructure

We have varargs in the trace interface now.  To be used soon...

12 years ago[Indic] Towards better Reph positioning
Behdad Esfahbod [Thu, 10 May 2012 19:44:50 +0000 (21:44 +0200)]
[Indic] Towards better Reph positioning

Fixed for Deva cases with two full-form consonants.  Failures **way** down.
Not much left to go :-).

12 years ago[Indic] Add Ra back for scripts without Reph
Behdad Esfahbod [Thu, 10 May 2012 19:20:37 +0000 (21:20 +0200)]
[Indic] Add Ra back for scripts without Reph

We now check that the 'rphp' table exists before forming Reph, so
we don't need to comment out Ra for those scripts.

12 years ago[Indic] Add note re Uniscribe clusters
Behdad Esfahbod [Thu, 10 May 2012 16:38:22 +0000 (18:38 +0200)]
[Indic] Add note re Uniscribe clusters

12 years ago[Indic] Do clustering like Uniscribe does
Behdad Esfahbod [Thu, 10 May 2012 16:34:34 +0000 (18:34 +0200)]
[Indic] Do clustering like Uniscribe does

Hindi Wikipedia failures down to 6639 (0.938381%)!

12 years ago[Indic] Add test for matra group
Behdad Esfahbod [Thu, 10 May 2012 16:31:17 +0000 (18:31 +0200)]
[Indic] Add test for matra group

The spec says: "[{M}+[N]+[H]]", and that's what Uniscribe implements.
We instead do: "{M+[N]+[H]}", which means we allow Nukta and Halant
after all Matras, not just the last one.  It makes more sense.

12 years ago[Indic] Reorder Reph to before the Halant after Matras
Behdad Esfahbod [Thu, 10 May 2012 13:41:04 +0000 (15:41 +0200)]
[Indic] Reorder Reph to before the Halant after Matras

Uniscribe doesn't do it, but we want to do as it gives the Reph the
opportunity to interact with the Matras.  Test with mangal for example.
Sequence: <0930,094d,0915,094b,094d>
In test suite already.

12 years ago[Indic] Don't clear the mask for Reph
Behdad Esfahbod [Thu, 10 May 2012 13:28:27 +0000 (15:28 +0200)]
[Indic] Don't clear the mask for Reph

This was removing the mandatory global 1 bit in the mask and hence
disabling GPOS for Reph!

12 years ago[Indic] Improve Left Matra repositioning
Behdad Esfahbod [Thu, 10 May 2012 12:48:25 +0000 (14:48 +0200)]
[Indic] Improve Left Matra repositioning

Move its dependents too.

12 years ago[Indic] Add tricky reordering test cases
Behdad Esfahbod [Thu, 10 May 2012 12:43:53 +0000 (14:43 +0200)]
[Indic] Add tricky reordering test cases

In the case of Consonant,LeftMatra,Halant, Uniscribe leaves the Halant
where it is, but we want to move it with the Matra as that makes more
logical sense.

12 years ago[Indic] Do Reph repositioning in final reordering like the spec says
Behdad Esfahbod [Thu, 10 May 2012 11:45:52 +0000 (13:45 +0200)]
[Indic] Do Reph repositioning in final reordering like the spec says

This introduced a failure, which we tracked down to a test case like this:

  U+092E,U+094B,U+094D,U+0930

The final character is a Ra that should be put in a syllable of it's
own.  And we do.  But it will interact with the Halant before it.  So
now we finally are convinced that we have to limit features to syllable
boundaries.  That's coming after lunch!

12 years agoMinor
Behdad Esfahbod [Thu, 10 May 2012 11:09:08 +0000 (13:09 +0200)]
Minor

12 years ago[Indic] Reorder left matras to be closer to base
Behdad Esfahbod [Thu, 10 May 2012 10:53:53 +0000 (12:53 +0200)]
[Indic] Reorder left matras to be closer to base

12 years ago[Indic] Treat the standalone cluster case reusing the consonant logic
Behdad Esfahbod [Thu, 10 May 2012 10:20:21 +0000 (12:20 +0200)]
[Indic] Treat the standalone cluster case reusing the consonant logic

12 years ago[Indic] Minor
Behdad Esfahbod [Thu, 10 May 2012 10:17:16 +0000 (12:17 +0200)]
[Indic] Minor

12 years ago[Indic] Handle Vowel syllables
Behdad Esfahbod [Thu, 10 May 2012 10:07:33 +0000 (12:07 +0200)]
[Indic] Handle Vowel syllables

Reusing the consonant logic!

12 years ago[Indic] Simplify Reph logic
Behdad Esfahbod [Thu, 10 May 2012 09:41:51 +0000 (11:41 +0200)]
[Indic] Simplify Reph logic

12 years ago[Indic] Don't form Reph is Ra is the only consonant in the syllable
Behdad Esfahbod [Thu, 10 May 2012 09:37:42 +0000 (11:37 +0200)]
[Indic] Don't form Reph is Ra is the only consonant in the syllable

12 years ago[Indic] Increase max syllable length
Behdad Esfahbod [Thu, 10 May 2012 09:32:52 +0000 (11:32 +0200)]
[Indic] Increase max syllable length

20 was way too low, one could hit a syllable with 7ish consonants with it.

12 years ago[Indic] Adjust base after sorting
Behdad Esfahbod [Thu, 10 May 2012 09:31:20 +0000 (11:31 +0200)]
[Indic] Adjust base after sorting

12 years ago[Indic] Don't return for long syllables. Just not sort.
Behdad Esfahbod [Thu, 10 May 2012 08:51:38 +0000 (10:51 +0200)]
[Indic] Don't return for long syllables.  Just not sort.

12 years agoFix Uniscribe clusters with multiple items
Behdad Esfahbod [Wed, 9 May 2012 17:10:07 +0000 (19:10 +0200)]
Fix Uniscribe clusters with multiple items

12 years ago[Indic] Don't give up syllable parsing upon junk
Behdad Esfahbod [Wed, 9 May 2012 16:57:37 +0000 (18:57 +0200)]
[Indic] Don't give up syllable parsing upon junk

12 years ago[Indic] Towards multi-cluster syllables and final reordering
Behdad Esfahbod [Wed, 9 May 2012 15:56:03 +0000 (17:56 +0200)]
[Indic] Towards multi-cluster syllables and final reordering

12 years agoCombine lig_id and lig_comp into one byte, to free up one for Indic
Behdad Esfahbod [Wed, 9 May 2012 15:53:13 +0000 (17:53 +0200)]
Combine lig_id and lig_comp into one byte, to free up one for Indic

12 years agoMinor
Behdad Esfahbod [Wed, 9 May 2012 15:40:00 +0000 (17:40 +0200)]
Minor

12 years ago[Indic] Make room for more reordering positions
Behdad Esfahbod [Wed, 9 May 2012 15:24:39 +0000 (17:24 +0200)]
[Indic] Make room for more reordering positions

12 years ago[Indic] Improve matra vs consonant ordering
Behdad Esfahbod [Wed, 9 May 2012 13:56:35 +0000 (15:56 +0200)]
[Indic] Improve matra vs consonant ordering

Another 1.5% down.

12 years ago[Indic] Categorize Anudatta
Behdad Esfahbod [Wed, 9 May 2012 13:41:51 +0000 (15:41 +0200)]
[Indic] Categorize Anudatta

12 years ago[Indic] Add joiner test cases for Devanagari
Behdad Esfahbod [Wed, 9 May 2012 13:27:56 +0000 (15:27 +0200)]
[Indic] Add joiner test cases for Devanagari

12 years ago[Indic] Make sure Reph jumps over all matras to the right
Behdad Esfahbod [Wed, 9 May 2012 13:21:13 +0000 (15:21 +0200)]
[Indic] Make sure Reph jumps over all matras to the right

Another 12 thousand failures gone! (78 to go)

12 years ago[Indic] Keep Vedic signs at the right too
Behdad Esfahbod [Wed, 9 May 2012 13:04:58 +0000 (15:04 +0200)]
[Indic] Keep Vedic signs at the right too

12 years agoReplace zerowidth invisible chars with a zero-advance space glyph
Behdad Esfahbod [Wed, 9 May 2012 13:04:13 +0000 (15:04 +0200)]
Replace zerowidth invisible chars with a zero-advance space glyph

Like Uniscribe does.

12 years ago[indic] Keep the syllable modifier marks to the right
Behdad Esfahbod [Wed, 9 May 2012 11:23:27 +0000 (13:23 +0200)]
[indic] Keep the syllable modifier marks to the right

Shaping failures on Hindi Wikipedia go down from 25% to 14%!

12 years agoMinor
Behdad Esfahbod [Wed, 9 May 2012 10:37:27 +0000 (12:37 +0200)]
Minor

12 years agoMinor
Behdad Esfahbod [Wed, 9 May 2012 10:03:09 +0000 (12:03 +0200)]
Minor

12 years ago[indic] Better Reph matching
Behdad Esfahbod [Wed, 9 May 2012 09:43:43 +0000 (11:43 +0200)]
[indic] Better Reph matching

12 years agoMinor
Behdad Esfahbod [Wed, 9 May 2012 09:38:31 +0000 (11:38 +0200)]
Minor

12 years ago[indic] Apply Indic features in order
Behdad Esfahbod [Wed, 9 May 2012 09:07:18 +0000 (11:07 +0200)]
[indic] Apply Indic features in order

12 years ago[indic] Apply rakaar forms
Behdad Esfahbod [Wed, 9 May 2012 09:06:47 +0000 (11:06 +0200)]
[indic] Apply rakaar forms

Fixes 10% of the failures against all of Hindi Wikipedia!

12 years agoAdd hb-diff-ngrams
Behdad Esfahbod [Wed, 9 May 2012 07:54:54 +0000 (09:54 +0200)]
Add hb-diff-ngrams

12 years agoAdd N-gram generator
Behdad Esfahbod [Wed, 9 May 2012 06:57:29 +0000 (08:57 +0200)]
Add N-gram generator

12 years agoUse groupby()
Behdad Esfahbod [Wed, 9 May 2012 06:16:15 +0000 (08:16 +0200)]
Use groupby()

12 years agoAdd hb-diff-stat
Behdad Esfahbod [Wed, 9 May 2012 05:45:17 +0000 (07:45 +0200)]
Add hb-diff-stat

12 years agoMake hb-diff-filter-failtures retain all test info for failed tests
Behdad Esfahbod [Wed, 9 May 2012 05:30:07 +0000 (07:30 +0200)]
Make hb-diff-filter-failtures retain all test info for failed tests

12 years agoAdd hb-diff-colorize
Behdad Esfahbod [Tue, 8 May 2012 21:41:41 +0000 (23:41 +0200)]
Add hb-diff-colorize

Accepts --format=html now.

12 years agoCleanup diff
Behdad Esfahbod [Tue, 8 May 2012 20:44:21 +0000 (22:44 +0200)]
Cleanup diff

Doesn't do --color anymore.  That will go into a new hb-diff-colorize
tool.

12 years agoMake hb-diff faster
Behdad Esfahbod [Tue, 8 May 2012 17:38:49 +0000 (19:38 +0200)]
Make hb-diff faster

12 years agoMore tests
Behdad Esfahbod [Tue, 8 May 2012 16:55:29 +0000 (18:55 +0200)]
More tests

12 years agoFix warning and build issues
Behdad Esfahbod [Sat, 5 May 2012 20:38:20 +0000 (22:38 +0200)]
Fix warning and build issues

As reported by Jonathan Kew on the list.

12 years agoMinor
Behdad Esfahbod [Wed, 25 Apr 2012 04:14:46 +0000 (00:14 -0400)]
Minor

12 years agoAdd hb_ot_shape_glyphs_closure()
Behdad Esfahbod [Tue, 24 Apr 2012 20:56:37 +0000 (16:56 -0400)]
Add hb_ot_shape_glyphs_closure()

Experimental API for now.

12 years agoMinor
Behdad Esfahbod [Tue, 24 Apr 2012 20:02:12 +0000 (16:02 -0400)]
Minor

12 years agoMinor
Behdad Esfahbod [Tue, 24 Apr 2012 20:01:30 +0000 (16:01 -0400)]
Minor

12 years agoAdd test caes for a minority language using Bengali
Behdad Esfahbod [Tue, 24 Apr 2012 20:00:50 +0000 (16:00 -0400)]
Add test caes for a minority language using Bengali

U+0985 BENGALI LETTER A followed by U+09D7 BENGALI AU LENGTH MARK.
According to Bobby de Vos on the mailing list, this results in a dotted
circle with most shaping engines, but is a legitimate sequence in this
minority language.

We reached the consensus on the list to NOT implement dotted-circle
in HarfBuzz.

12 years agoAdd a few more set operations
Behdad Esfahbod [Tue, 24 Apr 2012 18:21:15 +0000 (14:21 -0400)]
Add a few more set operations

TODO: Tests for hb_set_t.

12 years agoMake closure() return void
Behdad Esfahbod [Tue, 24 Apr 2012 03:03:12 +0000 (23:03 -0400)]
Make closure() return void

12 years agoAdd hb_set_t
Behdad Esfahbod [Tue, 24 Apr 2012 02:41:09 +0000 (22:41 -0400)]
Add hb_set_t

12 years agoUpdate copyright headers
Behdad Esfahbod [Tue, 24 Apr 2012 02:26:13 +0000 (22:26 -0400)]
Update copyright headers

12 years agoRename hb_glyph_map_t to hb_set_t
Behdad Esfahbod [Tue, 24 Apr 2012 02:23:17 +0000 (22:23 -0400)]
Rename hb_glyph_map_t to hb_set_t

12 years agoImprove clustering
Behdad Esfahbod [Tue, 24 Apr 2012 02:20:14 +0000 (22:20 -0400)]
Improve clustering

12 years agoMinor
Behdad Esfahbod [Tue, 24 Apr 2012 02:18:54 +0000 (22:18 -0400)]
Minor

12 years agoAdd map->substitute_closure()
Behdad Esfahbod [Mon, 23 Apr 2012 21:21:14 +0000 (17:21 -0400)]
Add map->substitute_closure()

12 years agoImplement closure() for Context and ChainContext lookups
Behdad Esfahbod [Mon, 23 Apr 2012 20:54:58 +0000 (16:54 -0400)]
Implement closure() for Context and ChainContext lookups

12 years agoFlesh out closure() for GSUB
Behdad Esfahbod [Mon, 23 Apr 2012 19:28:35 +0000 (15:28 -0400)]
Flesh out closure() for GSUB

The GSUBGPOS part still missing.

12 years agoFix Coverage iters
Behdad Esfahbod [Mon, 23 Apr 2012 18:21:33 +0000 (14:21 -0400)]
Fix Coverage iters

12 years agoMinor
Behdad Esfahbod [Mon, 23 Apr 2012 17:20:52 +0000 (13:20 -0400)]
Minor

12 years agoMinor refactoring
Behdad Esfahbod [Mon, 23 Apr 2012 17:17:09 +0000 (13:17 -0400)]
Minor refactoring

12 years agoAdd "closure" operation stubs to GSUB
Behdad Esfahbod [Mon, 23 Apr 2012 17:04:38 +0000 (13:04 -0400)]
Add "closure" operation stubs to GSUB

Filling in.

12 years agoAdd Coverage iterators
Behdad Esfahbod [Mon, 23 Apr 2012 17:02:14 +0000 (13:02 -0400)]
Add Coverage iterators

12 years agoAdd Indic inspection tool
Behdad Esfahbod [Fri, 20 Apr 2012 02:34:06 +0000 (22:34 -0400)]
Add Indic inspection tool