commit 3b161a487d14e83609c887d9c37bbb0b1b5d3d97
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 18 23:40:47 2015 -0800

    1.1.0

 NEWS         | 22 ++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 23 insertions(+), 1 deletion(-)

commit 9b087dec7753ad96d256ce1b9ae347bd8d697c75
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 18 23:23:35 2015 -0800

    [travis] Only coverity-scan the coverity_scan branch

    This essentially disables coverity-scan right now, until we find
    a pattern to continuously submit branches there.

    For background reasoning, see:
    Fixes https://github.com/behdad/harfbuzz/issues/171

 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 85062e3b4655ec6d5c3cf5344ce22cd88c21a2aa
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 18 23:09:13 2015 -0800

    Add tests for previous two commits

    To fully test what these are supposed to test, they should be run
    against libharfbuzz-fuzzing.la instead of libharfbuzz.la, but for
    now just record the files.

 .../sha1sum/43979b90b2dd929723cf4fe1715990bcb9c9a56b.ttf | Bin 0 ->
 1804 bytes
 test/shaping/fonts/sha1sum/MANIFEST                      |   2 ++
 .../sha1sum/b9e2aaa0d75fcef6971ec3a96d806ba4a6b31fe2.ttf | Bin 0 ->
 1804 bytes
 test/shaping/tests/fuzzed.tests                          |   2 ++
 4 files changed, 4 insertions(+)

commit 37b40cd8a18e25d3324f829acec197f016f4a524
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 18 23:04:45 2015 -0800

    Fix another move_to assertion failure

    If buf->idx is at end, don't set end past it...

    Fixes https://github.com/behdad/harfbuzz/issues/173

 src/hb-ot-layout-gsubgpos-private.hh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit abadc1717d997b69f987fdf1be9e12156d2d13d6
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 18 17:52:08 2015 -0800

    Try to better handle OOM situations

    Fixes assert fail in https://github.com/behdad/harfbuzz/issues/161
    with libharfbuzz-fuzzing.

 src/hb-ot-layout-gsubgpos-private.hh |  2 +-
 src/hb-ot-layout.cc                  |  2 +-
 src/hb-ot-shape-complex-hangul.cc    |  2 +-
 src/hb-ot-shape-complex-indic.cc     |  2 +-
 src/hb-ot-shape-complex-thai.cc      |  2 +-
 src/hb-ot-shape-complex-use.cc       |  8 +-------
 src/hb-ot-shape-normalize.cc         | 10 +++++-----
 src/hb-ot-shape.cc                   |  2 +-
 8 files changed, 12 insertions(+), 18 deletions(-)

commit ec625f7dfb5f6df19d35d81af6605d05e08321f2
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 18 16:37:59 2015 -0800

    Try to fix gnome-continuous build fail

 test/fuzzing/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit ff16ef3379e06afe44b5e78b8893aeae0cee2b5b
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 18 16:27:32 2015 -0800

    Enable building a bounded version of the library for fuzzing

    test/fuzzing/hb-fuzzer links against libharfbuzz-fuzzing.so now.

 src/Makefile.am          | 16 ++++++++++++++++
 test/fuzzing/Makefile.am |  9 ++-------
 test/fuzzing/README      |  6 ++----
 3 files changed, 20 insertions(+), 11 deletions(-)

commit e0082ae60dbd87d433f3b2b9d2bfa64b9a4c3663
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Nov 17 18:42:13 2015 -0800

    Move things around

 src/hb-private.hh | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit dde8cc87bd880bd35baf764820f4c85bd0a58696
Merge: e97835a 167c327
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Nov 17 18:40:10 2015 -0800

    Merge pull request #163 from fanc999/msvc.src

    Update the sources so they will compile under Visual Studio

commit 167c3271778cd1a8c4433b9d2230901ce17c099e
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 9 17:17:56 2015 +0800

    Fix build on MSVC >= 2012

    Use the DEFINE_ENUM_FLAG_OPERATORS macro in winnt.h on Visual Studio,
    which defines the bitwise operators for the enumerations that we
    want to
    mark as hb_mark_as_flags_t, which will take care of the situation
    on newer
    Visual Studio (>= 2012), where the build breaks with C2057 errors
    as the
    underlying types of the enumerations is not clear to the compiler
    when we
    do a bitwise op within the declaration of the enumerations themselves.

    Also disable the C4200 (nonstandard extension used : zero-sized
    array in
    struct/union) and C4800 ('type' : forcing value to bool 'true' or
    'false'
    (performance warning)) warnings as the C4200 is the intended
    scenario and
    C4800 is harmless but is so far an unavoidable side effect of using
    DEFINE_ENUM_FLAG_OPERATORS.

 src/hb-buffer-private.hh           |  6 +++---
 src/hb-ot-layout-common-private.hh |  2 +-
 src/hb-ot-layout-private.hh        |  4 ++--
 src/hb-ot-map-private.hh           |  2 +-
 src/hb-private.hh                  | 11 +++++++++++
 5 files changed, 18 insertions(+), 7 deletions(-)

commit 4d27bb87468a1b84387e7ce084e3d92c0fc8f065
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Nov 6 14:28:30 2015 +0800

    hb-ot-shape-complex-arabic.cc: Fix build on Visual Studio

    Visual Studio does not like declaring a enum variable within a for
    statement, so fix the build by declaring the enum before doing the for
    loop.

 src/hb-ot-shape-complex-arabic.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit a49e7b7e40127beba25f39ef3c10d7a77e2bb0f0
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Nov 3 18:49:34 2015 +0800

    MSVC builds: Add fallback implementation for pre-2013 MSVC

    Pre-2013 MSVC does not have scalbn() and scalbnf(), which are used
    in the
    utility programs.  Add  fallback implementations for these, which
    can be
    used when necessary.

 util/options.hh | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 998e8dda938cfef0146f1bfc4e8973a0e12d7d35
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Nov 2 16:55:29 2015 +0800

    util: Fix build on Visual Studio

    Use the fallback implementation for lround() only on pre-2013 Visual
    Studio, and ensure we are clear about the types of the parameters for
    lround() and scalbnf(), since Visual Studio can be quite picky on
    ambiguous parameter types.  Also, use g_ascii_strcasecmp() rather than
    strcasecmp() as we are already using GLib for this code and we are
    assured that g_ascii_strcasemp() is available.

    For scalbnf() on pre-2013 Visaul Studio, a fallback implementation is
    needed, but use another forced-included header for those compilers,
    which
    will be added later.

    Also use (char)27 on Visual Studio builds as '\e' is not a recognized
    escape sequence, which will do the same thing.

 util/ansi-print.cc   | 16 +++++++++-------
 util/helper-cairo.cc | 20 ++++++++++----------
 util/options.cc      |  2 +-
 3 files changed, 20 insertions(+), 18 deletions(-)

commit e97835ad43f5c68e8cb29599246cae0f4461d663
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Nov 10 11:37:01 2015 -0800

    [util] Fix crash when --output-file is specified but not
    --output-format

 util/options.hh | 3 +++
 1 file changed, 3 insertions(+)

commit d5f0d7c9fb14255388ab616f56e178cb7ca10ec2
Merge: 04ff23e 529a933
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Sat Nov 7 07:50:58 2015 -0800

    Merge pull request #167 from KonstantinRitt/unicode_cp_opt

    Micro optimizations to UTF-16 and UTF-32 codecs

commit 04ff23e73d847ab3a5da0e9fac4fbca19aefd284
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Nov 6 16:29:44 2015 -0800

    [arabic] Improve stretch length calculation

    Err on the side of being too short, than too wide.  Reduces chance
    of overlaps with neighboring glyphs.

 src/hb-ot-shape-complex-arabic.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 59821ab8b413df3a444c38b80582a5137e364a70
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Nov 6 16:27:44 2015 -0800

    [arabic] Don't stretch over cased letters

    Addresses
    https://github.com/behdad/harfbuzz/commit/6e6f82b6f3dde0fc6c3c7d991d9ec6cfff57823d#commitcomment-14248516

 src/hb-ot-shape-complex-arabic.cc                  | 24
 +++++++++++++++++++++-
 src/hb-unicode-private.hh                          | 20
 ------------------
 .../script-syriac/misc/abbreviation-mark.txt       |  4 ++--
 3 files changed, 25 insertions(+), 23 deletions(-)

commit 5337db29af39084d677a63154f404eca0c20cfeb
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Nov 6 16:18:09 2015 -0800

    Revert "Don't process lookups if buffer is in error"

    This reverts commit f92bd86cc8c11d262d1830c631cb7c63fc9d4bc8.

    We don't want to be like cairo, where as soon as there's an error,
    nothing works anymore.  So, lets process lookups as long as there's
    no new memory needed.  That's also a model that hides fewer bugs.

 src/hb-ot-layout.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 529a93312815dff3c2f37f880bf6ccb428bd3da0
Author: Konstantin Ritt <ritt.ks@gmail.com>
Date:   Sat Nov 7 02:00:04 2015 +0400

    Micro optimization to hb_utf16_t and hb_utf32_t ::prev()

    Implement reverse lookup instead of re-using next()

 src/hb-utf-private.hh | 29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

commit 44ae9be7a29eebd6003cad2fdb90b40512a9c8eb
Author: Konstantin Ritt <ritt.ks@gmail.com>
Date:   Sat Nov 7 01:58:38 2015 +0400

    Nano optimization to hb_utf16_t and hb_utf32_t ::next()

 src/hb-utf-private.hh | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

commit a6d7668a954a763a053f8af8edbff4731aa43729
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Nov 6 09:46:54 2015 -0800

    [fuzzing] Cap max buffer len at 128

 test/fuzzing/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit f1c4adbcd3f6275e81e118ddadc9396f82daeccf
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Nov 6 09:46:05 2015 -0800

    Fix typo

 src/hb-buffer-private.hh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 68b507a3c3c62c28c38e13fee733702bb703b6ca
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Nov 6 00:09:26 2015 -0800

    Make sure we make progress in OOM situations

 src/hb-buffer-private.hh |  7 ++-----
 src/hb-buffer.cc         | 31 +++++++++++++++++++++++--------
 2 files changed, 25 insertions(+), 13 deletions(-)

commit 5a7eb5d4d862f402136044c19ead87ad098bd78f
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Fri Nov 6 00:01:24 2015 -0800

    [fuzzing] Add test case for OOM

    From https://github.com/behdad/harfbuzz/issues/161

 .../sha1sum/3511ff5c1647150595846ac414c595cccac34f18.ttf | Bin 0 ->
 1483 bytes
 test/shaping/fonts/sha1sum/MANIFEST                      |   2 +-
 test/shaping/tests/fuzzed.tests                          |   1 +
 3 files changed, 2 insertions(+), 1 deletion(-)

commit f0599db761d7fc2d585d86e757a797f75ebc7499
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 5 23:52:41 2015 -0800

    Fix hang in OOM situations

    Fixes https://github.com/behdad/harfbuzz/issues/161

 src/hb-buffer-private.hh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit f92bd86cc8c11d262d1830c631cb7c63fc9d4bc8
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 5 23:52:29 2015 -0800

    Don't process lookups if buffer is in error

 src/hb-ot-layout.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4301703bddb63a01651a0d58474bb15ac0ebbcf6
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 5 23:44:59 2015 -0800

    Limit buffer max size growth

    https://github.com/behdad/harfbuzz/issues/161

 src/hb-buffer-private.hh | 11 +++++++++++
 src/hb-buffer.cc         |  8 ++++++++
 src/hb-ot-shape.cc       |  6 ++++++
 test/fuzzing/Makefile.am |  2 ++
 4 files changed, 27 insertions(+)

commit 19300183a6f0bac0d23f7a994b40a51e9c90d6e1
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 5 23:08:50 2015 -0800

    [fuzzing] Add build system

 configure.ac              |  1 +
 test/Makefile.am          |  2 +-
 test/fuzzing/Makefile.am  | 44
 ++++++++++++++++++++++++++++++++++++++++++++
 test/fuzzing/README       |  2 ++
 test/fuzzing/hb-fuzzer.cc |  4 ++--
 5 files changed, 50 insertions(+), 3 deletions(-)

commit 9c9ad214af43685b00f6d8493b7807d6607d4e2d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 5 22:50:52 2015 -0800

    [fuzzer] Add README

    https://github.com/behdad/harfbuzz/issues/139#issuecomment-154202645

 test/fuzzing/README | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 6e6f82b6f3dde0fc6c3c7d991d9ec6cfff57823d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 5 17:29:03 2015 -0800

    Implement SYRIAC ABBREVIATION MARK with 'stch' feature

    The feature is enabled for any character in the Arabic shaper.
    We should experiment with using it for Arabic subtending marks.
    Though, that has a directionality problem as well, since those
    are used with digits...

    Fixes https://github.com/behdad/harfbuzz/issues/141

 src/hb-ot-shape-complex-arabic.cc                  | 219
 ++++++++++++++++++++-
 src/hb-unicode-private.hh                          |  19 ++
 .../shaper-arabic/script-syriac/misc/MANIFEST      |   1 +
 .../script-syriac/misc/abbreviation-mark.txt       |  11 ++
 4 files changed, 244 insertions(+), 6 deletions(-)

commit c743ec5886a1f6d57de26da33a770a8706be83d6
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 5 17:33:57 2015 -0800

    [ft] Fix extents with negative scales

    Fixes https://github.com/behdad/harfbuzz/issues/162

 src/hb-ft.cc | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 73fec3992acb492829bde1d885f1ebeed8dcc133
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 5 15:22:18 2015 -0800

    Reserve a few scratch-flags bits for complex shapers

 src/hb-buffer-private.hh | 5 +++++
 1 file changed, 5 insertions(+)

commit 136863371c1402769426d892aef1b92f9ca1a25e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 5 13:24:15 2015 -0800

    Add new shaper method postprocess_glyphs()

    Unused currently.  To be used for Syriac stretch implementation.

    https://github.com/behdad/harfbuzz/issues/141

 src/hb-ot-shape-complex-arabic.cc  | 3 ++-
 src/hb-ot-shape-complex-default.cc | 1 +
 src/hb-ot-shape-complex-hangul.cc  | 7 ++++---
 src/hb-ot-shape-complex-hebrew.cc  | 1 +
 src/hb-ot-shape-complex-indic.cc   | 1 +
 src/hb-ot-shape-complex-myanmar.cc | 2 ++
 src/hb-ot-shape-complex-private.hh | 9 +++++++++
 src/hb-ot-shape-complex-thai.cc    | 1 +
 src/hb-ot-shape-complex-tibetan.cc | 1 +
 src/hb-ot-shape-complex-use.cc     | 1 +
 src/hb-ot-shape.cc                 | 9 ++++++---
 11 files changed, 29 insertions(+), 7 deletions(-)

commit 6c0ebd02c99e7536975ba7194832a1f33abd7faf
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Thu Nov 5 11:37:48 2015 -0800

    [util] If font has color, generate PNG with color

 util/helper-cairo.cc | 33 ++++++++++++++++++++++++++-------
 util/helper-cairo.hh |  6 +++++-
 util/view-cairo.cc   |  7 ++++++-
 3 files changed, 37 insertions(+), 9 deletions(-)

commit e95eb23a4ee920eab1e2f4eec9cf490bb431452c
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 22:55:11 2015 -0800

    Don't try zeroing marks by GDEF if there are no non-ASCII

    This one is a hack, but should be ok.

 src/hb-ot-shape.cc | 4 ++++
 1 file changed, 4 insertions(+)

commit 7fa54ed75aa30ae1d6ee9136ccb83b630c24fb65
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 22:54:49 2015 -0800

    Don't try zeroing mark attachments by Unicode if there's no non-ASCII

 src/hb-ot-shape.cc | 3 +++
 1 file changed, 3 insertions(+)

commit 550bd14d2b21ec2a2b509ff42f4df4341dbf2d46
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 22:58:58 2015 -0800

    Actually commit changes for previous commit

 src/hb-buffer-private.hh       |  2 ++
 src/hb-ot-layout-gpos-table.hh | 15 ++++++++-------
 2 files changed, 10 insertions(+), 7 deletions(-)

commit ff31b3c1b8a2a21b57dba37eb5bb5db0579e0640
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 22:42:41 2015 -0800

    Skip GPOS cursive / attachment adjustmnent if none happened

    I'm starting to really like how free these new scratch_flags are.

 src/hb-ot-layout-gpos-table.hh | 3 +++
 1 file changed, 3 insertions(+)

commit 0f407325f6923db11d332585e8250e3646cb74d6
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 22:28:44 2015 -0800

    Minor

 src/hb-ot-shape.cc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 497a6c2071cd0638e4c6af07621d01335fd963a9
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 22:24:19 2015 -0800

    Skip forming clusters if text is all ASCII

 src/hb-ot-shape.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 28de104f15b80df4b678267c4488b7d09a42720c
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 22:00:25 2015 -0800

    Move variable-sized struct member to end

    Hopefully makes clang build happy

 src/hb-font-private.hh | 21 ++++++++++-----------
 src/hb-font.cc         | 20 ++++++++++++++++++++
 2 files changed, 30 insertions(+), 11 deletions(-)

commit 5bc28b5f688ee90d103d052e98bc15d6e0e7e0b1
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 21:53:16 2015 -0800

    Optimize positioning for when h_origin is nil

 src/hb-ot-shape.cc | 38 ++++++++++++++++++++------------------
 1 file changed, 20 insertions(+), 18 deletions(-)

commit 762770c964f9f0591bf4c44427f73ea3e1c51733
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 21:42:55 2015 -0800

    Add font->has_...() to check for individual nil font funcs

    Hopefully this wouldn't break any compiler.  There was some magic
    moments to getting this to compile...

 src/hb-font-private.hh | 19 +++++++++++++++++--
 src/hb-font.cc         |  7 +++++++
 2 files changed, 24 insertions(+), 2 deletions(-)

commit 88e9a9bcae61421d9dd65715d25e5f20b2847c03
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 21:16:26 2015 -0800

    Minor reshaping of hb_font_funcs_t implementation

    In anticipation of further changes.  No functional changes.

 src/hb-font-private.hh | 80
 ++++++++++++++++++++++++++------------------------
 src/hb-font.cc         |  4 +--
 2 files changed, 43 insertions(+), 41 deletions(-)

commit a6a7715bac8b0c8f5473b84bc649c315ad4d2d51
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 20:51:21 2015 -0800

    Comments

 src/hb-font-private.hh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6c48ec830ffac00a920d047ed77acd1b05549074
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 20:47:42 2015 -0800

    [ot] Remove font funcs that do nothing

 src/hb-ot-font.cc | 95
 ++++---------------------------------------------------
 1 file changed, 7 insertions(+), 88 deletions(-)

commit 75ea2daa1d9bbe235cd4a8570efb1913d58c3c62
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 20:43:59 2015 -0800

    [ot] Port ot font funcs to allocated object

 src/hb-ot-font.cc | 47 ++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 38 insertions(+), 9 deletions(-)

commit 44f82750807475aa5b16099ccccd917d488df703
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 20:40:05 2015 -0800

    [ft] Remove font funcs that do nothing

 src/hb-ft.cc | 29 ++++-------------------------
 1 file changed, 4 insertions(+), 25 deletions(-)

commit 7918c261efd283e0428ce7836e9e42768a6aa05c
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 20:37:49 2015 -0800

    [ft] Port ft font funcs to allocated object

 src/hb-ft.cc | 45 ++++++++++++++++++++++++++++++++++++---------
 1 file changed, 36 insertions(+), 9 deletions(-)

commit da29b43794cfa3f9a602c34b33c5d8a9c36f87b5
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 20:22:44 2015 -0800

    Separate nil font-funcs from parent-peeking font-funcs

    API change: all fonts created with hb_font_create() now inherit from
    (ie have parent) hb_font_get_empty().

 src/hb-font.cc       | 211
 +++++++++++++++++++++++++++++++++++----------------
 test/api/test-font.c |   2 +-
 2 files changed, 145 insertions(+), 68 deletions(-)

commit bee901b38ef3c26a04f69c299c8d5e028a0090e9
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 19:28:17 2015 -0800

    Optimize positioning direction calculations

    It makes the binary smaller AND faster.  Yumm!

 src/hb-font-private.hh | 40 +++++++++++++++++++++++++++++++++++++++
 src/hb-ot-shape.cc     | 51
 +++++++++++++++++++++++++++-----------------------
 2 files changed, 68 insertions(+), 23 deletions(-)

commit e3e4bb011ae1a2f1ba05e7ea450595b185304bec
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 18:58:02 2015 -0800

    Don't do fractions if buffer is ASCII-only

 src/hb-buffer-private.hh    | 5 +++--
 src/hb-ot-layout-private.hh | 1 +
 src/hb-ot-shape.cc          | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

commit 6986208ba3b395534f4c7bcfa51df6bf9038f717
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 18:46:22 2015 -0800

    Optimize runs without Default_Ignorable's

    Now that we have a buffer-wide scratch flags facility, use it to
    optimize away a few passes.

 src/hb-buffer-private.hh     |  3 ++-
 src/hb-ot-layout-private.hh  |  4 +++-
 src/hb-ot-shape-normalize.cc |  4 ++--
 src/hb-ot-shape.cc           | 10 ++++++----
 src/hb-private.hh            |  3 +++
 5 files changed, 16 insertions(+), 8 deletions(-)

commit 14c2de321826c36037adde859ccca3e2011325a9
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 18:00:57 2015 -0800

    Limit max edits during sanitize to 8

    Used to be 100.  If a tabe needs more than one or two edits, it's
    probably completely bogus...

    Might help with speeding up fuzzing for
    https://github.com/behdad/harfbuzz/issues/157

 src/hb-open-type-private.hh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9cbc39aef962a95b0eba32c24ff9c415d1316d56
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 18:00:53 2015 -0800

    Minor

 src/hb-ot-shape-normalize.cc | 2 ++
 1 file changed, 2 insertions(+)

commit 52e6c4e15893ed1cb0997795912a07b3e446b65a
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 17:45:06 2015 -0800

    If font doesn't support U+2011, fall back to U+2010

    Test passes now.

 src/hb-ot-shape-normalize.cc | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 75483aafa6ad02d6391712d082d093823edcd758
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 17:43:36 2015 -0800

    Untangle if/else waterfall

 src/hb-ot-shape-normalize.cc | 40
 +++++++++++++++++++++++++++-------------
 1 file changed, 27 insertions(+), 13 deletions(-)

commit 04fd8517f85ae9aa05b44f25578d2b19abfef7cb
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 17:38:22 2015 -0800

    Add tests for hyphen fallback

    U+2011 is <noBreak> equivaent of U+2010, so we should do the fallback
    for it.  Currently fails.

 test/shaping/Makefile.am                                  |   1 +
 .../sha1sum/1c04a16f32a39c26c851b7fc014d2e8d298ba2b8.ttf  | Bin 0 ->
 820 bytes
 test/shaping/fonts/sha1sum/MANIFEST                       |   2 ++
 test/shaping/tests/MANIFEST                               |   1 +
 test/shaping/tests/hyphens.tests                          |   2 ++
 5 files changed, 6 insertions(+)

commit 550417117da7e14457a11f49a20145311f58587b
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 17:37:30 2015 -0800

    [test] Drop hintings when subsetting fonts to record

 test/shaping/record-test.sh | 1 +
 1 file changed, 1 insertion(+)

commit 49ef630936325b2e56a870fcef9aa8473a8f8526
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 17:27:07 2015 -0800

    Adjust the width of various spaces if font does not cover them

    See discussion here:
    https://github.com/behdad/harfbuzz/commit/81ef4f407d9c7bd98cf62cef951dc538b13442eb

    There's no way to disable this fallback, but I don't think it would
    be needed.  Let's hope for the best!

    Fixes https://github.com/behdad/harfbuzz/issues/153

 src/hb-buffer-private.hh            |  7 ++++
 src/hb-buffer.cc                    |  2 ++
 src/hb-ot-shape-fallback-private.hh |  4 +++
 src/hb-ot-shape-fallback.cc         | 67
 +++++++++++++++++++++++++++++++++++++
 src/hb-ot-shape-normalize.cc        |  1 +
 src/hb-ot-shape.cc                  |  3 ++
 src/hb-unicode-private.hh           | 56 +++++++++++++++++--------------
 test/shaping/tests/spaces.tests     | 24 ++++++-------
 8 files changed, 126 insertions(+), 38 deletions(-)

commit aa7044de0ceacd71cab19212d266c3a66c03b41e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 16:25:57 2015 -0800

    Generalize flags types

 src/hb-buffer-private.hh           |  3 +++
 src/hb-ot-layout-common-private.hh |  5 +++++
 src/hb-ot-layout-private.hh        |  8 +++++---
 src/hb-ot-map-private.hh           | 16 +---------------
 src/hb-ot-shape.cc                 |  2 +-
 src/hb-private.hh                  | 14 ++++++++++++++
 6 files changed, 29 insertions(+), 19 deletions(-)

commit 7793aad946e09b53523b30d57de85abd1d15f8b6
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 14:48:46 2015 -0800

    Normalize various spaces to space if font doesn't support

    This resurrects the space fallback feature, after I disabled
    the compatibility decomposition.  Now I can release HarfBuzz
    again without breaking Pango!

    It also remembers which space character it was, such that later
    on we can approximate the width of this particular space
    character.  That part is not implemented yet.

    We normalize all GC=Zs chars except for U+1680 OGHA SPACE MARK,
    which is better left alone.

 src/hb-ot-layout-private.hh                        |  47
 +++------------------
 src/hb-ot-shape-normalize.cc                       |  12 +++++-
 src/hb-unicode-private.hh                          |  40
 ++++++++++++++++++
 test/shaping/Makefile.am                           |   1 +
 .../1c2c3fc37b2d4c3cb2ef726c6cdaaabd4b7f3eb9.ttf   | Bin 0 -> 316 bytes
 test/shaping/fonts/sha1sum/MANIFEST                |   1 +
 test/shaping/tests/MANIFEST                        |   1 +
 test/shaping/tests/spaces.tests                    |  17 ++++++++
 8 files changed, 76 insertions(+), 43 deletions(-)

commit 8b3c7f9ede77052225cff8495d660860bf9c7629
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 15:30:48 2015 -0800

    [test] Support recording multiple lines of text in record-test.sh

 test/shaping/record-test.sh | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

commit 85658394809fe0593ab5dfb30fd96118765c7dc5
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 14:46:52 2015 -0800

    Protect against possible invalid-memory access after OOM

 src/hb-buffer-private.hh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4cc80bed25450af3d84a30ea417fa9275b15e014
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 14:46:10 2015 -0800

    Fix typo!

    Ouch!  Fortunately that function was unused.

 src/hb-buffer-private.hh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9ac4b9656dd78ffd129bc3d560a92e2692bc3058
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 14:18:39 2015 -0800

    Add Unicode space category

    Unused so far.

 src/hb-ot-layout-private.hh | 78
 +++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 76 insertions(+), 2 deletions(-)

commit 8249ec3f86510fd24462ce71ed64a6978f0ade17
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 13:26:17 2015 -0800

    Make top-byte of unicode_props available to be used differently per-GC

 src/hb-ot-layout-private.hh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit cc5d3a33882b52f906ee4346707700f5e846d2ac
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 13:21:25 2015 -0800

    Towards using top-byte of unicode-props for more things

 src/hb-ot-layout-gsubgpos-private.hh | 1 -
 src/hb-ot-layout-private.hh          | 3 ++-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 2f38dde5a1ea5459789fabaee661cae9235d204e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Wed Nov 4 13:17:33 2015 -0800

    Add _hb_glyph_info_is_unicode_mark()

    Unused right now.

 src/hb-ot-layout-private.hh | 6 ++++++
 1 file changed, 6 insertions(+)

commit 90d75f93bb85aeb627c4e6bb9e4cbd75895c99f7
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Nov 3 12:58:12 2015 -0800

    Tighten ccc-setting a bit and document it

 src/hb-ot-layout-private.hh | 12 +++++++++++-
 src/hb-unicode-private.hh   |  5 +++++
 2 files changed, 16 insertions(+), 1 deletion(-)

commit 2f0dfd43cdc2259e6117704f8077ab6951c761e5
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Nov 3 12:28:34 2015 -0800

    Fix test expectation

 test/shaping/tests/fuzzed.tests | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit df698f3299d92867e3305715f675b2621c316acd
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Nov 3 12:15:12 2015 -0800

    [ot-font] Fix hmtx table length checking, *again*

    Exactly the same problem that I fixed in
    63ef0b41dc48d6112d1918c1b1de9de8ea90adb5

    I rewrote the table checking yesterday in
    67f8821fb25d9bd55719f5e29a582ae1af4b02b3
    and introduced the exact same issue again. :(
    Good thing we have ongoing fuzzing going now.  Was discovered
    immediately by libFuzzer.  Thanks kcc!

    https://github.com/behdad/harfbuzz/issues/139#issuecomment-153449473
    Fixes https://github.com/behdad/harfbuzz/issues/156

 src/hb-ot-font.cc                                         |   4 ++--
 .../sha1sum/8240789f6d12d4cfc4b5e8e6f246c3701bcf861f.ttf  | Bin 0 ->
 633 bytes
 test/shaping/fonts/sha1sum/MANIFEST                       |   1 +
 test/shaping/tests/fuzzed.tests                           |   1 +
 4 files changed, 4 insertions(+), 2 deletions(-)

commit 3530cc2d7c3b7102902cb0e38b0bf9f46188078d
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Nov 3 11:34:47 2015 -0800

    [util] Fix option-parsing leaks

 util/helper-cairo.cc   |  7 +++++--
 util/main-font-text.hh | 22 ++++++++++++++++++---
 util/options.cc        | 21 ++++++++++----------
 util/options.hh        | 53
 +++++++++++++++++++++++++++++++++-----------------
 4 files changed, 70 insertions(+), 33 deletions(-)

commit 642135f3b2d6d6eb800153c76c4718239733c0e6
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Nov 3 11:26:34 2015 -0800

    [util] In --debug mode, duplicate font data

    This has the effect that the font data will end up in a memory
    section malloc()ed exactly to its size.  This gives us better
    valgrind detection of out-of-bounds access.

    Previously, the font data was placed in a mmap()ed section or
    GString-allocated area, which didn't have proper protections
    at the end when running under valgrind.

 util/options.cc | 3 +++
 1 file changed, 3 insertions(+)

commit ed2024ef93ac3af214082016e5aa8c14db9d7515
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Nov 2 17:58:12 2015 -0800

    [perf] Micro-optimize

 src/hb-ot-layout-private.hh | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

commit 76a5310a830c7ae12037b768c5043bef0ff733a0
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Nov 2 17:52:45 2015 -0800

    Remove irrelevant comment

    I tried moving the is_default_ignorable() function to an INTERNAL
    function.  That made the binary size grow by 5k AND things got a
    tad bit slower!

 src/hb-ot-layout-private.hh | 1 -
 1 file changed, 1 deletion(-)

commit 8259669fbd1b070fc02287325894caf1bc4d590e
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Nov 2 17:44:05 2015 -0800

    Minor

 src/hb-ot-layout-gsubgpos-private.hh | 2 +-
 src/hb-ot-shape-complex-thai.cc      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 9382c471eabce8d36d3a73c97499ab60af422716
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Nov 2 17:36:51 2015 -0800

    Combine unicode_props0/1 into a uint16

    Slightly faster.  In prep for more changes.

 src/hb-ot-layout-private.hh | 55
 ++++++++++++++++++++++++---------------------
 1 file changed, 29 insertions(+), 26 deletions(-)

commit 71277185454482cff9b0c10b85c416eb4d6e0ed9
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Mon Nov 2 17:27:48 2015 -0800

    [perf] Only call combining_class() for marks

    Saves some time.  Also preparing for reusing the ccc byte for
