harfbuzz/src
Behdad Esfahbod cfc507c543 [Indic-like] Disable automatic joiner handling for basic shaping features
Not for Arabic, but for Indic-like scripts.  ZWJ/ZWNJ have special
meanings in those scripts, so let font lookups take full control.

This undoes the regression caused by automatic-joiners handling
introduced two commits ago.

We only disable automatic joiner handling for the "basic shaping
features" of Indic, Myanmar, and SEAsian shapers.  The "presentation
forms" and other features are still applied with automatic-joiner
handling.

This change also changes the test suite failure statistics, such that
a few scripts show more "failures".  The most affected is Kannada.
However, upon inspection, we believe that in most, if not all, of the
new failures, we are producing results superior to Uniscribe.  Hard to
count those!

Here's an example of what is fixed by the recent joiner-handling
changes:

  https://bugs.freedesktop.org/show_bug.cgi?id=58714

New numbers, for future reference:

BENGALI: 353892 out of 354188 tests passed. 296 failed (0.0835714%)
DEVANAGARI: 707336 out of 707394 tests passed. 58 failed (0.00819911%)
GUJARATI: 366262 out of 366457 tests passed. 195 failed (0.0532122%)
GURMUKHI: 60706 out of 60747 tests passed. 41 failed (0.067493%)
KANNADA: 950680 out of 951913 tests passed. 1233 failed (0.129529%)
KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed (0.0334817%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271539 out of 271847 tests passed. 308 failed (0.113299%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
2013-02-14 13:10:54 -05:00
..
hb-icu-le Improve license information 2012-10-28 21:26:19 -07:00
hb-old Whitespace 2012-08-15 18:52:17 -04:00
hb-ucdn [ucdn] Match upstream changes 2012-12-04 15:57:02 -05:00
check-c-linkage-decls.sh Make sure HB_BEGIN_DECLS / HB_END_DECLS is only used in public headers 2012-07-13 10:19:10 -04:00
check-header-guards.sh Fix check-header-guards on OS X 2012-01-27 02:23:22 -05:00
check-includes.sh Add check-includes.sh 2011-05-27 15:58:54 -04:00
check-libstdc++.sh Minor 2012-08-28 19:08:36 -04:00
check-static-inits.sh Minor 2012-08-28 19:08:36 -04:00
check-symbols.sh Bug 59637 - check-exported-symbols.sh & check-internal-symbols.sh fail on mips/mipsel 2013-02-04 23:24:16 -05:00
gen-arabic-table.py [OT] Streamline Arabic fallback shaping table 2012-09-06 01:16:39 -04:00
gen-indic-table.py Add South-East Asian shaper 2013-02-12 12:14:10 -05:00
hb-atomic-private.hh Improve check for Windows platforms 2013-02-12 15:31:58 -05:00
hb-blob.cc Minor 2013-01-14 13:51:46 -06:00
hb-blob.h Make source more digestable for gobject-introspection 2012-06-16 15:21:55 -04:00
hb-buffer-private.hh Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties() 2012-11-15 18:48:10 -08:00
hb-buffer.cc Rename hb_buffer_clear() to hb_buffer_clear_contents() 2013-01-07 16:46:37 -06:00
hb-buffer.h Rename hb_buffer_clear() to hb_buffer_clear_contents() 2013-01-07 16:46:37 -06:00
hb-cache-private.hh Fix cache implementation 2012-06-09 01:43:20 -04:00
hb-common.cc Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS 2013-02-12 15:26:45 -05:00
hb-common.h Add hb_feature_to/from_string() 2012-09-06 22:09:06 -04:00
hb-coretext.cc [coretext] Fixed typo 2012-12-09 19:39:40 -05:00
hb-coretext.h [coretext] Add hb_coretext_face_get_cg_font() 2012-12-09 18:47:36 -05:00
hb-fallback-shape.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-font-private.hh Add hb_face_[sg]et_glyph_count() 2012-11-15 16:23:21 -08:00
hb-font.cc Add hb_face_[sg]et_glyph_count() 2012-11-15 16:23:21 -08:00
hb-font.h Add hb_face_[sg]et_glyph_count() 2012-11-15 16:23:21 -08:00
hb-ft.cc Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used 2013-01-29 22:45:00 -05:00
hb-ft.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-glib.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-glib.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-gobject-enums.cc.tmpl Fix make distcheck 2011-08-24 19:36:50 +02:00
hb-gobject-structs.cc Add gobject enum support, but disabled for now 2011-08-19 19:59:24 +02:00
hb-gobject.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-graphite2.cc [graphite2] "Update to new API" 2012-12-09 18:45:47 -05:00
hb-graphite2.h [graphite2] Add hb_graphite2_face_get_gr_face and hb_graphite2_font_get_gr_font 2012-12-09 18:44:41 -05:00
hb-icu-le.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-icu.cc [ICU] Fix includes 2012-08-16 07:32:59 -04:00
hb-icu.h Minor 2012-08-08 14:59:09 -04:00
hb-mutex-private.hh Improve check for Windows platforms 2013-02-12 15:31:58 -05:00
hb-object-private.hh Move object mutext into the user-data array 2012-12-04 00:35:54 +02:00
hb-old.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-open-file-private.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-open-type-private.hh [GPOS] If an Anchor offset is NULL, return false 2013-01-08 16:17:06 -06:00
hb-ot-head-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-hhea-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-hmtx-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-layout-common-private.hh [OTLayout] Limit alternate-location FeatureParams to 'size' feature 2012-12-17 23:29:15 -05:00
hb-ot-layout-gdef-table.hh [OTLayout] Remove operator() from Coverage 2012-11-24 19:13:55 -05:00
hb-ot-layout-gpos-table.hh [OTLayout] Ignore default-ignorables when matching GSUB/GPOS 2013-02-14 12:57:50 -05:00
hb-ot-layout-gsub-table.hh [OTLayout] Ignore default-ignorables when matching GSUB/GPOS 2013-02-14 12:57:50 -05:00
hb-ot-layout-gsubgpos-private.hh [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-layout-private.hh [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-layout.cc [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-layout.h [OTLayout] Change hb_ot_layout_get_params() API 2012-12-11 14:17:01 -05:00
hb-ot-map-private.hh [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-map.cc [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-maxp-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-name-table.hh Pass this object to trace macros 2012-11-23 15:32:14 -05:00
hb-ot-shape-complex-arabic-fallback.hh [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-shape-complex-arabic-table.hh "Update" to Unicode 6.2.0 tables 2012-12-02 19:14:29 +02:00
hb-ot-shape-complex-arabic.cc Add hb_ot_map_feature_flags_t 2013-02-14 12:53:57 -05:00
hb-ot-shape-complex-default.cc Clean-up add_bool_feature 2013-02-14 11:58:13 -05:00
hb-ot-shape-complex-indic-machine.rl Fix compile warnings for ragel-generated machines 2013-02-14 11:58:13 -05:00
hb-ot-shape-complex-indic-private.hh [SEA] Treat Consonant_Final like Consonant_Medial 2013-02-12 15:28:21 -05:00
hb-ot-shape-complex-indic-table.cc Add South-East Asian shaper 2013-02-12 12:14:10 -05:00
hb-ot-shape-complex-indic.cc [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-shape-complex-myanmar-machine.rl Fix compile warnings for ragel-generated machines 2013-02-14 11:58:13 -05:00
hb-ot-shape-complex-myanmar.cc [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-shape-complex-private.hh Add South-East Asian shaper 2013-02-12 12:14:10 -05:00
hb-ot-shape-complex-sea-machine.rl Fix compile warnings for ragel-generated machines 2013-02-14 11:58:13 -05:00
hb-ot-shape-complex-sea.cc [Indic-like] Disable automatic joiner handling for basic shaping features 2013-02-14 13:10:54 -05:00
hb-ot-shape-complex-thai.cc Adjust mark advance-width zeroing logic for Myanmar 2013-02-12 09:44:57 -05:00
hb-ot-shape-fallback-private.hh Move code around 2012-09-01 19:20:41 -04:00
hb-ot-shape-fallback.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-ot-shape-normalize-private.hh Plumbing to get shape plan and font into complex decompose function 2012-11-16 12:58:38 -08:00
hb-ot-shape-normalize.cc Improve normalization heuristic 2013-02-11 12:59:00 -05:00
hb-ot-shape-private.hh [OTLayout] Ignore default-ignorables when matching GSUB/GPOS 2013-02-14 12:57:50 -05:00
hb-ot-shape.cc Add hb_ot_map_feature_flags_t 2013-02-14 12:53:57 -05:00
hb-ot-tag.cc Update OT language tags 2012-12-08 19:28:41 -05:00
hb-ot-tag.h Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-ot.h Bunch of independent changes (ouch) 2012-11-15 18:48:10 -08:00
hb-private.hh Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS 2013-02-12 15:26:45 -05:00
hb-set-private.hh Protect sets in-error from further modication 2013-01-02 23:02:59 -06:00
hb-set.cc [tests] Start adding tests for hb-set.h 2013-01-02 22:50:36 -06:00
hb-set.h [tests] Start adding tests for hb-set.h 2013-01-02 22:50:36 -06:00
hb-shape-plan-private.hh Implement hb_shape_plan_get_shaper() 2012-11-16 13:23:37 -08:00
hb-shape-plan.cc Fix hb_shape_plan_get_shaper() 2012-11-22 16:33:46 -05:00
hb-shape-plan.h Implement hb_shape_plan_get_shaper() 2012-11-16 13:23:37 -08:00
hb-shape.cc Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used 2013-01-29 22:45:00 -05:00
hb-shape.h Minor 2012-12-21 16:51:15 -05:00
hb-shaper-impl-private.hh Switch old and uniscribe backends to shape_plan 2012-07-27 01:37:18 -04:00
hb-shaper-list.hh Make the OT shaper default, even if CoreText or Uniscribe is enabled 2012-11-15 13:15:39 -08:00
hb-shaper-private.hh Fix crasher during multi-thread shaper data creation 2013-01-10 00:03:36 -06:00
hb-shaper.cc Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used 2013-01-29 22:45:00 -05:00
hb-tt-font.cc Whitespace 2012-11-16 18:49:54 -08:00
hb-ucdn.cc Fix warnings 2012-12-05 19:14:28 -05:00
hb-unicode-private.hh [Myanmar] Prevent reordering between Asat and Dot below 2013-02-11 14:28:59 -05:00
hb-unicode.cc Import UCDN into source tree 2012-10-02 16:23:29 -04:00
hb-unicode.h Use a lookup table for modified_combining_class 2012-08-01 18:07:42 -04:00
hb-uniscribe.cc Minor 2012-12-09 18:37:38 -05:00
hb-uniscribe.h Minor 2012-08-07 21:44:25 -04:00
hb-utf-private.hh Fix warnings 2012-12-05 19:14:28 -05:00
hb-version.h.in Make it an error to include non-top-level headers 2012-04-12 13:17:44 -04:00
hb-warning.cc Revert "Minor" 2013-01-14 00:32:12 -06:00
hb.h Bunch of independent changes (ouch) 2012-11-15 18:48:10 -08:00
main.cc Use namespace for OpenType tables 2012-08-28 17:57:49 -04:00
Makefile.am Add South-East Asian shaper 2013-02-12 12:14:10 -05:00
test-size-params.cc Make test-size-params write size in points 2012-12-11 14:31:13 -05:00
test-would-substitute.cc Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup() 2012-11-15 14:57:31 -08:00
test.cc [Minor] 2012-07-29 19:56:54 -04:00