platform/upstream/libHarfBuzzSharp.git
12 years agoUpdate TODO
Behdad Esfahbod [Fri, 18 May 2012 00:15:49 +0000 (20:15 -0400)]
Update TODO

12 years ago[util] Add hb-ot-shape-closure tool
Behdad Esfahbod [Wed, 16 May 2012 03:53:18 +0000 (23:53 -0400)]
[util] Add hb-ot-shape-closure tool

Computes all the glyphs that may be generated given a font and
set of Unicode characters.

The order of the Unicode characters is irrelevant.

Sample output:

behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf f
f f_f

behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf i
i

behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf fi
f f_i f_f_i f_f i

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ب
uni0628 uni0628.init uni0628.medi uni0628.fina

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ا
uni0627 uni0627.fina

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با
uni0627 uni0627.fina uni0628 uni0628.init uni0628.medi uni0628.fina

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با --no-glyph-names
5 6 133 134 135 136

12 years ago[util] Refactor to accommodate for upcoming new tool
Behdad Esfahbod [Wed, 16 May 2012 03:10:39 +0000 (23:10 -0400)]
[util] Refactor to accommodate for upcoming new tool

12 years ago[Indic] Apply vatu feature after cjct
Behdad Esfahbod [Sun, 13 May 2012 16:09:29 +0000 (18:09 +0200)]
[Indic] Apply vatu feature after cjct

Testing with old Deva spec this reduces failures.
Test sequence: U+0915,U+094D,U+0930.

12 years agoMinor
Behdad Esfahbod [Sun, 13 May 2012 15:10:18 +0000 (17:10 +0200)]
Minor

12 years agoRefactor
Behdad Esfahbod [Sun, 13 May 2012 14:48:03 +0000 (16:48 +0200)]
Refactor

12 years agoRevert "[Indic] Refactoring"
Behdad Esfahbod [Sun, 13 May 2012 14:46:08 +0000 (16:46 +0200)]
Revert "[Indic] Refactoring"

This reverts commit 0831061efb78983b9c6e1e72574c977e56383c08.

12 years agoFix more warnings
Behdad Esfahbod [Sun, 13 May 2012 14:20:10 +0000 (16:20 +0200)]
Fix more warnings

12 years agoFix more unused-var warnings
Behdad Esfahbod [Sun, 13 May 2012 14:13:44 +0000 (16:13 +0200)]
Fix more unused-var warnings

12 years agoFix hb_face_set_index()
Behdad Esfahbod [Sun, 13 May 2012 14:04:36 +0000 (16:04 +0200)]
Fix hb_face_set_index()

12 years agoFix warnings
Behdad Esfahbod [Sun, 13 May 2012 14:01:08 +0000 (16:01 +0200)]
Fix warnings

12 years agoMinor
Behdad Esfahbod [Sun, 13 May 2012 13:54:43 +0000 (15:54 +0200)]
Minor

12 years agoAdd accessort to buffer for current info, current pos, and prev info
Behdad Esfahbod [Sun, 13 May 2012 13:45:18 +0000 (15:45 +0200)]
Add accessort to buffer for current info, current pos, and prev info

12 years agoMinor
Behdad Esfahbod [Sun, 13 May 2012 13:21:06 +0000 (15:21 +0200)]
Minor

12 years ago[GSUB/GPOS] Remove context_length
Behdad Esfahbod [Sun, 13 May 2012 13:17:51 +0000 (15:17 +0200)]
[GSUB/GPOS] Remove context_length

The spec doesn't say contextual matching should be done this way,
and AOTS doesn't do it either.  It was inherited from old HarfBuzz.
Remove it.

12 years agoMinor
Behdad Esfahbod [Sun, 13 May 2012 13:04:00 +0000 (15:04 +0200)]
Minor

12 years agoRemove ioctl checks
Behdad Esfahbod [Sun, 13 May 2012 11:03:44 +0000 (13:03 +0200)]
Remove ioctl checks

Ended up not using terminal size after all.

12 years ago[util] Set ansi color only on color change
Behdad Esfahbod [Sun, 13 May 2012 11:02:38 +0000 (13:02 +0200)]
[util] Set ansi color only on color change

12 years agoReduce default margin
Behdad Esfahbod [Sun, 13 May 2012 10:51:02 +0000 (12:51 +0200)]
Reduce default margin

12 years ago[util] Make hb-view print out Unicode art if stdout is a terminal
Behdad Esfahbod [Sun, 13 May 2012 00:02:58 +0000 (02:02 +0200)]
[util] Make hb-view print out Unicode art if stdout is a terminal

12 years agoMinor
Behdad Esfahbod [Sat, 12 May 2012 22:54:07 +0000 (00:54 +0200)]
Minor

12 years ago[util] Make tools default to stdin if no text is provided
Behdad Esfahbod [Sat, 12 May 2012 13:54:27 +0000 (15:54 +0200)]
[util] Make tools default to stdin if no text is provided

One less argument to type in typical testing workflow!

12 years ago[util] Change default font size of hb-view to 256
Behdad Esfahbod [Sat, 12 May 2012 13:41:48 +0000 (15:41 +0200)]
[util] Change default font size of hb-view to 256

Most common usecase of hb-view is to test rendering of short words for
testing / inspection.  Not having to type "--font-size 150" each time
isn't such a bad idea...

12 years agoFix compiler warnings
Behdad Esfahbod [Sat, 12 May 2012 13:40:11 +0000 (15:40 +0200)]
Fix compiler warnings

12 years ago[test] Make tool usage easier by not requiring "--stdin"
Behdad Esfahbod [Sat, 12 May 2012 13:34:40 +0000 (15:34 +0200)]
[test] Make tool usage easier by not requiring "--stdin"

Just default to it.  Added "--help" instead to get usage.

12 years ago[Indic] Add more Malayalam tests
Behdad Esfahbod [Sat, 12 May 2012 11:34:18 +0000 (13:34 +0200)]
[Indic] Add more Malayalam tests

12 years agoFix compiler warnings
Behdad Esfahbod [Fri, 11 May 2012 21:10:31 +0000 (23:10 +0200)]
Fix compiler warnings

12 years ago[Indic] Unbreak Devanagari
Behdad Esfahbod [Fri, 11 May 2012 20:00:06 +0000 (22:00 +0200)]
[Indic] Unbreak Devanagari

And this, concludes the HarfBuzz Massala Hackfest.

I like to specially thank Jonathan Kew for doing all the decription and
letting me get commit points.

12 years ago[Indic] Disambiguate sub vs post vs above matras
Behdad Esfahbod [Fri, 11 May 2012 19:42:27 +0000 (21:42 +0200)]
[Indic] Disambiguate sub vs post vs above matras

Bengali is at *just* above 5% now.

12 years ago[Indic] Position Bengali Reph before matras
Behdad Esfahbod [Fri, 11 May 2012 19:36:32 +0000 (21:36 +0200)]
[Indic] Position Bengali Reph before matras

12 years ago[Indic] Start categorizing Reph per script
Behdad Esfahbod [Fri, 11 May 2012 19:10:03 +0000 (21:10 +0200)]
[Indic] Start categorizing Reph per script

12 years ago[Indic] Apply 'init' feature for Bengali
Behdad Esfahbod [Fri, 11 May 2012 18:59:26 +0000 (20:59 +0200)]
[Indic] Apply 'init' feature for Bengali

Error down from 20% to 7%.

12 years ago[Indic] Refactor for the arrival of 'init' feature
Behdad Esfahbod [Fri, 11 May 2012 18:50:53 +0000 (20:50 +0200)]
[Indic] Refactor for the arrival of 'init' feature

Yep, on Bengali now!

12 years ago[Indic] Add Uniscribe bug feature for dotted circle
Behdad Esfahbod [Fri, 11 May 2012 18:02:14 +0000 (20:02 +0200)]
[Indic] Add Uniscribe bug feature for dotted circle

For dotted-circle independent clusters, Uniscribe does no Reph shaping
for the exact sequence Ra+Halant+25CC.  Which also is the only possible
sequence with 25CC at the end.

12 years ago[Indic] Add tests for dottedcircle
Behdad Esfahbod [Fri, 11 May 2012 17:55:42 +0000 (19:55 +0200)]
[Indic] Add tests for dottedcircle

12 years ago[Indic] Refactoring
Behdad Esfahbod [Fri, 11 May 2012 17:07:58 +0000 (19:07 +0200)]
[Indic] Refactoring

12 years agoMinor
Behdad Esfahbod [Fri, 11 May 2012 16:58:57 +0000 (18:58 +0200)]
Minor

12 years ago[Indic] Allow multiple Consonants in Vowel/NBSP syllables
Behdad Esfahbod [Fri, 11 May 2012 16:46:35 +0000 (18:46 +0200)]
[Indic] Allow multiple Consonants in Vowel/NBSP syllables

Uniscribe allows multiple Halant+Consonant after a Vowel.
Tests:
↦       * U+0905,U+094D,U+092B,U+094D,930,94d,930

12 years ago[Indic] Allow two Nuktas per consonant
Behdad Esfahbod [Fri, 11 May 2012 16:13:42 +0000 (18:13 +0200)]
[Indic] Allow two Nuktas per consonant

Uniscribe allows up to two nuktas per consonant and one per matra. It does so
indepent of whether the consonant already has a nukta in it.  Tests:

        * U+0916,U+093C,U+0941
        * U+0959,U+093C,U+0941
        * U+0916,U+093C,U+093C,U+0941
        * U+0959,U+093C,U+093C,U+0941
        * U+0916,U+093C,U+093C,U+093C,U+0941
        * U+0959,U+093C,U+093C,U+093C,U+0941
        * 915,93c,93c,,94d,U+0916,U+093C,U+093C,U+093e,93c,93c

12 years ago[Indic] Fix U+0952 and similar classification to match Uniscribe
Behdad Esfahbod [Fri, 11 May 2012 15:54:26 +0000 (17:54 +0200)]
[Indic] Fix U+0952 and similar classification to match Uniscribe

See comments.

12 years ago[Indic] Treat U+0951..U+0954 all similar to U+0952
Behdad Esfahbod [Fri, 11 May 2012 15:30:48 +0000 (17:30 +0200)]
[Indic] Treat U+0951..U+0954 all similar to U+0952

12 years ago[GSUB/GPOS/Indic] Apply GSUB/GPOS within syllables only
Behdad Esfahbod [Fri, 11 May 2012 15:29:40 +0000 (17:29 +0200)]
[GSUB/GPOS/Indic] Apply GSUB/GPOS within syllables only

This does not apply to the context matchings.

This regresses tests right now.  And we are not sure whether this is
the right thing to do for GPOS.  But we'll figure out.

12 years ago[GSUB/GPOS] Fix wrong buffer access in backward skippy mask matching
Behdad Esfahbod [Fri, 11 May 2012 15:18:37 +0000 (17:18 +0200)]
[GSUB/GPOS] Fix wrong buffer access in backward skippy mask matching

12 years ago[Indic] Don't use syllable serial value 0
Behdad Esfahbod [Fri, 11 May 2012 15:07:08 +0000 (17:07 +0200)]
[Indic] Don't use syllable serial value 0

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