Behdad Esfahbod [Thu, 24 May 2012 14:46:39 +0000 (10:46 -0400)]
Fix hb_atomic_int_set() implementation for HB_NO_MT
As pointed out by Jonathan Kew.
Behdad Esfahbod [Thu, 24 May 2012 02:00:25 +0000 (22:00 -0400)]
Update TODO
Behdad Esfahbod [Thu, 24 May 2012 01:50:43 +0000 (21:50 -0400)]
Add Arabic diacritics tests
Behdad Esfahbod [Wed, 23 May 2012 02:12:22 +0000 (22:12 -0400)]
Fix substitution glyph class propagation
The old code was doing nothing.
Still got to find an example font+string that makes this matter, but
need this for fixing synthetic GDEF anyway.
Behdad Esfahbod [Fri, 18 May 2012 19:04:35 +0000 (15:04 -0400)]
Add CJK Compatibility Ideographs tests
From:
http://people.mozilla.org/~jdaggett/tests/cjkcompat.html
Behdad Esfahbod [Fri, 18 May 2012 02:04:45 +0000 (22:04 -0400)]
Add a lock-free cache type for int->int functions
To be used for cmap and advance caching if desired.
Behdad Esfahbod [Fri, 18 May 2012 02:02:08 +0000 (22:02 -0400)]
Implement hb_atomic_int_set() for OS X
Behdad Esfahbod [Fri, 18 May 2012 01:53:24 +0000 (21:53 -0400)]
Minor
Behdad Esfahbod [Fri, 18 May 2012 01:23:49 +0000 (21:23 -0400)]
Add hb_atomic_int_set() again
Behdad Esfahbod [Fri, 18 May 2012 01:01:04 +0000 (21:01 -0400)]
Fix type conflicts on Windows without glib
Behdad Esfahbod [Fri, 18 May 2012 00:55:12 +0000 (20:55 -0400)]
Don't use min/max as function names
They can be macros on some systems. Eg. mingw32.
Behdad Esfahbod [Fri, 18 May 2012 00:50:38 +0000 (20:50 -0400)]
Prefer native atomic/mutex ops to glib's
Behdad Esfahbod [Fri, 18 May 2012 00:30:46 +0000 (20:30 -0400)]
Move atomic ops into their own header
Behdad Esfahbod [Fri, 18 May 2012 00:15:49 +0000 (20:15 -0400)]
Update TODO
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
Behdad Esfahbod [Wed, 16 May 2012 03:10:39 +0000 (23:10 -0400)]
[util] Refactor to accommodate for upcoming new tool
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.
Behdad Esfahbod [Sun, 13 May 2012 15:10:18 +0000 (17:10 +0200)]
Minor
Behdad Esfahbod [Sun, 13 May 2012 14:48:03 +0000 (16:48 +0200)]
Refactor
Behdad Esfahbod [Sun, 13 May 2012 14:46:08 +0000 (16:46 +0200)]
Revert "[Indic] Refactoring"
This reverts commit
0831061efb78983b9c6e1e72574c977e56383c08.
Behdad Esfahbod [Sun, 13 May 2012 14:20:10 +0000 (16:20 +0200)]
Fix more warnings
Behdad Esfahbod [Sun, 13 May 2012 14:13:44 +0000 (16:13 +0200)]
Fix more unused-var warnings
Behdad Esfahbod [Sun, 13 May 2012 14:04:36 +0000 (16:04 +0200)]
Fix hb_face_set_index()
Behdad Esfahbod [Sun, 13 May 2012 14:01:08 +0000 (16:01 +0200)]
Fix warnings
Behdad Esfahbod [Sun, 13 May 2012 13:54:43 +0000 (15:54 +0200)]
Minor
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
Behdad Esfahbod [Sun, 13 May 2012 13:21:06 +0000 (15:21 +0200)]
Minor
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.
Behdad Esfahbod [Sun, 13 May 2012 13:04:00 +0000 (15:04 +0200)]
Minor
Behdad Esfahbod [Sun, 13 May 2012 11:03:44 +0000 (13:03 +0200)]
Remove ioctl checks
Ended up not using terminal size after all.
Behdad Esfahbod [Sun, 13 May 2012 11:02:38 +0000 (13:02 +0200)]
[util] Set ansi color only on color change
Behdad Esfahbod [Sun, 13 May 2012 10:51:02 +0000 (12:51 +0200)]
Reduce default margin
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
Behdad Esfahbod [Sat, 12 May 2012 22:54:07 +0000 (00:54 +0200)]
Minor
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!
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...
Behdad Esfahbod [Sat, 12 May 2012 13:40:11 +0000 (15:40 +0200)]
Fix compiler warnings
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.
Behdad Esfahbod [Sat, 12 May 2012 11:34:18 +0000 (13:34 +0200)]
[Indic] Add more Malayalam tests
Behdad Esfahbod [Fri, 11 May 2012 21:10:31 +0000 (23:10 +0200)]
Fix compiler warnings
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.
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.
Behdad Esfahbod [Fri, 11 May 2012 19:36:32 +0000 (21:36 +0200)]
[Indic] Position Bengali Reph before matras
Behdad Esfahbod [Fri, 11 May 2012 19:10:03 +0000 (21:10 +0200)]
[Indic] Start categorizing Reph per script
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%.
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!
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.
Behdad Esfahbod [Fri, 11 May 2012 17:55:42 +0000 (19:55 +0200)]
[Indic] Add tests for dottedcircle
Behdad Esfahbod [Fri, 11 May 2012 17:07:58 +0000 (19:07 +0200)]
[Indic] Refactoring
Behdad Esfahbod [Fri, 11 May 2012 16:58:57 +0000 (18:58 +0200)]
Minor
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
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
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.
Behdad Esfahbod [Fri, 11 May 2012 15:30:48 +0000 (17:30 +0200)]
[Indic] Treat U+0951..U+0954 all similar to U+0952
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.
Behdad Esfahbod [Fri, 11 May 2012 15:18:37 +0000 (17:18 +0200)]
[GSUB/GPOS] Fix wrong buffer access in backward skippy mask matching
Behdad Esfahbod [Fri, 11 May 2012 15:07:08 +0000 (17:07 +0200)]
[Indic] Don't use syllable serial value 0
Behdad Esfahbod [Fri, 11 May 2012 14:54:40 +0000 (16:54 +0200)]
[Indic] Implement Uniscribe Reph+Matra+Halant bug feature
Behdad Esfahbod [Fri, 11 May 2012 14:51:23 +0000 (16:51 +0200)]
[Indic] Add example of different Uniscribe behavior
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".
Behdad Esfahbod [Fri, 11 May 2012 14:25:02 +0000 (16:25 +0200)]
[Indic] Add #define UNISCRIBE_BUG_COMPATIBLE 1
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
Behdad Esfahbod [Fri, 11 May 2012 14:23:38 +0000 (16:23 +0200)]
Minor
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.
Behdad Esfahbod [Fri, 11 May 2012 14:01:44 +0000 (16:01 +0200)]
[GSUB/GPOS] Check all glyph masks when matching input
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.
Behdad Esfahbod [Fri, 11 May 2012 12:39:01 +0000 (14:39 +0200)]
[Indic] Fix state machine to backtrack
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.
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.
Behdad Esfahbod [Fri, 11 May 2012 09:07:40 +0000 (11:07 +0200)]
[Indic] Fix bitops typo!
Another 1000 down!
Behdad Esfahbod [Fri, 11 May 2012 01:45:28 +0000 (03:45 +0200)]
Make APPLY debug output print current index and codepoint
Yay!
Behdad Esfahbod [Fri, 11 May 2012 01:40:58 +0000 (03:40 +0200)]
Minor
Behdad Esfahbod [Fri, 11 May 2012 01:35:08 +0000 (03:35 +0200)]
Some more...
Done. I promise.
Behdad Esfahbod [Fri, 11 May 2012 01:33:36 +0000 (03:33 +0200)]
More beauty in debug output!
Behdad Esfahbod [Fri, 11 May 2012 01:16:57 +0000 (03:16 +0200)]
Finish off debug output beautification
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
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.
Behdad Esfahbod [Fri, 11 May 2012 00:34:06 +0000 (02:34 +0200)]
Minor
Behdad Esfahbod [Fri, 11 May 2012 00:33:11 +0000 (02:33 +0200)]
Add return annotation for APPLY
Behdad Esfahbod [Fri, 11 May 2012 00:19:41 +0000 (02:19 +0200)]
/Minor/
Behdad Esfahbod [Thu, 10 May 2012 23:25:34 +0000 (01:25 +0200)]
Annotate SANITIZE return values
More to come, for APPLY, CLOSURE, etc.
Behdad Esfahbod [Thu, 10 May 2012 22:52:16 +0000 (00:52 +0200)]
Minor
Behdad Esfahbod [Thu, 10 May 2012 22:50:38 +0000 (00:50 +0200)]
Code reshuffling
Behdad Esfahbod [Thu, 10 May 2012 22:16:40 +0000 (00:16 +0200)]
Beautify debug output
Behdad Esfahbod [Thu, 10 May 2012 21:24:43 +0000 (23:24 +0200)]
More massaging trace messaging
Behdad Esfahbod [Thu, 10 May 2012 21:09:48 +0000 (23:09 +0200)]
Minor
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...
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 :-).
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.
Behdad Esfahbod [Thu, 10 May 2012 16:38:22 +0000 (18:38 +0200)]
[Indic] Add note re Uniscribe clusters
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%)!
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.
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.
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!
Behdad Esfahbod [Thu, 10 May 2012 12:48:25 +0000 (14:48 +0200)]
[Indic] Improve Left Matra repositioning
Move its dependents too.
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.
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!
Behdad Esfahbod [Thu, 10 May 2012 11:09:08 +0000 (13:09 +0200)]
Minor
Behdad Esfahbod [Thu, 10 May 2012 10:53:53 +0000 (12:53 +0200)]
[Indic] Reorder left matras to be closer to base
Behdad Esfahbod [Thu, 10 May 2012 10:20:21 +0000 (12:20 +0200)]
[Indic] Treat the standalone cluster case reusing the consonant logic