• Home
  • History
  • Annotate
  • only in /external/harfbuzz_ng/src/
History log of /external/harfbuzz_ng/src/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6d628552e2ffa0a7f23e21995ae8f9ac444da31d 18-Dec-2014 Roozbeh Pournader <roozbeh@google.com> [otlayout] Avoid invalid access with Context format 3.

Backport https://github.com/behdad/harfbuzz/commit/9df0a520 to our
present copy of HarfBuzz to fix a potential crasher.

Bug: 18789351
Change-Id: I89fc1dd7f9fd57f50babacea2b341a31e1bf41ee
b-ot-layout-gsubgpos-private.hh
11ebc0bc04aece6da39d471e29e0e1fdb5cdc3ca 25-Jul-2014 Behdad Esfahbod <behdad@google.com> Merge from upstream

Among other things, this brings in feature parsing compatible with the
CSS font-feature-settings property.

Change-Id: Ifeeebf3fd9a76810a0cdc6f3f697f38ebe4390b5
fe6788bc570d77d5b3aafc68efd51ca6b80499b1 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Typo
b-common.h
6e69200a2aadbc6bba35ffb4a058c14286b84f46 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Fix snprintf() format

Patch from Maks Naumov.
Fixes https://github.com/behdad/harfbuzz/pull/22
b-shape.cc
5c5cdbbdf8be231c433e21b050a6c6991d327b61 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Make sure broken feature strings are not partially parsed

If user doesn't check hb_feature_from_string() return value, we
don't want them to end up see the partially-parsed feature.
b-shape.cc
a795fe637846e0d9561d2f7cdd84cfafd58b23a7 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Allow quotation marks around feature tag in hb_feature_from_string()

With this, I believe we accept CSS feature strings completely.
b-shape.cc
3f6461847412e78bcddc8eba97200f3afcde869a 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Allow space at the end of feature string with values, eg 'dlig=1 '
b-shape.cc
f31f7d2259dd8edffc070af55938cb7aa23514c1 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Minor
b-shape.cc
60cb18a5dea2d30793f89e80995bb729c014864a 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Allow on/off in hb_feature_from_string()

We now allow things like "dlig on" / "dlig=on".
b-shape.cc
d9e618eca9e01c2eb6db65504af3f73be370a1e7 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Remove duplicate definition of ISALNUM

It's defined in hb-private.h already.
b-shape.cc
2ee5f665ded86147acedc400153c0b3a90fe07c6 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Fix parsing of features like "- liga" (with the space)
b-shape.cc
e15fa7a8cffbe6a67b1048d7b87b7df77d8b1686 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Do not require the '=' in hb_feature_from_string()

Towards accepting CSS font-feature-settings strings.
b-shape.cc
f4fe9baefdb7e0ff9946f88b6f4b55738fa30cdf 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Reject tags longer than 4 chars in hb_feature_from_string()
b-shape.cc
7e8c38954649c0bf2e6051d84ca08dce090ec169 25-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Minor warnings fixes

Some systems insist on -Wmissing-field-initializers. We have too many,
by design. Fix a few easy ones.
b-open-type-private.hh
b-ot-layout-private.hh
b-private.hh
fc0daafab0336b847ac14682e581a8838f36a0bf 23-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Handle old-spec Malayalam reordering with final Halant

See comment.

Micro-tests added.
b-ot-shape-complex-indic.cc
d6d349d17898529ecdf8217a54987a3e9f81ce05 23-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Give CC to gir-scanner

From:
https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-harfbuzz/0001-give-cc-to-gir-scanner.all.patch
akefile.am
3f310dc0cae9015c45ba642b9b83d5695c807aad 22-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Disallow changing settings on immutable face

Ouch!
b-face.cc
b-font.cc
b-unicode.cc
0fc0a1022854324261fea8893678a3e9fd9443eb 21-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [win] Fix Cygwin build

https://github.com/behdad/harfbuzz/commit/db308280488c2ee11ba865a9922eb6a0c1abeef3#commitcomment-7077778
b-private.hh
1132a7dd0ecf1c425078e39e5471330bace42659 20-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Add HB_TAG_MAX_SIGNED / _HB_SCRIPT_MAX_VALUE_SIGNED

To make C language police happy.
b-common.h
c0b194f2c9a199093d7734a0e80dee05c039bcec 21-Jul-2014 Behdad Esfahbod <behdad@google.com> Merge remote-tracking branch 'aosp/upstream-mirror' into merge-upstream

Bug: 15849380
Change-Id: I8f952f0c4e85bbac4b457f740db531a3fd9cd8bf
df99976398a53521e0228541055dcaee8f5ba87f 19-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [gobject] Skip _HB_SCRIPT_MAX_VALUE

Fixes https://github.com/behdad/harfbuzz/pull/38
b-common.h
f1a8d50a87edfb8147aa1bec732ed7ccbfef2877 19-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [win] Don't define visibility attribtue under Cygwin
b-private.hh
9c77027d645142794c3ff1590a96bb151c3f2e91 19-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [win] Turn STRICT on for including windows.h
b-private.hh
db308280488c2ee11ba865a9922eb6a0c1abeef3 19-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [win] Consolidate windows.h include tips and tricks
b-atomic-private.hh
b-mutex-private.hh
b-private.hh
b-uniscribe.cc
b-uniscribe.h
f26d59d4684be3419c976d781b6dbc956248e3bb 19-Jul-2014 Behdad Esfahbod <behdad@behdad.org> More fixing MemoryBarrier() on Mingw32

Set requested windows header to Vista. See discussion:

https://github.com/behdad/harfbuzz/commit/fbb2847f541389f40718af71c4945024ae177ab2#commitcomment-7054700
b-atomic-private.hh
385cf37cf084198e3aedb4354a7b025938a9f11b 18-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Fix hb_in_range() unused-var warning on Windows
b-private.hh
e3b42f1af409c073b819bfc696024ccb1f1da63f 17-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [arabic] Disable 'cswh' again

Ouch!
b-ot-shape-complex-arabic.cc
82f4d9d53f348f41b14b877c1ac77c0372c49caa 17-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [arabic] Add note re disabled 'cswh'
b-ot-shape-complex-arabic.cc
615d00ea252739da57edbd980ff27e573f88ee7e 17-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [arabic] Apply init/medi/isol/fini/... in separate stages

Follows the order of the Arabic/Syriac specs. Also don't stop
between rlig and calt in non-Arabic scripts.

Micro-tests for Arabic and Mongolian added for the latter.
b-ot-shape-complex-arabic.cc
7cd33f230441093dbfb1fec48f8c580ee8d9ef71 17-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Micro optimization
b-fallback-shape.cc
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-sea.cc
b-ot-shape-fallback.cc
b-ot-shape.cc
164c13d73f67fdddba28e6409d76b4903e8ffab3 17-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Another try to fix Mongolian free variation selectors

This reverts bf029281 and fixes it properly. That commit
was not enough as it was only inheriting the shaping_action
for prev_action, but not curr_action.

Micro-test added.

https://code.google.com/p/chromium/issues/detail?id=393896
b-ot-shape-complex-arabic.cc
b-unicode-private.hh
5209c505061130854a2bfea8849928ade3ee92f3 17-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Revert "Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode codepoints"

We now handle U+FFFD replacement in hb_buffer_add_utf*(). Any other
manipulation can happen in user callbacks. No need for this.

https://github.com/behdad/harfbuzz/commit/efe74214bbb68eaa3d7621e73869b5d58210107e#commitcomment-7039404

This reverts commit efe74214bbb68eaa3d7621e73869b5d58210107e.

Conflicts:
src/hb-ot-shape-normalize.cc
b-ot-shape-normalize.cc
9e7c720100e432b43564ed5ff12f3175ca2ed74a 17-Jul-2014 Dominik Röttsches <dominik.rottsches@intel.com> Fix CoreText build after a8b89a09f6d3a34
b-private.hh
a4d643755a531c82ab91e1e43d6bb0b7bd46453a 17-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Minor
b-utf-private.hh
976c8f455221eb599d1c446eafd88d51d7d2aa65 16-Jul-2014 Behdad Esfahbod <behdad@behdad.org> New API: hb_buffer_[sg]et_replacement_codepoint()

With this change, we now by default replace broken UTF-8/16/32 bits
with U+FFFD. This can be changed by calling new API on the buffer.
Previously the replacement value used to be (hb_codepoint_t)-1.

Note that hb_buffer_clear_contents() does NOT reset the replacement
character.

See discussion here:

https://github.com/behdad/harfbuzz/commit/6f13b6d62daae4989e3cc2fe4b168e5c59650964

New API:

hb_buffer_set_replacement_codepoint()
hb_buffer_get_replacement_codepoint()
b-buffer-private.hh
b-buffer.cc
b-buffer.h
b-utf-private.hh
bcba8b45024e1eca8be77ca2657de1dc44dbf8fb 16-Jul-2014 Behdad Esfahbod <behdad@behdad.org> New API hb_buffer_add_codepoints()

Like hb_buffer_add_utf32, but doesn't do any Unicode validation.
This is like what hb_buffer_add_utf32 used to be until a couple
commits ago.
b-buffer.cc
b-buffer.h
625dbf141a05f1ae81a7b8cbc529996370101284 16-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [buffer] Templatize UTF-* functions
b-buffer.cc
b-utf-private.hh
e634fed4285ce440d277345727ed01757df6d779 16-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [buffer] Validate UTF-32 input

Same as what we do for UTF-8 and UTF-16.
b-utf-private.hh
b98c5db32d15fcfb27ce2f6737203ce1ad124319 16-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Minor refactoring
b-ot-layout-gsubgpos-private.hh
3b861421a772f52eb232ff93bd74b5a8214801ec 16-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Fix Mongolian Variation Selectors for fonts without GDEF

Originally we fixed those in 79d1007a501fd63c0ba4d51038c513e6b8b94740.
However, fonts like MongolianWhite don't have GDEF, but have IgnoreMarks
in their LigatureSubstitute init/etc features. We were synthesizing a
GDEF class of mark for Mongolian Variation Selectors and as such the
ligature lookups where not matching. Uniscribe doesn't do that.

I tried with more sophisticated fixes, like, if there is no GDEF and
a lookup-flag mismatch happens, instead of rejecting a match, try
skipping that glyph. That surely produces some interesting behavior,
but since we don't want to support fonts missing GDEF more than we have
to, I went for this simpler fix which is to always mark
default-ignorables as base when synthesizing GDEF.

Micro-test added.

Fixes rest of https://bugs.freedesktop.org/show_bug.cgi?id=65258
b-ot-shape.cc
878a25375b2fdf64cf0cc30c23fca9fcd58548e8 16-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape.cc
b-unicode-private.hh
ec181e50140fc65b32d6080e2f7f73bbe0269ba9 16-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Minor moving around
b-ot-shape.cc
e7ce50d9eb6e3678f731b10dfeb308ffc478af8d 16-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Fix access past end of array
b-ot-shape-complex-indic.cc
73e23b0acfd2948d500321769035c56c9e072d77 16-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Whitespace
b-ot-layout-gsubgpos-private.hh
b7bc0b671d2d568cb64b647dad2ca866a4e0183b 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Simplify / speed up UTF-8 code
b-utf-private.hh
af2490c0959daa0fe7f32a8b3b3a3699c7fc5f48 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Only accept well-formed UTF-8 sequences

Enable tests that were disabled before, and adjust one test,
and add more tests.
b-utf-private.hh
7323d385cc758c06671cb38239d240eb517b28bc 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Simplify hb_utf_prev<16> to call hb_utf_next<16>
b-utf-private.hh
c09a607a842fdd7b33e2c57e8af96d21ff091acd 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Use hb_in_range() for arabic and indic tables

Though, looks like gcc was smart enough to produce the same code
before...
en-arabic-table.py
en-indic-table.py
b-ot-shape-complex-arabic-table.hh
b-ot-shape-complex-indic-table.cc
7627100f428ac0ec8509d961d368d2d25d8f0b6e 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Mark unsigned integer literals with the u suffix

Simplifies hb_in_range() calls as the type can be inferred.
The rest is obsessiveness, I admit.
b-buffer-serialize.cc
b-common.cc
b-coretext.cc
b-open-file-private.hh
b-open-type-private.hh
b-ot-cmap-table.hh
b-ot-head-table.hh
b-ot-hhea-table.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-jstf-table.hh
b-ot-layout-private.hh
b-ot-layout.h
b-ot-map-private.hh
b-ot-maxp-table.hh
b-ot-shape-complex-arabic-fallback.hh
b-ot-shape-complex-hangul.cc
b-ot-shape-complex-hebrew.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-sea.cc
b-ot-shape-complex-thai.cc
b-ot-shape-fallback.cc
b-ot-shape-normalize.cc
b-ot-shape.cc
b-ot-tag.cc
b-unicode-private.hh
b-uniscribe.cc
b-utf-private.hh
a8b89a09f6d3a3466282aae07fd65e143f9f8f83 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Simplify hb_in_range()

It's both faster and produces smaller code. Now I feel stupid for
not writing it this way before.
b-private.hh
db8934faa1854dafaf4c4ce34d1818e12f67ef52 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Simplify hb_utf_prev<8> to call hb_utf_next<8>
b-utf-private.hh
efe74214bbb68eaa3d7621e73869b5d58210107e 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode codepoints

Only if the font doesn't support it. Ie, this gives the user to
use non-Unicode codepoints as private values and return a meaningful
glyph for them. But if it's invalid and font callback doesn't
like it, and if font has U+FFFD, show that instead.

Font functions that do not want this automatic replacement to
happen should return true from get_glyph() if unicode > 0x10FFFF.

Replaces https://github.com/behdad/harfbuzz/pull/27
b-ot-shape-normalize.cc
6f13b6d62daae4989e3cc2fe4b168e5c59650964 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> When parsing UTF-16, generate invalid codepoint for lonely low surrogate

Test passes now.
b-utf-private.hh
6334495ac1ee0a86228e67794b7a41ee91146f3b 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Use zh-Hans / zh-Hant when converting OT language tag to hb_language_t
b-ot-tag.cc
f381e320df795a9d73ac81499f8ed8c311bcb2f0 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Fix lang matching logic

Previous code was broken logically, but harmless.
b-ot-tag.cc
ee5350d667f3a9644667202597694581f2cf657d 11-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Accept BCP 47 zh-Hans / zh-Hant language tags
b-ot-tag.cc
9fe80482a1adfd555ec60b563cd9b6641528d2e2 10-Jul-2014 Behdad Esfahbod <behdad@google.com> Merge remote-tracking branch 'aosp/upstream-mirror' into merge-upstream

Update to upstream 5b4131eb1c670c20fd9a45a5617c64060a505ef5.

Conflicts:
Android.mk
src/hb-unicode-private.hh

Copied manually from harfbuzz-0.9.30.tar.bz2:

src/hb-buffer-deserialize-json.hh
src/hb-buffer-deserialize-text.hh
src/hb-ot-shape-complex-indic-machine.hh
src/hb-ot-shape-complex-myanmar-machine.hh
src/hb-ot-shape-complex-sea-machine.hh
src/hb-version.h

Bug: 14954902
Change-Id: I5fac38d94b602c17efafa01bb3bfc572b15a2f21
8b16ff12590200afb08e8821e3f14d2fdf8efbda 09-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Fix build after recent changes to Offset
b-ot-name-table.hh
73f7f8919ea1f09b8c5b29f231ac84105cde2145 09-Jul-2014 Behdad Esfahbod <behdad@behdad.org> Define _POSIX_C_SOURCE only if it is not defined

Fixes https://github.com/behdad/harfbuzz/pull/45
b-blob.cc
0cd94491b99aed438ad79a55cdfced8d1b657179 09-Jul-2014 Behdad Esfahbod <behdad@behdad.org> [ucdn] Update to Unicode 7.0.0 data

From http://github.com/behdad/ucdn
b-ucdn.cc
b-ucdn/README
b-ucdn/ucdn.c
b-ucdn/ucdn.h
b-ucdn/unicodedata_db.h
68f724484b1663255ee249481624e552d2e2313f 30-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Remove some more now-unused special-cases
b-ot-shape-complex-indic.cc
e79c9489802f99dc7eb8b4c2765c4c71b5f80e60 30-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Remove special-casing of U+1CF2,1CF3

These were introduced in a498565cedf0441ae723c5e5969f637d792a15e7,
but IndicSyllabicCategory has had the correct value already, so the
special code was never needed.
b-ot-shape-complex-indic.cc
d743ce78e10758b7dbaf0cfd191309e5ef646881 30-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table] Update to Unicode 7.0 data

Touch code just enough to preserve previous syllable structure
and functionality as closely as possible. Many further cleanups
coming later.
en-indic-table.py
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic-table.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
5fa21b3ab7175f55f89cb194b544d5d4bd06a481 30-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table] Fix category frequency counts in comments
en-indic-table.py
b-ot-shape-complex-indic-table.cc
5c4e3e9a57b6b735e7d72cbd5f4070cf024d7015 30-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Whitespace
b-ot-shape-complex-indic-private.hh
af528b6674bccac3efd13f8b33fcdc6aeb178f4c 28-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Fix typo; ouch!
b-ot-cmap-table.hh
7d4ada66c96a748ce92f8e8edac149361c3dc829 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Mark unsed members with a "Z" suffix

There may be more. There are members that are by definition
redundant or reserved and not needed, NOT what we *currently*
don't use.

I'm sure there's more...
b-open-file-private.hh
b-ot-cmap-table.hh
b-ot-layout-common-private.hh
23afcff1d14e57f5ce30a4100698d4f2dc530958 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [ot-font] Implement Unicode variation selectors
b-ot-font.cc
a5a4736916b6035e6413d4619f9e7287e683d51b 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [cmap] Implement subtable format 14
b-ot-cmap-table.hh
586b60622c33878f9ca4826b4ef07369d32bf039 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor: final bits of cleanup
b-open-type-private.hh
b-ot-layout-common-private.hh
51d9ba09bc78188ec87218aef5232e80568c1712 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor
b-open-type-private.hh
3084767e92483c669f38319f153c498e9a6b92c7 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor: Remove LongArrayOf
b-open-file-private.hh
b-open-type-private.hh
41ea59495032e712fa6f801350ee00d5f00b5724 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor: Remove LongSortedArrayOf
b-open-type-private.hh
b-ot-cmap-table.hh
bb6ecf2ce5c2679c298741af17836a22e1d68121 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor: Remove LongOffsetArrayOf and LongOffsetLongArrayOf
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-gdef-table.hh
99d281712390fd54e523b2f0580d10445457ec2f 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor: Remove GenericOffset
b-open-type-private.hh
b-ot-layout-common-private.hh
9da552dcc5b89b3bbbe5a55fb7c543222382e12a 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor: Remove some GenericXXX templates
b-open-type-private.hh
b-ot-cmap-table.hh
b-ot-layout-common-private.hh
36073ede5b52bd1231622cbacd1bee6b82696d81 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor: Reorder template parameter order
b-open-type-private.hh
b-ot-cmap-table.hh
0394ec1bfbd7806cbe9fc809b34f96f8d12ffbf2 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor: Introduce GenericOffset
b-open-type-private.hh
0d1b3419a7bbfd18ab8fed1abd3a41dec11e8d97 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor: Use template parameter default values for OffsetTo
b-open-type-private.hh
546b1adcdce2d3592843938b0b81ff32e67b0b83 27-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor: Use template parameter default values for hb_prealloced_array_t
b-private.hh
911ca38645bd51764e7859bc482319e8f6d2f710 24-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Add back API removed recently

Add hb_ot_layout_language_get_required_feature_index() again, which
is used in Pango. This was removed in
da132937989acb4d8ca9bd41c79f98750e7dda30 in favor of
hb_ot_layout_language_get_required_feature().

API changes:

- Added hb_ot_layout_language_get_required_feature_index back.
b-ot-layout.cc
b-ot-layout.h
89e4946929a8cd2359c7d76fa9272d5604243002 22-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Add new IndicSyllabicCategory short forms for Unicode 7.0
en-indic-table.py
dcee838e89c2863c2fda4e8f098e720637e02335 22-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor
en-arabic-table.py
en-indic-table.py
f2ad86e6053fa87ab188c36edc3d98c92324c049 21-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table-gen] Minor
en-indic-table.py
2ec62279aab8c2263f17ffbc7c6f74304674f9a8 21-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table] Update to Unicode 6.3.0

Was from 6.2.0. It's a no-op. Committing for the record.
b-ot-shape-complex-indic-table.cc
5d4d7384efa97a30893ad28b9ad9a994722de12c 21-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Minor: format
b-ot-shape-complex-arabic.cc
44243ae5902cc420e6bf6ec2fca2584ba93ff2fb 21-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [arabic-table] Update to Unicode 7.0

Old table was from 6.2. Remove hard-coded Mongolian and Phags-pa data.
This completes support for new scripts Manichian and Psaltar Pahlavi.
b-ot-shape-complex-arabic-table.hh
b-ot-shape-complex-arabic.cc
cd86ab9b4f4d7bd4f563be64a83714fc8fb395d7 21-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [arabic-table] Add ZWJ/ZWNJ now that table is segmented
en-arabic-table.py
b-ot-shape-complex-arabic-table.hh
b-ot-shape-complex-arabic.cc
2390d9b67e1dfeccd3f0850d1304c52b54817ca0 21-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [arabic-table] Further tune

In anticipation of Unicode 7.0 data coming in the next commit.
en-arabic-table.py
b-ot-shape-complex-arabic-table.hh
a133e6067aaebc494c0156b5fac7f4a879e12dbe 21-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table] Minor
en-indic-table.py
b900fa2c8cc088dbcbdbf90bfdf8764f9ee1c96a 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [arabic-table] Use segmented table

No functional change.
en-arabic-table.py
b-ot-shape-complex-arabic-table.hh
b-ot-shape-complex-arabic.cc
c2e113404640bf9b8bac469d0803ac946e77964f 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table] Make output stable
en-indic-table.py
55abfbd2ac1626af16151298a0837b837d0796df 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table] Minor

No output change.
en-indic-table.py
f88670749006991282bcc4e8b6218487295ca670 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [arabic-table] Don't write comments

No functional change.
en-arabic-table.py
b-ot-shape-complex-arabic-table.hh
200dfe3eb10feda2ad25940338b08011f4757ca4 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [arabic-table] Use short names for values

No functional change.
en-arabic-table.py
b-ot-shape-complex-arabic-table.hh
3f5327a41efcf50f64d9498ef3dfd6875ef6a5ab 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [arabic-table] Read Blocks.txt and shuffle code around

No functional change.
akefile.am
en-arabic-table.py
b-ot-shape-complex-arabic-table.hh
171f970e4f72d9fe1af30eab32b96906ee4a14f5 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table] Black-list Thai, Lao, and Tibetan

We don't need Indic table for those.
en-indic-table.py
b-ot-shape-complex-indic-table.cc
65ac2dae4f284f563b2dc476a21e2b5a48124de8 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table] Speed up lookup
en-indic-table.py
b-ot-shape-complex-indic-table.cc
64442a3f4c5c7be08893454742cad6bfe73cb8d7 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table] Fix compiler warning
en-indic-table.py
b-ot-shape-complex-indic-table.cc
0436e1d50527497ebe5053b51a34ce6590276249 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table] Make table more compact by not covering full blocks

-#define indic_offset_total 4416
+#define indic_offset_total 3816

-}; /* Table occupancy: 60% */
+}; /* Table occupancy: 69% */
en-indic-table.py
b-ot-shape-complex-indic-table.cc
190a251479b3cfc68871ff1daf9a9d1abe3f86e6 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic-table] Remove block range from data table

No functional change.
en-indic-table.py
b-ot-shape-complex-indic-table.cc
2b051c6057920c564c13c5d6a3e6dca93446fa12 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Rename HB_VERSION_CHECK and hb_version_check to "atleast"

HB_VERSION_CHECK's comparison was originally written wrongly
by mistake. When API tests were written, they were also written
wrongly to pass given the wrong implementation... Sigh.

Given the purpose of this API, there's no point in fixing it
without renaming it. As such, rename.

API changes:

HB_VERSION_CHECK -> HB_VERSION_ATLEAST
hb_version_check -> hb_version_atleast
b-common.cc
b-version.h.in
cabfa538ed4b1355326fa8de05f7209dda1c1c7a 20-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Adjust unused doc symbols
b-ot-shape.h
da132937989acb4d8ca9bd41c79f98750e7dda30 27-Apr-2014 Jonathan Kew <jfkthame@gmail.com> Rework handling of requiredFeature to solve problem with rlig in arial.ttf from winxp

https://bugzilla.mozilla.org/show_bug.cgi?id=986802
Fixes https://github.com/behdad/harfbuzz/pull/39

API Change:

-hb_ot_layout_language_get_required_feature_index
+hb_ot_layout_language_get_required_feature

New API takes an extra pointer argument. Pass NULL in to get
behavior of previous API.

Reworked by behdad
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-map.cc
ain.cc
df554af99db390e42d378983bb3fcf583477a1d7 19-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Rename search() to bsearch() and lsearch()

Such that the complexity of the algorithm used is clear at
call site.
b-open-type-private.hh
b-ot-cmap-table.hh
b-ot-layout-common-private.hh
fb8cc86ff99c08064ac58a559bb66cc340693b92 19-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Rename sort() to qsort()

In an effort to make the algorithm used clear.
b-coretext.cc
b-ot-map.cc
b-private.hh
b-uniscribe.cc
577ca4814314c374824cac736996b9cdd4f9d11f 18-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [unicode7] Update list of Default_Ignorable codepoints
b-unicode-private.hh
7cfee3827636f0dff7df5c8975a4fadd1b4bfbd5 29-Apr-2014 Behdad Esfahbod <behdad@behdad.org> [unicode7] Route Manichaean and Psalter Pahlavi through Arabic shaper

Still needs update to joining table to fully work.
b-ot-shape-complex-private.hh
a4a7899cd93fb9d1bc2163a4bbabfa733ee5bd52 29-Apr-2014 Behdad Esfahbod <behdad@behdad.org> [unicode7] Mark right-to-left scripts
b-common.cc
62587bfc5178a447ef66d88eab7412a7efe84692 29-Apr-2014 Behdad Esfahbod <behdad@behdad.org> [unicode7] Declare Unicode 7 scripts
b-common.h
dc61294aa93d36d0c5d187d4a692560a7cb46444 28-Apr-2014 Behdad Esfahbod <behdad@behdad.org> [unicode7] Add missing ISO 15924 tags
b-common.h
7526373e70bc4c2e2072da36babf9399fcf483b8 17-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [coretext] Remove unused var
b-coretext.cc
798e4185bc71b1a63528e6b0af236d4c964ec607 10-Jun-2014 Jonathan Kew <jfkthame@gmail.com> When zeroing mark widths for LTR, also adjust offset...

...so that they overstrike preceding glyph.

https://github.com/behdad/harfbuzz/pull/43
b-ot-shape.cc
80f7405a5208f88b8615aa4ce4c54ffeb16f04f8 10-Jun-2014 Jonathan Kew <jfkthame@gmail.com> [Thai] set the correct general category on Nikhahit when decomposing Sara-Am.
b-ot-shape-complex-thai.cc
1d634cbb4b0338e1c2841127a72c5fac3a2a5ca1 06-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Fix base-position when 'pref' is NOT formed

If pre-base reordering Ra is NOT formed (or formed and then
broken up), we should consider that Ra as base. This is
observable when there's a left matra or dotreph that positions
before base.

Now, it might be that we shouldn't do this if the Ra happend
to form a below form. We can't quite deduce that right now...

Micro test added. Also at:

https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
b-ot-shape-complex-indic.cc
04dc52fa15f5b7f9eb5f448ea43e7ef1b2269e88 06-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Recover OT_H undergone ligation and multiplication

Sometimes font designers form half/pref/etc consonant forms
unconditionally and then undo that conditionally. Try to
recover the OT_H classification in those cases.

No test number changes expected.
b-ot-layout-private.hh
b-ot-shape-complex-indic.cc
39c8201f8e361e8c0f23f07bf20124ccadc6086c 06-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Improve base re-finding

No test numbers change.
b-ot-shape-complex-indic.cc
c04d5f0dd24d0ed9560fb9aebb5561ce946743c3 06-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Minor
b-ot-shape-complex-indic.cc
832a6f99b34f334b1e82b8e3a7ad137e823d203c 04-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Don't reorder reph/pref if ligature was expanded

Normally if you want to, say, conditionally prevent a 'pref', you
would use blocking contextual matching. Some designers instead
form the 'pref' form, then undo it in context. To detect that
we now also remember glyphs that went through MultipleSubst.

In the only place that this is used, Uniscribe seems to only care
about the "last" transformation between Ligature and Multiple
substitions. Ie. if you ligate, expand, and ligate again, it
moves the pref, but if you ligate and expand it doesn't. That's
why we clear the MULTIPLIED bit when setting LIGATED.

Micro-test added. Test: U+0D2F,0D4D,0D30 with font from:

[1]
https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-shape-complex-indic.cc
b5be2317201774c84470167767ad83c8637cad5b 06-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [gsub] Adjust single-length ligature subst to act like single subst
b-ot-layout-gsub-table.hh
aae69451dfbf2e3671c555c234f788c194302818 06-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [gsub] Minor shuffling
b-ot-layout-gsub-table.hh
b6b304f12be917b7449b3ac9409069fcd4a27d95 05-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Add TODO re zero-len MultipleSubst sequences
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
f1a72fe7bf863535ec09b559cc0bd878fd0799f2 05-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [ot-font] Fix cmap EncodingRecord cmp order
b-ot-cmap-table.hh
ce34f0b07e5324ed52e6e2c43000c2b09ee010d4 05-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [ot-font] Use binary search for format12 cmap subtable
b-open-type-private.hh
b-ot-cmap-table.hh
257d1adfa1b3422c511c55e641840a6e31ec6008 05-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [ot-font] Work around broken cmap subtable format 4 length

Roboto was hitting this. FreeType also has pretty much the
same code for this, in ttcmap.c:tt_cmap4_validate():

/* in certain fonts, the `length' field is invalid and goes */
/* out of bound. We try to correct this here... */
if ( table + length > valid->limit )
{
if ( valid->level >= FT_VALIDATE_TIGHT )
FT_INVALID_TOO_SHORT;

length = (FT_UInt)( valid->limit - table );
}
b-ot-cmap-table.hh
51f563579b94e1ee23ced9bbcc7dd3341535ce72 05-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Move try_set to sanitize context
b-open-type-private.hh
b-ot-layout-common-private.hh
500737e8e16dce5248aff394899bb3761a9c3bbf 05-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [ot-font] Don't select a Null cmap subtable

Can happen either in broken fonts, or as a result of sanitize().
b-ot-cmap-table.hh
dac86026a6bae5a8a03cfe885bf93f32e5f48614 03-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Fix some cppcheck warnings

Bug 77800 - cppcheck reports
b-common.cc
b-ot-layout-common-private.hh
b-private.hh
b-shape-plan.cc
c306410cab368a27c1941a2625d3b475edeaac04 03-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Bug 77732 - Fix unused typedef warning for ASSERT_STATIC with GCC 4.8
b-private.hh
ae2b854eab7f1c48e56751c987a714c2c18d6eb6 03-Jun-2014 Behdad Esfahbod <behdad@behdad.org> Move code around
b-private.hh
17c3b809f42aec34d83dba2e6229ad85804bebae 02-Jun-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Treat U+A8E0..A8F1 as OT_A instead of OT_VD

Apparently they can intermix with other OT_A.

Test: U+0915,A8E2,1CD0
b-ot-shape-complex-indic.cc
6ae13f257c3986517c097fa666ab9f58bdc918b5 30-May-2014 Behdad Esfahbod <behdad@behdad.org> [graphite2] Fix cluster mapping

Patch from Martin Hosken. I expect this to fix the following bugs:

https://bugs.freedesktop.org/show_bug.cgi?id=75076
https://bugzilla.gnome.org/show_bug.cgi?id=723582
https://bugzilla.redhat.com/show_bug.cgi?id=998812
b-graphite2.cc
7977ca17aac34b9ab10622928bed8afa2177f16a 29-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Allow decimal and Brahmi digits as placeholders

Tests: U+0967,0951 U+0031,093F
b-ot-shape-complex-indic.cc
e8b5d64039614ecce472eda1a7a603736da25d86 29-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Do NOT allow reph formation on placeholders

Only allow it on DOTTED CIRCLE. No effect on test numbers.

Test: U+0930,094D,00A0
b-ot-shape-complex-indic-machine.rl
52b562a6a058131c0103aaa5404d053e6465bb23 28-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Clean up a bit

No functional change intended.
b-ot-shape-complex-indic.cc
3bf652b90783e8244c153739585d95dc4162efb4 28-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Treat U+002D and U+2010..2014 as placeholders
b-ot-shape-complex-indic.cc
e0de95f40244924cb8f9f7abca7f53117044a0eb 27-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Treat U+00D7 MULTIPLICATION SIGN as placeholder
b-ot-shape-complex-indic.cc
cf78dd483cbe1759a8ecb731879e041a53ba9bb3 27-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic/myanmar] Rename OT_NBSP to OT_PLACEHOLDER
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
186ece94c8838e95db240d3e7c3ce415da6be81e 27-May-2014 Behdad Esfahbod <behdad@behdad.org> [myanmar] Use OT_NBSP instead of OT_DOTTEDCIRCLE for OT_GB

No functional change.
b-ot-shape-complex-myanmar-machine.rl
b-ot-shape-complex-myanmar.cc
cf71d28c380819cb0f7f0f22f6ff9e4aa881a2b8 27-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic/myanmar] Refactor a few macros
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
2307268e01d27a999b56a2f573dfcee8b2a7949b 27-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Treat U+0A72..0A73 like regular consonants

Unicode 6.x IndicSyllableCategory categorizes them as
placeholders, but they can subjoin.
b-ot-shape-complex-indic.cc
e9b2a4cfe593bdbe9288571635ba26ac42ede987 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Support U+1CED
b-ot-shape-complex-indic.cc
d19f8e85702a1e473efe2f02027984dcc127602a 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Support U+A8F2..A8F7,1CE9..1CEC,1CEE..1CF1
b-ot-shape-complex-indic.cc
ddbdfcbf1c10eed0a7b81b29fee99f1bd22113e5 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Simplify grammar

No functional change.
b-ot-shape-complex-indic-machine.rl
4e9b1f662b23966e67c548b86afeff2bec9b0eb7 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Always start new syllable for Avagraha

In fact, the previous grammar was ambigious. No functional
change.
b-ot-shape-complex-indic-machine.rl
9f9bd9bf31161660214b8b39a78cdafbb79db1be 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Rename avagraha cluster to symbol cluster

In anticipation of adding more characters to that class of clusters.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
a498565cedf0441ae723c5e5969f637d792a15e7 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Support U+1CF2,U+1CF3
b-ot-shape-complex-indic.cc
ecb98babbaa065940b40ca8954a454f0e2cdcff0 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Support U+1CE2..U+1CE8
b-ot-shape-complex-indic.cc
37bf2c9224e32fdc99c20158c6dc0a4602ec1292 23-May-2014 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
131e17ff9ae792cafa7a500043acb373802ee872 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Support U+1CF5,1CF6
b-ot-shape-complex-indic.cc
72ead0cc72dac4d1c985ead065bb820f93f14a1d 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Treat U+1CE1 as a tone-mark too

It's spacing, but otherwise the same as the other ones.
b-ot-shape-complex-indic.cc
e848bfae7c975a6fae434daf8e3db4d69914df9f 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Recategorize U+A8E0..A8F1 as OT_VD

Up to two of them come after all OT_A characters.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
c519536c34c842304da558dd4a9e3844fc261b20 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Allow up to three tone marks

According to Roozbeh, there are valid combinations in Unicode
proposals for up to three. Previously we were allowing up to two.
b-ot-shape-complex-indic-machine.rl
c11fc6833980fce6d70c5ae0c6623de97a3eb30a 23-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Support more extended Devanagari tone marks

Also adjust U+0953,0954 handling.
b-ot-shape-complex-indic.cc
26c836e53d55a2e2d4c17fd9ea1884eec33ce015 22-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Handle "Cantillation marks for the Samaveda"
b-ot-shape-complex-indic.cc
29531128f2f4342d537817746863705df80efe4b 15-May-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Improve reph formation of Sinhala and Telugu

Sinhala and Telugu use "explicit" reph. That is, the reph is formed by
a Ra,H,ZWJ sequence. Previously, upon detecting this sequence, we were
checking checking whether the 'rphf' feature applies to the first two
glyphs of the sequence. This is how the Microsoft fonts are designed.
However, testing with Noto shows that apparently Uniscribe also forms
the reph if the lookup ligates all three glyphs. So, try both
sequences.

Doesn't affect test results for Sinhala or Telugu.

https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=232
b-ot-shape-complex-indic.cc
8c703f13bf8b4b276093b1c42cd3759e34b6787f 14-May-2014 Oleg Oshmyan <chortos@inbox.lv> Fix build with --coretext on older OS X

Fixes https://github.com/behdad/harfbuzz/pull/40
b-coretext.h
439b05867c0856a81fa8f9bea3a7465b4b4bdd91 15-May-2014 Behdad Esfahbod <behdad@behdad.org> [myanmar] Allow MedialYa+Asat in the grammar

The grammar in the OT spec, and the existing Windows implementation
seem to be confused around where to allow Asat around the medial
consonants.

The previous grammar for medial group was allowing an Asat after
the medial group only if there was a medial Wa or Ha, but not if
there was only a medial Ya. This doesn't make sense to me and
sounds reversed, as both medial Wa and Ha are below marks while
Asat is an above mark. An Asat can come before the medial group
already (in fact, multiple ones can. Why?!). The medial Ya
however is a spacing mark and according to Roozbeh it's valid
to want an Asat on the medial Ya instead of the base, so it looks
to me like we want to allow an Asat after the medial group if
there *was* a Ya but not if there wasn't any. Not wanting to
produce dotted-circle where Windows is not, this commit changes
the grammar to allow one Asat after the medial group no matter
what comes in the group.

Test: U+1002,103A,103B vs U+1002,103B,103A
b-ot-shape-complex-myanmar-machine.rl
c95587618c88d187be64f923033dae151cf820be 14-May-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Minor note re cmap subtable format 2 and 8
b-ot-cmap-table.hh
b7878cd58ea9a67236e1e0228c35b5b03ec4ff9c 14-May-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Implement cmap subtable format 0
b-open-type-private.hh
b-ot-cmap-table.hh
ca7b77431d1e0aaa803722be8be85a368a385f47 14-May-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Factor out code between cmap sutable format 12 and 13
b-ot-cmap-table.hh
94759e8219ed08392573bae948a8135e16b8e0d0 14-May-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Factor out code between cmap subtable format 6 and 10
b-ot-cmap-table.hh
1a8ffc512987c1ff1b4896549f80b145c85454a8 14-May-2014 Behdad Esfahbod <behdad@behdad.org> Minor
b-blob.h
91bbfca87527fa14d6ebec86b087f2a989381872 13-May-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Implement cmap subtable formats 6 and 10
b-ot-cmap-table.hh
d294a2cb165c4f20daa5624969067c51eb9aef58 12-May-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Implement cmap subtable format 13
b-ot-cmap-table.hh
0d75793fae95ed9f6b8522ae3af4fcdf397d8c36 12-May-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Implement cmap subtable format 12
b-ot-cmap-table.hh
b-ot-font.cc
3608a6847e7b7eb4206df049158513a085810afd 12-May-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Hook up cmap table to hb_ot_font_funcs()
b-ot-cmap-table.hh
b-ot-font.cc
c8a47452993b9dee6854bfc866aca4a20142696f 10-May-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Implement cmap subtable format 4
b-ot-cmap-table.hh
4719621f20dfd6a0377c650a7b4df223c18dc143 09-May-2014 Behdad Esfahbod <behdad@behdad.org> Minor
b-open-type-private.hh
41ca1fbebf61cf26e1e0e4b11f4a5b52fb7d88a9 09-May-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Start implementing cmap table
akefile.am
b-ot-cmap-table.hh
b-ot-font.cc
c7074b8798048324cb8850c55908ce77fc33d11e 09-May-2014 Behdad Esfahbod <behdad@behdad.org> [otlayout] Add GenericArrayOf::search()
b-open-type-private.hh
40a479797add42fa42b78d4267920ef75bfb6b9a 09-May-2014 Behdad Esfahbod <behdad@behdad.org> [otlayout] Add GenericSortedArrayOf
b-open-type-private.hh
0ddecabc6de205b121bec31fbf670f37cc9454ef 02-May-2014 Behdad Esfahbod <behdad@behdad.org> [main] Minor improvement to output
ain.cc
6faff8e4132197ba06f0e685b82efe35b546cf64 28-Apr-2014 Behdad Esfahbod <behdad@behdad.org> Add static storage classifier to inline functions

Before we were just relying on the compiler inlining them and not
leaving a trace in our public API. Try to fix. Hopefully not
breaking anyone's build.
b-open-type-private.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-private.hh
b-ot-map-private.hh
b-private.hh
9c9411839bb89d0a1a83120af0982c60e0e393d9 28-Apr-2014 Behdad Esfahbod <behdad@behdad.org> [tibetan] Reorder PADMA sign to occur after other below marks

Based on suggestion from Andrew Glass.

Test: U+0F40,0FC6,0F83
b-unicode-private.hh
b082ef373cefb35dd98b5f2f0b677ccc7806f51e 25-Apr-2014 Behdad Esfahbod <behdad@behdad.org> Typo
b-ot-shape-complex-indic.cc
828e109c7aac3389cc3b89ea1f13388aefb63804 19-Apr-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Fix-up zero-context matching

commit b5a0f69e47ace468b06e21cf069a18ddcfcf6064
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Oct 17 18:04:23 2013 +0200

[indic] Pass zero-context=false to would_substitute for newer scripts

For scripts without an old/new spec distinction, use zero-context=false.
This changes behavior in Sinhala / Khmer, but doesn't seem to regress.
This will be useful and used in Javanese.

The *intention* was to change zero-context from true to false for scripts that
don't have old-vs-new specs. However, checking the code, looks like we
essentially change zero-context to always be true; ie. we only changed things
for old-spec, and we broke them. That's what causes this bug:

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

The root of the bug is here:

/* Use zero-context would_substitute() matching for new-spec of the main
* Indic scripts, but not for old-spec or scripts with one spec only. */
bool zero_context = indic_plan->config->has_old_spec || !indic_plan->is_old_spec;

Note that is_old_spec itself is:

indic_plan->is_old_spec = indic_plan->config->has_old_spec && ((plan->map.chosen_script[0] & 0x000000FF) != '2');

It's easy to show that zero_context is now always true. What we really meant was:

bool zero_context = indic_plan->config->has_old_spec && !indic_plan->is_old_spec;

Ie, "&&" instead of "||". We made this change supposedly to make Javanese
work. But apparently we got it working regardless! So I'm going to fix this
to only change the logic for old-spec and not touch other cases.
b-ot-shape-complex-indic.cc
66c6a48b6ce9dab6375ba1a23d7e450d6974852a 15-Apr-2014 Behdad Esfahbod <behdad@behdad.org> Add HB_NO_MERGE_CLUSTERS

Disables any cluster-merging. Added for testing purposes while
we investigate what kind of API to add for this.
b-buffer.cc
5fd996c4a4049a75c6d9e964f1a81c00ff191893 10-Apr-2014 Behdad Esfahbod <behdad@behdad.org> Further adjust check-defs and check-symbols for mipsel

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=74491
heck-defs.sh
heck-symbols.sh
75ec6d0bc5ca0170c73e4d1099a898d38d8f85c0 10-Apr-2014 Behdad Esfahbod <behdad@behdad.org> Tighten up check-static-inits.sh check

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=74490
heck-static-inits.sh
110ec0714a11b9417eed82f7d25b85c9dc7b6df4 09-Apr-2014 Behdad Esfahbod <behdad@behdad.org> Typo
b-blob.h
0682ddd05c22a400ff5ce97d4ea4b52a18b845ae 09-Apr-2014 Behdad Esfahbod <behdad@behdad.org> [indic] Support U+17DD KHMER SIGN ATTHACAN

As requested by Martin Hosken on the list.
b-ot-shape-complex-indic.cc
05870ed62edd8728d6d732f60d6b7e149d45e6f4 02-Apr-2014 Primiano Tucci <primiano@chromium.org> Use __aarch64__ for 64-bit ARM detection, not __arm64__

Many GCC versions don't define __arm64__
b-atomic-private.hh
04d894e89795041b2055dc172744a018644f2bca 25-Mar-2014 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsubgpos-private.hh
903648437c180c7b039801cdb0672e0f8e14afd4 24-Mar-2014 Behdad Esfahbod <behdad@behdad.org> Start fleshing out builtin font functions
akefile.am
b-glib.cc
b-icu.cc
b-ot-font.cc
b-ot-font.h
b-ot-hhea-table.hh
b-ot-hmtx-table.hh
b-ot.h
b-tt-font.cc
343a0e4e747d93eeeb724c5d585f5ba036a0df84 21-Mar-2014 Behdad Esfahbod <behdad@behdad.org> Add "make built-sources"
akefile.am
b96af03c20e46105982b3608b608614403540661 20-Mar-2014 Konstantin Ritt <ritt.ks@gmail.com> Fix build with --coretext on iOS

On iOS CoreText and CoreGraphics are stand-alone frameworks
b-coretext.h
09732cc6695b8e41ba6cdcd4058a4f7cad90167a 19-Mar-2014 Behdad Esfahbod <behdad@behdad.org> Remove dead warning
b-unicode.cc
b-warning.cc
a949cd329e49d2c0ad6f1e023f324790d886dafe 17-Mar-2014 Behdad Esfahbod <behdad@behdad.org> Don't use "register" storage class specifier

Fixes warnings.
https://bugzilla.mozilla.org/show_bug.cgi?id=984081
b-private.hh
0082dbeae6c25a7859960b7e791a540ad04246d9 16-Mar-2014 jfkthame <jfkthame@gmail.com> wrap definition of free_langs() with HAVE_ATEXIT

...to avoid an unused function warning; see mozilla bug https://bugzilla.mozilla.org/show_bug.cgi?id=984081.
b-common.cc
a9e25e90a4ca05746fda4a598ad698db1d2c5c1a 15-Mar-2014 Behdad Esfahbod <behdad@behdad.org> [coretext] Add hb_coretext_face_create()

Not tested.
b-coretext.cc
b-coretext.h
c79865f90f62309dc64c8d3f2f503ec2aa4b7ec1 15-Mar-2014 Behdad Esfahbod <behdad@behdad.org> [coretext] Add coretext_aat shaper

This is a higher-priority shaper than default shaper ("ot"), but
only picks up fonts that have AAT "morx"/"mort" table.

Note that for this to work the font face's get_table() implementation
should know how to return the full font blob.

Based on patch from Konstantin Ritt.
b-coretext.cc
b-coretext.h
b-shaper-list.hh
af1aa362cacc652ab8ffda05a5d98a3ff5430439 14-Mar-2014 Behdad Esfahbod <behdad@behdad.org> If HAVE_ICU_BUILTIN is defined, use hb-icu Unicode callbacks

Useful for Android / Chrome / etc when ICU is built in the same
library as harfbuzz itself.
b-unicode.cc
853daf857f231c9ce0277a78abff1241150ea903 14-Mar-2014 Behdad Esfahbod <behdad@behdad.org> Remove old cruft
b-shaper-list.hh
bb8ffb581b89cf27fb8e0743b81bbda21654233e 04-Mar-2014 Behdad Esfahbod <behdad@behdad.org> Use AM_MISSING_PROG for ragel and git
akefile.am
a82165248cddb720576464b8e59a986491d3f2e9 18-Feb-2014 Behdad Esfahbod <behdad@behdad.org> Only do fallback Hebrew composition if no GPOS 'mark' available

Apparently some modern fonts have proper GPOS mark positioning
tables, but undesirable precomposed forms! See thread
"Hebrew composition to presentation forms" and:

http://tex.stackexchange.com/questions/156775/having-trouble-with-vowel-positioning-in-ezra-sil-xelatex

Test case: U+fb1d,05d9,05b4
b-ot-shape-complex-hebrew.cc
b-ot-shape-private.hh
db068d81cda180a91638e5539984f8139aff49c6 10-Feb-2014 Werner Lemberg <wl@gnu.org> typo in ucdn's Makefile.am
b-ucdn/Makefile.am
fbb2847f541389f40718af71c4945024ae177ab2 05-Feb-2014 Behdad Esfahbod <behdad@behdad.org> Improve MemoryBarrier() implementation

See thread "[HarfBuzz] compilation error of 0.9.26 with MinGW"
started by Werner.
b-atomic-private.hh
7691a154e50f8c8c77bbd94787686262955bf5d4 29-Jan-2014 Jonathan Kew <jfkthame@gmail.com> Ensure hb_script_t can safely hold any hb_tag_t value it's given.

Fixes https://github.com/behdad/harfbuzz/pull/21
b-common.h
c29993a181c2139eaec97b5f6225824040ca3ac9 28-Jan-2014 Behdad Esfahbod <behdad@behdad.org> [coretext] Handle surrogate pairs when generating notdef glyphs

Fixes github.com/behdad/harfbuzz/pull/19
b-coretext.cc
748b2782e4898420003a3bbc041dcccbe9e3edc2 28-Jan-2014 Behdad Esfahbod <behdad@behdad.org> [coretext] Minor optimization
b-coretext.cc
24e6b11f12788500182715a64d4771a22c5b7525 28-Jan-2014 Konstantin Ritt <ritt.ks@gmail.com> Fix double destruction in case of OOM
b-graphite2.cc
083225916a19f6d67017523af87386933bd9ecdc 22-Jan-2014 Konstantin Ritt <ritt.ks@gmail.com> Micro optimizations
b-ot-layout-gpos-table.hh
c9522de2335e4ef5fe65a72745c10943827a8da2 22-Jan-2014 Konstantin Ritt <ritt.ks@gmail.com> Make it possible to disable the fallback shaper at configure time

The OT shaper supersedes the fallback shaper in every case
and the latter become an extra weight for 99.9% of users.
akefile.am
b-shaper-list.hh
6775da3a7c07db6c032cf429dc199d471948db56 23-Jan-2014 Behdad Esfahbod <behdad@behdad.org> Fix clang warning 'private field 'xxx' is not used

Fixes https://github.com/behdad/harfbuzz/pull/16
b-open-type-private.hh
62299826f4905e080b9497bce335e093b287494e 23-Jan-2014 Behdad Esfahbod <behdad@behdad.org> Fix typo in _hb_buffer_serialize_glyphs_text()

Fixes https://github.com/behdad/harfbuzz/pull/17
b-buffer-serialize.cc
ae23c24c32f474a34484ee78bc177ad31fa5e6d0 22-Jan-2014 Behdad Esfahbod <behdad@behdad.org> [arabic] Disable 'cswh' by default

I believe Windows 8 disables it, and spec update dated
Jan 2014 also clearly says it's disabled by default:

http://www.microsoft.com/typography/OpenTypeDev/arabic/intro.htm#features
b-ot-shape-complex-arabic.cc
08cf5d75ef0c75095173dec822ccb07defaaa6c2 22-Jan-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Don't try to compose if normalization is off
b-ot-shape-normalize.cc
0596343bfeb80ad6b19d459654edf7dfded6affe 22-Jan-2014 Behdad Esfahbod <behdad@behdad.org> Merge pull request #13 from jfkthame/hangul-shaper

Tone-mark reordering and improved Old Hangul support
62cb28dfc668cae9cbff826229bde2271e157927 20-Jan-2014 Jonathan Kew <jfkthame@gmail.com> fixup for 64-bit windows build
b-uniscribe.cc
83d7e7915a5eaa8ff4c7014c319844e7dffd8225 20-Jan-2014 Jonathan Kew <jfkthame@gmail.com> [hangul] Fix ordering of dotted circle with Hangul tone mark (reported by Dohyun Kim).
b-ot-shape-complex-hangul.cc
deef1862657d55b7ae8d45f4eecbe45c80785c4e 20-Jan-2014 Jonathan Kew <jfkthame@gmail.com> [hangul] Don't force zero-width for marks - this is not wanted for the Jamo Filler glyphs.
b-ot-shape-complex-hangul.cc
391934db0a171aeb2057ebcd4a38ed81621e7393 20-Jan-2014 Jonathan Kew <jfkthame@gmail.com> [unicode] Exclude the Jamo Filler characters from Default_Ignorable, as some fonts want these to be visible/spacing glyphs.
b-unicode-private.hh
7244b3fc3bf9757dd094709d36bea68682264e20 20-Jan-2014 Jonathan Kew <jfkthame@gmail.com> [hangul] Reorder Hangul tone mark to beginning of syllable, unless font implements it using a zero-width glyph.
b-ot-shape-complex-hangul.cc
103436838df3a77552d3d33fc4bd80f09d9bf079 20-Jan-2014 Jonathan Kew <jfkthame@gmail.com> [hangul] Apply the appropriate *jmo features to decomposed syllables, including Old Hangul sequences that don't have Unicode compositions. Merge clusters in decomposed syllables.
b-ot-shape-complex-hangul.cc
8fc1f7fe74a25bf8549f5edd79c7da6b720eb064 02-Jan-2014 Behdad Esfahbod <behdad@behdad.org> [ot/hangul] Don't decompose Hangul even when combining marks present

As discussed on
https://github.com/behdad/harfbuzz/pull/10#issuecomment-31442030
b-ot-shape-complex-hangul.cc
b-ot-shape-normalize-private.hh
b-ot-shape-normalize.cc
64426ec73a987bfe1e71a293ee195f268897e8d6 02-Jan-2014 Behdad Esfahbod <behdad@behdad.org> [ot] Simplify composing

Not tested. Ouch.
b-ot-shape-normalize.cc
8de20b1e8a1c4d2081f64e695045e6e4da7ce144 02-Jan-2014 Behdad Esfahbod <behdad@behdad.org> Add font->has_glyph()
b-font-private.hh
b-ot-shape-complex-hangul.cc
b-ot-shape.cc
f6298e55ae0f0f23f66935226f78afb98320ea78 02-Jan-2014 Behdad Esfahbod <behdad@behdad.org> [fallback] Minor
b-fallback-shape.cc
29ea403d67e29c2d531c1f613ce3d69e60f078f6 02-Jan-2014 Behdad Esfahbod <behdad@behdad.org> [hangul] Fix decomposition logic

Seems to be working now.
b-ot-shape-complex-hangul.cc
bdb20dafc3f737923da3dca0c832fdf4ab8daabc 02-Jan-2014 Behdad Esfahbod <behdad@behdad.org> [hangul] Fix decomposition

Part of https://github.com/behdad/harfbuzz/pull/10
b-ot-shape-complex-hangul.cc
32478656ce6e7926c3ad481511f02187ca743af6 02-Jan-2014 Behdad Esfahbod <behdad@behdad.org> [hangul] Tighten up character categories

I had tried to expand to fill the blocks, but that sounds wrong in
retrospect.
b-ot-shape-complex-hangul.cc
f14bb7de631b20e2868fb62e5311cd0d9e24bb49 31-Dec-2013 Behdad Esfahbod <behdad@behdad.org> [ot] Separate out hebrew and tibetan shapers from default

Now default shaper is truly no-op.
akefile.am
b-ot-shape-complex-default.cc
b-ot-shape-complex-hebrew.cc
b-ot-shape-complex-private.hh
b-ot-shape-complex-tibetan.cc
6300cd72539284ca294ee8286bbbb7f9c72af320 31-Dec-2013 Behdad Esfahbod <behdad@behdad.org> [ot] Define HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT
b-ot-shape-complex-default.cc
b-ot-shape-complex-hangul.cc
b-ot-shape-complex-private.hh
b-ot-shape-complex-thai.cc
3d6ca0d32e5c6597acfcf59301cb1905586ddb52 31-Dec-2013 Behdad Esfahbod <behdad@behdad.org> [ot] Simplify normalization_preference again

No shaper has more than one behavior re this, so no need for a callback.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-default.cc
b-ot-shape-complex-hangul.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-private.hh
b-ot-shape-complex-sea.cc
b-ot-shape-complex-thai.cc
b-ot-shape-normalize.cc
c98b7183f7dc453d5bac1f2503017cded317a495 31-Dec-2013 Behdad Esfahbod <behdad@behdad.org> [ot] Add Hangul shaper

Not exhaustively tested, but I think I got the intended logic
right.

The logic can perhaps be simplified. Maybe we should disabled
normalization with this shaper. Then again, for now focusing on
correctness.
akefile.am
b-ot-shape-complex-default.cc
b-ot-shape-complex-hangul.cc
b-ot-shape-complex-private.hh
b-private.hh
15f67048e45853ad4069fd4334e132bc3db4d2c4 28-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Reorder Tai Tham SAKOT to ensure it comes after any tone marks
b-unicode-private.hh
3216e44feb7b97f44620b51e197425a80a41cdb7 23-Dec-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Fix scratch-buffer accounting
b-uniscribe.cc
beeb12c9af4e0e66378cd36cf3dbb1560763a8e3 23-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Add TODO item
b-ot-shape.h
fbd4acc58a4bb501625b482bd318be9764ff8e02 22-Dec-2013 Luis de Bethencourt <luis@debethencourt.com> Clean ht-ob headers
akefile.am
b-ot-layout.h
b-ot-shape.h
b-ot.h
5497a8a274a7066c0230c850baadef681785c8bb 23-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Cache various masks on the shape plan
b-ot-shape-fallback.cc
b-ot-shape-private.hh
b-ot-shape.cc
02f909664fa24a7ccf7cf73d75d1d3426aaaae7d 23-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Minor correction to kern mask checking
b-ot-shape-fallback.cc
a7e8bbb080aef318b16750ca1771d0d3af3d0ae9 23-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Minor fraction mask setting improvement
b-ot-map-private.hh
b-ot-shape.cc
76fff252a96b4357b5e71694d5201daef822aa60 22-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Don't form fractions if only one of numr/dnom exist
b-ot-shape.cc
3aeee519f0b82df5263974945ae852badc4dbded 22-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Bug 72698 - Automatically support frac / numr / dnom

When seeing U+2044 FRACTION SLASH in the text, find decimal
digits (Unicode General Category Decimal_Number) around it,
and mark the pre-slash digits with 'numr' feature, the post-slash
digits with 'dnom' feature, and the whole sequence with 'frac'
feature.

This beautifully renders fractions with major Windows fonts,
and any other font that implements those features (numr/dnom is
enough for most fonts.)

Not the fastest way to do this, but good enough for a start.
b-ot-shape.cc
014f369ec98fdbb3e7a2ef68aea2c4e017e7b680 22-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Add XXX note
b-ot-map-private.hh
739325178aba00ea5526c6a54ce588a79e5d45e2 21-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Initialize masks before mirroring

We were throwing away the rtlm feature mask set during
mirroring...
b-ot-shape.cc
2a8c49ade07a0bd4f2c9543f4bd129da82083ea0 12-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Remove unnecessary includes
b-blob.cc
b-buffer-private.hh
b-common.cc
b-face-private.hh
b-face.cc
b-font-private.hh
b-font.cc
b-graphite2.cc
b-open-type-private.hh
b-ot-layout-private.hh
b-ot-shape-normalize-private.hh
b-ot-tag.cc
b-set-private.hh
b-shape-plan-private.hh
b-tt-font.cc
b-unicode-private.hh
205bf834d80f81471f0c3da4f400e60ce3a533dc 03-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Revert "Karen" language mapping back to what it was before

https://bugzilla.mozilla.org/show_bug.cgi?id=941470
b-ot-tag.cc
f47b9219546edcfdeb3991ee27f6d9ba455c3e08 02-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Fix unsafe shape_plan->face dependency
b-ot-shape-private.hh
b-shape-plan-private.hh
b-shape-plan.cc
ca8d96c8ba33ce581684cbc07936a3696b6c83d9 02-Dec-2013 Jonathan Kew <jfkthame@gmail.com> cache shape plans even if (global) user features are set
b-shape-plan-private.hh
b-shape-plan.cc
8ffa528f28a24ae85952ad1c1b0206e736bcfeab 02-Dec-2013 Behdad Esfahbod <behdad@behdad.org> Add note about unsafe shape_plan->face

Will fix by removing shape_plan->face completely.
b-shape-plan.cc
aec468f01e866c99e65a8f764a792c74c96840d7 30-Nov-2013 Behdad Esfahbod <behdad@behdad.org> [coretext] Add TODO
b-coretext.cc
58cc233e8b5fdc9dce603acc1b968540a2dea3e1 30-Nov-2013 Behdad Esfahbod <behdad@behdad.org> [coretext] Cleanup
b-coretext.cc
c8213c6198abff97822e29a6d565722cfbb43832 30-Nov-2013 Khaled Hosny <khaledhosny.eglug.org> [coretext] Avoid font fallback with CoreText shaper

CoreText does automatic font fallback (AKA "cascading") for characters
not supported by the requested font, and provides no way to turn it off,
so detect if the returned run uses a font other than the requested one
and fill in the buffer with .notdef glyphs instead of random indices
glyph from a different font.
b-coretext.cc
63bae73aefb0e5988ef6975f1ed38e040e50e91d 27-Nov-2013 Behdad Esfahbod <behdad@behdad.org> [fallback] Add TODO note
b-fallback-shape.cc
e1ebf01d0cf3df55bb9137136e2d0c9630e7bd78 27-Nov-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-common-private.hh
a182dbc9e4e51fa7990c4aea3eaa425a061b29c7 26-Nov-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-common-private.hh
9174a9db5c4e01284143ed8bd318ce9454535987 26-Nov-2013 Behdad Esfahbod <behdad@behdad.org> [myanmar] Allow punctuation clusters

The spec and Uniscribe don't allow these, but UTN#11
specifically says the sequence U+104B,U+1038 is valid.
As such, allow all "P V" sequences. There's about
eight sequences that match that structure, but Roozbeh
thinks it's fine to allow all of them.

Test case: U+104B, U+1038

https://bugs.freedesktop.org/show_bug.cgi?id=71947
b-ot-shape-complex-myanmar-machine.rl
b-ot-shape-complex-myanmar.cc
096b71e8ef0c1443f3f86069d5416b887af6e9e7 26-Nov-2013 Behdad Esfahbod <behdad@behdad.org> [myanmar] Mark U+104E MYANMAR SYMBOL AFOREMENTIONED as Consonant

The spec and Uniscribe treat it as consonant in the grammar, but
it's not in IndicSyllableCategory.txt, so fix up.

Test sequence: U+1004,U+103A,U+1039,U+104E

https://bugs.freedesktop.org/show_bug.cgi?id=71948
b-ot-shape-complex-myanmar.cc
d2da5e0b4b4ffc1722403ffb90b8777cfa1cd174 25-Nov-2013 Behdad Esfahbod <behdad@behdad.org> [myanmar] Relax pwo-tone group a bit

This is broken sequence according to OpenType spec, Uniscribe,
and current HarfBuzz implementation. But Roozbeh says this
is a valid sequence, so allow it. There are multiple
"(DB As?)?" constructs in the grammar, but Roozbeh thinks only
this one needs changing.

Test case: 1014,1063,103A

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=71949
b-ot-shape-complex-myanmar-machine.rl
08c2d27d35093e07142168665139274ac99395e8 24-Nov-2013 Roozbeh Pournader <roozbeh@google.com> Added support for several new languages

Based on research into latest SIL and Windows fonts, pulling in
the latest OpenType language tag proposal from Microsoft, and updating
to latest language tags and names from ISO 639.
b-ot-tag.cc
05511acd198d0c2157cdb41e1d36eac0b8075357 24-Nov-2013 Roozbeh Pournader <roozbeh@google.com> Added language tags for S'gaw Karen and Khamti

Tags based on support in Windows 8.1's 'Myanmar Text' font.
b-ot-tag.cc
0bb31e4497523442fbb26bbd55b194ab70205ca4 20-Nov-2013 Behdad Esfahbod <behdad@behdad.org> Bug 71845 - Use 64-bit cmpexch on ARM64 iOS
b-atomic-private.hh
02c6c8cd6e8c93b63c75b25de6bf76bb45755bb4 15-Nov-2013 Behdad Esfahbod <behdad@behdad.org> Set buffer content type to INVALID in hb_buffer_set_length(0)

Previously we were only setting this in hb_buffer_clear_contents(),
but set_length(0) is a valid way to reinitialize buffer to use with
new text.
b-buffer-private.hh
b-buffer.cc
061cb4649342b005fb1de93abae25e889cc560bd 13-Nov-2013 Behdad Esfahbod <behdad@behdad.org> Use long alignment for scratch buffer

Fixes last of scratch alignment warnings in hb-coretext.
b-buffer-private.hh
b-buffer.cc
68c372ed2eac76a6d347811293fe2ba2fd6a1eed 13-Nov-2013 Behdad Esfahbod <behdad@behdad.org> More scratch-buffer cleanup
b-buffer-private.hh
b-buffer.cc
b-coretext.cc
b-graphite2.cc
b-uniscribe.cc
8fcadb9cf9418345610e3f4e38c28c12b768b589 13-Nov-2013 Behdad Esfahbod <behdad@behdad.org> [coretext] More scratch buffer fixes
b-coretext.cc
16f175cb2e081e605fe7f9cd01bbe8c24380278a 12-Nov-2013 Behdad Esfahbod <behdad@behdad.org> Fix scratch-buffer alignment warnings
b-buffer-private.hh
b-buffer.cc
b-coretext.cc
b-graphite2.cc
b-private.hh
b-uniscribe.cc
83408cf804a6908873c41b70bb7c43448e66ddd2 06-Nov-2013 Behdad Esfahbod <behdad@behdad.org> Fix llvm warnings on Mac

Patch from Scott Fleischman. Warnings were:

harfbuzz/src/hb-font-private.hh:121:42: Implicit conversion loses
integer precision: 'long long' to 'hb_position_t' (aka 'int')
harfbuzz/src/hb-font-private.hh:126:42: Implicit conversion loses
integer precision: 'long long' to 'hb_position_t' (aka 'int')
harfbuzz/src/hb-font-private.hh:400:85: Implicit conversion loses
integer precision: 'long long' to 'hb_position_t' (aka 'int')
harfbuzz/src/hb-ot-layout-common-private.hh:1115:37: Implicit conversion
loses integer precision: 'long long' to 'int'
harfbuzz/src/hb-ft.cc:421:97: Implicit conversion loses integer
precision: 'unsigned long long' to 'int'
harfbuzz/src/hb-ft.cc:422:97: Implicit conversion loses integer
precision: 'unsigned long long' to 'int'
b-font-private.hh
b-ft.cc
b-ot-layout-common-private.hh
333cc6e2d11831bcd2370723456e678574d570ec 30-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Remove unused is_inplace()

Patch from Jonathan Kew.
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
176fd17d02ac183af32a0e710ec32d25c9322021 30-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Bug 70971 - Signed/unsigned compiler warnings on windows

Patch from Emil Eklund.
b-buffer-serialize.cc
b-ot-map.cc
3d436d325edccc0f3dd820e06e3d529cc8f3eca4 28-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Reset ccc when marking glyph as letter
b-ot-layout-gsubgpos-private.hh
6ffc007b61402c9d1d4de368deed4971a10ed00b 28-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Optimize inplace

See thread started by Jonathan with subject "an optimization for complex
fonts".
b-ot-layout.cc
71b4c999a511bf018acaf48a45e070470c0daf12 28-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Revert "Zero marks by GDEF for Tibetan"

This reverts commit d5bd0590ae2fbc7b0dee86385a565aef00ffb835.

The reasoning behind that logic was flawed and made under
a misunderstanding of the original problem, and caused
regressions as reported by Jonathan Kew in thread titled
"tibetan marks" in Oct 2013. Apparently I have had fixed
the original problem with this commit:

7e08f1258da229dfaf7e1c4b5c41e5bb83906cb0

So, revert the faulty commit and everything seems to be in good
shape.
b-ot-layout-gsubgpos-private.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-default.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-private.hh
b-ot-shape-complex-sea.cc
b-ot-shape-complex-thai.cc
b-ot-shape.cc
c2bc818706df56022c8bb922df2b741cb120f7e4 27-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Work with old and new glib

Avoids "deprecated" warnings.
est-buffer-serialize.cc
est-size-params.cc
est-would-substitute.cc
est.cc
46a863d91dbcc9a4c796e3715ea3828939f4d941 27-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Adjust pref reordering logic

For Javanese (pref_len == 1) only reorder if it didn't ligate. That's
sensible, and what the spec says. For other Indic (pref_len > 1)
only reorder if ligated.

Doesn't change any test numbers.
b-ot-shape-complex-indic.cc
6b03e3c724ec6cd255f4a323bf4aa7d8c93a056e 27-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Optimize fallback kerning

Patch from Jonathan Kew. "These changes seem to yield a small but
just-about-measurable improvement with old fonts that lack GPOS
kerning."
b-ot-shape-fallback.cc
133eeba6a32769ec1a7520e7c8a0d2eb1ad986f8 27-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Minor

See:
https://github.com/prezi/harfbuzz-js/pull/1/files#r7032397
b-common.h
a74f0de225c403998212e2618dcf9452bc5b590d 24-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Fix CM2, really

Followup from 6e613f3365bf4e9fd778758c53e7de00c64beca1.
b-ot-shape-complex-indic-machine.rl
6e613f3365bf4e9fd778758c53e7de00c64beca1 23-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Fix "shift count >= width of type" issue
b-ot-shape-complex-indic-private.hh
ac8cd511911c7dca6222d14fa758bff75d601567 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Refactor
b-ot-layout-gpos-table.hh
b-ot-layout.cc
b-ot-shape-normalize.cc
b-ot-shape.cc
0f3fe37fccfb540437adf13dd580f2c5164a0b1f 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Comment
b-ot-layout-private.hh
ddce2d8df6fed9c033f1f13e235666680c5beb67 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Improve positioning of post-base bells and whistles

Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not provide
same results as Windows8
https://bugs.freedesktop.org/show_bug.cgi?id=58714

Test with U+0CB0,U+200D,U+0CCD,U+0C95,U+0CBF and tunga.ttf.

Improves some scripts. Improves Bengali too, but numbers
are up because we produce better results than Uniscribe for some
sequences now.

New numbers:
BENGALI: 353724 out of 354188 tests passed. 464 failed (0.131004%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
MALAYALAM: 1048140 out of 1048334 tests passed. 194 failed (0.0185056%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
b-ot-shape-complex-indic.cc
d5bd0590ae2fbc7b0dee86385a565aef00ffb835 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Zero marks by GDEF for Tibetan

See:
http://lists.freedesktop.org/archives/harfbuzz/2013-April/003101.html
b-ot-layout-gsubgpos-private.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-default.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-private.hh
b-ot-shape-complex-sea.cc
b-ot-shape-complex-thai.cc
b-ot-shape.cc
bf029281b1b0f854f671969ab40eac3046a111bd 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Bug 65258 - [...] Mongolian with free variation selector
b-ot-shape-complex-arabic.cc
0193649ce4ca78b8e2835a50bd51ee594cffe34e 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otfallback] Don't shift down above-marks too much

This seems to generate much better, almost-perfect, positioning for
Arabic as well as Latin above marks.
b-ot-shape-fallback.cc
dba9580237da788275b1ab5fe6be75c8a3f359b9 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otfallback] Never fallback-position a below-mark upwards

Test with WinXP times.ttf and U+05D9,U+05B5.
b-ot-shape-fallback.cc
8177da29ad07d8fa444ce07003fa65cd31a2776b 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-fallback.cc
c16012e9019ec59c2200a3cc29b8a37ea70eda70 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Add Javanese support!

Seems to be working just fine!
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
755b44cce6dc23376a3cf0212893609231fa4967 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [ft] Round metrics instead of truncate

Lohit-Punjabi has a upem of 769! We were losing one unit in our
code, and FreeType is losing another one... Test with U+0A06.
Has an advance of 854 in the font. We were producing 852.
Now we do 853, which is what FreeType is telling us.
b-ft.cc
9a49351cc2625de16a73e0e153d3097ef6c7cc0f 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Swith pref logic to use _hb_glyph_info_substituted()

See comments from caveat! Seems to work fine.

This is useful for Javanese which has an atomically encoded pre-base
reordering Ra which should only be reordered if it was substituted
by the pref feature.
b-ot-shape-complex-indic.cc
f175aa33c5e94397c60648ac0697c80f5fe0dcb7 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Fix compiler warnings
b-ot-shape-complex-indic.cc
857027341423f15fd6084c7563cc355b06e7cbdd 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Add _hb_glyph_info_substituted()

Currently unused.
b-ot-layout-private.hh
a1f7b2856184959e965c9c2b80363f9f46d486a7 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Switch over from old is_a_ligature() to IS_LIGATED

Impact should be minimal and positive.
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape.cc
09675a8115b9d77261c33940401aa919cede8662 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Add HB_OT_LAYOUT_GLYPH_PROPS_LIGATED

Currently unused.
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
05ad6b50ac0a1b9a8da10d2ee2238068b7811e7d 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Add HB_OT_LAYOUT_GLYPH_PROPS_SUBSTITUTED

Currently unused.
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
101303dbf7cf15d044bf2518f14b3aec65970fea 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] More shuffling around
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-shape.cc
91689de2603e4151e2a2d3a3852c61667f0c6264 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Add _hb_glyph_info_set_glyph_props()

No functional change.
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-shape.cc
a0161746589934e93c3b115814bbd81f56ab962f 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Simplify set_class() usage
b-ot-layout-gsubgpos-private.hh
3ddf892b5328b74afb6e7d9da727d8771ca5d288 18-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Renaming
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-fallback.cc
b-ot-shape.cc
2e96d2c6ee34142375373be07217c9953e7822cc 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] More shuffling
b-ot-layout-private.hh
469524692bd0a258b28e63294c984e677a9c2477 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Code shuffling
b-ot-layout-private.hh
11fb16cb849285a178d9e80991b1d60a960326ee 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Use unsigned enums for mask types
b-buffer.h
b-ot-layout-private.hh
03058c3d1e8c18858c1e0b0c738ce9d299f2787a 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Remove two unused HB_OT_LAYOUT_GLYPH_PROPS_* values
b-ot-layout-gdef-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-private.hh
941b6992042e7b73b3a2aab1448383adf33bef28 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Remove unused HB_OT_LAYOUT_GLYPH_PROPS_UNCLASSIFIED
b-ot-layout-gdef-table.hh
b-ot-layout-private.hh
8f9ec92dfce5c469fb85ad301296b5dde1b2ab0a 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Adjust Javanese base algorithm
b-ot-shape-complex-indic.cc
49901862e36e1c153835877a9f1183729333bbbe 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Guard against use of ReverseChain through Context
b-ot-layout-gsub-table.hh
b-ot-layout.cc
74f4bbf0560a5fd2d295e100e96f0c6c7033e852 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Towards supporting atomicly-encoded prebase-reorderings
b-ot-shape-complex-indic.cc
efed40b975110d78c9c505441e7e17a8c13e85c8 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Minor refactoring of reph handling
b-ot-shape-complex-indic.cc
b-ot-shape-complex-sea.cc
684fe59ff858a0ecba71b3ed80378afb0b8bbb48 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Minor refactoring of would_substitute()
b-ot-shape-complex-indic.cc
321df83fb4f0b8a5310888129cb70bfda8ae0c96 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Route Buginese through the SEA shaper

Both Indic and SEA seem to do it just fine, but SEA is much
simpler.
b-ot-shape-complex-private.hh
b5a0f69e47ace468b06e21cf069a18ddcfcf6064 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Pass zero-context=false to would_substitute for newer scripts

For scripts without an old/new spec distinction, use zero-context=false.
This changes behavior in Sinhala / Khmer, but doesn't seem to regress.
This will be useful and used in Javanese.
b-ot-shape-complex-indic.cc
c4e71ff36d1f86a6ea56539728a964d97217e2b6 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Clean up Khmer and Sinhala base finding algorithm
b-ot-shape-complex-indic.cc
e10453e6fb2544724ccd7ddfdbb9de90ef9274ce 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Add BASE_POS_LAST_SINHALA

Previously we planted this into the mode used for Khmer. There's not
really much in common between the two, so separate again.
b-ot-shape-complex-indic.cc
9ac6b01e0cd8e2d66dfc727157f45b615bc77109 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Adjust Sinhala cluster merging under uniscribe

Similar to 190c8f2b60af0851bf692f653c1604cfbf0561a5 but for
Sinhala.
b-ot-shape-complex-indic.cc
3c3df9cba13fec2c35e0e7ae587d9699ac0c37f5 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Minor
b-ot-layout-gsubgpos-private.hh
6cc136f7531a45e71ea08a7dc8a2187172cb813d 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Minor
b-ot-layout-gsubgpos-private.hh
ba6ddc421e5e440231c2ece2db1363f8e6d2ecbf 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Increase MAX_CONTEXT_LENGTH

It's cheap.
b-ot-layout-common-private.hh
e714fe6d6a2633494cb1fa7170a32ca2638cbb51 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Simplify ligate_input()

Shouldn't change behavior at all, but is faster / more robust.
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
6b2abdcd203204131f3017ca85c91de9d43959cd 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Improve clusters in presence of reph
b-ot-shape-complex-indic.cc
42d0f55cbc68285e22d713df7062e520af708c82 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Apply calt,clig in the same stage as presentation features

Whic means these twp are applied per-syllable now. Apparently
in some Khmer fonts the clig interacts with presentation features.

Test case: U+1781,U+17D2,U+1789,U+17BB,U+17C6 with Mondulkiri-R.ttf
should produce one big ligature.
b-ot-shape-complex-indic.cc
ae9a5834df477006686421d494b55a1569789327 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Fix pref vs blwf interaction

If a glyph can be both blwf and pref, we were wrongly sorting it
in the post position instead of below position.
b-ot-shape-complex-indic.cc
c7dacac02cfe8526eaf131ce6c5e7b6df7ca2ccd 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Don't apply blwf before base under old-spec mode

Test case: U+09AC,U+09CD,U+09A6 with Lohit-Bengali 2.5.3.
b-ot-shape-complex-indic.cc
da72042c52ed3cc0ee19d3eabb8db7c7dd34d3ed 17-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Fix up recent Context matching change

Commit 6b65a76b40522a4f57a6fedcbdfc5a4d736f1d3c. "end" was becoming
negative. Was trigerred by Lohit-Kannada 2.5.3 and the sequence:
U+0CB0,U+200D,U+0CBE,U+0CB7,U+0CCD,U+0C9F,U+0CCD,U+0CB0,U+0C97,U+0CB3
Two glyphs were being duplicated.
b-buffer.cc
b-ot-layout-gsubgpos-private.hh
1a7de1ba9876b0554c758acbc6459366d9d98a5d 16-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Improve Avagraha support in machine
b-ot-shape-complex-indic-machine.rl
3756efaf4e14ec3b5b1def700a1b5985f162372b 16-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Misc harmless fixes!

First, we were abusing OT_VD instead of OT_A. Fix that
but moving OT_A in the grammar where it belongs (which
is different from what the spec says).

Also, only allow medial consonants after all other
consonants. This doesn't affect any current character.

Finally, fix Halant attachment in presence of medial
consonants. Again, this currently doesn't affect any
sequence.

I lied. There's Gurmukhi U+0A75 which is Consonant_Medial.
Uniscribe allows one of those in each of these positions:
before matras, after matras and before syllable modifiers,
and after syllable modifiers! We currently just allow
unlimited numbers of it, before matras.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
c52ddab72e025d1bee8274c8f3416208b12f68f1 16-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [arabic] Make ZWJ prevent ligatures instead of facilitating it

Unicode 6.2.0 Section 16.2 / Figure 16.3 says:

"For backward compatibility, between Arabic characters a ZWJ acts just
like the sequence <ZWJ, ZWNJ, ZWJ>, preventing a ligature from forming
instead of requesting the use of a ligature that would not normally be
used. As a result, there is no plain text mechanism for requesting the
use of a ligature in Arabic text."

As such, we flip internal zwj to zwnj flags for GSUB matching, which
means it will block ligation in all features, unless the font
explicitly matches U+200D glyph. This doesn't affect joining behavior.
b-ot-layout-private.hh
b-ot-shape-complex-arabic.cc
1a31f9f820c4538015ddaf4ca2b790649c5997ed 16-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Minor
b-ot-layout-private.hh
28d5daec948e1a24f13e492ce301aeb9abff37c8 16-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] More granular post-base cluster merging!
b-ot-shape-complex-indic.cc
9cb59d460e80d769087045535a8d54ec9ed7985c 16-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Fix cluster merging of left matras

The merge_clusters there was totally broken.
b-ot-shape-complex-indic.cc
190c8f2b60af0851bf692f653c1604cfbf0561a5 16-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Adjust cluster merging under uniscribe mode for Tamil

Apparently Uniscribe Tamil shaper doesn't ship chubby clusters
for Tamil. Adjust to that.
b-ot-shape-complex-indic.cc
5c558877da5db8c734ba072f01e5e4797876619c 16-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Allow up to two syllable modifiers

Bug 70509 - Candrabindu+Visarga doesn't work in Devanagari
https://bugs.freedesktop.org/show_bug.cgi?id=70509

We categorize both bindus and visarga as syllable-modifiers.
OT spec doesn't actually say what characters go in the syllable
modifier category, and allows one. We just allow up to two now.

Test case: U+0930,U+0941,U+0901,U+0903

Uniscribe currently doesn't support that and produces a
dotted circle.
b-ot-shape-complex-indic-machine.rl
f5299eff5c0065d6329cd536c0ac339abea085b0 15-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Simplify reph logic

*Shouldn't* break anything.
b-ot-shape-complex-indic.cc
65a929b1c033e91919c931b495a775f76b6dcbb3 15-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] If Malayalam dot-reph formed a ligature, don't move it

Rachana-0.6 implements dot-reph by ligation, so we shouldn't move it.
Uniscribe doesn't either. Test case:

U+0D4E,U+0D1A,U+0D4D,U+0D1A,U+0D4D
b-ot-shape-complex-indic.cc
a01cbf6cbe0021722302cfb58fb638a0a2427b26 15-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Harmless reordering of Khmer features!
b-ot-shape-complex-indic.cc
eb10233b267909dee0245f126000e117f3b21c35 15-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Apply 'kern' for all scripts except for Khmer in Uniscribe mode

Seems to better match Uniscribe.

Note: NotoSansTelugu-Regular has kern feature, so this fixes most of the
positioning failures there, except for the kern pairs blocked by a
(non-)joiner, in which case we (correctly) kern, but Uniscribe doesn't.
b-ot-shape-complex-indic.cc
30145272a7d428bc62a903388bd7be43f4da7fc3 15-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Don't apply presentation features across syllables

More like Uniscribe... We still allow user-defined features to
work across syllables, but not pres,blws,abs,psts,etc.

This "regressed" Sinhala numbers by 11. These are cases were
there's Consonant followed by Ra,Halant,ZWJ at the of text.
The Ra,Halant,ZWJ ends up forming reph, which is wrong...
But before we were also ligating that reph with the previous
consonant. That's even more wrong. That's also what Uniscribe
does.

Current numbers:

BENGALI: 353732 out of 354188 tests passed. 456 failed (0.128745%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
MALAYALAM: 1048140 out of 1048334 tests passed. 194 failed (0.0185056%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271655 out of 271847 tests passed. 192 failed (0.070628%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
b-ot-shape-complex-indic.cc
3c7b3641cfb00f2c4dcc0768b9854e4f4410d15f 15-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Handle Avagraha

It can come either at the end(ish!) of the syllable, or independently.
When independent, it accepts a few bits and pieces.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
5e7432b8172473aa4dda3d51a79add9e97c2d2c1 15-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [myanmar] Apply abvm/blwm
b-ot-shape-complex-myanmar.cc
8acbb6be271817c12d2ee0066b355e2fb0f9a934 15-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [indic] Some scripts like blwf applied to pre-base characters

...while some don't!

Improved Bengali, Devanagari, Gurmukhi, Malayalam.

Updated numbers:

BENGALI: 353732 out of 354188 tests passed. 456 failed (0.128745%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
MALAYALAM: 1048134 out of 1048334 tests passed. 200 failed (0.0190779%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
b-ot-shape-complex-indic.cc
6b65a76b40522a4f57a6fedcbdfc5a4d736f1d3c 14-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Fix (Chain)Context recursion!

Previously we only supported recursive sublookups with
ascending indices. We were also not correctly handling
non-1-to-1 recursed lookups.

Fix all that!

Fixes the three tests in test/shaping/tests/context-matching.tests,
which were derived from NotoSansBengali and NotoSansDevanagari
among others.
b-buffer-private.hh
b-buffer.cc
b-ot-layout-common-private.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
4e6e53db5da0a5da87ae732c3f9d01babf4ae6c2 14-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] "Minor"
b-ot-layout.cc
9326d48e4309901e7e0b0e15230936a21ee3df72 10-Oct-2013 Behdad Esfahbod <behdad@behdad.org> Don't use g_mapped_file_unref()

Was introduced in glib 2.22.
est-buffer-serialize.cc
est-size-params.cc
est-would-substitute.cc
est.cc
27674b4bb351e501373bd9994e4ba6546e465cf7 03-Oct-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Protect against out-of-range lookup indices

Filter them out when compiling map.
b-ot-layout.cc
b-ot-layout.h
b-ot-map.cc
3d2c4f0c2ff8fab4262988aad65b170e5b479b20 27-Sep-2013 Behdad Esfahbod <behdad@behdad.org> Fix hiding of default_ignorables if font doesn't have space glyph

Based on patch from Jonathan Kew. See discussion on the list.
b-ot-shape.cc
48360ec03b225dfec5f90bc5cb93122203d2dd6b 26-Sep-2013 Behdad Esfahbod <behdad@behdad.org> Bug 68990 - test-common fails on i686-linux

Fix use-after-end-of-scope.
b-common.cc
2af826296315d89f3a433952903c5968e56044ea 17-Sep-2013 Behdad Esfahbod <behdad@behdad.org> Improve library checks
akefile.am
heck-defs.sh
heck-symbols.sh
882edce48e507a1c76c908ec2db04aac218b67d6 14-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [graphite2] Fix include
b-graphite2.cc
b-graphite2.h
ace5c7eb4c2302a6a7eb3576e6dbc3bc026e569c 14-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [introspection] hb-ft annotations
b-face.cc
b-ft.cc
a8949df48780e680e03b9afbbafb3628a0acef52 14-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [introspection] Annotate Unicode / font callbacks

Should move these out of the public header...

We're "clean" of introspection warnings now. Remaining ones are about
graphite2 / freetype types not being introspectable.
b-blob.cc
b-face.cc
b-font.cc
b-font.h
b-unicode.h
4b011094d5e90cf93df2891e47aeab1bffad5bbf 14-Sep-2013 Behdad Esfahbod <behdad@behdad.org> Move code around

I believe I didn't break anything...
b-ot-shape.cc
e478ebe4d3f74dc271ffe88680fd29f6b1924c93 13-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [introspection] Add sample.py
ample.py
dfdbe7f932daffcf73911ff4e4a36f749164d960 13-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [introspection] Make hb_blob_create() introspectable
akefile.am
b-blob.cc
085d4291a9f253a4b8e2eec8003ac11d02a9394f 12-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [introspection] Disable constructors for now

Since our types are not associated with their methods, marking
constructors makes them inaccessible from bindings. Undo for now.
b-blob.cc
b-buffer.cc
b-face.cc
b-font.cc
b-set.cc
b-shape-plan.cc
b-unicode.cc
6c48f20eea22c6e686416ab4ec8388be3e8cd0b5 09-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [otlayout] Add structs for JSTF table
akefile.am
b-ot-head-table.hh
b-ot-hhea-table.hh
b-ot-hmtx-table.hh
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-jstf-table.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-maxp-table.hh
b-ot-name-table.hh
ain.cc
70303cf23b22647bf641be22c8650310128322a9 06-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [docs/introspection] Some more annotations
b-common.cc
b-font.cc
b-version.h.in
288f2899979bcc9e68f8115cb76e3271ed0e17bc 06-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [docs/introspection] More annotations
b-blob.cc
b-buffer-serialize.cc
b-buffer.cc
b-face.cc
b-font-private.hh
b-font.cc
b-set.cc
b-shape-plan.cc
b-shape.cc
b-unicode.cc
17905c54f1bab9e6dfe13f59f5ec208de12832f7 06-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [introspection] Work around g-i limitation with hb_language_t
b-gobject-structs.cc
b-gobject-structs.h
cd361c3cbe4a288e3019b9a029f44e4c5f24436c 06-Sep-2013 Behdad Esfahbod <behdad@behdad.org> Minor change to hb_language_t

Let me know if this breaks anyone's anything.
b-common.cc
b-common.h
20cbc1f8eb0811e6cefa3be3550e80df9c372782 06-Sep-2013 Behdad Esfahbod <behdad@behdad.org> Annotate hb-set a bit; add HB_SET_VALUE_INVALID
b-set-private.hh
b-set.cc
b-set.h
b-version.h.in
c44b81833d5bfb9a926d348a76463314c3ec2018 06-Sep-2013 Behdad Esfahbod <behdad@behdad.org> Whitespace
b-buffer.cc
5f512017ba615ba6ac8e5da2ea0c57a72db2c26b 05-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [docs] Document a few symbols
b-blob.cc
b-buffer.cc
b-version.h.in
e0dbf99b4497be305d689a528282fd37214e7f1c 05-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [introspection] Pass source files to scanner
akefile.am
5a5350b39b81e0128d36ebc81307a6d698a4dc50 04-Sep-2013 Behdad Esfahbod <behdad@behdad.org> Revert "Round when scaling values"

This reverts commit 10f964623f003c70f6bdd33423420abda3820ce0.

See discussion with Khaled Hosny on mailing list. In short, since
integers here can be negative, and int division is "round towards
zero", proper rounding should take sign into account. Just skip
doing it again, has been serving us well before.
b-font-private.hh
213001aa99003422199245e96878f9fe348c55b4 04-Sep-2013 Behdad Esfahbod <behdad@behdad.org> [build] Fix EXTRA_DIST

I was under the impression that EXTRA_DISTs will happen regardless of
automake conditionals. Apparently I was wrong.
akefile.am
ac1b723917d9b8f247a350f8d3e1bc5d1e472073 31-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Remove hb-old and hb-icu-le test shapers

They've been disabled for a while and no one cared. We're past
the point to need them for testing, and if we ever need to
resurrect them again, well, they're in git graveyard somewhere.
akefile.am
b-icu-le.cc
b-icu-le/COPYING
b-icu-le/FontTableCache.cpp
b-icu-le/FontTableCache.h
b-icu-le/Makefile.am
b-icu-le/PortableFontInstance.cpp
b-icu-le/PortableFontInstance.h
b-icu-le/README
b-icu-le/cmaps.cpp
b-icu-le/cmaps.h
b-icu-le/letest.h
b-icu-le/license.html
b-icu-le/sfnt.h
b-old.cc
b-old/COPYING
b-old/Makefile.am
b-old/README
b-old/harfbuzz-arabic.c
b-old/harfbuzz-buffer-private.h
b-old/harfbuzz-buffer.c
b-old/harfbuzz-buffer.h
b-old/harfbuzz-external.h
b-old/harfbuzz-gdef-private.h
b-old/harfbuzz-gdef.c
b-old/harfbuzz-gdef.h
b-old/harfbuzz-global.h
b-old/harfbuzz-gpos-private.h
b-old/harfbuzz-gpos.c
b-old/harfbuzz-gpos.h
b-old/harfbuzz-greek.c
b-old/harfbuzz-gsub-private.h
b-old/harfbuzz-gsub.c
b-old/harfbuzz-gsub.h
b-old/harfbuzz-hangul.c
b-old/harfbuzz-hebrew.c
b-old/harfbuzz-impl.c
b-old/harfbuzz-impl.h
b-old/harfbuzz-indic.cpp
b-old/harfbuzz-khmer.c
b-old/harfbuzz-myanmar.c
b-old/harfbuzz-open-private.h
b-old/harfbuzz-open.c
b-old/harfbuzz-open.h
b-old/harfbuzz-shaper-all.cpp
b-old/harfbuzz-shaper-private.h
b-old/harfbuzz-shaper.cpp
b-old/harfbuzz-shaper.h
b-old/harfbuzz-stream-private.h
b-old/harfbuzz-stream.c
b-old/harfbuzz-stream.h
b-old/harfbuzz-tibetan.c
b-old/harfbuzz.h
b94243d6a9457864ad8ef3ad47ad01985b138862 31-Aug-2013 Behdad Esfahbod <behdad@behdad.org> [g-i] Rename library from harfbuzz to HarfBuzz
akefile.am
71ef22b04d466803076af1da6763fecab95ce5bb 28-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Turn hb-gobject, and introspection off by default

Also enable bootstrapping without them.
akefile.am
d8f507099b9ae5f0c643fb8dddbb069df6f62a94 27-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Hookup harfbuzz-gobject to introspection
akefile.am
71439a8c7ae9df25193bc3ad0f203117d2884a19 27-Aug-2013 Behdad Esfahbod <behdad@behdad.org> [gobject] Flesh out hb-gobject

Move it to new harfbuzz-gobject library. Implement enums and
boxed types for object-types. Still have to do boxed types for
value types.
akefile.am
arfbuzz-gobject.pc.in
b-gobject-enums.cc.tmpl
b-gobject-enums.h.tmpl
b-gobject-structs.cc
b-gobject-structs.h
b-gobject.h
23027f7611b53b594e4b4008e916e42b5154f6ac 23-Aug-2013 Behdad Esfahbod <behdad@behdad.org> [introspection] Enable gobject-introspection again
akefile.am
757a7a9018577dcc399be03dc45a59589585d2fb 28-Aug-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Fixed build with wide chars

https://github.com/blinkseb/harfbuzz/commit/f65dafa4138e1fb4395bf646fa33bb01a86a7e9a
b-uniscribe.cc
4dc798de19c767b91fd3025c85593fa6809d1340 27-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Add hb-deprecated.h, and rename a couple enum values

Add deprecated alias for old name.
akefile.am
b-buffer.cc
b-buffer.h
b-common.h
b-deprecated.h
b.h
est-buffer-serialize.cc
2e3a07abdf97b0ad2105c3a52f3ff0e0b60b29c4 27-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Separate face source code from font

Makes documentation / introspection easier.
akefile.am
b-face-private.hh
b-face.cc
b-face.h
b-font-private.hh
b-font.cc
b-font.h
b.h
d3490761e11ae308fbd8aaf02059653f579035c5 27-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Improve check-includes.sh
heck-includes.sh
38b8b40526a85f33521542e24d1e0c82588efc85 27-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Fix possible snprintf OOM

https://bugzilla.redhat.com/show_bug.cgi?id=1001645
b-buffer-serialize.cc
b-font-private.hh
b-shape.cc
d22548c0e362cc9447557440af9ecbb11badfa78 27-Aug-2013 Behdad Esfahbod <behdad@behdad.org> [check-*] Minor
heck-c-linkage-decls.sh
heck-header-guards.sh
heck-includes.sh
700a15fe4b80da9c67befd85ae10a166f5b65962 26-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Add HB_DISABLE_DEPRECATED

That moment that you have to accept that you made API mistakes...
b-common.h
f7c72b42efb8d42859023659fd2e3d589523436d 24-Feb-2013 Anthony Carrico <acarrico@memebeam.org> [gtk-doc] Initial setup

Initial setup of gtk-doc. Straight forward setup following the gtk-doc
instructions. Ignore some troublesome types in src/hb-gobject.h. To
build use "./autogen.sh --enable-gtk-doc" then "make". Docs are in
harfbuzz/docs/reference/html/index.html.
akefile.am
b-gobject.h
3409fb1c767118067cf7edfb97068936b6f4b717 21-Aug-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Ask Uniscribe to return shaping results in logical order

See discussion on the list in the thread "Arabic presentation forms
and the uniscribe backend".

Based on patch from Jonathan Kew.
b-uniscribe.cc
1d05fdd09fa271b641f30a2138171e6fafcd8db7 20-Aug-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Print run info
b-uniscribe.cc
3309edccdbc2a92eb03a285abb27c1c1c4a88e43 14-Aug-2013 Roozbeh Pournader <roozbeh@google.com> Support U+061C ARABIC LETTER MARK by making it invisible when rendering text.

The character works automagically otherwise: for the Unicode Bidirectional
Algorithm, the default type for undefined characters in the Arabic block is
set to AL.

Patch cherrypicked from upstream at:
https://github.com/behdad/harfbuzz/commit/a8bf0e91f18341e1e20f4e3341fc7dcdd0c990e1

Bug: 10190564
Change-Id: Id50c3163d3751b0247095c1c110432962683638c
b-unicode-private.hh
3613696b57225111507a3f4263f5fa6937d0bc72 12-Aug-2013 Behdad Esfahbod <behdad@behdad.org> [coretext] Fully support user features

Based on patch from Jonathan Kew and data from Apple.

It's not working correctly though, and I suspect I'm hitting a bug in
CoreText. When I do this:

hb-shape /Library/Fonts/Zapfino.ttf ZapfinoZapfino --shaper coretext \
--features=-liga

I expect both ligatures to turn off, but only the second one does:

[Z_a_p_f_i_n_o=0+2333|Z=7+395|a=8+285|p_f=9+433|i=11+181|n=12+261|o=13+250]

whereas if I disable 'dlig' instead of 'liga', both are turned off.
Smells...

Doesn't resolve conflicting feature settings.
b-coretext.cc
b-uniscribe.cc
54e6f6c588a164f7de62ff88b3eff4f25adb8f17 09-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Clean up list of Unicode scripts

Rename HB_SCRIPT_CANADIAN_ABORIGINAL to HB_SCRIPT_CANADIAN_SYLLABICS
and a macro for the old name.
b-common.h
b-glib.cc
b-ot-shape-complex-private.hh
b-ucdn.cc
515a0ac81e531c95b1bb7f1a3c5df73a9e64b14f 09-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Fix compiler warning
b-ot-layout-common-private.hh
10f964623f003c70f6bdd33423420abda3820ce0 09-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Round when scaling values

Doesn't matter for most users since they should be working in a
fixed sub-pixel scale anyway (ie. 22.10, 26.6, 16.16, etc).
b-font-private.hh
df8f70ae5de6181d56efa3f076f14e4d52119a5e 09-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-font-private.hh
ce8badf1808f9fbdd9a22e9215c7475d3afde5ed 09-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-font-private.hh
d71c0df2d17f4590d5611239577a6cb532c26528 09-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Remove vrt2, vkrn, vpal, and valt from default vertical features

See thread by John Dagget on the list.
b-ot-shape.cc
a782a5e9a37c8733ac2830410a514d38635b543a 08-Aug-2013 Behdad Esfahbod <behdad@behdad.org> [coretext] Start adding support for features

Unlike AAT, looks like with CoreText very few OT features can be mapped.
:(
b-coretext.cc
bdd8873fd8ae5c794018f6edac242b0a8b62ff31 07-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Revert "[Indic] don't apply 'calt' by default in Indic shaper"

This reverts commit 952121007c6f6f374e4cf1734ebcfe2d2d71c71c.

In light of discussion on the mailing list...
b-ot-shape-complex-indic.cc
9a175914d72187d0c3f50ddad50c9569649c3072 07-Aug-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Support feature ranges

As Khaled pointed out, right now setting any features, turns kern
and possibly other features off.
b-uniscribe.cc
38d5c58d23fce38221689cda98cea1c3e42ed615 06-Aug-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Half-support user features

Turning features on globally works now.
b-uniscribe.cc
639afdc690c681a302080239a1967ce735ba5be5 06-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-private.hh
952121007c6f6f374e4cf1734ebcfe2d2d71c71c 06-Aug-2013 Jonathan Kew <jfkthame@gmail.com> [Indic] don't apply 'calt' by default in Indic shaper
b-ot-shape-complex-indic.cc
625678436c29100eef82d87e635b251030a18f60 06-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Fix glyph closure with class==0

As reported by cibu. Untested.
b-ot-layout-common-private.hh
580d5eb93af5bbbc64994b626d5e011e2c256d74 04-Aug-2013 Behdad Esfahbod <behdad@behdad.org> Don't apply 'dlig' by default

Windows 8 doesn't, and the spec will be fixed.
b-ot-shape-complex-arabic.cc
48382e2f41499a91181bea0acc5792989d2485bb 31-Jul-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-common-private.hh
c461371419d186811d4bfc768e26535f48a807f4 30-Jul-2013 Behdad Esfahbod <behdad@behdad.org> [CoreText] Don't leak the CTLine object (and everything that hangs off it)

Patch from Jonathan Kew.
b-coretext.cc
6fadd9dd7cc220f131c29946285831635afc8044 26-Jul-2013 Behdad Esfahbod <behdad@behdad.org> Apply 'mark' to Myanmar

According to Andrew Glass: "The issue with Myanmar <mark> feature was
fixed via a servicing patch as soon as Windows 8 became available."
b-ot-shape-complex-myanmar.cc
86522e493d071f395b5abf64289232bf8867ac29 23-Jul-2013 Behdad Esfahbod <behdad@behdad.org> Fix glyph closure recursion!
b-ot-layout-gsubgpos-private.hh
74439d0aa10184451adc6c6469f5119be352ecbb 23-Jul-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsubgpos-private.hh
8b427c78efa988ed27a2a394146d73f59688707b 22-Jul-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Sanitize font file
b-uniscribe.cc
12ff69df21ac91ae21860db7000d9f9973d3da1a 22-Jul-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Handle TTC when renaming font
b-uniscribe.cc
05bad3b8c25a89bc0f20f99f9215e492f48f03fe 21-Jul-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Use OT::* types
b-open-type-private.hh
b-ot-name-table.hh
b-uniscribe.cc
bdeea605fe597bff4430eaae3317189bb81ec76e 21-Jul-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Move name generation into separate function
b-uniscribe.cc
73f947e2a7bc5b29d731da2e9d1fafe958be839e 21-Jul-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Use blob to pass data around
b-uniscribe.cc
8ac2e88deff3d069c19fd59d0fbbfb88a762b113 21-Jul-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Use unique font name

When installing per-process fonts using AddFontMemResourceEx(),
if a font with the same family name is already installed, sometimes
that one gets used. Which is problematic for us. As such, we
now mangle the font to install a new 'name' table with a unique
name, which we then use to choose the font.

Patch from Jonathan Kew.
b-uniscribe.cc
8751de50831338ce550601c34c17d152ad89c1fd 18-Jul-2013 Behdad Esfahbod <behdad@behdad.org> Followup fix for 3f9e2dced298c3d00f31b2dfc38685bb071a3a22

During GSUB, if a ligation happens, subsequence context input matching
matches the new indexing. During GPOS however, the indices never
change. So just go one by one.

Fixes 'dist' positioning with mmrtext.ttf and the following sequence:

U+1014,U+1039,U+1011,U+1014,U+1039,U+1011,U+1014,U+1039,U+1011

Reported by Jonathan Kew.
b-ot-layout-gsubgpos-private.hh
e509d35cf1160f1449bc736b9445cdf61ab81d06 11-Jul-2013 Behdad Esfahbod <behdad@behdad.org> [ft] hb_ft_get_glyph_from_name fails for the name of glyph id 0

Based on patch from Jonathan Kew, as reported on the mailing list.
b-ft.cc
29b596ac67806c44441e65f3ece227df0fe2bb63 08-Jul-2013 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Fix buffer allocation

Email from Jonathan Kew:

My cygwin build kept aborting on certain test words when run with the
uniscribe backend. Turned out this was caused by a bug in the allocation
of scratch buffers in hb-uniscribe.cc.

Commit 2a17f9568d9724e045d2c1d660e007f3acd747d9 introduced a new line

ALLOCATE_ARRAY (SCRIPT_VISATTR, vis_attr, glyphs_size);

but it failed to account for this in the computation of glyphs_size
(the number of glyphs for which scratch buffer space is available),
with the result that the vis_clusters array ends up overrunning the
end of the scratch buffer and clobbering the beginning of the buffer's
info[].

AFAICS, the vis_attr array is not actually used, so the simple fix is
to remove the line that allocates it. (If/when we -do- need to use
vis_attr for something, we'll need to add another term to the earlier
calculation of glyphs_size.)

With this patch, the uniscribe backend runs reliably again.

JK
b-uniscribe.cc
9245e98742667dfffe06523e8051beda1bc04811 27-Jun-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Add Javanese config

We should add for other scripts too, send me the virama codepoint
and script name...
b-ot-shape-complex-indic.cc
5f85c80a07dd2d18348824866bf4e984ac711a24 27-Jun-2013 Behdad Esfahbod <behdad@behdad.org> [OT] Collect requiredFeature only if features are not provided

As per Werner's report on the list.
b-ot-layout.cc
3f9e2dced298c3d00f31b2dfc38685bb071a3a22 27-Jun-2013 Behdad Esfahbod <behdad@behdad.org> Fix contextual lookup recursion indexing

See email thread "Skipping Control for Attaching Marks using OpenType"
from earlier this month.
b-ot-layout-gsubgpos-private.hh
89312b7417c0198a0635ca6b7e8ea11f6af2a4f8 22-Jun-2013 Bradley Grainger <bgrainger@gmail.com> Destroy lookups before blobs.

'layout->gsub' may depend on data owned by 'layout->gsub_blob', so it must
be deinitialized before the blob is destroyed.
b-ot-layout.cc
79d1007a501fd63c0ba4d51038c513e6b8b94740 14-Jun-2013 Behdad Esfahbod <behdad@behdad.org> If variation selector is not consumed by cmap, pass it on to GSUB

This changes the semantics of get_glyph() callback and expect that
callbacks return false if the requested variant is not available, and
then we will call them back with variation_selector=0 and will retain
the glyph for the selector in the glyph stream.

Apparently most Mongolian fonts implement the Mongolian Variation
Selectors using GSUB, not cmap.

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

Note that this doesn't fix the Mongolian shaping yet, because the way
that's implemented is that the, say, 'init' feature ligates the letter
and the variation-selector. However, since currently the variation
selector doesn't have the 'init' mask on, it will not be matched...
b-ft.cc
b-ot-shape-normalize.cc
c7a84917208528040aaf9ad0a9a0b26aabeabc9c 07-Jun-2013 Behdad Esfahbod <behdad@behdad.org> Skip over multiple variation selectors in a row
b-ot-shape-normalize.cc
7235f33f9e5e031622a00a84f4b2e98f16803579 10-Jun-2013 Behdad Esfahbod <behdad@behdad.org> Fix misc warnings reported by cppcheck

https://bugs.freedesktop.org/show_bug.cgi?id=65544
b-common.cc
b-coretext.cc
b-font-private.hh
b-private.hh
b-shape.cc
2fd0e02706857bcaf61bf5151657eac96cfa73b9 06-Jun-2013 Behdad Esfahbod <behdad@behdad.org> Minor
akefile.am
4ddf937242048c4a044ada4559e26664a0c09b48 04-Jun-2013 Behdad Esfahbod <behdad@behdad.org> Remove unnecessary stdint.h include
b-ucdn/ucdn.c
93a04b8b5e6d8067cb925fdf532aadc24c1d4861 03-Jun-2013 Chun-wei Fan <fanchunwei@src.gnome.org> hb-uniscribe.cc: Re-enable build under Visual Studio

-Declare hinstLib at the top of block
-Fix the definitions of the typedefs of ScriptItemizeOpenType,
ScriptShapeOpenType and ScriptPlaceOpenType
b-uniscribe.cc
d70be29831bb99e34fe18744129088f45d5b2023 28-May-2013 Behdad Esfahbod <behdad@behdad.org> Fix dist
akefile.am
22ce0961742df0a213f2cc86ca3d5a72453c00b1 28-May-2013 Behdad Esfahbod <behdad@behdad.org> Generate harfbuzz-icu.pc

Currently it only works with ICU that has .pc files. I'll
wait till someone complains before fixing it for icu-config
systems.
akefile.am
arfbuzz-icu.pc.in
arfbuzz.pc.in
d9afa111330771461b6182ada9f4edd68bcfce77 28-May-2013 Behdad Esfahbod <behdad@behdad.org> Build hb-icu into libharfbuzz-icu.so
akefile.am
b-unicode.cc
2a17f9568d9724e045d2c1d660e007f3acd747d9 28-May-2013 Behdad Esfahbod <behdad@behdad.org> Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP

Fallback to older API if OpenType variants are not available.
b-uniscribe.cc
61e7775fa75c7c1bdc29a6992c8c215897364600 28-May-2013 Behdad Esfahbod <behdad@behdad.org> Remove hb-icu dependency from hb-icu-le shaper
b-icu-le.cc
7e08f1258da229dfaf7e1c4b5c41e5bb83906cb0 27-May-2013 Behdad Esfahbod <behdad@behdad.org> Don't zero advance of mark-non-mark ligatures

If there's a mark ligating forward with non-mark, they were
inheriting the GC of the mark and later get advance-zeroed.
Don't do that if there's any non-mark glyph in the ligature.

Sample test: U+1780,U+17D2,U+179F with Kh-Metal-Chrieng.ttf

Also:
Bug 58922 - Issue with mark advance zeroing in generic shaper
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
cf059ac69d10d9eb09f0d2a29b1bd989647bd800 24-May-2013 Behdad Esfahbod <behdad@behdad.org> [icu_le] Support non-BMP text
b-icu-le.cc
a447c528e68cabc9ca6e24e2c436f3d605ef9aaa 23-May-2013 Behdad Esfahbod <behdad@behdad.org> [icu_le] A bit better scaling
b-icu-le.cc
fb502a22787f4110472771ef771619342e64577a 23-May-2013 Behdad Esfahbod <behdad@behdad.org> Merge commit '9d9e72e94e7914f82ce62a304e7242f79c13edaf'
b9408d24f3029f5287b17779235b1c750ff5158a 23-May-2013 Behdad Esfahbod <behdad@behdad.org> [icu_le] Fix scaling

Seems to work...
b-icu-le.cc
b-icu-le/PortableFontInstance.cpp
b-icu-le/PortableFontInstance.h
601526392dec5d8432f147c91658ba50ed6a4322 21-May-2013 Behdad Esfahbod <behdad@behdad.org> Copy stdint.h boilerplate to ucdn
b-ucdn/ucdn.h
d785fa0c45f7f25f5e5f352b933a5f6fa29be5c0 20-May-2013 Behdad Esfahbod <behdad@behdad.org> Minor refactoring
b-ot-shape.cc
127daf15e0b2f509ebd29a104236c8b38884efb0 20-May-2013 Behdad Esfahbod <behdad@behdad.org> Arabic mark width-zeroing regression

Mozilla Bug 873902 - Display Arabic text with diacritics is bad
https://bugzilla.mozilla.org/show_bug.cgi?id=873902
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-default.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-private.hh
b-ot-shape-complex-thai.cc
b-ot-shape.cc
fa3d0a0ce60a9fcf2b7f906dec916463b1319eda 14-May-2013 Behdad Esfahbod <behdad@behdad.org> Bug 64476 - Typo in hb_set_t.get_min()

Fixes previous commit's test.
b-set-private.hh
9d9e72e94e7914f82ce62a304e7242f79c13edaf 04-May-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Use is_inplace() when flipping buffers
b-ot-layout.cc
45f3d980c9503bd94e64f6e3f67f97688347d00c 03-May-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Merge / templateize apply_string()
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout.cc
e015b8f2187d1102b9c34d1a63504e7b05ee20ee 03-May-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Minor
b-ot-layout-gpos-table.hh
780cd930a974165d76dbf7a87701d11b7f15db06 03-May-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Minor
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout.cc
2e0c44f4bedd3e24c731c0e9e23358e9a4891a35 24-Apr-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Add is_inplace() method to GSUB
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
bac1dd6a0ff4d4fae4254506d38ae662b7e9dda7 03-May-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Refactor a bit more
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-map-private.hh
b-ot-shape-complex-arabic-fallback.hh
b-ot-shape-fallback.cc
d2c96819de9a7428b65ef0adf794416224221f36 03-May-2013 Behdad Esfahbod <behdad@behdad.org> Move code around
b-ot-layout.cc
b-ot-map.cc
45fd9424c723f115ca98995b8f8a25185a6fc71d 03-May-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Add hb_ot_layout_lookup_accelerator_t
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-shape-complex-arabic-fallback.hh
76ea563673d24ae1673a5aa3a21da6014479d433 04-May-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Add note about collect_glyphs() and recursive lookups
b-ot-layout-gsubgpos-private.hh
a8bf0e91f18341e1e20f4e3341fc7dcdd0c990e1 03-May-2013 Behdad Esfahbod <behdad@behdad.org> Add U+061C ARABIC LETTER MARK to Default_Ignorable
b-unicode-private.hh
5d59f999204aedfc433ab4989664d875f96b0364 02-May-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Make MultipleSubst in-place for sequences of len=1
b-ot-layout-gsub-table.hh
54f84a6b8571ac7aaaa66f3eff562d23d69d7552 02-May-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Whitespace
b-ot-layout-gsub-table.hh
3276c354daaff3acabecff11f8e4b5c54d53fc25 02-May-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Minor refactoring
b-ot-map-private.hh
b-ot-map.cc
ea86efa486a5076e9bf844239bccf86d67577f88 02-May-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-map-private.hh
8b63efb6f80b2e9b2de5ec6ab24d6e15826565cb 02-May-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-buffer-private.hh
2265be0a620bc76ab65f12fedde67791beb51314 02-May-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-private.hh
e6f19af08717a6a63ad0b5bf4bf368778edc63f0 02-May-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-set-private.hh
6c15ddfe2b45383824b64058ae69939d002183a6 30-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Renamed DEBUG to something else

Some infrastructures use DEBUG as a generic symbol.
b-buffer.cc
b-private.hh
ed79dff517bacfc87279079d5d42d079c21a0373 21-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gpos-table.hh
893f57b32f01da3411b5596d59170bc340e9fa39 21-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Minor renaming
b-ot-map-private.hh
b-ot-map.cc
8ac3c9c0b6b8e76bce282825b9bb706c0c78c2a6 21-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Rename "pause" to "stage"

The compile() function is starting to become illegible...
b-ot-map-private.hh
b-ot-map.cc
dd0641a432691f9b6186b081c38053858c8bc5c1 21-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-map.cc
06a44e859328f5f1e2f6034e711b474116d22e22 21-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Remove unneeded code

We always push a pause at the end such that each lookup falls in exactly
one pause_map_t. Now, only if I can find a better name for that...
b-ot-map-private.hh
b-ot-map.cc
8659c636087e433f56da458351e8b4d85fdb347c 19-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Hand-code bsearch in the hot inner loop.

Saves another 3 / 4 percent with Amiri.
b-open-type-private.hh
797d76d07f80d796a825d850772087104e5a2575 19-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-common-private.hh
0dc3a4e0349d28f387a3b4c60a2f51962742738e 18-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Obssesive optimization

Not measurable by any means, but conceptually this is faster since
the mask matches more often than the digest.
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
f9a611026785a80baa4cbff31ad0847beb70ca9a 18-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Remove HB_DEBUG_SET_DIGESTS

Wasn't correct with the new combiner. I should add it back somehow,
but for now the digests seem to be working very well...
b-set-private.hh
b-set.cc
f7466ee76f2bd3812209426e2c39fe517227406d 18-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Remove hb_set_digest_common_bits_t

Was unused.
b-set-private.hh
0d5798a137b52d9be7ef88c79e59f9bf01d54f3b 18-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Improve hb_set_digest_t

Make Amiri rendering faster a whopping 45% again! Speends up pretty
much anything I tested.
b-set-private.hh
c7851efcd3a1e5317ab4ea57535cb755bace0848 17-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Templatize hb_set_digest_lowest_bits_t filter
b-set-private.hh
0edd0fd255790471118fae1fd7a1309a2b77cf62 17-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Add comment
b-set-private.hh
b40f2c0372acbc51b13be5cda7dd013e74e3e11a 17-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Add hb_set_digest_combiner_t
b-set-private.hh
02e5e583688999c4dc04f11b3924da65f99af7e3 17-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Speed up Speed up hb_set_digest_common_bits_t calcs

Correctly this time.
b-set-private.hh
893991fc9d2d3a57c4c148f3a9c3b98263cf3aed 17-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Initialize set digests

We were not initializing the digests properly and as a result they were
being initialized to zero, making digest1 to never do any useful work.

Speeds up Amiri shaping significantly.
b-ot-layout.cc
b-ot-shape-complex-arabic-fallback.hh
4d2813d3e980c8e6150caafa604a78cc44bf62a2 17-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Print set-digest hit ratio with HB_DEBUG_SET_DIGESTS
b-set-private.hh
b-set.cc
1357c2dd120d005ceecfa83ed328d05dc634d7bc 17-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Revert "Speed up hb_set_digest_common_bits_t calcs"

This reverts commit 3d1b66a35e1ab3be19335705f310b278d76d66d2.

The calculations were buggy. It's not worth optimizing right now.
b-set-private.hh
2b712bba3f7c459653737dfa2f7d26f17f3b9f64 16-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Fix typo in unused macro
b-private.hh
08677c250767bfc2c0dd1fc934dea92984741291 11-Apr-2013 Behdad Esfahbod <behdad@behdad.org> [old] Speed up Unicode properties access in hb-old shaper

Just to be sure it's not punishing the old shaper performance
numbers. Doesn't seem to have a measurable effect.
b-old/harfbuzz-arabic.c
b-old/harfbuzz-external.h
b-old/harfbuzz-greek.c
b-old/harfbuzz-hebrew.c
b-old/harfbuzz-indic.cpp
b-old/harfbuzz-shaper.cpp
b-old/harfbuzz-shaper.h
ef9e02eddfc9a37d50723e96839635d79191d849 09-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Minor
est.cc
587e5753e088b4d0b82c74ddbde790a8369a7517 05-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Add note re Hangul shaping
b-ot-shape-complex-private.hh
269de14dda7a86a20917fa9ea6a5864929c41364 05-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Don't compose Hangul jamo

See thread "an issue regarding discrepancy between Korean and Unicode
standards" on the mailing list for the rationale. In short: Uniscribe
doesn't, so fonts are designed to work without it.
b-ot-shape-complex-default.cc
b-ot-shape-normalize-private.hh
b-ot-shape-normalize.cc
1f970609850bb4999b94e1e11b764ab4279cbd38 04-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Put back MemoryBarrier fallback implementation on MINGW32

This almost reverts 2761e8a632c14353f286708898be8df6ebad7407,
but only if under MINGW32, so it doesn't affect MSVC.
b-atomic-private.hh
f368ba4a9edec4e297616698097546e8e6c89e53 04-Apr-2013 Behdad Esfahbod <behdad@behdad.org> [Arabic] Zero marks by GDEF, not Unicode category

Testing shows that this is closer to what Uniscribe does.

Reported by Khaled Hosny:

"""
commit 568000274c8edb5f41bc4f876ce21fcc8bdaeed8
...
This commit is causing a regression with Amiri, the string “هَٰذ” with
Uniscribe and HarfBuzz before this commit, gives:

[uni0630.fina=3+965|uni0670.medi=0+600|uni064E=0@-256,0+0|uni0647.init=0+926]

But now it gives:

[uni0630.fina=3+965|uni0670.medi=0+0|uni064E=0@-256,0+0|uni0647.init=0+926]

i.e. uni0670.medi is zeroed though it has a base glyph GDEF class.
"""

The test case is U+0647,U+064E,U+0670,U+0630 with Amiri.
b-ot-shape-complex-arabic.cc
3b80674c50b8c3133848a4034f7106b2b9bfe224 04-Apr-2013 Behdad Esfahbod <behdad@behdad.org> Bug 63107 - FTBFS on ppc64: symbols marked with 'D' on powerpc64 instead
heck-symbols.sh
7148dc1a978610af25b4f490691a62d709c8c463 02-Apr-2013 Behdad Esfahbod <behdad@behdad.org> [graphite2] Don't crash if language is not set

https://bugs.webkit.org/show_bug.cgi?id=113796
b-graphite2.cc
0ae9e064ddee691abed9dd70f57475e2e926e86b 25-Mar-2013 Raph Levien <raph@google.com> Merge from upstream harfbuzz

This commit also adds state machine files (autogenerated from Ragel
sources) to the repository so that we don't have a build-time dependency
on the Ragel tool. This choice does mean that we have to be careful to
update these files when merging.

Change-Id: I88eb8d81382ddd8cf75bb2ea0585e9d6553744b0
a88a62f70f87563725d47b9b6824565e5d6b78ab 22-Mar-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-normalize.cc
cc50bf5b13bfe88137fa7a42782872c40fb9aefb 19-Mar-2013 Behdad Esfahbod <behdad@behdad.org> Remove Hangul filler characters from Default_Ignorable chars

See discussion on mailing list.
b-unicode-private.hh
a8cf7b43fa795150ae3d42d64424bb6e0373d0b2 19-Mar-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Futher adjust ZWJ handling in Indic-like shapers

After the Ngapi hackfest work, we were assuming that fonts
won't use presentation features to choose specific forms
(eg. conjuncts). As such, we were using auto-joiner behavior
for such features. It proved to be troublesome as many fonts
used presentation forms ('pres') for example to form conjuncts,
which need to be disabled when a ZWJ is inserted.

Two examples:

U+0D2F,U+200D,U+0D4D,U+0D2F with kartika.ttf
U+0995,U+09CD,U+200D,U+09B7 with vrinda.ttf

What we do now is to never do magic to ZWJ during GSUB's main input
match for Indic-style shapers. Note that backtrack/lookahead are still
matched liberally, as is GPOS. This seems to be an acceptable
compromise.

As to the bug that initially started this work, that one needs to
be fixed differently:

Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not
provide same results as Windows8
https://bugs.freedesktop.org/show_bug.cgi?id=58714

New numbers:

BENGALI: 353689 out of 354188 tests passed. 499 failed (0.140886%)
DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60706 out of 60747 tests passed. 41 failed (0.067493%)
KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048102 out of 1048334 tests passed. 232 failed (0.0221304%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
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%)
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-arabic-fallback.hh
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-sea.cc
b-ot-shape-fallback.cc
190e19e6842875c7a487c66235300ee6b42fb5da 10-Mar-2013 Behdad Esfahbod <behdad@behdad.org> [ft] Remove TODO items that I'm not going to fix
b-ft.cc
392ee97431b368ee74e1b521fd539b69d2efadfb 10-Mar-2013 Behdad Esfahbod <behdad@behdad.org> [ft] Remove TODO item re FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH

That flag is redundant, deprecated, and ignored since April 2011.
From FreeType git log:

commit 8c82ec5b17d0cfc9b0876a2d848acc207a62a25a
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Thu Apr 21 08:21:37 2011 +0200

Always ignore global advance.

This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant,
deprecated, and ignored. The new behavior is what every major user
of FreeType has been requesting. Global advance is broken in many
CJK fonts. Just ignoring it by default makes most sense.

* src/truetype/ttdriver.c (tt_get_advances),
src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics,
tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph),
src/truetype/ttgload.h: Implement it.

* docs/CHANGES: Updated.
b-ft.cc
c5d91f39802078fc6f6de71940739ec4d04eca07 09-Mar-2013 Behdad Esfahbod <behdad@behdad.org> Add hb_auto_array_t
b-private.hh
ee5464d17fa4c59f5adaaa13dde70dd5264dbc64 09-Mar-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Move code around
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
9c5a9ee967120c8a968a1160c420e03620d46c24 09-Mar-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Rename process() to dispatch()
b-open-type-private.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
2761e8a632c14353f286708898be8df6ebad7407 08-Mar-2013 Behdad Esfahbod <behdad@behdad.org> [win32] Remove MemoryBarrier() fallback implementation

I added these because the older mingw32 toolchain didn't have
MemoryBarrier(). The newer mingw-w64 toolchain however has.
As reported by John Emmas this was causing build failure with
MSVC (on glib) because of inline issues. But that reminded me
that we may be taking this path even if the system implements
MemoryBarrier as a function, which is a waste. So, just remove
it.
b-atomic-private.hh
5594c2d112c295147ee69215a2ce9dfd99984aa0 07-Mar-2013 Behdad Esfahbod <behdad@behdad.org> [FT] Just return if glyph name not found

The fallback happens in higher level already. No need to do here.
b-ft.cc
fb7c182bf92142540bff1ad7fb82de0d115fb2b5 06-Mar-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor
b-ot-shape-complex-indic.cc
8144936d072f94104242edf9e7aaa31d315b4094 06-Mar-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Work around fonts with broken new-spec tables

See comments, and this thread:

http://lists.freedesktop.org/archives/harfbuzz/2013-March/002990.html

Originally reported here:

https://code.google.com/p/chromium/issues/detail?id=96143

Doesn't change test suite numbers.
b-ot-shape-complex-indic.cc
cd54d505d1a2467a67e5ff96fe0eb101b953b265 05-Mar-2013 Behdad Esfahbod <behdad@behdad.org> Fix distcheck
akefile.am
41732f1fe3ce856d8bb95850635034537b6ba047 28-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Help compiler put indic_features table in .rodata

The overridden "or" operator was preventing the flag expression from
being const, and putting the table in .data instead or .rodata.
b-ot-map-private.hh
b-ot-shape-complex-indic.cc
778d7f844cb330289830c95431269db06ba1c969 28-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [buffer] Better parse glyph names
b-buffer-deserialize-json.rl
b-buffer-deserialize-text.rl
20b817ac21147e0a8edbf23ef071c2f4ce6c2b95 28-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [buffer] Implement buffer deserialization for format=json

Using a ragel machine.
akefile.am
b-buffer-deserialize-json.rl
b-buffer-deserialize-text.rl
b-buffer-serialize.cc
b-private.hh
b-shape.cc
est-buffer-serialize.cc
847794e929831750e97525137ab5e285ccd1064e 27-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [buffer] Implement buffer deserialization for format=text

Using a ragel machine.
akefile.am
b-buffer-deserialize-text.rl
b-buffer-private.hh
b-buffer-serialize.cc
b-buffer.cc
b-buffer.h
b-private.hh
b-shape.cc
est-buffer-serialize.cc
4ee803b42a3baae4b0f295a07cb7ad591a538e4c 27-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [buffer] Fix serializing of buffer with invalid direction
b-buffer-serialize.cc
e54dd26300f50eb19907a9d39269a363279b3e07 27-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [buffer] Start implementing buffer deserialization
akefile.am
b-buffer-serialize.cc
b-buffer.h
est-buffer-serialize.cc
bcc8f32b4c46cd73f591924c64a6f63df6eaf9e7 27-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [buffer] Minor
b-buffer-serialize.cc
b-buffer.h
d3e14aafff60e1314d0ef66e42cdde6bf949bb66 27-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [buffer] Move buffer serialization code to a new file
akefile.am
b-buffer-serialize.cc
b-buffer.cc
8da51112696ec8641d7dd9184b7ab1dd48458813 27-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-shape.cc
94789fd6012125acc8426dd88df97f03b0948ea5 27-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Sort pre-base reordering consonants with post-forms

Before, we were marking them as below-form for initial reordering.
However, there is a rule that says "post consonants should follow
below consonsnts" for base determination purposes. Malayalam has
port-form YA/VA, and RA is pre-base. As such, for a sequence like
YA,Virama,YA,Virama,RA, the correct base is at index 0. But
because the code was seeing RA as a below-base, it was stopping at
the second YA as base, instead of jumping it as a post-base.

By treating prebase-reordering consonants like post-forms, this
is fixed.

MALAYALAM went down from 351 to 265. Other numbers didn't change:

BENGALI: 353686 out of 354188 tests passed. 502 failed (0.141733%)
DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%)
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: 1048069 out of 1048334 tests passed. 265 failed (0.0252782%)
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%)
b-ot-shape-complex-indic.cc
05d5d3cd63ba2fadfdb62190dd24ef80ee3df40c 26-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Fix "comparison between signed and unsigned" warnings

Patch from Jonathan Kew.
b-open-type-private.hh
07a52b62115f10caea5c2d174a4272eb9ddb2284 26-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Give up sanitizing after 100 edit requests

Such fonts are *definitely* really broken. Give up.
Limits time spent in sanitize for extremely / deliberately broken
fonts. For example, two fonts with these md5sum / names:

9343f0a1b8c84b8123e7d201cae62ffd.ttf
eb8c978547f09d368fc204194fb34688.ttf

were spending over a second in sanitize! Not anymore.
b-open-type-private.hh
29ff25481584e20a2fa39195f295c8eb4bf3bad0 26-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Add HB_DEBUG_VERBOSE

Only affects the verbosity of function name printing right now.
b-private.hh
c3ba49b6fa1865e8318926eaa6c0f2063d1053bb 25-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Always create sub-blobs in MEMORY_MODE_READONLY

This fixes a design bug with sanitize and sub-blobs that can
cause crashes. Jonathan and I found and debugged this issue
when we tested a corrupt font with the md5sum / filename:
ea395483d37af0cb933f40689ff7b60a. Two hours of intense
debugging we found out that the font has overlapping GSUB/GPOS
tables, and as such, sanitizing the second table can modify
the first one, which can cause all kinds of undefined behavior.

The correct way to fix this is to make sure sub-blobs are
always created readonly, since we consider the parent blob
to be a shared resource and can't modify it, even if it *is*
writable.

This essentially makes the READONLY_MAY_MAKE_WRITABLE mode
unused... Maybe we should simply remove / deprecate it.
b-blob.cc
b-blob.h
57542d7f411c71d9b8110ce6f64090b2c0f6a925 21-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-private.hh
d46606e119b48dcca375d6313abd0f93ba5d09c3 21-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Port TrueType-kerning to use skippy iterator

It skips joiners and default ignorables now. Skips marks too, but only
if there is proper GDEF classes for marks.
b-ot-shape-fallback.cc
722e8b857eafc52e07dee5d9b253b88ed5c5c8ed 21-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Fixup previous commit

Was not decreasing num_items. Ouch!
b-ot-layout-gsubgpos-private.hh
ba87b8fc89bf745068ccd19264a2631ea0904846 21-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Move code around
b-ot-shape-fallback-private.hh
b-ot-shape-fallback.cc
b-ot-shape.cc
2b2a6e8944144755ab641f2842e36d9a847719f3 21-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Correctly skip Default_Ignorable when match_func not set

When a match_func was not set on the matcher_t object (ie. from GPOS),
then the Default_Ignorables (including joiners) were never skipped.
This meant that they were not skipped as they should during GPOS
matching. Fix that.

A few Indic numbers have "regressed": BENGALI and DEVANAGARI went
up from 290 and 58 respectively, but in both cases new results are
superior to Uniscribe, as they apply GPOS when we weren't (and
Uniscribe isn't) before.
BENGALI: 353686 out of 354188 tests passed. 502 failed (0.141733%)
DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%)
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%)
b-ot-layout-gsubgpos-private.hh
ff93ac8cb24cbc3d9dc1a2bfb0faa88950f4a507 21-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsubgpos-private.hh
b1f440759161cb5a54e1b1b910f3a8383b8e8472 17-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [SEA] Fix order of pre-base reordering Ra and left matras

The code was confused because it was expecting left matra to have
POS_PRE_M, like we do in the Myanmar shaper, but that is not what
we were doing in this shaper. Rewrite to rely on category only.

Test case: U+AA06,U+AA34,U+AA2F
b-ot-shape-complex-sea.cc
99fa9ea020f26ed2697f38a7690ee1e1b5d946c4 15-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsub-table.hh
27589620ba2dcf356fd7fa21cd80221a07803202 15-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Remove unused code
b-open-type-private.hh
c2a1cdc4c4cc51f4680ebc4ec2c462cb660f9492 15-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Arabic] Fix shaping of left-joining 'Phags-Pa U+A872

This is the first character in Unicode to have Arabic left-joining
behavior. Update the machine to recognize that.

Test case: U+A840,U+A872,U+A840.
b-ot-shape-complex-arabic.cc
c462b32dcb883a7aca066af24c4d28c7a2b7fa28 15-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Disable automatic segment properties guessing

Before, if one called hb_shape() without setting script, language, and
direction on the buffer, hb_shape() was calling
hb_buffer_guess_segment_properties() on the user's behalf to guess
these.

This is very dangerous, since any serious user of HarfBuzz must set
these properly (specially important is direction). So now, we don't
guess properties by default. People not setting direction will get
an abort() now. If the old behavior is desired (fragile, good for
simple testing only), users can call
hb_buffer_guess_segment_properties() on the buffer just before calling
hb_shape().
b-fallback-shape.cc
b-ot-shape.cc
b-shape.cc
7abddbb47a489aaac8e76ac6e700cd815739b1d2 15-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Add assertions for a couple programmer errors
b-shape-plan.cc
038c98f6866fe1177b04bd2ae3bb461b2f0fd1ed 15-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Allow disabling of TrueType kerning

Responds to the same feature tag that GPOS kerning does:
'kern' for horizontal and 'vkrn' for vertical.
b-ot-shape.cc
398238a2526d322eb79e255c24634a275473920f 15-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Fix partial disabling of default-on features

Surprisingly, if user ever tried to turn a default feature off partially
(say, disable liga for a range), the feature was being turned off
globally! Fixed now.
b-ot-map.cc
cb90b1bbe6d27ca6968b70d2dbfea7ab7fb73293 15-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Respect syllable boundaries for backtrack/lookahead matching

Originally we meant to match backtrack/lookahead across syllable
boundaries. But a bug in the code meant that this was NOT done for
backtrack. We "fixed" that in 2c7d0b6b80d412de3fddd443ed1a485ea1cbb03c,
but that broke Myanmar shaping.

We now believe that for Indic-like shapers (which is where syllables are
used), all basic shaping forms should be fully contained within their
syllables, so now we limit backtrack/lookahead matching to the syllable
too. Unbreaks Myanmar.
b-ot-layout-gsubgpos-private.hh
ee9c3a17d0bf263c5eee479fd778db97cff8e189 15-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Minor refactoring
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-sea.cc
b-ot-shape.cc
cfc507c5432e6327e8484b07b9e091212653bc92 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [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%)
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-arabic-fallback.hh
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-sea.cc
0b45479198d61d5135dad771e9c68408eb13f930 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Add fine-grained control over ZWJ matching

Not used yet. Next commit...
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
607feb7cff0e50f8738d2e49ca463fc9d7d494de 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Ignore default-ignorables when matching GSUB/GPOS

When matching lookups, be smart about default-ignorable characters.
In particular:

Do nothing specific about ZWNJ, but for the other default-ignorables:

If the lookup in question uses the ignorable character in a sequence,
then match it as we used to do. However, if the sequence match will
fail because the default-ignorable blocked it, try skipping the
ignorable character and continue.

The most immediate thing it means is that if Lam-Alef forms a ligature,
then Lam-ZWJ-Alef will do to. Finally!

One exception: when matching for GPOS, or for backtrack/lookahead of
GSUB, we ignore ZWNJ too. That's the right thing to do.

It certainly is possible to build fonts that this feature will result
in undesirable glyphs, but it's hard to think of a real-world case
that that would happen.

This *does* break Indic shaping right now, since Indic Unicode has
specific rules for what ZWJ/ZWNJ mean, and skipping ZWJ is breaking
those rules. That will be fixed in upcoming commits.
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-shape-private.hh
ec5448667b30ad662401c2b4f5fc0da524c013fd 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Add hb_ot_map_feature_flags_t

Code cleanup. No (intended) functional change.
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-sea.cc
b-ot-shape.cc
e7ffcfafb1108801ac504f18f820e497226bf07f 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Clean-up add_bool_feature
b-ot-map-private.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-default.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-sea.cc
b-ot-shape.cc
e7562f53fe6a506d2c6d59d6688e4fa468bba462 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Fix compile warnings for ragel-generated machines
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-myanmar-machine.rl
b-ot-shape-complex-sea-machine.rl
4e51df73a337f7232a7dfa85df78a4f19b24771b 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Remove unused function
b-ot-layout-gsubgpos-private.hh
8820bb235b1f63e4d93c8a2f5c08b44d89e06b78 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Port apply_lookup to skippy_iter
b-ot-layout-gsubgpos-private.hh
dfca269f069dae2f99990dac24da15d316eccb9f 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Port ligate_input to skippy_iter
b-ot-layout-gsubgpos-private.hh
7e53415c2d8859e8b5948a2edb38c39a8f78b825 14-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Minor fix for apply_lookup()

Should NOT change behavior, since first glyph is a match.
b-ot-layout-gsubgpos-private.hh
6880f7e19d44c50e45ecb86d26381aad956d9acb 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Make table type known to apply context
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-shape-complex-arabic-fallback.hh
2c7d0b6b80d412de3fddd443ed1a485ea1cbb03c 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayou] Unbreak backtrack matching

Was introduced by 28b9d502bb69a8045818d5f6113ded9c59a56bd7.
b-ot-layout-gsubgpos-private.hh
c074ebc466dcc9bcc0d8a5dd7e942dea974ff718 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Minor refactoring
b-ot-layout-gpos-table.hh
b-ot-layout-gsubgpos-private.hh
407fc12466ef460d0edf11b89f0d04c4d724875f 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Remove bogus caching of glyph property
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
6b1e3502e23c110dd810f854ba021f83baab1548 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Remember ZWNJ

To be used in upcoming changes.
b-ot-shape-private.hh
1f91c39677f840a1f630696d16d083060069abf5 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Indent
b-ot-shape-complex-indic.cc
a0cb9f33ee064628debe8e848094dfd661334640 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Improve base finding in final_reordering

Fixes 5 Malayalam failures!

MALAYALAM: 1048016 out of 1048334 tests passed. 318 failed (0.0303338%)
b-ot-shape-complex-indic.cc
f22b7e77783fa2f44365e0fe6413c4474c07048d 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Track base position when reordering things

Ouch, how did things ever work without this?! The added test that has a
dot-reph as well as a pre-base reordering Ra perfectly demonstrates the
bug (tested with Nirmala font from Win8 for example). Testing suggests
that Win8 shaper has the *exact* same bug / behavior that we used to
have. Odd.
b-ot-shape-complex-indic.cc
bc11de144c0a7a95fa0945aa7f053d8117af282a 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [SEA] Don't zero any mark advances

Keep the logic simple, easier to explain to font developers.
b-ot-shape-complex-sea.cc
0291a6528685f1f593707655943fb2360579cb9e 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Further adjust mark advance zeroing

This is a followup to 568000274c8edb5f41bc4f876ce21fcc8bdaeed8.
Looks like in the Latin shaper, Uniscribe zeroes all Unicode NSM
advances *after* GPOS, not before. Match that.

Can be tested using DejaVu Sans Mono, since that font has GPOS
rules to zero the mark advances on its own.
b-ot-shape.cc
85c51ec2e1d518019e32801ae38659c74fc20d80 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix Eyelash Ra with old Devanagari spec
b-ot-shape-complex-indic.cc
63e48bc33b68f940c351af623a55a4cf650db102 12-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Apply 'blwf' before 'half'

This reverts 167b625d988b74572d6b2f646c285b666b650d49. It didn't
matter before, but that's going to change with next commit.
b-ot-shape-complex-indic.cc
70d656571194d2bd32671244530edbe159722cec 13-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Apply 'vatu' before 'cjct'

This essentially reverts 1d6846db9ebf84561bb30a4e48c6c43184914099,
but that commit is from way back when. We should be better
following the spec order now again.
b-ot-shape-complex-indic.cc
f9b660534c269d2257d6b5e8ec2173ee71668f2f 12-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Myanmar] Use master Indic table for syllable data
b-ot-shape-complex-myanmar.cc
a6c1e040e594faeefd61b456ef995c7886cdea78 12-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Improve check for Windows platforms

Instead of checking for compiler, check for platform.
b-atomic-private.hh
b-mutex-private.hh
9e1f80ab3eea4a74cdaa6a390e4925a479ece1c5 12-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [SEA] Treat Consonant_Final like Consonant_Medial
b-ot-shape-complex-indic-private.hh
bab02d339f39ed5168daaef9461227f78e596a2f 12-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS

The Myanmar shaper now respects the uniscribe-bug-compatibility
option too.
b-common.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-private.hh
3a83d33ec0b1be6f5992816ff5ebb0f43c8dff00 12-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Add South-East Asian shaper

Handles Tai Tham, Cham, and New Tai Lue for now.
akefile.am
en-indic-table.py
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic-table.cc
b-ot-shape-complex-indic-table.hh
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-private.hh
b-ot-shape-complex-sea-machine.rl
b-ot-shape-complex-sea.cc
5676d5d52784e16068ae483103d59111a8081854 12-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Make sure New Tai Lue works!
b-ot-shape-complex-private.hh
568000274c8edb5f41bc4f876ce21fcc8bdaeed8 12-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Adjust mark advance-width zeroing logic for Myanmar

Before, we were zeroing advance width of attached marks for
non-Indic scripts, and not doing it for Indic.

We have now three different behaviors, which seem to better
reflect what Uniscribe is doing:

- For Indic, no explicit zeroing happens whatsoever, which
is the same as before,

- For Myanmar, zero advance width of glyphs marked as marks
*in GDEF*, and do that *before* applying GPOS. This seems
to be what the new Win8 Myanmar shaper does,

- For everything else, zero advance width of glyphs that are
from General_Category=Mn Unicode characters, and do so
before applying GPOS. This seems to be what Uniscribe does
for Latin at least.

With these changes, positioning of all tests matches for Myanmar,
except for the glitch in Uniscribe not applying 'mark'. See preivous
commit.
b-ot-layout-gpos-table.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-default.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-private.hh
b-ot-shape-complex-thai.cc
b-ot-shape.cc
99749ca8e0c4c8dbea4620f07c4d0e6d1515cc65 12-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Myanmar] Add note re Uniscribe NOT applying 'mark'
b-ot-shape-complex-myanmar.cc
b8427801381180da9611b2e3e0f0b3514274de81 11-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-atomic-private.hh
b-mutex-private.hh
419c933ed1b5d97c7561546536ef5810a7b0ebd0 11-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Myanmar] Fix handling of Punctuation and Symbol types

Testing with "clusters" now on par with testing without them. 15
failures both.
b-ot-shape-complex-myanmar.cc
0572c1410a9cb0ac5dd5dc84a8034698cc5c4892 11-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Myanmar] Fixup handling of joiners and GB characters
b-ot-shape-complex-myanmar-machine.rl
b-ot-shape-complex-myanmar.cc
1c8654ead41ca746d577549c92d2a41c594ab639 11-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Myanmar] Prevent reordering between Asat and Dot below

Implemented as a hack for now. Myanmar failures down from 23 to 15.

MYANMAR: 1123868 out of 1123883 tests passed. 15 failed (0.00133466%)

The remaining 15 cases are all where the syllable is wrong according to
the OpenType spec. We insert dottedcircle. Uniscribe fails to do that,
but it also fails to reorder the prebase-reordering medial-Ra. So it
gets it wrong.
b-unicode-private.hh
98628cac9f733f2674d6409954cddb7d0634c233 11-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Add Win8-style Myanmar shaper

Myanmar failures down from 51% to 0.00204648%!

MYANMAR: 1123860 out of 1123883 tests passed. 23 failed (0.00204648%)
akefile.am
b-ot-shape-complex-indic.cc
b-ot-shape-complex-myanmar-machine.rl
b-ot-shape-complex-myanmar.cc
b-ot-shape-complex-private.hh
1df56449586bd32275a6fa69dcadd5fb77a84f82 11-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
54f7b4d9ec13f8454aa298534da318c023fa3c63 11-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Respect lookup-flags skipping over non-mark glyphs

Before, when matching ligatures, we never skipping over base / liga
glyphs even if that was what the LookupFlags asked for.

Fixed now. We carefully reviewed all instances of this, and tested with
Amiri as well as some Indic scripts, and are confident that this should
NOT break anyone's fonts. It's also how Uniscribe does it, from what
we can tell.
b-ot-layout-gpos-table.hh
b-ot-layout-gsubgpos-private.hh
9082efc4aacb34de8574d6a4a3c037987df58bd8 11-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] s/mark_skipping/skipping/

In aticipation of upcoming changes.
b-ot-layout-gpos-table.hh
b-ot-layout-gsubgpos-private.hh
9621e0ba294c9cc6d458bbf632e63e92fda71e10 11-Feb-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix bug introduced in 8b217f5ac54aa0dcbba2dd6d59aa89dde33e56c2

Was breaking reph formation logic when the Ra is the only consonant.
Devanagari regression fixed. Down to 57 failures again. Ouch.
b-ot-shape-complex-indic.cc
6e74c64211b6aaac48bae8c87f9420d8dc03fd93 11-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Improve normalization heuristic

Before, for most scripts, we were not trying to recompose two characters
if the second one had ccc=0. That fails for Myanmar where U+1026
decomposes to U+1025,U+102E, both of which have ccc=0. However, we do
want to try to recompose those. We now check whether the second is a
mark, using general category instead.

At the same time, remove optimization that was conflicting with this.

[Let the Ngapi hackfest begin!]
b-ot-shape-normalize.cc
adff3778155facb7b149ce66ab7d573368e048de 07-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Revert "[Indic] Import ragel-generated Indic machine in git"

This reverts commit fab7a71f110ed646745d54b23284537c50058c21.

Conflicts:
src/hb-ot-shape-complex-indic-machine.hh

Keeping that generated file in-tree causes problems with processes like
tinderbox that automatically fetch and build harfbuzz. It's harder to
bootstrap harfbuzz now (as was previously), but I'm willing to give this
another chance and see how it goes.
akefile.am
b-ot-shape-complex-indic-machine.hh
9de5f98f363d96f308adc33f1c2286e5c33117de 05-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Bug 60035 - intermittent make install failure on hb-version.h
akefile.am
6c1e8b614cfd6ed016fba6bf20af1e422e79eb71 05-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Bug 59637 - check-exported-symbols.sh & check-internal-symbols.sh fail on mips/mipsel
heck-symbols.sh
bafdf3d983dcc277d6e7e322277c0bb25b41a173 05-Feb-2013 Behdad Esfahbod <behdad@behdad.org> Merge check-internal-symbols.sh and check-exported-symbols.sh
akefile.am
heck-exported-symbols.sh
heck-internal-symbols.sh
heck-symbols.sh
e9171af55cc6a402eb20db4ea74c86a0b1e70e85 30-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used
b-common.cc
b-ft.cc
b-shape.cc
b-shaper.cc
eb45c0a2fbaeeb34e77a2935934e8d1302728ec8 17-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout.cc
52c8d1226f3509276b11a1fadbd29e5363c0ecd7 14-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-blob.cc
f88d3bd7e407d332bb04688344c54756d24128c9 14-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Fix build with Sun compiler
b-blob.cc
08b29c08094097f1c23ec53b10084bc390cea833 14-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Revert "Minor"

This reverts commit 0a492357016bc9a614d2a726f2006c10af68ca58.

Enables code on more compilers.
b-warning.cc
e78463211e7d85f237bd55afab7e8e5dae42346c 14-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Fix linking with non-gcc compilers
akefile.am
de649f07f1f8fdeb998a0b049759f4f7363e25d2 14-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Fix residuals from fontconfig changes
b-atomic-private.hh
2dcb333f52492018816f0d5d67a47634a612e49c 10-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Add atomic ops for Solaris

Based on fontconfig patch from Raimund Steger.
b-atomic-private.hh
69fd6e157c7ec83a5d5d8731fc14675ce4509b09 10-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Fix crasher during multi-thread shaper data creation

Sample crash:

0 _hb_graphite2_shaper_face_data_destroy (data=0xffffffffffffffff)
at ../../src/hb-graphite2.cc:129
1 0x00007ffff4271d7d in hb_graphite2_shaper_face_data_ensure (
face=<optimized out>) at ../../src/hb-shaper-list.hh:35
2 hb_shape_plan_plan (shaper_list=<optimized out>, num_user_features=0,
user_features=0x0, shape_plan=0xf7b490) at ../../src/hb-shaper-list.hh:35
3 hb_shape_plan_create (face=<optimized out>, props=<optimized out>,
user_features=0x0, num_user_features=0, shaper_list=<optimized out>)
at ../../src/hb-shape-plan.cc:108
4 0x00007ffff4272c93 in hb_shape_plan_create_cached (face=0x10cf2b0,
props=0x11980d8, user_features=0x0, num_user_features=<optimized out>,
shaper_list=0x0) at ../../src/hb-shape-plan.cc:283
b-shaper-private.hh
ecd454b3cd75050e0c95e1d2aa55744559338ec8 09-Jan-2013 Behdad Esfahbod <behdad@behdad.org> [Indic] In old-spec shaping, don't move viramas around if seq ends with one

For example: u0c9a u0ccd u0c9a u0ccd with Lohit. See:

https://bugs.freedesktop.org/show_bug.cgi?id=59118
b-ot-shape-complex-indic.cc
a6fcef5012f25e0859e90ec832a233be659c6699 08-Jan-2013 Raph Levien <raph@google.com> Merge "Add explicit hb-version.h"
e95e031b5682809488cc965883e15404cb9cfb6a 08-Jan-2013 Behdad Esfahbod <behdad@behdad.org> [GPOS] If an Anchor offset is NULL, return false

If in a MarkPos table, a base has no anchor for a particular mark class,
return NULL such that the subsequent subtables get a chance at it.

Test case:
hb-shape ./EBGaramond12-Regular.otf ἂ --features="ss20","smcp"
b-open-type-private.hh
b-ot-layout-gpos-table.hh
e69eda51bc943f5138b2f1f2bc0362b4c93e2152 08-Jan-2013 Raph Levien <raph@google.com> Add explicit hb-version.h

The standard harfbuzz build autogenerates hb-version.h from
hb-version.h.in, but since that's not easy to do in the Android build,
we just include it explicitly so the build will go through.

Change-Id: I638a98c29f80b80f98e1e997ef934ea56816a3d0
b-version.h
1172dc736280566426eb6dade1a886b2a0ca9aa4 07-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Rename hb_buffer_clear() to hb_buffer_clear_contents()

The previous name was clashing with harfbuzz.old. There are systems
that need to link both...

Clash-free now again.
b-buffer.cc
b-buffer.h
7b912c1936c3e8a7df27a30782ca127d0a83822d 04-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Remove a few unnecessary const's

Apparently helps with MSVC compilation.
b-ot-layout-gsubgpos-private.hh
f0c82410dbe800cb6429ba4aa7cfd9f5a11cc70c 03-Jan-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Always collect default language system in collect_lookups

Not sure if this is the most desired behavior. It's the most easily
defined though.
b-ot-layout.cc
15e9e4e1ddaad655988144e7a56a765e8adf8782 03-Jan-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Fix feature iteration in collect_lookups

Previous logic was just wrong.
b-ot-layout.cc
733e8c0d7bf0765884f2cc953c8edcd7ab7fb49b 03-Jan-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Whitespace
b-ot-layout.cc
d37ae38047bee12639741af9bb083b857fab950d 03-Jan-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Handle required_feature_index in collect_lookups
b-ot-layout.cc
11fba79ee9383eb995ddf7eb924dd64c67e2df63 03-Jan-2013 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Fix various introspection issues with ClassDef's

As reported by Jonathan Kew.
b-ot-layout-gsubgpos-private.hh
7b1b720a8da69b68b775ce17104a40d55401b7ef 03-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Protect sets in-error from further modication

Fixes test-set.c
b-set-private.hh
8165f2765b93e99577ecc79b7956ae38c614bc78 03-Jan-2013 Behdad Esfahbod <behdad@behdad.org> [tests] Start adding tests for hb-set.h

Fails now. Fixing.
b-set-private.hh
b-set.cc
b-set.h
11d2956553f0d4a0086166a04ffc352fcfacf56e 03-Jan-2013 Behdad Esfahbod <behdad@behdad.org> Minor
b-atomic-private.hh
596740db04e7c1dadae0d8be6e401089fcaffc2d 22-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Insert dottedcircle after a lone Malayalam dot-reph
b-ot-shape-complex-indic-machine.hh
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
6f69fa283e0a488da811df78bc83c41ed248b688 21-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-shape.h
f4abcbfc628718bb276363746440df06e7658f6e 21-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-buffer.cc
8b217f5ac54aa0dcbba2dd6d59aa89dde33e56c2 21-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Reorder Malayalam dot-reph to after base

Test sequence is simple: U+0D4E,U+0D15. The doth-reph should be
reordered to after the Ka.

https://bugzilla.redhat.com/show_bug.cgi?id=799565
b-ot-shape-complex-indic.cc
742c4ee97e1311e000ebcdf9f33361c4dc6400a4 21-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
044d38527664d933c18c751c38fcf6fb4b5f888e 19-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Bug 58498 - Tests fail with gold linker on ARM
heck-exported-symbols.sh
heck-internal-symbols.sh
b68b86daf1a8478b86aeae44a8c39a606ed873cb 19-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Use C++ linker if ICU is disabled

Bug 54948 - Undefined symbols: "operator delete(void*)" "operator
new(unsigned long)" "___cxa_pure_virtual"
akefile.am
1ffd23cb47a61465d52a7aeebb9c1b676e7c9a7e 18-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Limit alternate-location FeatureParams to 'size' feature
b-ot-layout-common-private.hh
efe252e6000558f78075adadb2a3dba25ab67c04 18-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Fix 'size' featureParams implementation

Looks at alternate location now.
b-ot-layout-common-private.hh
b-ot-layout.cc
e77b4425746ac9eb407ca4e742d962f1955971b4 18-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Fix tracing
b-open-type-private.hh
9b54562d63f1a9e0e5b33d71c32bd1588759ebf1 17-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Towards correct FeatureParams handling
b-open-type-private.hh
b-ot-layout-common-private.hh
87e43b7f2be25840748f920ca33ff553833da45f 14-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Wire tag and list start all the way to Feature

To fix FeatureParam issues. No actual fix yet, just plumbing.
b-ot-layout-common-private.hh
85bc44b90a19c6a669ed567a9cd8513448600afe 12-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] More 'size' feature sanity checking

We still don't look for the old incorrect place of the featureParams.
I'll wait till someone actually complains about it...
b-ot-layout.cc
0bae50a36f3022f9bb6b2c001c191eeaaa4ef954 11-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Add FeatureParamsCharacterVariants struct

No API yet.
b-ot-layout-common-private.hh
bd61bc13ea8ff350ada5449b2cfeb612e66ecafa 11-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Add UINT24 type
b-open-type-private.hh
b-private.hh
9cf7f9d4f61741932570afbefdee5edf61f79ae4 11-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Make test-size-params write size in points
est-size-params.cc
372fe2b67b1757e809bf33e1e9055a00c5bed304 11-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Make hb_ot_layout_get_size_params() do some checks
b-ot-layout.cc
875a5cbc9c37f4264241c43b80afad2628eab749 11-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Change hb_ot_layout_get_params() API

And add implementation for StylisticSet UINameID. No API yet.
b-ot-layout-common-private.hh
b-ot-layout.cc
b-ot-layout.h
est-size-params.cc
0e9f0f3e5f16a45951423a1229af42dc2fd798c3 10-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Fix atomic ops on iOS

Patch from John Ralls.
b-atomic-private.hh
5f9569c1391c65d7addff363ad6e5ec9b087f01a 10-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Make older MSVC happy
b-private.hh
071d5b831e6de5f3b24160dc77b139cb040ab886 10-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Work around missing OSAtomicCompareAndSwapPtrBarrier() on OS X 10.4

Not sure how to handle iOS.
b-atomic-private.hh
e923e6487b25ab86f6f629af480b291e8e5407b5 10-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [coretext] Fixed typo

Oops. Thanks Khaled for catching this.
b-coretext.cc
9a8395824bf51c2ff2cfe0887ecad52b3d2c02e2 10-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [coretext] Add hb_coretext_face_get_cg_font()

Not sure if it's useful, but it was missing.
b-coretext.cc
b-coretext.h
86112356885fde32163882b6c9dd19a494304f7a 10-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [coretext] Remove hack around GlyphID

We not namespace our types, so the hack is not needed anymore.
b-coretext.cc
8e58459aeb949591bb5bca340ef9bdd5cfd54e47 10-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [graphite2] "Update to new API"

Part of patch from Martin Hosken. I believe he knows what he's doing
:).
b-graphite2.cc
a5a4ab3846ef06769784e6469d76eace35e68805 10-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [graphite2] Add hb_graphite2_face_get_gr_face and hb_graphite2_font_get_gr_font

Based on patch from Martin Hosken. I believe it returns NULL if the
font doesn't have graphite tables, but have not tested.
b-graphite2.cc
b-graphite2.h
737ba156442f723d126c7c58c73729786b67c17a 10-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [graphite2] Preload all tables

Part of patch from Martin Hosken.
b-graphite2.cc
0ae6dbf1b4de8a0326b8a2f201597427cecfb6db 10-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-uniscribe.cc
3fe5c159d3532f8ce8a85d217a00681225dd8ed1 10-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Remove excess return

Oops!
b-uniscribe.cc
ba2d543004573e8e4e56df70b7fe2a66a42bc83f 09-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Update OT language tags

Patch from Roozbeh Pournader.
b-ot-tag.cc
aba38173c6b464c2884b73ef6cd4577d4efcebbc 06-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-tag.cc
61865745e35eb60aeb59968e7826e37059090780 06-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Fix test with gold linker

Bug 57633 - Symbol tests should ignore __bss_start, _edata, _end
heck-exported-symbols.sh
heck-internal-symbols.sh
b71b0bd9ee64feadd7289e195bc58f6361ce707a 06-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Add link to Sinhala split matra section of the Sinhala spec
b-ot-shape-complex-indic.cc
0beb66e3a61ae8bb1fa66e54b1ff1abb2f8711e9 06-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Fix warnings
b-fallback-shape.cc
b-glib.cc
b-icu-le.cc
b-old.cc
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-shape-complex-arabic-fallback.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic-machine.hh
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
b-ot-shape-complex-thai.cc
b-ot-shape-fallback.cc
b-private.hh
b-ucdn.cc
b-utf-private.hh
130bb3f6144afe5c88bb5b4e4c98e7cba03b1e26 05-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Rename VOID and void_t to have HarfBuzz prefix

Fixes build on Windows. Ouch!
b-ot-layout-gsubgpos-private.hh
b-private.hh
4a350d0eb25db60d95638664c892d4c8dacf050b 04-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Reuse context in collect_glyphs() recursion
b-ot-layout-gsubgpos-private.hh
8303593ba1db06e402eab52df47f21f13049112d 04-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Minor

Use pointers instead of references, in preparation for upcoming change.
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
1bcfa06d1173f219809542a7380ce77f1c907bec 04-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Don't recurse in collect_glyphs() for GPOS
b-ot-layout-gpos-table.hh
b-ot-layout-gsubgpos-private.hh
b5e04c7dc6b78e311d1a14f1f808fac76a64c889 04-Dec-2012 Behdad Esfahbod <behdad@behdad.org> [ucdn] Match upstream changes
b-ucdn/ucdn.c
7babfe5a7904c26060c5b8441ca1bf23e1444f35 03-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Move object mutext into the user-data array

We are not using it for anything lse it seems.
b-common.cc
b-object-private.hh
a1900114770952778563dd6f3bc79334b0ca8df5 03-Dec-2012 Behdad Esfahbod <behdad@behdad.org> Remove unused functions
b-object-private.hh
88b7564183ae1cf59500b13c7e48756fe200c7cd 02-Dec-2012 Behdad Esfahbod <behdad@behdad.org> "Update" to Unicode 6.2.0 tables

Nothing changed...
b-ot-shape-complex-arabic-table.hh
b-ot-shape-complex-indic-table.hh
4ab99fb8c363cfc6a4f5952e69a19757f0cab344 30-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout.h
6748b96d27477b35dd69129e55d861259d66bf9f 29-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout.cc
0f3f5299047e3cfc4d1202fee83d484b871279ad 30-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Add test-size-params

Eventually this will become part of a yet-to-be-written hb-ot cmdline
tool.
akefile.am
est-size-params.cc
8465a05a89742295d4b009a9b4442eb0a899fd80 30-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Fix hb_buffer_guess_segment_properties() for empty buffer

Was causing assertion failure in shape_plan().
b-buffer.cc
e75943de803f571b7ad2cf2f777119753a209656 30-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Fix collect_glyphs() recursion in ContextFormat3
b-ot-layout-gsubgpos-private.hh
3038ae6adbb61e55d6c665dea0c5271e0c9f0ed8 30-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Minor
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout.cc
0dff11f6bfbda444a153ca75ff2b947f94e9b3c5 30-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Look for any 'size' feature, not only in DFLT script

The old code doesn't work with all fonts, as Khaled has reported.
b-ot-layout.cc
e9ad71dee845407da74ccacfbb53ad7ededf07fd 30-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Rename hb_ot_layout_position_get_size() to hb_ot_layout_get_size_params()
b-ot-layout.cc
b-ot-layout.h
f18ff5a84d9fe859c40a7a0c9a207cb40df0e84a 30-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Return correct value from recursion

Commit 4c4e8f0e754b79ac6190d21878eaaf0b790c7579 broke contextual lookups
by making the recurse() function always return false.

Reported by Khaled. Test case: لا in Amiri.
b-ot-layout-gsubgpos-private.hh
f54cce3c6a0432268ce159dbe6c5c6b7f583b87a 26-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Implement 'size' feature
b-ot-layout-common-private.hh
b-ot-layout.cc
b-ot-layout.h
2dc1141d7d0a9f5818862b09d6b9cfe0a27f1fc1 25-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Remove operator() from ClassDef
b-ot-layout-common-private.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsubgpos-private.hh
b67881b171a7cf865af58df146da52fc1e27b160 25-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Remove operator() from Coverage
b-ot-layout-common-private.hh
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
a88e7160217b9f44e4e5b4b814d0ca98c457ee40 24-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Implement hb_ot_layout_collect_lookups()

Untested.
b-ot-layout.cc
b-ot-layout.h
1ea375da446bf68f705a70ce4a480db9fb9d13f3 24-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Only collect output glyphs during recursion in collect_glyphs()
b-ot-layout-gsubgpos-private.hh
f1b12781d279a73b5754afee31e930b5cd87aac6 24-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Implement ChainContext collect_glyphs()

All of collect_glyphs() complete and untested now.
b-ot-layout-gsubgpos-private.hh
cdd756b9f40665a201f5c4e65a87b9a27c390601 24-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Implement GPOS collect_glyphs()
b-ot-layout-gpos-table.hh
b-ot-layout.cc
4c4e8f0e754b79ac6190d21878eaaf0b790c7579 24-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Reuse apply context for recursion
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
53a69f49e58ef4c4226958e0496fc22455ee6c87 24-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Remove unused members
b-ot-layout-gsubgpos-private.hh
d0a5233785eb327c4080432f597fe470a1046af3 24-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Implement Context::collect_glyphs()
b-ot-layout-gsubgpos-private.hh
26514d51b6669f092d9ccb7523443a5ece74169a 24-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] More collect_glyphs()
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
c6fb843f2a1c26322c6f4c85d1589f01a9e7a2ef 24-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Templatize process_recurse_func
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
9b34677f362fb0ef5a7cb8a284a9e06d1a4cc03b 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Clean up closure() a bit
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
adf7758a27a11fb1a8a14a2673867589437d22a3 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Improve debug log format in presence of templates
b-private.hh
2c53bd3c3ec4f81eff126c5bf84b7f2ddf2f0fef 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Start porting sanitize() to process()
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
f48ec0e83432c038b50d9715a38ba1469e82e1e4 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Add process() tracing
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
ed2e13594479c6ed7909401509962ea2f03f9a6e 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] More Extension templatizing
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
7dddd4e72bc35be962d93dc1b76c7e26c63aaa6d 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] More templatizing Extension
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
653eeb26450053b731b46346606931f5ae88db72 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Make Extension a template
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
08f1eede1bbc01ece2adf89847614a0670e50443 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
2c9d6485a1f89c11f84e720d3c7978dc11a5039a 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> More tracing fixup
b-private.hh
a1733db1c6ff40aae71fa142a12b1fea7b53dd37 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Start adding process() tracing
b-ot-layout-gsubgpos-private.hh
b-private.hh
73c18ae1b982a4e65086afe5177afa79e721e2c0 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Cleanup
b-ot-layout-gsubgpos-private.hh
be218c688cbb037a99c8c64bb835f3c980040c0b 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Pass this object to trace macros
b-open-file-private.hh
b-open-type-private.hh
b-ot-head-table.hh
b-ot-hhea-table.hh
b-ot-hmtx-table.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-maxp-table.hh
b-ot-name-table.hh
902cc8aca0b3ff25eeee50b3a84d729e31731ef3 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Start unbreaking tracing
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.hh
dabe698fcbeb02911128b17aa8e3b2d864795960 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.hh
c779d82b2fc801eec0d349a106c0e860448fcf4e 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Fix warnings
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-private.hh
81822528efc63d867cb2343a8ff7af64fac1c70d 23-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
1d67ef980f35ae30d4f8975f65ee07b8cc5deeea 22-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Move code around
b-ot-layout-gsubgpos-private.hh
ec35a72a44301934b8f123ab2833f59d8c875a09 22-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Port apply() operator to process() template
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
2005fa5340fc528c32dc2af945ad2431964a47d2 22-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Port would_apply() and get_coverage() to process() templates
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
44fc237b53ebfbaf8a539de16ad735d2c6afc52b 22-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [OTLayout] Port closure() to process() template
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
5be86b1bb4fbb37b50a1e2798df0c9a3a528b6b2 22-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [ucdn] Make data tables const!
b-ucdn/ucdn.c
b-ucdn/unicodedata_db.h
7c5b7fe686c9163afe2f31fbeac6f8c8512f5516 22-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Fix hb_shape_plan_get_shaper()
b-shape-plan.cc
ac064a2db2b7a010d99527e183145286215aea81 21-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Rename hb_set_population() to hb_set_get_population()
b-set.cc
b-set.h
16c914c2a6efeb6999054333985b1f711e33cf94 21-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] One more try at unbreaking Khmer fonts

See comments and discussion on the list.
b-ot-shape-complex-private.hh
e8cfdd7fa8d0fb66e0a261f3547e5824897e5131 17-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Start implementing collect_glyphs() operation

Not functional yet.
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-layout.h
7d52e6601f0e695690cd168a288466746cf25300 17-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Whitespace
b-coretext.cc
b-icu-le.cc
b-old.cc
b-open-file-private.hh
b-open-type-private.hh
b-ot-head-table.hh
b-ot-hhea-table.hh
b-ot-hmtx-table.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-maxp-table.hh
b-ot-name-table.hh
b-ot-shape-complex-default.cc
b-tt-font.cc
51bb498b7b07bff4a447405b72f09b68d07a3e95 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape.cc
89ca8eeb83fedde06727d386369a0a39d410f12b 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Implement hb_ot_layout_get_glyphs_in_class()
b-ot-layout-common-private.hh
b-ot-layout-gdef-table.hh
b-ot-layout.cc
b-ot-layout.h
5a08ecf9200a6ac9b4ebb7ec5c13dcb42d8820ce 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Implement hb_ot_layout_get_glyph_class()
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-shape.cc
f9edd5d56bd219625f5b16b23eac53b4c4a8b194 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Implement hb_shape_plan_get_shaper()

Untested.
b-shape-plan-private.hh
b-shape-plan.cc
b-shape-plan.h
43b653150081a2f9dc6b7481229ac4cd952575dc 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Another try to unbreak Sinhala split matras

Just read the comments...
b-ot-shape-complex-indic.cc
977f1740ace730dcdff8221a17f2a592c2ec7c74 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Unbreak tests
b-ot-layout.h
b-shape-plan.h
eba312c8d1b2bbe8cb9b6414e843e78d2c521aa4 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Plumbing to get shape plan and font into complex decompose function

So we can handle Sinhala split matras smartly... Coming soon.
b-ot-shape-complex-default.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-private.hh
b-ot-shape-normalize-private.hh
b-ot-shape-normalize.cc
b-ot-shape.cc
3f82f8ff07a9d16a7c047129658c1bbedfdb5436 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties()
b-buffer-private.hh
b-buffer.cc
b-buffer.h
b-fallback-shape.cc
b-ot-shape.cc
b-shape.cc
f30641038ba96e83950729b1bd9d86d2e98e46c5 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Bunch of independent changes (ouch)

API additions:

hb_segment_properties_t
HB_SEGMENT_PROPERTIES_DEFAULT
hb_segment_properties_equal()
hb_segment_properties_hash()

hb_buffer_set_segment_properties()
hb_buffer_get_segment_properties()

hb_ot_layout_glyph_class_t

hb_shape_plan_t
hb_shape_plan_create()
hb_shape_plan_create_cached()
hb_shape_plan_get_empty()
hb_shape_plan_reference()
hb_shape_plan_destroy()
hb_shape_plan_set_user_data()
hb_shape_plan_get_user_data()
hb_shape_plan_execute()

hb_ot_shape_plan_collect_lookups()

API changes:

Rename hb_ot_layout_feature_get_lookup_indexes() to
hb_ot_layout_feature_get_lookups().

New header file:

hb-shape-plan.h

And a bunch of prototyped but not implemented stuff. Coming soon.
(Tests fail because of the prototypes right now.)
akefile.am
b-buffer-private.hh
b-buffer.cc
b-buffer.h
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-private.hh
b-ot-shape.cc
b-ot.h
b-shape-plan-private.hh
b-shape-plan.cc
b-shape-plan.h
b-shaper-private.hh
b-shaper.cc
b.h
e05a999495e6575f7cebd7f35db087d964f11ef6 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_face_[sg]et_glyph_count()
b-font-private.hh
b-font.cc
b-font.h
aec89de5641fbe1c3031d63dd5f40ec99bf2a538 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Add / modify set API a bit
b-ot-shape.cc
b-set-private.hh
b-set.cc
b-set.h
c54599ad269380c7aa28d885fcfd660fc2c10a7b 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-buffer.cc
b-buffer.h
d1aa143ca434fe272de21d2002768c83387b583b 16-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Thai] Remove U+0E2C from "AC" consonants

WinXP doesn't include it.
b-ot-shape-complex-thai.cc
362a990b2246f5448ecb9d600761f710aea7d42d 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup()

To match upcoming API.
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-map.cc
b-ot-shape-complex-indic.cc
est-would-substitute.cc
3cec819d39e45470d03085bb6fa132882cc85943 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Make the OT shaper default, even if CoreText or Uniscribe is enabled
b-shaper-list.hh
072ae7a982bf640804eee0b41525e7c328806bf5 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_buffer_serialize_list_formats()
b-buffer.cc
b-buffer.h
f9edf1672511c3bcc3796cc79578ffea43b2bda1 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Add buffer serialization / deserialization API

Two output formats for now: TEXT, and JSON. For example:

hb-shape --output-format=json

Deserialization API is added, but not implemented yet.
b-buffer.cc
b-buffer.h
fd0de881f4fc004da6f36d50a91d0e62f8eb4d8c 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Avoid C++ undefined behavior

https://bugzilla.mozilla.org/show_bug.cgi?id=810823
b-open-type-private.hh
f41dc2d35b23220d59d38990bb66f1cbd66a55b3 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Fix undefined behavior in Indic dottedcircle

Chromium Issue 158998: Conditional jump in harfbuzz-ng
http://code.google.com/p/chromium/issues/detail?id=158998
b-ot-shape-complex-indic.cc
1eb3e94fe99a072ce422e60ac4d4d89ef489b08a 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Thai] Implement PUA-based fallback shaping

As explained here:

http://linux.thai.net/~thep/th-otf/shaping.html

Our output now matches Uniscribe for old fonts (eg. XP Tahoma) with no
Thai GSUB table.
b-ot-shape-complex-thai.cc
851784f8372004e0a40b698c0cdc2d7db8629aa2 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Improve shaper selection
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-private.hh
b-ot-shape-complex-thai.cc
43f04a7456419153cb03e610a825056a47824780 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Move Thai shaper into a separate file
akefile.am
b-ot-shape-complex-default.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-thai.cc
ba82325b7a6311b787ae47f41a56964e2f2cba9f 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Add note re 'Phags-pa letter U+A872, which is Joining_Type=L
b-ot-shape-complex-arabic.cc
d469fadce8290c7dda559c5927dd19df65f91c1a 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Exchange abort() for assert()
b-ot-shape-complex-indic.cc
0f80a89de99293ddbf0b8b815fe360677d057e38 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Don't route Kharoshthi through the Indic shaper

It's a simple, right-to-left, script.
b-ot-shape-complex-private.hh
e67072bb179a5c17db04075de74215597fb43c82 15-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Handle overstruck matra position
b-ot-shape-complex-indic-private.hh
7e99e4f0740e47efda5882604954cb7d12700a4b 14-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Reposition Lao marks

Lao marks are center-aligned, unlike Thai ones.
b-ot-shape-fallback.cc
865745b5b87236651f5663cae3461db9cb505eed 14-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Don't do fallback positioning for Indic and Thai shapers
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape.cc
981748cb2e9b48b77177b19ec1f972cab7afda89 14-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] If Khmer fonts have a 'liga' feature, use generic shaper

Seems to produce more coherent results than trying the Indic shaper on
them. I'm looking at you, Kh-* fonts...
b-ot-shape-complex-private.hh
dde5506fd963e3cec27c3389bb1fc092f86d1e06 14-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Don't move virama with left matra

This is important for the Sinhala U+0DDA split matra since it decomposes
to U+0DD9,U+0DCA where U+0DD9 is a left matra and U+0DCA is the virama.
We don't want to move the virama with the left matra.
TEST: U+0D9A,U+0DDA

Note that we were already doing this in the Uniscribe bug compatibility
mode. We now do it all the time.
b-ot-shape-complex-indic.cc
92f9bfed42f720c1fd78e795845542661aaf4f8a 14-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-buffer.h
66ac2ff32e24f0d5658ca172147613081a133847 14-Nov-2012 Behdad Esfahbod <behdad@behdad.org> API change: Remove "mask" from hb_buffer_add()

I don't expect anybody using hb_buffer_add(), so this shouldn't break
anyone's code.
b-buffer-private.hh
b-buffer.cc
b-buffer.h
e13f8d280bafc6a6b6e31e2eee587660b8333c56 14-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Fix UTF-8 backward iteration

Ouch!
b-utf-private.hh
5669a6cf418f3a8b9281c36e9d662d843be80433 14-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Arabic] Fix post-context handling

Ouch!
b-ot-shape-complex-arabic.cc
0c7df2222862122ebbdc8665a21d6771ef5e0252 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Add buffer flags

New API:

hb_buffer_flags_t

HB_BUFFER_FLAGS_DEFAULT
HB_BUFFER_FLAG_BOT
HB_BUFFER_FLAG_EOT
HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES

hb_buffer_set_flags()
hb_buffer_get_flags()

We use the BOT flag to decide whether to insert dottedcircle if the
first char in the buffer is a combining mark.

The PRESERVE_DEFAULT_IGNORABLES flag prevents removal of characters like
ZWNJ/ZWJ/...
b-buffer-private.hh
b-buffer.cc
b-buffer.h
b-ot-shape-complex-arabic.cc
b-ot-shape.cc
1c7e55511a870f2689680ca8f977e00879f3b3e3 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor fix

Ouch
b-shape.cc
82ecaff736e245e117d70b6ec1497508c6eb08d2 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_buffer_clear()

Which is like _reset(), but does NOT clear unicode-funcs.
b-buffer-private.hh
b-buffer.cc
b-buffer.h
0736915b8ed789a209205fec762997af3a8af89c 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Decompose Sinhala split matras the way old HarfBuzz / Pango did

Had to do some refactoring to make this happen...

Under uniscribe bug compatibility mode, we still plit them
Uniscrie-style, but Jonathan and I convinced ourselves that there is no
harm doing this the Unicode way. This change makes that happen, and
unbreaks free Sinhala fonts.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape-normalize-private.hh
b-ot-shape-normalize.cc
b-ot-shape.cc
6fd5335622087e87739684f581aa9f88635ff970 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Update auto-generated Indic machine to reflect previous commit
b-ot-shape-complex-indic-machine.hh
9cac1338c4bc3e9034cbfa104291ed0329debefe 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Allow Consonant_Medial's after Consonant's

Mostly affects Myanmar, but also Tai Tham, Javanese, and Cham. The
latter three are untested (no fonts!).
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
d187099cbab8e75f870a2bc9c23b6a1cf226905e 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Categorize Myanmar "tone marks" as nuktas
b-ot-shape-complex-indic-private.hh
8173f23f3f16972c2e8e0a120724533100acfda2 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Add config for Myanmar
b-ot-shape-complex-indic.cc
9e92978c8aa3d3cdab4d20c81698c56adbb3dbdd 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Route "new" Myanmar tag through the Indic shaper

Windows 8 adds a Myanmar shaper using the 'mym2' tag. Route that
through the Indic shaper. It's still very broken, but at least this
does NOT break old-style Myanmar shaping using the generic shaper.
b-ot-shape-complex-private.hh
5ab3855f8106158ee7e68797e8c35e63e9216e5d 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Choose shaper based on chosen OT script tag

For Arabic and Indic shapers, if the font doesn't have a script system
for the script, use default shaper.

Make an exception for Arabic script since we have fallback logic for
that one.
b-ot-map-private.hh
b-ot-shape-complex-private.hh
9b37b4c5800b158f61602d2aba8a01349e24d251 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Make planner available to complex shaper choosing logic
b-ot-shape-complex-private.hh
b-ot-shape.cc
6fddf2d7397411bba8a23ac535e8b851495d3105 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Refactoring ot-map building to make chosen script available earlier
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-private.hh
de796a6fb98f4deda276caa82266b7c830978e0b 13-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Add "new" Myanmar OT Script tag

Windows 8 added support for Myanmar shaping using the "mym2" script tag,
even though Windows never supported the old "mymr" tag.
b-ot-tag.cc
e9334ce97bb7f1de87fb211bb5a8168033629b14 12-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Break build when ragel is needed and missing
akefile.am
dba186711e3f5e723f917b7104e849c4c525d3b8 12-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Make more room in the table

To be used in upcoming commits.
b-ot-shape-complex-indic-private.hh
c4be9917438c45b972ec76dc68409014110f0837 12-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Typo
b-ot-shape-complex-indic.cc
56be677781736bbedc80df6f6aaa2b5f0bc4041c 12-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Port 'pref' logic to look into font tables

...instead of using a hardcoded list of Ra characters.
b-ot-shape-complex-indic.cc
f2c0f59043c93c225274fc0c8177077d16c89d61 12-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Port reph handling logic to look into font features

...instead of using a hardcoded list of Ra characters.
b-ot-shape-complex-indic.cc
43149afbc0007ea075a7017c0e56056c3c0f3614 12-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Route MEETEI_MAYEK through the Indic shaper

Since it has a couple of left-"matras".
b-ot-shape-complex-private.hh
d0905c3400085f9c0901c558ba1b81b5039510e4 12-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-head-table.hh
365f27ab5ba025bf1be6a882ed213c695cbfed7e 12-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Work around older compilers

As reported on the list:

I am seeing a similar problem building harfbuzz 0.9.5 with Apple gcc
4.0.1 on OS X 10.5 Leopard:

hb-ot-layout-common-private.hh:406: error: 'struct
OT::CoverageFormat1::Iter' is private
hb-ot-layout-common-private.hh:646: error: within this context
hb-ot-layout-common-private.hh:500: error: 'struct
OT::CoverageFormat2::Iter' is private
hb-ot-layout-common-private.hh:647: error: within this context
make[4]: *** [libharfbuzz_la-hb-ot-layout.lo] Error 1

Also reported as happening with MSVC 2005.
b-ot-layout-common-private.hh
6b389ddc3623d042ded4731f4d62dc354002fdd0 12-Nov-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Don't apply 'liga'

Uniscribe doesn't. And some fonts abuse this feature to get Indic
shaping working in non-complex applications like Adobe's apps.

No change in numbers:

BENGALI: 353897 out of 354188 tests passed. 291 failed (0.0821598%)
DEVANAGARI: 707337 out of 707394 tests passed. 57 failed (0.00805774%)
GUJARATI: 366440 out of 366457 tests passed. 17 failed (0.00463902%)
GURMUKHI: 60704 out of 60747 tests passed. 43 failed (0.0707854%)
KANNADA: 951046 out of 951913 tests passed. 867 failed (0.0910798%)
KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed (0.0308108%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970557 out of 970573 tests passed. 16 failed (0.00164851%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
b-ot-shape-complex-indic.cc
d05ac7dc3f2949e85f1fe996315b31b7aae370fe 12-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Fix hb-ft glyph name for broken fonts that return empty glyph names
b-ft.cc
4899801155cc0fef7a8aa58c33ac2d30ba34bcc3 09-Nov-2012 Behdad Esfahbod <behdad@behdad.org> U+A872 PHAGS-PA SUPERFIXED LETTER RA is "Right"-Joining
b-ot-shape-complex-arabic.cc
22a685836a59d1c02914761c02d3852810b83ec5 06-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Adjust Mongolian shaping

For U+1880..U+1886 Uniscribe thinks they are non-joining.
For U+1887 Uniscribe thinks it's joining, but looks wrong to me.
For now, match Uniscribe.
b-ot-shape-complex-arabic.cc
c26a52fbe62e5ba4d0e1e2ba13bfb6ceb3f773dc 05-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-fallback.cc
f60d3ed35d94f1adcfd73ca05d03d7e81fb5de03 05-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-set-private.hh
10a33296e674ee84b9ed2df25cf373de7d020b8d 02-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-tag.cc
3ba7bc14ea652d27639f34109e51a497a678a54a 02-Nov-2012 Behdad Esfahbod <behdad@behdad.org> Implement 'Phags-pa shaping

Through the Arabic shaper. It's similar to Mongolian.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-private.hh
da70111ab234e8b740ce6fb1789a1809fbec0c44 31-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Don't clear buffer pre-context if no new context is being provided

Patch from Jonathan Kew.

Part of fixing:

Mozilla Bug 801410 - avoid inserting dotted-circle for run-initial
Unicode combining characters in "simple" scripts such as Latin

https://bugzilla.mozilla.org/show_bug.cgi?id=801410
b-buffer.cc
0bc7a38463bfb37f12efeb1b8cb2024cf4a347bc 30-Oct-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Fix ReverseChainingSubst

We should make it clear that we don't want output buffer in this case,
otherwise buffer->backtrack_len() would be wrong.
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsub-table.hh
2616689d159024d2b1cb1e68f9936b2129bf9be6 30-Oct-2012 Behdad Esfahbod <behdad@behdad.org> More tracing fixups
b-ot-layout-gsubgpos-private.hh
937f8d3871863b8b1ed1d8900cf41999d92ba30f 30-Oct-2012 Behdad Esfahbod <behdad@behdad.org> [Arabic] Enable dlig and mset for Arabic

That's what the spec says, and what Uniscribe does.
b-ot-shape-complex-arabic.cc
bc513add7999baf32f126ceebbd318105ee66985 30-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Add missing TRACE_RETURN
b-ot-layout-gsubgpos-private.hh
88d3c98e309e14c3115825d1d8d40d0b3eec2d97 30-Oct-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Position pre-base reordering Ra after Chillus in Malayalam

The logic for pre-base reordering follows the left matra logic.
We had an exception for Malayalam/Tamil in the left matra repositioning
which was not reflected in pre-base reordering.

Malayalam failures down from 337 to 323.

BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60769 out of 60809 tests passed. 40 failed (0.0657797%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed (0.0308108%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970558 out of 970573 tests passed. 15 failed (0.00154548%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
b-ot-shape-complex-indic.cc
21bf796954678d02f136709cade43adef6f8f42b 29-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Add missed file
b-ucdn/COPYING
02ed52169ad3bb48f4989f721b0c6572e064a712 29-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Improve license information
b-icu-le/COPYING
b-icu-le/Makefile.am
b-ucdn/Makefile.am
b-ucdn/README
4c1d9244617e472464722e64d2cdbc1f9e8827f6 29-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-icu-le.cc
38b015e57ffa75d3b078a368c23685beb7c3f946 29-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Fix hb_buffer_set_length(buffer, 0)

Was causing invalid realloc()s.
b-buffer.cc
b7115b63be72e109b51f538ba581aed1017b2d55 29-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Add XXX
b-icu-le.cc
71ee1f24503cd066ffc1a36cc5dd9a3c1d1a6dfd 29-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Port to ICU LayoutEngine C API

Incidentally, this makes it not crash with icu-le-hb anymore...
I'm not smart / stupid enough to spend two more days debugging C++
linking issues, and this is ABI-stable at least.
b-icu-le.cc
0144f05e57088b30ac894cdae8b04b265d4dfbe7 26-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Remove unused members
b-icu-le/PortableFontInstance.h
cf3afd8979b1db76d437f428cbd51cb363e0d18e 26-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Rename and revamp is_zero_width() to be is_default_ignorable()

That's really the logic desired. Except that MONGOLIAN VOWEL SEPARATOR
is not default_ignorable but it really should be. Reported to Unicode.

Based on suggestion from Konstantin Ritt.
b-fallback-shape.cc
b-ot-shape-private.hh
b-ot-shape.cc
b-unicode-private.hh
fecdfa95daf4916695f23e7dab89ab363be11b89 07-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Fixup hb_ot_shape_closure()

Broke it when merged cmap mapping and normalizer. Ouch!
b-ot-shape.cc
2d1dcb3ce3354c2d5e2b4d1d291beb8d23cdea22 07-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Mark debug message functions static
b-private.hh
9947bd6daffb5ec76b67536575e7617ba4f10b1e 03-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Update UCDN to upstream commit 3f159c87824230b59af56e40e2db32caf6afa51a

- Unicode 6.2.0 goodness,
- Unassigned codepoints now have correct properties. Passes test suite.
b-ucdn/unicodedata_db.h
32dbfcf763d1ae497d3c95de986a83441331678f 02-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Fix visibility of UCDN symbols
b-ucdn.cc
b-ucdn/ucdn.h
3f33f0d1f2603f22e86adffe3c3836136ba5e5fd 02-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Import UCDN into source tree

https://github.com/grigorig/ucdn
akefile.am
b-ucdn.cc
b-ucdn/Makefile.am
b-ucdn/README
b-ucdn/ucdn.c
b-ucdn/ucdn.h
b-ucdn/unicodedata_db.h
b-unicode.cc
0e292eb2a2abbac152eeea2060e58b7a66449745 02-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Remove Glib thread-safety support

Now that we have pthread detection in configure, we don't need Glib
anymore. Glib will only be a Unicode data provider.
b-atomic-private.hh
b-mutex-private.hh
66efe896483c58f3ef9bd218c02bb7ea604f68ee 02-Oct-2012 Behdad Esfahbod <behdad@behdad.org> Check for pthreads
akefile.am
f2eb3fa9dca8d21fae20c9b9dddad3245df74a05 26-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Only insert dottedcircle if at the beginning of paragraph

If the first char in the run is a combining mark, but there is text
before the run, don't insert dottedcircle.

Part of addressing:
https://bugzilla.redhat.com/show_bug.cgi?id=858736
b-ot-shape.cc
bdc2fc8294da7f374701aafe9f5a82d60633946f 26-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [Arabic] Respect Arabic joining from neighboring context

Now we respect Arabic joining across runs.
b-ot-shape-complex-arabic.cc
05207a79e0ae1769c5feaebe3fd99bdf9cfcf834 25-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [buffer] Save pre/post textual context

To be used for a variety of purposes. We save up to five characters
in each direction. No public API changes, everything is taken care
of already. All clients need to do is to call hb_buffer_add_utf* with
the full text + segment info (or at least some context) instead of
just passing in the segment.

Various operations (hb_buffer_reset, hb_buffer_set_length,
hb_buffer_add*) automatically reset the relevant contexts.
b-buffer-private.hh
b-buffer.cc
b-buffer.h
89ac39dbbe028e6379f64392f2e590e3f1fdd847 25-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_utf_prev()
b-utf-private.hh
70ea4ac6887c7057113d714a98e55738b6196562 25-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Slightly optimize UTF-8 parsing
b-utf-private.hh
4445e5e2ecc257a5d0fa2f2715bb7181a47346da 25-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [buffer] Cleanup / optimize UTF-16 parsing a bit
b-utf-private.hh
1f66c3c1a0eb869c0d85a015235313177e0cec62 25-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_utf_strlen()

Speeds up UTF-8 parsing by calling strlen().
b-buffer.cc
b-utf-private.hh
7f19ae7b9f806a2e35206b2ad41651c5f80b2537 25-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [buffer] Templatize UTF handling

Also move UTF routines into a separate file, to be reused from shapers
that need it.
akefile.am
b-buffer.cc
b-utf-private.hh
0e0a4da9b7677a09e00d27313236e1f333864dd6 25-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [buffer] Towards template'izing different UTF adders
b-buffer.cc
7d37280600c157f3c4eae8746e99511702a58e8f 25-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-buffer.cc
54d5da4ee9d902ff36473cec558137eef8f23825 25-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Remove unused indic.cc
akefile.am
ndic.cc
fab7a71f110ed646745d54b23284537c50058c21 25-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Import ragel-generated Indic machine in git

I don't expect ragel to be creating too much noise in its generated
output, and including this in-tree helps users right now. We can
revisit this later if it proved to be too much trouble.
akefile.am
b-ot-shape-complex-indic-machine.hh
20a840c7cd08069720050782b4533cde505df09a 25-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Use a C++ linker on Windows

On Windows we don't care whether or not we link to libstdc++.
Seems to fix build with mingw32 on msys, as reported by Werner.
akefile.am
eb7669a38072b66eef3bd905a93c4815bef3f0e5 19-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Better autofoo
akefile.am
d00f7d83750258eff915a3826700c4819e63e481 18-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Fix dependencies
akefile.am
811eefe225d20b20f1de20c6e62a0ebd6d89102a 10-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Return NULL, not false

Oh well...
b-open-type-private.hh
166b5cf7ec2d37fb54a909c437ccdec1edaf37aa 07-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Find syllables before any features are applied

With FreeSerif, it seems that the 'ccmp' feature does ligature
substituttions. That was then causing syllable match failures. We now
find syllables before any features have been applied.

Test sequence: U+0D9A,U+0DCA,U+200D,U+0DBB,U+0DCF
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
96fdc04e5c6daafce3d45e7508418e4db94df44c 07-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_buffer_[sg]et_content_type

And hb_buffer_content_type_t and enum values.
b-buffer-private.hh
b-buffer.cc
b-buffer.h
b-shape.cc
e30ebd2794b37bd8ec716a258d5cb017fb1dfadc 07-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_feature_to/from_string()
b-common.cc
b-common.h
b-shape.cc
b-shape.h
f67917161bbe317a33d6407fbc62ebffcafe7154 06-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Do per-ligature-component fallback mark positioning

With this in place, you can remove GDEF/GSUB/GPOS tables from Arabic
fonts and still get per-component marks positioned on
oh-yeah-fallback-formed LAM-ALEF ligatures with marks in between the LAM
and ALEF.

Now *that*'s pretty cool, if a bit anachronistic...
b-ot-shape-fallback.cc
525c6855783a018d52867b9ece2ee90868ff1f91 06-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Make fallback mark positioning more robust

...with clusters spanning multiple base characters.
b-ot-shape-fallback.cc
5d502443f5a07cbd0aa860dd71a0fa4ea8b6ff9f 06-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [old] Clear offset array
b-old.cc
9433c218b4853442dd9ad53d0588a837a33dbf1e 06-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Simplify fallback positioning condition
b-ot-shape-fallback.cc
028a1706f898bfcee0d14acfba47ebe1de09f0c4 06-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Refactor common macro
b-ot-shape-fallback.cc
b-ot-shape-normalize.cc
b-ot-shape.cc
b-unicode-private.hh
07cfbe21b511056d5c3c75cbfe84e4e982c3e8fb 06-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Streamline Arabic fallback shaping table
en-arabic-table.py
b-ot-shape-complex-arabic-fallback.hh
b-ot-shape-complex-arabic-table.hh
82f6b6f388b801a1483854cb56a2cadbb94e0f2b 06-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-arabic-fallback.hh
fabd3113a98c5f4114f48920fa7ea38bd65a8d32 06-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Port Arabic fallback shaping to synthetic GSUB

All of init/medi/fina/isol and rlig implemented.

Let there be dragons... ⻯
akefile.am
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsub-table.hh
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-arabic-fallback.hh
b-ot-shape-complex-arabic.cc
b-ot-shape.cc
b-private.hh
f0b8ed1b6dd9f1d2b9084c101a6fc5dee0cc22a8 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Allow "H,ZWJ,M"

Uniscribe accepts a Halant,ZWJ before matras. Allow that.

BENGALI down from 295 to 291
DEVANAGARI down from 69 to 57
GUJARATI down from 19 to 17
KANNADA down from 871 to 867
MALAYALAM down from 340 to 337
TELUGU down from 20 to 16

Currently at:

BENGALI: 353897 out of 354188 tests passed. 291 failed (0.0821598%)
DEVANAGARI: 707337 out of 707394 tests passed. 57 failed (0.00805774%)
GUJARATI: 366440 out of 366457 tests passed. 17 failed (0.00463902%)
GURMUKHI: 60704 out of 60747 tests passed. 43 failed (0.0707854%)
KANNADA: 951046 out of 951913 tests passed. 867 failed (0.0910798%)
KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1047997 out of 1048334 tests passed. 337 failed (0.0321462%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970557 out of 970573 tests passed. 16 failed (0.00164851%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
b-ot-shape-complex-indic-machine.rl
4ed717ef61813fa16cf74f2874848e9feb81568f 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Relax grammar

Now that we insert dotted-circle, tests break more easily when our indic
machine breaks.

In particular, a few Devanagari tests were having sequences like
"C,H,ZWJ,N", and because of the ZWJ the Nukta does NOT get reordered to
before the Halant as the grammar used to expect... Fixup.

Another case is as simple as "C,ZWJ,SM".

Fixes 10 out of 79 failures:

DEVANAGARI: 707325 out of 707394 tests passed. 69 failed (0.00975411%)
b-ot-shape-complex-indic-machine.rl
aa7141efe49991a1160489106984e95163fe2ab8 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix Khmer syllable-final coeng-consonant

Brings down Khmer failures from 162 to 47.

KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%)

Also rebaselined some of the test files that had only-inherited lines.
Removing those, the stats are:

BENGALI: 353893 out of 354188 tests passed. 295 failed (0.0832891%)
DEVANAGARI: 707315 out of 707394 tests passed. 79 failed (0.0111678%)
GUJARATI: 366438 out of 366457 tests passed. 19 failed (0.00518478%)
GURMUKHI: 60704 out of 60747 tests passed. 43 failed (0.0707854%)
KANNADA: 951042 out of 951913 tests passed. 871 failed (0.0915%)
KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1047994 out of 1048334 tests passed. 340 failed (0.0324324%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970553 out of 970573 tests passed. 20 failed (0.00206064%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)

Still some regressions, but some of the more egregious cases are
addressed.
b-ot-shape-complex-indic-machine.rl
27bd55bd2ca599d501f10c2fae81861137517e46 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Tamil does not have half-forms either

The Win7 Tamil font does not realy on this behavior, but the WinXP
version does. Handle Tamil like Malayalam: Matras always move to
before base.

WinXP Tamil failures went down from 168964 (15.4752%) to 167
(0.0152953%) (two orders of magnitude reduction!).

Included in this is a minor fixup that actually fixed a few tests
with non-Tamil too. Numbers at:

BENGALI: 353997 out of 354285 tests passed. 288 failed (0.0812905%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60769 out of 60809 tests passed. 40 failed (0.0657797%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271747 out of 271847 tests passed. 100 failed (0.0367854%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970558 out of 970573 tests passed. 15 failed (0.00154548%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
b-ot-shape-complex-indic.cc
87b75d0a4aa03fe7a03e3bf7baf8ece131aec1bb 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Allow adding features with fallback implementation
b-ot-map-private.hh
b-ot-map.cc
1d3947a6bda6986c9c7d993589053051c119cc81 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b3b89b66586897a69b410ef02e7434691de84ae6 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Add SubstLookup serialize API
b-ot-layout-common-private.hh
b-ot-layout-gsub-table.hh
715e03bc21d6adaa8e1f647235843839dc47dad1 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-open-type-private.hh
652d1e0d64e47313ead2fc8318d1236f0e0d80ca 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Start adding Lookup-level serialize API
b-ot-layout-common-private.hh
a930c68e9c50aade78c1eb0eef075c9c117e4ef6 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] More serialize. Implements all basic GSUB subtables
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsub-table.hh
1b38b4e817d871b9549be65af6030bd0eea7f775 05-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsub-table.hh
2bd9fe359839a653f7caae534bf768af1735f155 04-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Refactor
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-shape-complex-arabic.cc
a5ddd9e31cd7906c4b559aa5b2fafdae4b9c8935 04-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Really fix possible NULL dereference this time
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-shape-complex-arabic.cc
29416833584d7831ece84aaeada6f5ebba7828c0 04-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Implement serialize() for AlternateSubst
b-ot-layout-gsub-table.hh
1f07e3382a1608b054cbf88b89fef74f6c485434 04-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Implement serialize() for MultiSubst
b-open-type-private.hh
b-ot-layout-gsub-table.hh
4912030dfba740c822e200d33cbb5c6dbbeaf79e 04-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-open-type-private.hh
b-ot-layout-gsub-table.hh
f8fa2b5cf67b02d74514dec7885d03de73ec7349 04-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Fix possible NULL dereference

As reported by Kenichi Ishibashi.
b-ot-layout-gsubgpos-private.hh
4b312fb288faa383a2c5bd3be0428f0e58e02699 02-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Remove serialize alignment

Will reintroduce in a different way when we actually need it.
b-open-type-private.hh
c61be03d6df122f18eebda3b29e42c9e768d45b9 02-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] A bit more serialize
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsub-table.hh
abcc5ac1fde1c493e4055dd2f27b8aade7713156 02-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Improve serialize syntax

For some definition of improvement...
b-open-type-private.hh
b-ot-layout-gsub-table.hh
bc5be24014371ceb811b9ffd37062ede63d87bb1 02-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Restart work on serialize()
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsub-table.hh
6912e476dd92639c3ddf07ca51c8d4a262c8b3a5 02-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Insert dotted-circle for run-initial marks

Unfortunately if the font has GPOS and 'mark' feature does
not position mark on dotted-circle, our inserted dotted-circle
will not get the mark repositioned to itself. Uniscribe cheats
here.

If there is no GPOS however, the fallback positioning kicks in
and sorts this out.

I'm not willing to address the first case.
b-ot-shape.cc
1d581ec384bc1780995e32e1c44103af57596eda 02-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Fallback-position ccc=0 Thai / Lao marks

Not perfect, but so is fallback positioning in 2012...
b-ot-shape-fallback.cc
3992b5ec4cb43d114d87ff7ee2b992bcf819c9cd 02-Sep-2012 Behdad Esfahbod <behdad@behdad.org> Move code around
b-ot-shape-fallback-private.hh
b-ot-shape-fallback.cc
b-ot-shape-private.hh
b-ot-shape.cc
b85800f9de8976a7418ef9df467d3080c6ab0199 01-Sep-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Implement dotted-circle insertion for broken clusters

No panic, we reeally insert dotted circle when it's absolutely broken.

Fixes most of the dotted-circle cases against Uniscribe. (for Devanagari
fixes 80% of them, for Khmer 70%; the rest look like Uniscribe being
really bogus...)

I had to make a decision. Apparently Uniscribe adds one dotted circle
to each broken character. I tried that, but that goes wrong easily with
split matras. So I made it add only one dotted circle to an entire
broken syllable tail. As in: "if there was a dotted circle here, this
would have formed a correct cluster." That works better for split
stuff, and I like it more.
b-buffer-private.hh
b-buffer.cc
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
b-ot-shape-normalize-private.hh
b-ot-shape-normalize.cc
327d14ef188396006d54af976506ab6f8bb2869a 31-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Start adding dotted-circle instrastructure
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
1be368e96fb7de8c77bf992874e0d5bd6b272ebe 31-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-buffer-private.hh
b-buffer.cc
784f29d061a2939562eca0c4943feb01174aee00 31-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape.cc
5a7f18767a87a3f07269d0814f984a98f86ab852 31-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Better fallback-position Thai / Lao ccc!=0 marks
b-ot-shape-fallback.cc
9f2348de58f0f85593027378169bc03c4dd64e59 30-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Add serialize() for Coverage
b-open-type-private.hh
b-ot-layout-common-private.hh
e901b954c6ec44ac3ae7fb3c326e6e7a40718e4b 30-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Start adding serialize() API
b-open-type-private.hh
965c280de09b49d711cb78d629da321c802084de 29-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Add HB_BUFFER_ASSERT_VAR

To be used in places we access buffer vars...
b-buffer-private.hh
b-buffer.cc
0ccf9b64736559a230425fd131c9eb8aa3048221 29-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Move code around
b-ot-shape.cc
2fcbbdb41a322f54b61d9ce983ab54434504c5ed 29-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Port Arabic fallback ligating to share code with GSUB

This will eventually allow us to skip marks, as well as (fallback)
attach marks to ligature components of fallback-shaped Arabic.
That would be pretty cool. I kludged GDEF props in, so mark-skipping
works, but the produced ligature id/components will be cleared later
by substitute_start() et al.

Perhaps using a synthetic table for Arabic fallback shaping was a better
idea. The current approach has way too many layering violations...
b-ot-layout-gsubgpos-private.hh
b-ot-shape-complex-arabic.cc
b-ot-shape.cc
5e399a8a45bddb49e06e2ca39df1ed04398c0aff 29-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
a177d027d1d0ad9539e30ed75d8652e0e8da20ff 29-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Move ligation logic over
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
191fa885d9e0a2dce92dd8727cddd18495e62409 29-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Merge Ligature and context input matching

Looks better now...
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
93814ca7dc2a7251f861c1c47ba155ba6e6bdf19 29-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Start converging Ligature and match_input
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
2eef71737ea29ffadbb5a2be4a898b44f53f66ac 29-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [hb-icu-le] Add visbility
b-icu-le/FontTableCache.h
b-icu-le/PortableFontInstance.cpp
b-icu-le/PortableFontInstance.h
b-icu-le/cmaps.cpp
b-icu-le/cmaps.h
b-icu-le/letest.h
b-icu-le/sfnt.h
d59e28e49204ed609d8a1bf3c0f21ab5fc178337 29-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
akefile.am
heck-libstdc++.sh
heck-static-inits.sh
af169d2813ff8075288cd4a7811f0715e4fea3da 29-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-icu-le/PortableFontInstance.h
52ff2681d88886e2165ced397966ba29c2073583 29-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Use VisualStudio-style atomic intrinsics on mingw32
b-atomic-private.hh
7c8e844d92aa604fc4b396343721ea90eb83adb8 28-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Use namespace for OpenType tables

Avoids USHORT, SHORT, ULONG, LONG clashes with Windows API.
b-font.cc
b-open-file-private.hh
b-open-type-private.hh
b-ot-head-table.hh
b-ot-hhea-table.hh
b-ot-hmtx-table.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-maxp-table.hh
b-ot-name-table.hh
b-uniscribe.cc
ain.cc
dc5df5af6b349c3d9e4ab876864d9dec8096401f 28-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Revert "Minor"

This reverts commit 3e0a03978b91994bb7fa7922593cbdfc50878dfc.

I know remember why that line is there :).
b-ot-shape-complex-arabic.cc
3e0a03978b91994bb7fa7922593cbdfc50878dfc 27-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-arabic.cc
667218a5b134728863a318c73070f4e323590bbd 27-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-fallback.cc
30dd62251fcd04c2cbaa9b979d47ddbf62c6d460 27-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Only fallback-position glyphs if we have the ccc

Previously, ccc=0 Thai / Lao marks were being
mispositioned. Don't touch them.
b-ot-shape-fallback.cc
e1ba62811a61afb046d349e578cd141363c7fb34 27-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Center unknown marks horizontally
b-ot-shape-fallback.cc
23b0e9d7dc801e11640979af3c2b00649a519bb1 26-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix switch

D'oh. Was working by pure chance :)).
b-ot-shape-complex-indic.cc
56e878ab875ff06d74702145e380e198be967bd6 24-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [graphite2] Cleanup scratch buffer allocation
b-graphite2.cc
2f7586c6229096143ca0a96712a27416ee0d3c85 24-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [icu-le] Implement icu layout engine shaper
b-icu-le.cc
b-icu-le/cmaps.h
b-shaper-list.hh
ba7f6c3797e5b440557bacd9b666bf09713dca76 24-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [icu-le] Hook up to hb_face_t
b-icu-le.cc
b-icu-le/FontTableCache.cpp
b-icu-le/FontTableCache.h
b-icu-le/PortableFontInstance.cpp
b-icu-le/PortableFontInstance.h
b-icu-le/README
e96bb36995b2a5321b4d32bb11906e1701aaf115 24-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [icu-le] Actually use the FontTableCache
b-icu-le/PortableFontInstance.cpp
7d242364ea647f655a7092bda25f9a10774c57f5 24-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [icu-le] Start adding a icu-layout-engine backend

Import PortableFontInstance and add shaper stub.
akefile.am
b-icu-le.cc
b-icu-le/FontTableCache.cpp
b-icu-le/FontTableCache.h
b-icu-le/Makefile.am
b-icu-le/PortableFontInstance.cpp
b-icu-le/PortableFontInstance.h
b-icu-le/README
b-icu-le/cmaps.cpp
b-icu-le/cmaps.h
b-icu-le/letest.h
b-icu-le/license.html
b-icu-le/sfnt.h
b5584ee4be46b47e1678acf28426970a6d670b4f 23-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] For old-spec, match non-zero context

Fixes consonant-position with old-spec Malayalam. Uniscribe seem to be
doing this. Fixes below-base La (eg. Pa,H,La) with AnjaliNewLipi.ttf.
Doesn't regress new-spec or other scripts.
b-ot-shape-complex-indic.cc
d9b204d3d24cde165167714728bf380267903d6a 23-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Allow non-zero-context matching in would_apply()

To be used in the next patch.
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-map.cc
b-ot-shape-complex-indic.cc
est-would-substitute.cc
1f2bb172fe9a173ecfd61054f1fdd850943ef059 23-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Revert "[Indic/GSUB] Ignore context when matching would_apply()"

This reverts commit 24dd4e56743c6ce5e01cb710ca9e01b3e527af58.

Oops. My bad. The change _regressed_ Malayalam test suite, not
improved it. I'll redo it, differentiating between old-spec and
new-spec cases.
b-ot-layout-gsubgpos-private.hh
24dd4e56743c6ce5e01cb710ca9e01b3e527af58 23-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic/GSUB] Ignore context when matching would_apply()

The MS Indic specs say "...all classifications are determined ... using
context-free substitutions." However, testing shows that MS's Malayalam
shapers (both old and new), "match" even if there is no zero-context rule.
We follow.

Fixes below-base La (eg. Pa,H,La) with AnjaliNewLipi.ttf (old spec).
Moreover, test suite Malayalam failures are down to 312 from 875! No
change in other scripts.

Current numbers:

BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60769 out of 60809 tests passed. 40 failed (0.0657797%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1047541 out of 1048416 tests passed. 875 failed (0.0834592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970558 out of 970573 tests passed. 15 failed (0.00154548%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
b-ot-layout-gsubgpos-private.hh
6732d62e78b13842ead9549c97bede25c73976cb 23-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Implement pre-base reordering Ra for old-spec Malayalam

Fixes Pa,H,Ra sequence with AnjaliNewLipi.ttf.
b-ot-shape-complex-indic.cc
80cd92326f8a3f48a7821e720e8ecb2072e73286 23-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Only apply basic features per-syllable

Free up syllables and let features work across syllables for the
presentation forms features and GPOS.

Fixed:
- 1 GURMUKHI test (remains 40)
- 12 KHMER tests (remains 18)
- 11 SINHALA tests (remains 121)

Regresses:
- 5 MALAYALAM tests (up to 312)

Current numbers:

BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60769 out of 60809 tests passed. 40 failed (0.0657797%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970558 out of 970573 tests passed. 15 failed (0.00154548%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
b-ot-shape-complex-indic.cc
df5d5c68f3a5cab17bf4a429802a1a1a834c3456 23-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Whitespace
b-ot-layout-gpos-table.hh
2f1747ed7d28148807ad07eb8e22db3ab5c54966 16-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Add comment
b-ot-shape-complex-arabic.cc
bd08d5d126aa878d1dbf7bfd4b1a764c170cd9ad 16-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Fix Arabic shaper OOB access

https://bugzilla.mozilla.org/show_bug.cgi?id=782908
b-ot-shape-complex-arabic.cc
daf0731865f91da960446928667d4095bde471ea 16-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [ICU] Fix includes

As reported by Steven Loomis, including uversion.h works everywhere.
b-icu.cc
a67ba9c0fe6798a3500af9f4acee8d678f5144ee 16-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Whitespace
b-old/Makefile.am
45c1383cc7315f89c23c0ed388b99e87224884e7 14-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-coretext.cc
b-fallback-shape.cc
b-graphite2.cc
b-uniscribe.cc
4ac4c6f2e12ddc8bf5e750671321458218b6e0c8 13-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Fix ICU build with older ICUs
b-icu.cc
d5045a5f4017631a4660f985fe451c5a64c42ca0 12-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [ICU] Use new normalizer2 compose/decompose API

It's considerably faster than the fallback implementation we had
previously!
b-buffer.cc
b-glib.cc
b-icu.cc
b-unicode-private.hh
b-unicode.cc
b-warning.cc
9f9f04c2229227bb0712166e824157bbbf5cef80 12-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Unbreak Thai shaping and fallback Arabic shaping

The merger of normalizer and glyph-mapping broke shapers that
modified text stream. Unbreak them by adding a new preprocess_text
shaping stage that happens before normalizing/cmap and disallow
setup_mask modification of actual text.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape.cc
e9f28a38f54b98fa59f9159ccaaa3be6027e1378 12-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Add shape_plan to Arabic shaper
b-ot-shape-complex-arabic.cc
daf13afb0801740dcc7900c4af190e24b80a05c0 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Implement fallback mark positioning for "double" combining marks
b-ot-shape-fallback.cc
d345313104d9e3c8a8533ccdebd74e0648d0bee3 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Fix fallback mark positioning with left-to-right text

Ouch!
b-ot-shape-fallback.cc
f4cb4762986a28634fa7de9b706f9d37859b881e 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Slightly adjust normalizer

The change is very subtle. If we have a single-char cluster that
decomposes to three or more characters, then try recomposition, in
case the farther mark may compose with the base.
b-ot-shape-normalize.cc
07d682806349aee81f53114778ce0beb23909ed7 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-normalize.cc
b-ot-shape.cc
b00321ea78793d9b3592b5173a9800e6322424fe 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Avoid calling get_glyph() twice

Essentially move the glyph mapping to normalization process.
The effect on Devanagari is small (but observable). Should be more
observable in simple text, like ASCII.
b-ot-shape-normalize-private.hh
b-ot-shape-normalize.cc
b-ot-shape.cc
12c0875eafa4bd92db650e5acca046d99594d1e6 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Remove redundant check
b-ot-shape.cc
5c60b70c89b4e0a6512d9fd1ab5394dd76feb742 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] More code shuffling around

Preparing for merging map_glyphs() and normalize().
b-ot-shape.cc
cd0c6e148f6d078b364370cb2f808b793b921be2 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Shuffle buffer variable allocations around

To room for more allocations, coming.
b-ot-layout-private.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-private.hh
b-ot-shape-private.hh
8d1eef3f32fb539de2a72804fa3834acc18daab5 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-normalize.cc
56c9e7c004e802ddcb8c704346026f1d7a812f9f 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Fill out combining class resetting for fallback shaping Thai/Lao/Tibetan
b-ot-shape-fallback.cc
b-unicode-private.hh
b-unicode.cc
a321e1d51e0e7fa02738410e8d6e77c841bc6b13 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Revert "Reject lookups with no subTable"

This reverts commit 30ec9002d84e8b49290e782e6192069821ffa942.

See previous commit.
b-ot-layout-common-private.hh
2eaf482b371034ce6ebfaedee98049b036fd3493 10-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Revert "[GSUB/GPOS] Reject Context/ChainContext lookups with zero input"

This reverts commit 0981068b75710397f08e0d2d776a0a2ea68d7117.

I was confused. Even if we access coverage[0] unconditionally, we don't
need bound checks since the array machinary already handles that.
b-ot-layout-gsubgpos-private.hh
a02d86484be870615297abfc7be9f94645434762 09-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Add check-exported-symbols.sh

And misc linking fixes.
akefile.am
heck-exported-symbols.sh
heck-internal-symbols.sh
b-ot-shape-complex-indic.cc
b-ot-shape.cc
4c8ac4f47e95d2b266b2f64e75c55af8233b6b91 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Misc minor fixes
heck-internal-symbols.sh
b-font-private.hh
b-font.cc
b-font.h
b-graphite2.cc
b-old.cc
b-ot-layout.cc
b-ot-shape-fallback.cc
b-ot-shape.cc
b-shape-plan.cc
b-shape-plan.h
b-tt-font.cc
560d68af8168d1baff607b9616a3590af70fe9ec 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Use a export-file for Windows builds

Apparently even that doesn't make check-internal-symbols.sh happy with
mingw32. Going to disable that for DLLs again, but hopefully the
export-file is doing *something*.
akefile.am
b-buffer.h
f8751cf8e0a16125d63a88da65fdbfa76a19453f 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] speed-up build
b-old/harfbuzz-external.h
5f4c52867ce67faa15f5d26b59c18c8d068e9261 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout.h
7e7d245b332306949a19c628bacd920717434769 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Make default_language threadsafe
b-common.cc
06b192c458010c847362d809673209c87ea29949 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-common.h
37191ede7583fdb864db32a8f4d90956657926c7 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-common.h
b-icu.h
6d9a329a8a0f11f4b175e407de59c55924de1ef6 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Adjust a couple source checks
heck-internal-symbols.sh
heck-static-inits.sh
9c929abdcfef44c0193a2917b20981df37ade21c 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor renaming
akefile.am
b-ot-shape-fallback-private.hh
b-ot-shape-fallback.cc
b-ot-shape-position-fallback-private.hh
b-ot-shape-position-fallback.cc
b-ot-shape.cc
801298b590effd768607bb532dc83c73ba65d16b 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Fix cast

https://bugs.freedesktop.org/show_bug.cgi?id=53233
b-buffer-private.hh
b-shape-plan.cc
21756934a15e31dc243e2b6d80adec5752477652 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Implement fallback positioning

Implemented for Arabic, Hebrew, and generic marks.
Activated if no GPOS table present.
b-font.h
b-ft.cc
b-old.cc
b-ot-shape-position-fallback.cc
b-unicode-private.hh
b-unicode.cc
fb56e7628362a73e20f7f0b49fe31e802dc01f4f 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Fix warnings
b-old/harfbuzz-shaper.cpp
affaf8a0e5aa38e5820455f789eebf916e02eb7b 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Start adding fallback positioning

Used when there is no GPOS.
akefile.am
b-ot-shape-position-fallback-private.hh
b-ot-shape-position-fallback.cc
b-ot-shape.cc
7e4920fd1577987bf6804f67765e22a84983e057 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape.cc
472f229a63f0d1bb21b02179ef430b7698df8f12 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Generalize would_apply()

Fixes logic also, where before we were always matching if glyphs_len==1
and a ligature started with the glyph.
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
6f3a300138f659020c21c3e08b7981c78df5f332 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_font_glyph_from/to_string
b-font-private.hh
b-font.cc
b-font.h
b-private.hh
est-would-substitute.cc
eb56f6ae96260c5b4bcd4e1dfb7ab733a230f3a8 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-mutex-private.hh
b-uniscribe.cc
b-uniscribe.h
f4e48adcdd4315ce09e755f87a0f801d88194f42 08-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Apply 'rclt' feature in horizontal mode

'rclt' is "Required Contextual Forms" being proposed by Microsoft.
It's like 'calt', but supposedly always on. We apply 'calt' anyway,
and now apply this too.
b-ot-shape.cc
b1914b8bd08ecdea79930dda7e3bb2ae9e6134a1 07-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Fix warnings
b-icu.cc
0f8881d6bbf6cd59938315eeff9b71cfc736aa4e 07-Aug-2012 Behdad Esfahbod <behdad@behdad.org> More refactoring
b-ot-shape-normalize.cc
b-unicode-private.hh
428dfcab6634ff264570a0a5d715efb8048c3db5 07-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor refactoring
b-ot-shape-normalize.cc
61f41849af6ff9edf8b55cf9610066d1bfb4a8df 07-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Add Hebrew presentation forms shaping

Lifted from https://bugzilla.mozilla.org/show_bug.cgi?id=728866
b-unicode-private.hh
32d71dc13317b322e2c5de00d767b2cb15fddd8b 07-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Graphite] Minor
b-graphite2.cc
030ac5022e8a43b9329c26e72527bafc582ef44b 07-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Remove enum trailing comma

...again.
b-ot-shape-normalize-private.hh
368b4e7649f9bc8c6bebf7c7ff03c9b9ec425a25 07-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-font.cc
ade7459ea7c75b4f33f7cfa43dd5bdfa0c18d6d5 07-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [util] Fix leaks
b-graphite2.cc
2fef993460dcfd94c92ab35413bdde18ad2b0ceb 07-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Graphite] Fix graphite2 backend with RTL text

Patch from Martin Hosken.
b-graphite2.cc
e4992e13e19877a73ea05fc1d31005a262c685ad 07-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Graphite] Port graphite2 backend to new shaper infrastructure
b-graphite2.cc
b-graphite2.h
b-shaper-list.hh
66591ececfba9791de06c814f5f30131e95e5fd2 07-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Remove unnecessary lifecycle bits

We already set recount to INVALID when destroying.
This block was not necessary.
b-font.cc
167b625d988b74572d6b2f646c285b666b650d49 06-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor, move 'blwf' after 'half'

We don't apply them together anyway. Should not make any difference
right now.
b-ot-shape-complex-indic.cc
048e3b596fb7fccd3fb5f48de98b6b67788f774a 05-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Speed up hb_set_digest_lowest_bits_t calcs
b-set-private.hh
3d1b66a35e1ab3be19335705f310b278d76d66d2 05-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Speed up hb_set_digest_common_bits_t calcs
b-set-private.hh
25326c2359b0a3e25222b94acd142bc36eff78a4 05-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Rewrite ARRAY_LENGTH as a template function

Such it wouldn't apply to pointers accidentally.
b-ot-shape-complex-arabic-table.hh
b-private.hh
8ba8042821e4581fe4e87419e58c823520441205 04-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix consonant position font lookup logic

Oops. I broken this badly and the test suite did not notice. That
worries me. Have to investigate.
b-ot-shape-complex-indic.cc
abd0c05f1f7f0546593bb2f1c4d59db12cb32e46 04-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
est-would-substitute.cc
46ee108ef80f5d4675899862698a8c34d8fcfab5 04-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Fix leak
b-shape-plan.cc
71baea0062da4d7f143d62da38492a0813814e49 04-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Use general-category, not GDEF class, to decide to zero mark advances

At this point, the GDEF glyph synthesis looks pointless. Not that I
have many fonts without GDEF lying around.

As for mark advance zeroing when GPOS not available, that also is being
replaced by proper fallback mark positioning soon.
b-ot-shape.cc
3a7e137a68ec8f723dc3afa89c918ca2df7ff6bf 04-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Dn't use gint
b-glib.cc
b-icu.cc
11b0e20ba42bf0b17133c3e1087732802bb4f230 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Add per-script configuration tables

This concludes the Indic shape_plan work. May do for Arabic also...
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
85fc6c483f6d734febbe39270e84701a651f01f1 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Move more stuff to the shape_plan

Almost done. Need to add per-script static tables.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
914ffaa40fcca020f65bacdd709421e9047afd83 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Move more repeated work into shape_plan
b-ot-shape-complex-indic.cc
a8c6da90f4c6e8d27a3a1b758a55476776d9f750 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Add per-complex-shaper shape_plan data

Hookup some Indic data to it. More to come.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape-private.hh
b-ot-shape.cc
8bb5deba9630d35878eb6edb4643ecfabf99f15f 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Pipe shape_plan down to pause_callbacks
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
b-ot-shape-private.hh
b-ot-shape.cc
3e38c0f2886c38d2f0a9d80a97a36edf2479d2c7 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> More massaging
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
16c6a27b4bffc19026944c7bea9cf0a3a8ff1d8f 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Port complex_shaper to planner/plan
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape-private.hh
b-ot-shape.cc
5393e3a62ba09fd7bcf3767b36225c8f49badb9d 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Minor refactoring
b-ot-map.cc
b-ot-shape-private.hh
b-ot-shape.cc
b-shape-plan.cc
b-shape.cc
24eacf17c801c66a2d466e8ae02b73f501a26b25 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Move consonant-position-setting into initial_reordering()
b-ot-shape-complex-indic.cc
afbcc24be01a64bdb5c05c63880269145fa1d3c8 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Wire the font, not just the face, down to substitute()

We need the font for glyph lookup during GSUB pauses in Indic shaper.
Could perhaps be avoided, but at this point, we don't mean to support
separate substitute()/position() entry points (anymore), so there is
no point in not providing the font to GSUB.
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-indic.cc
b-ot-shape.cc
b0e6a26a10ccca70ebc88a9e158a89ccfab0add5 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Hide some API

It was impossible to meaningfully use them from the outside these days.
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-map.cc
305246744ed178f116e01498b7f9d1af6950ca30 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsubgpos-private.hh
8ef3d53255ae9fbb0e46c22909e50009d1e7eeb0 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] More refactoring of consonant position peeking in the font

To be moved to initial_reordering next...
b-ot-shape-complex-indic.cc
3eb6f81fd3f1e56679eec10d08f5e2303121753f 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Refactor

Move all the logic that needs to eventually move into the indic table
into hb-ot-shape-complex-indic-private.hh.
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
3614ba242fc7d338761acdda365a134706035b6d 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Rename
b-ot-shape-complex-indic.cc
610e5e8f713bb2a68939b72cb2b801a7aaede4f9 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Streamline feature would_apply()

Comes with some 10% speedup for Devanagari even!
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-indic.cc
1d002048d5afcd45abbb09fdf0419f13b2e2265c 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
6f7611375521c6d285a9aa763f2ea5cb44cd0d39 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Check array size before accessing digests
b-ot-layout-private.hh
b-ot-layout.cc
22148b8c4af3ed296d96e969cdd47bac97b32307 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Use Coverage digests in would_apply
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
6c459c8fef85bc44f45d7b58c28a34abfb2c33fc 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
e2b8d75fa6e847ecf5c040f4e1e16a565c5d8aaf 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Use wider set digests on 64-bit archs
b-set-private.hh
0120ce9679aab3ac936aeb18f6709529eef000a4 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Remove unused get_coverage() methods
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
1336ecdf8e4e9879b96b26ecfbf5c9ba6c49e2b9 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Use Coverage digests as gatekeeper

Gives me a good 10% speedup for the Devanagari test case. Less so
for less lookup-intensive tests.

For the Devanagari test case, the false positive rate of the GSUB digest
is 4%.
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
a878c58a8fc1500986d713b2bcedfeb90a0087b0 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Add add_coverage()
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
60a3035ac5ec8227e4cc0e6708732bb139c9e0b8 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_set_digest_t

Implement two set digests, and one that combines the two.
b-set-private.hh
c8accf1dd2d92cc4f714393eb0ea46f69bb182a6 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Templatize Coverage::add_coverage()
b-ot-layout-common-private.hh
8fbfda920e0b3bb4ab7afb732826026964b79be9 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Inline font getters
b-fallback-shape.cc
b-font-private.hh
b-font.cc
b-graphite2.cc
b-old.cc
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-normalize.cc
b-ot-shape.cc
6adf417bc15d4524e280b284e3accd1ae647662e 02-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Use a lookup table for modified_combining_class
b-unicode-private.hh
b-unicode.cc
b-unicode.h
208f70f0553d73d2908b21b9552298029482a8b9 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Inline Unicode callbacks internally
b-buffer.cc
b-fallback-shape.cc
b-old.cc
b-ot-shape-complex-misc.cc
b-ot-shape-normalize.cc
b-ot-shape-private.hh
b-ot-shape.cc
b-unicode-private.hh
b-unicode.cc
7470315a3e782aa6192bbe64f7a3944266fb1521 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Move unicode accessors around
b-unicode-private.hh
b-unicode.cc
21fdcee00125b6e1c09f0bed3064d16ccd3a7a5d 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_unicode_combining_class_t
b-common.h
b-glib.cc
b-icu.cc
b-unicode-private.hh
b-unicode.cc
b-unicode.h
84186a64004e5dcd2ce98b564d0e0a09aa5d68b2 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Add commentary on the compatibility decomposition in the normalizer
b-ot-shape-normalize.cc
0834d952017a04c6f4599e574cb75ecf3ca27d3b 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Adjust mark positioning parameters

Fallback mark positioning works now... With hb-ft and hb-view /
hb-shape at least.
b-old.cc
b-old/harfbuzz-shaper.cpp
4ca743dfb8e09f9fa525061c7f1144d55f72effb 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [old] Implement fontMetrics
b-old.cc
1e7d860613032e40a3f90e2caa2ee5ac44ab8c8c 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GPOS] Adjust mark advance-width zeroing logic

If there is no GPOS, zero mark advances.

If there *is* GPOS and the shaper requests so, zero mark advances for
attached marks.

Fixes regression with Tibetan, where the font has GPOS, and marks a
glyph as mark where it shouldn't get zero advance.
b-ot-layout-gpos-table.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape.cc
a8842e4a448efb30f3f2f3c628d6dc4824829726 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Remove some TODO items
b-shape.cc
2bc3b9a616cedbc56ff4a915f9e3439ff3a6bf13 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Zero mark advances if the shaper desires so

Enabled for all shapers except for Indic.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape.cc
5fecd8b0355894ceda14b3d3c654f20c3d5e77f4 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Synthesize glyph classes
b-ot-shape.cc
03b09214c073ce37eeb8af5218942c85b2d393df 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Minor
b-ot-layout-gsub-table.hh
f0fc1df8fc949739b68d55948741016081b69c3a 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Implement getGlyphMetrics()

Still working on it.
b-old.cc
378d279bbf692195c4654e312dae854ab3be04cf 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Implement Unicode compatibility decompositions

Based on patch from Philip Withnall.
https://bugs.freedesktop.org/show_bug.cgi?id=41095
b-glib.cc
b-icu.cc
b-ot-shape-normalize.cc
b-unicode-private.hh
b-unicode.cc
b-unicode.h
321ec29cc270e7e66a529696b70b2caac553c95f 01-Aug-2012 Behdad Esfahbod <behdad@behdad.org> Remove unused function
b-ot-shape-complex-indic.cc
69cc492dc120847ed00cae65ec958593ebf550c5 31-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [buffer] Minor
b-buffer-private.hh
b-buffer.cc
693918ef8541014a5ef7dfb91c6ea0ae36d9c368 31-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Streamline complex shaper enumeration

Add a shaper class struct.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape-normalize-private.hh
b-ot-shape-private.hh
b-ot-shape.cc
c2e42c3db691515f3a458eb4c71fe1e6439d5620 31-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
03f67bc012f42131b36083a23efc78e1b04b828c 31-Jul-2012 Behdad Esfahbod <behdad@behdad.org> More refactoring glyph class access
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
300c7307eb7943ba7416b672345506be1e27c6ba 31-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Don't crash if no GDEF available
b-ot-layout-gsubgpos-private.hh
3dcbdc2125c04c173f29f04922fc031929893f4e 31-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout.cc
05bd1b63426e07d1df7a1b40bf845dc94ab995a8 31-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Move glyph props matching around
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-shape.cc
2fca1426ca06cabbe8f027f2dc9dee9c27560c76 31-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Don't erase glyph classes if GDEF does not have glyph classes
b-ot-layout-gsubgpos-private.hh
fd42257f8c45ff8e036e1c3eb1a788a101be7ead 31-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout.cc
7fbbf86efe675e4c038dfc5985c24bbc544620cd 31-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Minor
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
713914d3203109a8e9213f5a1d3b384730703ce9 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Uniscribe] Clean up a bit
b-uniscribe.cc
301168dae77a63ee25adfb26ce2b54a708f83791 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [CoreText] Port to shape_plan infrastructure
b-coretext.cc
6cdfd14bb19d60ac3d6b20ff611408432254f273 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Fix build on Mac
b-ot-layout-gsub-table.hh
7e34601dededd521bcef15111e39293df3d0d13d 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Unbreak Hangul jamo composition

When we removed the separate Hangul shaper, the specific normalization
preference of Hangul was lost. Fix that. Also, the Thai shaper was
copied from Hangul, so had the fully-composed normalization behavior,
which was unnecessary. So, fix that too.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape.cc
7afb14407e59dfeaa79c33aca1ffa60e7982e349 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Recategorize Telugu length marks

Fixes 8 more Telugu tests. Failures at 15 (0.00154548%).
b-unicode.cc
ndic.cc
f2377155e35c15919af4d7db21b6edc6783146b6 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Fix misc leaks

Backport (forward-port?!) from upstream:

commit 3ab7b37bdebf0f8773493a1fee910b151c4de30f
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Mon Jul 30 10:50:22 2012 -0400

Fix misc leaks

https://bugs.freedesktop.org/show_bug.cgi?id=31992
https://bugs.freedesktop.org/show_bug.cgi?id=31993
https://bugs.freedesktop.org/show_bug.cgi?id=31994
https://bugs.freedesktop.org/show_bug.cgi?id=31995
b-old/harfbuzz-arabic.c
b-old/harfbuzz-gpos.c
b-old/harfbuzz-gsub.c
b-old/harfbuzz-tibetan.c
3f4764bb56bb7e42ba8859f1905810bd2f998838 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Don't lock user_data set during destruction if empty
b-private.hh
4ba647eecf0f70917ac4229af1f2dd3c62fcb7d5 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Fix leak
b-ot-shape.cc
f860366456d9e59b139a940da6d89c3c4fb9e96e 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Gain back some lost speed
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-private.hh
11f4c87d01924cac43bf40044f67838440e19e42 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [OT] Remove hb_ot_layout_ensure()

I didn't like it from the beginning.
b-ot-layout.cc
b-ot-layout.h
578e42182b9b9cf15b4c5426fae36e224160cbd7 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-private.hh
b-ot-layout.cc
a973b5ce86051e8ef0d20df362db1a50488842ab 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Further adjustments to mark-attachment vs ligation interaction

The d1d69ec52e75a78575b620a1c456d528b6078170 change broke Kannada badly,
since it was ligating consonants, pushing matra out, and then ligating
with the matra. Adjust for that. See comments.
b-ot-layout-gsub-table.hh
0aef425e25e2c58445157057f17ef18f695c5240 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Minor
b-ot-layout-gpos-table.hh
d1d69ec52e75a78575b620a1c456d528b6078170 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Don't ligate glyphs attached to different components of ligatures

This concludes the mark-attachment vs ligating interaction fixes (for now).
b-ot-layout-gsub-table.hh
4751dec8be05883483fd5f6b474ebd22583ae566 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-private.hh
f24bcfbed1f3b4f4f6311246bd870f73ad6ba750 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsub-table.hh
fe20c0f84f5ff518dc471bf22ac5a83ef079eb69 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Fix mark component stuff when ligatures form ligatures!

See comments.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=437633
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
2ec3ba46a3c24469096e901750e38f6ee555479a 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Minor

Start squeezing more out of lig_id/lig_comp.
b-ot-layout-gsub-table.hh
b-ot-layout-private.hh
ef6e9cec3399e4f63f4b662abd77cf6d4683e8a3 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Fixup bb0e4ba3e9c5a407fc5d73c914e429d24d336380
b-shape-plan.cc
cb3d34063154bf164c61eeba41c6166b0bd304fb 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Don't set new lig_id on mark ligatures

If two marks form a ligature, retain their previous lig_id, such that
the mark ligature can attach to ligature components...

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676343

In fact, I noticed that we should not let ligatures form between glyphs
coming from different components of a previous ligature. For example,
if the sequence is: LAM,SHADDA,LAM,FATHA,HEH, the LAM,LAM,HEH form a
ligature, putting SHADDA and FATHA next to eachother. However, it would
be wrong to ligate them. Uniscribe has this bug also.
b-ot-layout-gsub-table.hh
a15b70a81a609f024083cb04f9819483f4d5cab7 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Fix cluster formation in RTL

Unlike Uniscribe, hb-old returns glyphs in logical order, so the logic
does not need to duplicated for RTL.
b-old.cc
8a7e70ef65952fc16b8c1d5f1126c94d9d81e755 30-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Minor]
est.cc
bb0e4ba3e9c5a407fc5d73c914e429d24d336380 29-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-shape-plan.cc
est-would-substitute.cc
a00ad60bc0fe74bf0e11d73da563239f3392f351 29-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Uniscribe] Remove hb_uniscribe_font_ensure()

Wasn't a huge fan of putting the burden on the user. Just remove it and
do what we've got to do transparently.
b-uniscribe.cc
b-uniscribe.h
5d874d566fe5d2cc4cfaf02c79b663d8a626ca1e 29-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GPOS] Fix mark-to-mark positioning when one of the marks is a ligature

This commit: a3313e54008167e415b72c780ca7b9cda958d07e broke MarkMarkPos
when one of the marks itself is a ligature. That regressed 26 Tibetan
tests (up from zero!). Fix that. Tibetan back to zero.
b-ot-layout-gpos-table.hh
b-ot-layout-private.hh
338fe662b50f9309bf0050dd99becb644874195b 29-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Minor
b-ot-layout-gsub-table.hh
e6f7479fe34fb4a7cada61d84c2ed70d1fd565c8 29-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Simplify would-apply
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
dadede012e4841f9fcb70d514fdc752f3ea4663d 29-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-common-private.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
0b99429ead05ae32b3c210cb499af401b02770a9 28-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Add get_coverage() and use it to speed up main loop

And use it to speed up the hotspot by checking coverage directly in
the main loop, not 10 functions deep in.

Gives me a solid 20% boost with Indic test suite. Less so for less
lookup-intensive scenarios.

Remove the "fast_path" hack from before.
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
30ec9002d84e8b49290e782e6192069821ffa942 28-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Reject lookups with no subTable
b-ot-layout-common-private.hh
0981068b75710397f08e0d2d776a0a2ea68d7117 28-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Reject Context/ChainContext lookups with zero input
b-ot-layout-gsubgpos-private.hh
2f87cebe1062c7007021ebd05c1664e60da80825 27-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Implement shape_plan caching

Should give us some performance boost.
b-buffer-private.hh
b-font-private.hh
b-font.cc
b-shape-plan.cc
b-shape-plan.h
b-shape.cc
e9eb9503e97044222f843daacfa47e26e51312b7 27-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Add default_shaper_list to shape_plan
b-shape-plan-private.hh
b-shape-plan.cc
3b7c4e270694ed962e2a2839e44f2a59c26b326c 27-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Don't fail choosing shaper on planning failure

Shapers have a chance to reject a font in face shaper_data creation.
No need to allow failing during planning.
b-shape-plan.cc
cfe9882610489e1b917e09a74dfbf6bbba2e4a57 27-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_ot_layout_ensure() and hb_uniscribe_font_ensure()
b-ot-layout.cc
b-ot-layout.h
b-shape-plan.cc
b-shaper-private.hh
b-uniscribe.cc
b-uniscribe.h
c5b668fb9239c912d2448280a7176e331ebc9181 27-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Choose one shaper per plan
b-shape-plan-private.hh
b-shape-plan.cc
e82061e8db922f0ddbefd5a184ee2f9f967b9a05 27-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Move ot shaper completely to shape_plan
b-ot-shape-private.hh
b-ot-shape.cc
b-uniscribe.cc
ea278d3895fe0c92801d692cd71d8d9f1de7c048 27-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Partially switch ot shaper to shape_plan
b-buffer-private.hh
b-buffer.cc
b-font-private.hh
b-font.cc
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-shape.cc
b-shape-plan.cc
b-shaper-private.hh
b6b7ba1313bf686e6ed567183466104c90504a67 27-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Switch old and uniscribe backends to shape_plan
b-old.cc
b-shape.cc
b-shaper-impl-private.hh
b-shaper-private.hh
b-uniscribe.cc
c32c096a429da3e64896cf42ff5ab8c775d3c2ec 27-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Switch to shape_plan

Not optimized yet. Eats babies. And no shaper uses the shape_plan.
b-shape-plan.cc
b-shape-plan.h
b-shape.cc
5b95c148cc485f79fd7018bc4520b4cb5f728a18 27-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Start implementing shape_plan
b-fallback-shape.cc
b-font-private.hh
b-old.cc
b-ot-shape.cc
b-shape-plan-private.hh
b-shape-plan.cc
b-shape.cc
b-shaper-private.hh
b-uniscribe.cc
bd26b4d21f59312805d294f46f15182adbcc47da 27-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
akefile.am
b-fallback-shape.cc
b-old.cc
b-ot-shape.cc
b-shape-plan-private.hh
b-shape-plan.cc
b-shape.cc
b-shaper-private.hh
b-shaper.cc
b-uniscribe.cc
027857d0412477fb4427dcb8a8c45287c272e143 26-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Start adding a unified shaper access infrastructure

Add global shape_plan. Unused so far.
akefile.am
b-coretext-private.hh
b-coretext.cc
b-fallback-shape-private.hh
b-fallback-shape.cc
b-font-private.hh
b-font.cc
b-graphite2-private.hh
b-old-private.hh
b-old.cc
b-ot-shape-private.hh
b-ot-shape.cc
b-shape-plan-private.hh
b-shape-plan.cc
b-shape-plan.h
b-shape.cc
b-shaper-impl-private.hh
b-shaper-list.hh
b-shaper-private.hh
b-uniscribe-private.hh
b-uniscribe.cc
fa2dfcd560444d8c54b6349ee106134d3536f79b 26-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Fix visibility warnings with MinGW32
b-old/harfbuzz-global.h
b-old/harfbuzz-impl.h
ac2085d4b391b0a72473ecac3dd6c22efe66833f 26-Jul-2012 Jonathan Kew <jfkthame@gmail.com> [CoreText] Ensure cluster indices in output buffer are non-decreasing.

Does not provide Uniscribe-compatible results, but should at least avoid
breaking hb-view due to out-of-order cluster values.

For RTL runs, ensure cluster values are non-increasing (instead of
non-decreasing).
b-coretext.cc
441d3bb7de311d54b9f0a5210344f9a96e97e153 26-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-coretext.cc
2e7f223054d310695bdb3498b2b2b5d17b6cce78 26-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Fix Arabic cursive positioning

Backporting from upstream:

commit b847f24ce855d24f6822bcd9c0006905e81b94d8
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Wed Jul 25 19:29:16 2012 -0400

[arabic] Fix Arabic cursive positioning

This was clearly broken in testing. Who knows... Fixes for me.
Test with a Nastaleeq font, or with Arabic Typesetting.

Backporting from Chromium.
b-old/harfbuzz-shaper.cpp
9550a8c4e8b4e28be60d38c27d59253846ff9569 26-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Fixup not-enough-space handling
b-old.cc
91e721ea8693205f4f738bca97a5055ee75cf463 26-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Fix clusters

Unlike its "documentation", hb-old's log_clusters are, well, indeed
logical, not visual. Fixup. Adapted / copied from hb-uniscribe.
b-old.cc
b-old/harfbuzz-shaper.h
b-uniscribe.cc
a3313e54008167e415b72c780ca7b9cda958d07e 26-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GPOS] Fix MarkMarkPos applied to results of MultipleSubst

This was broken as a result of 7b84c536c10ab90ed96a033d88e9ad232d46c5b8.
As Khaled reported, MarkMark positioning was broken with glyphs
resulting from a MultipleSubst. Fixed. Test with the ALLAH character
in Amiri.
b-ot-layout-gpos-table.hh
b-ot-layout-private.hh
35bdab3cf1f0836807160e3ce93766c321b32e8c 25-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-unicode-private.hh
8fe4c7405b922cf0f936a46a9baedf4885b05254 25-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Add HarfBuzz.old shaper

Choose using shaper name "old".
akefile.am
b-old-private.hh
b-old.cc
b-old/.gitignore
b-old/Makefile.am
b-old/Makefile.in
b-shape.cc
5e1987005eb1b9af7a4d3d9f90c5768d8cc80015 25-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Define Unicode funcs in terms of new HarfBuzz
b-old/Makefile.am
b-old/Makefile.in
b-old/harfbuzz-external.h
4a31166b2853c1ec052844140e114158f47c2355 25-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Shovel out the line-breaking / word-segmentation stuff
b-old/Makefile.am
b-old/Makefile.in
b-old/harfbuzz-external.h
b-old/harfbuzz-indic.cpp
b-old/harfbuzz-khmer.c
b-old/harfbuzz-myanmar.c
b-old/harfbuzz-shaper-private.h
b-old/harfbuzz-shaper.cpp
b-old/harfbuzz-shaper.h
b-old/harfbuzz-thai.c
b-old/harfbuzz-tibetan.c
b-old/harfbuzz.c
0bcbe88cf313117f739b98a11dbe698b75784e9d 25-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Add visibility attributes
b-old/harfbuzz-global.h
b-old/harfbuzz-impl.h
6a9d43c3178c920672a84382ca3797e3c478b2b0 25-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Remove unused header file
b-old/harfbuzz-shape.h
fb47209c5b3aa992faf18d1a3f78b9d7682cf62f 25-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Rename hb_buffer_* to HB_Buffer_*
b-old/harfbuzz-buffer.c
b-old/harfbuzz-buffer.h
b-old/harfbuzz-shaper.cpp
1512a7357513b72e2a07dda706a176bb23d694e9 25-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [hb-old] Start adding HarfBuzz-old as a new backend
akefile.am
b-old/.gitignore
b-old/COPYING
b-old/Makefile.am
b-old/Makefile.in
b-old/README
b-old/harfbuzz-arabic.c
b-old/harfbuzz-buffer-private.h
b-old/harfbuzz-buffer.c
b-old/harfbuzz-buffer.h
b-old/harfbuzz-external.h
b-old/harfbuzz-gdef-private.h
b-old/harfbuzz-gdef.c
b-old/harfbuzz-gdef.h
b-old/harfbuzz-global.h
b-old/harfbuzz-gpos-private.h
b-old/harfbuzz-gpos.c
b-old/harfbuzz-gpos.h
b-old/harfbuzz-greek.c
b-old/harfbuzz-gsub-private.h
b-old/harfbuzz-gsub.c
b-old/harfbuzz-gsub.h
b-old/harfbuzz-hangul.c
b-old/harfbuzz-hebrew.c
b-old/harfbuzz-impl.c
b-old/harfbuzz-impl.h
b-old/harfbuzz-indic.cpp
b-old/harfbuzz-khmer.c
b-old/harfbuzz-myanmar.c
b-old/harfbuzz-open-private.h
b-old/harfbuzz-open.c
b-old/harfbuzz-open.h
b-old/harfbuzz-shape.h
b-old/harfbuzz-shaper-all.cpp
b-old/harfbuzz-shaper-private.h
b-old/harfbuzz-shaper.cpp
b-old/harfbuzz-shaper.h
b-old/harfbuzz-stream-private.h
b-old/harfbuzz-stream.c
b-old/harfbuzz-stream.h
b-old/harfbuzz-thai.c
b-old/harfbuzz-tibetan.c
b-old/harfbuzz.c
b-old/harfbuzz.h
478fd0529b868b22905a9dedf331ac7cc9721723 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-unicode-private.hh
8979a7f6f2b44ade4c0198a31ae08561b35ce009 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Mongolian] Remove Mongolian Vowel Separator at the end of shaping

Results match Uniscribe now.
b-unicode-private.hh
aa6d849838d5231465ae1a25a4dd5ea1e9380ff9 24-Jul-2012 Jonathan Kew <jfkthame@gmail.com> [CoreText] Add basic Core Text backend for comparison with our native shaping

Does not attempt to handle clusters in a Uniscribe- or HarfBuzz-compatible way;
just returns the original string indexes that CT maintains. These may even be
out-of-order in the case of reordrant glyphs.
akefile.am
b-coretext-private.hh
b-coretext.cc
b-coretext.h
b-shape.cc
ec8d2494694275dfbbac2dd0d33ca2894b0463d6 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Make data members of various OpenType structs protected instead of private

Should fix warnings generated when building with -Wunused-private-field.
Based on patch from Jonathan Kew.
b-open-file-private.hh
b-ot-head-table.hh
b-ot-hhea-table.hh
b-ot-hmtx-table.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-maxp-table.hh
b-ot-name-table.hh
97aa0b738a33b73a3f9763dd2950f2dd39f596ed 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor const correctness shuffling
b-shape.cc
6411e74caf23af7b0545f1fe54d19a1c8da895e8 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Reposition Gurmukhi top matras to after post

The font is forming a post-base consonant in some samples, and Uniscribe
positions top matra on the post-base. Do the same.

Gurmukhi failures down from 59 to 41 (0.0674242%).
b-ot-shape-complex-indic.cc
65c43accdc4d2082282d5cedba8514b8df0c18a2 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Better position left-matra in Malayalam

Just put it before base, which is what's expected.

Malayalam failures down from 1559 to 1197 (0.114172%).

BENGALI: 353988 out of 354285 tests passed. 297 failed (0.0838308%)
DEVANAGARI: 693571 out of 693628 tests passed. 57 failed (0.00821766%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%)
KANNADA: 950956 out of 951913 tests passed. 957 failed (0.100534%)
KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%)
MALAYALAM: 1047219 out of 1048416 tests passed. 1197 failed (0.114172%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271699 out of 271847 tests passed. 148 failed (0.0544424%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%)
b-ot-shape-complex-indic.cc
88f413b56f2858d149e2fc067685aeecaea779ca 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Implement Reph+Ya-Phalaa interaction

The sequence Ra,H,Ya in Bengali is ambigious and Unicode encoded that to
get Ya-Phalaa, one would place ZWJ before Halant. Ie. a ZWJ,H sequence
requests subjoining, while a H,ZWJ requests Half form. Implement that.

Bengali failures go down from 377 to 297 (0.0838308%).
Gujarati is down by 4 to 17 (0.0046384%).
Kannada is down by 226 to 957 (0.100534%).

Current status:

BENGALI: 353988 out of 354285 tests passed. 297 failed (0.0838308%)
DEVANAGARI: 693571 out of 693628 tests passed. 57 failed (0.00821766%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%)
KANNADA: 950956 out of 951913 tests passed. 957 failed (0.100534%)
KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%)
MALAYALAM: 1046857 out of 1048416 tests passed. 1559 failed (0.148701%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271699 out of 271847 tests passed. 148 failed (0.0544424%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%)
b-ot-shape-complex-indic.cc
dff0ece11d61978c04e839501f179a5c3077f340 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Limit matras to 4 per syllable

Also limit joiners.

This limits our syllable length to a constant, and is
closer to what Uniscribe does anyway.

Two Devanagari tests regressed, but who cares about tests with 20
joiners in a row?! Devanagari at 57 (0.00821766%) now.
b-ot-shape-complex-indic-machine.rl
330b329c8905a37ca88c556dea82c70d74c77458 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Unmark U+17D1 KHMER SIGN VIRIAM to NOT be a Virama

Fixes another 1 Khmer failure. Down to 30 (0.0100293%) now.
b-ot-shape-complex-indic.cc
6824a7194e01b77eddb95bd95a9b32e219140912 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Recategorize Khmer various signs as top matras

Khmer failures down from 39 to 31 (0.0103636%).
b-ot-shape-complex-indic.cc
d90b8e841e0068a601c96ab184d18b0f48eec9d1 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Reposition Khmer prebase-reordering Ra around split matras

In Khmer coeng model, a V,Ra can go *after* matras. If it goes after a
split matra, it should be reordered to *before* the left part of such matra.

Khmer failures down from 136 to 39 (0.0130381%).
b-ot-shape-complex-indic.cc
0afb84c12567ac35adac657bf8be29999b8c5a50 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix minor bug in pre-base Ra positioning
b-ot-shape-complex-indic.cc
7573799126e812a047daa5f64121ec959866b3c8 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Position Khmer U+17CE

Fixes another 6 Khmer failures. Now at 136 (0.0454661%).
b-ot-shape-complex-indic.cc
8d00e8d0e7d10f823e6975fecaffb9d557b1a99a 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Don't reposition Khmer Bindu

Khmer Bindu doesn't like to move to syllable end. Leave it where it
was.

Brings down Khmer failures from 510 to 142 (0.047572%).
b-ot-shape-complex-indic.cc
2278eefcdb3dd0d492b9d07176fbecc1f0516bb7 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] In Sinhala, form forced Reph even if no other consonant found

Fixes another 10 Sinhala failures. Down to 148 (0.0544424%).
b-ot-shape-complex-indic.cc
71fd5e80ad06c8e85a1112cc89e129d6cd03f82c 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Further adjust base algorithm for Sinhala

Apparently if there is C,V,ZWJ,C, the first C will be base, but if
it's C,ZWJ,V,C, the second one will be.

Note that Uniscribe implements this differently, by breaking syllable in
the case of C,ZWJ,V,C and putting the first consonant in one syllable
and the rest in the next syllable.

Sinhala failures down from 208 to 158 (0.0581209%). No changes to
Khmer.
b-ot-shape-complex-indic.cc
73d71cc527d28fd5519c5d965c272ea1fb149a0e 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] End Vowel-based syllable at ZWJ

One Devanagari test regressed, plus 10 Malayalam (at 1545 now).

Fixed 120 Sinhala failures. Now at 208 (0.0765136%).
b-ot-shape-complex-indic-machine.rl
34c215036f5fcdc7599b1ab0591b56dbb3811902 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Improve Sinhala base algorithm and reph positioning

Sinhala does not have half forms. And most (all?) consonants can be
base, except when preceded by ZWJ, which would request a subjoined form.
Hence switch the base algorithm to categorize with Khmer, start search
at start, and stop at a ZWJ.

Also, mark all pos=base consonants after base to be subjoined. Mark
base itself to have pos=base.

Finally, adjust Sinhala's reph position to after-main.

Brings down Sinhala failures from 455 to 328 (0.120656%).
b-ot-shape-complex-indic.cc
2ec934c6c25423e7af20d909a9c698a149808ea9 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Change "unknown" position to end of syllable
b-ot-shape-complex-indic-private.hh
b70021f7c81a0ed08475b14b07291f662cd9f905 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> When removing zero-width marks, don't remove ligatures

If a mark ligated, it probably should NOT be removed.
b-ot-shape.cc
49c5ec51444f27f33e1eb6aa1959c61b08fa89c0 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor refactoring
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-shape-complex-indic.cc
c3e6fdc3791168cf2b4c9412e751f187d58faa42 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Improve check on ligatures

Only skip actual ligatures, not marks in-between ligature components.
b-ot-layout-gsubgpos-private.hh
b-ot-shape-complex-indic.cc
771a8f50289e8fa458cfc3cd84f73a380ce98077 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] exclude ligatures when matching on Indic category

If, say, a H,ZWJ,C ligature was formed, we don't want the code to detec
that as a Halant. So, ignore ligatures when matching category in
final_reordering.

Sinhala failures down from 514 to 455 (0.167374%).
b-ot-shape-complex-indic.cc
d1af9e82e5309158ed334ab8e21f3a3b64b9540f 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Const correctness
b-ot-layout-gsubgpos-private.hh
baacd090df97610e3f6d1b2a110dc67b6c6f9f5c 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor refactoring
b-ot-shape-complex-indic.cc
c7c4de2fb9bba216e37875d79815eef55c0acc01 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Remove syllable length check before sorting

We now limit syllable lengths in the machine. No need to match here.
b-ot-shape-complex-indic.cc
9fa052733eb93a3ce1205f63ff8f74cb295cbe99 24-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Limit syllables to at most five consonants

Seems to be about what Uniscribe does. Not exactly. But close enough.
More consonants will start a new cluster.

A few scripts went way down in failures. In particular:

- Devanagari failures went down from 490 to 56.
- Telugu went down from 113 to 49.

Other scripts went down slightly or didn't change. New numbers:

BENGALI: 353908 out of 354285 tests passed. 377 failed (0.106412%)
DEVANAGARI: 693572 out of 693628 tests passed. 56 failed (0.00807349%)
GUJARATI: 366485 out of 366506 tests passed. 21 failed (0.00572978%)
GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%)
KANNADA: 950730 out of 951913 tests passed. 1183 failed (0.124276%)
KHMER: 298613 out of 299124 tests passed. 511 failed (0.170832%)
MALAYALAM: 1046881 out of 1048416 tests passed. 1535 failed (0.146411%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271333 out of 271847 tests passed. 514 failed (0.189077%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%)

Some of the remaining Telugu and Devanagari issues seem to be Uniscribe
eating Anusvara when placed before a non-joiner. Ouch!
b-ot-shape-complex-indic-machine.rl
093cd583263a5d427e3377b31585043fb55d2557 23-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Thai] Fix SARA AM handling

Oops, thinko.
b-ot-shape-complex-misc.cc
b-private.hh
42848453bf260b456b46a07f066e31b8c3aac2f1 23-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Thai] Reorder U+0E3A THAI VOWEL SIGN PHINTHU

Uniscribe reorders U+0E3A to be after U+0E38 and U+0E39. We do that by
modifying the ccc for U+0E3A.

Fixes the two remaining Thai failures (see previous commit).
b-ot-shape-complex-misc.cc
b-unicode.cc
4a7f4f3e56f8f7640ae7337aa1b3324f31e0d4ab 23-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Thai] Adjust SARA AM reordering to match Uniscribe

Adjust the list of marks before SARA AM that get the reordering
treatment. Also adjust cluster formation to match Uniscribe.

With Wikipedia test data, now I see:

- For Thai, with the Angsana New font from Win7, I see 54 failures out
of over 4M tests (0.00129107%). Of the 54, two are legitimate
reordering issues (fix coming soon), and the other 52 are simply
Uniscribe using a zero-width space char instead of an unknown
character for missing glyphs. No idea why. The missing-glyph
sequences include one that is a Thai character followed by an Arabic
Sokun. Someone confused it with Nikhahit I assume!

- For Lao, with the Dokchampa font from Win7, 33 tests fail out of
54k (0.0615167%). All seem to be insignificant mark positioning
with two marks on a base. Have to investigate.
b-ot-shape-complex-misc.cc
b-private.hh
2cc933aff97916e5d0fe42883f40f0879f848e25 23-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix cluster formation with left-matras and conjunct forms

Test case was: <U+0D15,U+0D4D,U+0D15,U+0D4A>.
b-ot-shape-complex-indic.cc
e6b01a878cd2e63cb675e7e0c6ac4d83a8c10f37 23-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Further streamline cluster formation

This should address all possible cluster misformations that I had in
mind.
b-ot-shape-complex-indic.cc
7b2a7dadd6c616bbfe1d8358700cab9cee88e584 23-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Merge clusters before sorting

This should fix any instabilities in cluster formation that we were
speculating may happen with surrounding syllables. Or most of it
perhaps.
b-ot-shape-complex-indic.cc
abb3239ef92cc5dccb4638806d7ae9868b9ac9b3 23-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Update clusters for left-matra even if matra didn't move

Fixes crashes reported with left matra under
non-uniscribe-bug-compatibilty mode.
b-ot-shape-complex-indic.cc
92a1ad7bef9efb456ab87bd63818cfbed7da3f6f 21-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Stop searching for base if a post form is found before below form

Improves Bengali and Gurmukhi. Malayalam regressed a bit. We will deal
with that later.
b-ot-shape-complex-indic.cc
4c450c703f8e4618c587bcd7ef46dcc1f2c7947b 21-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Recompose Bengali Ya,Nukta

This is a bunch of hacks for now.

Improves Bengali a bit.
b-ot-shape-complex-indic.cc
b-unicode.cc
e9c0f152a38cb2e76650a3e43f7fdcda266af696 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Uniscribe] Fix script fallback

Gurmukhi failures half now. Others changed slightly.
b-uniscribe.cc
5791f329159c9863317e2b507514c29321be31a7 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Allow a ZWNJ after SM's

Malayalam failures go way down. Other scripts benefitted slightly too.
Sinhala had one or two test regressions, but...
b-ot-shape-complex-indic-machine.rl
34ae336f3fae93ef9372881d545c817bce383041 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Improve Reph AfterMain positioning

Fixes 20 out of 48 failing Oriya tests. Failure rate down to 0.066% now.
b-ot-shape-complex-indic.cc
bdd080431a40bc941ece3230f338b94a46bd12a2 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Reposition Oriya Candrabindu

Oriya failures down from 0.65% to 0.20%.
b-ot-shape-complex-indic.cc
5f0eaaad129ff04d56b8756bebf19fbc242718c9 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix base search in final_reordering

Fixes most Malayalam failures. Down from 1.6% to 0.38% now. Fixes a
few more in other scripts too.
b-ot-shape-complex-indic.cc
81202bd860e4034c18d9f80c5a4f33d9f48463a3 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Don't attach SM/VD to other characters
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
efb4ad735691837a52447bedc1a66a87d0d9af51 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Fix compiler warnings

If x is not constant, we cannot ASSERT_STATIC on it.
b-private.hh
f31d97e44eeb6fb141f3de928e27e033fc7b1f47 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Form Telugu Reph out of Ra,Virama,ZWJ

Apparently this was approved in Feb 2012. No font yet.
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
2e193b240ec85cab0d4e2f8a375c5a7f0ef99985 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Don't split U+0AC9

Althought IndicMatraCategory.txt classifies it as Top_And_Right matra,
it does not have Unicode decomposition, and Uniscribe does not do
anything special about it either.

Gujarati failures down from 0.672% to 0.0130966%.
b-unicode.cc
30c3d5e9fc61b49c2c6ad4e744300edd6f3e0261 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Simplify Uniscribe cluster emulation

Now that we break syllables on Halant,ZWNJ, this code can be simplified.
b-ot-shape-complex-indic.cc
decf6ffca475fe01ff3151b7641f629f031137d2 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor!
b-ot-shape-complex-indic.cc
9e4f94a72cea6d65a6a7ba5a47db92e00dbfbb91 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Break syllables at Halant,ZWNJ

That's really what Uniscribe does, and explains a lot of pecularities of
Halant,ZWNJ before the base.

Sent Telugu from 1% failures to 0.03%. Improved Kannada and Malayalam
slightly. Fixed half of Bengali, and did NOT break anything!
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
2c372b80f6befad69e216e3f218b38640b8cc044 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Better check for applying 'init'

Specifically, don't apply 'init' if previous char is a joiner.

Fixes some more of Bengali.
b-ot-shape-complex-indic.cc
b-private.hh
34a7440b7c6c6e53394ddbdbedaad57b23f85105 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GPOS] Don't zero mark advances

Fixes more of Telugu, Kannada, and Oriya.

May break things (outside Indic...), but we cannot think of any font relying
on this immediately.
b-ot-layout-gpos-table.hh
8ed248de77e5d2ed978e55c0ce1a11727bc9e34c 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor
b-ot-shape-complex-indic.cc
d0e68dbd0b9fc9a42c4280d01c8ffd9c5015d550 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Implement reph positioning step 5

Not tuned, just copied from step 2. Fixes another 0.5% of Kannada
failures. 1% to go.
b-ot-shape-complex-indic.cc
a9e45c32e4a0d6da33c52f8427aa694e57f52eb9 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Don't let ZWNJ at the end of syllable affect base search

Fixes a few Devanagari, half of remaining Kannada failures, quarter for
Telugu, and others slightly improved or unchanged.
b-ot-shape-complex-indic.cc
20b68e699f73e6ce046c0ec143d40b3d6d48e06b 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Apply 'cjct' globally

Fixes 5 Devanagari failures, and no regressions.
b-ot-shape-complex-indic.cc
51e764de441072e7c9f67de23e8ed717b9b8957d 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Unbreak old scriptures

Brings down failures with Lohit-Telugu from 57% to 1.40%.
b-ot-shape-complex-indic.cc
900cf3d449bf36d4f8b1474590cae925fef48fc8 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
87cd63266e73af316b250573ef57388a0bcc9133 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Recategorize some Kannada right matras

Kannada failures down from 3.5% to 2.93%.
b-ot-shape-complex-indic.cc
3604d64ced909ade91998d294a7b4b2ee14d47aa 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Recategorize GURMUKHI ADDAK

It's not in IndicSyllabicCategory.txt. Fixes most of Gurmukhi failures.
Failures down from 7.7% to 0.222%!
b-ot-shape-complex-indic.cc
89328581236a53ec16508b95db54c7e5315b178f 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsubgpos-private.hh
47ef931f13778b894090139a64238a5ab9ac1154 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [buffer] Make sure out_info = info during GPOS
b-buffer.cc
ae63cf206291befe3920adfe015e6cd0961580e5 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Print line number during return when tracing
b-private.hh
5249f3aee108b0f41770d137e63a625f594418e7 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Unbreak Khmer

For Khmer, all consonants are subjoining. No need to look in the font.
We were looking in the wrong order anyway.
b-ot-shape-complex-indic.cc
e0475345d5d7db8dbc8b554beedfa2435c5d7fd1 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Apply 'akhn' globally

Fixes 1.5% more failures for Telugu, 2% for Kannada.
Breaks one test in Devanagari.
b-ot-shape-complex-indic.cc
fa247ebe524f92fa95d344ba912f704262879c13 20-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Better position U+0CD5

Fixes another 5% of Kannada failures.
b-ot-shape-complex-indic.cc
f055442716ec7543ed156d4789955b19c11a5255 19-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Lookup consonant position in the font

Fixes most failures of Oriya, and improves others a bit.
b-ot-map-private.hh
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
74d1d88781e91866a52e27f391e34df03b313442 19-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Fix would_apply() for LigatureSubst
b-ot-layout-gsub-table.hh
be73a5f9368136ecbdb211b96516ad0c554c8201 19-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Add src/test-would-substitute tool
akefile.am
est-would-substitute.cc
est.cc
e72b360ac6381b549249b8836fa3e70b909d3437 19-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Refactor / finish would_apply() operation

Untested.
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-layout.h
8c973ebf0f59abb5ee920edd5d64e23d8e47ad75 19-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Implement per-script matra positioning

Following what the spec says.

Brings down Telugu failures from 40% to 3.75%, and Kannada failures from
44% to 10%. Does NOT affect other scripts' test results.
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
b-unicode.cc
8bb32458f95f13f66688e0811cc91f1bfffb867d 19-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] More refactoring
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
9ccc6382ba43760167c134c18c1c4ada4b8c3f22 19-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor refactoring
b-ot-shape-complex-indic.cc
f83aaa3133de5d807be267a100d6a200e8db9017 19-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor
b-ot-shape-complex-indic-private.hh
be8b9f5f715f6fb36b98bd33c3303f79cc068f8a 19-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Start refactoring different matra positions per script
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
b01d9b3d90e892341ee4463f2eda4600850b97d8 19-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Disallow decomposition of a couple characters

This is a hack for now. Will be fixed when we do complex-shaper-driven
normalization properly.

The results with or without decomposition are the same, but Uniscribe
does not normalize, so this matches better.
b-unicode.cc
422ecd2d3c198a36d07d409341cb82ea57c7ad6b 19-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Accept a forced Rakar sequence at the end of syllable

In Sinhala, Rakar is formed by Al-Lakuna,ZWJ,Ra. If you put that at the
end of a Consonant,Matra syllable, you get a dotted-circle from
Uniscribe. Apparently adding a ZWJ before the Al-Lakuna "fixes" that.
And people have been encoding that sequence... So, allow a forced
"ZWJ,Virama,ZWJ,Ra" sequence at the of syllables.

Fixes some 100 or more of Sinhala failures. Now at 622 only (0.23%).
b-ot-shape-complex-indic-machine.rl
6fc1732003d71cf90d37247482772c3da884687f 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Allow joiners on both sides of Halant at the same time

The sequence <ZWJ,Al-Lakuna,ZWJ> is used in Sinhala to explicitly ask
for Rakar. Fixes two-thousand Sinhala tests. Not many left.
b-ot-shape-complex-indic-machine.rl
10cdc94eee2225f14c198c015256a5a0063eecad 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] In final reordering, find base, even if it disappeared

POS_BASE can disappear if base ligated backward. Define base as last
with position not after base.

Fixes a few hundred of Sinhala failures with Iskoola Pota.
b-ot-shape-complex-indic.cc
9c4d24a3a677a58ec59c7fb0f8b70b8aad30a032 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor
b-ot-shape-complex-indic.cc
3285e107c9a83aeb552e67f9460680ff6d167d88 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Implement Sinhala "Al Lakuna" Reph behavior

In Sinhala, Reph is formed only explicitly, by the presence of a ZWJ.
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
91cade755534c42bb826a6aefcbca8a543d94387 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic/Unicode] Decompose Sinhala split matras the way Uniscribe likes

Makes no visual difference.

Fixes most of the failures. Down from 15% to 1.3%!
b-unicode.cc
d8942dcbb4e3249a2d78a6455c119294ed4390bc 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Apply Tibetan (global) features.

Fixes all Tibetan failures. All 180k of them!

Merges back Hangul into the default shaper.
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
552d19b7a11f7dff888587fce4d56d9f8e47e819 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Treat Register Shifters like Nukta

Really this time.

Fixes another 18 Khmer tests.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
e8cd81f76d159f3ecf808952dab24bc07782497a 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor
b-ot-shape-complex-indic.cc
69f26bf39c824d6bf5b1c0d410380cc5462ad5ca 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix Matra reordering when base is at end of syllable

For example: U+915,U+200c,U+93f

Fixes last Tamil failure!
b-ot-shape-complex-indic.cc
d16ccc4ae7aa8be460881042413fa2637929fede 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Leave one extra item at the end of buffer allocation

Just in case, for the times we do out-of-bounds access.

jk
b-buffer-private.hh
075d671f1093d2e3c58f7f45568696030f1b3efd 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix out-of-bounds array access
b-ot-shape-complex-indic.cc
dcb527242b1eca4db1e190a7802f9cd132aaf46e 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Allow joiners before matras

Fixes 1 more Devanagari test!
b-ot-shape-complex-indic-machine.rl
391cc0331749e263bdfe83a8f5f6d76f2360ee7a 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Allow halant group in Vowel and placeholder syllables

Fixes 2 out of 560 Devanagari failures. AND:
Fixes 1 out of 2 Tamil failures.
b-ot-shape-complex-indic-machine.rl
ca4e3d3eab7b738c2b8e2a81696a28bca1b81495 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Streamline halant/joiner in grammar
b-ot-shape-complex-indic-machine.rl
418d00dffddd95a1f27e9be15752d494c627d45e 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor
b-ot-shape-complex-indic-machine.rl
4c3691d2a32ca7e54a54f7c08098fd96fa7af39e 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Hopefully minor!

Refactoring Indic machin. No semantic change.
b-ot-shape-complex-indic-machine.rl
e092c556fb1cf38be3cea1f4b75a0d879372dfa2 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor
b-ot-shape-complex-indic-private.hh
14dbdd9e39d3a869fd1521000c889c347433d22b 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Unbreak Tamil

Tamil has only about 150 failures now!
b-ot-shape-complex-indic.cc
db8981f1e0e8625714568c6d0f11f0b317b11d0a 18-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Position Khmer Robat

It's a visual Repha.

Still not positioning logical Repha as occurs in Malayalam.

Another 200 Khmer failures fixed. 547 to go. That's better than
Devanagari!
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
25bc489498ef7d0beb8fe9ab663e3f0b2f52c9c2 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Better categorize Register Shifters and Khmer Various signs

Down another 500 or so Khmer failures!
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
39b17837b4064d59c18cebb49c1c0b5b8cc0c117 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_buffer_normalize_glyphs() and hb-shape --normalize-glyphs

This reorders glyphs within the cluster to a nominal order. This should
have no visible effect on the output, but helps with testing, for
getting the same hb-shape output for visually-equal glyphs for each
cluster.
b-buffer.cc
b-buffer.h
b-private.hh
25e302da9a712e6f1d63b0d243a8df0d326ddba3 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor
b-ot-shape-complex-indic.cc
5d32690a3428fa86eb26fe5fcec943a10aa95881 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] For scripts without Half forms, always choose first consonant as base

In such scripts (ie. Khmer), a ZWJ/ZWNJ shouldn't stop the search for
base. So, instead just choose the first consonant as base directly.

Test sequence:
U+1798,200c,U+17C9,U+17D2,U+179B,U+17C1,U+17C7
b-ot-shape-complex-indic.cc
34b57149065d96f7528aaccaa7654e956ce27e93 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Treat Khmer Register Shifters more like Nuktas

Except that there may be a ZWNJ before a Register Shifter.
b-ot-shape-complex-indic-machine.rl
11e2a601b19861b05dbb2051d2d078c3cfd75b29 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor
b-ot-shape-complex-indic-machine.rl
0201e0a4649ad5b607e50bcb9605e7a5b7143812 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Apply 'cfar' for Khmer

Mark stuff after a pre-base reordering Ro 'cfar'. Used in Khmer.
This allows distinguishing the following cases with MS Khmer fonts:

U+1784,U+17D2,U+179A,U+17D2,U+1782
U+1784,U+17D2,U+1782,U+17D2,U+179A
b-ot-shape-complex-indic.cc
55f70ebfb95083f515d9b0044a2a65ab11484bb5 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Position final subjoined consonants (and vowels) after matras

In Khmer, a final subjoined consonant or independent vowel can occur
after matras. This final subjoined thing should NOT be reordered to
before the matra even though it's subjoined.

Fixes another 1k of the Khmer failures. Not much left really.
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
c50ed71e9a3df1844f564de66d54b46a696c1356 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Recategorize Khmer coeng sign as a separate category OT_Coeng

Amend the syllable structure to allow a final subscripted consonant
(Coeng+C) and a final subscripted independent vowel (Coeng+V).
Fixes another 2k of Khmer failures.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
deb521dee4fdca8c2124cfb39a205e6269d4a70d 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Add a separate Coeng class

No characters recategorized yet. No semantic change.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
74ccc6a1322f8c48c5f2a05f04821783c4b87a14 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Move Halant with after-base consonants

Normally, we attach the Halant to the previous character and move it
with it. For after-base consonants however, the Halant "belongs" to the
consonant after, so attach it so.

This fixes Bengali sequences involving post-base consonant Ya, which
should ligate with the Halant to form Ya Phala, but previously a
reordered matras was blocking the ligation.
b-ot-shape-complex-indic.cc
d5c4edcdd6df32f2f23aca44f14838b4baab4d7a 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Apply presentation-forms features all at once

Seems like this is what Uniscribe is doing, and does not break any fonts
we tested (with Devanagari, Malayalam, Khmer, and Bengali), while fixing
some Ra Phala sequences for Bengali with Vrinda. Fixes another 2% of
Bengali failures (a couple more to go).
b-ot-shape-complex-indic.cc
559f70667891a3ceeffb36f40de38a4f85868945 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Fix MarkAttachmentType matching

Fixes issue reported by Khaled Hosny with his Hussaini Nastaleeq font
and sequences like those added in the previous commit.
b-ot-layout.cc
ad4494759fa8bfd2497800c24fa414075ed1aa61 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout.cc
af92b4cc90e4184d5bdd8037c551ed482700114f 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Disable 'kern' in Uniscribe bug compatibility mode

Uniscribe does not apply 'kern' in the Indic module. Some of the Khmer
fonts they ship have small adjustments in the 'kern' table. Disable
'kern' in the Indic module under Uniscribe bug compatibility mode.

Fixes some 10% of the Khmer failures. Remains under 3% (excluding
dotted-circle ones).
b-ot-shape-complex-indic.cc
d96838ef951ce6170eb2dc576ebcba2262cf7008 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Allow complex shapers overriding common features

In a new callback... Currently unused by all complex shapers.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape.cc
df50b8474094f0563ccfdae12c4425a51b72add6 17-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Categorize other Khmer marks

Mark them the same as the Register Shifters for now. Need to rename
that category to something more sensible after all is settled.

Fixes another percent of Khmer failures. Down to under 3%!
b-ot-shape-complex-indic.cc
8e7b5882fb4c1921c9d030d354a9b998115cdb8c 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Recognize pre-base reordering Ra anywhere in the syllable

We were doing that only immediately after base.

Fixes another percent in the Khmer failures. About three more to go...
b-ot-shape-complex-indic.cc
7d09c98a1fff97127e48eae48d380dc9fcff288e 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Recognizer Register Shifter marks

Fixes another 6% of the Khmer failures.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
60da763dfac96a7931d6e6bdef8b9973bd5209ab 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GDEF] Guess glyph classes after substitution only if no GDEF

Brings down Khmer failures with Daun Penh font from 36% to 20%.
b-ot-layout-gsubgpos-private.hh
fcdc5f1c8849a7f38d9f34f64d60c6d95d7501f7 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Categorize Khmer Ro

Khmer failures down from 58% to 36%.
b-ot-shape-complex-indic-private.hh
78818124b17691ec2c647142fdb9ae743aa03dee 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Reoder pre-base reordering Ra

Brings down Malayalam failures from 14% down to 3%.
b-ot-shape-complex-indic.cc
1a1dbe9a2787f226f3e43063da8eb6633438b0a0 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Rename
b-ot-shape-complex-indic.cc
46e645ec4b59f0a278347be11f40c7df700d5bb6 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Start implementing pre-base reordering
b-ot-shape-complex-indic.cc
921ce5b17daf06af8e17989a3e335b9f5df20483 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Rename

No semantic change.
b-ot-shape-complex-indic.cc
b504e060f008e95b1ba36c06600c9fea4f5d4808 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Implement After-Main Reph positioning

Almost...
b-ot-shape-complex-indic.cc
17d7de91d76406d3e92db37d9eef2fc615f06e68 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Apply 'pref' to pre-base reodering Ra

No reordering yet.
b-ot-shape-complex-indic.cc
362d3db8d3527d0fef260a17d2466e92a4a25425 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor

Should not be any semantic change. In preparation for implementing
pre-base reordering Ra.
b-ot-shape-complex-indic.cc
70fe77bb9a25922bd34f206826d8731d901fb451 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
2f903215c5da2330a37abe489a3f45f7c3fd5a09 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
a3e04bee2c2fa648759a87e460db6b4f1b685586 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Reorder virama only for old Indic spec
b-ot-shape-complex-indic.cc
0de771b72da6b342b015e3556190821547a4011d 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Categorize Khmer consonants
b-ot-shape-complex-indic.cc
d487fff266258eb1af056e9704cfb09d04251ddc 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Split matras without a Unicode decomposition

This is a hack for now, to get us going with Khmer. This will be
refactored properly later to move the complex logic into complex
shapers.
b-unicode.cc
8aa801a6fd1a737fa20b851edf7528bdd6635b8b 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Adjust position for split matras

We are going to split matras without a Unicode decompositions in a way
that the second half takes the codepoint of the whole matra. So,
position them where the second half is supposed to end up.
b-ot-shape-complex-indic-private.hh
1feb8345a5fd92297eb6796e6dce633bafa0c76e 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB] Allow 1-to-1 ligature substitutions!

Apparently Uniscribe allows these, and they are used in some Khmer fonts
shipped with Windows, namely, Daun Penh.
b-ot-layout-gsub-table.hh
29f106d7fba25e1464debd3a4831a7380d75c4c9 16-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Apply Above Forms
b-ot-shape-complex-indic.cc
fa2bd9fb63d83b657373764d4b657084d8327fc9 14-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Further simplify atomic ops on Visual Studio
b-atomic-private.hh
0a492357016bc9a614d2a726f2006c10af68ca58 13-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-warning.cc
11c4ad439ef2b39a840f397a693b1ba643f52c21 13-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Add -Wcast-align
akefile.am
a98d0ab18624501ee60551304f2715361ac643da 13-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Make sure HB_BEGIN_DECLS / HB_END_DECLS is only used in public headers

So we can use them to switch default visibility to internal if desired,
and use these to make only declared symbols public.
heck-c-linkage-decls.sh
b-fallback-shape-private.hh
b-ot-shape-complex-indic-machine.rl
5c5bc96216c9ad58243eb3ed27b253e237f08ebe 13-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Allow overriding HB_BEGIN_DECLS / HB_END_DECLS
b-common.h
50a4e78b530563917eb606ff3b96dcc9eed5b3ee 13-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Check for exported weak symbols

Ouch, all our C++ inline functions are being exported (weakly) already.
Fix coming.
heck-internal-symbols.sh
b5aeb95afeb13a66177caada9f5d5ad4cddbd35f 13-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Make hb_in_range() static
b-private.hh
271c8f89075607c689938b4f5e60323d9a1acd70 13-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ft.cc
391f1ff5d894b60bfe0f606be436ffe7e43f7455 13-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Fix _InterlockedCompareExchangePointer on x86
b-atomic-private.hh
2023e2b54d91924dddfd228ffdbb46021135b068 12-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [ft] Disable ppem setting

The calculations were wrong.

FreeType makes it really hard to set size and ppem independently.
For now, disable it. Need to come up with a fix later.
b-ft.cc
cdf7444505a7ae49d20f9ba6776dea92c1fde2a6 12-Jul-2012 Behdad Esfahbod <behdad@behdad.org> [ft] Use unfitted kerning if x_ppem is zero
b-ft.cc
6d08c7f1b3601095f9a12630045331dd0fe75380 12-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Revert "Towards templatizing common Lookup types"

This reverts commit 727135f3a9938c1ebd5b9f5015a46c7ccc8573c5.

This is work-in-progress. Didn't mean to push it out just yet.
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
552bf3a9f9651311084b7979805dbdc18c0335ca 11-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Bump WINNT version requested from 500 to 600

Since we use the OpenType versions of Uniscribe functions, we are
relying on that version of the WINNT API. Otherwise, usp10.h will hide
those symbols.
b-uniscribe.cc
b-uniscribe.h
9a5b421a64db1bb23d5c6ebbc3bf3f3a5513dc36 11-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Fix build with no Unicode funcs implementations provided
b-unicode-private.hh
727135f3a9938c1ebd5b9f5015a46c7ccc8573c5 04-Jul-2012 Behdad Esfahbod <behdad@behdad.org> Towards templatizing common Lookup types
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
12f5c0a222a2f0aebe63c0d367937a0ff985474a 26-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Fix check for Intel atomic ops
b-atomic-private.hh
6932a41fb61ffc2901c260587b1e98ed9c2a7ea1 26-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Use octal-escaped UTF-8 characters instead of plain text

https://bugs.freedesktop.org/show_bug.cgi?id=50970
b-private.hh
8c0ea7bcb4409aaf8c96ad641f2db30003228ad0 24-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Disable introspection again

Until I figure out the build issues. Sigh...
akefile.am
49f8e0cd9a5493ae26857c43bac0711cdf47c80d 16-Jun-2012 Behdad Esfahbod <behdad@behdad.org> GStaticMutex is deprecated
b-mutex-private.hh
1bc1cb3603167f5da309336f7018c8b0608ac104 16-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Make source more digestable for gobject-introspection
b-blob.cc
b-blob.h
b-buffer-private.hh
b-buffer.h
b-common.cc
b-common.h
b-font-private.hh
b-font.cc
b-font.h
b-set-private.hh
b-set.h
b-shape.h
b-unicode-private.hh
b-unicode.h
84d781e54cc75c81a06ba43fd7b1a74b8c7d9591 16-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Flesh out gobject-introspection stuff a bit
akefile.am
2cf301968cb8c1150cead0ab909457cdd3ee2d01 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_object_lock/unlock()
b-object-private.hh
f211d5c291b4c947cfd732e873627567173057e4 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> More Oops! Fix fast-path with sub-type==0
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b1de6aa1f33b228afe231c8209aef90a5fa1ee5d 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Oops!
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b12e2549cbcd4f1ef46e66c75533686ee560f59b 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsubgpos-private.hh
faf0f20253d954cc4cfa4c967ece7573a5ddae3b 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add sanitize() logic for fast-paths
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
4e766ff28d1fb831ded20666799787478129c07c 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add fast-path for GPOS too

Shaves another 3% for DejaVu Sans long Latin strings.
b-ot-layout-gpos-table.hh
993c51915f503f74ee00eee646b67bf2e3f73596 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add fast-path to GSUB to check coverage

Shaves a good 10% off DejaVu Sans with simple Latin text for me.
Now, DejaVu is very ChainContext-intensive, but it's also a very
popular font!
b-ot-layout-gsub-table.hh
f19e0b0099ec73b8fedccacff4902403f5eabc42 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Match input before backtrack

Makes more sense, optimization-wise.
b-ot-layout-gsubgpos-private.hh
67bb9e8cea49a44be6996515e1c7d8cdc95a77e6 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add set add_coverage() to Coverage()
b-ot-layout-common-private.hh
b-set-private.hh
4952f0aa5b2f4368d9e3418252e0a1b9294cd5ee 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsub-table.hh
ad6a6f22401d6256e34521d0f52e91348c5ed4c9 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout.cc
46617a42133fbab151de4111a74dcbdc4e769c74 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Fix cache implementation
b-cache-private.hh
ce47613889aa3ff9b0067d3e51ba63cfdb139adb 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Micro-optimize

I know...
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
70416de298b811ab6be53a1c67f0d2531d99cd46 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-open-type-private.hh
99159e52a3c9d5ae6c0fbdec64e7ed684fa70b61 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Use linear search for small counts

I see about 8% speedup with long strings with DejaVu Sans.
b-open-type-private.hh
caf0412690542e58e23246dccc4b2fb83bd652ec 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-common-private.hh
0f8fea71a66b1e01ee4398967db464393f478d42 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor. Hide _hb_ot_layout_get_glyph_property()
b-ot-layout-private.hh
b-ot-layout.cc
44b8ee0c90d7b1dd91e5848114141e3186534a0f 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gpos-table.hh
b-ot-layout.cc
7b84c536c10ab90ed96a033d88e9ad232d46c5b8 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> In MarkBase attachment, only attach to first of a MultipleSubst sequence

This is apparently what Uniscribe does. Test case is:

SEEN FATHA TEH ALEF

with Arabic Typesetting. Originally reported by Khaled Hosny.
b-ot-layout-gpos-table.hh
b-ot-layout-gsubgpos-private.hh
ec57e0c5655ced5109c4638bf802772d336448fd 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Set lig_comp for MultipleSubst components

To be used for correct mark attachment to first component of a
MultipleSubst output. That's what Uniscribe does.
b-ot-layout-gsub-table.hh
e085fcf7ca302eb7802a032197c022819e7e7074 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Remove unused buffer->replace_glyphs_be16
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsubgpos-private.hh
3ec77d6ae0510dc2c0ec64382c4948bc6e109844 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Don't use replace_glyphs_be for MultipleSubst
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
4b7192125ffd295091d6b3a0bdfca7011947c2ca 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
4508789f4b5e0ece5620d35598aeeb7ecbe3e3aa 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add test for static initializers and other C++ stuff
akefile.am
heck-static-inits.sh
56bd259b9ac22dd98913c8ca2e2cf7b30b632373 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
heck-internal-symbols.sh
bc8357ea7b4c0d7c715aae353176434fb9460205 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Merge clusters during normalization
b-ot-shape-normalize.cc
fe3dabc08df7501010564f8844bd4d11771cc6a4 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-buffer.cc
e88e14421a33ca5bdfd76bc0b2f801fcb6e78911 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Use merge_clusters instead of open-coding
b-buffer.cc
330a2af3ff0e12c01b3b451357b8bdc83b2e9b47 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Use merge_clusters when forming Unicode clusters
b-ot-shape.cc
bd300df9adf955c1e69b3783c1c061876940fb8b 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-object-private.hh
e51d2b6ed1c794ac28c5610bfd01dbc9fb383633 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Extend into main buffer if extension hit end of out-buffer merging clusters
b-buffer.cc
b-ot-shape-complex-misc.cc
5ced012d9f58c51d557a835593c3277e35fe3b35 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Extend end when merging clusters in out-buffer
b-buffer.cc
72c0a1878313e7232d554bc226f4c6dc01418a95 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Extend clusters backward in out-buffer
b-buffer.cc
b-ot-shape-complex-misc.cc
cd5891493df06fdb92e1ae526d29dee8df250235 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Extend clusters backwards, into the out-buffer too
b-buffer.cc
77471e037122548bfc08cacea6fbb472831c34f3 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Clear output buffer before calling GSUB pause functions
b-ot-map.cc
cafa6f372721fd6b0a7c0da68b9421d3e94931bc 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> When merging clusters, extend the end
b-buffer.cc
28ce5fa454b54f728044ee12a9dbe7d016783d4a 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Merge clusters when ligating
b-ot-layout-gsub-table.hh
2bb1761ccb7d300744ced6427165f4ea75ddf96c 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor, use next_glyph()
b-ot-layout-gsub-table.hh
5f68f8675e5ccaee91f5a90d86bc3b022b9a54e4 09-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape.cc
872969126756456a69bf958f3df6e56a26e57b0a 08-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Increase Uniscribe MAX_ITEMS
b-uniscribe.cc
dbffa4c83d29c689ee4cd8a1c53e84521028c711 08-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Fix Uniscribe charset matching

Previously was failing to match fonts that didn't support CHARSET_ANSI.

There still remains a problem with the Uniscribe backend, in that if a
font with the same family name is installed, and is newer, the native
one is preferred over the font we provide. Fixing it requires rewriting
the name table with a unique family name...
b-uniscribe.cc
82e8bd8628aeb37835fb019a71b6bdac87824b97 08-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Remove unused code
b-uniscribe.cc
6da9dbff21b47fb10794b8d6cb747393c9eab7dd 08-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Remove zero-width chars in the fallback shaper too
b-fallback-shape.cc
68b76121f83fc9b87dc84f03e8bef38d4332734d 08-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Fix regressions introduced by sed. Ouch!

Introduced in 99c2695759a6af855d565f4994bbdf220570bb48.
Broken mark-mark and mark-ligature stuff.
b-ot-layout-gpos-table.hh
b-ot-layout-gsubgpos-private.hh
0dd86f9f6849d82d60a99e66b6928795cfb2a3c7 08-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Whitespace
b-uniscribe.cc
8e7beba7c3b3dea3cb3b7e280c5aab4f13b92d31 08-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Fix Uniscribe clusters with direction-overriden Arabic
b-uniscribe.cc
b069c3c31bfbbf160eb897c7474be9ea90ed4fc1 08-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Really fix override-direction in Uniscribe
b-uniscribe.cc
fcd6f5326166e993b8f5222efbaffe916da98f0a 08-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Unbreak Uniscribe

Oops. hb_tag_t and OPENTYPE_TAG have different endianness. Perhaps
something to add API for in hb-uniscribe.h
b-private.hh
b-uniscribe.cc
29eac8f591fdb86f1c4fdc0a6ab63910ff286b84 08-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Override direction in Uniscribe backend

Matches OT backend now.
b-uniscribe.cc
1c1233e57686d77d89fe3ac1dc53de9ee60798c1 08-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Make Uniscribe backend respect selected script
b-uniscribe.cc
0bb0f5d41976ae27c5c7a51cbb82144b48315a4b 07-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add note re _NullPool
b-open-type-private.hh
2a3d911fe0ff5d6442659d3381d5b08c30ee2896 07-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Fix alignment-requirement missmatch

Detected by clang and lots of cmdline options.
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
6095de1635441af16340c7b2c5a6b4c531ec242f 07-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Fix clang warning with NO_MT path
b-shape.cc
a18280a8ce9128fc9d75f8a367ae8ce0886a9599 07-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Fix warnings produced by clang analyzer
b-icu.cc
73cb02de2dd28b09d4aa76230132248215cfe83d 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-private.hh
79e2b4791fe95ede9a1e6b1c71ccc6e36c4fc0e5 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Fix ASSERT_POD on clang

As reported by bashi. Not tested.
b-private.hh
6220e5fc0dad728e67a92e838d3ac275d032f2c7 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add ASSERT_POD for most objects
b-blob.cc
b-buffer-private.hh
b-font-private.hh
b-object-private.hh
b-private.hh
b-set-private.hh
b-unicode-private.hh
a00a63b5ef503fafa87e26b517732b2214e01719 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add macros to check that types are POD
b-open-type-private.hh
b-private.hh
61eb60c129e865e92f6a5767a88c44a391f4d413 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Don't link to libstdc++

New try.
akefile.am
81a4b9fd4eb8995c5930db1df3669db93661eb52 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Remove unused hb_static_mutex_t
b-mutex-private.hh
4a3a9897b3698dd09c3e880b3ddd4db24c6fb460 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Disable Intel atomic ops on mingw32

Apparently the configure test is not enough...
b-atomic-private.hh
0594a2448440208efa0acac9a5d8d52d43108289 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Cleanup TRUE/FALSE vs true/false
b-atomic-private.hh
b-blob.cc
b-buffer-private.hh
b-buffer.cc
b-buffer.h
b-fallback-shape.cc
b-font.cc
b-ft.cc
b-glib.cc
b-graphite2.cc
b-icu.cc
b-ot-layout.cc
b-ot-shape-complex-private.hh
b-ot-shape-normalize.cc
b-ot-shape.cc
b-private.hh
b-set.cc
b-set.h
b-shape.cc
b-tt-font.cc
b-unicode.cc
b-uniscribe.cc
ain.cc
e1ac38f8dd04c29d2d4140f5a492cdaf25d72901 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Fix inert buffer set_length() with zero

Oops!
b-buffer.cc
04bc1eebe7a304c0e6f86ab6814c65889f152602 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add configure tests for Intel atomic intrinsics
b-atomic-private.hh
b-mutex-private.hh
f64b2ebf82c5f355cd95806478cd30c00b1a2731 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Remove last static initializer

We're free! Lazy or immediate...
b-ft.cc
b-shape.cc
04aed572f112b96a6033cd6c3df7bdba5e29e93c 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Make hb-ft static-initializer free
b-common.cc
b-ft.cc
be4560a3b5e8599cbe2b29a01a60c21c9e2b194f 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Undo default unicode-funcs to avoid static initializer again
b-buffer.cc
b-glib.cc
b-icu.cc
b-unicode-private.hh
b-unicode.cc
093171cceca63e48e735bbf05a2c11b1b7e95ef1 06-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Implement lock-free hb_language_t

Another static-initialization down. One more to go.
b-common.cc
6843ce01be0df501ef3149a2c1c54cdfb693195d 05-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add atomic-pointer functions

Gonig to use these for lock-free linked-lists, to be used for
hb_language_t among other things.
b-atomic-private.hh
cdafe3a7d8483ac586e2c16487e2a09164e0f65c 05-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add gcc intrinsics implementations for atomic and mutex
b-atomic-private.hh
b-mutex-private.hh
b-object-private.hh
b-warning.cc
d970d2899b36a2fbd002b224b8bd37b0906fdd5f 05-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add gcc implementation for atomic ops
b-atomic-private.hh
0e253e97af71e2a7ead153589f61fd579a247502 05-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Add a mutex to object header

Removes one more static-initialization. A few more to go.
b-common.cc
b-mutex-private.hh
b-object-private.hh
b-private.hh
a2b471df821b32625d127f83b2f90e6d6a967e7e 05-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Remove static initializers from indic
b-ot-shape-complex-indic.cc
f06ab8a4262c759b4723614fd28f55ee77aa8466 05-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Better hide nil objects and make them const
b-blob.cc
b-buffer.cc
b-font.cc
b-ft.cc
b-glib.cc
b-icu.cc
b-set.cc
b-unicode-private.hh
b-unicode.cc
bf93b636c4963cbc32d5fba7ace1053db6719192 05-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Remove constructor from hb_prealloced_array_t

This was causing all object types to be non-POD and have static
initializers. We don't need that!

Now, most nil objects just moved from .bss to .data. Fixing for that
coming soon.
b-object-private.hh
b-private.hh
b-set-private.hh
f1971a217424bd6db5c7072ba5cf197f318d4e47 05-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Fix warnings
ndic.cc
9fc7a11469113d31d8095757c4fc038c3427d44a 04-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Remove comma at the end of enum

As reported by Jonathan Kew on the list.
b-ot-shape-complex-indic.cc
3b8fd9c48f4bde368bf2d465c148b9743a9216ee 03-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Remove const from ref_count.ref_count

According to Tom Hacohen this was breaking build with some compilers.

In file included from hb-buffer-private.hh:35:0,
from hb-ot-map-private.hh:32,
from hb-ot-shape-private.hh:32,
from hb-ot-shape.cc:29:
hb-object-private.hh: In constructor '_hb_object_header_t::_hb_object_header_t()':
hb-object-private.hh:97:8: error: uninitialized const member in 'struct hb_reference_count_t'
hb-object-private.hh:51:25: note: 'hb_reference_count_t::ref_count' should be initialized
In file included from hb-ot-shape.cc:33:0:
hb-set-private.hh: In constructor '_hb_set_t::_hb_set_t()':
hb-set-private.hh:37:8: note: synthesized method '_hb_object_header_t::_hb_object_header_t()' first required here
hb-ot-shape.cc: In function 'void hb_ot_shape_glyphs_closure(hb_font_t*, hb_buffer_t*, const hb_feature_t*, unsigned int, hb_set_t*)':
hb-ot-shape.cc:521:12: note: synthesized method '_hb_set_t::_hb_set_t()' first required here
b-object-private.hh
70600dbf626808a30fb0fd8b7ae860e64d9ffe87 03-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-object-private.hh
96a9ef0c9fca8d58d8dc6baf6b262d96587abee0 01-Jun-2012 Behdad Esfahbod <behdad@behdad.org> Remove tab character like other "zero-width" characters

Uniscribe does that, this make comparing results to Uniscribe
easier.
b-unicode-private.hh
0558d55bac7fb9279aac859b465e7c0e3ad97492 28-May-2012 Behdad Esfahbod <behdad@behdad.org> Remove hb_atomic_int_set/get()

We never use them in fact...

I'm just adjusting these as I better understand the requirements of
the code and the guarantees of each operation.
b-atomic-private.hh
b-object-private.hh
bce095524b3e69a47f8e88a2fb02d6ab537f9b0a 27-May-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_font_get_glyph_name() and hb_font_get_glyph_from_name()
b-font-private.hh
b-font.cc
b-font.h
b-ft.cc
bc145658bdaeaeea0cdbd719e2756f09a2dbfb48 27-May-2012 Behdad Esfahbod <behdad@behdad.org> Warn if no Unicode functions implementation is found
b-unicode-private.hh
b-warning.cc
a3547330fa88e30a138f6f17e60d9c7d1e316622 27-May-2012 Behdad Esfahbod <behdad@behdad.org> Cleanup atomic ops on OS X
b-atomic-private.hh
e4b6d503c5575ddbf49249e3fef693d75ae75170 27-May-2012 Behdad Esfahbod <behdad@behdad.org> Don't use atomic ops in hb_cache_t

We don't care about linearizability, so unprotected int read/write
are enough, no need for expensive memory barriers. It's a cache,
that's all.
b-cache-private.hh
819faa05307aa192015f4b43d8103a35e87d6cc7 27-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-atomic-private.hh
303d5850ec0516e198db241456b0cfc4899ef9c0 27-May-2012 Behdad Esfahbod <behdad@behdad.org> Fix Windows atomic get/set

According to:
http://msdn.microsoft.com/en-us/library/65tt87y8.aspx

MemoryBarrier() is the right macro to protect these, not _ReadBarrier()
and/or _WriteBarrier().
b-atomic-private.hh
29ce446d3161b7ea5874352e5f8eb33cd59338c3 25-May-2012 Behdad Esfahbod <behdad@behdad.org> Add set iterator
b-set-private.hh
b-set.cc
b-set.h
62c3e111fce0ad34960871134c2eb6da572df303 25-May-2012 Behdad Esfahbod <behdad@behdad.org> Add set symmetric difference
b-set-private.hh
b-set.cc
b-set.h
27aba594c90b4444c35273a38f5fedc8e09d9a88 24-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
cde1c0114ba66a45d907e81a49bf625e0dc946b0 24-May-2012 Behdad Esfahbod <behdad@behdad.org> Fix hb_atomic_int_set() implementation for HB_NO_MT

As pointed out by Jonathan Kew.
b-atomic-private.hh
ed2f1363a391add41f10cff18792003583a10257 23-May-2012 Behdad Esfahbod <behdad@behdad.org> 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.
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
20fdb0f41d81b226e076a4830d4b0d03da31fc19 18-May-2012 Behdad Esfahbod <behdad@behdad.org> Add a lock-free cache type for int->int functions

To be used for cmap and advance caching if desired.
akefile.am
b-cache-private.hh
b-font.cc
bd908b4f102b5ae18a3ad4a8b137994cf74b86ce 18-May-2012 Behdad Esfahbod <behdad@behdad.org> Implement hb_atomic_int_set() for OS X
b-atomic-private.hh
022a05ae90f30bcddff413022e0cd801809b5390 18-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-atomic-private.hh
b-mutex-private.hh
22afd66a30d01b6771405e76777306f600807bea 18-May-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_atomic_int_set() again
b-atomic-private.hh
4aa7258cb16176a89e1547fee8f86571fdd98307 18-May-2012 Behdad Esfahbod <behdad@behdad.org> Fix type conflicts on Windows without glib
b-tt-font.cc
f039e79d5438a8fc4a3ec11a387bbfc0f6b83024 18-May-2012 Behdad Esfahbod <behdad@behdad.org> Don't use min/max as function names

They can be macros on some systems. Eg. mingw32.
b-set-private.hh
b-set.cc
34961e3198e27fa37fd4cfdad12ef86a2e9e51c2 18-May-2012 Behdad Esfahbod <behdad@behdad.org> Prefer native atomic/mutex ops to glib's
b-atomic-private.hh
b-mutex-private.hh
ec3ba4b96fc4f262db1ff9f906628c32f26c9b7d 18-May-2012 Behdad Esfahbod <behdad@behdad.org> Move atomic ops into their own header
akefile.am
b-atomic-private.hh
b-mutex-private.hh
b-object-private.hh
b-warning.cc
1d6846db9ebf84561bb30a4e48c6c43184914099 13-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Apply vatu feature after cjct

Testing with old Deva spec this reduces failures.
Test sequence: U+0915,U+094D,U+0930.
b-ot-shape-complex-indic.cc
617f4ac46f1084859d2034c08760e31e52d3bec3 13-May-2012 Behdad Esfahbod <behdad@behdad.org> Refactor
b-ot-shape-complex-indic.cc
5e4e21fce4b548b0b8a5951bc8f35a9f27428192 13-May-2012 Behdad Esfahbod <behdad@behdad.org> Revert "[Indic] Refactoring"

This reverts commit 0831061efb78983b9c6e1e72574c977e56383c08.
b-ot-shape-complex-indic.cc
3f18236a03880c0960f5990dc90685f6146951a6 13-May-2012 Behdad Esfahbod <behdad@behdad.org> Fix more warnings
b-ot-layout-common-private.hh
b-ot-layout-gsub-table.hh
b-ot-shape-complex-indic.cc
9f377ed3210fe7d9f15e0c4f82020556f9a8f6f0 13-May-2012 Behdad Esfahbod <behdad@behdad.org> Fix more unused-var warnings
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-normalize.cc
b-set.cc
d993e72331c6c4c783b803e01e4d4a02c8e3eb77 13-May-2012 Behdad Esfahbod <behdad@behdad.org> Fix hb_face_set_index()
b-font.cc
93345edcbea49bdf0e22f26b5b74a23e601dfab4 13-May-2012 Behdad Esfahbod <behdad@behdad.org> Fix warnings
b-fallback-shape.cc
b-private.hh
eace47b173807d94b29a6490d0bc3c9f8f6168d1 13-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
99c2695759a6af855d565f4994bbdf220570bb48 13-May-2012 Behdad Esfahbod <behdad@behdad.org> Add accessort to buffer for current info, current pos, and prev info
b-buffer-private.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-normalize.cc
b-ot-shape.cc
6736f3c5b09af6a71935afc04248b033e171a9b2 13-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsubgpos-private.hh
5df809b655bb1318115651fd87d4555cdd9b41cb 13-May-2012 Behdad Esfahbod <behdad@behdad.org> [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.
b-ot-layout-common-private.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
28b9d502bb69a8045818d5f6113ded9c59a56bd7 13-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsubgpos-private.hh
737dded2e08fcc19935db51c05201a987184d337 12-May-2012 Behdad Esfahbod <behdad@behdad.org> Fix compiler warnings
b-ot-shape-complex-indic.cc
7f852b644b8143492a02edfc853114aaa23446bd 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Fix compiler warnings
b-ot-shape-complex-indic.cc
b-ot-shape-complex-private.hh
f7e8dcfd4fc377e3d786b097beb656284240456d 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [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.
b-ot-shape-complex-indic-private.hh
6a091df9b403b147ef78f3974610dedf4ce1e08a 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Disambiguate sub vs post vs above matras

Bengali is at *just* above 5% now.
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
9d0d319a4a7e85d922e58fade0f40caae1c9f109 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Position Bengali Reph before matras
b-ot-shape-complex-indic.cc
f89367251109af235f4f0446c13c261a5a4a6f72 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Start categorizing Reph per script
b-ot-shape-complex-indic.cc
a913b024d84973556094fd64ce5f0b7106fcc3b5 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Apply 'init' feature for Bengali

Error down from 20% to 7%.
b-ot-shape-complex-indic.cc
eed903b1644e087178438959664a6a57bebc398b 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Refactor for the arrival of 'init' feature

Yep, on Bengali now!
b-ot-shape-complex-indic.cc
18c06e189bd078affbb84c3bb5bb80687a227c5e 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [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.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
0831061efb78983b9c6e1e72574c977e56383c08 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Refactoring
b-ot-shape-complex-indic.cc
7ea58db311bfb0d8f804d1e9f4a1f004bd45075a 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
9c09928989316e2befe00d52ed66e055637ccd36 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [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
b-ot-shape-complex-indic-machine.rl
8c0aa486f31e9b6cbb31ce295573b53b0a214124 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [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
b-ot-shape-complex-indic-machine.rl
3399a06e7033651ee926448737bdb18e553c1796 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix U+0952 and similar classification to match Uniscribe

See comments.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
11aa3ef18dbc6ac9561bd119f5ca2c1aa1209c3a 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Treat U+0951..U+0954 all similar to U+0952
b-ot-shape-complex-indic.cc
5f131d3226131df440d7f36655e57f6effcae204 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [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.
b-ot-layout-gsubgpos-private.hh
8fd83aaf6e50c2c25002c51fee26d82847a61769 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Fix wrong buffer access in backward skippy mask matching
b-ot-layout-gsubgpos-private.hh
ff24d1081af08a887895975285d7e38f5d07bc37 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Don't use syllable serial value 0
b-ot-shape-complex-indic-machine.rl
892eb7878238d810a2a70f9dadbf958207bfeaa1 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Implement Uniscribe Reph+Matra+Halant bug feature
b-ot-shape-complex-indic.cc
67ea29af49bb08ee679914076808327992cf6676 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Add example of different Uniscribe behavior
b-ot-shape-complex-indic.cc
ebe29733d44fe0fa9fb30f946ab0dd7a40336a24 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Add runtime Uniscribe bug compatibility mode!

Enable by setting envvar:

HB_OT_INDIC_OPTIONS=uniscribe-bug-compatible

Plus, LeftMatra+Halant "feature".
b-ot-shape-complex-indic.cc
616e692e2950d326b6c46aba5b5bead3cc29d315 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Add #define UNISCRIBE_BUG_COMPATIBLE 1
b-ot-shape-complex-indic.cc
6782bdae3be0357da1dadc7b806a43ceefa67a90 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix Left Matra + Halant reordering

As can be seen in: U+092B,U+093F,U+094D
b-ot-shape-complex-indic.cc
3c2ea9481b1028e927e615a5434ebf8edcb5f891 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
203d71069c45048b6dd8fa22b61fd8f2c844b4f6 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Check all glyph masks when matching input
b-ot-layout-gsubgpos-private.hh
668c6046c1b3af3bd316bda0cc8636f2a5e8df42 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Apply Reph mask to all POS_REPH glyphs

Needed for upcoming changes to GSUB/GPOS mask matching.
b-ot-shape-complex-indic.cc
4be46bade26faf13f7b4d447e9cc608e183955dc 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix state machine to backtrack
b-ot-shape-complex-indic-machine.rl
b-private.hh
cee7187447b76b22e1bb6136d137b35ac49c3a5d 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Move syllable tracking from Indic to generic layer

This is to incorporate it into GSUB/GPOS processing.
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
b-ot-shape-complex-private.hh
3bf27a9f0e92aa31b464bd3b9fdea5933c9ae8b1 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [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.
b-ot-shape-complex-indic.cc
c6d904d67db589dd6209928e56504f04f6a07756 11-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix bitops typo!

Another 1000 down!
b-ot-shape-complex-indic.cc
55fe2cf79b11d9a63ea33b3ee76bd0ebca345157 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Make APPLY debug output print current index and codepoint

Yay!
b-ot-layout-gsubgpos-private.hh
7bd2b04fea5649d77d796d58b7f4918fe0378ee5 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-object-private.hh
cf26510dbbd8d38486e6ba423800db6427ade332 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Some more...

Done. I promise.
b-object-private.hh
9659523ca32b0e254d0e5fe387d817208d9cb6bf 11-May-2012 Behdad Esfahbod <behdad@behdad.org> More beauty in debug output!
b-private.hh
cf26e88a5ab477295479f5b9450c2019b6430eaa 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Finish off debug output beautification
b-open-type-private.hh
d7bba01a353efc7432c474dd8755a02db4abd2ae 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Only print class name in debug output if there's one available
b-private.hh
85f73fa8da1fbb864aef0f3a592b1d65e24d593d 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Only printout class name in tracing, if one is available

Makes debug output much more pleasant.
b-private.hh
98619ce4fa650c593b030d06d2f89fec83a10015 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsubgpos-private.hh
acea183e986dd378c6f95120fe0feb0586a8ef36 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Add return annotation for APPLY
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
5ccfe8e2154ad0b58dabcc236bbe9478c17b02ab 11-May-2012 Behdad Esfahbod <behdad@behdad.org> /Minor/
b-private.hh
0ab8c8621712d33e1e91dfdb4ad0b335e3d2a3fb 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Annotate SANITIZE return values

More to come, for APPLY, CLOSURE, etc.
b-open-file-private.hh
b-open-type-private.hh
b-ot-head-table.hh
b-ot-hhea-table.hh
b-ot-hmtx-table.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-maxp-table.hh
b-ot-name-table.hh
b-private.hh
829e814ff358c5e700ba4df54932696801aa9f65 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-private.hh
6eec6f406d2cc13dbca422e88492d3d498af02bf 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Code reshuffling
b-private.hh
1e08830b4fac3a60ae52349cab6e101d389d30cd 11-May-2012 Behdad Esfahbod <behdad@behdad.org> Beautify debug output
b-open-type-private.hh
b-private.hh
6f4553801729a06e506ffdde7b27c72780d4bb80 10-May-2012 Behdad Esfahbod <behdad@behdad.org> More massaging trace messaging
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.hh
b5fa37cb694b01a7df3a656710391c40dd3fcc04 10-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-set-private.hh
208109703c929428c684ddcf9310b8ba780c4c31 10-May-2012 Behdad Esfahbod <behdad@behdad.org> Better trace message support infrastructure

We have varargs in the trace interface now. To be used soon...
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.hh
02b2922fbf098c8282eb23dc2c54d5829cf67024 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Towards better Reph positioning

Fixed for Deva cases with two full-form consonants. Failures **way** down.
Not much left to go :-).
b-ot-shape-complex-indic.cc
74e54cf446bb979e488685e8c09eeed6b9d03c24 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [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.
b-ot-shape-complex-indic-private.hh
2b70df5cc008617453b12bafeaac50e6d61b3224 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Add note re Uniscribe clusters
b-ot-shape-complex-indic.cc
21d2803133c2c424ed37a9f3d17c7fc4963e5a60 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Do clustering like Uniscribe does

Hindi Wikipedia failures down to 6639 (0.938381%)!
b-ot-shape-complex-indic.cc
8df5636968389ac7bf8620ccd091fd4872b0bbee 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [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.
b-ot-shape-complex-indic.cc
daf3234bdc82c669302599a76d2b14f5e69989db 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [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!
b-ot-shape-complex-indic.cc
7708ee23cbcc8c8edce13e73b6e549b77bd8c2d0 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Improve Left Matra repositioning

Move its dependents too.
b-ot-shape-complex-indic.cc
dbb105883c6e9b83e78dc8b10766cd56b98cd7e1 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [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!
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
4705a7026900e51f6430f03a73c87f2df035df92 10-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
4ac9e98d9d2ea973dd612dc4063cf78496c643a0 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Reorder left matras to be closer to base
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
1a1fa8c655a082fc1439608457ba717306cc83ca 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Treat the standalone cluster case reusing the consonant logic
b-ot-shape-complex-indic.cc
190eb31a16178269aecaf5d2ecc9012f956749f4 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Minor
b-ot-shape-complex-indic.cc
c5306b6861cfaa50af40e8ceb058791fa06d7981 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Handle Vowel syllables

Reusing the consonant logic!
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
6d8e0cb74c02f6bc09cd4abe9e4bc82062e1b517 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Simplify Reph logic
b-ot-shape-complex-indic.cc
3d25079f8d6be81b9b4b91d3a97016b8a572f571 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Don't form Reph is Ra is the only consonant in the syllable
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
b99d63ae114fb58f129562b293a8a66543d499ad 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Increase max syllable length

20 was way too low, one could hit a syllable with 7ish consonants with it.
b-ot-shape-complex-indic.cc
a391ff50b9a7b6ac3e58d199ea726b20ee6839bb 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Adjust base after sorting
b-ot-shape-complex-indic.cc
d3637edb248162970e202e9d0671540274192844 10-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Don't return for long syllables. Just not sort.
b-ot-shape-complex-indic.cc
dfa0cade7fce3791e47eaa7edcd23da76c7a0ed0 09-May-2012 Behdad Esfahbod <behdad@behdad.org> Fix Uniscribe clusters with multiple items
b-uniscribe.cc
86e5dd386a7989701da476db89be268e4ac1e219 09-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Don't give up syllable parsing upon junk
b-ot-shape-complex-indic-machine.rl
ef24cc8c8e2478a6352c340f4611a617646de4cc 09-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Towards multi-cluster syllables and final reordering
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
b-ot-shape-complex-private.hh
a9844d41c6cb30d8a2d733130a0e72f51b6c81c1 09-May-2012 Behdad Esfahbod <behdad@behdad.org> Combine lig_id and lig_comp into one byte, to free up one for Indic
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
92332e5116271a5d96e532005fe750e7552a6cbb 09-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
dbccf87eef0d26838fa4bb3ae26410f6c4818836 09-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Make room for more reordering positions
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
d4480ace7fdbe48aeaf77278c032b8b2ef2ebe8e 09-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Improve matra vs consonant ordering

Another 1.5% down.
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
ndic.cc
33c92e769563ec2a6c1249b57d8cac742eea6f88 09-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Categorize Anudatta
b-ot-shape-complex-indic.cc
19d984edaa4f86c842345a9d4150597e045e1887 09-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Make sure Reph jumps over all matras to the right

Another 12 thousand failures gone! (78 to go)
b-ot-shape-complex-indic.cc
9034641333d7bfb41a0784cce72e43591faea083 09-May-2012 Behdad Esfahbod <behdad@behdad.org> [Indic] Keep Vedic signs at the right too
b-ot-shape-complex-indic.cc
d1deaa2f5bd028e8076265cba92cffa4fa2834ac 09-May-2012 Behdad Esfahbod <behdad@behdad.org> Replace zerowidth invisible chars with a zero-advance space glyph

Like Uniscribe does.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-private.hh
b-ot-shape-normalize.cc
b-ot-shape-private.hh
b-ot-shape.cc
b-unicode-private.hh
49e5da1591b8d28f01e7ff9caac9d9ac53668bba 09-May-2012 Behdad Esfahbod <behdad@behdad.org> [indic] Keep the syllable modifier marks to the right

Shaping failures on Hindi Wikipedia go down from 25% to 14%!
b-ot-shape-complex-indic.cc
5b1260909350bffa3e3d06da346f9f86ce651dbb 09-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-private.hh
9ce939232bbce8f51e235195e3854d1e8bb961f8 09-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic-private.hh
76b3409de6887c1cdd5c679939497b1b56f4554b 09-May-2012 Behdad Esfahbod <behdad@behdad.org> [indic] Better Reph matching
b-ot-shape-complex-indic.cc
df6d45c693c417bf311e6fa49f18a8558542e525 09-May-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
412b91889d9a1ae477e8b6907d0b9a76e78a6c91 09-May-2012 Behdad Esfahbod <behdad@behdad.org> [indic] Apply Indic features in order
b-ot-shape-complex-indic.cc
1ac075b227090a9ad930dcc1670236c176b27067 09-May-2012 Behdad Esfahbod <behdad@behdad.org> [indic] Apply rakaar forms

Fixes 10% of the failures against all of Hindi Wikipedia!
b-ot-shape-complex-indic.cc
1a2a4a0078dda834443edd421037a4bcbad18c5e 05-May-2012 Behdad Esfahbod <behdad@behdad.org> Fix warning and build issues

As reported by Jonathan Kew on the list.
b-set-private.hh
ain.cc
a5e39fed85e069ba1afbf90408349ad99ceb0e1d 25-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-set-private.hh
b-set.cc
1827dc208c867e433a95237d1ed3fc7a73d1d9a7 24-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_ot_shape_glyphs_closure()

Experimental API for now.
b-ot-map-private.hh
b-ot-shape.cc
b-ot.h
b-set-private.hh
bb09f0ec10216b11189b5e8584856adf0f14d1fc 24-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-unicode.cc
29a7e306e30e894f7a38daf73eca9fc772c58158 24-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-normalize.cc
6c6ccaf575392f6e6bb9a15534026e4ea462705b 24-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add a few more set operations

TODO: Tests for hb_set_t.
b-set-private.hh
b-set.cc
b-set.h
5caece67ab9eee322bdcdf6f4b607eadde297e56 24-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Make closure() return void
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-layout.h
b-set-private.hh
0b08adb3539f2ec29682456b89c69e89ff5e9c03 24-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add hb_set_t
akefile.am
b-ot-layout-common-private.hh
b-ot-layout-private.hh
b-ot-layout.h
b-set-private.hh
b-set.cc
b-set.h
b.h
5b93e8d94fb4c2474816304ae3f52e1c704882de 24-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Update copyright headers
b-ot-layout-common-private.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
6a9be5bd3524dc3eb1e88d1063bde2e4d8b57011 24-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Rename hb_glyph_map_t to hb_set_t
b-ot-layout-common-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-map-private.hh
b-ot-map.cc
a4385f0b0a6949e2ce49e6a147ad4beaa724f6c3 24-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Improve clustering
b-ot-shape.cc
8e3715f8a16b315c1c7dd4b256e7f68a36c53e7c 24-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-buffer-private.hh
b-buffer.cc
b-graphite2.cc
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-misc.cc
d2984a241e4819474d827b1dd5d4b6d76596b3a5 23-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add map->substitute_closure()
b-ot-map-private.hh
b-ot-map.cc
31081f7390e5130df72f89acc609ccab5dc77a48 23-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Implement closure() for Context and ChainContext lookups
b-ot-layout-common-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
c64ddab3c34897cd520d4d73a054866e649e8793 23-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Flesh out closure() for GSUB

The GSUBGPOS part still missing.
b-ot-layout-common-private.hh
b-ot-layout-gsub-table.hh
b-ot-layout-private.hh
b-ot-layout.h
0da132bde4d576a03095d6738507954f7f85103d 23-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Fix Coverage iters
b-ot-layout-common-private.hh
3e32cd9570fd8b09901fb790b80365ae425f681a 23-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-layout.h
b-private.hh
650ac00da3d2f988197393f34d40f0ba1a0fa093 23-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor refactoring
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
f94b0aa64609654497ced9c00312c9643eb69053 23-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add "closure" operation stubs to GSUB

Filling in.
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
7d50d502635d7c95e6bd091e7d4cc993f0853f76 23-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add Coverage iterators
b-ot-layout-common-private.hh
3ed4634ec349fa9e943ad23718c04be4dd4bba62 20-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add Indic inspection tool
akefile.am
b-ot-shape-complex-indic-private.hh
b-ot-shape-complex-indic.cc
ndic.cc
a06411ecf93c7e5256e363eef3ef69554896dd55 20-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor matra renumbering

Should have no visible effect.
b-ot-shape-complex-indic.cc
36608941f3cc530fea57282fa175e4cc3b4c66c6 20-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add GSUB "would_apply" API

To be used in the Indic shaper later. Unused for now.
b-ot-layout-gsub-table.hh
a5e40542ab9508f0ba6f822f1262d93fccb71f45 17-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Make font immutable in hb_shape()
b-shape.cc
3cde23664fbbe9cd2ac1b8fd5eb2ea288309cc9c 17-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor note re Graphite
b-graphite2.cc
4dc2449d92308f8dd366142831c0b85bd30ea5a9 17-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Fix leak in graphite
b-graphite2.cc
9ceca3aeb14cc096f5f87660cf7351bc35073084 17-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Fix ragel regexp in vowel-based syllable

As reported by datao zhang on the mailing list.
b-ot-shape-complex-indic-machine.rl
b870afcd1b436614af95db6dc297e54c8f03f0cd 17-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Rewrite ragel expression to better match the one on MS spec

https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx
b-ot-shape-complex-indic-machine.rl
a5f1834f57ea3fb254f5c7d372747de316fcc8f1 16-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Apply 'liga' for vertical writing mode too

Apparently that's what Kazuraki uses to form vertical ligatures,
which suggests that it's what Adobe does.
b-ot-shape.cc
e74616b8898b5f18d9bf82b9e81aefad056c1e36 15-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add comment
b-private.hh
683b503f30bba29d57a93d7e8ac7138c2e7f49f1 15-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-normalize.cc
b-ot-shape-private.hh
b-ot-shape.cc
b9f199c8e38cc5ed0d73845568630f3bcbdd4374 15-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Move code around
b-ot-shape-private.hh
b-ot-shape.cc
38a83019e6a7f4aa47662fd557344f62ae001abe 15-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-common.h
d4adade217a61007dd2da5cd9eccf889f79a019a 15-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add assert
b-ot-shape.cc
fe28b997fbbeb2cfeab62ac453993ccffe3e6719 15-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add HB_DIRECTION_IS_VALID
b-common.h
5e88aa66822ba64324b4428c9ffbe06a43b4f310 15-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Remove public enum names again

As was reported to me, glib-mkenum does not understand named enums,
so remove for now.
b-blob.h
b-common.h
b-ot-layout-private.hh
4bf90f648313e35d21b427a956aa1fe762bae757 12-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Make HB_DIRECTION_INVALID be zero

This changes all the HB_DIRECTION_* enum member values, but is
nicer, in preparation for making hb_segment_properties_t public.
b-common.cc
b-common.h
6bd9b479b8b2befbb0847282e93beade197c8038 12-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Hide backend-specific shape functions

Also remove shaper_options argument to hb_shape_full(). That was
unused and for "future". Let it go.

More shaper API coming in preparation for plan/planned API.
akefile.am
b-fallback-shape-private.hh
b-fallback-shape.cc
b-graphite2-private.hh
b-graphite2.cc
b-graphite2.h
b-ot-shape-private.hh
b-ot-shape.cc
b-ot-shape.h
b-ot.h
b-shape.cc
b-shape.h
b-uniscribe-private.hh
b-uniscribe.cc
b-uniscribe.h
c6035cf802c60f0526f421f39a55886061df94ee 12-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add names to enums

gdb was showing <anonymous enum> instead of useful stuff, so name
all our enums.
b-blob.h
b-common.h
b-ot-layout-common-private.hh
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-private.hh
d1c9eb458c843215da8df84b596bfae51fee135b 12-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Make it an error to include non-top-level headers

Users should #include <hb.h> (or hb-ft.h, hb-glib.h, etc), but
never things like hb-shape.h directly. This makes it easier to
refactor headers later on without breaking compatibility.
b-blob.h
b-buffer.h
b-common.h
b-font.h
b-ft.h
b-glib.h
b-gobject.h
b-graphite2.h
b-icu.h
b-ot-layout.h
b-ot-shape.h
b-ot-tag.h
b-ot.h
b-private.hh
b-shape.h
b-unicode.h
b-uniscribe.h
b-version.h.in
b.h
323190c27b80cddc9b3c42d19f1f243e2acb2411 12-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ft.cc
0e3361464b00b76aa7375515163e0710a691db0c 12-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Fix bug with not setting Unicode props of the first character

Fixes Mongolian shaping issue:
https://bugs.freedesktop.org/show_bug.cgi?id=45695
b-ot-shape.cc
c65662b71e6160f5adfb6226d97589ca457d98b9 12-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Fix left-matra positioning in Indic

Fixes 200 failures out of previous 4290 cases in the OO.o Indic
dictionary (of ~16000 entries).
b-ot-shape-complex-indic.cc
029a82d81d8ffa1b6771d19018d592fec1dbc934 12-Apr-2012 Behdad Esfahbod <behdad@behdad.org> [hangul] Apply *jmo features to all Hangul chars

This is what old HB does. Morever, fixes rendering with Win8 malgun
font. The Win7 version doesn't compose with either Uniscribe nor HB,
but Win8 version works as expected, like Uniscribe, with this change.

Lets call Hangul done for now.
b-ot-shape-complex-misc.cc
41ae674f6871f43d0a6e4ca67a747074d63ae576 11-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Don't create hb_apply_context_t per glyph!

I couldn't measure significant performance gains out of this; maybe
about 5% (with one million Malayalam strings). Still, not bad.
But reminds me that optimizing this codebase without profiling first
is simply not going to work. Oh well...
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
4a1e02ef7979d58fe0c726ee7c665b2420c42ddd 11-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Fix shape to presentation forms font check

As reported by Jonathan Kew on the list.
b-ot-shape-complex-arabic.cc
6062f5f01436b4044be729890ed00b9b62737824 11-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Fix build with some compilers

As reported by Jonathan Kew on the list.
b-ot-shape-complex-misc.cc
acd88e659fdb2fa1cbf7171f0a1c7fbc81b9f298 11-Apr-2012 Behdad Esfahbod <behdad@behdad.org> In Arabic fallback shaping, check that the font has glyph for new char
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape.cc
7752aa73e72301a46c64c533c1e423ff5987cc05 10-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-private.hh
b-ot-shape.cc
939c010211b063f78874a3b72b032c1ed9a13b87 10-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Implement Arabic fallback shaping mandatory ligatures
en-arabic-table.py
b-ot-shape-complex-arabic-table.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-misc.cc
b7d04eb606800100faa11100d2adf559e297a4ee 10-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Do Arabic fallback shaping
b-ot-shape-complex-arabic.cc
ae4a2b9365051c23c9a299cf76f3ab7e661999b1 10-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Generate fallback Arabic shaping table

Not hooked up yet.
akefile.am
en-arabic-table.py
en-indic-table.py
b-ot-shape-complex-arabic-table.hh
3b26f96ebe859570d14c6902afc23462bca40712 10-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add Thai shaper that does SARA AM decomposition / reordering

That's not in the OpenType spec, but it's what MS and Adobe do.
b-buffer.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
d4cc44716c1e098f8abbc0e495404598026ef242 08-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Move code around, in prep for Thai/Lao shaper
b-buffer-private.hh
b-buffer.cc
b-ot-shape-complex-indic-machine.rl
c9a841f4452921c5361b8f5697bbff7736ce60cd 07-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add simple Hangul shaper that recomposes Jamo when feasible

Previously, we were NOT actually recomposing Hangul Jamo. We do now.
The two lines in:

test/shaping/texts/in-tree/shaper-default/script-hangul/misc/misc.txt

Now render the same with the UnDotum.ttf font. Previously the second
linle was rendering boxes.

We can also start applying OpenType Jamo features later. At this time,
I have no idea how the 'ljmo', 'vjmo', 'tjmo' features are supposed to
work. Maybe someone can explain them to me?
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
968318455304804dc53045e8ba0cd4d76800c02d 07-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Implement normalization mode HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_FULL

In this mode we try composing CCC=0 with CCC=0 characters. Useful for
Hangul.
b-ot-shape-normalize.cc
bec2ac4fde1ba0dd6dba02adbb836ce569a5cf6f 07-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Bring normalization algorithm closer to the spec

No logical difference so far.
b-ot-shape-normalize.cc
e02d9257863b49e33ab5942971266349d3c548f6 07-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Flip logic around
b-ot-shape-normalize.cc
11138ccff71f442da1fcf64faa0e1d22e083e775 05-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Add normalize mode

In preparation for Hangul shaper.
akefile.am
b-ot-layout-common-private.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape-normalize-private.hh
b-ot-shape-normalize.cc
b-ot-shape-private.hh
b-ot-shape.cc
6769f21d579a354e32577ec57348e97d2cb1b438 05-Apr-2012 Behdad Esfahbod <behdad@behdad.org> More moving code around
b-ot-shape-normalize.cc
b-ot-shape-private.hh
b-ot-shape.cc
b-unicode-private.hh
2db2a566826ed4763ce69629194ec656bd48b0bd 05-Apr-2012 Behdad Esfahbod <behdad@behdad.org> Move code around
b-ot-shape-private.hh
b-unicode-private.hh
b-unicode.cc
cad3821f3d5b68d490b0728bd37bd57428ec809c 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> More sorting by Unicode version

This is the most convenient way to browse scripts.
b-common.cc
b-common.h
b-ot-shape-complex-private.hh
317b9504d7a4faa70dcf21e5c2aff4792dbd201a 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-private.hh
fa2673c1ee954ddbbfbfca7cced7b839d7776fc0 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> More Unicode script age annotation, and a couple more RTL scripts

Cross-checked with Mark Davis's spreadsheet at http://goo.gl/x9ilM
b-common.cc
b-common.h
6d4016f1ba48d409800dc3281b93e5cd58c99d9f 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Make src tests pass again
en-arabic-table.py
en-indic-table.py
b-ot-shape-complex-arabic-table.hh
b-ot-shape-complex-indic-table.hh
7da435f08cc406080a5ee9b1ab5351db6a93acae 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Separate Unicode 3.1 and Unicode 3.2 additions
b-common.h
f91136cb528e298651c4a8a8a1d6dc54136e09ce 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Route three Unicode 6.1 scripts through Indic shaper
b-ot-shape-complex-private.hh
f32c0012ad794cd2df669dfc7b0438fafbe38b2d 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Add Unicode 6.1.0 scripts
b-common.h
b-glib.cc
50e810cd0e55c25fddb0a2fd0861c51fbf65700e 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Lydian and Kharoshthi are right-to-left
b-common.cc
a52835635e4a2a12715aff2febb561515a10cd5a 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Whitespace
b-common.h
183224684a45d7dcd7d28510d4383a7a7cb3dff3 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Use generic shaper for Buhid

As requested by Jonathan Kew.

We need to devise a better mechanism to choose which scripts to
pass through the Indic shaper. Moreover, currently we are storing
data for some scripts in the Indic shaper that are not even going
through that shaper. Need to find a better way...
b-ot-shape-complex-private.hh
cdc8b491a8e7cec5082ca2ad0346c1f41fdd5c92 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Update Indic table to Unicode 6.1 data
akefile.am
en-indic-table.py
b-ot-shape-complex-arabic-table.hh
b-ot-shape-complex-indic-table.hh
e3b2e077f549b04779c08a9fedb1f35b9f11075c 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Typo
b-ot-shape-normalize.cc
c346671b6b9b05fa51b95c16212eb29ac69510fa 07-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Minor doc fixes
b-ot-shape-normalize.cc
461b9b6347e4f58589f5be82c40a2df61da2c715 02-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Fix cluster formation in Indic

Makes number of failures against Uniscribe with hi_IN dictionary from
OO.o to go down from 6334 to 4290. Not bad for a one-line change!

Mozilla Bug 729626 - ASAN: heap-buffer-overflow HTML
b-ot-shape-complex-indic-machine.rl
bc71ad4973842f25216b48842a46d6c9cbce6aa3 02-Mar-2012 Behdad Esfahbod <behdad@behdad.org> Fix atomic-int op on Apple

The OSAtomicAdd32Barrier operator returns the new value, we want the
old value.
b-blob.cc
b-object-private.hh
a1970d9afc15b2c6b7513b923019bb223bd95154 24-Feb-2012 Behdad Esfahbod <behdad@behdad.org> Add support for atomic int and mutex on Apple systems

So, apparently there's no atomic int 'get' method on Apple. You have to
add(0) to get. And that's not const-friendly. So switch inert-object
checking to a non-atomic get. This, however, is safe, and a negligible
performance boost too.
b-mutex-private.hh
b-object-private.hh
8004429102d7d3a8c42e1cbfe231835de4d3d782 24-Feb-2012 Behdad Esfahbod <behdad@behdad.org> Remove unused hb_atomic_int_set()

Apparently it can't be implemented on OS X. We weren't using it anyway.
b-object-private.hh
45227c10e416894ba7f84fdf72d849cecdb9b898 24-Feb-2012 Behdad Esfahbod <behdad@behdad.org> Add hb-warning.cc. Oops!
b-warning.cc
bd7ff1dec5b92ee59fa060e793f88499adcd8c11 23-Feb-2012 Behdad Esfahbod <behdad@behdad.org> Allow disabling multi-threaded support

By defining HB_NO_MT.

Also, only warn once per missing MT feature support.

Mozilla Bug 666661 - gfx/harfbuzz/src/hb-prive.h - compiler warnings on mac
akefile.am
b-mutex-private.hh
b-object-private.hh
634c9e3423a9c23793400d1f56e98070e00b6056 22-Feb-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-private.hh
514b6f88668da4eab85103c536dabe24b7bc457b 22-Feb-2012 Behdad Esfahbod <behdad@behdad.org> Followup: Reorder Hebrew combining classes for better rendering

Patch from Jonathan Kew.

Bug 662055 - advanced Hebrew diacritics are shown correctly only in
particular order.
b-ot-shape-private.hh
6e78607ea71e3e5306f88f227ddba76133d16ed0 22-Feb-2012 Behdad Esfahbod <behdad@behdad.org> Reorder Hebrew combining classes for better rendering

Patch from Jonathan Kew.

Bug 662055 - advanced Hebrew diacritics are shown correctly only in particular order
b-ot-shape-private.hh
134aa7bc7e3f9b9de76c9de2ed4b7344a7b323f9 27-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Make checks more OS X friendly
heck-internal-symbols.sh
heck-libstdc++.sh
6152199368399bf98368ea3c794fa760b49756ba 27-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Fix check-header-guards on OS X
heck-header-guards.sh
71632c96daa4ba15e13f4d9e7f2c121d0162614e 22-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Fallback to Latin script if the font has no other usable scripts

Patch and description from Jonathan Kew:

It turns out that some legacy Thai fonts provide OpenType substitution
features to implement mark positioning, but (incorrectly) put those
features/lookups under the 'latn' script tag instead of using 'thai' (or
possibly 'DFLT'). See
https://bugzilla.mozilla.org/show_bug.cgi?id=719366 for an example and
more detailed description.

Although this is really a font bug, I suggest that we could improve the
rendering of such fonts by looking for the 'latn' as a fallback if
neither the requested script nor "default" is found in
hb_ot_layout_table_choose_script. Suggested patch against harfbuzz
master is attached.

This does _not_ affect the other kind of legacy Thai font, where custom
code to support vendor-specific PUA codepoints would be needed. I'm not
keen to go down that path; IMO, such fonts should be ruthlessly stamped
out in favour of standards-based solutions. :)

JK
b-ot-layout.cc
7a4a848db27d1605195f677c9c8632cde558aa05 19-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-private.hh
3b5c22c39b87155f315853fb0c40edcf14e99b54 19-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Remove src/test.cc

Not really useful.
akefile.am
est.cc
889caa52fa1bef61013ec1d127f84d7d5907ef1e 19-Jan-2012 Behdad Esfahbod <behdad@behdad.org> [icu] Use U_FAILURE
b-icu.cc
36a4f4a482456ee816dcb59befa0b0538ba487df 19-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Replace u_strlen() with u_countChar32()

The latter is what I meant.
b-icu.cc
c521e793bd6c1dafacb94253a45b9c70ab38525e 19-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Fix OOB in replace_glyph()

Patch from Kenichi Ishibashi.
b-buffer.cc
03408ce73d003ed4e58e3f8472f9445e72b86bee 19-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Fix more possible buffer overruns

I have this function, but can't clean up it to my satisfaction.
b-ot-layout-gsubgpos-private.hh
7d479900cd11bc88148cd601ee43bc5492ce5843 19-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Refactor the two remaining uses of _hb_ot_layout_skip_mark()
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
506ffeb8e77a668fa305139582d215c32e46bb03 18-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Further mark skippy fixes from Jonathan Kew

We should be in good shape now.
b-ot-layout-gsubgpos-private.hh
a4a48fe6d4f884a37e720430347d10dbe3562a79 18-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Fix mark skipping regression

Ouch!
b-ot-layout-gsubgpos-private.hh
4ab97311541225906f6b737a2b47de252224cc09 17-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Refactor mark skipping
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
370f03e9c69d98d735eafb7e72b13b17f42cbaa9 16-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
4d3aeb8cb2bc1ca7cdd03ba28ba8c334f12d4c03 16-Jan-2012 Behdad Esfahbod <behdad@behdad.org> [GSUB/GPOS] Fix mark skip indexing issues

Mozilla bug 701637 and 714067 combined.

Patch from Jonathan Kew.
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
e8eedf2687f05372bf5476e84139d01ba67c9f73 16-Jan-2012 Behdad Esfahbod <behdad@behdad.org> Avoid enum trailing commas

Based on patch from Jonathan Kew.
b-ot-shape-complex-indic.cc
b-ot-shape-complex-private.hh
299ae0c3a367c84a835eadbd1276ca284d2720c0 15-Jan-2012 Behdad Esfahbod <behdad@behdad.org> [icu] Remove glib-ism
b-icu.cc
af92135424b994062648f4fb7e26af0bd970a4b1 21-Oct-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-object-private.hh
89d89646e8163b6c0874b9a3c14d4da974ea8219 17-Oct-2011 Behdad Esfahbod <behdad@behdad.org> Fix intrin.h b0rkage with older MSVC

Reported by Jonathan Kew.
b-object-private.hh
af913c5788e600e36d29f44fe4e77db84cf8c442 17-Oct-2011 Behdad Esfahbod <behdad@behdad.org> Fix infinite loop in normalization code with variation selectors

Reported by Jonathan Kew.
b-ot-shape-normalize.cc
55deff7595ef357d000fef83559c74c9f8acad00 28-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Add comments
b-ot-shape-normalize.cc
52ebdff49d13f239efc886de935d47be9860f6e5 27-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Fix GSUB lookuptype 1 subtype 1 delta wrapping
b-ot-layout-gsub-table.hh
b95324cdd217f44c40c5fd44898e659500f19511 21-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-blob.cc
0cd33592ab4bb486ffc438ba0efdac2fa7a1bb7f 21-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Fix possible leaks
b-font.cc
d606daa4cca323c8977b2e52e6863dc0f1b72fa9 20-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Whitespace
en-arabic-table.py
en-indic-table.py
f83f0f4836691b04306c2ef80979f2e1d76a2f28 20-Sep-2011 Behdad Esfahbod <behdad@behdad.org> [graphite] Add note about graphite shaker brokenness
b-graphite2.cc
0a965eee880428a43ad7f9d1317c344666247dd7 19-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
5c299343118d1eaff32ffb2a5dac077cfff67dee 19-Sep-2011 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Various improvements
b-uniscribe.cc
5ddd9cc499f2470eca239ae357a5c8a3626c0809 16-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-private.hh
b-unicode-private.hh
est.cc
947c9a778c0d4b428b58806f98c34ede59b7439c 16-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-normalize.cc
d5476a30a10da5e54783c8dbf04340225a9a00d7 16-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-object-private.hh
36b10f58cc70ce9570d17b30616f9cb27423e03b 15-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-normalize.cc
c4611cb66f8e3a133ec00e3ace62ef19d9b95b28 13-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Fix test
b-graphite2.h
b-ot-shape.h
b-uniscribe.h
bc187e5ac7433f5561b0e97e8c62172c73883f3f 08-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Refine Indic scripts, following Martin Hosken's recommendation
b-ot-shape-complex-private.hh
738d096a06822e63b3894bd817ecb90e5fb94f73 02-Sep-2011 Behdad Esfahbod <behdad@behdad.org> Pass through unknown ISO 639-3 language tags to OpenType engine

In hb_ot_tag_from_language(), if first component of an unknown
language is three letters long, use it directly as OpenType language
tag (after case conversion and padding).
b-ot-tag.cc
ea02cbf03c084b3ead6e9e4c9af07b3b47608d5b 02-Sep-2011 Behdad Esfahbod <behdad@behdad.org> [graphite] Don't preload glyphs

Doesn't seem to be slower.
b-graphite2.cc
210a06f3d7bd2df55ebd1743da74f327c5a7a967 26-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-graphite2.h
b-ot-shape.h
b-uniscribe.h
4a8d2e379a34b19bccc72bc3e2d9ace3fdd27733 26-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [graphite2] Chop a few more lines
b-graphite2.cc
81ec289da799bd2f50da9382507c606d2c779ab9 26-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-graphite2.cc
3380de5abbaff535e1cf57ea7e5c2a7c4fdcfe66 26-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [graphite] Use buffer->replace_glyphs()
b-graphite2.cc
9ebe8c0286856d46430ae184ba7303bd34485883 26-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add buffer->replace_glyphs()
b-buffer-private.hh
b-buffer.cc
a5edb1031c204464da4f852ba3d90e8cc20cd20e 26-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-graphite2.cc
290e3ee51727df75d136ccfff79831b94d1583b6 26-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [graphite] Only pass the first part language tag to graphite

Still not sure about:

1) Case. We pass lowercase for now. Would be nice if graphite was
uppercase 3letter like OpenType,

2) Padding. IMO, tag padding is always with spaces, but Martin was
talking about NUL bytes.
b-graphite2.cc
4c9fe88d30036340fe592bcbc375049b84602b8b 26-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [API] Make all _from_string() functions take a len parameter

Can be -1 for NUL-terminated string. This is useful for passing parts
of a larger string to a function without having to copy or modify the
string first.

Affected functions:

hb_tag_t hb_tag_from_string()
hb_direction_from_string()
hb_language_from_string()
hb_script_from_string()
b-common.cc
b-common.h
b-graphite2.cc
b-icu.cc
b-ot-tag.cc
a499bdea5cc5097dec62eeafdef58d08ba534be0 25-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [graphite2] Bail if grface is NULL
b-graphite2.cc
3007ffa9e53e6100a761c2363f50a2b19a0764fc 25-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Reorder combining-class to better suit Arabic shadda mark-mark positioning

As reported by Khaled on the list:

"After the introduction of canonical reordering of combining marks
(commit 34c22f8), I'm no longer able to do mark/mark substitution or
positioning for mark sequences that involve shadda as a first mark (or
most interesting sequences at least).

"After some digging, it turned out that shadda have a ccc=33 while most
Arabic marks that combine with it have a lower ccc value, which results
in the shadda being reordered after the other mark which,
unsurprisingly, breaks my contextual substitution and mkmk anchors."

See:

http://unicode.org/faq/normalization.html#8
http://unicode.org/faq/normalization.html#9
b-ot-shape-private.hh
74ef81a0b0f9adddfb42c3cb87f08f8156054519 24-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Fix make distcheck
akefile.am
b-gobject-enums.cc.tmpl
24bcdbcc0639ca9e9c0fde1a71cbbf1c3d2ef98d 24-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add hb-ot-hmtx-table.hh

Oops!
b-ot-hmtx-table.hh
a3bd8a0e1862212a2d4141b973039bd000a3054f 24-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [graphite] Rewrite properly
b-graphite2.cc
b-uniscribe.cc
5072934c35bddc23d6bcb07a41010da51eb1b090 24-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-uniscribe.cc
71388b3ee71c7d3b79f842db7588bd683691797c 24-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Minor
b-uniscribe.cc
cd2b901027bd154e31aa509c0cb2d86633e36398 24-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [graphite] Minor
b-graphite2.cc
b-shape.cc
834af3b48a1aca3e53811d1eb4ca09b582b8e598 24-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [graphite] Remove hb_graphite2_feature_check()

I don't see how this function can be useful.
b-graphite2.cc
b-graphite2.h
1f49cf32c96cb45a4d8ba2c210aeb7a8076b4762 24-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add graphite2 integration from Martin Hosken

To be modified, a lot.
akefile.am
b-graphite2.cc
b-graphite2.h
b-shape.cc
0e6d36d8a3f9f533cb6eb04408af62bfd1ad83da 24-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
akefile.am
b-uniscribe-shape.cc
b-uniscribe.cc
efde8113258b117ec0a7fbffe6d681442d045c41 23-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add a constructor for hb_prealloced_array_t

Fixes build with MSVC.
b-private.hh
d75333f166d21e9b9f2341c3bc8a9ef8a886f4b3 19-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add gobject enum support, but disabled for now

need to figure out the naming. The generated code doesn't have the
right name.
akefile.am
b-gobject-enums.cc.tmpl
b-gobject-structs.cc
b-gobject.cc
7d235d272f4c9213f54c9c807fb8fba5068c45b0 17-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Flesh out tt funcs a bit
b-tt-font.cc
b9415e76d7b41da203b9ae85e38b6dc777481184 17-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add hb_font_set_funcs_data()
b-font.cc
b-font.h
e6c09cdf43201ff1b7f38e411ae1f9977e4f9271 17-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Remove the pre_allocate argument from hb_buffer_create()

For two reasons:

1. User can always call hb_buffer_pre_allocate() themselves, and

2. Now we do a pre_alloc in add_utfX anyway, so the total number of
reallocs is limited to a small number (~3) anyway. This just makes the
API cleaner.
b-buffer.cc
b-buffer.h
est.cc
187bdeaa6c82fcb95fdd546da9c78b843e1dea0e 17-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Do (nothing for) hmtx sanitize
b-ot-hhea-table.hh
b-tt-font.cc
d6016e49108be183ab2dc9c226447d1db3a09b90 17-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Fix name-table sanitize
b-ot-name-table.hh
ae9877dea6a1aed3566d9b87a75ede84259deaca 17-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add hhea-table support
akefile.am
b-open-type-private.hh
b-ot-head-table.hh
b-ot-hhea-table.hh
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-table.hh
b-ot-maxp-table.hh
b-ot-name-table.hh
b-tt-font.cc
7a750ac33ec482e2c4856c19ea607f3563741c24 17-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Rename table files from eg maxp-private.hh to maxp-table.hh
akefile.am
b-font.cc
b-ot-head-private.hh
b-ot-head-table.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gdef-table.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gpos-table.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsub-table.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-maxp-private.hh
b-ot-maxp-table.hh
b-ot-name-private.hh
b-ot-name-table.hh
b-uniscribe-shape.cc
ain.cc
0b7e4d9f20b3ed947d0c441ca59b43c4097cdb0e 15-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [ft] FT_Get_Advance() for advance-width callbacks

Using graphite2's comparerenderer suggests that this makes hb-ft 15
times faster. No caching layer needed anymore.
b-ft.cc
4e9ff1dd6ee3ea63fd91a76a91d9725a10a294a0 15-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Pre-allocate buffers when adding string

We do a conservative estimate of the number of characters, but still,
this limits the number of buffer reallocs to a small constant.
b-buffer.cc
553bc3de82cfda8d83db26a93205e0d39440cbd1 15-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-ft.cc
254142bb67a5c520a304142301479eb5292592d1 15-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [ft] FT_Select_Charmap() when we create face
b-ft.cc
a4cbd03dd17990783d8fd4c6be0c9c0d3d9cae5b 15-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Apply 'locl' with 'ccmp' in Arabic shaper

According to Peter Constable this is indeed what Uniscribe has been
doing for years.

Mozilla Bug 667166 - wrong shape of letter when it comes at the end of
word in the arabic version of Firefox 5.0
b-ot-shape-complex-arabic.cc
c214cff55ce539d004d069a484dac3988953cb11 14-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Start adding gobject-introspection support
akefile.am
b-common.h
b-glib.cc
b-gobject.cc
b-gobject.h
9527fb200ffbbd839334e99b51d9671752d393db 13-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Fix missing return
b-ft.cc
77a328769545f6b2970d8491fe77fe98781961cf 13-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-common.h
d6660356dd81358033743f72d8a5fbf2fc70eaf7 10-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add uniscribe font getters
b-uniscribe-shape.cc
b-uniscribe.h
01ec13a1d9ae380305b593e1c52cebb0e8327cb6 10-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Implement hb_ft_font_get_face
b-ft.cc
b-ft.h
0501573deda3a8dcdfcea491392f554f21ed0154 10-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Fix const correctness in the API
b-fallback-shape-private.hh
b-fallback-shape.cc
b-ot-shape.cc
b-ot-shape.h
b-shape.cc
b-shape.h
b-uniscribe-shape.cc
b-uniscribe.h
511a136f0c092880b19250a5df53bcf9f4b043ca 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Move hb-view into util/
akefile.am
b-view.cc
d753ac78da5619a0a545cdaf7a8e65787e996570 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Remove zerowidth glyphs from output
b-uniscribe-shape.cc
ddd247b0c528cdb8bdf5f8063180abe884afa305 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
est.cc
1b8196c98638ba05ae0ebcb8ba7aa99ed9c08e0a 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add fallback shaper
b-fallback-shape.cc
13a601fe99f237b08b7166448e386eaea0b77294 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [FT] Don't make font immutable
b-ft.cc
38b2118724600521c6ad1e49df0667dcdf863634 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add hb_ft_font_set_funcs(), remove hb_ft_get_font_funcs()

Remove hb_ft_get_font_funcs() as it cannot be used by the user anyway.

Add hb_ft_font_set_funcs(). Which will make the font internally use
FreeType. That is, no need for the font to have created using the
hb-ft API. Just create using hb_face_create()/hb_font_create() and
then call this on the font (after having set font scale). This
internally creates an FT_Face and attached to the font.
akefile.am
b-ft.cc
b-ft.h
est.cc
255f176fdcd42ab94f9c3c54e2bffb55d0b1a8f5 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-uniscribe-shape.cc
a9057eb3f38018faa1ece53c4aaeeba798b41fd1 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Unbreak
b-uniscribe-shape.cc
33ccc77902660ed4b49184e5ec99f4fd0ef63175 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [API] Make set_user_data() functions take a replace parameter

We need this to set data on objects safely without worrying that some
other thread unsets it by setting it at the same time.
b-blob.cc
b-blob.h
b-buffer.cc
b-buffer.h
b-common.cc
b-font.cc
b-font.h
b-object-private.hh
b-private.hh
b-shape.cc
b-unicode.cc
b-unicode.h
b-uniscribe-shape.cc
944b2ba1ce076385f985212bbdf2df96a8a995f0 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [buffer] Make API take signed int length

Since we already switched to accepting -1 as 'zero-terminated'.
b-buffer.cc
b-buffer.h
b-ot-layout.cc
ain.cc
de1e1cf9bccfd116d495804e230dc2e12b733a2d 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [FT] Adapt to new face API
b-ft.cc
bf3eef540f81fdeba1c36263d7d5b2ec4c5f07b1 09-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Cleanup backend
b-uniscribe-shape.cc
3897335c7620c37e9a0224b0c42ade0dfdce4053 08-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [API] Sort out get_blob API

hb_face_get_blob() renamed to hb_face_reference_blob(), returns a
reference now.

hb_face_[sg]et_index() added.

hb_face_set_upem() added.
b-font-private.hh
b-font.cc
b-font.h
b-ft.cc
b-ot-layout-private.hh
b-ot-layout.cc
b-uniscribe-shape.cc
e715784be35f0846c0e084b7c53c7556ce933a45 08-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Rename get_table to reference_table in all API
b-font-private.hh
b-font.cc
b-font.h
b-ft.cc
670c873499f7f03fdfc07b8a0567b041628c6ab0 08-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Fix shaper ordering logic
b-shape.cc
cc797e0d5368b2f5732d77eb3e3882283bd87cf7 08-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-shape.cc
826e22732dd8697600a1392f48af21b7b3ce6271 07-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Fix blob lifecycles
b-uniscribe-shape.cc
ff199ba356f0eb5bc6252203eea18a1d1fd28934 07-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Fix shaper_list manipulation, aaaaaaaaaaaaargh
b-shape.cc
577326b86af80cc137eea81f4cc1e30adf9232b1 07-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Fix cluster calculation
b-uniscribe-shape.cc
f6d83b2dcf120f9d6f0a28c6f5de2da7addf9089 07-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
est.cc
2eb474afb4a09f4da8f14b444bd6066769010224 07-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Fix shaper

It's kinda working finally!
b-uniscribe-shape.cc
f22e661147691ebc9d531aa28a850988e6503f9b 07-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [glib] Protect against invalid characters
b-glib.cc
144cd49a0eb3ccc749325d0ee14b3ebf4367c971 07-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [buffer] Accept -1 for text_length and item_length

A -1 text_length means: zero-terminated string.
A -1 item_length means: to the end of string.
b-buffer.cc
e9c71fab30fd1d5b163c8a072f9e2d3eb8ba3a92 07-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Fix name-table lookup

Oops!
b-ot-name-private.hh
b-uniscribe-shape.cc
3fd2b5bece28c81e3e379352f09eee39d19ac372 07-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Use font size directly
b-uniscribe-shape.cc
892eb2e462b40451b8f73879eab66310d884386a 07-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [uniscribe] Make font selection work

Not tested yet.
b-ot-name-private.hh
b-uniscribe-shape.cc
est.cc
b492299eb3c398701557e452f6c2c9bd370fbbf3 06-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Start implementing the 'name' table
akefile.am
b-ot-name-private.hh
b-uniscribe-shape.cc
4538efacca84329a60ff69851de70027d9b4f567 06-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Skip tests by returning 77

automake test runner understands this.
heck-internal-symbols.sh
heck-libstdc++.sh
54eb65538da0a6ab0389d09944c90e12a913157d 06-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Fix check on OS X sh
heck-header-guards.sh
9da554504e30a326fc57b28cdb0e57108bfa9555 06-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add hb_shape_list_shapers()
b-shape.cc
b-shape.h
d7bf473ef222ab420456ff155ffaa09bacb3a394 06-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
heck-header-guards.sh
b-open-type-private.hh
c62a8f10f3b9a4ac3ac6b686464ac734ebfa2f7f 06-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Free all static memory upon exit
b-common.cc
b-shape.cc
c4d63ef744f79701458ab7af2055afb87ffe8de3 05-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Fix env parsing code

Also changed the separator to comma instead of colon.
b-shape.cc
3931837bebd79c5eb1bd5b24ff12e2c8e7d3f24c 05-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Change hb_shape() API back to what it was, add hb_shape_full()

I disliked changing hb_shape() API, and disliked the fact that it was
returning a bool now. So, reverted. Added new API for the extra
functionality.
b-view.cc
3ca6c4ecc299295b6682fa2b6b9f83b213223bad 05-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Change hb_shape() API back to what it was, add hb_shape_full()

I disliked changing hb_shape() API, and disliked the fact that it was
returning a bool now. So, reverted. Added new API for the extra
functionality.
b-shape.cc
b-shape.h
est.cc
02aeca985b570763342c35e99af90025bfa088d5 05-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [API] Changes to main shape API

hb_shape() now accepts a shaper_options and a shaper_list argument.
Both can be set to NULL to emulate previous API. And in most situations
they are expected to be set to NULL.

hb_shape() also returns a boolean for now. If shaper_list is NULL, the
return value can be ignored.

shaper_options is ignored for now, but otherwise it should be a
NULL-terminated list of strings.

shaper_list is a NULL-terminated list of strings. Currently recognized
strings are "ot" for native OpenType Layout implementation, "uniscribe"
for the Uniscribe backend, and "fallback" for the non-complex backend
(that will be implemented shortly). The fallback backend never fails.

The env var HB_SHAPER_LIST is also parsed and honored. It's a
colon-separated list of shaper names. The fallback shaper is invoked if
none of the env-listed shapers succeed.

New API hb_buffer_guess_properties() added.
akefile.am
b-buffer-private.hh
b-buffer.cc
b-buffer.h
b-fallback-shape-private.hh
b-fallback-shape.cc
b-ot-shape.cc
b-ot-shape.h
b-shape.cc
b-shape.h
b-uniscribe-shape.cc
b-uniscribe.h
b-view.cc
est.cc
57692adf1294a6db4627d0de7c671e4aa01d2a8f 05-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Make test.cc do something more useful

Hardcoded to the uniscribe backend for now. Will fix soon.
est.cc
c605bbbb6d4b2a98b1f40ca818760088d991f7d1 05-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Remove C++ guards from source files

Where causing issues for people with MSVC.
heck-c-linkage-decls.sh
b-blob.cc
b-buffer-private.hh
b-buffer.cc
b-common.cc
b-font-private.hh
b-font.cc
b-ft.cc
b-glib.cc
b-icu.cc
b-mutex-private.hh
b-object-private.hh
b-open-file-private.hh
b-open-type-private.hh
b-ot-head-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-map-private.hh
b-ot-map.cc
b-ot-maxp-private.hh
b-ot-shape-complex-arabic-table.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic-table.hh
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
b-ot-shape-normalize.cc
b-ot-shape-private.hh
b-ot-shape.cc
b-ot-tag.cc
b-private.hh
b-shape.cc
b-unicode-private.hh
b-unicode.cc
b-uniscribe-shape.cc
b-view.cc
ain.cc
est.cc
8336186a52813b53e90b4399dc462d55750e2d37 05-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Zero map objects
b-ot-map-private.hh
c747f509bcc4e6a34ced04e9e79ed414a44437b1 04-Aug-2011 Behdad Esfahbod <behdad@behdad.org> More out-of-tree build fixes
heck-c-linkage-decls.sh
heck-header-guards.sh
20dde6101662fd9ebe5f613631ea468f4c0a995f 04-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-uniscribe.h
44b4f50d05fd51d8056a78e359fbb00fbcac43a0 04-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Fix typo
b-private.hh
0fbb2dc83132a89201ad8b56c6909610437d2da0 04-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add draft experimental Uniscribe backend

Not complete yet, font selection doesn't work. But hey it shapes!

This is not supposed to be a production backend, more like a testing
backend.
akefile.am
b-private.hh
b-uniscribe-shape.cc
b-uniscribe.h
e62df43649e31b7815c272f01808b3f726c7d07d 03-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add internal hb_buffer_t::get_scratch_buffer()
b-buffer-private.hh
b-buffer.cc
bf8c57ba745c02370c38198adfdcd8075ba38b13 03-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add hb_face_get_blob()

Need to think more about it.
b-font.cc
b-font.h
2118fdb9f584e6735e904638e48bae48314372fa 02-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Fix fallback shaping

Broke it a few commits ago.
b-ot-shape.cc
f60271c0c2b0101e7b2725f9a9ad950c277a616c 02-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Add mingw32 support

With these changes, on Ubuntu I can do:

./configure --host=i586-mingw32msvc && make
b-mutex-private.hh
b-open-type-private.hh
b-private.hh
ain.cc
f5414cf0a220d6e6f3d4b6e8221cd583b4684187 01-Aug-2011 Behdad Esfahbod <behdad@behdad.org> Use missing script for calling ragel
akefile.am
a91c58bf98258a34e5f7c1ad39a38db58fadc4b9 01-Aug-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Disable CJCT-disabling logic

Read comment.
b-ot-shape-complex-indic.cc
5e72071062c015237b79fbd0521341a63166a204 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Stop looking for base upon seeing joiners

Not sure where this is documented, but I remember this being the desired
behavior.

test-shape-complex failures are down from 48 to 46. Meh.
b-ot-shape-complex-indic.cc
281683995a46ed37aeeb84061249758c59822457 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-ot-shape-complex-indic.cc
6b37bc80843e38ca7b62500f95fd70c08af68d62 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix ZWJ/ZWNJ application

Not quite working just yet. False alarm re 10 failures. It was
crashing. Ouch! Back to 48 failures.
b-ot-shape-complex-indic.cc
e7be05702447ae270d797398132c1930cd3a9b86 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Add Final Reordering rules into comments

Not applied yet.
b-ot-shape-complex-indic.cc
cfd4382ec1af91640129551697de36fd42c0849a 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Handle Reph when determining base consonant
b-ot-shape-complex-indic.cc
97158392a5899ddb739afaac925128f33f699bd7 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Ra is a consonant too
b-ot-shape-complex-indic.cc
0d8f8a177c4bfd4dc642a353bab8d03674e839ac 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Fix reph inhibition logic
b-ot-shape-complex-indic.cc
9da0487cd452d780673e24329ce03e174a4ef83b 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Support ZWJ/ZWNJ

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

I hereby declare harfbuzz-ng supporting Indic!
b-ot-shape-complex-indic.cc
9ee27a928a989c71923cef82a9e9828f8e9ca051 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Suppress reph formation upon joiners
b-ot-shape-complex-indic.cc
8354e004e553856d7d743e0f0b4de4668484026a 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Un-Ra U+09F1. According to the test suite this is correct.

But I'm not sure... Down from 54 failures to 52.
b-ot-shape-complex-indic.cc
ba7e85c104e68b4685c1b3b5c9a260fe0f6879df 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-ot-shape-complex-indic.cc
f5bc2725cb892264ba223e0a49f7fd2c622a0730 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [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!
b-ot-map-private.hh
b-ot-shape-complex-indic.cc
c47a31fb4793b825f4be57e9cb1b10db352b9512 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [OT] Save chosen script tag
b-ot-layout.cc
b-ot-layout.h
b-ot-map-private.hh
b-ot-map.cc
fd06bf56110e73826b3d5c73ac964e2609450d46 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Handle initial Ra+Halant in scripts that support Reph

Brings test-shape-complex failures down from 104 to 92. Way to go!
b-ot-shape-complex-indic.cc
ee58f3bc75d2d071a71b94063bf12205a5871acb 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
352372ae5ea0998e40cf9fe43c22b6b610a5764e 31-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Categorize Ra in scripts that have Reph

Is the categorization correct? I don't know.
b-ot-shape-complex-indic.cc
45d6f29f15f1d2323bcaa2498aed23ff0c8a1567 30-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [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 :).
b-ot-shape-complex-indic.cc
b-ot-shape-normalize.cc
b-private.hh
911bf32acad7f1cd161f666cb659990ade0925ad 30-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Bug 39686 - Add '-no-undefined' to libharfbuzz LDFLAGS
akefile.am
8f0b64fb6988f9502d2c5e39768a9af133d9a83f 29-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-arabic.cc
b-private.hh
743807a3ce1b2229e5307a8aea074a7544623d8d 29-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [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.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
9f9bcceca6321d5a5812f878de1de39901349a78 28-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Register buffer vars in Indic shaper
b-ot-shape-complex-indic.cc
b-ot-shape.cc
be09bf6b799cafc2ff54a28915b307ffe99661b6 28-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Oops. This should have gone into the previous commit
b-ot-layout-gsub-private.hh
b65c06025d2b54a44f716e030d4b10072c65bea8 28-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Formalize buffer var allocations
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-private.hh
b-ot-shape.cc
b-private.hh
a9ad3d3460ba863a8d8f3766ccbeab288c3c6822 28-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Move more code around

Buffer var allocation coming into shape
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout.cc
cc06c243d8be3ebb1190281653d2dba504c16c0f 26-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Streamline debugging infrastructure even more
b-blob.cc
b-object-private.hh
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.hh
43ff203d8ea3e1b09e316e3aae1a4e5ec15bfdd2 25-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Use variadic macros for debugging

Looks *so* much nicer!
b-blob.cc
b-object-private.hh
b-open-type-private.hh
b-private.hh
decd4e3e16424dc311e9fb5b663170414a11556a 25-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Add sugar syntax for debug messages

Buffer debugging coming soon.
b-blob.cc
b-object-private.hh
b-open-type-private.hh
b-private.hh
3a81b1db89beba91fb91791918b9fdd9f8fc9fa0 25-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Minor, fix leak from my previous refactorings
b-buffer.cc
f4a579bc42fb811ff5c391a0e97b7d8656ef59b1 25-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Add internal API for buffer var allocation
b-buffer-private.hh
b-buffer.cc
651e8dd79ec8eaca5ab75a61e8ce961ff7bd26eb 25-Jul-2011 Behdad Esfahbod <behdad@behdad.org> 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.
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-shape.cc
c86f932015bdf5803572b0904d343d3bc033e009 25-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Move code around
b-ot-shape.cc
18c42850c9327ab4479ff150660a76d4ff6f3e9c 25-Jul-2011 Behdad Esfahbod <behdad@behdad.org> 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.
b-ot-layout-gsubgpos-private.hh
d8787493c9aa420544096cef07c29a591a0c1a99 25-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
c311d852080b50ffc85e80168de62abb05a6be59 24-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Keep Unicode props updated as we go so we avoid a scan later
b-ot-shape-normalize.cc
5389ff4dbc46c76c9483e3c95f22524b60e21166 23-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Implement the Unicode Canonical Composition algorithm

Fallback normalization is complete and working now!
b-ot-shape-normalize.cc
dcdc51cdc0ba9d9fb75f84dd5fa7a49aa0b24ea0 22-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Handle singleton decompositions
b-ot-shape-normalize.cc
34c22f816808d061a980cffca12de03beb437fa0 22-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Implement Unicode Canonical Reordering Algorithm
b-ot-shape-normalize.cc
b-ot-shape-private.hh
b-ot-shape.cc
4ff0d2d9dfc4f7e4880a4e964ca9872624508ea0 22-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Decomposition works now!
b-ot-shape-normalize.cc
b-ot-shape.cc
468e9cb25c9bc14781b7013e447d763f93bf76a3 22-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Move buffer methods into the object
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-shape-normalize.cc
b-ot-shape.cc
45412523dc295cb5ee12e096bfacb282cc925843 22-Jul-2011 Behdad Esfahbod <behdad@behdad.org> More normalization kick
b-ot-shape-normalize.cc
b-ot-shape-private.hh
b-ot-shape.cc
63c0ef4a0763e579c9c80887bbfbd2651de05067 22-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Fix decompose() implementations to work with non-starter non-composables

Add tests.
b-glib.cc
b-icu.cc
5d90a342e319068716429bf7af76c3896b61a0e5 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Document normalization design
b-ot-shape-normalize.cc
b-ot-shape-private.hh
b-ot-shape.cc
02cdf743c2ec345a44d4fcf865594b6ac13fccd0 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> 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.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
d6b9c6d20041b4f4fa11befc179aee757c41904d 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> More kicking
b-ot-shape-normalize.cc
192445aef2e50087049243ce54ce7059ec441ffa 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Remove intermittent_glyph()

Lets not worry about performance for now...
b-ot-shape-normalize.cc
b-ot-shape-private.hh
d63adfc7d09b26764d9166da97372b21257e7611 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> No need to handle variation-selectors seperately, they are GC=Mn
b-ot-shape.cc
aa7264123a088936f2043b45d4d41ca7413fabe5 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> 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.
b-ot-shape.cc
5c6f5982d78e2d7fadc2fbb8b4f3a4be9420c59a 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Towards normalization
b-ot-shape-normalize.cc
b-ot-shape-private.hh
b-ot-shape.cc
cf7f43ec3382cac2af11f5637c840500daabf889 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Remove stale comment
b-ot-shape.cc
54d1a0d2b2c4ffe15494967122c6422ecb1fc80b 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Form clusters before ensuring native direciton

This is essential as ensure_native_direction uses cluster info that
is set by form_clusters().
b-ot-shape.cc
9111b21ef99d5e53348176f683261b0101eb427f 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Add _hb_buffer_output_glyph() and _hb_buffer_skip_glyph()
b-buffer-private.hh
b-buffer.cc
b-ot-shape.cc
655586fe5e1fadf2a2ef7826e61ee9a445ffa37a 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Towards normalization
akefile.am
b-ot-shape-normalize.cc
b-ot-shape-private.hh
b-ot-shape.cc
49741c86334d12fa08a5bfa2110ff3b9adcba1c7 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Include variation-selectors in cluster calculation
b-ot-shape.cc
dd89d958c139d85efb776fffaf314eead3952c78 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Fix cluster calculation for non-LTR text
b-buffer.cc
4a68684654e645882095c1189477146287ce9437 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> When forming clusters, participate all mark types
b-ot-shape.cc
5157e12a55f943b7fc5be7dce0b2ee1bcacca6ec 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> 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.
b-common.h
b-icu.cc
7b08b0a7f2057937dfc3ab2ec191656bf2386463 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-arabic.cc
b-private.hh
498e1a9be673bb02c00aac3f12bb4c6993a85910 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [icu] Implement compose()/decompose()
b-icu.cc
ffd4a436f7baccb68a0c3602f94ea0246e32844f 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Add tests for compose()/decompose()

Adjust glib fallback implementation.

The tests are not hooked up for ICU yet.
b-glib.cc
b-unicode.cc
fca0923b04aeff9369849da97d247a647611f346 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-icu.cc
26b6024962b254b624d4f22088b6c87745074743 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [glib] Use g_unicode_script_to/from_iso15924() if available
b-glib.cc
22fdc66712464bdb02e45eed49e4be57e79b442f 21-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [glib] Add compose() and decompose() implementations with fallback
b-glib.cc
b-unicode.cc
a54a5505a35eef5315a8e2e7a79502901e3eff5f 20-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape-complex-indic.cc
22989c5ffc8cce1ea05d729cdf33661c35a52334 12-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Distribute hb-ot-shape-complex-indic-machine.rl
akefile.am
f6fd3780e12b23ff7ed3743497c8996e71dcb064 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> 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().
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic.cc
b-ot-shape.cc
c4641723fbf6532b2e80a662e15573b31276bc73 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [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.
b-glib.cc
b-icu.cc
b-ot-shape.cc
b-shape.cc
b-unicode-private.hh
b-unicode.cc
b-unicode.h
d05dded1676924e8894c90f7a7c3527b492bcdff 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> More code generation through preprocessor
b-ot-shape-complex-private.hh
891c4755baae6cd59fad59d27fd8933e5f548a74 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Humm, undo some shuffling

In preparation for adding more advanced unicode funcs.
b-ot-shape.cc
b-shape.cc
b-unicode-private.hh
b-unicode.cc
4b6317c4f426cfaf21e509dbf6ee6d4e0422cdac 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> More code shuffling
b-font-private.hh
b-font.cc
b-unicode-private.hh
b-unicode.cc
3361c9a323575309d9fd55fe076697a3e22073c0 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Minor
akefile.am
b-ot-shape-complex-misc.cc
b-ot-shape-complex-private.hh
76f76812ac7cca8ac6935952a2360d5e151480fa 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Shuffle code around, remove shape_plan from complex shapers
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
b-ot-shape-complex-private.hh
b-ot-shape-private.hh
b-ot-shape.cc
e88bff9b4d77dc86c04832163081effbff752216 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Minor, use function typedefs
b-ot-shape-complex-private.hh
359dcaa0d33271025ca42a5f54ecbac7ae3b56d3 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Update copyright headers
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-private.hh
b-ot-shape.cc
d8d0c480c85246a74d47dd5297019c7e39391ab0 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Refactor some code common to GSUB and GPOS
b-ot-map-private.hh
b-ot-map.cc
b70c96dbe41d6512b80fe3d966a1942e1ef64a4b 08-Jul-2011 Behdad Esfahbod <behdad@behdad.org> 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.
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-arabic.cc
b-private.hh
f6d7a9bb4c19e605f1f16d9ca40adefba138c37e 07-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Shuffle code around
b-ot-map-private.hh
2e18c6dbdfbbfdec0490260bb7cb5213551b2188 06-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Fix reverse_range() position loop

Mozilla Bug 669175 - Slow rendering of text sometimes in this case,
using direction: rtl
b-buffer.cc
fa2befa46f215d8c33a54dfc57889928a628164c 04-Jul-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-view.cc
d69d5ceaa0ad30e8d4b9783507c59c6d4221de4f 04-Jul-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Well, at least finding syllables works now :)

Still not much there.
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
4ec30aec3014be6effc09cbbc88dcd075f3826df 28-Jun-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Optimize Indic table storage
b-ot-shape-complex-indic.cc
b-private.hh
c4a59de6d8c1e581b5c155319232be9e805e5cba 28-Jun-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Generate a single data table instead of multiple ones
en-indic-table.py
b-ot-shape-complex-indic-table.hh
8fdba506f0f1c66b50f8f4b114d624cb956d03b7 25-Jun-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Define indic_position_t
b-ot-shape-complex-indic.cc
65988a145b4a52c37fd53c1473034f9e701f61d9 25-Jun-2011 Behdad Esfahbod <behdad@behdad.org> [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.
b-ot-shape-complex-indic.cc
c7fe56a1d5d3e969b6ec51cd9ecd471706a19568 25-Jun-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Some of the basic features are global; Mark them so
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
867361c3ad39629a8d5b7dc48d558a1c19e37d43 18-Jun-2011 Behdad Esfahbod <behdad@behdad.org> [indic] Add syllable recognition state machine

Using an incredible tool called Ragel.
akefile.am
b-ot-shape-complex-indic-machine.rl
b-ot-shape-complex-indic.cc
422e08dbb8e2c0c5664f1bdc7e159a673cfea8c5 15-Jun-2011 Behdad Esfahbod <behdad@behdad.org> Better categorize Indic character classes

Matches OT types now.
b-ot-shape-complex-indic.cc
31f18abecb149f8888a72510f2660328dd6de16d 15-Jun-2011 Behdad Esfahbod <behdad@behdad.org> Minor compiler warning fixes
b-buffer-private.hh
b-object-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-map.cc
b-ot-shape-complex-arabic.cc
b-view.cc
e3693b72f0651985d4f619cde668611639dca885 15-Jun-2011 Behdad Esfahbod <behdad@behdad.org> Change a couple strstr() to strchr()
b-ot-tag.cc
b9452bfc1696457e156e79037c863903da5454fc 14-Jun-2011 Behdad Esfahbod <behdad@behdad.org> Fix compiler warnings with -pedantic
b-blob.cc
b-glib.cc
b-icu.cc
b-object-private.hh
b-open-type-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout.cc
b-ot-map-private.hh
b-ot-shape-complex-indic.cc
b-ot-shape-private.hh
b-ot-shape.cc
970e092dc23cbeb7897d4c7bb58c042209f518fb 14-Jun-2011 Behdad Esfahbod <behdad@behdad.org> Remove extra semicolon
b-private.hh
81426808020e2b88f008480bd63519aa68c579a7 13-Jun-2011 Behdad Esfahbod <behdad@behdad.org> Cosmetic
en-indic-table.py
b-ot-shape-complex-indic-table.hh
902ab866f2d2edc3a71c1203065e6ddf49e5b431 11-Jun-2011 Behdad Esfahbod <behdad@behdad.org> GNOME Bug 652227 - Unconditional use of stdint.h
b-common.h
20503ccd578c9983162857954e3236413469ed35 07-Jun-2011 Behdad Esfahbod <behdad@behdad.org> More Indic data shuffling
b-ot-shape-complex-indic.cc
63b177e45c2405272da3fa6c26fe11ae37950bd0 07-Jun-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape.cc
b9ddbd55930228422e82b34a141ad1b6093f5376 02-Jun-2011 Behdad Esfahbod <behdad@behdad.org> [Indic] Start an Indic shaper

Nothing functional in there yet.

So far, we're parsing IndicSyllabicCategory.txt and IndicMatraCategory.txt
fils from Unicode Character Database and store them in an array to be used
by the shaper. Also hooked up the shaper, but it does not do anything
right now.
akefile.am
en-indic-table.py
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-indic-table.hh
b-ot-shape-complex-indic.cc
b-ot-shape-complex-private.hh
b-ot-shape-private.hh
697a65c5f5cda53bc68720886a253a019e8212a8 02-Jun-2011 Behdad Esfahbod <behdad@behdad.org> Minor
en-arabic-table.py
b-ot-shape-complex-arabic-table.hh
9de1481f2bbbf2a174280b849628612f36a2f701 02-Jun-2011 Behdad Esfahbod <behdad@behdad.org> Update to ArabicShaping-6.1.0d2.txt
b-ot-shape-complex-arabic-table.hh
9d49433efba2217852f4e44f056465b451961c49 02-Jun-2011 Behdad Esfahbod <behdad@behdad.org> Minor rename
akefile.am
en-arabic-joining-table.py
en-arabic-table.py
b-ot-shape-complex-arabic-table.hh
89a2bc9ba674e7e57fec1fd8ce7648a44f3aab63 31-May-2011 Behdad Esfahbod <behdad@behdad.org> [Vertical] Apply vertical features

We apply all of vert, vrt2, vkrn, valt, and vpal.
b-ot-shape.cc
0c6a9767c812c00f2a6a02d9f43f4694e1f43815 31-May-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] Add --face-index to choose a face in a TrueType Collection
b-view.cc
4f28fbdd804fabeec57a98fe267d892ab58b3a6d 31-May-2011 Behdad Esfahbod <behdad@behdad.org> Fix TTC header handling

Also change the Version type to avoid similar bugs in the future.

Reported by Grigori Goronzy.
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-gdef-private.hh
21deab2bdc58d8e9f1a3ba1f9c61c30a79e288a1 30-May-2011 Behdad Esfahbod <behdad@behdad.org> Fixed inifinite loop introduced in 7403e055cd1463f

k is the index, not j.

Reported by Tom Hacohen.
b-ot-layout-gpos-private.hh
51881a61ca96c3328e2d92927a5a61e60997a429 28-May-2011 Behdad Esfahbod <behdad@behdad.org> Shrink code size
b-ot-map-private.hh
b-ot-map.cc
90645fb24bcbb78183576d3641a99560d87e49f2 28-May-2011 Behdad Esfahbod <behdad@behdad.org> [OT] Separate map_builder from the actual map

Respectively, separate planner from the actual plan.
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-private.hh
b-ot-shape-private.hh
b-ot-shape.cc
5560a19e2b3901437d8ee2e5905b4ac77073bfbe 27-May-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-view.cc
5bc18195d55570ef01e4b24dd248f222f081b0a2 27-May-2011 Behdad Esfahbod <behdad@behdad.org> Add check-includes.sh
akefile.am
heck-c-linkage-decls.sh
heck-header-guards.sh
heck-includes.sh
heck-internal-symbols.sh
heck-libstdc++.sh
b-ot-shape.h
376dafa6ed414e368e9dc1d5a2e0bfc8e55f410d 27-May-2011 Behdad Esfahbod <behdad@behdad.org> Hide internal symbols
b-ot-shape.cc
329c15714be90d3fc2d9054f80cb14fa325dc959 25-May-2011 Behdad Esfahbod <behdad@behdad.org> Add libtool versioning

The versioning is automatic. For now, soname-major is 0. With
the 1.0.0 release it will jump to 1 and stay there forever.
akefile.am
2d8ebcb9d089c2cfbefac71ca6350e2703ab13e3 25-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] One last font-funcs API change

Now that vertical text works correctly, I'm doing a last round
modification of the font-funcs API to simplify. Expect no more
changes around here.
b-font.cc
b-font.h
b-ft.cc
7403e055cd1463f38215ad9faedd61c3e1b66ac5 25-May-2011 Behdad Esfahbod <behdad@behdad.org> [Vertical] fix vertical gpos

Wow, it took me a few days to find the right fix!

We now set the advance for attached marks to zero, but we
do this in the _finish() state of gpos, so it shouldn't
regress with fonts like DejaVuSansMono that explicitly
decrease the mark advance width to set it to zero.
b-ot-layout-gpos-private.hh
b-ot-shape.cc
3b0bb855e011099f1a4c77ffc5214c658e280b2d 20-May-2011 Behdad Esfahbod <behdad@behdad.org> [Vertical] GPOS x/y advance adjustments only apply in hori/vert respectively
b-ot-layout-gpos-private.hh
cc2086d67ce559878a5ce2b41d89a37eabac90b8 20-May-2011 Behdad Esfahbod <behdad@behdad.org> [Vertical] Fix GPOS y-advance direction
b-ot-layout-gpos-private.hh
67d51ff96154c8909734046601e439dd8f6a86df 20-May-2011 Behdad Esfahbod <behdad@behdad.org> [Vertical] Do fallback origin calculation
b-font.cc
60fbb36096e344e9af79409ce8cfe3f1f7b0d321 20-May-2011 Behdad Esfahbod <behdad@behdad.org> [Vertical] GPOS is always done with horizontal origin
b-font-private.hh
b-font.cc
b-font.h
b-ft.cc
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout.h
b-ot-shape.cc
8b38faeede41e64eb0f6ac2e12ce51dd7138d50a 19-May-2011 Behdad Esfahbod <behdad@behdad.org> More vertical

Starting to get there, but not without yet another round of changes.

I think I know wheere to go now.
b-font.cc
b-font.h
b-ft.cc
b-ot-shape.cc
e609aeb1e24da6b7c812396cddb93ee3c95ef87a 18-May-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] Add --annotate

Currently it only marks glyph origins.
b-view.cc
b8d76dd74e50d295918cc015e9d2a55e2bf6a461 18-May-2011 Behdad Esfahbod <behdad@behdad.org> Vertical: Adjust origin in glyph_extents() and glyph_contour_point()

The base for vertical is almost ready now.
b-font.cc
190981851fe2bb6479b5c72451279f66fe4f6e23 18-May-2011 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-font.cc
b-ft.cc
2c3f51a11c176aa3fc12a9522325efaef2c79d35 18-May-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-font.cc
7e2c85de305be59e1a6afa7d2061e4b7dd00acf7 17-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Vertical support, take 2

I like this API *much* better. Implementation still incomplete, but
horizontal works.
b-font-private.hh
b-font.cc
b-font.h
b-ft.cc
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-shape.cc
744970af4d884cc87ffa645804578fec8df674a9 17-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add support for vertical text

Design not final yet, and in fact I'm going to change it immediately,
but this is an standalone change for itself.
b-font-private.hh
b-font.cc
b-font.h
b-ft.cc
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-shape.cc
b-ot-tag.cc
4053f3f788353448b41e541ee617aafbe1cac366 16-May-2011 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-font.h
56d12e0356bee5a95b870dfbc2100b8caeb5d593 16-May-2011 Behdad Esfahbod <behdad@behdad.org> Remove unnecessary TODO item
b-ft.cc
1883af3796459cafe2d194064403b6b1152c584d 16-May-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] Start work on vertical support
b-view.cc
9aa6f96af5e5940ba5c9596c6ae377fea23c0ec0 16-May-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] No need to allocate an extra glyph item at the end
b-view.cc
1a64f6e19a4b483e278c85e4941107be2f71b0a4 14-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add HB_LANGUAGE_INVALID
b-common.cc
b-common.h
b-ot-tag.cc
b-shape.cc
40b5c2e86c633441040196d158e965ad95d6ad37 14-May-2011 Behdad Esfahbod <behdad@behdad.org> [test/test-ot-tag] Test hb-ot-tag.h, fix many bugs

I'm in awe with how many bugs this test revealed. All fixed.
b-ot-tag.cc
7fc5a30cb4fbe9a4633ab842b0a8cbbcc6f6bd1b 12-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add hb_face_make/is_immutable()
b-font-private.hh
b-font.cc
b-font.h
20c8b908ddf50a9814dfdd9fca595f258273cd4f 12-May-2011 Behdad Esfahbod <behdad@behdad.org> Finish off previous change
b-font.cc
0fd8c2f1be693616f19f2f1526369874763d6cf6 12-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Make get_glyph() callback return a boolean

We need to know whether the glyph exists, so we can fallback to
composing / decomposing. Assuming that glyph==0 means "doesn't exist"
wouldn't work for applications like Pango that want to use different
"doesn't exist" glyph codes for different characters. An explicit
return value fixes that.
b-font.cc
b-font.h
b-ft.cc
b-ot-shape.cc
805af72405a2f653f08de392d7172291ffe8e902 12-May-2011 Behdad Esfahbod <behdad@behdad.org> Rename get_kernings() arguments from first/second_glyph to left/right_glyph

Makes it clear that kerning is in visual order.
b-font.cc
b-font.h
b-ft.cc
df077fadd7828b609bdfe4dbcad52ef2448525c7 12-May-2011 Behdad Esfahbod <behdad@behdad.org> [object] Make object inert during destruction

Such that user_data and other finalizers cannot resurrect object
b-object-private.hh
52df150efeff4cf003cee65f8c91618f1a980bc8 12-May-2011 Behdad Esfahbod <behdad@behdad.org> Fix font subclass chainup

Test passing now.
b-font.cc
7033518f756490e9cf00b96387fee6f2f7fae785 12-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Pass face to get_table()
b-font.cc
b-font.h
b-ft.cc
b46782780690e26a8221e2d63dd224159aebe413 12-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Remove const from font user_data
b-font.cc
b-font.h
b-ft.cc
9a14688e40e926b9453fcb75891f27bff1e45c49 12-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Rename hb_face_create_for_data() to hb_face_create()
b-font.cc
b-font.h
b-ft.cc
est.cc
46d6a21cc8613519e6ce27b1925e29285cccb71d 12-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add hb_ot_layout_substitute_start/finish()
b-ot-layout.cc
b-ot-layout.h
c84d15f52e1183164502d45b476b54f8fe812e0f 12-May-2011 Behdad Esfahbod <behdad@behdad.org> Remove unused hb_set_t
b-private.hh
389a7c9e67549b1a9f7c538965e4647077f8e6ec 12-May-2011 Behdad Esfahbod <behdad@behdad.org> Remove hb_static_threadsafe_set_t
b-common.cc
b-mutex-private.hh
e06d4eda7bbdb3a1be1f1ce8d98b059a0730f14d 12-May-2011 Behdad Esfahbod <behdad@behdad.org> Use constructor/destructor for hb_ot_shape_plan_t
b-ot-shape-private.hh
b-ot-shape.cc
daa446f184fa27c9764ff7f8a2444d47cf34d986 12-May-2011 Behdad Esfahbod <behdad@behdad.org> Fix compile with no mutex available
b-mutex-private.hh
1e56c476c10577fe319fe553c5ced000bd740940 12-May-2011 Behdad Esfahbod <behdad@behdad.org> Free static mutex'es
b-mutex-private.hh
831886a9b4073cfe27f7e1db0e957cbd5913fd31 12-May-2011 Behdad Esfahbod <behdad@behdad.org> Streamline mutex stuff
b-mutex-private.hh
b-private.hh
438c4eee353ddf0de66171d84c6ef9b21cbdf8f6 12-May-2011 Behdad Esfahbod <behdad@behdad.org> Remove unused hb_mutex_trylock()
b-mutex-private.hh
80a6833b032bc63b4e8c3da6489d3767af1168f3 12-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add hb_*_get_empty() for all objects
b-buffer.cc
b-buffer.h
b-font.cc
b-font.h
b-unicode.cc
b-unicode.h
d3b30be378c1dec0259a626d9a408bb9ca1b71ac 12-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add HB_UNTAG()

Useful in C API only.
b-common.h
3cc6e9dcb42551761c3a1a9d3c25b1f1bcdc2419 12-May-2011 Behdad Esfahbod <behdad@behdad.org> Minor
est.cc
4101ca7dbbdf1438fa116fb8cad935501ac7cca8 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Plug more leaks

All good now.
b-blob.cc
b-open-type-private.hh
6a7ac79e26e85f6781186cf708a12825c0857324 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Plug leaks
b-ot-map-private.hh
b-ot-shape-private.hh
b-ot-shape.cc
b-private.hh
7aa12ebdff11a4ffbd04bf9b164586eb0c172e37 11-May-2011 Behdad Esfahbod <behdad@behdad.org> [unicode] Simplify method setting
b-unicode.cc
d5bfd0272130a315d3b5e6cdcf9b7e6395879204 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Minor
akefile.am
6a4e7e1372ef9fde81b84ecc9c4d1f23d97396c1 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Add maxp table

Not used for anything right now. Will use to get num_glyphs in the future.
akefile.am
b-ot-head-private.hh
b-ot-layout.cc
b-ot-maxp-private.hh
a513dbcf73ab1cc39a7c9653034904d0c6cd9fe9 11-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Change signature of get_contour_point and get_kerning ffuncs

get_contour_point now takes glyph id before point_index.

get_kerning now takes a vector to fill-in.
b-font.cc
b-font.h
b-ft.cc
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-shape.cc
63d646fb2933c2765ce526d321a498d0f7fae2f5 11-May-2011 Behdad Esfahbod <behdad@behdad.org> [font] Do user-space conversion when chaining up to parent font
b-font-private.hh
b-font.cc
b6f902a1a9c8b72b5d6a241a14a7bacfaea3a56a 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-font-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
abcfe9b59b4475eb02dd679aac4bc59616713b28 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Remove hb_ot_layout_context_t, simplify code
b-font-private.hh
b-font.cc
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
1ded6d8bbf93b7dabf2b1f620c07bd3236e7a60f 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Make default font-funcs chain-up to the parent
b-font.cc
b-font.h
b9d975b931d6310f25fab5ac280f523cdc27bf94 11-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Pass down closure user_data to font funcs
b-font-private.hh
b-font.cc
b-font.h
b-ft.cc
446df9cdb1fddb51819b731436fca54146d0bb23 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Whitespace
b-unicode.h
686c2d165dfb284b74b78f6b902d04b585dcaef3 11-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Remove font_funcs func getter functions
b-font.cc
b-font.h
defc45be6d75aba4a67fa7814b91b73bad953fe6 11-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add hb_font_create_sub_font() and hb_font_get_parent()

Not quite useful just yet.
b-font-private.hh
b-font.cc
b-font.h
b-unicode.h
11bb8fe7b3925bc9b019ad0c0218a231e581f152 11-May-2011 Behdad Esfahbod <behdad@behdad.org> [font] Fix internal sign of x/y_scale

Should have been done as part of da975419884a535281745f30f4b32fee0bc8a7a1
b-font-private.hh
85e6218e3306165d69ef44277459511d5b54b9ff 11-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Remove broken-by-design hb_font_unset_funcs()
b-font.cc
b-font.h
74f1d896f2479500d65649cf3ec86dd201f0663a 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Add hb_font_make/is_immutable()
b-font-private.hh
b-font.cc
b-font.h
8c7a100a4d0f3a257fb7563cb08ed4356c3af669 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Fix build without mutex
b-mutex-private.hh
19d3035c40e73923bcad709dc5eefe31cb34d681 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Remove duplicate atomic_int implementation
b-mutex-private.hh
45bfa99034512e886d75b1d45a5a649647f4711f 11-May-2011 Behdad Esfahbod <behdad@behdad.org> Fix set implementation to be truly threadsafe even with destroy() callbacks

The test/object test is passing again, instead of deadlocking.
b-common.cc
b-mutex-private.hh
b-object-private.hh
b-private.hh
1c9f8717eb12c37c219333cbb0d123e1d2da4896 07-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Simplify blob API, remove lock
b-blob.cc
b-blob.h
b-font.cc
b-open-type-private.hh
b-ot-layout.cc
a0f337a1cce1788dbf3147b459e7f615acbfe81b 07-May-2011 Behdad Esfahbod <behdad@behdad.org> Remove unused hb_blob_try_writable_inplace()
b-blob.cc
b-blob.h
08611d5194144bbf5d96a1110aeb812db06e0901 06-May-2011 Behdad Esfahbod <behdad@behdad.org> Add note re deadlocks
b-common.cc
b-mutex-private.hh
34fb5521a5fbb6b95ceff4bbac42a62628bc9f31 06-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add hb_language_get_default()

It uses locale information to detect default language. It's used by
hb_shape() whenever language is not set on the buffer.

Not sure how to properly test it in the test suite. Tested by observing
that with DejaVu Sans we select the proper local glyph version for U+431
under Serbian locale. See http://www.pango.org/ScriptGallery
b-common.cc
b-common.h
b-shape.cc
c78f4485587cc1dee07e772c164a13fde9d2859f 06-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add version macros and functions

Step version up to 0.5.0.

Also, fix to pass "make distcheck"
akefile.am
heck-c-linkage-decls.sh
b-common.cc
b-version.h.in
b.h
3935af1c0d0f53a5fd6054e1ee219f3adda42dca 05-May-2011 Behdad Esfahbod <behdad@behdad.org> [buffer] Remove wrong optimization

While the cluster fields of the glyph string are usually sorted, they
wouldn't be in special cases (for example for non-native direction).
Blindly using bsearch is plain wrong. If we want to reintroduce this
optimization we have to make sure we know the buffer clusters are
monotonic and in which direction. Not sure it's worth it though.
b-buffer.cc
46df6828513d56cd60467e36cbe45aa06648f488 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Make user_data access threadsafe

For now, by taking a global user_data mutex.
b-common.cc
b-object-private.hh
218e67b9eefa26e2e4fe43f99a84d082b185b1b0 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Shrink code
b-common.cc
b-object-private.hh
b8d6183ebc4697a434776cf2aec7857d63a7d881 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Use threadsafe set implementation for hb_language lookups

Note that the static variable has to be a global static, as gcc
implements local statics differently and that would require linking
to libstdc++, which we don't want.
b-common.cc
d37486d87b65c5abaaa2998fa5c9e48eedde0933 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Add hb_threadsafe_set_t
b-mutex-private.hh
b-private.hh
b45f32ee4e599c515ce93e44315283d236b073bb 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Use hb_array_t for hb_language_t mapping
b-common.cc
b-object-private.hh
b-private.hh
21d2c92fdf7307c7117f8948021f0dd7d5a5d2a3 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Move code around
b-object-private.hh
265ac614ea6d26041c7d64739098b76a82bbc4f4 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Replace fixed-size lookup_maps array with hb_array_t
b-ot-map-private.hh
b-ot-map.cc
b-private.hh
6843569d2c70c1771ce964e3d1a4cf91e14e7687 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Replace fixed-size feature_maps array with hb_array_t
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape.cc
b-private.hh
44b0a4d2fc62689fc56ef57f412b4bb1e439a614 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Replace fixed-size feature_infos array with hb_array_t
b-ot-map-private.hh
b-ot-map.cc
b-private.hh
b214ec3ac0ce6568e9226fd09661d52de11dca96 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-private.hh
811482bd650fb5652a9835471ae8ecf0fb185611 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Replace hb_map_t with hb_set_t which is more intuitive and flexible
b-object-private.hh
b-private.hh
478a42536ff7ab777a7774fbfdb9c5e51334a14e 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Make array/map implementation more generic
b-object-private.hh
b-private.hh
b81bd42951e1ce1569b29168015d3c5a2dacf773 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Make hb_mutex_*() macros take a pointer

More intuitive.
b-blob.cc
b-mutex-private.hh
a4b1900913c91aa9db74c4fdfa7c691a5cdf02a8 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Add hb_static_mutex_t
b-mutex-private.hh
56eb5ad6f94c32189ad219438db9a18683ca6846 05-May-2011 Behdad Esfahbod <behdad@behdad.org> Move code around

Mutex (and Windows.h by extension) are fairly isolated now.
akefile.am
b-blob-private.hh
b-blob.cc
b-font-private.hh
b-font.cc
b-mutex-private.hh
b-object-private.hh
b-unicode.cc
d292885893395dcb345dce1010e5c8628a715ef4 03-May-2011 Behdad Esfahbod <behdad@behdad.org> [ft] Fix font->face handling

Don't use _cached()
b-ft.cc
2000179487b49e0d504ec127450dc6fcb5568cec 03-May-2011 Behdad Esfahbod <behdad@behdad.org> Move Win32 thread-safety stuff to hb-object-private.h

The Win32 definitions for LONG, ULONG, etc conflicts with
hb-open-type.h. Avoid that by making sure hb-object-private.h
and hb-open-type.h are not included in the same compilation unit.
b-common.cc
b-object-private.hh
b-private.hh
266b34418c9bbe23ccaf29cb354b58c465fa3b22 03-May-2011 Behdad Esfahbod <behdad@behdad.org> Refactor to keep hb-object-private.h and hb-open-type.h separate

Needed to be able to include <Windows.h> from hb-object-private.h.
b-font.cc
b-ot-layout-private.hh
b-ot-layout.cc
d4141a44b97377a65e6d2a3e03b3709307af38c1 03-May-2011 Behdad Esfahbod <behdad@behdad.org> [blob] Implement sub_blob() in terms of create()

Fixes problem with uninitialized sub_blob->mutex among other things.

Reported by Bradley Grainger.
b-blob.cc
fc52e9e44c2fe84d63f18dc0098720830f0b467d 03-May-2011 Behdad Esfahbod <behdad@behdad.org> Implement win32 thread-safety stuff

Patch from Bradley Grainger.
b-common.cc
b-private.hh
f55272ecde857c116f97a3195f3abd1df3be4b86 03-May-2011 Behdad Esfahbod <behdad@behdad.org> Add hb_mutex_free() and use it

Based on patch by Bradley Grainger.
b-blob.cc
b-private.hh
8d5186484b28b5f629b523e067d7d5166eec557a 03-May-2011 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-private.hh
72657e4ce757dcb055a8db7291b68f96f0d34bfb 03-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Make hb_font_create() take a face and reference it
b-font-private.hh
b-font.cc
b-font.h
b-ft.cc
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-map-private.hh
b-ot-shape.cc
b-ot-shape.h
b-shape.cc
b-shape.h
b-view.cc
cec6611c5ce84d69d910bf7e9ec1fdd594398f9f 03-May-2011 Behdad Esfahbod <behdad@behdad.org> Protect NULL in a couple places
b-font.cc
5a5030366e40baa8d96ca67b47a52ad5af143157 03-May-2011 Behdad Esfahbod <behdad@behdad.org> Fix bug in array growth implementation

With this, test/object is now passing. Yay!
b-private.hh
16123e10700436df18d14e37371bb621b31ea5d1 03-May-2011 Behdad Esfahbod <behdad@behdad.org> Fix bug in map implementation
b-private.hh
1cd5969f253528b1fc05a06c7a9f222baa29f68d 03-May-2011 Behdad Esfahbod <behdad@behdad.org> [object] Fix bug in get_user_data() implementation
b-object-private.hh
4911062d5be0d937ee8f1a70cc93e05d162f45b3 03-May-2011 Behdad Esfahbod <behdad@behdad.org> [API] Rename hb_blob_create_empty() to hb_blob_get_empty()
b-blob.cc
b-blob.h
b-font.cc
b-open-type-private.hh
1ab1d3e38cdf8e7331efdbc4ef0c02ee9d5c8c04 03-May-2011 Behdad Esfahbod <behdad@behdad.org> [face] Return nil face if blob is inert
b-font.cc
e87867cb88280e3f3a38d829e359cb686168b2cb 03-May-2011 Behdad Esfahbod <behdad@behdad.org> [buffer] Fail in _create() if we cannot pre-allocate the requested size
b-buffer.cc
c784c67a28f5b92d396eaa9529d57ef91a5cb9ac 02-May-2011 Behdad Esfahbod <behdad@behdad.org> [unicode] Make _get_parent() return _nil object instead of NULL
b-unicode.cc
03034acb8a9fdd33135bc3775a1f932da9ebdd42 02-May-2011 Behdad Esfahbod <behdad@behdad.org> [icu] Make sure we return script UNKNOWN instead of INVALID
b-icu.cc
d02985ec5a24c659a0a133cc6bc103f1d76bcb29 02-May-2011 Behdad Esfahbod <behdad@behdad.org> ISO 15924 fixes

Update to http://unicode.org/iso15924

Fixes some of the test failures in test-unicode with ICU. Still
one more to fix before the test passes.
b-common.cc
b-common.h
b-ot-tag.cc
6af9cff5e17e82100b435c8d21aed0765296d58d 29-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [test/unicode] Use text fixture instead of static variables
b-unicode-private.hh
b-unicode.h
243673d601588a6f704ceafbff5dd5cdf66c47b7 29-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [test/buffer] Add more extensive UTF-8 test data from glib
b-buffer.cc
c7ffe2ad5f6e97e26d14e2cc0d4098af8f5f36d0 28-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API Remove hb_font_funcs_copy()

Will be adding font_funcs subclassing instead.
b-font.cc
b-font.h
30f34d08d445722320db711c3ddf41e66225752c 28-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [TODO] Remove finished items
b-font.h
080a0eb7d82d7195be72c16ece6e0a3ffed636b6 28-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Add _hb_unsigned_int_mul_overflows
b-buffer.cc
b-open-type-private.hh
b-ot-layout-gsub-private.hh
b-private.hh
3264042873fd639f3ef8ff0acfad777a0a9f3355 28-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [test/buffer] Test pre_allocate() and allocation_successful()
b-buffer.cc
123aa04f7b3241d6e43de2d472c4a1cbdb250ac7 28-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Fix possible but improbable overflow in hb_array_t
b-private.hh
e0db4b868f9fdd8e680890f87dd4e13a1c27b7a1 28-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [buffer] More error handling

Should be all set now.
b-buffer-private.hh
b-buffer.cc
5fa849b77d49da2212825ebb1bea9145713b8449 28-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add _set/get_user_data() for all objects
b-blob.cc
b-blob.h
b-buffer.cc
b-buffer.h
b-font.cc
b-font.h
b-unicode.cc
b-unicode.h
852e08ec8fbfbce1d50e571d0bb0b52ef4d4cc58 28-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Move code around
b-object-private.hh
b-private.hh
29c67d3f70b081766a6c01353980f457f38aeb12 28-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Add initial implementation of user_data to objects
b-common.h
b-object-private.hh
47e71d9661946a4ffb96026bf1d697d788414ab5 27-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [object] Remove unnecessary use of macros
b-blob.cc
b-buffer.cc
b-font.cc
b-object-private.hh
b-unicode.cc
8be1420f8fd0e5c53282245d6830efbee5c7409d 27-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [blob] Use HB_FUNC instead of __FUNCTION__
b-blob.cc
ae008b90cfc2028e878100f78b21d70f923a6044 27-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [object] Add tracing support back in
b-object-private.hh
39a840ae65327b173e6eb1bb291e235a8305d7a1 27-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add hb_direction_from/to_string()

And hb-view --direction argument.
b-common.cc
b-common.h
b-view.cc
f1425a549fef360c3750532de23604cd318999d8 27-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Rename hb-view.c and test.c to .cc files
akefile.am
b-view.c
b-view.cc
est.c
est.cc
65e0063eae2f3adb25315b8bd7b0e7757aa960f3 27-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Make buffer size growth start from 32 instead of 8
b-buffer.cc
d4bee9f813bb299b1c4aab7c33d588be2a7d354b 27-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add hb_unicode_funcs_get_default()
b-buffer.cc
b-glib.cc
b-icu.cc
b-unicode-private.hh
b-unicode.cc
b-unicode.h
b-view.c
153142dac8dd9abaf164bb88af07c600c17fc3a1 27-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Replace simple macros with inline functions for better type safety

Now that we use C++ for all source code, lets benefit from it!

The hb_be_int16/32_get/put/eq() macros grow code size if replaced with
inline functions, so leave them as is.
b-open-type-private.hh
b-private.hh
40a9b8154f929947f4693bf90c64301afa407c3f 27-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Add TODO item
b-object-private.hh
ebdc83467c31574daa118fc18cd2ef2dc819b503 27-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Don't return in void function

Would have been nice if gcc had warned...
b-private.hh
ec6f9c2fd03a49d1e91cbaefa5bdbbfb35dff92e 22-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Further simplify object handling
b-object-private.hh
fca368c4682624346a0aaee690e1ad6ed4c0b337 22-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Add hb_object_header_t which is the common part of all objects

Makes way for adding arbitrary user_data support.
b-blob-private.hh
b-blob.cc
b-buffer-private.hh
b-buffer.cc
b-font-private.hh
b-font.cc
b-ft.cc
b-glib.cc
b-icu.cc
b-object-private.hh
b-private.hh
b-unicode-private.hh
b-unicode.cc
a9f24c802956d57180d71b83e96a0fb81197df4a 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Move hb_reference_count_t to hb-private.h
b-object-private.hh
b-private.hh
2409d5f8d7dd8b535ce5ea29e933f7db27d33793 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Update Copyright headers
b-blob-private.hh
b-blob.cc
b-blob.h
b-buffer-private.hh
b-buffer.cc
b-buffer.h
b-common.cc
b-common.h
b-font-private.hh
b-font.cc
b-font.h
b-ft.cc
b-ft.h
b-glib.cc
b-glib.h
b-icu.cc
b-icu.h
b-object-private.hh
b-open-file-private.hh
b-open-type-private.hh
b-ot-head-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-arabic-table.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-private.hh
b-ot-shape-private.hh
b-ot-shape.cc
b-ot-shape.h
b-ot-tag.cc
b-ot-tag.h
b-ot.h
b-private.hh
b-shape.cc
b-shape.h
b-unicode-private.hh
b-unicode.cc
b-unicode.h
b-view.c
b.h
ain.cc
est.c
08da7a3841ca7dfcb627314cae1c3a668b9c7236 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] Accept numbers in feature tag name

Reported by Adam Twardoch.
b-view.c
24229eb13268a422efffbcb28a094b726824c7f0 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Remove obsolete comment

Talking to Ryan Lortie, he thinks my comment doesn't make sense.

So I'm making the getter const. Note that g_atomic_int_get()
casts that away itself, so we don't need to worry about that
(which kinda makes me uncomfortable actually).
b-object-private.hh
dcb7026f33cbcdf60e9b7fcdd44c64cc08702c74 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Add ASSERT_STATIC_EXPR macro

Unused right now.
b-private.hh
3e8bdbf9414291da5cf61213d5f4275c1ae23ae5 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Cleanup hb_refrence_count_t
b-object-private.hh
b-private.hh
783a7d69696bf0b1502ec9c1495e482e491c78e0 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [TODO] Remove finished items
b-ft.cc
da975419884a535281745f30f4b32fee0bc8a7a1 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Allow negative font x_scale/y_scale

I was reconsidering whether y should grow down, since all three/four
times I've used this API I was tricked and got that wrong in my use.
So I was very inclined to make y grow down instead of up. However,
considering that the font space has y up and it would be very confusing
for callbacks to work against that, I decided that what I really want
is for the user to be able to set y_scale to a negative number to imply
that user-space y grows down.

Changing x_scale/y_scale from unsigned int to int allows that, and I've
made pango to use that instead of negating glyph y_offset later. hb-ft
however still has y group up. I *guess* that's how FreeType works?
I'm not sure, FreeType docs don't make this clear...

I'm happy with the resolution :-).
b-font.cc
b-font.h
b-ot-layout-common-private.hh
b-ot-layout-private.hh
4d559cddbb3b3a5c12c5167eba69598618a9f283 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [icu] Remove big script switch(), rely on reverse-lookup
b-icu.cc
d18431b4cd8c1b14523733cd60a62b862f5b471f 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Move hb_reference_count_t from macros to inline methods
b-object-private.hh
c57d454accff66e5f2c58006e8fb40bc020b6182 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Rename all private sources and headers to C++ files

So we can liberally use the simple features of C++ that parts of the
codebase is already using.
akefile.am
b-blob-private.h
b-blob-private.hh
b-blob.cc
b-buffer-private.hh
b-common.c
b-common.cc
b-font-private.h
b-font-private.hh
b-font.cc
b-ft.c
b-ft.cc
b-glib.cc
b-icu.cc
b-object-private.h
b-object-private.hh
b-open-type-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-private.hh
b-ot-shape-complex-arabic-table.h
b-ot-shape-complex-arabic-table.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-private.hh
b-ot-shape-private.hh
b-ot-tag.c
b-ot-tag.cc
b-private.h
b-private.hh
b-shape.cc
b-unicode-private.hh
b-unicode.cc
b-view.c
f19f4f9b0965ad7473a0f3a1ffcdbf16930e35d4 21-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Rename hb-blob.c to hb-blob.cc in preparation of more changes
akefile.am
b-blob.c
b-blob.cc
9417c1c0d2b005eadf0c087ca695121a6200d0f7 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Make hb_face_reference_table() return empty blob instead of NULL

The idea here is that:

- Like pretty much all other API in harfbuzz, user does not have to
check for NULL.

- In any caller code, the case of missing table should be handled
exactly the same way that a too-short table is handled. Turning
a non-existent talbe into a table of size 0 makes the user code
safer.
b-font.cc
b-open-type-private.hh
c035812feb0d385a9e8c334631738e4915912c71 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Rename hb_face_get_table() to hb_face_reference_table()

That correctly reflects the reference ownership transfer happening.
b-font.cc
b-font.h
b-ot-layout.cc
b-shape.cc
2d7b61a4b0ed212ca414b3281c2eae3e3db19c13 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [TODO] Remove done items
b-ft.h
af02933739e03a156b9f7761fd7a63e2a02d0df1 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Remove hb_*_get_reference_count()

This was a bizzare piece of API that I inherited from cairo. It has
been wrong adding them to cairo in the first place. Remove them before
someone uses them!
b-blob.c
b-blob.h
b-buffer.cc
b-buffer.h
b-font.cc
b-font.h
b-object-private.h
b-unicode.cc
b-unicode.h
440a76b630a36a7336c93e8b05d988c6407b085e 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [OT] Fix script to ot-script-tag conversion
b-ot-tag.c
a3036a3e97b14c8eb1df208aed944207f9b6cc0b 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-view.c
5668189c12c264e8d2caf0d12dac918363ef6f80 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] font: move user_data before destroy()

This is the common convention for language binding tools.
b-font-private.h
b-font.cc
b-font.h
b-ft.c
e5847f75fb7bd25c5db6061d8e20d61fa469f9fe 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] blob: move user_data before destroy()

This is the common convention for language binding tools.
b-blob-private.h
b-blob.c
b-blob.h
f144a8ea840c6452c1fece2fd988b42a8ea7c5a6 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [icu] Add two-way script conversion functions

Also optimizes the common-direction script lookup.
b-common.c
b-icu.cc
b-icu.h
0809aadd4bbd5d0f256407def7cc10b79772a824 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [glib] Add two-way script conversion functions

Also optimizes the common-direction script lookup to be an array lookup.
b-glib.cc
b-glib.h
5c8c1b680c4fa23c8574b9aebd21113e276f57a3 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Remove verbose comments
b-glib.cc
b-icu.cc
fb194b8794898f51eb596fa4092c26606889d376 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> unicode: Cleanup implementation
akefile.am
b-buffer-private.hh
b-glib.c
b-glib.cc
b-icu.c
b-icu.cc
b-ot-shape.cc
b-shape.cc
b-unicode-private.h
b-unicode-private.hh
b-unicode.c
b-unicode.cc
b-unicode.h
ecfb773829a5d98a4f5456a992f3e5ecd6731435 20-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-unicode.h
2fd0c577e322ccbf762927bc4600b3ea31db4c80 20-Apr-2011 Ryan Lortie <desrt@desrt.ca> [API] unicode: rework virtual functions for subclassing

Unicode data providers can now be subclassed, including support for
chain-up. The interface should now be nicely bindable, as well.

Also fix glib unicode funcs that where broken after hb_script_t
changes. Nicely caught by the test-unicode.c added in this commit.
b-glib.c
b-icu.c
b-ot-shape.cc
b-shape.cc
b-unicode-private.h
b-unicode.c
b-unicode.h
f85faee9b3cb841ea977403945e2c877ab32b97a 19-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Rename hb_buffer_add_glyph() to hb_buffer_add()
b-buffer.cc
b-buffer.h
aab0de50e23727b69fa8c3d4e05c50c114c62835 19-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Add hb_buffer_allocation_successful()

Returns the error status of the buffer.
b-buffer.cc
b-buffer.h
02a534b23f2d1e7475109563b9f61221ed020e8b 16-Apr-2011 Ryan Lortie <desrt@desrt.ca> [API] Rename hb_buffer_ensure() to hb_buffer_pre_allocate()

The new name is self-documenting.
b-buffer.cc
b-buffer.h
70566befc59cfa8b9c43ac682749c40ea783b1dd 16-Apr-2011 Ryan Lortie <desrt@desrt.ca> [API} hb_buffer_get_glyph_{infos,positions}: Add length out parameter

Return the length, whenever we return an array. Makes it easier on the
language bindings.
b-buffer.cc
b-buffer.h
b-ot-layout-gpos-private.hh
b-view.c
62879eebd9965179af8602ba29ac0a64a739b757 19-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Use ISO 15924 tags for hb_script_t

This simplifies the code, reduces static data, and makes the design
more extensible to future additions of new scripts.
b-common.c
b-common.h
b-ot-map.cc
b-ot-shape-complex-private.hh
b-ot-tag.c
b-ot-tag.h
b-shape.cc
c0af193c8e25c4f11d23b8893e9ce1c2d2615bb2 16-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Change buffer default properties to invalid

This includes HB_DIRECTION_INVALID and HB_SCRIPT_INVALID.

The INVALID will cause a "guess whatever from the text" in hb_shape().
While it's not ideal, it works better than the previous defaults at
least (HB_DIRECTION_LTR and HB_SCRIPT_COMMON).
b-buffer-private.hh
b-buffer.cc
b-view.c
00bec2c969555e76c3f84650a1d3c45308e585ad 16-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Move enum types to hb-common.h
b-common.c
b-common.h
b-unicode.c
b-unicode.h
b54cd07b2623b68171e00179a9dc3ecbea7aa6a1 16-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Mark internal buffer variables private
b-buffer.h
0e8d35c0932ddc20ebf430f2fd82c087da698954 16-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Add hb_script_from_string()
b-unicode.c
b-unicode.h
b-view.c
8f0d7e0c3fd4b05c43ac449be4f374dc2dc56127 16-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Remove hb_buffer_clear_positions(), add hb_ot_layout_position_start()
b-buffer-private.hh
b-buffer.cc
b-buffer.h
b-ot-layout.cc
b-ot-layout.h
b-ot-shape.cc
2fc56edff6d64f190271454ccb1b5fd347d4f172 16-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [API] Remove hb_buffer_clear()

One should use hb_buffer_reset() really.
b-buffer.cc
b-buffer.h
5814dfa3f5aa41bc3df06b78980d57d7bea0ba58 15-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-ot-shape.cc
b-ot-shape.h
b-shape.cc
b-shape.h
3cbdf70e0a92f1c24e16c0d4dcfbec4ac59a77a3 15-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Make hb_language_t typesafe
b-common.c
b-common.h
c910bec863215f918c659f58debbc7fe5264d7b6 13-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Add hb_buffer_reset() and hb_buffer_set_length()
b-buffer.cc
b-buffer.h
69ea23cb5d47dd1cfd3129f68375021ef79bf63b 13-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Minor
b-buffer.cc
8e4bb3cacc269ed32187aaaeaa166c64f41a0418 11-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Fold hb-language.[ch] into hb-common.[ch]
akefile.am
b-buffer.h
b-common.c
b-common.h
b-language.c
b-language.h
b-ot-tag.h
b.h
316b7a1afb84a5dfeaed886a585669b4d549c9b7 11-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Make hb_language_from_string("") return NULL language
b-language.c
99b74760a4cddc798ab44b5ca897486bbb9c76d6 11-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Rename hb_category_t to hb_unicode_general_category_t
b-glib.c
b-icu.c
b-ot-shape-complex-arabic.cc
b-ot-shape-private.hh
b-ot-shape.cc
b-unicode.c
b-unicode.h
4188096a7722f09ffa9319986c0286071da10a27 11-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Make HB_TAG_CHAR4 private

It's just sugar.
b-common.h
b-private.h
7ff7401c9237cda661869c1cb196d685706ac4e9 11-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Make hb_tag_from_string(NULL) return HB_TAG_NONE
b-common.c
db5227c40e5c35fe2ffb750f32b639cb44424a1d 11-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Move macros around
b-ot-tag.c
b-private.h
07233581c9d953708d3c020907c42b8b89472b89 11-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Rename HB_TAG_STR() to HB_TAG_CHAR4()

The problem with HB_TAG_STR() was that it expected a string of size 4
exactly, and unlike hb_tag_from_string() it doesn't pad the tag with
space characters. So, the new name is more appropriate.
b-common.c
b-common.h
b-ot-tag.c
d77b76200efbaa0611691920f9f2018b1e8be340 11-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Add few more paratheses to the HB_TAG macro

Never hurts.
b-common.h
b13640de6992de9ee9d07e3581c33b8181b70ff9 11-Apr-2011 Behdad Esfahbod <behdad@behdad.org> A few more ASSERTs
b-private.h
ae9eeaff9300f3bb7bed588c5478e8e5461b3df0 11-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Remove warning message from public header file

Since we now assert thos in hb-private.h, the int types cannot be wrong.
(Except for when someone else includes hb-common.h in a very broken
configuration, but that's not our problem!)

Plus, we don't use inline in the public headers, so remove that too.
b-common.h
b-private.h
6fd5364bdc3a2b459175377e9e16c86cff054232 11-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Assert int types
b-private.h
a71b9c8579d73aea4549f12524bbc2e89f43b5c5 06-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Disable 'cswh' by default except for Arabic shaper

That better matches OpenType spec. Note that we enable it for all
Arabic-shaper scripts. Ie. we enable it by default for Syriac too,
but the SyriacOT spec does not require it. I think this is a more
useful compromise than special-casing for Arabic script alone.
b-ot-shape-complex-arabic.cc
b-ot-shape.cc
cab6f65bba560ac1651d9152f1ecf12eb88eca74 04-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] setlocale (LC_ALL, "")

For now we don't use anything from the locale, but we should default
to using $LANG, etc, if --language is not specified. Right?
b-view.c
fb9ca1bfabde7da0c274e7a1bd12bffaf7949c18 04-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] Rewrite --features parsing, with range support

The --features parsing handles errors now. More importantly, it
allos limiting individual features to specific byte ranges. The
format is Python-esque. Here is how it all works:

Syntax: Value: Start: End:

Setting value:
"kern" 1 0 ∞ # Turn feature on
"+kern" 1 0 ∞ # Turn feature off
"-kern" 0 0 ∞ # Turn feature off
"kern=0" 0 0 ∞ # Turn feature off
"kern=1" 1 0 ∞ # Turn feature on
"kern=2" 2 0 ∞ # Choose 2nd alternate

Setting index:
"kern[]" 1 0 ∞ # Turn feature on
"kern[:]" 1 0 ∞ # Turn feature on
"kern[5:]" 1 5 ∞ # Turn feature on, partial
"kern[:5]" 1 0 5 # Turn feature on, partial
"kern[3:5]" 1 3 5 # Turn feature on, range
"kern[3]" 1 3 3+1 # Turn feature on, single char

Mixing it all:

"kern[3:5]=0" 1 3 5 # Turn feature off for range
b-view.c
ccc6745afaa68ce7497a6cd02ce85986d3c863d0 04-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] Use cached hb-ft face creation

Avoids recreating the face the second time we call draw().
b-view.c
1b4a2cc095d165dc573e0235f00fbbf2a5d3c2c5 04-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] Add --debug

Frees all allocated memory before exiting. Useful for valgrind run.
b-view.c
b2da26d1e32a012f7feaad7c7cced61e4fb269f1 01-Apr-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] Support --features

Accepts values like:

--features="-mkmk,aalt=2,calt=1,+cswh"

A minus sign means "=0", a plus sign means "=1". Default is "=1".
A minus sign overrides an explicit value.
b-view.c
f48ff19b629070d13cee3c0eeeb06c98992f93c6 01-Apr-2011 Behdad Esfahbod <behdad@behdad.org> Sort options for clarity
b-view.c
5d91c3d547f78163b36aa7436d4388a836cca94a 16-Mar-2011 Behdad Esfahbod <behdad@behdad.org> Add script to/from ISO 15924 tag support

Also adds --script support to hb-view.

If a script tag is not known to us, we pass the ISO 15924 tag around.
Right now, the OT layer ignores that, but we can fix it to blindly
convert that to an OT script tag.
b-ot-tag.c
b-unicode.c
b-unicode.h
b-view.c
3286fc0e9adc3f2874c9409e7fdb09e4d2b7dda1 16-Mar-2011 Behdad Esfahbod <behdad@behdad.org> Let hb_shape() guess script and direction...

- Rename HB_SCRIPT_INVALID_CODE to HB_SCRIPT_INVALID

- Add HB_DIRECTION_INVALID

- Make hb_script_get_horizontal_direction() public

- Make hb_shape() guess script from buffer text (first non-common
non-inherit script) if buffer script is set to HB_SCRIPT_INVALID (this
is NOT the default.)

- Make hb_shape() guess direction from buffer script if buffer direction
is set to HB_DIRECTION_INVALID (this is NOT the default.)

- Make hb-view.c set INVALID script and direction on the buffer.

The above changes are meant to make hb-view fairly useful for uni-script
uni-direction text. The guessing behavior however is NOT the default of
hb_shape() and must be asked for explicitly. This is intended, because
the guess is not a suitable substitute to full-fledged bidi and script
segmentation. It's just a testing tool.
b-common.h
b-icu.c
b-ot-shape.cc
b-shape.cc
b-unicode-private.h
b-unicode.c
b-unicode.h
b-view.c
b7b29684df67af7280b74ca4cf18f02ad6521bdc 02-Mar-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] Handle write_to_png errors
b-view.c
c2cb98c8185c5560cfd04de7ee7c64c9496b986c 02-Mar-2011 Behdad Esfahbod <behdad@behdad.org> [hb-view] Link with -lm
akefile.am
b5dd44e24669cd35affcd92788d39ff56cac94db 28-Feb-2011 Behdad Esfahbod <behdad@behdad.org> Fix possible overflow
b-buffer.cc
a4b781e93a0bee0549611e129b3564d9804d9090 23-Feb-2011 Behdad Esfahbod <behdad@behdad.org> Default background color shall either be white or transparent

Definitely not black!
b-view.c
5353bf439c150492708ef9337078cfd73b83627b 23-Feb-2011 Behdad Esfahbod <behdad@behdad.org> Add initial hb-view tool

Currently doesn't handle script or direction.
akefile.am
b-view.c
82438c6ad5f60b6afc75c48cef72e18bef532468 16-Feb-2011 Bradley Grainger <bgrainger@logos.com> Fix #pragma message for MSVC.

__LOC__ was renamed to _HB__LOC__ in cd7555 but the corresponding
change wasn't made in hb-private.h.
b-private.h
ba9ab8d6d9c863662c4b44ace4a4d89e29e592f2 10-Jan-2011 Behdad Esfahbod <behdad@behdad.org> Fix language extension matching
b-ot-tag.c
7bbe14bed8a886ea5b293c927c4bf937cbfc6f51 10-Jan-2011 Behdad Esfahbod <behdad@behdad.org> Fix 'make distcheck'
akefile.am
cc1a8a938b4c13e76b58825a9e1951c4134e634a 06-Jan-2011 Behdad Esfahbod <behdad@behdad.org> Fix ChanContext backtrack matching with GPOS

Reported on mailing list by Keith Stribley and Khaled Hosny.
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsubgpos-private.hh
1c3183027fe823cd673866ba29d169b69f8efba1 06-Jan-2011 Behdad Esfahbod <behdad@behdad.org> Remove unused realloc

We always allocate and grow str and pos together.
b-buffer.cc
756f794a1fce701092345a3f9afae039583fb55b 27-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Remove Graphite backend

It was unmaintained and the code has to be replaced to use the new
grphite-ng code base.
akefile.am
b-graphite.cc
b-graphite.h
f3d9d9879364609502d9d3a3a9f4647adb167d78 22-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Docs
b-unicode.h
d86a5b3c5752abcc791724035ba4115958e6b5e2 22-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Bug 32274 - classic mongolian shaper

Add support for classic Mongolian script to the Arabic shaper.

Still work to be done around U+180E MONGOLIAN VOWEL SEPARATOR as it
should not be included in the final glyph stream the same way that
ZWNJ, etc should not appear in the final glyph stream.

But the joining part should be done.

There remains the question of how should the U+18A9 MONGOLIAN LETTER ALI
GALI DAGALGA be handled as it has General Category NSM but a letter
nonetheless. For now, our generic logic makes this a joining T instead
of joining D as other Mongolian letters are.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-private.hh
b0e7378fa9a4fc6fc74d9b3c27d927602eaacc5b 21-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Reroute Mandaic shaping through the Arabic shaper

We added Mandaic joining data to the Arabic shaper a while ago, but
were not actually using the Arabic shaper for Mandaic. Fixed.
b-ot-shape-complex-private.hh
88e7f37488e4e8590619d815b975232a0c9d2ea0 21-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Annotate the Arabic joining table with block information
en-arabic-joining-table.py
b-ot-shape-complex-arabic-table.h
1482a39e56cd4151874e5c073540274349240a87 18-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Rename remaining metrics uses to extents
b-font.h
22c537657cee1f47a4056a21e2cddfcbe6ab1c01 15-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Rename TableDirectory to TableRecord as per OpenType 1.6
b-open-file-private.hh
33e8b86197239e667a887709104357bdc6566b7c 13-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Update 'head' table to OpenType 1.6
b-ot-head-private.hh
b7683335146bfe3a74d9419db92cd7a8019a9c10 13-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Disallow ligature substitutions replacing one glyph
b-ot-layout-gsub-private.hh
7eb875118dc31e9fb0e23c45985396a8bfe977e3 13-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Mozilla Bug 618592 - freeze on typekit

Fix apply_lookup() for zero-input broken fonts.
b-ot-layout-gsubgpos-private.hh
bbbbe80ec9bc45c5b685bc09c8f993e98496555c 07-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Rename original_direction to target_direction
b-ot-shape-private.hh
b-ot-shape.cc
ee8aaf976a6eb42be49b63b4c51c7a0a338e0298 07-Dec-2010 Behdad Esfahbod <behdad@behdad.org> Fix arabic shaping of LTR text

We should ensure-direction before doing any complex work. The only
exception is mirroring that needs to see the original / final direction,
not the native. Handle that.
b-ot-shape.cc
4f9e4a40bc248aeb1364ed6f4aa7f392aa364497 22-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Fix failing checks
b-ot-shape-complex-arabic-table.h
9da26d6669e7f3b91ba37e71f6f8a6e2ea806688 22-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Remove email address from Copyright headers
b-ft.c
b-icu.c
a45f00019242734fca742adeb2ed507305baeda6 18-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Clarify copyright notice
b-graphite.cc
b-object-private.h
0884a8d9cd576f116400b3f7c8815e747c315d5e 17-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Move generated table to its own file
akefile.am
b-ot-shape-complex-arabic-table.h
b-ot-shape-complex-arabic.cc
14d784116b08685425e4ddcb1c1f813dbe2b2986 17-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Update Arabic joining table to include Mandaic

Mandaic was added to Unicode 6.0, but the joining data was not updated.
Draft ArabicShaping.txt from 6.1 includes the joining data for Mandaic.
Use that.
en-arabic-joining-table.py
b-ot-shape-complex-arabic.cc
43bf2f7f1ec427c431e2ee2fd1a9345e7d5c9718 17-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Add OpenType script tags for Unicode 5.2 and Unicode 6.0 scripts

Based on tags proposed by Microsoft for inclusion in OpenType.
b-ot-tag.c
afab01cf7caca79cf6dfabe6827d1703be1a74f7 17-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Add Unicode 6.0 scripts
b-icu.c
b-ot-tag.c
b-unicode.c
b-unicode.h
f234b68d18d956f7e4eb4bf58d6dc408d9e5146e 17-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Change HB_SCRIPT_MEITEI_MAYEK to HB_SCRIPT_MEETEI_MAYEK

The new name matches the Unicode name. Reported by Jonathan Kew.
b-icu.c
b-ot-tag.c
b-unicode.h
300cb41417d40473268e3b4089bed24e9e77a753 17-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Add XXX marks
b-ot-layout-gsubgpos-private.hh
3a852ae7fe6edfaadd75625d27515a3689503395 03-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Save general category and combining class in the buffer for reuse
b-ot-layout-private.hh
b-ot-shape-complex-arabic.cc
b-ot-shape-private.hh
b-ot-shape.cc
a5ab682b9ba8224fc132624f93e6fef9973a68ca 03-Nov-2010 Behdad Esfahbod <behdad@behdad.org> More "unreached code" warning fixes

Ugly :(.
b-blob.c
4e22c7e94102c9f00c32b8cb6aaa832f83909149 03-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Add comment
b-ot-layout-common-private.hh
0342034d1cb577d34b42f7204da7fb930c12a464 03-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Pedantic
b-ot-layout-gpos-private.hh
4a2d844c2f12dc1b858ab4ddd737ded7c0852221 03-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Minor code shuffling
b-ot-layout-private.hh
b-ot-layout.cc
11e3ec444a85fc72541823c2e98cc92c4ceb19af 03-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Fix a few more "unreachable code" warnings
b-blob.c
b-object-private.h
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.h
2304856340782c72cb30873f7907191dc359e921 03-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Remove another couple lines of dead code
b-ot-layout-gsubgpos-private.hh
b8783c85ac5dd9ea8f5a66eacb92dfcfbf649a6d 03-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Fix unreachable-code warning
b-ot-layout-gpos-private.hh
c2709119c8c610a0d4d71884a7d4fdba7cb65b72 28-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Move things around some more
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
194d4566ec054db03fa31d369a9f1c6cf4941e74 28-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Move buffer var allocation local
b-ot-layout-gpos-private.hh
b-ot-layout-private.hh
1e7c1fcbc33599faefc32d4a28e5d8506d2c56fa 28-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Move code around
b-ot-layout-gpos-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-shape.cc
bf94b3ad22b2fe4730d4e64d673c63154fc5b5fe 28-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Move some more code around
b-ot-layout-gdef-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
6334658fe79d6acfb46a2a147721b78f92510ebb 28-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Simplify mark skipping logic
b-ot-layout.cc
8c69e65abed961002d90024c92e18538c6516262 28-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Rename lookup_flags to lookup_props since it's more than just flags
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
ain.cc
98370e89d1bff248737b482d129c2a4deb8bfd95 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> WIP removing external synthesized GDEF support and implementing it internally
b-buffer-private.hh
b-buffer.cc
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-shape.cc
870e2d6eac01d004c72a925ea93e6823251d5fa2 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Remove unused function
b-buffer-private.hh
b-buffer.cc
1115890b90709fa5329a55d22f543020f3df9f6f 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> More cleanup
b-buffer-private.hh
b-ot-layout-private.hh
dbf56b1d94910f04823e53e39ace1e5145bddc04 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> More lig-id cleanup
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsub-private.hh
f6a23a0b9171958f76c1d0473b09fc08d2b3a0d0 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> More removal of lig-id code from buffer
b-buffer.cc
dd2ffd282c059194fd87fb1664e2e0cdb56a87a0 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Minor renaming
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsub-private.hh
b-ot-shape.cc
fe263272a2b26204bc39829a94d90ab537517f3f 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Move setting lig_id/component out of buffer and to the gsub code
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsub-private.hh
2e2b2480c01c788ea702d78ca830c2bb659654a8 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Always allocate new ligature id

No practical point in reusing ligature ids.
b-ot-layout-gsub-private.hh
bf07d5a29c61baf6fd683289c7764f487ad7e413 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Set component=0 for ligature glyph
b-ot-layout-gsub-private.hh
37ab877149582c7ce7416425bb402340e3f948a2 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Remove comment
b-buffer.cc
88474c6fdaf35c56368694a5b164f4988a004d49 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Get rid of the OpenType-specific internal buffer representation

Add variant integers to buffer item types. More cleanup coming.
b-buffer-private.hh
b-buffer.cc
b-buffer.h
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-shape-complex-arabic.cc
6cb8c3493019e1497921666fc268cb81943f9f1f 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add hb_var_int_t
b-buffer.h
b-common.h
f22802431a983bd4bc60a7653b1103973c3475cb 03-Nov-2010 Behdad Esfahbod <behdad@behdad.org> Remove trailing comma
b-ot-shape-complex-arabic.cc
13528d0c78cadb1f67267c9a692558caef9fdaa6 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Supposedly implement vertical support in GPOS

Not tested at all.
b-ot-layout-gpos-private.hh
b-ot-layout.cc
9624de5b496846cd89ee4f7b07d38029aca70ce1 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Clarify cursive_chain (and change its sign)
b-ot-layout-gpos-private.hh
b-ot-layout.cc
d6c9eadb88240c40b3cb9a33f067e575cbc2f729 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Remove more pointless LONGTERMTODO items
b-ot-layout-common-private.hh
e204674fe340a57c48a9fe7e1ed02a9a08f4aca4 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Rename hb_ot_layout_get_lig_carets() to hb_ot_layout_get_ligature_carets()
b-ot-layout.cc
b-ot-layout.h
3357d145f81cb7b746c910018fe3a0dfab00972c 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Implement vertical support in get_lig_carets()
b-ot-layout-gdef-private.hh
b-ot-layout.cc
b-ot-layout.h
8eeed7eddc789151cbffe62ed6bfd77612266bf1 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Remove LONGTERMTODO item that I'll never fix
b-ot-layout-gsubgpos-private.hh
184a5279c64f37bc2ceefbe2191bb64ca87f88d8 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Remove unused macro
b-ot-layout-gpos-private.hh
af5d02a269d55331300df1e382241893928d64e0 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Rewrite Cursive joining to act more like other pair lookups

Look forward for next character instead of joining to the last character.
b-ot-layout-gpos-private.hh
b-ot-layout-private.hh
ea22c749c7371cf66ca44f0bfe7030aef1926edd 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Fix Cursive positioning

Test case: "مرا" rendered using IranNastaliq.
b-ot-layout-gpos-private.hh
aefdb64689aab19df76590a36c4a04052a8bffdb 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Fix segfault with Arabic combining marks
b-ot-shape-complex-arabic.cc
248e3c2ba47889c247959e44166644872aed59ba 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Oops, remove extra mask setting that broke complex shaping
b-ot-shape.cc
502f4cba3e0bcd625d31f8fd295b8b18e2d02a5a 27-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Divide get_metrics into get_advance and get_extents

Graphite module not updated.
Bump version to 0.3.
b-font-private.h
b-font.cc
b-font.h
b-ft.c
b-ot-shape.cc
ec6c0e54d322d58cbc835feb58dcec7ede6ab744 26-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Fix blob leak
b-font.cc
bd7378b2ef9793de4e7f57b920f29f48ac9d0c25 14-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Massage mask setting a bit more

Still finding the exact correct way the masks should be set.
b-buffer-private.hh
b-buffer.cc
b-ot-shape.cc
961f9baa7bc3556f1e4e7135859cebe1351f73a4 13-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Oops, actually set global mask
b-buffer.cc
39dede9ffffe732f78cbd092ccb3b48d77ddd66d 13-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Make sure boolean features always use value=1

Previously boolean features turned on the entire feature mask. This is
wrong if feature is Alternate and user has provided values bigger than one.
Though, I don't think other engines support such corner cases.
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-complex-arabic.cc
b-ot-shape.cc
3506b2e78db27e7835bd2c09c053a9807c9cac40 13-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Return early if mask is 0
b-buffer.cc
5c1c8c9c50ddbe66ea595afb245a208b7775b27c 13-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Make sure feature values don't leak out of their mask
b-buffer.cc
852912fc2db06b6183a2dc87c45ec1b563063572 13-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Fix applying default-value for features

Previously if a default global feature was overrided by a non-global
user feature, we were not setting any default mask for the feature,
essentially disabling the feature by default. Fix that.
b-ot-map-private.hh
b-ot-map.cc
2989be4919242670c94825bded96db20a7b2035b 13-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Set user masks after complex masks
b-ot-shape.cc
3111b8a0d5b38da57c0f6285aec2b92eb690188f 13-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Fix stupid bug, oops
b-font.cc
758f68b860b44b5a04eb3dde5cb40b1b04cf634a 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Fix Arabic shaper

It's tested now. It works!
b-ot-shape-complex-arabic.cc
13403bc67a01e0d4908fb964093fd02ddd11c580 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Hookup Arabic shaper!

Not tested yet.
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-private.hh
b-ot-shape-private.hh
b-ot-shape.cc
57ac0ecb7843533b2e6e6d6c8a12b2a44437cc1c 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Merge clearing masks and setting global masks
b-buffer-private.hh
b-buffer.cc
b-ot-map.cc
b-ot-shape.cc
fc96596b7c1c4e62491e951a3c256fb00dcde550 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Form clusters before setting masks
b-ot-shape.cc
1e80782244cdb1dedae9d1e61079d0508e57ca72 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Clear masks before setting them up, not after!
b-ot-shape.cc
fd3d32d31cb6d74a9994b6850d539fd0b707d941 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add hb_ot_shape_execute()

Not public yet.
b-ot-shape-private.hh
b-ot-shape.cc
49baa1f69efb0e3c62e45bd59dd88459a84bf390 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add hb_ot_complex_shaper_t stuff and start hooking Arabic shaper up
akefile.am
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-arabic.cc
b-ot-shape-complex-arabic.cc
b-ot-shape-complex-private.hh
b-ot-shape-private.hh
b-ot-shape.cc
605ed468f380f86d642031f6451447d270cb6de1 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add hb_ot_shape_plan_t

This is the object that a separate plan/execute shaping API will use in
between the two stages.
b-ot-shape-private.hh
b-ot-shape.cc
895fb5d364e7ae5d9d2e34b9f68b8651804369ef 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Refactor, in a different direction
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-private.hh
b-ot-shape.cc
d2ba016ca1ba7489537768b619980d5159b5870c 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> More refactoring
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-private.hh
b-ot-shape.cc
b-ot-shape.h
66e487dfbfdccd0c4be8cd11661d412ca27c3425 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Update Arabic shaping table to Unicode 6.0.0.
b-ot-shape-arabic.cc
f4792d99eee0e8cd72b7cb01c96a09f16e2a72ce 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Fix infinite loop!

Untested code is indeed buggy code.

Mozilla bug #603352.
b-ot-tag.c
993d1e786a32612b796dae8309ce402a4121bec7 12-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Fix missing negation in unreachable code!

Mozilla bug #603346
b-open-type-private.hh
52601275d5e4000dada4f925fb78723eeeee7bd4 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> More separation
b-ot-shape.cc
6b7e6758626268ba1c7c266128e618ec73ae2c0f 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape.cc
aa9c450bb2d7c3c9e36ea32e3558250391a0582d 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Enable 'rtlm' mirroring
b-ot-map-private.hh
b-ot-shape.cc
36925f695d349a53d52ecc3a58f18240a6977463 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Rename hb_mask_allocator_t to hb_ot_map_t

hb_ot_plan_t may be a better name, donno.
b-ot-map-private.hh
b-ot-map.cc
b-ot-shape-private.hh
b-ot-shape.cc
f5dd3be46b5c77a2c5b97b82a0b67ac9e851b898 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Improve checks
heck-c-linkage-decls.sh
heck-header-guards.sh
5a2b0b3878cd9c62121bb4fd6344e102a9ee1825 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add hb-ot-map.cc
akefile.am
b-ot-map-private.hh
b-ot-map.cc
ecc4550ed7bc900a61081edfbcd0ad09cbf29b36 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Fix feature overriding
b-ot-map-private.hh
8f08c3275040870a645ef034a38d30c05c619f21 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Minor cleanup
b-open-type-private.hh
b-ot-map-private.hh
b-ot-tag.c
b-private.h
a806762a314e83154793d96ee665e6668d6b56de 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add hb-ot-shape-private.hh
akefile.am
b-ot-shape-arabic.cc
b-ot-shape-private.hh
4924affe0f0adf75f2a0e2137a71206b0576d63f 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add hb-ot-map-private.hh
akefile.am
b-ot-map-private.hh
b-ot-shape.cc
a7c5046d6b676a32298b97403a49235f7f255161 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add private hb_segment_properties_t
b-buffer-private.hh
b897c607d91d569f4eaa681d1f5b3d9f3d2bb093 09-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Flip the OT bit-allocation vs gsub/gpos inside-out

We now build our entire attack plan before jumping in.
b-ot-shape.cc
e89b7d2a61b7f58e6c7cec00d5ce2246dee1e8a1 08-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Logically separate feature collection
b-ot-shape.cc
5b88908f12ad1d828dd6075fb8fc0036c2d6af3a 08-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape.cc
5360ce0c5c33f921b3f9ad3f42529a19df5ad0fe 08-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Move some more code around
b-ot-shape.cc
d9c726078828d50db62e05407a3f38f2e7607533 08-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape.cc
efe0d682e860ffd23a1d17c68c8273f17d51c1c9 08-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Simplify compiling lookups
b-ot-shape.cc
476c94218b4f5b8e119e82b0e10b641e0c10bf56 07-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Rename
b-ot-shape.cc
34db6f031d7ac009f554386ef990bad44886b9ee 07-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add XXX note
b-buffer.cc
98aa3f65446496dc250d9b01d98cacfdf1157e06 06-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Call hb_ot_shape_setup_lookups_complex()
b-ot-shape.cc
f1d07885dc358e79c237e824c94b3320c0a9c17d 06-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Rename setup_lookups()
b-ot-shape.cc
affc5abac7bdae51df85856a5478d34d96fda4fe 06-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Move table_tag to hb_ot_shape_context_t
b-ot-shape.cc
967240dd8b96802345ef273e75427066e91ea8fb 06-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add internal hb_ot_shape_context_t
b-ot-shape-arabic.cc
b-ot-shape.cc
3eb936f1539475098f39be78654b9c39b86f0799 06-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add Arabic/Syriac/N'ko shaping logic

Not hooked up just yet.
akefile.am
en-arabic-joining-table.py
b-ot-shape-arabic.cc
e81d7afe6e0e9dd26025f3243a11cf0b408a8046 05-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add hb_face_get_upem()
b-font.cc
b-font.h
bd361945a89ea31e6c4525aa030e18744ea81fb3 04-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add API comments
b-font.h
645f6f265b5f6fb85b3c0f59ea874d58c86e3917 04-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add is_mutable() functions

Correspond to the make_mutable() ones.
b-font.cc
b-font.h
b-unicode.c
b-unicode.h
19c0eab8cf96d00e168c4b11ec435019c1ed44f7 04-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Add getters for all setter APIs

One in particular is not a straight getter: hb_font_unset_funcs() is
special because of the specific needs of the lifecycle management of
the user_data object.
b-font.cc
b-font.h
b-unicode.c
b-unicode.h
f0feb084b0fd1510474b25404d1dcc5686ee0538 04-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-private.hh
ac0c1663fa6e93a5a94c88fc7497bc11ca17f0a1 02-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Avoid div-by-zero, validate upem
b-ot-head-private.hh
b-ot-layout-private.hh
7f97d2cd904ea999c099c73c52187c5d65aeec67 02-Oct-2010 Behdad Esfahbod <behdad@behdad.org> Pedantic
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
2841436926d6a406bd1f4a35c66a0e3c2fdbeca7 29-Sep-2010 Behdad Esfahbod <behdad@behdad.org> Don't zero glyph advances in MarkToBase and similar lookups

See email thread "Should MarkToBase attachment zero the mark advance?"
started by Jonathan Kew on 23 August 2010 for details.
b-ot-layout-gpos-private.hh
36b3862009c00ad922d68810173a69ac59723365 29-Sep-2010 Behdad Esfahbod <behdad@behdad.org> One fewer cmp() implementation...
b-ot-layout-common-private.hh
4e573715ae5f5ed486ad66382bb44c47a86591ff 28-Sep-2010 Behdad Esfahbod <behdad@behdad.org> Improve cmp function parameter namings and casts

No semantic change.
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-shape.cc
dca8aff24652c83c53efbb9d06e5e1c7ef1c2fa5 28-Sep-2010 Behdad Esfahbod <behdad@behdad.org> Add comment re DejaVu Sans Mono having 'dflt' script
b-ot-layout.cc
9dc45401c07cb40114067cafbe286c63a9598f3b 28-Sep-2010 Behdad Esfahbod <behdad@behdad.org> Fix stupid bug in bsearch cmp function!
b-ot-layout-common-private.hh
f2a30bd605a57b99fce4b78e288c2ca62f7191ad 23-Sep-2010 Behdad Esfahbod <behdad@behdad.org> Remove unimplemented method hb_font_get_funcs()

Got to add a suitable replacement.
b-font.h
7b9a38a112aa2421d97187a9b30619360edeabbe 22-Sep-2010 Behdad Esfahbod <behdad@behdad.org> Add test.c using public API
akefile.am
est.c
9ea7368fce3fa373d8d2925961ad211f5cf6ce70 22-Sep-2010 Behdad Esfahbod <behdad@behdad.org> Fix hb_ot_layout leak
b-ot-layout.cc
8e577acae2e605547b6a1b9b3a941cb9e3c56a4c 22-Sep-2010 Behdad Esfahbod <behdad@behdad.org> Fix blob refcounting with insane SFNT table directories
b-font.cc
5bd1e95236320aed60fb29ca1e93b9595d4aeeec 22-Sep-2010 Behdad Esfahbod <behdad@behdad.org> Speedup Device table delta computation for common cases
b-ot-layout-common-private.hh
ed4acbde9c5e3323cc95037b500d1bf2878ed3ee 16-Aug-2010 Behdad Esfahbod <behdad@behdad.org> Fix NULL dereference

Reported by Jonathan Kew. Face table handling needs to be redone
anyway, but fix this for now.
b-ot-layout.cc
258305c2a5dd47bd2d83f12eaf9caa5b19ae5efb 13-Aug-2010 Behdad Esfahbod <behdad@behdad.org> [GPOS] Fix div-by-zero

Patch by Jonathan Kew. Mozilla bug #465728.
b-ot-layout-gpos-private.hh
2422c4b96d32037a5cdaef4c427ed1d25db5f647 13-Aug-2010 Behdad Esfahbod <behdad@behdad.org> Add TODO
b-ot-shape.cc
27f0b092a13344e8791c496c77a3c1e5de4f887c 23-Jul-2010 Behdad Esfahbod <behdad@behdad.org> Logically separate feature allocation from application
b-ot-shape.cc
6cf63132dc771e1bcd5627720daf4bd2ea0800a5 23-Jul-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape.cc
4e4ef24e46f273ad2bdda2f718223e05b37dd50f 23-Jul-2010 Behdad Esfahbod <behdad@behdad.org> Towards separating bit allocation from shaping
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gpos-private.hh
b-ot-layout.cc
b-ot-shape.cc
acdba3f90b232fc12fcb200dca2584481b339118 23-Jul-2010 Behdad Esfahbod <behdad@behdad.org> Prefer C linkage
akefile.am
heck-c-linkage-decls.sh
b-blob-private.h
b-blob.c
b-blob.h
b-buffer-private.hh
b-buffer.cc
b-buffer.h
b-common.c
b-common.h
b-font-private.h
b-font.cc
b-font.h
b-ft.c
b-ft.h
b-glib.c
b-glib.h
b-graphite.cc
b-graphite.h
b-icu.c
b-icu.h
b-language.c
b-language.h
b-object-private.h
b-open-file-private.hh
b-open-type-private.hh
b-ot-head-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-layout.h
b-ot-shape.cc
b-ot-shape.h
b-ot-tag.c
b-ot-tag.h
b-ot.h
b-private.h
b-shape.cc
b-shape.h
b-unicode-private.h
b-unicode.c
b-unicode.h
b.h
ain.cc
cc6d52279d10a2edcf0d86c3a18a79ff4f6d3858 23-Jul-2010 Behdad Esfahbod <behdad@behdad.org> De-C++ where possible

Helps with avoiding many "extern C" declarations in source files.
akefile.am
heck-header-guards.sh
b-font-private.h
b-font-private.hh
b-font.cc
b-ft.c
b-ft.cc
b-graphite.cc
b-ot-layout-gdef-private.hh
b-ot-layout-private.hh
0dd200d28f51bf4062d8a377432c8977c80cb210 23-Jul-2010 Behdad Esfahbod <behdad@behdad.org> Header dep cleanup
b-font-private.hh
b-ot-layout-private.hh
fb0d25246267851a1fc200ead28c56359a40047e 23-Jul-2010 Behdad Esfahbod <behdad@behdad.org> dos2unix
b-ot-head-private.hh
81408cd51ce575891e79e6483be187130f864c28 23-Jul-2010 Behdad Esfahbod <behdad@behdad.org> Don't use "operator ="

Some compilers don't like operator = defined on members of union members
either. Reported by Ginn Chen for Sun Studio compilers.
b-open-type-private.hh
4f801bd6586defdbf70162e0c7f8968d2b476df2 21-Jul-2010 Behdad Esfahbod <behdad@behdad.org> Mozilla bug 580233 - check for zero-length record in hb sanitizer.

Patch / report by Jonathan Kew.
b-open-type-private.hh
17e9ff938b638fd1cb80c990ba13bd47562116b8 15-Jul-2010 Behdad Esfahbod <behdad@behdad.org> Fix 64bit issues with debug prints
b-blob.c
b-open-type-private.hh
fd56ae49637b978ea3b36fab5b48f1a3cc99e90e 08-Jul-2010 Behdad Esfahbod <behdad@behdad.org> Don't bother sorting, it's a safe font error if the array is not sorted
b-open-type-private.hh
b-ot-layout-common-private.hh
cc8a4abea68f2dba26feb5785f9e518e6853c744 08-Jul-2010 Behdad Esfahbod <behdad@behdad.org> Use bsearch where applicable
b-open-type-private.hh
b-ot-layout-common-private.hh
2f418f5709b2b8b3ef2f6056b9d8c13b66f0b74a 08-Jul-2010 Behdad Esfahbod <behdad@behdad.org> Remove useless TODO
b-open-file-private.hh
da8edbb62204dc39f93d500ef85929e234e0bd19 09-Jun-2010 Behdad Esfahbod <behdad@behdad.org> Fix header
b-buffer-private.hh
d05d13df02fbe76814694fe49cc01bbb41c3d0e7 09-Jun-2010 Behdad Esfahbod <behdad@behdad.org> Add a test for header preprocessor guards
akefile.am
heck-header-guards.sh
heck-libstdc++.sh
0f0cd9d361f1bb614aa3fd4616160d027062370e 09-Jun-2010 Behdad Esfahbod <behdad@behdad.org> Fix header tags
b-font-private.hh
b-object-private.h
b-open-type-private.hh
b-ot-layout-private.hh
b-ot-shape.h
f2a1b411b1d48c3dfac0df8e78c848d9aa3bb047 03-Jun-2010 Behdad Esfahbod <behdad@behdad.org> Followup fix for variation-selectors

Patch from Jonathan Kew
b-ot-shape.cc
a224b4d502d026fa642ee4098bf7bc0b4ba7ce27 03-Jun-2010 Behdad Esfahbod <behdad@behdad.org> Fix skipping variation-selectors
b-ot-shape.cc
81a77b115db401f69e869690f24b9047370bdfde 02-Jun-2010 Behdad Esfahbod <behdad@behdad.org> Make feature sorting stable
b-ot-shape.cc
fdc322a82047c4bda9fa3dab4338a0eac1c1bde7 29-May-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-shape.cc
f062ec6bb24b1c21d37b12adc7e944a5fe53526a 29-May-2010 Behdad Esfahbod <behdad@behdad.org> Further simplify mask allocator
b-ot-shape.cc
8af45fda475d075c5a285002463a00a0423d3926 29-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix global feature handling
b-ot-shape.cc
e04685ee7be01695ec437fab50f919f1b7423c57 29-May-2010 Behdad Esfahbod <behdad@behdad.org> Simplify mask allocation
b-ot-shape.cc
0e235d0fc9bdeeaffa7215c21abc5d40767a10c7 29-May-2010 Behdad Esfahbod <behdad@behdad.org> Towards a mask allocator
b-ot-shape.cc
81c5e8724b740c6e42ed3a45e0574c7c5f3ad8e6 29-May-2010 Behdad Esfahbod <behdad@behdad.org> Allow disabling default features

Patch from Jonathan Kew
b-buffer-private.hh
b-buffer.cc
b-ot-shape.cc
2163afbf35044f59dbf449254e65b8c9feb6cdeb 27-May-2010 Behdad Esfahbod <behdad@behdad.org> Add note about UTF-8 decoder
b-buffer.cc
226faa58f4e23eb655bebb0eff7206a3024c8d55 27-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix loop
b-ot-tag.c
56bef5680cc76a67d16ca14ac69f0dda1a691968 27-May-2010 Martin Hosken <martin_hosken@sil.org> Fixes to Python and Graphite from Martin
b-graphite.cc
b485da0b719cb03cc33da57802c5151301664c2f 27-May-2010 Behdad Esfahbod <behdad@behdad.org> Disable Graphite as it crashes all over the place...
b-shape.cc
93ac709b1f6b015371c29bf244a9ece62baedff0 26-May-2010 Behdad Esfahbod <behdad@behdad.org> Cypriot is RTL
b-unicode.c
15c7379c16dbb9ee8ed1c0333ca7492532ce8423 26-May-2010 Behdad Esfahbod <behdad@behdad.org> Revert "Merge remote branch 'martin/master'"

This reverts commit 80af2812fb3b231ddcb4608ec13c6038a681c818, reversing
changes made to c442672ec2fb83ed41f3994b3aa4f92a097664ab.
akefile.am
b-graphite.cc
b-ot-shape.cc
b-ot-tag.c
b-ot.h
b-shape.cc
80af2812fb3b231ddcb4608ec13c6038a681c818 24-May-2010 Behdad Esfahbod <behdad@behdad.org> Merge remote branch 'martin/master'
c442672ec2fb83ed41f3994b3aa4f92a097664ab 24-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix struct initializers
b-ft.cc
b-glib.c
b-icu.c
f5ac9de259773a5f86809892e58166a485d70a3d 24-May-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-object-private.h
f97bf4f81257c97a46dff51be31b2ec214d6c270 24-May-2010 Behdad Esfahbod <behdad@behdad.org> Make sure we initialize all callbacks upon creation

Also fixes issue with unicode callbacks never being set really.
b-font.cc
b-unicode.c
bf36a1074ab23abeab0a7a6c47db26770dc1ab0a 24-May-2010 Behdad Esfahbod <behdad@behdad.org> Move all callback functions in a vtable structs
b-font-private.hh
b-font.cc
b-ot-shape.cc
b-unicode-private.h
b-unicode.c
3109a86add936ae4cc77541fc026c4fe2db4e328 24-May-2010 Martin Hosken <martin_hosken@sil.org> hb-graphite now no longer has -ve advances within clusters. Fix infinite loop in tag_to_script(). python fixed to use tag_to_script and allow hbtestfont to be passed font files, where fontconfig knows about them.
b-graphite.cc
b-ot-tag.c
72631c9d06b131d82080f212908e7d0b0266b841 22-May-2010 Martin Hosken <martin_hosken@sil.org> Merge branch 'master' of git://git.freedesktop.org/~behdad/harfbuzz-ng
1432ab15c163eb0b5be3de66a4cb3df15ad73500 22-May-2010 Martin Hosken <martin_hosken@sil.org> Add graphical output to hbtestfont
akefile.am
b-ot-shape.cc
b-ot.h
b-shape.cc
bbc7a99d01298f9be1ebaaceacbc9bc961e247e5 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Move mirroring around a bit
b-ot-shape.cc
bd0987386b3a4dddf208ccf1a70ebfff6242ba73 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Add a few more standard features
b-ot-shape.cc
75f3469ca6d626b08eb411984a2ba7fd48ca5b5f 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Add note
b-ot-shape.cc
1094a294f6a44c47fc75867983f2b135a6442bab 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Add rtlm
b-ot-shape.cc
074ea787493a37ae8f68d17be7820f13fff57520 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Add ltra, ltrm, and rtla features
b-ot-shape.cc
1ce7b87c4d8d1ab3ec1d5198351d71b7199f7c64 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Cleanup bitmask allocation
b-buffer-private.hh
b-buffer.cc
b-ot-shape.cc
dd22a8f7bfd424a69286e90f79d2a23af6e89ec1 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Add note
b-ot-layout-gsub-private.hh
cbd1d6a63a5d696b7d6a5aba9ee7305ea228416a 21-May-2010 Martin Hosken <martin_hosken@sil.org> Rename Grxxx to HbGrxxx
b-graphite.cc
0375bdd2027767ee7bebef1ed289b33dc64f430e 21-May-2010 Martin Hosken <martin_hosken@sil.org> Rename classes from Grxxx to HbGrxxx
b-graphite.cc
a5a72e004bb7123445c2c3a94352d358fc80d904 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Add hb-ot-shape.h, oops.
b-ot-shape.h
aa62a402a72bdecad2a955dbfaf6e24cd2c00e55 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix Makefile to install hb-ot-shape.h
akefile.am
b-ot.h
9722b8f005a10fd16e841df4da3ccd80be66e296 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Simple renames
b-ot-shape.cc
02f28550d785671cf92fd4239c5f913f7e71585f 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Graphite also forces us to link to libstdc++ currently
akefile.am
ca663bb23c16f6a1f04efa6e10dad0e3e7c260a3 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Move main shaper code into hb_ot_shape()
b-ot-shape-private.hh
b-ot-shape.cc
b-shape.cc
7acd232d36c2b2ed03823e6aa6bb2b814bf673b3 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix test failing
b-graphite.cc
dd47924d88d86b83e7f3ab040de6e7136ac0ca09 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix warnings
b-graphite.cc
305ba8671553cd955c20a54db622666c0bb02532 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Import Graphite shaping backend by Martin Hosken
akefile.am
b-graphite.cc
b-graphite.h
b-shape.cc
83f34677bcbc6bb194940407b0fcb23575650e3d 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Add hb_tag_from_string()
akefile.am
b-common.c
b-common.h
4a9a5c0b06e8aa5d15327242609a7c766d3e0e94 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Don't allocate bits for features not available
b-ot-shape.cc
e53d77142ac4ecbe38ab3235491fa93cb7ff16ab 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Speed up feature mask setting

Patch from Jonathan Kew.
b-ot-shape.cc
4fa67f34ecc65056ce60a572213fbdae66e0423b 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Add Unicode 5.2 scripts
b-icu.c
b-ot-tag.c
b-unicode.c
b-unicode.h
ee1b322100a6bd575b999904592abbd9fed5587f 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix feature mask setting
b-ot-shape.cc
b490fa343322f1b5abaf880abc073287c1f34132 21-May-2010 Behdad Esfahbod <behdad@behdad.org> Add hb_ot_tag_to_script()
b-ot-tag.c
b-ot-tag.h
280af1bddb958ff97cf7ce12fe7ec2b6352e61d0 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Let hb_face_get_table() return NULL if table not found
b-font.cc
b-font.h
b-open-type-private.hh
1cdbfd944eecb58587461f57f037e47a44f39990 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix alternate, again
b-ot-layout-gsub-private.hh
fdca3d51603bd6bef6a4b0ee4a560f7dcd2f1d37 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix alternate off-by-one
b-ot-layout-gsub-private.hh
b634beb39e0a4fef7167a8af646f6b2d8cafe69b 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix delta scale, again...
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-private.hh
40335d4533ac2b08121c9dc6003f3ebc5b44a67b 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove unused operator
b-ot-layout-common-private.hh
f7acd8df5146155b51d6f50aeb04f54f3030c1c3 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Do alternate glyph selection!

Kinda hand-wavy right now. Not tested.
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.h
750a2294553d252e28875b605fe61fd9d6696e0f 20-May-2010 Behdad Esfahbod <behdad@behdad.org> get_table() is allowed to return NULL. Use that to simplify code
b-font.cc
b-ft.cc
99d9ef785f108df76f80a307eaa2784685ea86ba 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Write hb_face_create_for_data() in terms of hb_face_create_for_tables()

Fixes lack of head_table initialization in create_for_tables() also.
b-font.cc
6774463883978b00b4d8c719ed75edfc4537c77f 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Apply user features to ranges!
b-ot-shape.cc
9b6023338530a2dbb8214eb4391ef3e8372f3892 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Add _hb_bit_storage()
b-private.h
6b1b957f6d2955cbe4fa97e2659e033b3eaaf4d2 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Add lookup_map
b-ot-shape.cc
60010a0c4d8efae5c61a0c9cf10cfe2c1860f41e 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Update always-apply mask from 0xFFFF to 1

We plan to use the first bit to be always on.
b-ot-shape.cc
009aad567863c05ee2ec4a3ee76fe0ee79c767bb 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Invert the mask logic

Before, the mask in the buffer was inverted. That is, a 0 bit meant
feature should be applied and 1 meant not applied, whereas in the
lookups, the logic was positive.

Now both are in sync. When calling hb_buffer_add_glyph() manually,
the mask should be 1 instead of 0.
b-buffer.cc
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
7f411dbfd9f8d5360c948531ff9f6c3998d1d897 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Apply user features

No ranges yet
b-ot-shape.cc
0db299ccad346d9ea5573ea8408b78d9997bd379 20-May-2010 Behdad Esfahbod <behdad@behdad.org> Change hb_feature_t to keep tag/int instead of string
b-shape.h
0a4399ca228d244e646abdb3487da0f13b228889 19-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix scale issues

hb_font_set_scale() now sets the value to be used to represent a unit
pixel. For example, if rendering a 10px font with a 26.6 representation,
you would set scale to (10 << 6). For 10px in 16.16 you would set it to
(10 << 16). This space should be the same space that the get_glyph_metrics
and get_kerning callbacks work in.
b-common.h
b-font-private.hh
b-font.cc
b-font.h
b-ft.cc
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-private.hh
b-ot-layout.cc
b-private.h
cf5585cfa6cac6fdf627a99941299e76af5ae0f7 19-May-2010 Behdad Esfahbod <behdad@behdad.org> Add 'head' table
akefile.am
b-font-private.hh
b-font.cc
b-open-type-private.hh
b-ot-head-private.hh
e29caf3f943b2b6f4997f469f7274252c82f465e 19-May-2010 Behdad Esfahbod <behdad@behdad.org> Add LONGDATETIME
b-open-type-private.hh
f415755fdf011d3fa3b9aad04c38f2255dd7acf8 17-May-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout.cc
73af7756dc6d3961f176854246e5722baff101fb 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Indent
b-ot-layout-gsub-private.hh
3567b87cce541dfb0af7caf024ec67c9d3c09214 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Add an inline version of hb_buffer_ensure()
b-buffer.cc
a6a79df5fe2ed2cd307e7a991346faee164e70d9 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Handle malloc failture in the buffer
b-buffer-private.hh
b-buffer.cc
b-buffer.h
ca54a12658510f9aa0b2db82f20a8fac230d6bb6 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-shape.cc
910a33fe8457a8e13f7eb77fc92fa59c31f5e8fd 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Update buffer docs
b-buffer-private.hh
b-buffer.cc
36b73c80df91e96492357c6da945e081e9046a93 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Shortening buffer accessors: rename buffer->in_pos to buffer->i
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-shape.cc
29427c5c51ac70aca53ed523fa5ddb3de4355fb0 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Shortening buffer accessors: rename buffer->out_length to buffer->out_len
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
6960350be97f24e97140391025b56369c393a3df 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Shortening buffer accessors: rename buffer->in_length to buffer->len
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-shape.cc
1b621823f3e31b48c80cc8b0691dfa873ba086cd 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Shortening buffer accessors: rename buffer->positions to buffer->pos
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gpos-private.hh
b-shape.cc
9d5e26df0877aa5b187764ba09bd7bf221e92968 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Shortening buffer accessors: rename buffer->out_string to buffer->out_info
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsubgpos-private.hh
7e7007a1c9bf2c07a8369752126ece8fa6164248 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Shortening buffer accessors: rename buffer->in_string to buffer->info
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-shape.cc
8e6b6bb2932946ebc7b01c3abf575b654c741e20 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Merge buffer->out_pos and buffer->out_length
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
22f668eb9ad5f62d9fcd2e0c826ea78977687e5c 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove the unused BUFFER macro
b-buffer-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
7e53ebe478597778c25c197ff9f0cb379f1d0043 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove the IN_CURGLYPH() macro
b-buffer-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-shape.cc
d784da1923ff2ca093f8b0210449731d376b7513 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove the IN_CURINFO() macro
b-buffer-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
281f59b4fb16f7c73767eb042a91f70f4c109b3a 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove IN_INFO() and IN_NEXTGLYPH() macros
b-buffer-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-shape.cc
6e489cdf7623ac627d06d59a80ecea03ca97dc1b 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove the IN_GLYPH() macro
b-buffer-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-shape.cc
01feb74c78a3a302fa3472a0be7b2a1d52fd1ba3 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove the IN_CLUSTER() macro
b-buffer-private.hh
b-shape.cc
d63a1e089acad9ab9f80addd936d36b6d38fb46a 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove the IN_MASK() macro
b-buffer-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
89e2834dabd2d17f2823c51fe3a7fcadeaba7a59 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove the IN_LIGID() macro
b-buffer-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
4a871041f4718834afa312ed17cdd157603468b7 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove IN_COMPONENT() macro
b-buffer-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
27da6dd89a359f7ef340c646c4cb79373782261d 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove OUT_GLYPH() and OUT_INFO() macros
b-buffer-private.hh
b-ot-layout-gsubgpos-private.hh
cc6ae7ff91eeb93bef153f331ed02b500062f90e 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix lookahead matching. Oops!
b-ot-layout-gsubgpos-private.hh
3109375b849f340b4807724218010c53dea58082 15-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove POSITION() and CURPOSITION() macros
b-buffer-private.hh
b-ot-layout-gpos-private.hh
b-shape.cc
d7cfb3b2d1dd2e9fdae2b3e540bbe313660895e8 13-May-2010 Behdad Esfahbod <behdad@behdad.org> s/\<context\>/c/g
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
f679635893eebc13402c5ee51a6f106eed0c76be 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Don't use variable-length-arrays
b-open-type-private.hh
72071a8afaba2952fe42be093024ae9dbd37f233 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Add a few more buffer convenience methods
b-buffer-private.hh
b-ot-layout-gsub-private.hh
11a81612e51c598e857507c268312206423cbfca 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-unicode.c
3f93518a634cb1852bf050877db23b9b9203ad03 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Improve check for internal symbols
heck-internal-symbols.sh
357d0f29c431b842179ee4b56c21bcc402178ce7 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Make HB_PRIVATE more useful

So we can apply it to class methods also. Not sure if that works!
b-blob-private.h
b-font-private.hh
b-private.h
b-unicode-private.h
1d5e78013696b10751d8a35027619e81978e1312 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Add a few other buffer methods
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
d0316a81f59a4e814b0af78797d915d7ce04d119 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Add buffer->swap()
b-buffer-private.hh
b-ot-layout-gsub-private.hh
3b649a38b5772dd7aba7f07ff7698a7f427f421f 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Add check for internal symbols
akefile.am
heck-internal-symbols.sh
eee8598d75d3af692d9ececf7e8ac458e892ba9e 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Hide internal symbols
b-ot-layout-private.hh
b-private.h
8951fc2c82f2db4865da6d9e303fce419b6363bb 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Add buffer->allocate_lig_id()
b-buffer-private.hh
b-buffer.cc
b-ot-layout-gsub-private.hh
1ce4dc95dbb28842085342aea4f9d12cbe9671a9 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Use bit tricks for HB_DIRECTION_IS_*

We already depend on the exact values of the direction enum
in HB_DIRECTION_REVERSE(), so we may as well use that.
b-common.h
22da7fd94d6318c52df69d70470a85464ffc533d 13-May-2010 Behdad Esfahbod <behdad@behdad.org> Rename a few files to be C++ sources

In anticipation for buffer revamp coming.
akefile.am
b-buffer-private.h
b-buffer-private.hh
b-buffer.c
b-buffer.cc
b-common.h
b-font-private.h
b-font-private.hh
b-font.cc
b-ft.c
b-ft.cc
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.h
b-ot-layout-private.hh
b-ot-layout.cc
b-ot-shape-private.h
b-ot-shape-private.hh
b-ot-shape.c
b-ot-shape.cc
b-shape.c
b-shape.cc
c3df649f258b334e93c7626a43cd8ebfbd5a610e 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix comment
b-buffer-private.h
281f08954a1d96d7807153c25073b8eb7630703b 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove obsolete friend
b-ot-layout-gpos-private.hh
70c9bfd5646a4a55a7f43c0cf0b5ac5993615d5b 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Simplify PairSet
b-ot-layout-gpos-private.hh
97e7f8f305c47caf2968a9da3b8407825547286d 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Add CONST_FUNC annotation
b-private.h
494d28ad988e505c1c45cc35a7ec6b880cfec5fc 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Simplify likely() implementation

Shrinks .text by 1%!
b-private.h
75651b20871047d3ec17f4221794b8ef5d60e14b 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix warnings
b-open-type-private.hh
4c20d8c057738b66150a88472714690e137884f8 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Sprinkle a few strategic likely()'s

Shrinks the code size by some 2% even.
b-open-file-private.hh
b-open-type-private.hh
69cb28bc13d236a01acf40da62e345c7e83ccba7 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove a few likely()'s
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
24552ecf92982fe561dc47d5102fcf1a7b337c70 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove excess sub_format sanitize
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
f7adc5e9be352ac31ad3ab847abb6fceb239aa12 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Shrink NullPool now that we have accurate size tracking
b-open-type-private.hh
3d44fb6f15177dc6518166e435597936b044acc1 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix warning
b-ot-layout-common-private.hh
b5db4f1e4eefa266a71a28b5496f47ff9d1a81e8 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Clean up NO_INDEX
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout.cc
ain.cc
fe9bc070e1d545b0df2ea548eebf5a1fc4c92ddc 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix awful confusion between lookup format and subtable format

As reported by John Daggett.
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
458ecbb60bb7e8e32aca62a562586d921d5396aa 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix tracing order
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
48146e5612f6d272d6962f6829c6d64a31edef89 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Don't fail sanitize on NULL data
b-open-type-private.hh
d2c2ca8faf62fc380d4717d286556139a62d2356 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix comment
b-open-type-private.hh
b435ab7e29c388e3b100f729957319931625a3a8 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix accessing tables from NULL pointer
b-font.cc
b-open-type-private.hh
b-ot-layout.cc
dacebcadae36b35531d635d81df2afb937677b7a 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Simplify unions
b-open-file-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
fd671e02433bcbc1fd07901fa2d6065020f41ba8 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove unused macro
b-open-type-private.hh
0eb9fc6e37935707dba2bf4b3705de2161a08cb7 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Change DEFINE_SIZE_VAR to DEFINE_SIZE_ARRAY
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
596e471aa5053d955fb5d5b5923088c8814469b1 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Cleanup DEFINE_SIZE_VAR2
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
33afa4e2dc352f08cc094703e3f01d3ecd83b354 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-open-type-private.hh
b961518b9611471ff7060e97686e5625974847eb 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Simplify array access
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
54842374c2b291ef208c51ae1d853ec0403ccf84 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Fix check_struct to check min_size instead of sizeof
b-open-type-private.hh
ed07422c33bbb52ff4d79e65986171e3f07697d8 11-May-2010 Behdad Esfahbod <behdad@behdad.org> Further cleanup of sizeof
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
a82ef7a893b773a17f7548375de9f588dfc83aba 10-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove CastP completely
b-open-type-private.hh
40cbefe858192531ed64dd51d402f7ca7b8153a3 10-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove unnecessary casts
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
09766b1ec5ec55a61edbcd7a89ed3613cc92d4cb 10-May-2010 Behdad Esfahbod <behdad@behdad.org> Make StructAtOffset take a pointer

Is safer.
b-open-type-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
bea34c7cbb583cf7660776e95cab3171590b8427 10-May-2010 Behdad Esfahbod <behdad@behdad.org> Further cleanup of DEFINE_SIZE
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
0abcc3b48cfd51a22695c9e988938b2f45cb19d8 10-May-2010 Behdad Esfahbod <behdad@behdad.org> Cleanup
b-open-type-private.hh
b3651231bf80bb7009214547a75ed90e21815c68 10-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove ASSERT_SIZE in favor of the safer DEFINE_SIZE_STATIC
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.h
569da92bc6956f42d9b2d65c784e184fb6380efe 10-May-2010 Behdad Esfahbod <behdad@behdad.org> Cleanup ASSERT_SIZE_VAR
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.h
99bf03459ff2f00cf3fb7fa3c8b8336ec9fcca56 07-May-2010 Behdad Esfahbod <behdad@behdad.org> Whitespace
b-ot-layout-gpos-private.hh
65f46b00333e20ab8a52a4b350747507541ec1db 07-May-2010 Behdad Esfahbod <behdad@behdad.org> Simplify DEFINE_NULL_DATA

Using ::min_size.
b-open-type-private.hh
b-ot-layout-common-private.hh
e45d3f86f9a5f3d29ca35a282de7f98e702878f9 07-May-2010 Behdad Esfahbod <behdad@behdad.org> Start cleaning up get_size()

So we know when the size is static and when dynamic.
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsubgpos-private.hh
b157617644d1e38f680163889d1dc2e2f64d9ba3 06-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove the last of SANITIZE macros: SANITIZE_SELF
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsubgpos-private.hh
4f252fedc7136c66a9d7fbcb2978581986da6227 06-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove SANITIZE macro
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
c2ddfd2d268385257c77c09a9abeacf4230d5377 06-May-2010 Behdad Esfahbod <behdad@behdad.org> Cleanup Value casts
b-ot-layout-gpos-private.hh
41a93d2c1ff175ef06328a99983577459c2d34b0 06-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove SANITIZE_WITH_BASE
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
f5fab0c71837371cce32dc3e9edca1ccb8d44e29 06-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove SANITIZE_MEM
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsubgpos-private.hh
4ad2cc5dec6b0639da2b1846282bdd99d06d5ff1 06-May-2010 Behdad Esfahbod <behdad@behdad.org> Rename check to check_range
b-open-type-private.hh
1cd1e117d060d38e314618b627d7663cb01ed584 06-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove SANITIZE_ARRAY
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsubgpos-private.hh
583d7f9586ce69754f1354aa3895e6d732a0c2ce 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
705e215268aa95c2bc6af8af9b48b72b690ec1f7 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-open-type-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b18eafd0f62f854d15276c78f99843aecd47acad 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-open-type-private.hh
4169710911450e0f9bc045fe279bfc8ba9e8457c 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Simplify chaining
b-ot-layout-gsubgpos-private.hh
1911b9d21b2b7b6b8219ce6c888540e3a60aa9c3 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove APPLY_ARG_DEF and APPLY_ARG
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
6c42cddfe53a1c664081862bb9a3e1c38d05a823 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Port apply to use hb_trace_t
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
969c9705ae0c64577c3f69f5300fec975f952e1f 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Move context_length into apply_context
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
94a23aaeca39c662614037ef887412249bdc8d49 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Move buffer into apply_context
b-buffer-private.h
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
63493f956dca519df49da0a6badc3cb0a1b92779 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Move layout_context into apply_context
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
fff9aa263d1daf7c5117cf383fafa5043d5eb5af 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gsubgpos-private.hh
27e302dc8e794ff6bf878bc76e17d336d510849e 05-May-2010 Behdad Esfahbod <behdad@behdad.org> I keep changing my mind about this
b-open-type-private.hh
39840474afd2cda9ff576c08aff9c87095496c27 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove SANITIZE_ARG_DEF and SANITIZE_ARG
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b261e2ad5c5a065599ce1dbc4ba437caa2cee1e9 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove trace from sanitize_shallow()
b-open-type-private.hh
dfc8cbe85479dde1ffdc6b2e73f4907331d77a19 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Add hb_trace_t
b-open-type-private.hh
20e3dd5d292b65f70d2eae63b8d8713a1c889d47 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Make sanitize_depth variable automatic and not passed through function args
b-open-type-private.hh
4a446ac35136eff23d55f47bdd7b40095ad707ab 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Use function template for pass-thru argument
b-open-type-private.hh
b-ot-layout-gpos-private.hh
98daaf183d6dbf2b68959da608cd9876ba55d7aa 05-May-2010 Behdad Esfahbod <behdad@behdad.org> Make _hb_sanitize_*() methods of the context object
b-open-type-private.hh
bb029af943faa9905e652d58856998687e60c31d 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove SANITIZE_THIS
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
2226fc93d1427b8830bfb892fe1b25b488ea36dc 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Rename SANITIZE_BASE to SANITIZE_WITH_BASE
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
89da1346ec3a8dec8a368df46d61ca75356e22fa 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove SANITIZE_OBJ
b-open-type-private.hh
4d4cce96266b777a01cec03e8766dc8c0b159351 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove SANITIZE_THIS2
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
26bfcb64e473c40e439d6efbe974781dada28eca 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-ot-layout-gdef-private.hh
b-ot-layout-gsubgpos-private.hh
be74284673a1944e0f1884e861c3fe8f9855172c 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove SANITIZE_THIS3
b-open-type-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsubgpos-private.hh
fbab9f9bd8ba59e7e5811f33c1dda198f95cf05a 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove SANITIZE_BASE2
b-open-type-private.hh
b-ot-layout-gpos-private.hh
73c7dbf7f5433c0cdd467ef32402f52867e9798e 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove SANITIZE2
b-open-type-private.hh
b-ot-layout-gsub-private.hh
c9f14687a30866181feb57ee2736a147ec9f25a1 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove the NEUTER macro, move code to a method
b-open-type-private.hh
30fa2821c277df99a14089749313dfe2b541e2d0 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Make internal method private
b-open-type-private.hh
ce5694c79671bf75990923c1da17bb611e4e7d15 04-May-2010 Behdad Esfahbod <behdad@behdad.org> [main] Recognize Apple SFNTs
b-open-file-private.hh
ain.cc
710500a93ecc2a0c595045602aa367073485ff91 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Comment new SFNT tags
b-open-file-private.hh
64d3fc8d0dada673245cc8c0b1c12cd849b30997 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Cosmetic: Rename HB_LIKELY/HB_UNLIKELY to likely/unlikely
b-buffer.c
b-font.cc
b-ft.c
b-language.c
b-object-private.h
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-tag.c
b-private.h
b-shape.c
b-unicode.c
fa3b3d58443a7c22eca3f86243993ba2d4bd9f4a 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Mark a couple functions as inline
b-open-type-private.hh
6b84198f9d471defb6f55d44d4f5423df70b2a10 04-May-2010 Behdad Esfahbod <behdad@behdad.org> Merge remote branch 'jrmuizel/master'
eaf29edb8fa49390e5f48b78105dfd173aff445b 04-May-2010 Jeff Muizelaar <jmuizelaar@mozilla.com> HB_UNUSED is unneeded on static inline functions
b-object-private.h
b-open-type-private.hh
b-private.h
4ce578ed369f1526c91deedcf9e72537b3e4328f 03-May-2010 Jeff Muizelaar <jmuizelaar@mozilla.com> Include the tags from the Apple specification for TrueType fonts
b-open-file-private.hh
631d10b728d9e1a02c7dddf505d4fae5e244c6e8 03-May-2010 Behdad Esfahbod <behdad@behdad.org> Remove unused method
b-open-file-private.hh
f0abcd69408a3af65207cdf8847575ade4579bd4 03-May-2010 Behdad Esfahbod <behdad@behdad.org> Whitespace
b-open-type-private.hh
a8d960bd26883ee937b04ca2a3c16a3644870356 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [GPOS] Speedup apply_value()
b-ot-layout-gpos-private.hh
2cd1ea4411d0808559a942ff3fa4e637f9c9a9c8 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [ft] Disallow getting the entire font data with tag=0
b-ft.c
33d13fdda99acaeffa9600737e8870278d053ebe 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Rename HB_GNUC_UNUSED -> HB_UNUSED
b-buffer.c
b-font.cc
b-ft.c
b-object-private.h
b-open-type-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-shape.c
b-private.h
b-shape.c
b-unicode.c
7d3a126334f8e6f6441561c1bb592bd3fa7a2c5c 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Define HB_FUNC for portability to non-gcc
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.h
fa030175ca998b00cc42cbced6e98de323ec01ec 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [sanitize] Make debug code always available to the compiler

Such that we don't break debug build all the time.
b-open-type-private.hh
fde6f5bd682f5ad0cc5e2ec69fc831b0192bf90b 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Convert to uppercase in hb_ot_tag_from_language()
b-ot-tag.c
6f729b45b04243c42ad7201b67cda9d5e5c363f1 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> More contour point use
b-font.cc
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
3840b6b50503ba2c9a99f774284e0077baffa8a0 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [gdef] Fix delta scale
b-ot-layout-gdef-private.hh
4ac6cc284b2c1eb670c2a3659ec385ed729acac4 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [gdef] Fix rounding
b-ot-layout-gdef-private.hh
b52fbb1bab608bda76efb936f08344afaec600a1 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [gdef] Implement getting contour point
b-ot-layout-gdef-private.hh
4c5fbae011a33b9efef5aedd61c357fc0ded1113 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Make sure mirroring is done in original direction

Reported by Jonathan Kew.
b-shape.c
ce23c9234b87513d6460fb89bad178fb8537e161 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Use BCP47 private-use tags for OpenType tag language string mapping
b-ot-tag.c
eaf1d9a46c4a320f3b0026c0a610f95a620d566f 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-tag.c
3a4784fe88a0f14147ccdd3633952c9c0f3ae8f3 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Fix bug in hb_language_from_string()

Reported by Jonathan Kew.
b-language.c
602e4f8d5512cdf48c696ad64ad62ff97f6dbdcc 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Use const_cast
b-open-type-private.hh
abff3580a5b229641086e0da097efee11d22ff81 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Add const
b-object-private.h
6617eada95928457a25e29f793f1a93c6b3edaec 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Rename apply_context -> context
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b4c7fab762935b9c182b3e2ac3415f29fc6a5558 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Rename
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
1376fb7bf9ef07970f0ba13dc64d6a8ab8252762 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [apply] Use a context object to reduce number of parameters passed around
b-open-type-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
173fde7087c0db3e99409f1119530477c14072f5 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Further simplify tracing
b-open-type-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
bc200457430c083914a64bf4b056153506749610 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Simplify trace code
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.h
807c5b03a2251a3c29a520852639421783101b55 29-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [sanitize] Make debug code always available to the compiler

Such that we don't break debug build all the time.
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
74e313c016704e1d9157c2763691c4151f049dfc 28-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [gsubgpos] Make debug code always available to the compiler

Such that we don't break debug build all the time.
b-ot-layout-gsubgpos-private.hh
41011a6ed7c4891b20c0eddbb6d4ad9c820cfddb 28-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Fix compiler warning about value unused
b-object-private.h
863df68e894b7644dcd12da88aa22f73edf829dc 28-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [object] Make debug code always available to the compiler

Such that we don't break debug build all the time.
b-object-private.h
1d52151a19ed8ec776276aac5cc6ce3769e0d947 28-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-private.h
444fffb1ab378cb3022e2a8e9f90d20a00c82f6a 28-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [blob] Make debug code always available to the compiler

Such that we don't break debug build all the time.
b-blob.c
ba51b25c7ba568aeced17f016eceba987569c5d9 28-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Fix build. Ouch!
b-object-private.h
a92f0fda7fee9d60b399b8865541bf73e6e30141 28-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Fix debug build
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
c165f25410f817d248ad5d07e1827d33efd1b0a0 28-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [object] Actually handle malloc() failure

Caught by John Daggett.
b-object-private.h
caff7db93d205e32a535d49e51a3cad70f91dfdd 26-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Fix Device::get_size() calculation
b-ot-layout-common-private.hh
66d6eb30eb0b8d61e00f86ea0c7829abaddb52fa 26-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Rename Var to Obj
b-open-type-private.hh
690b9194619589c32ffc0c092e45262ae7776e79 26-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove use of flexible arrays

Also remove wrong ASSERT_SIZE that would trigger only when not using
flexible arrays (which was the case on win32, but not with gcc).
b-open-file-private.hh
b-private.h
1cebfbb0636b13dc5dc6a4b8b7acbb7da28129d2 24-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Cleanup hb_face_create_for_data()
akefile.am
b-blob-private.h
b-blob.c
b-font-private.h
b-font.cc
d6b3c83a90f60bedb4049750ffb351161710980d 24-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Allow get_table() to return NULL
b-font.cc
b-ft.c
ad3653751b1e4a03f7058200cb83f64db46722d5 24-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Typo
b-open-type-private.hh
990443e5f282ad61de00dcf1ebff9cf1d5bc2d70 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove lock_instance()
b-font.cc
b-open-type-private.hh
b-ot-layout.cc
187454c595559ce48d072fee6bccb51f3de283d4 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Add different casts from pointer and ref to avoid bugs
b-open-type-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
ain.cc
efb324a46ff64adb4ec8612b4089e8daff1e6d8e 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove GET_FOR_DATA macros

The major-version check is now handled by sanitize. If major
doesn't match, we reject and fall back to the Null object.
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
ain.cc
f1aaa2a43654c28405ffd393de2cb127437c99a5 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Add TODO
b-ft.c
b-ft.h
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
33d4d4325e15e332105ea8f361bab79ee542f0f8 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Zero glyph metrics before calling user callback
b-font.cc
4206e9511a222c0c50cc9b4fe72ec421983bba2c 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> More warning fixes
b-ot-layout.cc
b-ot-shape.c
b-shape.c
ef66ebeabc6c234004bd9e9bb67eb5c9711f4a1e 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove unused parameter
b-open-file-private.hh
1d720192b193f48b44be0385eda3c2c5d5cd28ad 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Fix compile warnings (HB_GNUC_UNUSED)
b-buffer.c
b-font.cc
b-ft.c
b-open-type-private.hh
b-unicode.c
8dfdca599c0a3ba5255131002910bca3b381acac 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> No need to keep blob in sanitize context
b-open-type-private.hh
254933c397f1ce9796f59689a25f9fc2e58df4ea 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> When sanitizing, delay making writable

Before, as soon as we needed to make an edit, we tried to make the blob
writable inplace. That grows code unnecessarily though. We can simply
fail, make writable, then start again. That's indeed what the fallback
was doing anyway.
b-open-type-private.hh
71e735e915c85536ee4d3035576f7426e8cd19dd 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> [blob] Fallback to copying if mprotect() fails
b-blob.c
1aa4666b914da7747fc58a8f6f2d913c94e3b8da 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Cleanup OpenTypeFontFile
b-open-file-private.hh
ain.cc
ae4190cafe927649f8ff8be6a0082478d1298fda 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Properly define separate structs for TTCHeader and TTCHeaderVersion1
b-open-file-private.hh
a065f471b3bc23d33ef75217308efeaed4ffd033 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Cleanup Extension lookups

Two things:

1. Allow nested Extension lookups. The offset is always positive, so
it can't loop circularly.

2. Move the check for all Extension subtables having the same lookup
type to the correct place. Before it wasn't really working.
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
a0bb49c5830f8a7f25d573ec57b79df2620ddba7 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Add comment re bsearch effect on sanitize
b-open-file-private.hh
b-ot-layout-common-private.hh
d632ec4000b3079150e6424e88a3ab7509f7445c 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
a3263aa773ad7a914496792466c69047048b093c 23-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Convert the last set of cast macros to templates
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
c38188a1912f72d9ef90ae1bcbdbba7ecce63371 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove unused macro
b-open-type-private.hh
3b2c2df41b90f2a1d9e33b3dc15a92cff58a689a 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Cleanup Extension sanitize()
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
1856184b93760a1a54fb1a3c54281bb252df7ce6 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Fail sanitize on major version mismatch

We handle major-version differences via get_for_data(), so sanitize
should never see a major version mismatch.
b-open-file-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gsubgpos-private.hh
df3f505dcfeefc8cd395900b116767d22549f756 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> More sanitize cleanup
b-open-file-private.hh
ain.cc
278a91f0cd802ac817c2603429bae1fa4a350ea0 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Minor cleanup of sanitize

Done with an audit of all sanitize()
b-ot-layout-gpos-private.hh
9ac7dc73bc24b6dafb94df5de9cbf8fa0c82d5bc 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Check for (impossible) overflow
b-ot-layout-gpos-private.hh
9fc8684fd85ef6ec82b3b54323761bbdd4c3d891 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Cleanup ContextFormat3 sanitize
b-ot-layout-gsubgpos-private.hh
e77302c61f1f1620d1f438a997575fa6ee5c172e 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Add comment
b-ot-layout-common-private.hh
7c469c3ca4ed4e45c50eff70df59b1a4780bae5b 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-common-private.hh
dc228048a813e43356373505168d3822deea5d72 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove integrity check in Tag sanitize

Serves no useful purpose.
b-open-type-private.hh
b-ot-layout-common-private.hh
8015a8c762dc7be36998d529b7a3af59e3d14d87 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Don't sanitize raw table data

That part is performed by individual table sanitize.
b-open-file-private.hh
c293581e962b7982622e7d607fa3909b40da718e 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Add coment
b-open-type-private.hh
1faa76c6e848c6b0e360d9ddcf567533b87f8f31 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove unnecessary casts
b-open-type-private.hh
079dc40112d3908ff7b7028ea3019bfe82bf606d 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Avoid overflow in TableDirectory sanitize
b-open-file-private.hh
fb5904ec935d925a423401bc975ffaa22022ce1b 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Make casts more explicit
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
565c80bd2960366ace2d10dd71beaaf2a80213c8 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Make sure semicolon is expected after DEFINE_NULL_DATA()
b-open-type-private.hh
bb1e16335e537231246f44740f73cc23c0707364 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Improve Subst/Pos SubTable access and sanitize
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
81f2af40f9afd5bb9695018e6baddcd4aa3361c1 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Simplify Extension offset now that our int types have no alignment
b-ot-layout-gsubgpos-private.hh
19828ad42d8117563412aae3c70887aa117805a9 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Sanitize shallow in Lookup since the generic SubLookup has no methods
b-ot-layout-common-private.hh
e5546a4352c54311ac4a9ef138b187378155ebe1 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Watch for overflow in Array sanitize
b-open-type-private.hh
b-ot-layout-common-private.hh
4f5f1c34dda1e0629bfa6d7b0ffa2e1ce003b7c7 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Rename const_sub_array to sub_array since all consts are implicit now
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
0795b784dd1009976c185482a376df250167e73b 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-ot-layout-common-private.hh
2d98d3bbaa0ddadcb08b5a8f437b18c211c50768 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Simplify Lookup sanitize
b-ot-layout-common-private.hh
c755cb3e3ac55156d0d2ec05adea7a650b97cc41 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Change header comment
b-blob.c
b-blob.h
b-buffer-private.h
b-buffer.c
b-buffer.h
b-common.h
b-font-private.h
b-font.cc
b-font.h
b-ft.c
b-ft.h
b-glib.c
b-glib.h
b-icu.c
b-icu.h
b-language.c
b-language.h
b-object-private.h
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
b-ot-shape-private.h
b-ot-shape.c
b-ot-tag.c
b-ot-tag.h
b-ot.h
b-private.h
b-shape.c
b-shape.h
b-unicode-private.h
b-unicode.c
b-unicode.h
b.h
ain.cc
243d20e011e251462a07947275e0e98cc19c7e9b 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> More cast simplification
b-open-type-private.hh
0dfcc13a4668cdd2c2ebdd5f4a7540a51222cf2f 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Rename ConstCharP to CharP (overloaded now)
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
62c0fd75737a69721dbf29e773405a4c529f8b6d 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Cleanup de-const-casting during sanitize
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
dd155870567cfb9647b2e71593ace8b2705d7cff 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Add more comments
b-open-type-private.hh
c85c3620675f38ffdca59134aeec2641485f40ca 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Add comment
b-open-type-private.hh
2467c669c2aee4de2a6621a9d06cba0262376d41 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Add comment
b-open-type-private.hh
29c3f5e1b6212c775a7b911becd44ba093b7b0eb 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Improve comment
b-open-type-private.hh
01c01618e98283611628cd54d5ba4bf122f24cd9 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Further simplify IntType struct defs
b-open-type-private.hh
2cb08458f674301cde9d962c13911035a251f7c5 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Rename const_array() to array() (overloaded)
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
2e2f43edf2f49f4047e28b1ce2ea95938536de9c 22-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove ArrayAfter, use StructAfter in place
b-open-type-private.hh
e961c86c579fd98ee604342a9c70c4e7f8d4f220 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Convert NEXT() and ARRAY_AFTER() macros to templates
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
198facdc55756cb48cdfb8ba7fa50916fac54ec3 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Use templates for const char * casts
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
1922ffe7013c46014803a9f18c42e193a25b1968 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Const correctness
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
e032ed9f75d4a0f365649a25706871bbb5ae6651 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Use templates for defining int typess
b-open-type-private.hh
b-private.h
2c9fd2adce5a6a9dcd62c874bd64613ea68d8d9b 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove unused macro
b-open-type-private.hh
7a52f281178867379adb6e6c6fb0022102f75d17 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Rename macros
b-open-type-private.hh
b-private.h
ffff7dc44cb2a35a60f92831165e9d3c3a61ce19 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Minor
b-private.h
f60f2166c48d07f556ff83f04e95181946eb03df 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Move macros around
b-private.h
649a4344ca363da3d44cdd908350449ec40ed0f9 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove unused macros
b-private.h
eba8b4f644701cc6b78b0fcb4e932dce15561598 29-Mar-2010 Behdad Esfahbod <behdad@behdad.org> GNOME Bug 613015 - [HB] Does not sanitize Device tables referenced from ValueRecords
b-ot-layout-gpos-private.hh
673a4efcbc72a62105a24d9b0b54047417160f7d 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> WIP
b-ot-layout-gpos-private.hh
40d73bc68dd828cf68f90fde0f9499a6ce9fbb19 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Improve comments
b-open-type-private.hh
394bad41a76f90e441e327cef76efb99997e9ae0 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove stale TODO item
b-open-type-private.hh
9d3677899f90abdc7fb3e3d854db654a8707a84b 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Use a function template instead of struct template for Null
b-open-type-private.hh
ffd321afd91429c5de7ab03d71ef1030044f53cb 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Simplify Tag struct
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
00e23fcc6fd0eee5c582251bf3de6a2703fbbd3e 21-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-open-type-private.hh
b-ot-layout-common-private.hh
a87072db5d41e25b2e31191545298bca4838c65c 20-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Fix Class operator return type
b-ot-layout-common-private.hh
f9b37727985191c9b4aedb0e9835736027e59260 20-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Add couple consts to operators
b-open-type-private.hh
53d237ec6352d7c6fab3b2805b48154a25506beb 20-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Remove ASSERT_SIZE_DATA
b-open-type-private.hh
b-ot-layout-common-private.hh
06558d2a745b8f3af11a8d6dce956ae52187a7e5 19-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Round instead of trunc
b-ot-layout-gpos-private.hh
b-private.h
0e206de98621ed8a55824b42e9e6bf320f4c6cc8 19-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Fix warnings
b-open-type-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsubgpos-private.hh
d5943407a4251cb947fbfc130c0facb2f6216bd6 19-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Fix debug build
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
12b27ed91de0192deee4e9feffcaf4aca4c78113 27-Mar-2010 Behdad Esfahbod <behdad@behdad.org> Fix leak when duplicating blob
b-blob.c
4b8487d83e0c10076a6c573cb3487790ce366607 16-Mar-2010 Behdad Esfahbod <behdad@behdad.org> Fix the mystery bug!

A couple bugs joined forces to exhibit the mystery behavior of
crashes / infinite loops on OS X / wrong kerning / invalid memory
access. Pooh!

The bugs were involved:

- Wrong pointer math with ValueRecord in PairPosFormat1

- Fallout from avoiding flex arrays, code not correctly updated
to remove sizeof() usage.

We strictly never use sizeof() directly now. And the PairPos code
is cleaned up. Should fix them all. Bugs are:

Bug 605655 - Pango 1.26.2 introduces kerning bug
Bug 611229 - Pango reads from uninitialized memory
Bug 593240 - (pangoosx) Crash / infinite loop with Mac OS X

We were also doing wrong math converting Device adjustments to
hb_position_t. Fallout from FreeType days. Should shift 16, not
6. Fixed that too.

There's still another bug: we don't sanitize Device records
referenced from value records. Fixing that also.
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsubgpos-private.hh
9b39755d104603d1163738f77637cc1923d4055b 15-Apr-2010 Behdad Esfahbod <behdad@behdad.org> Typo
b-open-type-private.hh
f85ec1c7da36d2c2c9b1c94a988563697dcc79c9 10-Mar-2010 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-open-type-private.hh
e48ed72230a83499dabbd02af2ac63340220a353 02-Mar-2010 Behdad Esfahbod <behdad@behdad.org> [ft] Check stream->read instead of stream->base

The former is more robust. See discussion on freetype-devel.
b-ft.c
917c227500305aee543981ad24a39f868c5ca0b7 23-Feb-2010 Behdad Esfahbod <behdad@behdad.org> Make blob unlocking 64bit-safe

GNOME Bug 604128 - Applications crash when displaying Hebrew characters
b-blob.c
ecd2e996d2137fef30011a41dd57ea45f9a796de 23-Feb-2010 Behdad Esfahbod <behdad@behdad.org> Improve the alignment for NullPool
b-open-type-private.hh
bc7830e4259755ce7549025c6f5bf750e78c2ff1 17-Feb-2010 Behdad Esfahbod <behdad@behdad.org> Use __attribute__((unused)) only with gcc 4 and later

See discussion at:
https://bugzilla.gnome.org/show_bug.cgi?id=610183
b-private.h
555d11273ee4c30e84eda3a78ffadb3ee7da65d0 26-Jan-2010 Behdad Esfahbod <behdad@behdad.org> [GDEF] Fix bug in building synthetic GDEF
b-ot-layout.cc
b-ot-layout.h
cd11a98fa1426e9dbc4b61e702913b23a4794ae2 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Fix compile with older FreeType
b-ft.c
7f7448a354c43650348b4e91b4e40ecf18718d66 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Indent
b-ot-layout-gpos-private.hh
e70f45eb522bcb41388cc218b79bbd6aaecf8050 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Revert "Fallback to 'kern' if no GPOS applied"

This reverts commit d740c8f78bcbe80a8bcd8a9468830a406da37cc0.

The change is wrong. If there is a GPOS table, we should not use 'kern'.
b-ot-shape.c
d740c8f78bcbe80a8bcd8a9468830a406da37cc0 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Fallback to 'kern' if no GPOS applied
b-ot-shape.c
2f78c17197892b2bdc2f64caeb1c1c806ef44545 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Remove glibism!
b-ot-shape-private.h
b-ot-shape.c
b-shape.c
907e67da13b5ed719362702138703fe2f90e790d 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Oops, add file.
b-ot-shape-private.h
2014b8d110231b13e524008282ece7451f1ae9e7 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Hook OpenType shaping up

Default features only for now.
akefile.am
b-ot-layout.cc
b-ot-layout.h
b-ot-shape.c
b-shape.c
196610ba4c7071c2b802d0fc921a63cbc0753114 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Pass features down
b-shape.c
51f141a7f38a73f671b23f58cadf97a72c43b625 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Avoid overflow
b-shape.c
26d7a75752631b2596a5bcb7e645b34cc3d139ab 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Refactor hb_shape a bit
b-shape.c
001fc2d2aa22f14302739fe4ca45f7535855e0fb 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Add TrueType kern support
b-shape.c
2c1b85cf66e5ecb7521b6018b76f0e161fb68967 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Direct unicode->get_mirroring directly
b-shape.c
6a2ef5aa5459def232708af30ef8a484906b868b 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Do mirroring
b-shape.c
0465e69832393cc1ed36508ec5d597fbab64877a 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Protect against NULL funcs
b-buffer.c
b-font.cc
5ceefa1d8dbd310570ea8d1c47107fe8d3dc96d9 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Add hb_unicode_get_*() functions
b-unicode.c
b-unicode.h
b8a53e44ce05911ce98b7cff34dee165e19d87ba 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> We'll have to link to libstdc++ if linking to ICU, so disable test for now

We have to get rid of the ICU in main lib. Still thinking about best way
to do it.
akefile.am
314905d7548d5be58354546d660754b807b6efb2 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Explicitly track whether the buffer has positions
b-buffer-private.h
b-buffer.c
314b460d8a02ed4b2789ff527cf6c9bc19769114 20-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Add HB_DIRECTION_IS_FORWARD/BACKWARD
b-common.h
b-shape.c
bdd0ff5290bae4db65c3fdf95c5728031f13ca84 15-Dec-2009 Behdad Esfahbod <behdad@behdad.org> Make main.cc compile without glib
ain.cc
807b8aa486753474e05e09f4fcca8ac94021b97c 20-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Another C++ strictness fix

Pango Bug 602408 - Invalid C++ code breaks compile with Sun C++ Compiler
(Error: A union member cannot have a user-defined assignment operator)

According to the bug:

C++ Programming Language by Bjarne Stroustrup: Chapter 10.4.12 forbids
explicitly using of union members with constructors, destructors or assignment
operations.

So we use a set() method instead of the assignment operator. Ugly, but hey,
that's life.
b-open-type-private.hh
b-ot-layout-common-private.hh
8b9b866d3e495c186f0530fcf4e00ffcdc170d3f 20-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Fix warning
b-ot-layout-gdef-private.hh
c65b26acf28bd1a5b346fd8f6f28bec1f7d17a2a 18-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Use autoconf FLEXIBLE_ARRAY_MEMBER when available
b-ot-layout-gpos-private.hh
b-private.h
d33f674cb793af40f1612df3660b138383f2de95 18-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add Mongolian variation selectors
b-shape.c
d6387757de2c27867d6f57c4ee7c4ef436b3a74f 11-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Fix sanitize
b-ot-layout-common-private.hh
636f017e387d46d4083c9f9ee57647a94dc5dc6d 10-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Remove obsolete TODO item
b-open-file-private.hh
bf2b25dd8591e92f3944c763641b613a70c379a7 07-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Remove done item
b-shape.c
4a8605315901e0ff1e6e09437a92dd5ac39164cc 07-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Reverse buffer at the end if RTL
b-shape.c
ff44f88df2c46920f3ec2384ef321a4c7bb0f6ef 07-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Handle shaping in non-native direction
b-buffer-private.h
b-buffer.c
b-buffer.h
b-common.h
b-shape.c
b-unicode-private.h
b-unicode.c
b4b4272c8d19ba3e0cb8f12b3b7d1590349e3d14 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Oops, wrong change
b-ot-layout.h
52ea47767c7c35650ebddfba6ddc8203a3e33d3a 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Change order of font and face for API consistency
b-ot-layout.cc
b-ot-layout.h
f4f1fc970b3e37d9903cbf5e05bbd38be4df3047 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Remove debug info that crept in
b-ot-layout.cc
aa196d6026b496ec70be3d3588cc8cd2b8ccdb36 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] More ligature/component fixing

We can only reuse the ligid if it belongs to a previous ligature, not a
component!
b-ot-layout-gsub-private.hh
25e7ef704633447f109b148620336c42d6fb310e 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add _hb_buffer_add_output_glyphs() that takes codepoint_t*
b-buffer-private.h
b-buffer.c
b-ot-layout-gsub-private.hh
9db8ad75317d589807e7725455f49cafece58d5d 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add hb_ot_layout_position_finish()

We expect buffer to be setup with default positions before GPOS.
b-buffer-private.h
b-buffer.h
b-ot-layout-gpos-private.hh
b-ot-layout.cc
b-ot-layout.h
edb54e9aeca25f4120a69ed3d5562cbb68fdb348 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Fix FT_Face finalizer call
b-ft.c
3d14528b8b2e7da425a9df7057fc9fb326d8298c 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Rename hb_buffer_get_len() to hb_buffer_get_length()
b-buffer.c
b-buffer.h
1ff7775051559a8ca442be3938450c7ed3817806 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Minor.
b-shape.c
3648bdf5b221adfe01ad99714de420b49964921e 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Fix FT_Face generic finalizer
b-ft.c
5a11c875d8c95d480e6f32b57e969ee34ca1940d 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-blob.c
44533e773f75b9a1171d884fcbe91a2f3879e2d8 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Fix warning
b-object-private.h
bcc0406a525ca3fe597aec5f2a97e5c50965d49c 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> include errno.h
b-blob.c
799b3c375ad0e1293fd37a0e3a0d422a3166dcd8 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add debugging to object lifecycle
b-object-private.h
25edb940ab050545f47a06648e73c192fa213548 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-ft.c
850dc5bb551409bb9bf6113ec2199bb3fb905e43 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Return 0 from get_glyph_nil
b-font.cc
85555a953376ee68a8fcc64485e74d44a353577b 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Initialize font->klass
b-font.cc
bcd26bd7b1c96057bf154d7d50a61018d40f0d29 06-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add TODO item
b-ft.c
f4281e0a92a40746fa630fb15b877adaf3ff15b1 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Fix ref counting
b-ft.c
6358ff45ae8cfc0b58b4976619319e3dde43add2 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add hb_ft_face_create_cached
b-ft.c
b-ft.h
2027f74b286cabe3c60c275170c4f4b437a30f55 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add default positioning to hb-shape
b-shape.c
c3f9f7e59d865f8664862b7ca99d9a3a9221e456 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Fix MarkMark issue with ligid and components
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
d0351314cd29fbdf0efb5c7f89a569648f7a7fc7 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Include stdio.h if debugging
b-blob.c
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
2e336692913405976392bf505028481a5caa53b4 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add hb_font_get_*
b-font.cc
b-font.h
b-shape.c
9bef3611f07b45ba8199a4a339c72f49d266216a 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Rename [xy]_pos to [xy]_offset since we don't accumulate positions
b-buffer-private.h
b-buffer.h
b-font.h
b-ft.c
b-ot-layout-gpos-private.hh
b-shape.c
b-shape.h
2daa47e9cdbfb027f76765301b3a78950e92eb09 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-shape.c
2f50d873680ce0a43b6ec79df1ac946b91f31e63 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Start filling hb_shape() in
b-buffer-private.h
b-shape.c
ae070b7d39d03bd8bc1244f687b24db505f4af3f 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add script and language to buffer
b-buffer-private.h
b-buffer.c
b-buffer.h
8a3511ac6c795226699c2b36e03401ecdf88f5f8 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add hb_language_t as well as language/script conversion to OT tags
akefile.am
b-language.c
b-language.h
b-ot-layout.cc
b-ot-layout.h
b-ot-tag.c
b-ot-tag.h
b-ot.h
b-private.h
b.h
4591753ad4b5ec0224e3f1befdfe4fc5f6075562 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Define ARRAY_LENGTH
b-private.h
214ac7c1ff51b397d227832526f882e824cb9ea3 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Another one
b-unicode.h
1e91434569a9e9535ef021ca52b60b2e2af75d19 05-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Minor
b-open-type-private.hh
48de3730cdf91b9f6473509e22260a902ccec992 04-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Fix previous commit, ouch!
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
e21899bc3593aa0d3adf64cee21c5de2ea219783 04-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Fix array query API

The array query APIs now all do:

- Return the total number of items
- Take a start_offset, such that individual items can be fetched
- The _count IN/OUT variable always has number of items written
into the array upon return of the function
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-layout.h
3b59306b858d31d97be0ea8c64461de1d0d03572 04-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Finish FT glue. Rough and untested
b-font.cc
b-font.h
b-ft.c
7951279b4a52b48f13631e7838dbc180c7249ea4 04-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Implement nil font functions
b-font-private.h
b-font.cc
b-font.h
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-private.h
8fb3d1aa4e613cdf965a83bd650c668884c58ad8 04-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Start ft glue
akefile.am
b-font-private.h
b-font.cc
b-font.h
b-ft.c
b-ft.h
b-glib.h
b-icu.h
b.h
d94647e2cd187bf4a4c8fb1c0c15c3d23c1293ac 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add ICU glue
akefile.am
b-icu.c
b-icu.h
b7dd4b945b4ec384526439b365a25739bf9cd2df 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Fix hb_be_uint16()
b-private.h
cd7555eef27cb18857c0c06d2afdaf3a354a3c15 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Namespace MSVC defines in public header
b-common.h
5ebabecef382c3e8b0a2a5657b2c01f7ff37d796 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Move unicode_funcs to buffer
b-buffer-private.h
b-buffer.c
b-buffer.h
b-font-private.h
b-font.cc
b-font.h
d5a8e46099e363d928b54de104126b1b34ba401c 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> [Makefile] Install hb-unicode.h

Separate OT headers also.
akefile.am
21d0fce3d5364c91e5582bd530210f03e054d1a4 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add check for not linking to libstdc++
akefile.am
heck-libstdc++.sh
ca95ce460adf2ca6901595d4a6107fd000d90151 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Use the C linker, not C++ linker

Such that we don't link to libstdc++.
akefile.am
ffbe0a853d5e7defa85d0eef53814c22d1ecb412 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> More MSVC fixes from Jonathan Kew
b-common.h
b-private.h
d3480ba37fbb5d4be75b094060f5b2f1ce98fb53 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Don't use zero-sized arrays

It's not part of the standard and MSVC doesn't like it. It makes the code
a lot less elegant than it used to be, but I think it should work now.
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.h
6bec81aa3a58b8be255568b2ea63b7854e1b0ea7 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Cosmetic
b-ot-layout-common-private.hh
2f3e69f3cb7e571cc62b0840d0b3f2072b29345a 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Fix build without glib, again
akefile.am
63a792a811e0ad69d05e8805d4f347bd533db4c3 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Update Makefile to build without glib
akefile.am
b-glib.c
68a2c771e2b923461a552bf3673e9e8245e1bfea 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Build without glib

Thready-safety disabled in that case, until we add support for pthread, etc.
Fun...
b-private.h
cc4c096a7e08ae96b3030fe27f871ce5b797f370 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> MSVC has no stdint.h
b-common.h
9a204c7ab57ca0a866c72e1431c54a8883b15605 03-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Remove use of GINT16_FROM_BE
b-private.h
1f0ceeb8cf2fad0a0dfd338ce1472470a81789d4 02-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Install library
akefile.am
29aa40018301a4f138cd5e73463079c7704bf3ac 02-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Add build system
gitignore
OPYING
akefile.ng
EADME
ODO
c09ed9801ead002d6f8e507ce664b83707b202e9 29-Oct-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add glyph_metrics typedef
b-font.h
91b1e03e0312be2a7a165308239b40449e3ab360 29-Oct-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add point_index to get_contour_point()

Pointed out by Keith Stribley on HarfBuzz list.
b-font.h
aa87d951739f6beacb66daa235cd033fdcfcadd7 29-Oct-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix lookup_flag ignoring

Reported by Keith Stribley on HarfBuzz list.
b-ot-layout-common-private.hh
b-ot-layout.cc
52e9a71d578c5171bbb0f4bfc1b70841c3270328 21-Sep-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add comment
b-ot-layout-gsubgpos-private.hh
f9c0a2dad09cd168fb28cdee09b4303f307ea56d 21-Sep-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix apply_lookup() loop

Part of Bug 595539 - Regressions in rendering certain Thai sequences with
OpenType font
b-ot-layout-gsubgpos-private.hh
c0ab43c05833e8fc06d770a89370bec58a627e74 21-Sep-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix bug in chain_context_lookup() invocations

Part of Bug 595539 - Regressions in rendering certain Thai sequences with
OpenType font
b-ot-layout-gsubgpos-private.hh
e6bd4e93bd5722249ab977dfa98bdc8eb765318c 31-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add TODO item
ODO
3e2401f6c53d2b047954d75c37aef5e5e7cdc51a 28-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Rename DEBUG to TRACE where appropriate
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
0535b50f436f3dac85e6df1761957f86c2bd7213 28-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add GSUB/GPOS tracing
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
95e202403ffa543c817f45cca21fbc116eb8e807 28-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Allow enabling different debug facilities individually
b-blob.c
b-open-type-private.hh
37006bd1bd107ac1a1c1b131579e9c494ba3a20f 28-Aug-2009 Behdad Esfahbod <behdad@behdad.org> Fix stupid array growing bug
b-ot-layout.cc
9897749113f76dc26a83bfae8de62e55d384fcad 27-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify counting
b-ot-layout.cc
81a5c4df94e7c6066314d5fe75bbaf24483bc022 27-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Indent
b-blob.c
c91facd83b5dc3b9aed75617c7c35585ff18889f 27-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Bug 593231 - < c99 compiler dislikes ValueRecord
b-ot-layout-gpos-private.hh
f0c7540c4e217a7354072365a7301453d1e25b80 20-Aug-2009 Behdad Esfahbod <behdad@behdad.org> Bug 592484 - invalid write in HB

Fix off-by-one.
b-ot-layout.cc
b614b004723ead60849dd37e7ba2faee67cebd93 20-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB][glib] Make glib unicode funcs static
b-glib.c
8b5346130425c7c101f6ff2432874ba2fd372edc 20-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix more casts
b-open-type-private.hh
9d2e02db74deb3b3b92beab96f112cc387c8bd88 20-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Rename CAIRO_ in macro prefix to HB_

Hiss!
b-private.h
388ad037ff399c23c5e24bbcede27e0e35bed07e 19-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove HB_MEMORY_MODE_READONLY_NEVER_DUPLICATE

Unlike the rest of the memory-mode enum, this one didn't only
describe the access mode of the input memory region. Remove it.

If someone wants to inhibit duplicating, they can lock the blob
and throw away the key.

Based on mailing list discussion with Carl Worth.
b-blob.c
b-blob.h
977eeb714454630bd045bb11f58ff6397f10b143 19-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] s/writeable/writable/g
b-blob.c
b-blob.h
b-open-type-private.hh
2f5931e404cb56e31d24b2eb7ff0a849fb077b55 19-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Hide lig_id and component members of hb_glyph_info_t
b-buffer.h
6b600dd6199104cff01b3fa43d2abb52ae4319ea 19-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix typo
b-font.h
32c65a5ca3bde673bf2aa8fca911dd32914d3122 19-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add font funcs prototypes
b-font-private.h
b-font.cc
b-font.h
8f034d5849627ee95a5889fa34c9ba294fff13ca 18-Aug-2009 Behdad Esfahbod <behdad@behdad.org> Fix a few other pedantic warnings
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
864e2560b627f1e73be3b0635e02f00844cb67c3 18-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix pedantic warnings
b-blob.h
b-buffer-private.h
b-buffer.h
3e09722214d9bbcc9014409342072c79d0c4447f 18-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix more wrong method signatures
b-ot-layout-common-private.hh
822e99fe9ae920df41a0bd3f1125495c2ea96b45 18-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix wrong method signature
b-ot-layout-common-private.hh
4ff2a58952f010c6252f06e5f404d6840d257250 18-Aug-2009 Behdad Esfahbod <behdad@behdad.org> Bug 592194 - Fix missing _SC_PAGE_SIZE macro

Autoconfiscate a simple call to mprotect() even more.
b-blob.c
3c69bd46e27069fac0bfdefdecf5492c17eb01df 17-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Avoid int overflow in GPOS

Bug 592036 - integer overflow bug causes misrendering of Nepali characters
b-ot-layout-gpos-private.hh
b-private.h
b2b18ef43c5bac6a5bb8412da7c9a37f815d4deb 15-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify loop
b-ot-layout-gpos-private.hh
b41f210d12d8df48e645823463343f7e14b0ddd0 15-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Merge mark positionin code between three types of lookups
b-ot-layout-gpos-private.hh
cd33cb9ed84308da72bd7c64b9355dc2410c63ec 15-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More minor shuffling
b-open-type-private.hh
b-ot-layout-common-private.hh
80e2aa2e1bfa2c8ecedcfa4cce8cadeb15792ac3 15-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Move code around
b-open-type-private.hh
b-ot-layout-common-private.hh
3564ee5216004d45d30b0ded61184cf8dde5dd89 15-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Correctly sanitize LigatureAttach
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
cb71a2fb76c6ddee050f775eb299ee44230c3ac9 15-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify MarkBase and MarkLig too
b-ot-layout-gpos-private.hh
dfa54f4440960c39d37ef02fff4c0d9eb315d4b4 14-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify MarkMark
b-ot-layout-gpos-private.hh
815a73e4202ca17677f12e862b70ca8724cf2f57 14-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix possible int overflows during sanitize
ODO
b-open-type-private.hh
b-ot-layout-gpos-private.hh
ae728e51e94d18d731b7c8dc524da1a4f427d63b 14-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Debug output for SANITIZE_MEM()
b-open-type-private.hh
41895506cb6a41b1a833866f8822261ea449ea0b 14-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use inline function for SANITIZE_MEM()
b-open-type-private.hh
95528131b5ab9fc9e265ace715832135ebd457a4 14-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use SANITIZE_THIS() when applicable
b-open-type-private.hh
5769538abfe153c503da4801649493e57a9854c2 14-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add note about auditing sanitize code for overflows
ODO
b-ot-layout-gpos-private.hh
15232e26f4a89dab1b6de35ad9d3d16e75bf93d0 13-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add empty hb_shape() API
akefile.am
b-shape.c
b-shape.h
2866d2974b6768e93cc7d473d14c5a8abae5f7fd 13-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Bitfield packing *is* very delicate

Fix the second instance.
b-buffer.h
ec90ee23b29aab187c3fa209970aa97434c84b1b 13-Aug-2009 Behdad Esfahbod <behdad@behdad.org> Bug 591511 – hh-blob.c does not compile using mingw on windows

Check for sys/mman.h, not mprotect().
b-blob.c
12eae6d55d468ff2fbe2bc12bec188d313c671f9 13-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix buffer sizing issue with mingw gcc

Bit field packing is a delicate field. Issue reported in comment 3 here:
http://bugzilla.gnome.org/show_bug.cgi?id=591511
b-buffer-private.h
6936706cd77f96961a1239d0c9dc8ede64d7f06d 13-Aug-2009 Behdad Esfahbod <behdad@behdad.org> Bug 591413 – needs to link with libstdc++

Enforce -fno-exceptions better.
akefile.am
c486ea9c3582710474c1085c21c1dc5e2700adc3 13-Aug-2009 Behdad Esfahbod <behdad@behdad.org> Bug 591511 – hb-blob.c does not compile using mingw on windows

Only call mprotect() when available. For optimal performance, a win32
way to make memory writeable needs to be added.
b-blob.c
a579584594f1ca4781f1c5b92ad78513c0b37480 13-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add comment
b-buffer-private.h
b6e66ee102eb5b64d945e5a73ab63fe8cac5edcb 12-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Always clear positions if dirty, before returning to user
b-buffer.c
e4679d9fae43f3219c476c5b9e411d1f5d0d5bae 12-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix _hb_buffer_next() when positioning

We were copying glyphs to output. This should not happen when in
GPOS. Back then it was fine, then some optimizations broke then
assumption.
b-buffer-private.h
b-buffer.c
5ccf1ba339d6ffb4469f1c4f20d8d8d00012c857 12-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fixed signedness warnings
b-open-type-private.hh
f71329147bd3087588cfeafd6feff45f29d1ca7a 12-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Ouch. Fix compilation.
b-ot-layout-gpos-private.hh
0532ed160c678b5404b20594fd2ca9a640bf6a0a 12-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix invalid access / overflow on x86-64

Bug 591557 – [HB] crash scrolling the evolution message list
Bug 591576 – crashed with SIGSEGV at pango
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
8d70312c7b899131c3aafa7a43527ef3ced33bfe 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add hb_font_funcs_make_immutable()
b-font-private.h
b-font.cc
b-font.h
3284d05da27c338d94f0da99df66d924cd9d6717 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add missing initializer
b-font.cc
081819ea8b98c0a4b4dffe8d4aca3512f9798719 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [OT] Hookup glib unicode funcs
b-buffer.c
b-glib.c
b-glib.h
b-ot-layout.cc
b-private.h
49f261df2aa753e8b09e97f7835e6a827f92970a 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add hb-glib
akefile.am
b-glib.c
b-glib.h
b-unicode-private.h
b-unicode.c
b-unicode.h
eb27ec0cef0d92740875ab5035b53acc639e5fae 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add hb_unicode_funcs_make_immutable()
b-unicode-private.h
b-unicode.c
b-unicode.h
af9e104028b7cdc1fbba0eb1d86cfa4d5258657f 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use nil unicode funcs in nil face
b-font.cc
b-unicode-private.h
b-unicode.c
48910f8f0034c54b4e11cef3d08aa40e52c06b28 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Initialize unicode funcs to nil getters
b-unicode.c
04cc0a29ee1472c318c36efcd19b9c1a6657d9ea 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Flesh out Unicode funcs
b-object-private.h
b-unicode-private.h
b-unicode.c
b-unicode.h
299f08961ffcea27e8def4f0743d0c86ef8dadf1 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Implement buffer UTF-X input
b-buffer.c
b-buffer.h
1b7b97f28ac192006ca5b6d1cc9fbc80fa2bdb55 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add buffer UTF-X API
b-buffer.h
fbaf8ffa098bd2b6fb4f4bc2d04b360a319c4af5 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add hb_buffer_reverse()
b-buffer.c
b-buffer.h
cbe5a4e08e6c2ccfdf98e630d48ec9da69374516 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Reuse the positions array as alt string array
b-buffer-private.h
b-buffer.c
5c44188455ca1b696aa24b20c3a83877dfae2fb2 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Start adding Unicode funcs
akefile.am
b-font-private.h
b-font.cc
b-font.h
b-unicode-private.h
b-unicode.c
b-unicode.h
20b035dad41247076815a2bbb0346d63058b322f 11-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Put C++ inline's back

Apparetly in C++, inline means a totally different thing.
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
a62f776d8e7e3e57d28ee71b34abab0a5b8471eb 10-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Don't override CXX compiler

Just add couple of options to it (still assuming gcc)
akefile.am
6bdab706ecb41c1305e85d041a586e86c54d0ab7 10-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Indent
b-ot-layout.h
797724904a3ab294f8390d4ff80c299d8213a5c6 10-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove unused code
b-ot-layout-gdef-private.hh
284899ccbe79fda7405ab09d3092fc25fd89e810 10-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add a NEXT() macro
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
918572fc870dfd7596155ce700247a5bb024fb1a 10-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove done TODO item
ODO
67cb8111f209de26b3afa46e9fb7e4d01c9ecad4 09-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Print mark sets in main.cc
ain.cc
17878255fa88e76cd503461fc1ade2ed365cebd2 08-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove hb_ot_layout_table_find_feature()

That function doesn't make much sense as multiple features in the table may
have the same tag.
b-ot-layout.cc
b-ot-layout.h
468769b8f5332940278244e744ec2bd5a5dc5ee9 08-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Rename hb_ot_layout_feature_mask_t to hb_mask_t
ODO
b-buffer-private.h
b-buffer.c
b-buffer.h
b-common.h
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout.cc
b-ot-layout.h
7f96b39a9d5a81ba77e0c3dea8fe2cdb9957c4c7 08-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix bug introduced recently
b-open-type-private.hh
bff3c0fde5da04a70d1f7aeeb9fa2a75fe5c07f6 08-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove clumsy macros and improve API
ODO
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
b-ot-layout.h
d0b657379bbe63602953412d6bc944b2a0f430eb 07-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix various XXX issues
b-open-type-private.hh
b-ot-layout-gdef-private.hh
82199868fb036b63799af761762225d45d36f575 07-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove unused var
b-ot-layout-private.h
07e69226cbd4167741fd868a3125487bbabb99dc 07-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove another stale XXX
b-ot-layout.cc
e605c367c5627e7ab05af9cb59247a89290e598a 07-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Rebrand XXX as TODO
b-open-file-private.hh
c5a13048e21fcfcfd3b74f800e8d521e6245b451 07-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove stale XXX
b-blob.c
9e826ea2832f0444bcef9075b445d481a58a09c2 07-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix unaligned access
b-open-type-private.hh
b-private.h
71a8344a5eeaa34e31d53138cf3bbe30b819f83c 06-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove a few 'inline's, though the compiler mostly ignores them
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-gsubgpos-private.hh
7f3d5c8166e5205e9d9bf8b4b2f31d44387a8006 06-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix blob to use a actual mutex
b-blob.c
b-object-private.h
b-private.h
a794ebf4be9896393f4badf02905a4007981a588 06-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use glib again
akefile.am
b-blob.c
b-object-private.h
b-private.h
9b76a290a94f2603f3cb9498ae976125347cf54b 06-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Improve debug output
b-open-type-private.hh
9faee63034d3965735bd6362c0beeca1613bd771 06-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Minor
b-private.h
f72059ee6946d9b4812b794f662ee83c7e25fe53 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add a few TODO items
ODO
0d77ab8a73f57c9fca4c6f9301dae394d79526e3 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Improve debug output
b-open-type-private.hh
268cac4c9ef8cb592cfb8507273332165b8d3ad3 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix blob unlock
b-blob.c
7acb389569cf99c6bae9db31a8ed7c7007fbb566 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Improve debug output and fix mprotect bug
b-blob.c
b-open-type-private.hh
b-private.h
ec9f8db0d3cad146801b7dc5c59e517de3b6fa34 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Minor
b-private.h
d341881d9a0f835f691b121480046081ad162918 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix build of main.cc
akefile.am
8f3be25e7ec88ea451ee8097bf32e5f729f4fef9 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] turn debugging off
b-private.h
62ed5850d9e0e0d0231889470d58e815420c21e5 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix another sanitize() bug; hopefully it's the last one
b-ot-layout-common-private.hh
90482b68178b687c0f0a3f82cd6a36b2c0bb9384 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix a couple other sanitize() bugs
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
4f3ad9115a4161fc23fa559c26082440196217ec 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More debugging output
b-open-type-private.hh
8cd6fa28d1b77100491519b8dedb2e113508bf59 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix fatal Sanitizer bug
b-open-type-private.hh
2870ac5e5d5d87646a4b273a9805fb3fcf280f97 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add missing sanitize
b-open-file-private.hh
b28815c1f6e46d38471cacbc31248ca6fda8c4d1 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add sanitize debugging facilities
b-open-file-private.hh
b-open-type-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-private.h
7edb430f9182723b7b720708c56088cec1200a70 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Rename open-types to open-type; beauty
akefile.am
b-open-file-private.hh
b-open-type-private.hh
b-open-types-private.hh
b-ot-layout-common-private.hh
f4b58d3fc2956a9d1b6178588d809c781f7a5c0c 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Save edit even if not writeable
b-open-types-private.hh
9bd629ccd064e739789e504c41ad875eed93abba 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix warnings
b-open-file-private.hh
b-open-types-private.hh
b-ot-layout-gsub-private.hh
5ff4e13143c227fa57854c987b5a98e610f89361 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Avoid infinite recusion in Extension sanitize()
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
d60bb8ca2ae6edf29b2227b56c57f0d16879370b 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Hook Sanitizer up. Hell's breaking loose right now
b-font.cc
b-open-types-private.hh
b-ot-layout.cc
679f41fe61242aa8d7f45b64bdb66395aa530fe2 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix leak
b-ot-layout.cc
4e8a0602bb0b3cbf7f26cc38790e37cdec7b0b37 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add Sanitizer
b-open-types-private.hh
2765d333e523a13dbd932fa33f3b39a5cf83f0f7 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add XXX
b-open-file-private.hh
a328d66e6a8122f7d4d71941449d4d0136203e08 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Minor cleanup
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
577c1116493d785d3455626612f97dabb383abf0 05-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Shuffle code around
b-open-types-private.hh
b1e187fc6365f5355c652a61494a5e9f6acf51b4 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More sanitize infrastructure
b-open-types-private.hh
b508e5ccd528f3f0f49f545bd5f30a525d5abd5a 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] open-file sanitize()
b-open-file-private.hh
b-open-types-private.hh
738c54d9caa3affc4b434e56bfb810ff6dc9b0b3 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Tag sanitize()
b-open-types-private.hh
b-ot-layout-common-private.hh
e49a84c9e37c08808880e74e94c8160731ababa1 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] GDEF sanitize()
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
18939487d04dba86880b0af8e89cf2cc44a431f5 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix Extension sanitize()
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
f2be750981be58a723831e69b1670275851d4be9 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove stale TODO
b-ot-layout.cc
ac26e2a838d1266bb5f39c43245eb2a52c5e072d 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Hookup NEUTER()
b-open-types-private.hh
15164d9258a74122a4db748d35532bd72c47cec2 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix mix warnings
akefile.am
b-font.cc
b-open-types-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout.cc
ain.cc
42b778f89e0818fe06910ce04e2203485823da09 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] GPOS sanitize()
b-open-types-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
dc9c4d93cd0f3ac991f32df08c1c17fc389054c0 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Sanitize DeviceTable
b-open-types-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsub-private.hh
ad3a3cd4955661c591b20af1f2c493432f0bebf0 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More casts
b-ot-layout-gsub-private.hh
95639fccc1ef18eadeb737e8b611d1d1f1315fc2 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix couple of bugs
b-open-types-private.hh
2b5a59c277f4c5bf7aac9a9005054763e322e02d 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More cast cleanup
b-open-types-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
196598bbccff08415ff5192314cba044df258cad 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [Hb] Use reinterpret casts instead of direct casts to char *
b-open-file-private.hh
b-open-types-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
92b5dd8e71e1bdeaa6e86a53f167683a3f5f4289 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Merge more templates
b-open-types-private.hh
e6ab2c59ba2d37942ac5fcbfe61d38b7e359ac8c 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify indirect sanitize()
b-open-types-private.hh
b-ot-layout-common-private.hh
29d8644a315ebe6976f15db2fe96069376d9b8cd 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Finish GSUB sanitize()
b-ot-layout-gsub-private.hh
cf086adca1b7b5a361a248808f9a847e513d3630 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add comment
b-ot-layout-common-private.hh
a97ce570ab693190350886e4e80942851c4d5727 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Optimize sanitize()
b-open-types-private.hh
cd3827ee567612c5500206b62840702fc956e0f5 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More sanitize()
b-open-file-private.hh
b-open-types-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.hh
b-ot-layout-gsubgpos-private.hh
70de50c11ed7037b20eb6814ff60f6e32a9944e4 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Start sanitize()
b-open-types-private.hh
b-ot-layout-common-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
5fc22e647c8a2bf6d3cb59185e351ac625e7e322 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove use of typeof()
b-blob.c
b-buffer.c
b-font.cc
b-object-private.h
70e0f2a75ec1559f2f70ada837ce4bc4baca49e3 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Make it all work again
b-font.cc
b-ot-layout-private.h
b-ot-layout.cc
23c86aa0009324433e78fcd0c47f2c0ff14b1949 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use face_t directly instead of ot_layout_t
ODO
b-font-private.h
b-font.cc
b-font.h
b-object-private.h
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.hh
b-ot-layout-private.h
b-ot-layout.cc
fc6c94002dd5478cf9fbdaff12d8374a786c85e1 04-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify sub-blob support
b-blob.c
b-blob.h
a26442437ae9f11674e0d68cd5cbf395ade7695d 03-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add sub-blobs
b-blob.c
b-blob.h
b28e21b90c4105a0c2e17009b748777294614664 03-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Rename hb-font.c to hb-font.cc
akefile.am
b-font.c
b-font.cc
5f5b24f99f52bbc922e238b65c06061ba07c8548 03-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [OT] Rename C++ header files from *.h to *.hh
akefile.am
b-open-file-private.h
b-open-file-private.hh
b-open-types-private.h
b-open-types-private.hh
b-ot-layout-common-private.h
b-ot-layout-common-private.hh
b-ot-layout-gdef-private.h
b-ot-layout-gdef-private.hh
b-ot-layout-gpos-private.h
b-ot-layout-gpos-private.hh
b-ot-layout-gsub-private.h
b-ot-layout-gsub-private.hh
b-ot-layout-gsubgpos-private.h
b-ot-layout-gsubgpos-private.hh
b-ot-layout.cc
ain.cc
2098a021a826e76ee27d5db74e32738d7d1c3d30 03-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Move OT file handling out of ot-layout
akefile.am
b-open-file-private.h
b-open-types-private.h
b-ot-layout-common-private.h
b-ot-layout-open-private.h
b-ot-layout.cc
ain.cc
0ead481a5a8623103565fd7d924666e7342278dd 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Port ot-layout to new public API
ODO
b-common.h
b-font.c
b-font.h
b-ot-layout-gdef-private.h
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
678bed433371d90536976a2d57195c1e1867f766 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add top-level header files
akefile.am
b-ot.h
b.h
2c80296aa5991ad67483889147f5c84fefe54af2 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add XXX marks
b-ot-layout-private.h
b-ot-layout.cc
c46f8efd6ddd981b5724b2600ac98a80193385be 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Rename _duplicate to _copy

To be in line with cairo
b-font.c
b-font.h
f1ebe44985e2192844cf1747a4e36ed81e715ce6 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Cleanup TODO
ODO
f1322e52d557726baa010be8d35a594748e8fa1a 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Cleanup public buffer structs
b-buffer-private.h
b-buffer.c
b-buffer.h
b-ot-layout-gpos-private.h
b-ot-layout-private.h
b-ot-layout.cc
6d5bb18e93d2a53350b342869a3ec8f25f0396c2 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [OT] Match struct with HB's
b-buffer.c
b-buffer.h
b-ot-layout.cc
11fbb5487d9900a019440ef8235f35c9f525decb 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Port buffert to new object API
b-buffer-private.h
b-buffer.c
b-buffer.h
0cc7bc59ea6e8f38bf1e196c558cca9862ac3302 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Move typedef's around
b-blob.h
b-common.h
b-font.h
a12dd324a3859496a95602d426aee34ce6c5c8a6 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add get_reference_count()
b-blob.c
b-blob.h
b-font.c
b-font.h
b-object-private.h
baec684fde2303edb16341bfcf1022cd72acf129 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove glib dependency
akefile.am
b-buffer.c
b-private.h
ain.cc
df66028781a7609a515980e64396e6f1044d764a 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Assorted compiler macros
b-ot-layout-open-private.h
b-private.h
ba8d94ce3360bfaf2c530d01f2af69237018a531 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify object creation
akefile.am
b-blob.c
b-font-private.h
b-font.c
b-object-private.h
b-private.h
b-refcount-private.h
c62b503770325819f249885dfc9d4683a69c9efd 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add abstract font and face API

Not used yet.
akefile.am
b-blob.c
b-font-private.h
b-font.c
b-font.h
b-refcount-private.h
35a7383c6138fd705560f0d4bb30659cbd1ab64c 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify refcounting functions
b-blob.c
b-common.h
b-private.h
b-refcount-private.h
23af767a4475fecc1fe9fe9108f12c05c89bc8c9 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix for dfont's with multiple faces
b-ot-layout-open-private.h
e97a95f2ea2770689bbf076d3c3ac404f273271e 02-Aug-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use calloc instead of malloc where feasible
b-blob.c
b-buffer.c
0090dc0f67b553d2f6eaaedc289c0956ade09ef6 30-Jul-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove hinting setting and use ppem==0 to mean "no hinting"
b-blob.h
b-common.h
b-ot-layout-gpos-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
f0954d1e08ae288eda9904e17108fc73f48c0b98 30-Jul-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add a "blob" manager
akefile.am
b-blob.c
b-blob.h
b-private.h
b-refcount-private.h
02a370697d25b986dbf1d5c38f46a89a4833b495 30-Jul-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Move direction to buffer
b-buffer.c
b-buffer.h
b-ot-layout-gpos-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
7cda6fa24c26887c5543d0657b07aad466452cb3 30-Jul-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Rename internal vars
b-ot-layout-gsubgpos-private.h
b196e6f2743d631ef181f1116370be3055063d36 28-Jul-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix buffer enlargement. Ouch
b-buffer.c
f9cd1014f8f4d0394b5e0e9eefc1e2af13c59cab 28-Jul-2009 Behdad Esfahbod <behdad@behdad.org> Apply patch from Jonathan Kew
b-buffer.c
b-buffer.h
b-ot-layout.cc
b-ot-layout.h
b-private.h
2ebb89d63dd27e800f2b6cbf624924601105f48a 26-Jul-2009 Behdad Esfahbod <behdad@behdad.org> Revert "XX"

This reverts commit c939f6aff405ca7b10b1f1538f46148bff719fcb.
akefile.am
b-buffer.c
b-buffer.h
b-common.h
b-ot-layout-gdef-private.h
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
b-private.h
55520d2af172f5f6617b909e80cbd7d898f2bc15 11-Jun-2009 Behdad Esfahbod <behdad@behdad.org> XX
akefile.am
b-buffer.c
b-buffer.h
b-common.h
b-ot-layout-gdef-private.h
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
b-private.h
f53d434b9151c4ec43c148734b49bb165e522cc9 31-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Advance buffer cursor in SinglePos lookups. Ouch!
b-ot-layout-gpos-private.h
e35bbd570a5d914f86f1ea83941ee4328f268059 30-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Improve buffer. Don't dup out buffer unless out is longer than in

That is, we work in-place even for ligatures now.
b-buffer.c
b-buffer.h
6734ed4b6b2ce382917bf644aaf1acfa993f00ad 28-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Fix property checking
b-ot-layout-gpos-private.h
cc83ae12484108586fba6586bd9008971338b322 27-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Add vertical TODO
b-ot-layout-gpos-private.h
b69d38e7eaea544ba6c1876cdc6ddac61a698dd3 27-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove useless include
b-ot-layout-private.h
6c8108cb583292a679b05844ab613b7f4587adc6 27-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Remove unused variables
b-ot-layout-gpos-private.h
09c292e3b688a67fbae67b645d1e6ffcf8d8eb6e 27-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix glyph properties
b-ot-layout-common-private.h
b-ot-layout-open-private.h
b-ot-layout.cc
64e33f008ff9cc807fdfdc4553ad3fe01bb0615f 27-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Fix PairPos signedness
b-ot-layout-gpos-private.h
80ea5bd10e72561a7627a5196621a6d7eccd91b7 26-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Fix mark matching
b-ot-layout-gpos-private.h
4189b92aaa41e4a1756c561cc6e08b0ed024afda 26-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] When looking back/forward, skip marks only
ODO
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-private.h
b-ot-layout.cc
1246e41021ab1d782b4c97e5d81c4917a57e3ed4 26-May-2009 Behdad Esfahbod <behdad@behdad.org> [GDEF] Support MarkFilteringSets
b-ot-layout.cc
5130c35e93528bcf3095fee5baf3847589167a58 26-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify MarkAttachmentType handling
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout.cc
e4b92b85a7750bd4271ad607b3c41f0184e89feb 26-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Support parsing MarkFilteringSets introduced in OpenType 1.6
b-ot-layout-gdef-private.h
b-ot-layout-gpos-private.h
b-ot-layout.cc
515ce4ceb2ab0151d8dfc03ff0bfc7d110dd93b5 26-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More de-C++'ization
b-ot-layout-gsubgpos-private.h
d7df42d7ee586219475878d160f85ae5a188bd59 26-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Start MarkFilteringSet support
b-ot-layout-common-private.h
62964afcecd96038cfaa8bc2bc931f43ee83be7e 26-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Implement get_lig_carets()
b-ot-layout-gdef-private.h
b-ot-layout.cc
b-ot-layout.h
ain.cc
79420ad9caf2d5fc94c3693e8292edfa27060b2d 26-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add get_attach_points()
akefile.am
b-ot-layout-gdef-private.h
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
b-ot-layout.cc
b-ot-layout.h
ain.cc
855720ca47bf5a7a44eb5b84dce9f7da6e7156bd 26-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove more macros
b-ot-layout-gdef-private.h
c968fc2dc87cf85b53f60a40db59d5ee7b992edf 25-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More buffer cleanup
b-buffer-private.h
b-buffer.c
b-buffer.h
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-private.h
88a5f5a49b6809d88560791f9cf6b8f78f22a4ad 25-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Cleanup buffer
b-buffer-private.h
b-buffer.c
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout.cc
347f0b8621d3adfec157e5634ff3defc818ea37f 25-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Clean more
b-ot-layout-private.h
b-ot-layout.cc
d9d2a07f4a8696666a12f5a206aa9cfb56dc2b35 25-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove one XXX, add another
b-buffer.h
b-ot-layout-private.h
6c78683c042250a7b5a6fc6ebae4717b03fadf9e 25-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Update copyright years
b-buffer-private.h
b-buffer.h
b-common.h
b-ot-layout-private.h
b-ot-layout.h
b-private.h
4497af0069a94c69fc1518b1db2c1282721b732a 25-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Would have helped if I actually knew C++ before using it...
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
cc6c644ff2af5f6669b6ec100ff13e904872b21c 25-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More cleanup
b-ot-layout-common-private.h
b-ot-layout-open-private.h
20cc86b3592db33731de671f008d7d222776be49 25-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify Tag
b-ot-layout-open-private.h
3ec0092c5e2d48e8c4fc1618d3bee427adddb1e7 25-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify more
b-ot-layout-open-private.h
6ad8d5f3c7028147b371137ae4bca6aae66b3489 25-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify some basic things
b-ot-layout-open-private.h
ain.cc
f96ffd43bce0ac6d9c897933c9be0e51d543e570 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] simplify macros
b-buffer-private.h
b-buffer.h
b-common.h
b-ot-layout-private.h
b-ot-layout.h
8e7b30782a12f3997b9a5a18e6b9d01f6bff8b46 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Update text files
OPYING
EADME
fa7d47249496fe00ea1ab6943b385c8dd80e5ce6 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove stale makefile.msc too
akefile.msc
da2c52abcd75d46929b34cad55c4fb2c8892bc08 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove old code!

Goodbye 16 thousand lines of ten-year old code!
arfbuzz-dump-main.c
arfbuzz-dump.c
arfbuzz-dump.h
arfbuzz-gdef-private.h
arfbuzz-gdef.c
arfbuzz-gdef.h
arfbuzz-global.h
arfbuzz-gpos-private.h
arfbuzz-gpos.c
arfbuzz-gpos.h
arfbuzz-gsub-private.h
arfbuzz-gsub.c
arfbuzz-gsub.h
arfbuzz-impl.c
arfbuzz-impl.h
arfbuzz-open-private.h
arfbuzz-open.c
arfbuzz-open.h
arfbuzz-stream-private.h
arfbuzz-stream.c
arfbuzz.c
arfbuzz.h
e5372f1621602dcee4e14a4b22dc182c21502a50 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove stale TODO mark
b-ot-layout-open-private.h
96908b898476ca5d7da5f386b15be76f9e83d76e 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add FixedVersion cast to int
b-ot-layout-open-private.h
957740dd253475020a94a62ec5dfcd03e3358176 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify tag
b-ot-layout-open-private.h
87fcdcbe3644da10154688765db2d62eb9ac079a 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove unused data types
b-ot-layout-gdef-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
5876bf1b73fcb56cc41b4d348248a4817f9688cb 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify version check in GSUB/GPOS
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
212aba6189d7aaac0bab169b77ae6bdab16800a5 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Check for GDEF/GSUB/GPOS versions
b-ot-layout-gdef-private.h
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
a21b5062cc32c04eeee3c4b20d26c7e2b34133e9 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Minor
b-ot-layout-gdef-private.h
b-ot-layout-open-private.h
a080b1cc2f66d6e109d431a1e09519d7cf53bb9a 24-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add TODO items
ODO
e4efdd80a8fa4edbcdec9cd84f35f5f4521943c2 23-May-2009 Behdad Esfahbod <behdad@behdad.org> [GDEF] Add some get_carret_value() code
b-ot-layout-gdef-private.h
9b006bc0322723d065271e4b0ea4f137f81101e1 23-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] MarkLigPosFormat1

GPOS is complete now! Yay!
b-ot-layout-gpos-private.h
923923feb248250626c637c11a886804011197b0 22-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove apply_subtables() again
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
d468f9af5b9fdc2713b0b86f28129e4190ee5053 22-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Share Extension lookup code between GSUB and GPOS
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
498f1909e0f7a32484b2058622c4a018cbfc1334 21-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Remove printf. MarkMarkPos1 is working

The "bug" was in the font.
b-ot-layout-gpos-private.h
c7d457aa3ae7138630f52ca7263f663a3ea284c0 21-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Ouch. Add files.
b-common.h
b-private.h
fe550f4dd815285e9de8c3cbff810b0a1c7b377f 21-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] MarkMarkPosFormat1

Still not quite working.
ODO
b-ot-layout-gpos-private.h
357ccde36bba01a405d59b7da061fc5048cdc7b4 21-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] MarkBasePosFormat1
ODO
b-ot-layout-gpos-private.h
377bfc5860ae018f54e4a2dd737b4b000383ab54 21-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Implement MarkArray interface
b-ot-layout-gpos-private.h
c18ec2b1d7b8c7abe6ebf4b53c9ec75d5c9bb255 21-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Implement Device support in AnchorFormat3
b-ot-layout-gpos-private.h
fca6a0d158b847181dcf67a13f34499177df899b 21-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Remove apply_value() return value
b-ot-layout-gpos-private.h
fb3b5ccfefc4c38c9184d432703e81f73e1f5bc7 21-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Start MarkBasePosFormat1
ODO
b-ot-layout-gpos-private.h
ee8776d9e009a7fb8e1f3c1f9cf3ad42d9746a16 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add TODO item
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
c6456ca5cfc35095378dcf29f8edc33ece9c3ea1 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add TODO item
ODO
3015c4175179a1816aad2a4950da9a3b8baf2578 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove last dependence on the old code base!
b-buffer-private.h
b-buffer.c
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout.cc
5c0adce1ccc739415c4b26ff13ffd2d77ea4bc6c 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Rename harfbuzz-buffer to hb-buffer
akefile.am
arfbuzz-buffer-private.h
arfbuzz-buffer.c
arfbuzz-buffer.h
b-buffer-private.h
b-buffer.c
b-buffer.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
b857b49c82782d29d6d189f1a9f4a84d39cd84ea 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove all references to the old code!
akefile.am
arfbuzz-buffer.c
arfbuzz-buffer.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
e1593a6e620ee6a8184487185d1c95e0d1820ba5 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Finally it's working, up to Cursive

Wow, IranNastaliq renders perfectly again!
b-ot-layout.cc
b-ot-layout.h
0f7e6b2cead0c7d527ef68ededb27e0afd71d819 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Fix more brokenness
akefile.am
b-ot-layout-gpos-private.h
b-ot-layout.cc
b-ot-layout.h
ff05d257dd43221b7c8ebead188e78495daa8eda 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Move lookup types enum into subtable class
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
263bbef7670b59aa88ef9ba910579dfa51226524 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [GDEF] Simplify Device access
b-ot-layout-gdef-private.h
60d77cf05fddc5304b4b1fc19cdedba15cbee1e9 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Indentation
b-ot-layout-common-private.h
b-ot-layout-gdef-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
b-ot-layout-private.h
90de3dfff9e82dae20b7517642511aebaf736b74 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove unused methods
b-ot-layout-common-private.h
4c44d830d79431fcb143df2b5a29cdc8e8fccef3 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Indentation
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
d18fd8e3f7185f531fa4c4988d3f5d5c5282b8eb 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] CursivePosFormat1
b-ot-layout-gpos-private.h
b-ot-layout-private.h
70632add333e4ab38f8f485bb87b25116128cf92 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] PairPosFormat2
b-ot-layout-gpos-private.h
b24ecbadf44d56fd3286d1d3ff6928151ccec9bd 20-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] PairPosFormat1
b-ot-layout-gpos-private.h
056c7ec1aea1eca60a3b20b583b8a8072be9d758 19-May-2009 Behdad Esfahbod <behdad@behdad.org> [GPOS] Start filling apply() functions in
arfbuzz-buffer-private.h
arfbuzz-buffer.c
b-ot-layout-common-private.h
b-ot-layout-gpos-private.h
4fa77d3c4305a76b956de8c1a9b83a961d035a80 19-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use enums
b-ot-layout-common-private.h
b-ot-layout-gdef-private.h
6b54c5d0446b514fbb6521e7e9e614d153435f0e 19-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More reference cast simplification
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
eb0dfc830e09405492f494c85380e133ac5d0ea3 19-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Rename LOOKUP_ARGS to APPLY_ARGS
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
2a8e6accdf798a78ff180dcb593140592d62b872 19-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Internally rename position() and substitute() to apply()
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
f6c8a6eacf27fd1c509d07c85985f0367c5e475f 19-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify casts
b-ot-layout-gdef-private.h
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
9c42f05a5ccbb48a9367b80ecdf3679e88088fcf 18-May-2009 Behdad Esfahbod <behdad@behdad.org> Switch Pango to new, defunt, GPOS
b-ot-layout-gpos-private.h
b-ot-layout.cc
b-ot-layout.h
5e5eb0573f7ea2ce2cf037fef0df70a4351e82c0 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Start GPOS!
b-ot-layout-gpos-private.h
b-ot-layout-gsub-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
64e67f7599deeec98b104f8b70d0d321cf96799d 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Minor
b-ot-layout-gsub-private.h
d79cae0b4eef8c2694ada791bb8e427c1202875e 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Minor
b-ot-layout-gsub-private.h
8533bb985e6af2b656d7c45620d8f11f36330b85 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Protect against mismatching Extension subtable types
b-ot-layout-gsub-private.h
969afd706e9b52adc79f6210c0088b2c6bbae9bc 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Implement ReverseChainSingleSubst

GSUB is done!
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
4acaffd786a11b5bd7d41b39fc65625fd8cd5077 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Don't use G_LIKELY!
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
b-ot-layout.cc
3dcb12f171ebbf44461e6ce6439d286c9520dd88 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Oops, fix Extension check
b-ot-layout-gsub-private.h
2e8fb6c38dbc01cb77b384c0ae0212514dfbb588 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Tweak some constants and fix Coverage
b-ot-layout-common-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
d6aae5f5cad54fc5dac8b0ff10a3921ebda533d4 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Cleanup TODOs
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
b-ot-layout.cc
122f21fb9a3a0b914575929a3be11884f1ae00c0 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Fix context_length handling in Ligature too
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
47958dea214fd55725bf04aa13d233870255fb03 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Minor cleanup
b-ot-layout-gsubgpos-private.h
e73a0c2a903112ce9a35b95e14e10ab8ea2dc337 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Correctly skip glyphs when applying (Chain)Context lookups
b-ot-layout-gsubgpos-private.h
7cff75babd64cd49dd2b3faaa15193d12c098f42 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix context_length checking
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
d0ba0557007798db2c60ddd0b7a5a0624cd1698d 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] ChainContext complete

IranNastaliq renders perfectly again!
b-ot-layout-gsubgpos-private.h
e072c24e79f0e7c1e078a87c782ab5dd8f21dcda 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Implement backtrack matching
b-ot-layout-gsubgpos-private.h
02e1e5c63fa4f896053fa3c21e495239e1e9caa2 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] One more step to go, for fully working GSUB and ChainContext
b-ot-layout-gsubgpos-private.h
f14c2b7acfba75b8a6880f41ceec758f9a56abce 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Further modularize Context matching
b-ot-layout-gsubgpos-private.h
13ed4405c558e445b052360f1ed8ee27ecf48e6e 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] A step closer to working ChainContext
b-ot-layout-gsubgpos-private.h
e8cbaaf6d538036ff9b880b018db402e0895ed01 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add HeadlessArrayTo<>
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
dcb6b60254951a2831c03f3196962d229f7e556c 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More template goodness
b-ot-layout-gsubgpos-private.h
aa3d7adca5c821c91a2a1b5380fd6b3d19656ab1 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More churning towards ChainContext lookups
b-ot-layout-common-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
48f16ed96ac7041b511d9e0864623d2aa09c6da3 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Towards sharing Context and ChainContext code
b-ot-layout-gsubgpos-private.h
6cf2a52593cb4b23e3efe5e16228e3172bdcdd05 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add check to avoid infinite recursion
b-ot-layout-gsub-private.h
887c4b44165eeb8ac7fb09bc4474d11720b94a9e 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Cosmetic
b-ot-layout-gsub-private.h
ca5290f4994e1b2db4dac03f7a22b7071441ba06 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Start ChainContext and ReverseChainSingleSubst lookups
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
433f4aea741e39df079126769441b79ab64fd236 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove stale TODO
b-ot-layout-private.h
6f20f72e9c58ba23db2e31afa5d331acfea3d77e 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Split Layout-common tables into new files
b-ot-layout-common-private.h
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
f45107fe0904414f1266648a6c42849c494fe611 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] More shuffling
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
f8dc67b3c24dfc805da756a73cb217b36e16b4b8 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Cleanup format unions
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
da1097bc3b1995776c205707fd2b17603b804646 18-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use four bytes for Null Tag, not 5
b-ot-layout-open-private.h
19fc24f268b985d30971307ac2055622d11cb21f 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Couple size checks
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
b-ot-layout-open-private.h
ecf17e849db19599bbb816d0018380ebf979576b 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Propagate property of first glyph

This slightly grows code size.
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
eca8e33710cfce51454e64d974ff0c28b0eefa14 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Further optimize the main switch
b-ot-layout-gsub-private.h
13068232e7054748ae5ba0d961ee5a95b959e92e 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Unify first glyph property checking
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
66bf7ce4e3135535c110a917178b84c4a2b1d11f 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Move Context matching logic out of GSUB
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-gsubgpos-private.h
a1625528cd5ed94bc8f18903da3300e823ee5b54 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Unify ContextSubst matching
b-ot-layout-gsub-private.h
c36238bea40e9e2b589028eb6de0710455b31585 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Renames
b-ot-layout-gsub-private.h
15c3e75b39797a153b6bc0598f87b27c4a487228 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify buffer
arfbuzz-buffer-private.h
arfbuzz-buffer.c
arfbuzz-gsub.c
b-ot-layout-gsub-private.h
36f78446cef8a7cbae000d5e742c9d13e1cc7f83 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add TODO item
ODO
arfbuzz-buffer.c
ee58aaebd296ea8237516754fd4e825d524b11b7 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Update copyright years
b-ot-layout-gdef-private.h
b-ot-layout-open-private.h
b-ot-layout.cc
ain.cc
f4c9514935cf97a58dcb3b1962ac3f3b5ba61264 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Simplify more arrays
b-ot-layout-open-private.h
b-ot-layout.cc
c9a7cbe9cb52264af9954e5ce9ac7a45d7e310cd 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use ArrayOf<> in GSUB
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
5f810363acc3ad3cba631a68620e3d37e54c95c4 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add ArrayOf<>
b-ot-layout-gdef-private.h
b-ot-layout-open-private.h
238c855fcd4f0ef97a94a8662d2a2f2bb5c21ecb 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use OffsetTo<> for Coverage
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
3d54bd1293069fc3d3bdeeea8ad45036f3ee65f3 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use OffsetTo<> in more places
b-ot-layout-gdef-private.h
b-ot-layout-open-private.h
9e4d9d7b2721859172bc9c59c1aea27b01eb9c07 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add OffsetTo template.
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
e07f89295b9b38d233dfd4acec1f6b4a3416f267 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Automate int-type size assertion
b-ot-layout-open-private.h
8b8358033184198ff638ee1379093717596e162d 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Use templates for Null objects

Also use a common pool for all nul-content ones.
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
b-ot-layout.cc
6e13d4140158aff736647fc53d8c0ae3a02c2afc 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove obsolete comment
b-ot-layout-gdef-private.h
9f721cf380954d67415dbfd0404a983cdd75b7df 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Start ChainContextSubst
b-ot-layout-gsub-private.h
7fca9e5245d2d283e8b5354eb1ddf553a7ffc033 17-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Implement ContextSubstFormat3
b-ot-layout-gsub-private.h
1ff926a5681b5d4bfce65351062cda9dc1ffeba2 16-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Implement ContextSubstFormat2
b-ot-layout-gsub-private.h
fc36d9453ed7edb0a570abc44d7caa87aafb0fcf 16-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Add GSUB::substitute_lookup()
b-ot-layout-gsub-private.h
b-ot-layout.cc
c43562b2a7587fa3f9ef4c1c4338e4eda77368b5 16-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Finish ContextSubstFormat1
b-ot-layout-gsub-private.h
b-ot-layout-private.h
b-ot-layout.cc
5ee21896224e3a9835a9695037a94ccf1c35a217 15-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Fix typo
b-ot-layout-open-private.h
6b59c9b445b6d2454008c83a2c7d6a995ea5995e 15-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Add TODO item
ODO
c5419b6cf28822e07f1ef9b0394825e9cb01a445 09-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove DEFINE_NON_INSTANTIABLE
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
0dff25f0368c5f14ebb0a4af35f3bb6658740d57 09-May-2009 Behdad Esfahbod <behdad@behdad.org> [HB] Remove get_size()
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
25c6c9a3f6c062ec639d9202a8b9844be64d6fc0 09-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] ContextSubst format 1
b-ot-layout-gsub-private.h
f70229510303109bd0f71423cdf13aa200066d17 09-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Shuffle
b-ot-layout-gsub-private.h
a83e08f8728439ef75e3dfab2191ac913d8f907b 07-May-2009 Behdad Esfahbod <behdad@behdad.org> [HarfBuzz] Start a TODO file
ODO
eed05b04ebc2cbb3fa699c99200db12a0081cefb 06-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] minor
b-ot-layout-open-private.h
cdb317bc4e188421cad997b448abb19223d39e96 06-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Towards Context subtitutes
b-ot-layout-gsub-private.h
c9c6a78aec2b16ac06dfca8cbfaf28a77a10bae2 05-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Minor refactoring
b-ot-layout-gsub-private.h
bb3899a579b00134b24df8891b69bf1621a8190f 05-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Implement ligature substitutions
akefile.am
b-ot-layout-gsub-private.h
38b011a293181856463dd08d43e2106e5bf1d56e 05-May-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Hook new GSUB up in Pango
b-ot-layout-gsub-private.h
a84e71ad11a72feff47ead16772a8c4bcf4f69d5 16-Apr-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Start Ligature subtable support
b-ot-layout-gsub-private.h
b-ot-layout.h
52886ca56b24a8335614b1df16a33dd4e2d7ae56 16-Apr-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Implement Alternate subtables
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
4f27ce7e0213ac5ba356f0fd2ec0a175ffd002e6 16-Apr-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Implement Extension subtables
b-ot-layout-gsub-private.h
83e61ff4702121d3418fe82a8fe7ef6bb63bb5d2 16-Apr-2009 Behdad Esfahbod <behdad@behdad.org> [GSUB] Fix reverse lookup loop like we did in the old code before
b-ot-layout-gsub-private.h
5a0b791184cf6ef39eae0570e14aca21abc32845 16-Apr-2009 Behdad Esfahbod <behdad@behdad.org> [harfbuzz/GSUB] towards a partially working GSUB
arfbuzz-buffer.c
arfbuzz-impl.h
arfbuzz.c
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
30bd763fa2fa4aceee51433ec9fc8dc28480b5d7 16-Apr-2009 Behdad Esfahbod <behdad@behdad.org> Implement the first substitute()
arfbuzz-buffer-private.h
arfbuzz-buffer.c
arfbuzz-buffer.h
arfbuzz-gdef-private.h
arfbuzz-gdef.c
arfbuzz-gdef.h
arfbuzz-gpos.c
arfbuzz-gpos.h
arfbuzz-gsub.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
ce48f03946bef895912019046bdbe62bb1301d0b 02-Nov-2009 Behdad Esfahbod <behdad@behdad.org> Merge harfbuzz-ng
0e13beeb93077750183a8242780158b88df81e26 17-Apr-2009 Behdad Esfahbod <behdad@behdad.org> Use git.mk
akefile.am
2d15e72c75931398db5e027e660f1320bb979117 16-Apr-2009 Behdad Esfahbod <behdad@behdad.org> Give it a start at GSUB
b-common.h
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
ain.cc
9d870f2a558f4e463e3ff953312202a8d144158b 09-Apr-2009 Behdad Esfahbod <behdad@behdad.org> Bug 577952 – Error loading {GDEF,GSUB,GPOS} table 0x6EAD

Detect TrueType Collections by checking the font data header instead
of checking for "face->num_faces >1".
arfbuzz-stream.c
d49caf1f77743550d83fc7feced1293ba34a4e99 02-Mar-2009 Behdad Esfahbod <behdad@behdad.org> [opentype] Protect against illegal access for arrays of length zero
arfbuzz-gpos.c
arfbuzz-gsub.c
66871797af194f9d2161faf8bfbc9684f09e207e 02-Mar-2009 Behdad Esfahbod <behdad@behdad.org> [opentype] Use size_t instead of uint for malloc wrappers
arfbuzz-impl.c
arfbuzz-impl.h
3664e59c52ed56486a3e38126c0c3abb78f42233 02-Mar-2009 Behdad Esfahbod <behdad@behdad.org> Fix Bug 572529 – Poor -I ordering can break build
akefile.am
aca4d11388eedd532a73bd34747abb65c0ea9291 02-Feb-2009 Behdad Esfahbod <behdad@gnome.org> Allocate all array rows in a single ALLOC call. Saves over 100 alloc calls

2009-01-31 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-gpos.c (Load_Mark2Array),
(Free_Mark2Array):
Allocate all array rows in a single ALLOC call. Saves over 100
alloc calls when loading DejaVu Sans,
arfbuzz-gpos.c
c561d69c721105b78bb06d1e3c5f21ca314d924a 29-Jan-2009 Behdad Esfahbod <behdad@gnome.org> Remove ClassDef->Defined field. This is the comment accompanying it:

2009-01-29 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-open.h:
* pango/opentype/harfbuzz-gdef.c (Make_ClassRange),
(HB_GDEF_Build_ClassDefinition):
* pango/opentype/harfbuzz-gpos.c (Load_PosClassRule),
(Load_ChainPosClassRule):
* pango/opentype/harfbuzz-gsub.c (Load_SubClassRule),
(Load_ChainSubClassRule):
* pango/opentype/harfbuzz-open.c (Load_ClassDef1),
(Load_ClassDef2), (_HB_OPEN_Load_ClassDefinition),
(_HB_OPEN_Load_EmptyClassDefinition),
(_HB_OPEN_Free_ClassDefinition):
Remove ClassDef->Defined field. This is the comment accompanying it:

The `Defined' field is not defined in the OpenType specification
but apparently needed for processing fonts like trado.ttf: This
font refers to a class which contains not a single element. We
map such classes to class 0.

The comment is correct that trado.ttf (MS Traditional Arabic) uses
such classes. However, in my testing I couldn't identify any
problems with the font if the special handling is removed. I also
processed as many fonts as I could get my hand on and trado.ttf was
the only not-totally-broken font hitting the special-case code.
DejaVu fonts hit it too, but I'm sure they do not require the
special-handling code. Most probably, that code introduces bugs
in them.

The special-casing was consuming lots of memory. EIGHT MEGABYTES
for loading DejaVu Sans! While this could be complete fixed, I
decided to remove the special-handling code altogether. I don't
think it will make any real difference, and if it does, we'll fix
fonts. Such hacks will not be in harfbuzz-ng anyway.

Bug originally reported by nsf.
arfbuzz-gdef.c
arfbuzz-gpos.c
arfbuzz-gsub.c
arfbuzz-open.c
arfbuzz-open.h
9372edd6f020c92609853609dcb504c72551c9c3 29-Jan-2009 Behdad Esfahbod <behdad@gnome.org> Use calloc(), instead of malloc()ing and memset()ing.

2009-01-29 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-impl.c (_hb_alloc): Use calloc(),
instead of malloc()ing and memset()ing.
arfbuzz-impl.c
94c21d26ba878b3168a21f2e76f02bc52e8fe6fd 29-Jan-2009 Behdad Esfahbod <behdad@gnome.org> Remove old cruft.

2009-01-29 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-dump-main.c (main): Remove old cruft.
arfbuzz-dump-main.c
0a47c4f78e8a9e81cd305f24ec92ea61ead7dd8d 29-Jan-2009 Behdad Esfahbod <behdad@gnome.org> Allocate all array rows in a single ALLOC call. Saves over 2000 alloc

2009-01-29 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-gpos.c (Load_BaseArray), (Free_BaseArray):
Allocate all array rows in a single ALLOC call. Saves over 2000
alloc calls when loading DejaVu Sans!
arfbuzz-gpos.c
549be924bccd187f53791dfa27647981ac909545 26-Dec-2008 Behdad Esfahbod <behdad@gnome.org> Bug 469049 – Fix all compiler warnings

2008-12-25 Behdad Esfahbod <behdad@gnome.org>

Bug 469049 – Fix all compiler warnings

* pango-view/viewer-pangocairo.c (render_callback):
* pango/fonts.c (append_field), (pango_font_description_to_string):
* pango/opentype/harfbuzz-dump.c:
* pango/pango-bidi-type.c (pango_log2vis_get_embedding_levels):
* pango/pango-coverage.c (pango_coverage_set):
* pango/pango-markup.c (span_parse_func):
* pango/pango-renderer.c
(pango_renderer_default_draw_error_underline):
* pango/pango-utils.c (pango_scan_string):
* pango/pangocairo-render.c (pango_cairo_renderer_draw_trapezoid),
(draw_error_underline), (pango_cairo_renderer_class_init):
Fix all the remaining warnings.
arfbuzz-dump.c
719f9eaa755396ff377da10c5eeced01d3456b1b 26-Dec-2008 Behdad Esfahbod <behdad@gnome.org> Fix more warnings.

2008-12-25 Behdad Esfahbod <behdad@gnome.org>

* pango/modules.c (pango_module_load), (script_info_free):
* pango/opentype/harfbuzz-gpos.c (HB_Load_GPOS_Table):
* pango/pango-bidi-type.c:
* pango/pango-coverage.c (pango_coverage_ref),
(pango_coverage_unref):
* pango/pango-engine.c (pango_engine_shape_real_covers),
(fallback_engine_shape), (fallback_engine_covers):
* pango/pango-fontmap.c (pango_font_map_init):
* pango/pango-ot-ruleset.c (pango_ot_ruleset_finalize),
(pango_ot_ruleset_new):
* pango/pangofc-decoder.c (pango_fc_decoder_init),
(pango_fc_decoder_class_init):
* pango/pangofc-font.c (pango_fc_font_find_shaper),
(pango_fc_font_get_coverage):
* pango/pangofc-fontmap.c (pango_fc_font_map_list_families),
(pango_fc_make_pattern), (pango_fc_font_map_get_patterns),
(get_first_font), (_pango_fc_font_map_get_coverage),
(cleanup_font), (pango_fc_font_description_from_pattern),
(pango_fc_face_list_sizes), (pango_fc_family_list_faces):
* pango/pangoft2-fontmap.c (pango_ft2_font_map_get_resolution):
* pango/pangoft2-render.c (pango_ft2_renderer_init),
(pango_ft2_renderer_draw_trapezoid):
* pango/pangoft2.c (pango_ft2_font_get_face),
(pango_ft2_font_real_unlock_face),
(pango_ft2_free_glyph_info_callback):
Fix more warnings.
arfbuzz-gpos.c
21f7d507f4b50e2743ab47954270f4c72d5a722a 15-Oct-2008 Behdad Esfahbod <behdad@gnome.org> Bug 528272 – "Error loading GPOS table 5503" when using katakana

2008-10-14 Behdad Esfahbod <behdad@gnome.org>

Bug 528272 – "Error loading GPOS table 5503" when using katakana
characters

* pango/opentype/harfbuzz-gpos.c (Load_Mark2Array): Skip parsing
null anchor tables.
arfbuzz-gpos.c
a26c6ae70502b4d60c52a0648662b1619c688b9a 30-Sep-2008 Behdad Esfahbod <behdad@gnome.org> Fix left-to-right positioning. Reported by Peter Hunter.

2008-09-29 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-gpos.c (Position_CursiveChain):
Fix left-to-right positioning. Reported by Peter Hunter.
arfbuzz-gpos.c
b6c06c56a33f1e1ec15e3b525ecafe8fadc679db 29-Jun-2008 Behdad Esfahbod <behdad@gnome.org> Bug 540592 – Crash in HB_GSUB_Apply_String with Linux-Libertine font

2008-06-29 Behdad Esfahbod <behdad@gnome.org>

Bug 540592 – Crash in HB_GSUB_Apply_String with Linux-Libertine font

* pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup): Fix reverse
loops for type 8 lookups.
arfbuzz-gsub.c
c44733596c6648e209c12349e18e35424edf3d59 19-Feb-2008 Behdad Esfahbod <behdad@behdad.org> [hb-ot-layout] Add proper namespace to accessors
b-ot-layout.cc
b-ot-layout.h
57225672098ebdafb0c06ae091a1b55635daca29 19-Feb-2008 Behdad Esfahbod <behdad@behdad.org> Fix typo, add TODOs
b-ot-layout-open-private.h
4a26ea408c87f0bb59deca9ff44008d138471aa3 28-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Finish script, language, and feature public API
b-ot-layout-open-private.h
b-ot-layout.cc
b-ot-layout.h
706ab25a4cb043d46e6088aa0a7184ee200276c9 28-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Add script and language public getter API
b-ot-layout-open-private.h
b-ot-layout.cc
b-ot-layout.h
ain.cc
40a81314fa3eb7c701aea47b43f81bfad985f717 28-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Make main.cc compile again, which means finished getter API
b-ot-layout-open-private.h
ain.cc
e50c3978d37b2c0d6ddd4ced6a6196f6857cd596 28-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Rename HB_OT_Layout to hb_ot_layout_t
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
dfa811965133bc4d1696fa5a0166e17ed4142c98 28-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Rename hb_ot_layout_create() to hb_ot_layout_create_for_data()
b-ot-layout.cc
b-ot-layout.h
54e5aac5e2947d4e2864c6f2987e4d275da73100 28-Jan-2008 Behdad Esfahbod <behdad@behdad.org> GDEF completely working now
b-ot-layout-open-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-private.h
ain.cc
6f425b11799aa20dab553085f05744191b7318e2 25-Jan-2008 Behdad Esfahbod <behdad@behdad.org> [GDEF] Finish internal API
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
590d55cbb9e21ef74dfd88eee51fd0a763958cd2 25-Jan-2008 Behdad Esfahbod <behdad@behdad.org> [GDEF] Finish public API
b-common.h
b-ot-layout-gdef-private.h
b-ot-layout-open-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
aff831ed6787abe8e24a977e34d97ff2e0b7dc21 24-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Implement glyph properties
b-ot-layout-gdef-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
ead428d7a0bf4dc84340a99f3959e5cc58123e99 24-Jan-2008 Behdad Esfahbod <behdad@behdad.org> More public api
b-ot-layout-open-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
fd92a3dde32fd10df30c9eeb97641bc3c15b1e9b 24-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Starting public interface
akefile
akefile.ng
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
b-ot-layout-private.h
b-ot-layout.cc
b-ot-layout.h
ain.cc
7d6b95b000ec6cd8ca93113b2d81a049ad2f9bbe 24-Jan-2008 Behdad Esfahbod <behdad@src.gnome.org> Remove unused macro
arfbuzz-impl.h
7586089c6fa8185cad8387869d3703c637e5cbb1 24-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Minor
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
b-private.h
aefaafe5bc4fc6d37a412c135b1079c287be7045 23-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Minor renaming
b-ot-layout-gdef-private.h
b-ot-layout-open-private.h
ain.cc
a16ecbf0564a6e2576da22c12827f3c0719da549 23-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Initial gsub stub
b-ot-layout-gdef-private.h
b-ot-layout-gsub-private.h
b-ot-layout-open-private.h
ain.cc
64aef3a54999496fd1de4f5aa5b019e4c03b3836 23-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Add copyright notices.
b-common.h
b-ot-layout-gdef-private.h
b-ot-layout-open-private.h
b-ot-layout.h
b-private.h
ain.cc
12360f7c159826ae72271b34486dee59d96aa8ca 23-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Minor cleanup, add LIKELY and UNLIKELY annotations
b-ot-layout-gdef-private.h
b-ot-layout-open-private.h
b-private.h
8dd1c8b8d6797d899d0f5b0a8015886bf6520ca2 23-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Clean up file names, add namespace
arfbuzz-common.h
arfbuzz-gdef-private.h
arfbuzz-gdef.h
arfbuzz-open-private.h
arfbuzz-open.h
arfbuzz-private.h
b-common.h
b-ot-layout-gdef-private.h
b-ot-layout-open-private.h
b-ot-layout.h
b-private.h
ain.cc
1f437e6f47fb6c15761021bd2078f31778f2179c 23-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Make all code NULL-free and assert-free
arfbuzz-gdef-private.h
arfbuzz-open-private.h
ain.cc
600e5eb80f553ea8eb862e6784133574c74ca513 23-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Define get_for_data() factories
arfbuzz-gdef-private.h
arfbuzz-open-private.h
ain.cc
b9d7688fb3d45894901484b74095c4f11cab6196 23-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Finish and test GDEF
arfbuzz-gdef-private.h
arfbuzz-open-private.h
arfbuzz-open.h
ain.cc
303fe62824d4e99df554b6bfaacba05d068522fb 23-Jan-2008 Behdad Esfahbod <behdad@behdad.org> Misc cleanup
akefile
arfbuzz-gdef-private.h
arfbuzz-open-private.h
arfbuzz-private.h
ain.cc
17843245fde4cc8cddc7da8ef30357d3d8778187 16-Jan-2008 Behdad Esfahbod <behdad@gnome.org> Remove COPYING.GPL and COPYING.FTL that are no longer there.

2008-01-16 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/Makefile.am: Remove COPYING.GPL and COPYING.FTL that
are no longer there.
akefile.am
a2a9a023f6472ba262f89e5327318996b8258d25 15-Jan-2008 Behdad Esfahbod <behdad@gnome.org> HarfBuzz was relicensed to a more generous and simpler license. Adapt. See

2008-01-15 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/*:
HarfBuzz was relicensed to a more generous and simpler license.
Adapt. See pango/opentype/COPYING for the new license which is
LGPL-compatible.
OPYING
OPYING.FTL
OPYING.GPL
arfbuzz-buffer-private.h
arfbuzz-buffer.c
arfbuzz-buffer.h
arfbuzz-dump-main.c
arfbuzz-dump.c
arfbuzz-dump.h
arfbuzz-gdef-private.h
arfbuzz-gdef.c
arfbuzz-gdef.h
arfbuzz-global.h
arfbuzz-gpos-private.h
arfbuzz-gpos.c
arfbuzz-gpos.h
arfbuzz-gsub-private.h
arfbuzz-gsub.c
arfbuzz-gsub.h
arfbuzz-impl.c
arfbuzz-impl.h
arfbuzz-open-private.h
arfbuzz-open.c
arfbuzz-open.h
arfbuzz-stream-private.h
arfbuzz-stream.c
arfbuzz.c
arfbuzz.h
4ccedd22eaa6e47bd8bbf255627a8b55fbb44736 05-Dec-2007 Behdad Esfahbod <behdad@gnome.org> Bug 501575 – Compile errors Patch from Jens Granseuer

2007-12-04 Behdad Esfahbod <behdad@gnome.org>

Bug 501575 – Compile errors
Patch from Jens Granseuer

* pango/opentype/harfbuzz-stream.c (_hb_font_goto_table):
* pango/pango-utils.c (handle_alias_line):
Fix C99ism.
arfbuzz-stream.c
cd55cfa2b0a1fe35d5a4ad1c8feaa399d7fb7ab3 30-Nov-2007 Behdad Esfahbod <behdad@src.gnome.org> Undo accidental change.
arfbuzz-impl.c
3f05da638c8d7b13e7f860aeda1a6321e5ebd92e 30-Nov-2007 Behdad Esfahbod <behdad@gnome.org> Bug 485536 – underline_position can be zero

2007-11-29 Behdad Esfahbod <behdad@gnome.org>

Bug 485536 – underline_position can be zero

* pango/pango-utils.c (pango_cairo_quantize_line_geometry):
Document that returned position may be zero.

* pango/pangocairo-win32font.c
(pango_cairo_win32_font_create_metrics_for_context):
* pango/pangofc-font.c (get_face_metrics):
Handle case of underline_position==0 after rounding.
arfbuzz-impl.c
e58278fedb67cbaac4bf4d6dfc33209cb22eec08 24-Nov-2007 Behdad Esfahbod <behdad@gnome.org> Remove unused macro.

2007-11-23 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-impl.c: Remove unused macro.
arfbuzz-impl.c
3b047380aec4ccc707c4579327d54172c19820fd 18-Nov-2007 Behdad Esfahbod <behdad@src.gnome.org> Minor
arfbuzz-dump-main.c
arfbuzz-stream.c
10d6a25a26bdbab4ece4edf0e34ffd3d22410ebe 07-Nov-2007 Behdad Esfahbod <behdad@src.gnome.org> Remove dead code.
arfbuzz-gdef.c
arfbuzz-gpos.h
47d2c33e3d099fae79e199367de5011bc5c12273 07-Nov-2007 Behdad Esfahbod <behdad@gnome.org> And some more.

2007-11-07 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/*: And some more.
arfbuzz-buffer.h
arfbuzz-dump-main.c
arfbuzz-gdef.c
arfbuzz-gdef.h
arfbuzz-global.h
arfbuzz-gpos.c
arfbuzz-gpos.h
arfbuzz-gsub.c
arfbuzz-gsub.h
arfbuzz-stream-private.h
arfbuzz-stream.c
78ef65ba08967fe1b5f97bcb27074bd635f4b898 07-Nov-2007 Behdad Esfahbod <behdad@gnome.org> Some more cleanup and merging.

2007-11-07 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/*: Some more cleanup and merging.
akefile.am
arfbuzz-buffer-private.h
arfbuzz-buffer.c
arfbuzz-dump-main.c
arfbuzz-gdef-private.h
arfbuzz-gdef.c
arfbuzz-global.h
arfbuzz-gpos-private.h
arfbuzz-gpos.c
arfbuzz-gsub-private.h
arfbuzz-gsub.c
arfbuzz-impl.c
arfbuzz-impl.h
arfbuzz-open-private.h
arfbuzz-stream-private.h
arfbuzz-stream.c
arfbuzz.c
arfbuzz.h
5c9bd379950d914982bdb91d0f82b8036908db37 30-Oct-2007 Behdad Esfahbod <behdad@src.gnome.org> Fix typo.
akefile.am
ef1f481752fa6e478f649e826c96927c98f21981 26-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Even more cleanup and more type renames.

2007-10-25 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/*: Even more cleanup and more type renames.
arfbuzz-buffer.h
arfbuzz-global.h
arfbuzz-impl.c
arfbuzz-impl.h
arfbuzz-open.h
282c60a0eea0db784b0a094958bec35b5f3dc399 26-Oct-2007 Behdad Esfahbod <behdad@gnome.org> More cleanup, remove redundant error types.

2007-10-25 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/*: More cleanup, remove redundant error types.
arfbuzz-dump-main.c
arfbuzz-dump.c
arfbuzz-gdef.c
arfbuzz-gdef.h
arfbuzz-global.h
arfbuzz-gpos.c
arfbuzz-gpos.h
arfbuzz-gsub.c
arfbuzz-gsub.h
arfbuzz-impl.c
arfbuzz-impl.h
arfbuzz-open.c
arfbuzz-open.h
4280ec4df45ae86c10c3cd24ddb9c05e47223d39 25-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Rename ftglue.c to harfbuzz-impl.c and more type renames and moving code

2007-10-24 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/*: Rename ftglue.c to harfbuzz-impl.c and more
type renames and moving code around.
akefile.am
tglue.c
tglue.h
arfbuzz-dump-main.c
arfbuzz-dump.c
arfbuzz-gdef.c
arfbuzz-global.h
arfbuzz-gpos-private.h
arfbuzz-gpos.c
arfbuzz-gsub-private.h
arfbuzz-gsub.c
arfbuzz-impl.c
arfbuzz-impl.h
arfbuzz-open-private.h
arfbuzz-open.c
arfbuzz-open.h
arfbuzz.c
5716ae278a82d318ddbfeba01d0785d4efbe1454 25-Oct-2007 Behdad Esfahbod <behdad@gnome.org> New header file harfbuzz-global.h. Rename FT_* int types to HB_* types.

2007-10-24 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/*: New header file harfbuzz-global.h. Rename
FT_* int types to HB_* types.
akefile.am
tglue.c
tglue.h
arfbuzz-buffer-private.h
arfbuzz-buffer.c
arfbuzz-buffer.h
arfbuzz-dump-main.c
arfbuzz-dump.c
arfbuzz-dump.h
arfbuzz-gdef-private.h
arfbuzz-gdef.c
arfbuzz-gdef.h
arfbuzz-global.h
arfbuzz-gpos-private.h
arfbuzz-gpos.c
arfbuzz-gpos.h
arfbuzz-gsub-private.h
arfbuzz-gsub.c
arfbuzz-gsub.h
arfbuzz-impl.h
arfbuzz-open-private.h
arfbuzz-open.c
arfbuzz-open.h
arfbuzz.h
2130d852c76cccb94350a4aea222359640ffa8a4 24-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Add commented-out dummy struct for Extension lookups.

2007-10-24 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-gpos-private.h:
* pango/opentype/harfbuzz-gsub-private.h:
Add commented-out dummy struct for Extension lookups.
arfbuzz-gpos-private.h
arfbuzz-gsub-private.h
13b2b963848ada169c2fe3d3669fbc1c337f7fe7 21-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Bug 488840 – harfbuzz: protect against ligid overflow

2007-10-21 Behdad Esfahbod <behdad@gnome.org>

Bug 488840 – harfbuzz: protect against ligid overflow

* pango/opentype/harfbuzz-buffer.c (_hb_buffer_allocate_ligid):
Never return zero, even in case of overflow.

* pango/opentype/harfbuzz-impl.h: Define dummy HB_LIKELY() and
HB_UNLIKELY(), to be filled later.
arfbuzz-buffer.c
arfbuzz-impl.h
6b347138b597c41af24453f630336ba2fc033dc5 11-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Mark internal symbols as HB_INTERNAL and define that to static in

2007-10-11 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/*: Mark internal symbols as HB_INTERNAL and
define that to static in harfbuzz.c.

* pango/opentype/harfbuzz-buffer-internal.h: New file.
akefile.am
tglue.c
tglue.h
arfbuzz-buffer-private.h
arfbuzz-buffer.c
arfbuzz-buffer.h
arfbuzz-gdef-private.h
arfbuzz-gdef.c
arfbuzz-gpos-private.h
arfbuzz-gpos.c
arfbuzz-gsub-private.h
arfbuzz-gsub.c
arfbuzz-impl.h
arfbuzz-open-private.h
arfbuzz-open.c
arfbuzz.c
7cdfb61deefd8f43edb5eb79d45d38dbbbef9051 11-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Remove FTGLUE_API/APIDEF cruft.

2007-10-11 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/ftglue.[ch]: Remove FTGLUE_API/APIDEF cruft.
tglue.c
tglue.h
61ddbafaaad31ccacde54cad7e60a84abffc0a9f 11-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Build harfbuzz.c instead of individual source files, to let compiler go

2007-10-11 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/Makefile.am: Build harfbuzz.c instead of individual
source files, to let compiler go wild with optimizations!
akefile.am
a219b3d003d6727c79dc51282d21e9ac48c44458 11-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Same here.

2007-10-11 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz.c: Same here.
arfbuzz.c
6567e16e3b14c08659342bbcc9f2735e71f9114e 11-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Don't include harfbuzz-dump.[ch] in libharfbuzz.a. Those are just used by

2007-10-11 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/Makefile.am: Don't include harfbuzz-dump.[ch] in
libharfbuzz.a. Those are just used by the harfbuzz-dump tool.
akefile.am
0b032549ba7581c879a0fc4e794b0e9a4723ae85 11-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Some more cleanup.

2007-10-11 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-buffer.c: Some more cleanup.
arfbuzz-buffer.c
7a26864308bd1ca8d5f47d798411cac7239b7d38 11-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Move some code around.

2007-10-11 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-buffer.c: Move some code around.
arfbuzz-buffer.c
7a5405c8261573a0f29d28fb533e800d698f6129 11-Oct-2007 Behdad Esfahbod <behdad@src.gnome.org> Minor.
arfbuzz-buffer.c
986f4fd96892ebda550793941bb1daed862c4a34 11-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Rename buffer->inplace to buffer->separate_out with the inverted meaning,

2007-10-11 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-buffer.[ch]: Rename buffer->inplace to
buffer->separate_out with the inverted meaning, such that buffer
is initialization is memset(0).
arfbuzz-buffer.c
arfbuzz-buffer.h
06003908ccf2473366816935dd1b144cde587be9 11-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Allocate buffer->positions lazily.

2007-10-11 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/*: Allocate buffer->positions lazily.
arfbuzz-buffer.c
arfbuzz-buffer.h
arfbuzz-gpos.c
arfbuzz-gsub.c
fc3d6f575826704a0ae9ee9018323f6a3c422f4b 11-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Bug 485621 – Get rid of freetype memory allocator in harfbuzz

2007-10-11 Behdad Esfahbod <behdad@gnome.org>

Bug 485621 – Get rid of freetype memory allocator in harfbuzz

* pango/opentype/*: Remove all occurences of FT_Memory. Use
malloc/realloc/free directly.

* pango/pango-ot*: Update to above.
tglue.c
tglue.h
arfbuzz-buffer.c
arfbuzz-buffer.h
arfbuzz-gdef.c
arfbuzz-gdef.h
arfbuzz-gpos-private.h
arfbuzz-gpos.c
arfbuzz-gpos.h
arfbuzz-gsub-private.h
arfbuzz-gsub.c
arfbuzz-gsub.h
arfbuzz-open-private.h
arfbuzz-open.c
a8abb8b994c3cd89808e8f7128a0c04b23eb3ede 11-Oct-2007 Behdad Esfahbod <behdad@gnome.org> Bug 485559 – Boston Summit HarfBuzz optimizations

2007-10-10 Behdad Esfahbod <behdad@gnome.org>

Bug 485559 – Boston Summit HarfBuzz optimizations

* pango/opentype/*: HarfBuzz hacking to:

- Rename last remaining FT_Err stuff to HB_Err.

- Fix a couple invalid table paths to be permissive so
fonts work better. Particularly GDEF table for Nafees
Nastaliq is loaded and works great now.

- Optimize harfbuzz buffer to not copy/swap for simple
one-to-one and "copy" GSUB operations.

* pango/pango-ot*: Update to FT_Err to HB_Err renaming.
tglue.c
tglue.h
arfbuzz-buffer.c
arfbuzz-buffer.h
arfbuzz-dump-main.c
arfbuzz-dump.c
arfbuzz-gdef-private.h
arfbuzz-gdef.c
arfbuzz-gdef.h
arfbuzz-gpos-private.h
arfbuzz-gpos.c
arfbuzz-gpos.h
arfbuzz-gsub-private.h
arfbuzz-gsub.c
arfbuzz-gsub.h
arfbuzz-impl.h
arfbuzz-open-private.h
arfbuzz-open.c
arfbuzz-open.h
dd810b76bc554278d3a226cf89901d16992cf56d 29-Aug-2007 Behdad Esfahbod <behdad@gnome.org> Bug 302952 – The placement of a diacritic marks for an arabic ligature

2007-08-29 Behdad Esfahbod <behdad@gnome.org>

Bug 302952 – The placement of a diacritic marks for an arabic ligature
is not correct

* pango/opentype/harfbuzz-buffer.c (hb_buffer_allocate_ligid): Don't
use zero as allocated ligature id. Zero means no ligature id.
arfbuzz-buffer.c
e90d19919434b90d79e67aaf199bddd991f8e5d8 21-Aug-2007 Behdad Esfahbod <behdad@gnome.org> Bug 463430 – Gets stuck while "formatting message"

2007-08-21 Behdad Esfahbod <behdad@gnome.org>

Bug 463430 – Gets stuck while "formatting message"

* pango/opentype/harfbuzz-gpos.c (Lookup_PairPos1),
(Lookup_PairPos2), (Lookup_PairPos), (Do_ContextPos):
* pango/opentype/harfbuzz-gsub.c (Do_ContextSubst):
Change type of intermediate index variable from FT_UShort to
FT_ULong as it was overlowing with more than 65536 glyphs.
arfbuzz-gpos.c
arfbuzz-gsub.c
13b86ee398905f96f57df001309312f6dfdfea9a 21-Aug-2007 Behdad Esfahbod <behdad@gnome.org> Don't ignore error return value of hb_buffer_copy_output_glyph(). Patch

2007-08-20 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup): Don't
ignore error return value of hb_buffer_copy_output_glyph(). Patch
sent to harfbuzz-list.
arfbuzz-gsub.c
4c2556cb4c38a56c3a5087deb54aa6262ab3aff9 06-Jul-2007 Behdad Esfahbod <behdad@behdad.org> [gdef] Initial implementation
arfbuzz-gdef-private.h
5b2e947fd2b7c5ea49b2bef1e0190d99a525058c 06-Jul-2007 Behdad Esfahbod <behdad@behdad.org> [open] small fixes, including not using unions for main structs
arfbuzz-open-private.h
151df44346990728b5dd249db5740a9543ae33b9 05-Jul-2007 Behdad Esfahbod <behdad@behdad.org> Improve stupid Makefile
akefile
6c49bebc70a0118a803a5bc979f4436a82b48240 01-May-2007 Behdad Esfahbod <behdad@gnome.org> Link freetype to harfbuzz-dump, for those systems that don't track

2007-04-30 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/Makefile.am: Link freetype to harfbuzz-dump, for
those systems that don't track dependencies automatically.
akefile.am
7341a116916c8470f1211f0cb3c65b189b42ec9e 04-Apr-2007 Behdad Esfahbod <behdad@gnome.org> Copy fixes from harfbuzz stable branch. Includes a leak fix, a kerning

2007-04-03 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-gdef.c (_HB_GDEF_Check_Property):
* pango/opentype/harfbuzz-gpos.c (HB_Done_GPOS_Table),
(Lookup_PairPos):
* pango/opentype/harfbuzz-open.c (Get_Class1):
Copy fixes from harfbuzz stable branch. Includes a leak fix,
a kerning fix, and an array out-of-bound access fix.
arfbuzz-gdef.c
arfbuzz-gpos.c
arfbuzz-open.c
999a6f05758c10a902354457ecbf6c943bfed514 13-Jan-2007 Hans Breuer <hans@breuer.org> updated

2007-01-13 Hans Breuer <hans@breuer.org>

* pango/makefile.msc pango/opentype/makefile.msc : updated
akefile.msc
3c038d40da4bfe5037cc4e9de22bad08fa408465 09-Jan-2007 Behdad Esfahbod <behdad@src.gnome.org> Remove .cvsignore files (moved to svn:ignore prop)
cvsignore
5b3f7702a64fe0513d08a67bdb72704e46fd7cd4 28-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Add stub GDEF files
arfbuzz-gdef-private.h
arfbuzz-gdef.h
arfbuzz-open-private.h
arfbuzz-private.h
ain.cc
b3395a7aa36ff1ba5a17f494fbf359ec317a7e69 28-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Don't shift down the mark attachment type
arfbuzz-open-private.h
193b66d52ae2cb5ced7969e15b7f56dc1978ca8a 28-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Remove stale comment
arfbuzz-open-private.h
12c4568c680ea2b9b98a16a8b7402ca185c90ef6 28-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Break and rename, in the layout of old HarfBuzz codebase
gitignore
akefile
arfbuzz-common.h
arfbuzz-ng.cc
arfbuzz-open-private.h
arfbuzz-open.h
ain.cc
3158d84b0dfe5032e7c56c03f2da97b8ab549d94 28-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Oops. s/OpenTypeFontFaceFile/OpenTypeFontFile/g
arfbuzz-ng.cc
bf0f9dd61375c5afce8e6b1664d0df5f6c8b2494 28-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Use union for ClassDef
arfbuzz-ng.cc
c46196d09c4ea879bf45182e8a0d649d4c750c39 28-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Use union for Coverage
arfbuzz-ng.cc
86f450243dbaa82f187cf2d36364e9a59c0e64c7 28-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Add GPOS stub
arfbuzz-ng.cc
133466177e104ddcd2501a88735670540252167c 28-Dec-2006 Behdad Esfahbod <behdad@behdad.org> s/OpenTypeFont/OpenTypeFontFace/g
arfbuzz-ng.cc
71d62baab0429cdf56ba4019fd2a205f08188503 27-Dec-2006 Behdad Esfahbod <behdad@behdad.org> GSUBGPOSHeader
arfbuzz-ng.cc
eebabd8b2ec5296deba6b09d7755933da0a7d9dc 27-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Finished OpenType Common Table Formats
arfbuzz-ng.cc
2b7374519766825971f9f4ff5b1cb49b74cfcaf8 27-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Device tables.
arfbuzz-ng.cc
eb32e374f4d6de8d428d36144f6eef93514820d2 27-Dec-2006 Behdad Esfahbod <behdad@behdad.org> ClassDef
arfbuzz-ng.cc
53502c6723dbf9cd3b6ba91b733678b3c7871715 27-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Rename CoverageFormat to Coverage
arfbuzz-ng.cc
0d6db2abcbe98456569ccf7934ba0a8b37c7f6f3 27-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Define more structs using DEFINE_INT_TYPE.
arfbuzz-ng.cc
915931b74a30e8652fac5fec153d499485513f63 26-Dec-2006 Behdad Esfahbod <behdad@behdad.org> s/DEFINE_NOT_INSTANTIABLE/DEFINE_NON_INSTANTIABLE/
arfbuzz-ng.cc
0c0d55330ef4090f3e4864538e83a4344caaf3ba 26-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Coverage.
arfbuzz-ng.cc
882e52f59196535495af8ca8069df32308ad52cf 25-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Rename to harfbuzz-ng.cc
akefile
arfbuzz-ng.cc
b-types-private.cc
f8ba99f6f322800a915428ffc3b5eaf1be2e6c21 25-Dec-2006 Behdad Esfahbod <behdad@behdad.org> LookupFlags
b-types-private.cc
25ad92c8a68bf72464601a644ed57b9213126a78 25-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Implement Feature
b-types-private.cc
befc022affd2386b3f46cd7d11e4262f6c8bce9f 25-Dec-2006 Behdad Esfahbod <behdad@behdad.org> LangSys
b-types-private.cc
c81efca149b08832d5d96a944fb5f303f3d0ca42 25-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Use CamelCaseTags.
b-types-private.cc
808dbe283c1ad66091f2cb67380888b7cf265c01 25-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Make types not instantiable
b-types-private.cc
b739c05ca4b7acfa45bd4b0812ecbb3747f726f0 25-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Add OpenTypeFontFile.
akefile
b-types-private.cc
8596944b7421f982960e825019fc0263442520cb 23-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Add Makefile
akefile
b6e62bc5db76ae342177b2b646c37f45eccad975 22-Dec-2006 Behdad Esfahbod <behdad@behdad.org> After DEFINE_SCRIPT_ARRAY
b-types-private.cc
01e4fcb032be601f272e62228881e2aabfb9d925 22-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Remove the annoying HB_ prefix.
b-types-private.cc
6b4ce01da121e12e1c78ad7eaedf469f35f3568d 22-Dec-2006 Behdad Esfahbod <behdad@behdad.org> Second version. Complete redesign, based on C++ classes to ensure endian
correctness.
b-types-private.cc
f78e70c301311ffcfb007c7fc4125d71cbcff1e2 22-Dec-2006 Behdad Esfahbod <behdad@behdad.org> First version.
b-types-private.cc
f726b20e56e8b1106dfde0bf8d575c73e83957c4 25-Jul-2006 Behdad Esfahbod <behdad@gnome.org> Bug 347073 – Allow empty GPOS table

2006-07-24 Behdad Esfahbod <behdad@gnome.org>

Bug 347073 – Allow empty GPOS table

* pango/opentype/harfbuzz-open.c (_HB_OPEN_Load_ScriptList): Don't
err on empty GPOS/GSUB tables.
arfbuzz-open.c
52481a5c55d466f41654dcdc67245d0ca8cefbcf 22-Jun-2006 Behdad Esfahbod <behdad@gnome.org> Bug 345600 – cvs build error in pango/opentype/Makefile

2006-06-22 Behdad Esfahbod <behdad@gnome.org>

Bug 345600 – cvs build error in pango/opentype/Makefile

* pango/opentype/Makefile.am: Rename variable SOURCES to MAINSOURCES.
Some automake versions seem to use it or something.
akefile.am
ffb2d5c1e7af33644d0a4058befa4b8358c9a7bf 31-May-2006 Behdad Esfahbod <behdad@gnome.org> Bug 341138 – Using TTC font, Gtk2 programs begin to eating big memory

2006-05-31 Behdad Esfahbod <behdad@gnome.org>

Bug 341138 – Using TTC font, Gtk2 programs begin to eating big memory
and have many cpu usage.
Patch from Yong Li.

* pango/opentype/ftglue.c (_hb_ftglue_face_goto_table): TrueType table
offsets are absolute, not relative.
tglue.c
f8f7bd2451eeafb57f5c80c7b4e88a1e50b97c4f 31-May-2006 Behdad Esfahbod <behdad@gnome.org> Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't correct when

2006-05-31 Behdad Esfahbod <behdad@gnome.org>

Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't correct
when using MarkAttchmentType
Patch from Tin Myo Htet.

* pango/opentype/harfbuzz-gpos.c (Lookup_MarkMarkPos): Ignore marks
of non-matchin attachment type.
arfbuzz-gpos.c
d2a613187c1257371d62153b55c89336965e0754 12-Apr-2006 Behdad Esfahbod <behdad@gnome.org> Fix loop variables. (coverity found bug.)

2006-04-12 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-gpos.c: Fix loop variables. (coverity
found bug.)
arfbuzz-gpos.c
14022e826f63c48b689f9037645c9a3a3302d9b6 11-Apr-2006 Behdad Esfahbod <behdad@gnome.org> Bug 337924 – cleanups for issues reported by various compilers Patch

2006-04-11 Behdad Esfahbod <behdad@gnome.org>

Bug 337924 – cleanups for issues reported by various compilers
Patch from Kjartan Maraas.

* examples/viewer-x.c (update):
* modules/arabic/arabic-fc.c (fallback_shape),
(arabic_engine_shape):
* modules/basic/basic-fc.c (fallback_shape), (basic_engine_shape):
* modules/basic/basic-x.c:
* modules/hangul/hangul-fc.c:
* modules/hebrew/hebrew-fc.c (hebrew_engine_shape):
* modules/indic/indic-fc.c:
* modules/khmer/khmer-fc.c:
* modules/syriac/syriac-fc.c:
* modules/thai/thai-fc.c:
* modules/tibetan/tibetan-fc.c:
* pango/break.c:
* pango/modules.c:
* pango/opentype/ftglue.c (_hb_ftglue_face_goto_table):
* pango/pango-attributes.c (pango_attr_list_filter):
* pango/pango-engine.c:
* pango/pango-fontset.c:
* pango/pango-layout.c (pango_layout_set_text),
(pango_layout_xy_to_index), (pango_layout_get_cursor_pos):
* pango/pango-markup.c (text_handler):
* pango/pango-utils.c (read_alias_file):
* pango/pangocairo-fcfont.c (G_DEFINE_TYPE_WITH_CODE):
* pango/pangocairo-fcfontmap.c (G_DEFINE_TYPE_WITH_CODE):
* pango/pangocairo-font.c (_pango_cairo_font_get_hex_box_info):
* pango/pangox-fontmap.c (pango_x_make_matching_xlfd):
* tests/dump-boundaries.c (fail):
Remove unused variables. Remove excess semicolon after DEFINE_TYPE
macros.
tglue.c
59aafd07806a2f0d4f399eff13aec74557f60522 10-Apr-2006 Behdad Esfahbod <behdad@gnome.org> Fix minor bugs reported by the Coverity scan report.

2006-04-10 Behdad Esfahbod <behdad@gnome.org>

Fix minor bugs reported by the Coverity scan report.

* pango/opentype/harfbuzz-gdef.c (HB_GDEF_Build_ClassDefinition):
* pango/opentype/harfbuzz-gpos.c (HB_GPOS_Query_Scripts),
(HB_GPOS_Query_Languages), (HB_GPOS_Query_Features): Do not access
structs before we check them for nullity.

* pango/pango-layout.c (pango_layout_index_to_line),
(pango_layout_index_to_line_and_extents),
(pango_layout_index_to_pos): Check for invalid iterators outside the
loop, so we don't crash.

* pango/pango-layout.c (pango_layout_line_x_to_index): Set
char_trailing instead of trailing in one of too many paths. Should
have been a typo.

* pango/pangox.c (get_font_metrics_from_subfonts): Check for nullity
somewhere.
arfbuzz-gdef.c
arfbuzz-gpos.c
b31d6def96ff99e89ba42e09661992498bda460d 06-Apr-2006 Behdad Esfahbod <behdad@gnome.org> Update from HarfBuzz. Lars Knoll fixed all the warnings.

2006-04-06 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype: Update from HarfBuzz. Lars Knoll fixed all the
warnings.
arfbuzz-dump.c
arfbuzz-gpos.c
arfbuzz-gsub.c
arfbuzz-impl.h
ca57250bc9d9f92c88a2ea516e251b9cbfdebda0 03-Apr-2006 Behdad Esfahbod <behdad@gnome.org> Make sure TTAG_GDEF and frineds are defined, needed for FreeType <= 2.1.7

2006-04-03 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/harfbuzz-impl.h: Make sure TTAG_GDEF and frineds are
defined, needed for FreeType <= 2.1.7 (pointed by Tim Janik).
arfbuzz-gdef.c
arfbuzz-gpos.c
arfbuzz-gsub.c
arfbuzz-impl.h
f618288e00914b6606ec977d506c18e4abdd3ce4 31-Mar-2006 Behdad Esfahbod <behdad@src.gnome.org> .
cvsignore
5f1f943b9e6d753722ceadba7eb7ce1f14526ea5 31-Mar-2006 Behdad Esfahbod <behdad@src.gnome.org> .
cvsignore
bce3e0b0d4ee521767d80c5c21704337bf5ac716 31-Mar-2006 Behdad Esfahbod <behdad@src.gnome.org> Define NULL.
arfbuzz-impl.h
9f8da38cd108590514b71756b752d98952a9221f 31-Mar-2006 Behdad Esfahbod <behdad@gnome.org> Convert pango/opentype to the new project called HarfBuzz.

2006-03-31 Behdad Esfahbod <behdad@gnome.org>

Convert pango/opentype to the new project called HarfBuzz.

* pango/opentype/*: Restructured.

* pango/pango-ot-*: Updated to use HarfBuzz symbol names.
OPYING
OPYING.FTL
OPYING.GPL
T-license.txt
TL.TXT
akefile.am
EADME
isasm.c
isasm.h
tglue.c
tglue.h
txgdef.c
txgdef.h
txgpos.c
txgpos.h
txgsub.c
txgsub.h
txopen.c
txopen.h
txopenf.h
arfbuzz-buffer.c
arfbuzz-buffer.h
arfbuzz-dump-main.c
arfbuzz-dump.c
arfbuzz-dump.h
arfbuzz-gdef-private.h
arfbuzz-gdef.c
arfbuzz-gdef.h
arfbuzz-gpos-private.h
arfbuzz-gpos.c
arfbuzz-gpos.h
arfbuzz-gsub-private.h
arfbuzz-gsub.c
arfbuzz-gsub.h
arfbuzz-impl.h
arfbuzz-open-private.h
arfbuzz-open.c
arfbuzz-open.h
arfbuzz.c
arfbuzz.h
tlbuffer.c
tlbuffer.h
ttest.c
dd2a8d4d490df1d310e7553ba6c7c8de661f28a1 26-Mar-2006 Behdad Esfahbod <behdad@gnome.org> Don't err on Table_Missing.

2006-03-25 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/ottest.c: Don't err on Table_Missing.
ttest.c
434833b1b7b01d85a143f9ad4b04e7044dd72567 13-Mar-2006 Behdad Esfahbod <behdad@gnome.org> === Released 1.12.0 ===

2006-03-13 Behdad Esfahbod <behdad@gnome.org>

* === Released 1.12.0 ===

* configure.in: Version 1.12.0

* NEWS, README: Updated.
EADME
8228828e1e4c8dd6f9435fb718ad4394bba95655 30-Jan-2006 Behdad Esfahbod <behdad@gnome.org> Handle GSUB Lookup type 8, and ReverseChainContextualSubst table. (bug

2006-01-30 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/ftxgsub.c: Handle GSUB Lookup type 8,
and ReverseChainContextualSubst table. (bug #149696,
patch from Aamir Wali)
txgsub.c
txgsub.h
txopen.c
txopenf.h
e040f681963d51eaadcd53a456100fde1a7addb6 28-Jan-2006 Behdad Esfahbod <behdad@gnome.org> Removed.

2006-01-28 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/pango-ot-*: Removed.

* pango/pango-ot-*: Added.

* pango/Makefile.am, pango/opentype/Makefile.am: Adjusted.
akefile.am
ango-ot-buffer.c
ango-ot-info.c
ango-ot-private.h
ango-ot-ruleset.c
f45689bc655eb723f11a2eb65a41303221b80397 25-Jan-2006 Behdad Esfahbod <behdad@gnome.org> If major.minor of required and available glib versions are the same, add

2006-01-25 Behdad Esfahbod <behdad@gnome.org>

* configure.in: If major.minor of required and available glib versions
are the same, add -DG_DISABLE_DEPRECATED to GLIB_CFLAGS. (bug #328617)

* */Makefile.am: Remove hardcoded -DG_DISABLE_DEPRECATED.
akefile.am
6cc6c9a57c674787f278ea5b60705384fd72b4ad 14-Jan-2006 Behdad Esfahbod <behdad@gnome.org> Make sure #include <config.h> is the first include in the file. (bug

2006-01-14 Behdad Esfahbod <behdad@gnome.org>

* */*.c, */*/*.c: Make sure #include <config.h> is the first include
in the file. (bug #158870, based on patch by Luis Menina)
isasm.c
tglue.c
txgdef.c
txgpos.c
txgsub.c
txopen.c
tlbuffer.c
ttest.c
ango-ot-buffer.c
ango-ot-info.c
ango-ot-ruleset.c
ca07fcf6ef61c09825e67ca7e2574a90e4f5a9a0 05-Jan-2006 Behdad Esfahbod <behdad@gnome.org> pango/Makefile.am, pango/fonts.c, pango/glyphstring.c,

2006-01-05 Behdad Esfahbod <behdad@gnome.org>

* pango/Makefile.am,
* pango/fonts.c,
* pango/glyphstring.c,
* pango/pango-attributes.c,
* pango/pango-color.c,
* pango/pango-impl-utils.h,
* pango/pango-item.c,
* pango/pango-layout.c,
* pango/pango-tabs.c,
* pango/pango-utils.c,
* pango/pango-utils.h,
* pango/pangoatsui-fontmap.c,
* pango/pangocairo-font.c,
* pango/pangocairo-fontmap.c,
* pango/pangofc-fontmap.c,
* pango/pangowin32-fontmap.c,
* pango/pangox-fontmap.c,
* pango/pangox.c,
* pango/opentype/pango-ot-info.c,
* pango/opentype/pango-ot-ruleset.c: Intern strings to avoid
unnecessary strdups in the type system. (bug #325832, Matthias Clasen)
ango-ot-info.c
ango-ot-ruleset.c
71524f1bc891bb4450507f769e5cc8f6f6cffa0c 27-Dec-2005 Behdad Esfahbod <behdad@gnome.org> Use g_slice for PangoOTBuffer allocation. (bug #325026, Matthias Clasen)

2005-12-27 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/pango-ot-buffer.c: Use g_slice for PangoOTBuffer
allocation. (bug #325026, Matthias Clasen)
ango-ot-buffer.c
b5baa43d3a972ebd3ef82ede14b54c185b723a71 25-Nov-2005 Behdad Esfahbod <behdad@src.gnome.org> Tiny doc improvement.
ango-ot-info.c
6f64314f7a031a5a5d6b7663c08b70c452961c89 23-Nov-2005 Behdad Esfahbod <behdad@gnome.org> Fix typo in docs.

2005-11-23 Behdad Esfahbod <behdad@gnome.org>

* pango/opentyp/pango-ot-buffer.c: Fix typo in docs.
ango-ot-buffer.c
f2bcf72296b57c8cd7d5a08228c3aef6c8f97d2d 23-Nov-2005 Behdad Esfahbod <behdad@gnome.org> Added "Since:" tags to all interfaces added after Pango 1.0. (#319116,

2005-11-23 Behdad Esfahbod <behdad@gnome.org>

* pango/fonts.c pango/pango-attributes.c pango/pango-context.c
pango/pango-glyph-item.c pango/pango-layout.c
pango/pango-script.c pango/pango-utils.c pango/pangofc-font.c
pango/pangoft2-fontmap.c pango/opentype/pango-ot-buffer.c
pango/opentype/pango-ot-ruleset.c: Added "Since:" tags to all
interfaces added after Pango 1.0. (#319116, Brian Cameron)
ango-ot-buffer.c
ango-ot-ruleset.c
682db81c23d2116072d8550657c914afb7c26d2b 23-Nov-2005 Behdad Esfahbod <behdad@gnome.org> Protect against possible division by zeros (#316468, Steve Grubb)

2005-11-23 Behdad Esfahbod <behdad@gnome.org>

Protect against possible division by zeros (#316468, Steve Grubb)

* pango/pango-context.c (update_metrics_from_items),
pango/pango-fontset.c (pango_fontset_real_get_metrics): If count is
zero, do not alter approximate_{char,digit}_width.

* pango/opentype/disasm.c: Err on invalid DeltaFormat.
isasm.c
e6e15352d154e1350340f8045759e5f7b0d86dc7 23-Nov-2005 Behdad Esfahbod <behdad@gnome.org> Reworked basic shaper with OpenType support. (#101079, based on patch from

2005-11-23 Behdad Esfahbod <behdad@gnome.org>

* modules/basic/basic-fc.c: Reworked basic shaper with OpenType
support. (#101079, based on patch from Denis Jacquerye and Noah Levitt)

* modules/basic/basic-fc.c (basic_scripts): Added Unicode 4.1 addition
script PANGO_SCRIPT_GLAGOLITIC that is a "simple" script.

* modules/arabic/arabic-fc.c, modules/syriac/syriac-fc.c: Replace
g_utf8_to_ucs4_fast() with g_utf8_strlen()!

* pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_add_feature):
Remove reference in docs to pango_ot_ruleset_shape() that was
removed long ago.
ango-ot-ruleset.c
612b6cf60928b356f4bbb59bc9d64886574322c3 17-Nov-2005 Behdad Esfahbod <behdad@gnome.org> Part of #101079:

2005-11-17 Behdad Esfahbod <behdad@gnome.org>

Part of #101079:

* pango/opentype/ftxopen.c (Load_Lookup): In extension subtables,
offset is relative to the extension subtable, not the original
table. (Greg Aumann)

* pango/opentype/ftxgpos.c (Load_BaseArray): When reading BaseAnchor,
skip offsets that are zero. Works around bug in Doulos SIL Regular.
txgpos.c
txopen.c
1b2c314b804da97b1d5e7adab64bdd4177702579 10-Nov-2005 Behdad Esfahbod <behdad@gnome.org> Remove debug line that got in accidentally.

2005-11-09 Behdad Esfahbod <behdad@gnome.org>

* pango/opentype/ftxgpos.c, pango/opentype/ftxopen.c: Remove debug
line that got in accidentally.
txgpos.c
txopen.c
9717127a5be037e26afe52332a8b07f13474557a 05-Nov-2005 Behdad Esfahbod <behdad@gnome.org> Turn various gcc warnings off. Adding const, adding static, fully

2005-11-04 Behdad Esfahbod <behdad@gnome.org>

* configure.in, examples/argcontext.c examples/cairoview.c,
examples/renderdemo.c, examples/renderdemo.h examples/xftview.c,
modules/basic/basic-x.c, modules/hangul/hangul-fc.c,
modules/hebrew/hebrew-shaper.c, modules/hebrew/hebrew-shaper.h,
modules/indic/indic-fc.c, modules/indic/mprefixups.c,
modules/syriac/syriac-fc.c, pango/break.c pango/fonts.c,
pango/modules.c, pango/pango-coverage.c pango/pango-engine.c,
pango/pango-engine.h, pango/pango-fontmap.c,
pango/pango-fontset.c, pango/pango-impl-utils.h,
pango/pango-layout.c, pango/pango-layout.h,
pango/pango-renderer.c, pango/pango-script.c,
pango/pango-utils.c, pango/pangocairo-fc.h,
pango/pangocairo-font.c, pango/pangocairo-fontmap.c,
pango/pangocairo-private.h, pango/pangofc-decoder.c,
pango/pangofc-font.c, pango/pangofc-fontmap.c pango/pangoft2.c,
pango/pangox-fontcache.c, pango/pangox-fontmap.c pango/pangox.c,
pango/pangoxft-font.c, pango/querymodules.c,
pango/opentype/ftglue.c, pango/opentype/ftxgpos.c,
pango/opentype/ftxopen.c, pango/opentype/pango-ot-buffer.c,
pango/opentype/pango-ot-info.c,
pango/opentype/pango-ot-ruleset.c, tests/dump-boundaries.c,
tests/testboundaries.c, tests/testcolor.c tests/testiter.c,
tests/testscript.c: Turn various gcc warnings off. Adding const,
adding static, fully initializing structs, match signedness in
comparisons. (#317804)

* tests/testscript.c, tools/gen-script-for-lang.c:
(scripts_for_file): Pass error->message instead of error to fail(),
which was wrong.
(compare_lang): Fix typo comparing a and a instead of a and b.
tglue.c
txgpos.c
txopen.c
ango-ot-buffer.c
ango-ot-info.c
ango-ot-ruleset.c
c0505f3bb28feeba95b201e6464fb2fdac90194a 03-Nov-2005 Behdad Esfahbod <behdad@gnome.org> Patches from #170414. Reviewed by Matthias Clasen.

2005-11-03 Behdad Esfahbod <behdad@gnome.org>

Patches from #170414. Reviewed by Matthias Clasen.

* pango/opentype/ftxgpos.c, pango/opentype/ftxgsub.c: Use call table
to dispatch different lookup types.

* pango/opentype/pango-ot-buffer.c, pango/opentype/pango-ot-ruleset.c:
Small cleanup.
txgpos.c
txgsub.c
ango-ot-buffer.c
ango-ot-ruleset.c
c6b22b9119ef54ea8d0d2f08b74fdeb024289d73 29-Aug-2005 Behdad Esfahbod <pango@behdad.org> Generate valid XML output. Dump LookupFlag too.

2005-08-29 Behdad Esfahbod <pango@behdad.org>

* pango/opentype/ottest.c, pango/opentype/disasm.c: Generate valid
XML output. Dump LookupFlag too.
isasm.c
ttest.c
1e3747ca5d1a6f607f8e56fb94e3daaf6ad623cb 15-Aug-2005 Behdad Esfahbod <pango@behdad.org> Replace perror with perror_. Remove FT_BEGIN_STMNT and FT_END_STMNT.

2005-08-15 Behdad Esfahbod <pango@behdad.org>

* pango/opentype/ftglue.h: Replace perror with perror_.
Remove FT_BEGIN_STMNT and FT_END_STMNT. (#313477)
tglue.h
3c60250875fa9d04ca96dea35eba23fc70690ff5 26-Jul-2005 Owen Taylor <otaylor@redhat.com> Skip lookups with lookup index out of range. (Patch from Behdad Esfahbod,

2005-07-26 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c, pango/opentype/ftxgpos.c: Skip lookups
with lookup index out of range. (Patch from Behdad Esfahbod, #171170)
txgpos.c
txgsub.c
91a3fa2e4bcdde8ae022d1264c783f133cd7e00d 22-Jul-2005 Owen Taylor <otaylor@redhat.com> Remove an unecessary set of block2.

2005-07-22 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftglue.c (ftglue_realloc): Remove
an unecessary set of block2.
tglue.c
ff7034787d79dcd1bec58a4e02602039313da00e 22-Jul-2005 Owen Taylor <otaylor@redhat.com> Patch from David Turner. Review and testing by Behdad Esfahbod

2005-07-22 Owen Taylor <otaylor@redhat.com>

Patch from David Turner. Review and testing by Behdad Esfahbod

* pango/opentype/ftglue.[ch] Makefile.am: Glue layer that provides
implementation of the internal functions that the opentype code
expects in terms of publically exported FreeType API.

* pango/opentype/ftxgdef.c pango/opentype/ftxgpos.c
pango/opentype/ftxgsub.c pango/opentype/ftxopen.c
pango/opentype/otlbuffer.c pango/opentype/pango-ot-info.c
pango/opentype/pango-ot-ruleset.c: Remove includes of
internal headers. Small changes to work with ftglue.[ch]

* pango/opentype/fterrcompat.h: Remove: no longer needed.

* pango/opentype/ftxgpos.c: Use FT_IS_SFNT(face) rather
than poking at FT_MODULE_CLASS (face->driver)->module_name.

* pango/opentype/ftxopen.c (Free_FeatureList): Free
fl->ApplyOrder. (Found by Behdad)
akefile.am
terrcompat.h
tglue.c
tglue.h
txgdef.c
txgpos.c
txgsub.c
txopen.c
tlbuffer.c
ango-ot-info.c
ango-ot-ruleset.c
43dbec6f3a345ba0e4a43766610ed59622bbe4a0 21-Jul-2005 Owen Taylor <otaylor@redhat.com> Fix up places where there is missing or incomplete Copyright and License

2005-07-21 Owen Taylor <otaylor@redhat.com>

Fix up places where there is missing or incomplete
Copyright and License information (Reported by William N. Ray)

* pango/opentype/fterrcompat.h: Mark as FreeType/GPL licensed.

* pango/opentype/FT-license.txt: Make this the dual-licensing
description that covers the FreeType code (FreeType's
LICENSE.TXT) rather than the FTL.

* pango/opentype/FTL.TXT: Move the FTL (referenced from
FT-license.txt) to here.

* modules/basic/basic-common.h modules/hebrew/hebrew-shaper.h
modules/thai/thai-charprop.c modules/thai/thai-shaper.h
tools/gen-script-for-lang.c tests/testcolor.c:
Add LGPL header and copyright information.

* modules/indic/indic-ot.[ch] modules/indic/indic-ot-class-tables.c
modules/thai/thai-ot.[ch]: Add LGPL header.

* modules/thai/thai-shaper.c modules/thai/thai-charprop.h:
Minor fixes to copyright information.

* modules/arabic/arabic-ot.c: Add Freetype license boilerplate.
T-license.txt
TL.TXT
terrcompat.h
c55850d36d208c7aae8f6ed5c9e1e7927b988d6c 14-Jun-2005 Owen Taylor <otaylor@redhat.com> Chain up from finalize. (#307547, Paolo Borelli)

2005-06-14 Owen Taylor <otaylor@redhat.com>

* pango/opentype/pango-ot-info.c (pango_ot_info_finalize)
pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_finalize):
Chain up from finalize. (#307547, Paolo Borelli)

* pango/opentype/pango-ot-info.c (pango_ot_info_finalizer):
make accidentally public function static.
ango-ot-info.c
ango-ot-ruleset.c
44ff46a364fb7981804eb45329c4999b415711f9 12-Apr-2005 Tor Lillqvist <tml@novell.com> Rename LDADDS to libpango_ot_la_LIBADD to actually make libpango-ot.la

2005-04-12 Tor Lillqvist <tml@novell.com>

* pango/opentype/Makefile.am: Rename LDADDS to
libpango_ot_la_LIBADD to actually make libpango-ot.la link with
it.

* pango/pangowin32.def: Rename get_scale_factor to
get_metrics_factor here, too. (#300222, Ivan Wong)
akefile.am
0c349a032e5a52a9d0dcc8204f761b7cb28bfa6b 03-Mar-2005 Owen Taylor <otaylor@redhat.com> For all binary searches, handle the case where the number of items is 0.

2005-03-03 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxopen.c (Coverage_Index1, Coverage_Index2,
Get_Class2): For all binary searches, handle the case where
the number of items is 0. (#162977, Nick Lamb)

* pango/opentype/ftxgdef.c (TT_GDEF_Build_ClassDefinition):
Handle the case where glyph_count == 0 properly. Fix a problem
with cleanups on memory allocation failure.
(Get_New_Count, Add_Glyph_Property): Avoid reading off the
end of the ClassRangeRecord array.
txgdef.c
txopen.c
03838daaa9d485bffcb7bc46453a9a4c32a1f32f 23-Nov-2004 Owen Taylor <otaylor@redhat.com> Set G_LOG_DOMAIN.

Mon Nov 22 18:30:14 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/Makefile.am pango/Makefile.am
modules/*/Makefile.am: Set G_LOG_DOMAIN.
akefile.am
346d3b3cac253d2db41205151c185bf2fd9dda16 22-Sep-2004 Owen Taylor <otaylor@redhat.com> Cleanups from 'sparse', #149922, Kjartan Maraas

Wed Sep 22 14:07:47 2004 Owen Taylor <otaylor@redhat.com>

Cleanups from 'sparse', #149922, Kjartan Maraas

* pango/pango-utils.c (read_config): () => (void) in
definition.

* pango/pangofc-fontmap.c (pango_fc_font_map_list_families):
Initialize *n_families, not n_families.

* pango/pangofc-fontmap.c pango/pangoft2.c opentype/ftxgdef.c
opentype/ftxgpos.c opentype/ftxgsub.c: : Fix various 0/NULL
confusion.
txgdef.c
txgpos.c
txgsub.c
8b654dfb5ad6137ee9c5a48f5abe04bf7d28d8cd 14-Sep-2004 Owen Taylor <otaylor@redhat.com> === Released 1.6.0 ===

Mon Sep 13 17:38:58 2004 Owen Taylor <otaylor@redhat.com>

* === Released 1.6.0 ===

* configure.in: Update versions for 1.6.0

* NEWS: Update.

* README: Minor tweak.

* pango/fonts.c pango/pango-context.c pango/pango-types.h
pango/pango-utils.c pango/pangoft2.c pango/pango-layout.c
pango/opentype/pango-ot-buffer.c: Add a bunch of missing
Since: 1.6.
ango-ot-buffer.c
d41089a5b691967fdd622f47c8397a80af104396 30-Jul-2004 Owen Taylor <otaylor@redhat.com> Finish extending properties flags from FT_UShort => FT_UInt. (OTLBuffer

Fri Jul 30 17:17:05 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgpos.[ch] pango/opentype/ftxgsub.[ch]
pango/opentype/ftxopen.[ch]: Finish extending properties
flags from FT_UShort => FT_UInt. (OTLBuffer was already
using an FT_UInt)
txgpos.c
txgpos.h
txgsub.c
txgsub.h
txopen.c
txopen.h
f42d5eca291dcdfb27d7fbf88391d6d381b8e9c4 27-Jul-2004 Owen Taylor <otaylor@redhat.com> Save the order in which features were added and use that when applying

Tue Jul 27 12:38:05 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxopen.[ch] pango/opentype/ftxgsub.c
pango/opentype/ftxpos.c: Save the order in which
features were added and use that when applying features.
(Patch from Soheil Hassas Yeganeh, #122330)
txgpos.c
txgsub.c
txopen.c
txopen.h
ae2daa972d74c5ecfe1d2f0057ce12682ad30b00 27-Jul-2004 Behdad Esfahbod <behdad@src.gnome.org> Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros.


* pango/opentype/ftxgpos.c: Remove the unused parameter
from the IN_CURITEM() and IN_CURGLYPH macros.
txgpos.c
txgsub.c
7d5435ea8cb345c79029b8a12d1bddbed28b1997 27-Jul-2004 Behdad Esfahbod <behdad@src.gnome.org> Fix bug to copy glyph from in_string, not out_string.


* pango/opentype/otlbuffer.c (otl_buffer_copy_output_glyph):
Fix bug to copy glyph from in_string, not out_string.
tlbuffer.c
2ea2a55bdf7ef1caebcd0c5922b0f542ed8bb5bf 27-Jul-2004 Owen Taylor <otaylor@redhat.com> Fix allocation and indexing in NewGlyphClasses array. (#130661, Masatake

Mon Jul 26 19:11:46 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgdef.c: Fix allocation and indexing
in NewGlyphClasses array. (#130661, Masatake YAMATO)
txgdef.c
5d42695e5ed89f73fbc665792ebec82c29ae04ae 26-Jul-2004 Owen Taylor <otaylor@redhat.com> Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros.

Mon Jul 26 15:24:11 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c (ADD_Glyph): Remove the
unused parameter from the IN_CURITEM() and IN_CURGLYPH
macros.
txgsub.c
a00c4ea5626526980139b122977e367b8434d24a 26-Jul-2004 Owen Taylor <otaylor@redhat.com> Add missing macro to make the last change actually compile.

Mon Jul 26 15:21:23 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c: Add missing macro to make the
last change actually compile.
txgsub.c
ed3e1f278d3ebfd224f0b57388502d4bb9fb1441 26-Jul-2004 Owen Taylor <otaylor@redhat.com> Match backtrack context against the output glyphs not the input glyphs

Mon Jul 26 15:16:07 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c (Lookup_ChainContextSubst[123]):
Match backtrack context against the output glyphs not
the input glyphs (#145174, Aamir Wali)
txgsub.c
78282cda004a88b2aadb2786dd3897884e22ed0b 26-Jul-2004 Owen Taylor <otaylor@redhat.com> Make Check_Property() take a OTL_GlyphItem, add a gproperties field to

Mon Jul 26 14:49:22 2004 Owen Taylor <otaylor@redhat.com>

* ftxgdef.[ch] otlbuffer.[ch]: Make Check_Property() take a
OTL_GlyphItem, add a gproperties field to OTLGlyphItem,
and use that to cache the properties for a glyph.

* ftxgsub.c ftxgdef.c: Adapt to Check_Property() changes.

* otlbuffer.[ch] ftxgsub.c: Add otl_buffer_copy_output_glyph()
to use when we are copying an unmodified glyph from input
to output that preserves the cached properties.
txgdef.c
txgpos.c
txgsub.c
txopenf.h
tlbuffer.c
tlbuffer.h
81b62af42313fb60db523374cd8c6901829f5c4e 19-Jul-2004 Owen Taylor <otaylor@redhat.com> Add support for ChainContextSubstFormat3.

Mon Jul 19 17:09:11 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/disasm.c: Add support for
ChainContextSubstFormat3.
isasm.c
d4f773ef92fdbaa7e61e6577db5e9b2846a100a4 19-Jul-2004 Owen Taylor <otaylor@redhat.com> Fix pervasive buffer overruns when skipping glyphs when matching contexts.

Mon Jul 19 16:29:45 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c pango/opentype/ftxgpos.c:
Fix pervasive buffer overruns when skipping glyphs
when matching contexts. (#118592, Kailash C. Chowksey)
txgpos.c
txgsub.c
99848cfafee8e598ef533f254cdb99fbae4c9364 23-Jun-2004 Owen Taylor <otaylor@redhat.com> #143693, Sayamindu Dasgupta

Wed Jun 23 16:13:53 2004 Owen Taylor <otaylor@redhat.com>

#143693, Sayamindu Dasgupta

* pango/opentype/pango-ot-buffer.c (pango_ot_buffer_set_zero_width_marks) pango/opentype/pango-ot-private.h:
Allow setting for whether marks should be given zero width,
defaulting to FALSE.

* modules/arabic/arabic-fc.c (arabic_engine_shape): Turn
on zero-width-marks setting.
ango-ot-buffer.c
ango-ot-private.h
68d4cedb8726fa239f56d62060d8fee7e09cb8be 21-Jun-2004 Owen Taylor <otaylor@redhat.com> Use the gcc-3.3 strict-aliasing compatible macros from fterrcompat.h

Mon Jun 21 13:55:17 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/otlbuffer.c: Use the gcc-3.3
strict-aliasing compatible macros from fterrcompat.h
(#140495, reported by Stanislav Brabec)
tlbuffer.c
b327765176dff81047f942ac56a1d206344e6039 28-May-2004 Theppitak Karoonboonyanan <tkaroonb@src.gnome.org> Negate y offset according to different conventions between

* pango/opentype/pango-ot-buffer.c (apply_gpos_ltr): Negate y offset
according to different conventions between PangoGlyphString and OTL
(#142544)
ango-ot-buffer.c
068763b547d791e28b892bcaee810f3d60a83018 27-May-2004 Owen Taylor <otaylor@redhat.com> Revert error return changes from last commit.

Thu May 27 17:54:24 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/otlbuffer.c: Revert error return changes
from last commit.
tlbuffer.c
ef07481025c5bbb9769b9f908d9dc78f44161bbb 27-May-2004 Owen Taylor <otaylor@redhat.com> Free buffer->positions, clean up error returns that were returning

Thu May 27 16:57:30 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/otlbuffer.c: Free buffer->positions,
clean up error returns that were returning uninitialized
values. (#139239, Behdad Esfahbod)
tlbuffer.c
de568e7e6200c7a49bae1f78ac63858b8df01173 16-Mar-2004 Owen Taylor <otaylor@redhat.com> === Released 1.4.0 ===

Tue Mar 16 11:24:46 2004 Owen Taylor <otaylor@redhat.com>

* === Released 1.4.0 ===

* configure.in: Version 1.4.0, interface ago 0. Require
glib-2.4.0.

* NEWS: Updates.

* README: Some updates; include details about the FreeType
license of the OpenType code.
T-license.txt
8b3554b3afe7c125b1a53171b01ac87de9c486fe 03-Mar-2004 Hans Breuer <hans@breuer.org> if PANGO_MODULE_PREFIX is defined include the basic backend shaper (should

2004-03-03 Hans Breuer <hans@breuer.org>

* pango/module-defs-win32.c.win32 : if PANGO_MODULE_PREFIX is
defined include the basic backend shaper (should have been
commited at 2003-12-12, too)

* pango/makefile.msc : generate correct type for PangoFontMask
(bug #135892, John Ehresman)
* pango/opentype/makefile.msc : updated

* pango/pango.def pango/pangoft2.def : more updatd externals
akefile.msc
a7e096c5de3ec5319bf9333c9ace0732d97c52c3 29-Feb-2004 Owen Taylor <otaylor@redhat.com> Rework opentype interfaces and other changes to make GPOS work for Arabic.

Sun Feb 29 09:25:13 2004 Owen Taylor <otaylor@redhat.com>

Rework opentype interfaces and other changes to make GPOS
work for Arabic. (Most of #117282, #121060)

* pango/opentype/otlbuffer.[ch]: OTL_Buffer that
acts as a replacement for the separate GSUB and
GPOS string structures and hides many of the internal
details.

* pango/opentype/ftxgsub.[ch] pango/opentype/ftxgpos.[ch]:
Adapt to OTL_Buffer.

* pango/opentype/ftxgpos.c: Redo handling of cursive
chains so that it actually works.

* pango/pango-ot.h pango/opentype/pango-ot-buffer.c:
Pango wrapper around OTL_Buffer.

* pango/pango-ot.h pango/pango-ot-ruleset.c pango/pango-ot-buffer.c:
Split pango_ot_ruleset_shape() into pango_ot_ruleset_substitute(),
pango_ot_ruleset_position(), make them act on
PangoOTBuffer, add a separate pango_ot_buffer_output()
which does the default positioning and writes to a
PangoGlyphString.

* modules/arabic/arabic-fc.c modules/indic/indic-fc.c
modules/indic/mprefixups.[ch]: Adapt to new OpenType
interfaces; add GPOS features for Arabic.

* pango/opentype/pango-ot-info.c: Don't derive class information
from Unicode properties for Arabic presentation forms,
let the shaping process derive the properties.
akefile.am
txgdef.c
txgpos.c
txgpos.h
txgsub.c
txgsub.h
txopen.h
tlbuffer.c
tlbuffer.h
ttest.c
ango-ot-buffer.c
ango-ot-info.c
ango-ot-private.h
ango-ot-ruleset.c
d670ddf99192dd4999775a9215a818ae63fa3416 21-Feb-2004 Owen Taylor <otaylor@redhat.com> Sign convention for y offsets is opposite between PangoGlyphString and FT

Sat Feb 21 09:49:23 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_shape):
Sign convention for y offsets is opposite between
PangoGlyphString and FT code. (#132591)
ango-ot-ruleset.c
b9b3c131c2b57c12a77124a52512fb19a1255f8e 13-Feb-2004 Owen Taylor <otaylor@redhat.com> Memory leak fixes from Masatake YAMATO, #130652

Fri Feb 13 10:54:18 2004 Owen Taylor <otaylor@redhat.com>

Memory leak fixes from Masatake YAMATO, #130652

* pango/opentype/ftxgdef.c (TT_Done_GDEF_Table):
Free the gdef table as well as the contained data.

* pango/opentype/ftxgdef.c (TT_GDEF_Build_ClassDefinition):
Set gcd->loaded, so that the contents get freed later.
txgdef.c
926b8f322989298e43c8bac85f23e3525470a669 26-Jan-2004 Owen Taylor <otaylor@redhat.com> Suport CFF fonts as well. (#131202, Manjunath Sripadarao)

Mon Jan 26 14:20:34 2004 Owen Taylor <otaylor@redhat.com>

* pango/opentype/pango-ot-info.c (is_truetype): Suport
CFF fonts as well. (#131202, Manjunath Sripadarao)
ango-ot-info.c
945e479a3a35769e5e7c792fdcf306892523a5f9 13-Dec-2003 Hans Breuer <hans@breuer.org> moved pango_fc_* to the latter where they live on *nix too.

2003-12-13 Hans Breuer <hans@breuer.org>

* pango/pango.def pangoft2.def : moved pango_fc_*
to the latter where they live on *nix too.

* pango/makefile.msc : make it build again (including
the Ft2 backend)

* pango/module-defs-fc.c.win32 : if PANGO_MODULE_PREFIX is defined
include the basic backend shaper

* pango/pangowin32.c (pango_win32_render_layout) :
initialize iter before first usage to avoid immediate crashing

* pango/opentype/makefile.msc
pango/modules/makefile.msc : finally build with mscv, too.
[completely untested cause I'm not able to type, write or read
any of these languages]

* modules/modules.def : follow module function renaming/changes

* modules/basic/basic-win32.c : register the right engine, i.e.
make it compile
akefile.msc
ba0ccd5cfcb514cdc45373158343138b7b190f9d 01-Nov-2003 Owen Taylor <otaylor@redhat.com> Switch over to recommended Freetype system of include ft2build.h then

Sat Nov 1 09:32:15 2003 Owen Taylor <otaylor@redhat.com>

* pango/pango-ot.h pango/pangofc-font.h modules/indic/indic-ot.h
pango/pangoft2.c pango/opentype/pango-ot-info.c
pango/opentype/pango-ot-ruleset.c pango/opentype/ottest.c
pango/opentype/ftxopen.[ch] pango/opentype/ftxgdef.c
pango/opentype/ftxgsub.c pango/opentype/ftxgpos.c:
Switch over to recommended Freetype system of
include ft2build.h then #include FT_FREETYPE_H.
Fixes ftmodule.h problem with current Freetype CVS.
(#125548)
txgdef.c
txgpos.c
txgsub.c
txopen.c
txopen.h
ttest.c
ango-ot-info.c
ango-ot-private.h
ango-ot-ruleset.c
558171a7a3666999c679719ad0bfbdf7c6a52289 16-Sep-2003 Owen Taylor <otaylor@redhat.com> Fix gcc-3.3 versions of macros to have the right return value.

Mon Sep 15 17:16:59 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/fterrcompat.h: Fix gcc-3.3 versions of
macros to have the right return value.
terrcompat.h
c99259bf7e08ccdc4130d4983e8d186021ea8e1a 25-Aug-2003 Owen Taylor <otaylor@redhat.com> pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3) Fix problems where

Mon Aug 25 10:17:21 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3)
* pango/opentype/ftxgpos.c (Lookup_ChainContextPos3):
Fix problems where the coverage wasn't being checked
for the first input glyph. (#118639, Kailash C. Chowksey)
txgpos.c
txgsub.c
bcf81bcc80c6235dfbc7eeaa34ed21ea329c7a3d 23-Aug-2003 Owen Taylor <otaylor@redhat.com> Add some macro definitions for gcc-3.3 that suppress the bogus

Fri Aug 22 18:09:52 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/fterrcompat.h: Add some macro definitions
for gcc-3.3 that suppress the bogus strict-aliasing
warnings.

* pango/pango-utils.c (read_config_file): Use
g_hash_table_new_full() to simplify code and fix
gcc-3.3 warnings.

* pango/pangox-fontmap.c (pango_x_real_get_coverage_win)
* pango/querymodules.c (query_module): Suppress gcc-3.3
warnings.

* pango/modules.c (pango_find_map): Fix warning from
missing declaration of pango_module_get_type().

* pango/pango-context.c/pango-engine.c: Fix name confusion
for pango_get_fallback_shaper().
terrcompat.h
46d379596d7292a3b2e51f35fc8044b366d413a3 29-Jul-2003 Owen Taylor <otaylor@redhat.com> Rewrite handling of IGNORE_SPECIAL_MARKS to be properly "ignore marks of

Tue Jul 29 09:58:13 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgdef.c (Check_Property): Rewrite
handling of IGNORE_SPECIAL_MARKS to be properly
"ignore marks of attachment type different than
specified. (#118456, Kailash C. Chowksey)
txgdef.c
8247acad79c1a4154e9337aed453eb3e4d23063d 29-Jul-2003 Owen Taylor <otaylor@redhat.com> Revert back out the FreeType patch preventing ligatures of not-originally

Sat Jul 26 09:41:22 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c (Lookup_LigatureSubst):
Revert back out the FreeType patch preventing
ligatures of not-originally adjacent glyphs;
it doesn't work for all scripts. (#118472,
Kailash C. Chowksey)
txgsub.c
825e6d7e86cac310161648601b09291fa05d5ba5 27-Jul-2003 Owen Taylor <otaylor@redhat.com> Check for lookahead glyphs in the right place. (Patch from #116860)

Sat Jul 26 22:30:59 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c (Lookup_ChainContextSubst{1,2,3}):
Check for lookahead glyphs in the right place. (Patch
from #116860)

* pango/opentype/ftxgpos.c (Lookup_ChainContextPos{1,2,3}):
Same fix here.
txgpos.c
txgsub.c
03a0fe09c711b81c7eb4065fd4700b8cfd2c977a 27-Jul-2003 Owen Taylor <otaylor@redhat.com> Fix return value to only contain TTO_Err_Not_Covered if *no* lookups

Sat Jul 26 22:12:46 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c (Do_String_Lookup,
TT_GSUB_Apply_String): Fix return value to only
contain TTO_Err_Not_Covered if *no* lookups
matched. Fix memory leaks on error in Apply_String().
txgsub.c
e10ea2afd9a5868d4ec1ff3a2b99bcd64ce45816 27-Jul-2003 Owen Taylor <otaylor@redhat.com> Fix confusion between boolean and FT_Error return. (GSUB equivalent of fix

Sat Jul 26 21:06:26 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c (Load_EmptyOrClassDefinition):
Fix confusion between boolean and FT_Error return.
(GSUB equivalent of fix for #108358)
txgsub.c
a7305ab2624cbc08160dc11587ba3dc4e17781c2 26-Jul-2003 Owen Taylor <otaylor@redhat.com> Move allocation afer initial checks, fixing memory leak.

Sat Jul 26 10:52:20 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgpos.c (Lookup_ContextPos2):
* pango/opentype/ftxgsub.c (Lookup_ContextSubst2): Move
allocation afer initial checks, fixing memory leak.

* pango/opentype/ftxgsub.c (Lookup_ChainContextSubst2):
Fix some more error return memory leaks that weren't
fixed in the Qt changes.
txgpos.c
txgsub.c
f40b7c15e0bc4b71e706602c4e062f72d8f0fcdd 26-Jul-2003 Owen Taylor <otaylor@redhat.com> Fix various memory leaks from error returns that should have been jumps to

Sat Jul 26 10:43:20 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c pango/opentype/ftxgpos.c:
Fix various memory leaks from error returns that should
have been jumps to cleanup blocks. (From Qt, Lars Knoll)
txgpos.c
txgsub.c
256d21970733483833b9cf31d5e0fa7ae853e944 26-Jul-2003 Owen Taylor <otaylor@redhat.com> Fix additional places where TTO_Err_Not_Covered wasn't considered a

Sat Jul 26 10:30:24 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgpos.c: Fix additional places where
TTO_Err_Not_Covered wasn't considered a successful return
from Get_Class. (From Qt, Lars Knoll)
txgpos.c
374960681e2e36d0e4032623d8cb92a7910baf71 26-Jul-2003 Owen Taylor <otaylor@redhat.com> If applying a ligature lookup makes adjacent two glyphs that were not

Sat Jul 26 09:41:22 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c (Lookup_LigatureSubst):
If applying a ligature lookup makes adjacent two glyphs
that were not originally adjacent, avoid making
subsequent ligatures between those glyphs.
(From FreeType, Werner Lemberg, 2001-08-22, 2001-08-23)
txgsub.c
b682482df77608d67eca8a050db5b36f44953c13 26-Jul-2003 Owen Taylor <otaylor@redhat.com> Fix some FreeType1 variable declarations that snuck in from the last

Sat Jul 26 09:16:57 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgpos.c pango/opentype/ftxopen.c:
Fix some FreeType1 variable declarations that snuck
in from the last commits (Christophe Fergeau,
118363)
txgpos.c
txopen.c
06c12109de061c357f46dcec82c4bee7160afede 26-Jul-2003 Owen Taylor <otaylor@redhat.com> OpenType-1.4 update: backtrack information is stored with the item closest

Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c:
OpenType-1.4 update: backtrack information is stored with the
item closest to the input first (From FreeType,
Werner Lemberg, 2002-09-26)
txgpos.c
txgsub.c
15a69e4a12739e7392f2a38d6f7bfdd96c0dc3ba 26-Jul-2003 Owen Taylor <otaylor@redhat.com> Update of GPOS and GSUB support to OpenType 1.3 (From FreeType, Werner

Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com>

Update of GPOS and GSUB support to OpenType 1.3
(From FreeType, Werner Lemberg, 2001-08-08)

* pango/opentype/ftxopen.h: Add RIGHT_TO_LEFT LookupFlag

* pango/opentype/ftxgpos.c (GPOS_Instance): Add 'first'
member to mark the beginning of a chain of cursive connections.

* pango/opentype/ftxgpos.c (Do_String_Lookup): If the
RIGHT_TO_FLAG flag is set, shift cursive chain up so
last glyph is on the baseline.
txgpos.c
txopen.h
6f74f18b77402f3adf5bfbae26e8f44de6543b4e 26-Jul-2003 Owen Taylor <otaylor@redhat.com> Add GPOS_LOOKUP_EXTENSION, GSUB_LOOKUP_EXTENSION, which allow lookup

Fri Jul 25 22:59:13 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftx{gpos,gsub}.h pango/opentype/ftxgdef.c:
Add GPOS_LOOKUP_EXTENSION, GSUB_LOOKUP_EXTENSION, which
allow lookup information to be stored at 32-bit offets
via a double indirection. (From FreeType, Werner Lemberg,
2001-08-08)
txgpos.h
txgsub.h
txopen.c
375781c4546b5cfc453b99551ddf715bb162ffb9 26-Jul-2003 Owen Taylor <otaylor@redhat.com> Fix a couple of places where TTO_Err_Not_Covered wasn't considered a

Fri Jul 25 22:25:48 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c (Lookup_ContextSubst2,
Lookup_ChainContextSubst2): Fix a couple of
places where TTO_Err_Not_Covered wasn't considered
a successful return from Get_Class -- it means
use class index 0. (From FreeType, Werner Lemberg,
2001-08-06)
txgsub.c
378e1889cd294cb77313ba7fdab3e52959bf2c40 26-Jul-2003 Owen Taylor <otaylor@redhat.com> Improvements to OpenType-dumping code, based on changes in Qt by Lars

Fri Jul 25 20:12:00 2003 Owen Taylor <otaylor@redhat.com>

Improvements to OpenType-dumping code, based on
changes in Qt by Lars Knoll.

* pango/opentype/ottest.c: Tweak the debugging output,
suppress some warnings.

* pango/opentype/disasm.c: Add support for
GSUB Context/Chain GPOS MarkBase lookups, improve
output in various ways.
isasm.c
ttest.c
07bad0e77c42b5f2535e3b018bf9074d2f4ecc7c 24-Jul-2003 Owen Taylor <otaylor@redhat.com> Fix uses of g_assert() around statements with side effects. (#115498,

Thu Jul 24 17:04:21 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_shape):
Fix uses of g_assert() around statements with side effects.
(#115498, patch from David Cuthbert)
ango-ot-ruleset.c
f91deef2c9473da5c3cb5e120f2d4fbf0d638166 16-Apr-2003 Owen Taylor <otaylor@redhat.com> More careful handling of face->charmap; if is NULL, try to set a unicode

Wed Apr 16 03:46:42 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/pango-ot-info.c (synthesize_class_def):
More careful handling of face->charmap; if is NULL,
try to set a unicode charmap, if that doesn't succeed,
return. (Hopefully fixes #106550)
ango-ot-info.c
587b3940f3ce71e8e1c9950086923d4eb78d62db 16-Apr-2003 Owen Taylor <otaylor@redhat.com> When loading in Load_Chain{Sub,Pos}ClassRule, the limit we have only

Tue Apr 15 11:49:39 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxg{sub/pos}.c: When loading
in Load_Chain{Sub,Pos}ClassRule, the limit we
have only applies to the input ClassDef table.
Fixes problem with Arial Unicode. Much help from
Noah Levitt in tracing this down.
txgpos.c
txgsub.c
0d7567f8eaa1f8d0ec9cb89218ce3a1475d258ac 16-Apr-2003 Owen Taylor <otaylor@redhat.com> Fix mispelled constant from last commit.

Tue Apr 15 06:57:02 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgpos.c: Fix mispelled constant
from last commit.
txgpos.c
73cd600798a9a7225b2ac8241ea371d48cf7baf3 16-Apr-2003 Owen Taylor <otaylor@redhat.com> Fix confusion between boolean and FT_Error return. (#108358, Noah Levitt)

Tue Apr 15 06:03:39 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgpos.c: Fix confusion between
boolean and FT_Error return. (#108358, Noah Levitt)

* pango/opentype/ftxopen.c (Get_Class1): index is
allowed to be NULL. (#108358, Noah Levitt)
txgpos.c
txopen.c
462bd0be608c3d14e5b4c01099b02b3948a52369 15-Apr-2003 Owen Taylor <otaylor@redhat.com> Fix infinite loop in the case where the charmap contains a character >

Tue Apr 15 05:00:39 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/pango-ot-info.c (synthesize_class_def):
Fix infinite loop in the case where the charmap contains
a character > 65535. (#106550, Morten Welinder.)
ango-ot-info.c
312e1c1cf9f2c1e2137b9aaa5181a541447923cb 11-Mar-2003 James Henstridge <james@daa.com.au> make similar changes to the ones on glib head (call gtk-docize, etc).

2003-03-11 James Henstridge <james@daa.com.au>

* autogen.sh: make similar changes to the ones on glib head (call
gtk-docize, etc).

* configure.in: move some calculations into M4 macros, rather than
calculating them when configure runs.
Use AC_HELP_STRING where appropriate.
Replace gtk-doc checks with a call to GTK_DOC_CHECK.
Replace AC_OUTPUT_COMMANDS() call with a number of calls to
AC_CONFIG_COMMANDS (once per created file).
Get rid of the "chmod +x pango-config" bit, because there is no
pango-config anymore.

* Makefile.am: get rid of custom distcheck rule, and set
DISTCHECK_CONFIGURE_FLAGS, which is equivalent.
Use += to select which .pc files to install.

* pango/Makefile.am: Add rules to rebuild module-defs* files, and
remove them on clean.
Reorder so that rules related to each individual library are next
to each other.
Use BUILT_SOURCES for built sources.

* pango/opentype/Makefile.am: don't use STRIP_BEGIN/STRIP_END.

* modules/*/Makefile.am: simplify module makefiles through use of
+=, and regularise them a bit (fixed a few bugs in the process).

* docs/Makefile.am: remove common rules, and instead include
gtk-doc.make.

* examples/Makefile.am: add pango.modules to CLEANFILES.

* tests/Makefile.am: remove temporary files on clean.
akefile.am
1aad15fd0c007c9075f2f7f4c4cacf576d726eea 17-Feb-2003 Owen Taylor <otaylor@redhat.com> Add an --enable-debug configure argument defaulting to 'yes' for unstable

Mon Feb 17 13:06:39 2003 Owen Taylor <otaylor@redhat.com>

* configure.in **/Makefile.am: Add an --enable-debug
configure argument defaulting to 'yes' for unstable
releases and 'minimum' for stable releases.
For minimum, -DG_DISABLE_CAST_CHECKS.

* pango/pangofc-fontmap.cI pango/pangoft2-fontmap.c
pango/pangoxft-fontmap.c: Add caching of fontsets
(#104495, initial patch and review by Soeren Sandmann)

* pango/pangofc-fontmap.cI pango/pangoft2-fontmap.c
pango/pangoxft-fontmap.c pango/pangoft2-private.h
pango/pangoxft-private.h: Remove cache of recently freed
fonts; not necessary now that we cache fontsets.

* pango/pangofc-fontmap.cI (pango_fc_pattern_set_free):
Rename from pango_fc_font_set_free to reflect
what it actually does.

* pango/pangofc-fontmap.cI pango/pangoft-fontmap.c
pango/pangoxft-fontmap.c: Combine clear-the-cache
functions; we didn't need separate clear-the-font-cache
and clear-the-pattern-cache functions.
akefile.am
5febce1ffc956ea44526d50be7cf14c69c66cb34 12-Feb-2003 Owen Taylor <otaylor@redhat.com> Up the FreeType version requirement to 2.0.9. (2.2.1 had a compilation

Wed Feb 12 16:59:23 2003 Owen Taylor <otaylor@redhat.com>

* configure.in pango/opentype/fterrcompat.h README:
Up the FreeType version requirement to 2.0.9.
(2.2.1 had a compilation failure with older versions,
this catches it more cleanly, and removes some unneeded
checks. #105302, problem reported by Will Partain.)
terrcompat.h
54e85cc0cf3700d2c4af5396d79bd0e40df8f0da 11-Jan-2003 Owen Taylor <otaylor@redhat.com> Export TT_New_GDEF_Table to create an empty GDEF table.

Fri Jan 10 18:56:36 2003 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgdef.c: Export TT_New_GDEF_Table
to create an empty GDEF table.

* pango/opentype/pango-ot-info.c: If the font doesn't
have a class definition table, synthesize one using
the charmap and the unicode properties of characters
in the charmap. (Needed to make things work with various
old Arabic fonts, such as the KACST fonts)
txgdef.c
txgdef.h
ango-ot-info.c
db6bb4b034d4d8d546fc9bdc4ad28b16bb7f1bb7 29-Nov-2002 Matthias Clasen <matthiasc@src.gnome.org> Add docs.

* docs/tmpl/xft-fonts.sgml:
* docs/tmpl/freetype-fonts.sgml: Add docs.

* pango/pangoxft-fontmap.c (pango_xft_substitute_changed):
* pango/pangoft2-fontmap.c
(pango_ft2_font_map_set_default_substitute):
Fix doc typos.
ango-ot-info.c
226d9b67db852eb29ad37ec8121b79f3ea6f0b73 26-Nov-2002 Sebastian Wilhelmi <wilhelmi@ira.uka.de> Do not add GLIB_CFLAGS to CFLAGS.


2002-11-26 Sebastian Wilhelmi <wilhelmi@ira.uka.de>

* configure.in: Do not add GLIB_CFLAGS to CFLAGS.

* docs/Makefile.am, examples/Makefile.am,
modules/arabic/Makefile.am, modules/basic/Makefile.am,
modules/hangul/Makefile.am, modules/hebrew/Makefile.am,
modules/indic/Makefile.am, modules/tamil/Makefile.am,
modules/thai/Makefile.am, pango/Makefile.am,
pango/mini-fribidi/Makefile.am, pango/opentype/Makefile.am:
Instead add $(GLIB_CFLAGS) directly to INCLUDES (GTKDOC_CFLAGS for
docs/Makefile.am). Also some cosmetic line wrapping and
reindentation.
akefile.am
80634a30b9abdf575320bc6fdacdba4e1ea3903d 15-Oct-2002 Manish Singh <yosh@gimp.org> Get rid of unnecessary casts for g_object_{ref,unref}

Mon Oct 14 15:39:41 2002 Manish Singh <yosh@gimp.org>

* pango/pango-context.c pango/pango-layout.c pango/pangoft2.c
pango/pangowin32-fontmap.c pango/pangowin32.c pango/pangox-fontmap.c
pango/pangox.c pango/pangoxft-font.c pango/pangoxft-fontmap.c
pango/testfonts.c pango/opentype/pango-ot-ruleset.c:
Get rid of unnecessary casts for g_object_{ref,unref}
ango-ot-ruleset.c
741993e0b15b4df86d76fa8df5055bd764c42c71 29-Sep-2002 Owen Taylor <otaylor@redhat.com> ligatures can be also used in MarkBasePos lookups. (2001-03-17 Werner

Sun Sep 29 14:55:36 2002 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgpos.c: ligatures can be also used in
MarkBasePos lookups. (2001-03-17 Werner Lemberg)
txgpos.c
a35dc445e86ab433fe9f3937c95f2c1f18f58110 29-Sep-2002 Owen Taylor <otaylor@redhat.com> Start of merges from freetype1 of OpenType fixes.

Sun Sep 29 14:51:25 2002 Owen Taylor <otaylor@redhat.com>

Start of merges from freetype1 of OpenType fixes.

(2001-03-17 Werner Lemberg)

* pango/opentype/ftxgdef.c pango/opentype/ftxgpos.c pango/opentype/ftxg\sub.c:
More fixes for special marks.
txgdef.c
txgpos.c
txgsub.c
5c53f14f371b349da65dfa3a848b17ab89ce3ba8 23-Sep-2002 Tor Lillqvist <tml@iki.fi> Remove. Not used. (A static library is built here. Exported entries are in

2002-09-24 Tor Lillqvist <tml@iki.fi>

* pango/opentype/pango-ot.def: Remove. Not used. (A static library
is built here. Exported entries are in ../pangoft2.def.)

* pango/opentype/Makefile.am (EXTRA_DIST): Remove from here, too.
akefile.am
ango-ot.def
35e4593ccd9ea5ed78f1e6f32f04b3a13cee0145 23-Sep-2002 Tor Lillqvist <tml@iki.fi> pango/makefile.mingw.in pango/mini-fribidi/makefile.mingw Remove. Not

2002-09-23 Tor Lillqvist <tml@iki.fi>

* pango/makefile.mingw.in
* pango/mini-fribidi/makefile.mingw
* pango/opentype/makefile.mingw.in: Remove. Not maintained.

* pango/Makefile.am (EXTRA_DIST)
* pango/mini-fribidi/Makefile.am (EXTRA_DIST)
* pango/opentype/Makefile.am (EXTRA_DIST): Remove
makefile.mingw(.in) from here, too.

* configure.in (AC_OUTPUT): Don't try to output above removed
files.
akefile.am
akefile.mingw.in
fb279cb0bf676bb1d225e6a296282523d839074d 09-Sep-2002 Eric Mader <emader@src.gnome.org> Correctly handle back, new_advance.
ango-ot-ruleset.c
c880e814a50100577811a8a51bc06b4275c55a7e 07-Sep-2002 Eric Mader <emader@src.gnome.org> Don't fail when reading an empty script.
txopen.c
txopen.h
441e7d0292bf1a06396daac80fcbad23976a824d 07-Aug-2002 Owen Taylor <otaylor@redhat.com> Offset to MarkAttachClassDef is offset to table, not offset to offset to

Wed Aug 7 12:32:39 2002 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c (TT_Load_GSUB_Table):
Offset to MarkAttachClassDef is offset to table,
not offset to offset to table.

* pango/opentype/ftxopen.c (Get_Device): Handle
NULL device tables which we represent with
d->DeltaValue == NULL.
txgsub.c
txopen.c
48a16fa8090b67b046b2bb686ff4f6f038a2b8e8 04-Jun-2002 Owen Taylor <otaylor@src.gnome.org> on Jun 3 18:56:09 2002 Owen Taylor <otaylor@redhat.com>

Xft2 and fontconfig conversion, based largely on a patch
from Keith Packard.

* configure.in acconfig.h: Add checks for fontconfig, switch
Xft checks to switch for Xft2 using pkg-config.

* pangoxft.pc.in pangoxft.pc.in
modules/{arabic,basic,hebrew,indic,tamil}/Makefile.am
pango/Makefile.am: Reflect new Xft/fontconfig dependencies.

* pango/pangoxft-private.h pango/pangoxft-fontmap.c
modules/arabic/arabic-xft.c modules/indic/indic-xft.c:
Switch over to using Xft2 and fontconfig.

* pango/pangoft2.c pango/pangoft2-fontmap.c pango/pangoft2-private.h
pango/pango/Makefile.am: Remove usage of mini-xft in
favor of fontconfig.

* pango/pango-ot.h pango/opentype/pango-ot-info.c pango/pangoxft.h
modules/arabic/arabic-{xft,ft2}.c modules/indic/indic-xft.c:
Attach OpenType information directly to the FT_Face
structure using FT_Generic.

* modules/tamil/Makefile.am modules/tamil/tamil-xft.c
configure.in: Remove this module, no longer needed.

* pango/pangoxft-font.c (pango_xft_real_render): Coalesce
calls to Xft rendering functions.
ango-ot-info.c
9df9af0b3615dc6a52d784233a3410a9080d9369 10-May-2002 Owen Taylor <otaylor@redhat.com> Fix acess outside of a loaded frame and some memory leaks on failure.

Fri May 10 14:41:27 2002 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgdef.c (TT_Load_GDEF_Table): Fix acess
outside of a loaded frame and some memory leaks
on failure.
txgdef.c
a63dbbbeeb91ebf4ded2fc788f5810a3bd1e14fe 07-May-2002 Eric Mader <mader@jtcsv.com> Add modules modules/indic/indic-xft.c, indic-ot.c, indic-ot.h,

Mon May 06 15:07:39 2002 Eric Mader <mader@jtcsv.com>
* Add modules modules/indic/indic-xft.c, indic-ot.c, indic-ot.h, indic-ot-class-tables.c

* pango/opentype/ftxgdef.c: Compute full offset for mark attachment class table

* pango/opentype/ftxgpos.c: Only return TTO_Err_Not_Covered if nothing matches

* pango/opentype/pango-ot-ruleset.c: enable GPOS processing
txgdef.c
txgpos.c
ango-ot-ruleset.c
cf00f8217c9dfcf50febbb06fad245d489a0abe6 23-Apr-2002 Owen Taylor <otaylor@redhat.com> Add compatibility defines for changes in FreeType 2.1.0.

Tue Apr 23 16:15:07 2002 Owen Taylor <otaylor@redhat.com>

* pango/opentype/fterrcompat.h: Add compatibility
defines for changes in FreeType 2.1.0.
terrcompat.h
6b1b04e3736fdca774052ac3cfbe9f027548c29d 15-Mar-2002 Owen Taylor <otaylor@redhat.com> In Load_ChainContextSubst2, handle the case where an empty class

Fri Mar 15 01:35:56 2002 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgsub.c pango/opentype/ftxopen.c
pango/opentype/ftxopenf.h: In Load_ChainContextSubst2,
handle the case where an empty class definition
is represented by an offset of 0.

* pango/opentype/ftxgpos.c: Same for Load_ChainContextPos2.

* pango/opentype/{ftxopen.c,ftxgpos.c,ftxgsub.c,ftgdef.c}:
Fix pervasive bug where on cleanups on failure of loading
an array element, all array elements were freed, not
just the ones that had been succesfully loaded.
txgdef.c
txgpos.c
txgsub.c
txopen.c
txopenf.h
6050933f336f43453e35246525cfec362bd23acb 15-Mar-2002 Owen Taylor <otaylor@redhat.com> Uncomment GPOS parts.

Thu Mar 14 23:05:18 2002 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxopen.c: Uncomment GPOS parts.

* pango/opentype/disasm.c: Start adding some GPOS
dumping.
isasm.c
txopen.c
973bd60a2526666f68138255b8536d1eaee3c2c2 13-Dec-2001 Sebastian Wilhelmi <wilhelmi@src.gnome.org> Resuming aborted commit


Resuming aborted commit
akefile.am
6926ca94255e5d52d99d0d64d126165fc725432d 30-Oct-2001 Matthias Clasen <matthiasc@src.gnome.org> Remove declarations of unimplemented functions

* docs/pango-sections.txt, pango/pango-ot.h: Remove declarations
of unimplemented functions pango_ot_ruleset_set_glyph_loader and
pango_ot_ruleset_set_alternate_func and the related typedefs
PangoOTGlyphLoader and PangoOTAlternateFunc.

* pango/opentype/pango-ot-info.c,
pango/opentype/pango-ot-ruleset.c: Documentation updates.
ango-ot-info.c
ango-ot-ruleset.c
87a475c09f6b9b391bca37de47a303a62a397b83 19-Sep-2001 Havoc Pennington <hp@redhat.com> header to abstract the difference between FreeType 2.0.3 and 2.0.4 error

2001-09-19 Havoc Pennington <hp@redhat.com>

* pango/opentype/fterrcompat.h: header to abstract the difference
between FreeType 2.0.3 and 2.0.4 error codes, based on the
configure check.

* configure.in: check for the tterrors.h header in FreeType 2.0.3,
and define HAVE_FREETYPE_2_0_3 if we have it
akefile.am
terrcompat.h
txgdef.c
txgpos.c
txgsub.c
txopen.c
ango-ot-info.c
9c37226efe2489b4cf9618ec98f581c998aaf9e4 18-Sep-2001 Owen Taylor <otaylor@redhat.com> Up to 0.19.

Tue Sep 18 15:47:08 2001 Owen Taylor <otaylor@redhat.com>

* configure.in (PANGO_MINOR_VERSION): Up to 0.19.

* pango/pango-font.h pango/pango-fontmap.[ch] pango/fonts.c
pango/pangoxft-fontmap.c pango/pangoft-fontmap.c pango/pango-context.[ch]
pango/pangox-fontmap.c: Add new PangoFontFace and PangoFontFamily
object types, and change the font listing API to list faces and
families, instead of face names and font descriptions.

* pango/pango-font.h pango/fonts.c: Make PangoFontDescription
an opaque heap-allocated structure, add accessors and
convenience functions.

* pango/pango-font.h pango/pango-private.h: Make PangoFontMetrics
heap allocated, protect the structure definition with
#ifdef PANGO_ENABLE_BACKEND, and add getters for the fields.

* pango/pango-attributes.[ch] ( pango_attr_iterator_get_font):
instead of providing a base font description and one to fill
in, provide a single font description to modify based on
the attributes.

* pango/pango-attributes.[ch]: Fix PangoAttrFontDesc to have
a PangoFontDescription by reference, not by value.

* pango/pango-utils.[ch]: make pango_parse_style() and friends
take pointers to individual enumerations instead of to a
PangoFontDescription structure.

* pango/*.c: Fix for the PangoFontDescription and PangoFontMetrics
changes.

* pango/pango-{break,engine,indic,ot,xft}.h pango/Makefile.am
pango/opentype/Makefile.am: Protect portions with
PANGO_ENABLE_ENGINE to shrink the public API.

* modules/*/Makefile.am: -DPANGO_ENABLE_ENGINE.

* pango/{pangox.h,pangox-private.h} modules/basic/basic-x.c: Move
pango_x_font_get_unknown_glyph() into public header since it is
used from modules.

* pango/pango-{context,font,fontmap,modules.utils}.h pango/Makefile.am:
Protect portions with PANGO_ENABLE_BACKEND to shrink the public API.

* pango/*.h: Use G_BEGIN/END_DECLS

* examples/viewer-qt.[cc,h]: Fix for changes to font listing API,
PangoFontDescription.

* pango/pango-indic.h modules/indic/*: Since we install this
header fix it up to Pango conventions, namespece
ZERO_WIDTH_JOINER, ZERO_WIDTH_NON_JOINER.

* docs/pango-sections.txt: Updated.
akefile.am
7dd0838863f65a8ff2e27d12679c9a289a76aec1 12-Jul-2001 Darin Adler <darin@src.gnome.org> Remove stray semicolon.

* modules/arabic/arabic-x.c: (arabic_engine_shape): Remove stray
semicolon.

* modules/arabic/arconv.h:
* modules/arabic/arconv.c: (shape), (doublelig), (arabic_reshape):
Use long* instead of int* for parameter to match what's passed in.

* modules/indic/bengali-x.c: Add missing <string.h> include.
(pango_indic_make_ligs): Use local variable that was added but not
ever used.
(pango_indic_engine_shape): Remove unused locals.

* modules/indic/devanagari-x.c: Add missing <string.h> include.
(pango_indic_engine_shape): Remove unused local.

* modules/indic/gujarati-x.c: Add missing <string.h> include.
(pango_indic_engine_shape): Remove unused local

* modules/tamil/tamil-x.c: (tamil_engine_shape): Initialize a
variable to quiet the compiler's unused warning.

* pango/.cvsignore: Ignore more generated files.

* pango/opentype/ftxgpos.c: (Get_Anchor): Add code to set up the
ap variable. The old code would just use the uninitialized value.

* pango/opentype/ftxopen.c: (Load_Coverage): Remove unused local.

* pango/opentype/pango-ot-ruleset.c: (pango_ot_ruleset_shape):
Remove unused local.

* pango/pango-attributes.c: (pango_attr_list_get_type),
(pango_color_get_type): Add needed function type casts (just
warnings under gcc, but could be errors in other compilers).

* pango/pangoxft-font.c: (pango_xft_font_get_metrics),
(pango_xft_font_get_coverage), (pango_xft_get_shaper_map),
(pango_xft_font_find_shaper): Switch from lang char* to
PangoLanguage*. The code was still compiling, but would not have
worked.
txgpos.c
txopen.c
ango-ot-ruleset.c
68f8a64307441bd3b3d45971ac4dc93f63dedfe8 18-May-2001 Owen Taylor <otaylor@redhat.com> Use ISO C99 varargs when available.

Fri May 18 11:30:57 2001 Owen Taylor <otaylor@redhat.com>

* pango/opentype/disasm.c: Use ISO C99 varargs when
available.

Thu May 17 11:16:23 2001 Owen Taylor <otaylor@redhat.com>

* pango/mapping.c: Fixup docs, remove some FIXMEs that are
no longer applicable.

* pango/pango-layout.c: Move by graphemes, not characters.

* pango/pango-layout.c (pango_layout_line_x_to_index):
Position at the closest grapheme boundary, not at character
boundaries.

* pango/pango-layout.c (pango_layout_line_index_to_x):
Return positions of grapheme boundaries, not character
boundaries.
akefile.am
isasm.c
89eb36ebc6591025c063cb98f0e1b3badde73e9e 24-Apr-2001 Owen Taylor <otaylor@redhat.com> Remove excess call to DONE_Stream left over from conversion from FT1.

Tue Apr 24 11:45:55 2001 Owen Taylor <otaylor@redhat.com>

* pango/opentype/ftxgdef.c (TT_Load_GDEF_Table): Remove
excess call to DONE_Stream left over from conversion
from FT1. (reported by Michael Jansson)
txgdef.c
c61a730aaebec751831f8423894de5f4b539d0ec 03-Apr-2001 Owen Taylor <otaylor@redhat.com> Release 0.14

Tue Apr 3 15:05:19 2001 Owen Taylor <otaylor@redhat.com>

* Release 0.14

* NEWS: updated.

* pango/pango/opentype/Makefile.am: make dist fixes.

* configure.in (PANGO_MINOR_VERSION): Up to 0.14
akefile.am
405b878923ed219617c6f643a9aec06175223d16 21-Dec-2000 Tor Lillqvist <tml@iki.fi> Only a script engine here.

2000-12-21 Tor Lillqvist <tml@iki.fi>

* modules/basic/basic-win32.c (script_engine_load): Only a script
engine here.

* pango/makefile.mingw.in: Add the built pango-enum-types.[ch].

* pango/pango.def
* pango/pangoft2.def: Update.

* pango/opentype/pango-ot.def
* pango/opentype/makefile.mingw.in: New files.

* pango/opentype/Makefile.am (EXTRA_DIST): Add them.

* configure.in (included_modules): Generate
pango/opentype/makefile.mingw.
akefile.am
akefile.mingw.in
ango-ot.def
80a15829135065e16ce5b129c715d10d14b829ba 20-Dec-2000 Owen Taylor <otaylor@redhat.com> Since Xft may only be available statically without shlib deps, check for

Tue Dec 19 22:47:16 2000 Owen Taylor <otaylor@redhat.com>

* configure.in pango-config.in pangoxft.pc.in
modules/basic/Makefile.am: Since Xft may only be available
statically without shlib deps, check for FreeType libs explicitly
and include them when linking, otherwise things won't work. Also,
define FREETYPE_CFLAGS from freetype-config --cflags.

* modules/basic/basic-xft.c pango/pangoxft-font{,map}.c: Fool
Xft into not converting glyph indices by loading the
face unencoded then calling FT_Set_Charmap ourselves.

* pango/Makefile.am pango/pango-ot.h pango/opentype/* :Add start
of opentype handling - most of the actually meat of the code here
is the OpenType layout code from FreeType 1 ported to freetype2
and adapted slighlty for our purposes. Also, includes a
incomplete OpenType-table-dumping code useful for figuring
out what is going on.

* pango/pangoxft.h pango/pangoxft-font.h: Add calls for
getting FT_Face and PangoOTInfo from PangoXftFont.

* modules/arabic/{Makefile.am,arabic-ot.[ch],arabic-xft.c}:
Initial support for rendering Arabic with OpenType fonts.
cvsignore
T-license.txt
akefile.am
EADME
isasm.c
isasm.h
txgdef.c
txgdef.h
txgpos.c
txgpos.h
txgsub.c
txgsub.h
txopen.c
txopen.h
txopenf.h
ttest.c
ango-ot-info.c
ango-ot-private.h
ango-ot-ruleset.c