Minor
[test] Fix record-test.sh
[hangul] Don't apply 'calt'

See comments.

Micro-test added.
[arabic] Implement Windows-1256 private shaping

Bug 1045139 - The Arabic text with "MS Sans Serif" font is rendered bad
https://bugzilla.mozilla.org/show_bug.cgi?id=1045139

This is only enabled on Windows platforms, and requires support from
Uniscribe to work.  But for clients that do hook up to Uniscribe, this
fixes shaping of Windows-1256-encoded bitmap fonts like "MS Sans Serif".

The code and table together have just less than a 1kb footprint when
enabled.

UNTESTED.  I might even have broken regular Arabic fallback shaping.
[arabic/win1256] Remove GCC'ism

The table can now compile independently too.  If we cannot make it work
on MSVC, we can always generate the data and distribute it.

The code now compiles cleanly with:

gcc -c -xc -std=c99 -Werror -pedantic hb-ot-shape-complex-arabic-win1256.hh
g++ -c -xc -std=c++1x -Werror -pedantic hb-ot-shape-complex-arabic-win1256.hh

See:
https://github.com/behdad/harfbuzz/commit/a97f537cec209649302899975d76ca2b2661da7a#commitcomment-7218736
[arabic/win1256] Fix shaping of JEEM, HAH, and KHAH

https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c16
[arabic/win1256] Fix TEH MARBUTA final form

https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c18
[arabic/win1256] Hook up lamMedi lookup

Restructure lookup array to accommodate.

https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c18
[arabic/win1256] Really fix lam-alef this time

https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c26
https://github.com/behdad/harfbuzz/commit/b276e897d17519a2c28f79d024904ac2bdd86bcf#commitcomment-7243499
[arabic/win1256] Remove unused MultipleSubst macros
Merge branch 'win1256'
Make it easier to use HB_BUFFER_FLAG_BOT/EOT

Previously, we expected users to provide BOT/EOT flags when the
text *segment* was at paragraph boundaries.  This meant that for
clients that provide full paragraph to HarfBuzz (eg. Pango), they
had code like this:

  hb_buffer_set_flags (hb_buffer,
                       (item_offset == 0 ? HB_BUFFER_FLAG_BOT : 0) |
                       (item_offset + item_length == paragraph_length ?
                        HB_BUFFER_FLAG_EOT : 0));

  hb_buffer_add_utf8 (hb_buffer,
                      paragraph_text, paragraph_length,
                      item_offset, item_length);

After this change such clients can simply say:

  hb_buffer_set_flags (hb_buffer,
                       HB_BUFFER_FLAG_BOT | HB_BUFFER_FLAG_EOT);

  hb_buffer_add_utf8 (hb_buffer,
                      paragraph_text, paragraph_length,
                      item_offset, item_length);

Ie, HarfBuzz itself checks whether the segment is at the beginning/end
of the paragraph.  Clients that only pass item-at-a-time to HarfBuzz
continue not setting any flags whatsoever.

Another way to put it is: if there's pre-context text in the buffer,
HarfBuzz ignores the BOT flag.  If there's post-context, it ignores
EOT flag.
Disable 'liga' for vertical text

The reason we turned it on is because Kazuraki uses it.  But that's
not reason enough.  Until the OpenType spec gets its act together re
adding design-direction to lookups, this is better user experience.
Make sure gsubgpos buffer vars are available during fallback_position

Add buffer var allocation asserts to a few key places.
[uniscribe] Minor
0.9.34
[arabic] Fix fallback shaping regression

Was broken in 615d00ea252739da57edbd980ff27e573.

Fixes https://github.com/behdad/harfbuzz/pull/48

Micro-test added.
Use atexit() only if it's safe to call from shared library

Apparently they are not (advertised as?) safe on BSD systems.
We ignore the case of static libraries.

Whitelisted on glibc, Android, and MSVC / mingw.

https://bugs.freedesktop.org/show_bug.cgi?id=82246
[arabic] Bug 82306 - Mandaic had errors in its Unicode Joining_Type

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