platform/upstream/libHarfBuzzSharp.git
13 years ago[Indic] Add Final Reordering rules into comments
Behdad Esfahbod [Sun, 31 Jul 2011 19:18:57 +0000 (15:18 -0400)]
[Indic] Add Final Reordering rules into comments

Not applied yet.

13 years ago[Indic] Handle Reph when determining base consonant
Behdad Esfahbod [Sun, 31 Jul 2011 19:07:11 +0000 (15:07 -0400)]
[Indic] Handle Reph when determining base consonant

13 years ago[Indic] Ra is a consonant too
Behdad Esfahbod [Sun, 31 Jul 2011 19:01:28 +0000 (15:01 -0400)]
[Indic] Ra is a consonant too

13 years ago[Indic] Fix reph inhibition logic
Behdad Esfahbod [Sun, 31 Jul 2011 18:57:59 +0000 (14:57 -0400)]
[Indic] Fix reph inhibition logic

13 years ago[Indic] Support ZWJ/ZWNJ
Behdad Esfahbod [Sun, 31 Jul 2011 17:46:44 +0000 (13:46 -0400)]
[Indic] Support ZWJ/ZWNJ

Brings test-shape-complex failures down from 52 to 10!

I hereby declare harfbuzz-ng supporting Indic!

13 years ago[Indic] Suppress reph formation upon joiners
Behdad Esfahbod [Sun, 31 Jul 2011 15:10:14 +0000 (11:10 -0400)]
[Indic] Suppress reph formation upon joiners

13 years agoUn-Ra U+09F1. According to the test suite this is correct.
Behdad Esfahbod [Sun, 31 Jul 2011 06:24:51 +0000 (02:24 -0400)]
Un-Ra U+09F1.  According to the test suite this is correct.

But I'm not sure...  Down from 54 failures to 52.

13 years agoMinor
Behdad Esfahbod [Sun, 31 Jul 2011 01:16:51 +0000 (21:16 -0400)]
Minor

13 years agoCosmetic
Behdad Esfahbod [Sun, 31 Jul 2011 01:11:53 +0000 (21:11 -0400)]
Cosmetic

13 years ago[Indic] For old-style Indic tables, move Halant around
Behdad Esfahbod [Sun, 31 Jul 2011 01:08:10 +0000 (21:08 -0400)]
[Indic] For old-style Indic tables, move Halant around

In old-style Indic OT standards, the post-base Halants are moved after
their base.  Emulate that by moving first post-base Halant to
post-last-consonant.

Brings test-shape-complex failures down from 88 to 54.  Getting there!

13 years ago[OT] Save chosen script tag
Behdad Esfahbod [Sun, 31 Jul 2011 00:57:01 +0000 (20:57 -0400)]
[OT] Save chosen script tag

13 years agoMinor
Behdad Esfahbod [Sun, 31 Jul 2011 00:23:55 +0000 (20:23 -0400)]
Minor

13 years ago[test] Fix problem with N'ko test direction
Behdad Esfahbod [Sun, 31 Jul 2011 00:21:40 +0000 (20:21 -0400)]
[test] Fix problem with N'ko test direction

Old HarfBuzz test suite always shaped as left-to-right and hence had wrong
0x14db, direction expected glyphstring for N'ko.  Doh!

Failures down from 92 to 88.

13 years ago[Indic] Handle initial Ra+Halant in scripts that support Reph
Behdad Esfahbod [Sun, 31 Jul 2011 00:14:44 +0000 (20:14 -0400)]
[Indic] Handle initial Ra+Halant in scripts that support Reph

Brings test-shape-complex failures down from 104 to 92.  Way to go!

13 years agoMinor
Behdad Esfahbod [Sat, 30 Jul 2011 23:15:53 +0000 (19:15 -0400)]
Minor

13 years ago[Indic] Categorize Ra in scripts that have Reph
Behdad Esfahbod [Sat, 30 Jul 2011 23:04:02 +0000 (19:04 -0400)]
[Indic] Categorize Ra in scripts that have Reph

Is the categorization correct?  I don't know.

13 years ago[Indic] Reorder matras
Behdad Esfahbod [Sat, 30 Jul 2011 18:44:30 +0000 (14:44 -0400)]
[Indic] Reorder matras

Number of failing shape-complex tests goes from 125 down to 94.

Next: Add Ra handling and it's fair to say we kinda support Indic :).

13 years agoBug 39686 - Add '-no-undefined' to libharfbuzz LDFLAGS
Behdad Esfahbod [Sat, 30 Jul 2011 15:16:00 +0000 (11:16 -0400)]
Bug 39686 - Add '-no-undefined' to libharfbuzz LDFLAGS

13 years agoMinor
Behdad Esfahbod [Fri, 29 Jul 2011 21:02:48 +0000 (17:02 -0400)]
Minor

13 years ago[Indic] Apply Indic features
Behdad Esfahbod [Fri, 29 Jul 2011 20:37:02 +0000 (16:37 -0400)]
[Indic] Apply Indic features

Find the base consonant and apply basic Indic features accordingly.
Nothing complete, but does something for now.  Specifically:
no Ra handling right now, and no ZWJ/ZWNJ.

Number of failing shape-complex tests goes from 174 down to 125.

Next: reorder matras.

13 years agoMinor
Behdad Esfahbod [Fri, 29 Jul 2011 20:36:46 +0000 (16:36 -0400)]
Minor

13 years agoMinor
Behdad Esfahbod [Fri, 29 Jul 2011 20:27:31 +0000 (16:27 -0400)]
Minor

13 years agoRegister buffer vars in Indic shaper
Behdad Esfahbod [Thu, 28 Jul 2011 21:06:46 +0000 (17:06 -0400)]
Register buffer vars in Indic shaper

13 years agoOops. This should have gone into the previous commit
Behdad Esfahbod [Thu, 28 Jul 2011 21:03:43 +0000 (17:03 -0400)]
Oops.  This should have gone into the previous commit

13 years agoFormalize buffer var allocations
Behdad Esfahbod [Thu, 28 Jul 2011 20:48:43 +0000 (16:48 -0400)]
Formalize buffer var allocations

13 years agoMove more code around
Behdad Esfahbod [Thu, 28 Jul 2011 19:42:18 +0000 (15:42 -0400)]
Move more code around

Buffer var allocation coming into shape

13 years agoStreamline debugging infrastructure even more
Behdad Esfahbod [Tue, 26 Jul 2011 00:25:44 +0000 (20:25 -0400)]
Streamline debugging infrastructure even more

13 years agoUse variadic macros for debugging
Behdad Esfahbod [Mon, 25 Jul 2011 21:35:24 +0000 (17:35 -0400)]
Use variadic macros for debugging

Looks *so* much nicer!

13 years agoAdd sugar syntax for debug messages
Behdad Esfahbod [Mon, 25 Jul 2011 20:47:02 +0000 (16:47 -0400)]
Add sugar syntax for debug messages

Buffer debugging coming soon.

13 years agoMinor, fix leak from my previous refactorings
Behdad Esfahbod [Mon, 25 Jul 2011 20:30:32 +0000 (16:30 -0400)]
Minor, fix leak from my previous refactorings

13 years agoAdd internal API for buffer var allocation
Behdad Esfahbod [Mon, 25 Jul 2011 20:20:16 +0000 (16:20 -0400)]
Add internal API for buffer var allocation

13 years agoStart cleaning up buffer var allocation
Behdad Esfahbod [Mon, 25 Jul 2011 18:54:08 +0000 (14:54 -0400)]
Start cleaning up buffer var allocation

I've messed up a lot of stuff recently, different parts of the
shaping process are stumbling on eachother's toes because
manually tracking what's in which buffer var is hard.  I'm
going to add some internal API to track those such that mistakes
are discovered as soon as they are introduced.

13 years agoMove code around
Behdad Esfahbod [Mon, 25 Jul 2011 04:44:50 +0000 (00:44 -0400)]
Move code around

13 years agoShrink space used for ligature ids
Behdad Esfahbod [Mon, 25 Jul 2011 04:36:58 +0000 (00:36 -0400)]
Shrink space used for ligature ids

This frees 16bits in the glyph_info struct during the ot_layout process.
We can use the freed space in the shapers now.

13 years agoMinor
Behdad Esfahbod [Mon, 25 Jul 2011 04:36:01 +0000 (00:36 -0400)]
Minor

13 years agoKeep Unicode props updated as we go so we avoid a scan later
Behdad Esfahbod [Sun, 24 Jul 2011 03:43:54 +0000 (23:43 -0400)]
Keep Unicode props updated as we go so we avoid a scan later

13 years agoImplement the Unicode Canonical Composition algorithm
Behdad Esfahbod [Sat, 23 Jul 2011 00:22:49 +0000 (20:22 -0400)]
Implement the Unicode Canonical Composition algorithm

Fallback normalization is complete and working now!

13 years agoHandle singleton decompositions
Behdad Esfahbod [Fri, 22 Jul 2011 21:14:46 +0000 (17:14 -0400)]
Handle singleton decompositions

13 years agoImplement Unicode Canonical Reordering Algorithm
Behdad Esfahbod [Fri, 22 Jul 2011 21:04:20 +0000 (17:04 -0400)]
Implement Unicode Canonical Reordering Algorithm

13 years agoDecomposition works now!
Behdad Esfahbod [Fri, 22 Jul 2011 20:15:32 +0000 (16:15 -0400)]
Decomposition works now!

13 years agoMove buffer methods into the object
Behdad Esfahbod [Fri, 22 Jul 2011 15:28:07 +0000 (11:28 -0400)]
Move buffer methods into the object

13 years agoMore normalization kick
Behdad Esfahbod [Fri, 22 Jul 2011 15:07:05 +0000 (11:07 -0400)]
More normalization kick

13 years agoFix decompose() implementations to work with non-starter non-composables
Behdad Esfahbod [Fri, 22 Jul 2011 00:58:42 +0000 (20:58 -0400)]
Fix decompose() implementations to work with non-starter non-composables

Add tests.

13 years agoDocument normalization design
Behdad Esfahbod [Thu, 21 Jul 2011 19:25:01 +0000 (15:25 -0400)]
Document normalization design

13 years agoAdd prefer_decomposed() complex-shaper callback
Behdad Esfahbod [Thu, 21 Jul 2011 16:23:12 +0000 (12:23 -0400)]
Add prefer_decomposed() complex-shaper callback

This allows the Indic shaper to request decomposed characters.  This will
handle split matra for free.  Other shapers prefer precomposed
characters.

13 years agoMore kicking
Behdad Esfahbod [Thu, 21 Jul 2011 16:16:45 +0000 (12:16 -0400)]
More kicking

13 years agoRemove intermittent_glyph()
Behdad Esfahbod [Thu, 21 Jul 2011 16:13:04 +0000 (12:13 -0400)]
Remove intermittent_glyph()

Lets not worry about performance for now...

13 years agoNo need to handle variation-selectors seperately, they are GC=Mn
Behdad Esfahbod [Thu, 21 Jul 2011 15:48:57 +0000 (11:48 -0400)]
No need to handle variation-selectors seperately, they are GC=Mn

13 years agoOnly form clusters if we are reversing
Behdad Esfahbod [Thu, 21 Jul 2011 15:34:59 +0000 (11:34 -0400)]
Only form clusters if we are reversing

This produces more accurate cluster mappings.  Cluster mappings are
minimal now.  Combining marks get their own cluster value most of
the time.

13 years agoTowards normalization
Behdad Esfahbod [Thu, 21 Jul 2011 15:31:08 +0000 (11:31 -0400)]
Towards normalization

13 years agos/COMBINING_MARK/SPACING_MARK/ here too. Oops!
Behdad Esfahbod [Thu, 21 Jul 2011 14:17:22 +0000 (10:17 -0400)]
s/COMBINING_MARK/SPACING_MARK/ here too.  Oops!

13 years agoRemove stale comment
Behdad Esfahbod [Thu, 21 Jul 2011 05:12:26 +0000 (01:12 -0400)]
Remove stale comment

13 years agoForm clusters before ensuring native direciton
Behdad Esfahbod [Thu, 21 Jul 2011 05:11:09 +0000 (01:11 -0400)]
Form clusters before ensuring native direciton

This is essential as ensure_native_direction uses cluster info that
is set by form_clusters().

13 years agoAdd _hb_buffer_output_glyph() and _hb_buffer_skip_glyph()
Behdad Esfahbod [Thu, 21 Jul 2011 04:58:29 +0000 (00:58 -0400)]
Add _hb_buffer_output_glyph() and _hb_buffer_skip_glyph()

13 years agoTowards normalization
Behdad Esfahbod [Thu, 21 Jul 2011 04:51:18 +0000 (00:51 -0400)]
Towards normalization

13 years agoInclude variation-selectors in cluster calculation
Behdad Esfahbod [Thu, 21 Jul 2011 04:35:37 +0000 (00:35 -0400)]
Include variation-selectors in cluster calculation

13 years agoFix cluster calculation for non-LTR text
Behdad Esfahbod [Thu, 21 Jul 2011 04:28:57 +0000 (00:28 -0400)]
Fix cluster calculation for non-LTR text

13 years agoWhen forming clusters, participate all mark types
Behdad Esfahbod [Thu, 21 Jul 2011 04:14:01 +0000 (00:14 -0400)]
When forming clusters, participate all mark types

13 years agoRename HB_UNICODE_GENERAL_CATEGORY_COMBINING_MARK to HB_UNICODE_GENERAL_CATEGORY_SPAC...
Behdad Esfahbod [Thu, 21 Jul 2011 04:12:33 +0000 (00:12 -0400)]
Rename HB_UNICODE_GENERAL_CATEGORY_COMBINING_MARK to HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK

Spacing_Mark is the current Unicode long-name for this property value.
The previous name was wrongly carried from glib.

13 years agoMinor
Behdad Esfahbod [Thu, 21 Jul 2011 03:59:07 +0000 (23:59 -0400)]
Minor

13 years ago[icu] Implement compose()/decompose()
Behdad Esfahbod [Thu, 21 Jul 2011 03:19:49 +0000 (23:19 -0400)]
[icu] Implement compose()/decompose()

13 years agoAdd tests for compose()/decompose()
Behdad Esfahbod [Thu, 21 Jul 2011 02:30:29 +0000 (22:30 -0400)]
Add tests for compose()/decompose()

Adjust glib fallback implementation.

The tests are not hooked up for ICU yet.

13 years agoMinor
Behdad Esfahbod [Thu, 21 Jul 2011 02:16:13 +0000 (22:16 -0400)]
Minor

13 years ago[glib] Use g_unicode_script_to/from_iso15924() if available
Behdad Esfahbod [Thu, 21 Jul 2011 01:58:14 +0000 (21:58 -0400)]
[glib] Use g_unicode_script_to/from_iso15924() if available

13 years ago[glib] Add compose() and decompose() implementations with fallback
Behdad Esfahbod [Thu, 21 Jul 2011 01:51:37 +0000 (21:51 -0400)]
[glib] Add compose() and decompose() implementations with fallback

13 years agoMinor
Behdad Esfahbod [Wed, 20 Jul 2011 20:42:10 +0000 (16:42 -0400)]
Minor

13 years ago[test] Work around glib <= 2.30 API
Behdad Esfahbod [Tue, 12 Jul 2011 16:02:26 +0000 (12:02 -0400)]
[test] Work around glib <= 2.30 API

13 years agoDistribute hb-ot-shape-complex-indic-machine.rl
Behdad Esfahbod [Tue, 12 Jul 2011 15:54:58 +0000 (11:54 -0400)]
Distribute hb-ot-shape-complex-indic-machine.rl

13 years agoLet shapers decide when to apply ccmp and locl
Behdad Esfahbod [Fri, 8 Jul 2011 04:22:40 +0000 (00:22 -0400)]
Let shapers decide when to apply ccmp and locl

Instead of always applying those two features before the complex shaper,
let the complex shaper decide whether they should be applied first.

Also add stub for Indic's final_reordering().

13 years ago[API] Add compose() and decompose() unicode funcs, rename other ones
Behdad Esfahbod [Fri, 8 Jul 2011 03:47:19 +0000 (23:47 -0400)]
[API] Add compose() and decompose() unicode funcs, rename other ones

Add compose() and decompose() unicode funcs.  These implement
pair-wise canonical composition/decomposition.

The glib/icu implementations are lacking for now.  We are adding
API for this to glib, but I cannot find any useful API in ICU.
May end of implementing these in-house.

Changed all unicode_funcs callback names to remove the "_get" part.
Eg, hb_unicode_get_script_func_t is now hb_unicode_script_func_t,
and hb_unicode_get_script() is hb_unicode_script() now.

13 years agoMore code generation through preprocessor
Behdad Esfahbod [Fri, 8 Jul 2011 03:42:40 +0000 (23:42 -0400)]
More code generation through preprocessor

13 years agoHumm, undo some shuffling
Behdad Esfahbod [Fri, 8 Jul 2011 03:19:27 +0000 (23:19 -0400)]
Humm, undo some shuffling

In preparation for adding more advanced unicode funcs.

13 years agoMore code shuffling
Behdad Esfahbod [Fri, 8 Jul 2011 03:14:42 +0000 (23:14 -0400)]
More code shuffling

13 years agoMinor
Behdad Esfahbod [Fri, 8 Jul 2011 02:35:17 +0000 (22:35 -0400)]
Minor

13 years agoShuffle code around, remove shape_plan from complex shapers
Behdad Esfahbod [Fri, 8 Jul 2011 02:25:25 +0000 (22:25 -0400)]
Shuffle code around, remove shape_plan from complex shapers

13 years agoMinor, use function typedefs
Behdad Esfahbod [Fri, 8 Jul 2011 02:03:02 +0000 (22:03 -0400)]
Minor, use function typedefs

13 years agoUpdate copyright headers
Behdad Esfahbod [Fri, 8 Jul 2011 01:55:05 +0000 (21:55 -0400)]
Update copyright headers

13 years agoRefactor some code common to GSUB and GPOS
Behdad Esfahbod [Fri, 8 Jul 2011 01:22:08 +0000 (21:22 -0400)]
Refactor some code common to GSUB and GPOS

13 years agoEnable applying GSUB/GPOS features in multiple segments
Behdad Esfahbod [Fri, 8 Jul 2011 01:07:41 +0000 (21:07 -0400)]
Enable applying GSUB/GPOS features in multiple segments

Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=644184
among others.

Shapers now can request segmented feature application by calling
add_gsub_pause() or add_gpos_pause().  They can also provide a
callback to be called at the pause.  Currently the Arabic shaper
uses pauses to enforce certain feature application.  The Indic
shaper can use the same facility to pause and do reordering in the
callback.

13 years agoShuffle code around
Behdad Esfahbod [Thu, 7 Jul 2011 20:20:35 +0000 (16:20 -0400)]
Shuffle code around

13 years agoAdd todo
Behdad Esfahbod [Thu, 7 Jul 2011 20:09:38 +0000 (16:09 -0400)]
Add todo

I'm too lazy to fix the tests now.

13 years agoFix reverse_range() position loop
Behdad Esfahbod [Wed, 6 Jul 2011 20:05:45 +0000 (16:05 -0400)]
Fix reverse_range() position loop

Mozilla Bug 669175 - Slow rendering of text sometimes in this case,
using direction: rtl

13 years agoMinor
Behdad Esfahbod [Mon, 4 Jul 2011 21:18:57 +0000 (17:18 -0400)]
Minor

13 years ago[Indic] Well, at least finding syllables works now :)
Behdad Esfahbod [Mon, 4 Jul 2011 16:56:38 +0000 (12:56 -0400)]
[Indic] Well, at least finding syllables works now :)

Still not much there.

13 years ago[test-shape-complex] Remove the greek tests
Behdad Esfahbod [Tue, 28 Jun 2011 21:26:03 +0000 (17:26 -0400)]
[test-shape-complex] Remove the greek tests

They are outdated with respect to the DejaVu Sans I'm using.
We need to add font version checking to the tests.

13 years ago[test-shape-complex] Print out expected and actual glyphstrings upon failure
Behdad Esfahbod [Tue, 28 Jun 2011 21:25:17 +0000 (17:25 -0400)]
[test-shape-complex] Print out expected and actual glyphstrings upon failure

One has to run the test with --verbose to see that right now.

13 years ago[test] Name tests after their input string
Behdad Esfahbod [Tue, 28 Jun 2011 20:59:16 +0000 (16:59 -0400)]
[test] Name tests after their input string

13 years agoMinor
Behdad Esfahbod [Tue, 28 Jun 2011 20:21:31 +0000 (16:21 -0400)]
Minor

Towards a better test runner.

13 years agoMinor
Behdad Esfahbod [Tue, 28 Jun 2011 20:17:16 +0000 (16:17 -0400)]
Minor

13 years ago[test] Remove disabled code
Behdad Esfahbod [Tue, 28 Jun 2011 20:16:21 +0000 (16:16 -0400)]
[test] Remove disabled code

We'd add normalization and decomposition tests later.

13 years ago[test] Restructure shape test data a bit
Behdad Esfahbod [Tue, 28 Jun 2011 20:15:46 +0000 (16:15 -0400)]
[test] Restructure shape test data a bit

13 years ago[Indic] Optimize Indic table storage
Behdad Esfahbod [Tue, 28 Jun 2011 18:13:38 +0000 (14:13 -0400)]
[Indic] Optimize Indic table storage

13 years ago[Indic] Generate a single data table instead of multiple ones
Behdad Esfahbod [Tue, 28 Jun 2011 18:03:29 +0000 (14:03 -0400)]
[Indic] Generate a single data table instead of multiple ones

13 years ago[test] Add Indic tests from harfbuzz.old
Behdad Esfahbod [Tue, 28 Jun 2011 16:49:18 +0000 (12:49 -0400)]
[test] Add Indic tests from harfbuzz.old

Needs fonts to be put in test/fonts.  Tests are skipped otherwise.
Run with --verbose for details.  Working on improving the test runner
to make it easier to make sense of what's going on.

13 years ago[Indic] Define indic_position_t
Behdad Esfahbod [Sat, 25 Jun 2011 00:45:55 +0000 (20:45 -0400)]
[Indic] Define indic_position_t

13 years ago[Indic] Add a table of consonant positions
Behdad Esfahbod [Fri, 24 Jun 2011 23:05:52 +0000 (19:05 -0400)]
[Indic] Add a table of consonant positions

Copied form HarfBuzz.old Indic data.  These are below and post
consonants.  This is temporary.  Read the comment in the patch.

13 years ago[Indic] Some of the basic features are global; Mark them so
Behdad Esfahbod [Fri, 24 Jun 2011 23:05:34 +0000 (19:05 -0400)]
[Indic] Some of the basic features are global;  Mark them so

13 years ago[indic] Add syllable recognition state machine
Behdad Esfahbod [Fri, 17 Jun 2011 22:35:46 +0000 (18:35 -0400)]
[indic] Add syllable recognition state machine

Using an incredible tool called Ragel.

13 years agoBetter categorize Indic character classes
Behdad Esfahbod [Wed, 15 Jun 2011 21:22:48 +0000 (17:22 -0400)]
Better categorize Indic character classes

Matches OT types now.

13 years agoMinor compiler warning fixes
Behdad Esfahbod [Wed, 15 Jun 2011 13:49:58 +0000 (09:49 -0400)]
Minor compiler warning fixes