Behdad Esfahbod | 5 Mar 00:47 2015

harfbuzz: Branch 'master'

 autogen.sh |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 7481bd49d56d4e814ab1f85fc2df8bf934d520f4
Author: Behdad Esfahbod <behdad <at> behdad.org>
Date:   Wed Mar 4 15:47:25 2015 -0800

    Fix previous commit

    I misunderstood how which works.

diff --git a/autogen.sh b/autogen.sh
index ee980cf..ff1b0c0 100755
--- a/autogen.sh
+++ b/autogen.sh
 <at>  <at>  -20,7 +20,7  <at>  <at>  which pkg-config || {
 }

 echo -n "checking for libtoolize... "
-which glibtoolize libtoolize || {
+which glibtoolize || which libtoolize || {
 	echo "*** No libtoolize (libtool) found, please install it ***"
 	exit 1
 }
_______________________________________________
HarfBuzz mailing list
HarfBuzz <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/harfbuzz
(Continue reading)

Behdad Esfahbod | 5 Mar 00:43 2015

harfbuzz: Branch 'master'

 autogen.sh |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 6763e21afb77b250ad4416ff921d46c63ea12443
Author: Behdad Esfahbod <behdad <at> behdad.org>
Date:   Wed Mar 4 15:43:05 2015 -0800

    Accept glibtoolize as libtoolize

    Of course, we don't really run it, autoreconf does.  We just
    err if neither is available.  glibtoolize is the name it is
    shipped under on OS X.  Reported by Adam.

diff --git a/autogen.sh b/autogen.sh
index a81d2aa..ee980cf 100755
--- a/autogen.sh
+++ b/autogen.sh
 <at>  <at>  -20,7 +20,7  <at>  <at>  which pkg-config || {
 }

 echo -n "checking for libtoolize... "
-which libtoolize || {
+which glibtoolize libtoolize || {
 	echo "*** No libtoolize (libtool) found, please install it ***"
 	exit 1
 }
_______________________________________________
HarfBuzz mailing list
HarfBuzz <at> lists.freedesktop.org
(Continue reading)

Richard Wordingham | 4 Mar 22:15 2015

Obscure Rendering Difference Involving Ligatures

I've encountered an obscure rendering difference between
Uniscribe/DirectWrite as in IE11 on Windows 7 and HarfBuzz 0.98+.  It
shows up in my test cases in
http://homepage.ntlworld.com/richard.wordingham/lanna/renderer_test.htm.

On HarfBuzz-based browsers, the word meaning 'to lead' in the
section headed 'Ligature NAA' displays in the 'text' column as a
connected glyph with a small circle above it.  In the Firefox browser,
both on Linux and Windows 7, when I hack this to the 3-letter ASCII
string "nAM" the small circle moves up and rightwards so much that it is
severely clipped in Firefox.  However, when I display the same page in
IE11 on Windows 7, the string displays as the original Tai Tham text
does on Firefox. 

I can reproduce the bad display using the command 

hb-view --features=ss02,abvs,blws,pstf,blwf ~/.fonts/dalekh.ttf nAMn

(The extra letter 'n' of the string extends the display so as to see
the small circle.)

Is it worth investigating the difference from Windows?  There is a
fairly complicated sequence of transforms, which probably ought to be
reduced for the investigation.  I suspect it depends on the
inheritability of the base/mark difference. I could change the font to
remove the effect; it's purpose is to render the incorrect sequence
<U+1A36, U+1A63, U+1A76> differently to the correct sequence <U+1A36,
U+1A76, U+1A63> by positioning marks above on the two halves of the
ligature differently.

(Continue reading)

notifier | 4 Mar 21:37 2015

behdad/harfbuzz coverage increased (+1.57%) to 58.82% on master

behdad/harfbuzz coverage increased (+1.57%) to 58.82% for commit: 0.9.39 by behdad
_______________________________________________
HarfBuzz mailing list
HarfBuzz <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Behdad Esfahbod | 4 Mar 21:33 2015

harfbuzz: Changes to 'refs/tags/0.6.0'

Tag '0.6.0' created by Behdad Esfahbod <behdad-muU0i0fqO+Mdnm+yROfE0A <at> public.gmane.org> at 2011-05-27 08:48 -0700

0.6.0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEABECAAYFAk3fV1sACgkQn+4E5dNTERWjswCgkSqPcblHH6i3UuCaPOldI4/P
RW4AoJrhL6SIHYu97jMRKcL11i229YPb
=ahcU
-----END PGP SIGNATURE-----

Changes since the dawn of time:
Behdad Esfahbod (1280):
      Fix bug to copy glyph from in_string, not out_string.
      Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros.
      Replace perror with perror_. Remove FT_BEGIN_STMNT and FT_END_STMNT.
      Generate valid XML output. Dump LookupFlag too.
      Patches from #170414. Reviewed by Matthias Clasen.
      Turn various gcc warnings off. Adding const, adding static, fully
      Remove debug line that got in accidentally.
      Part of #101079:
      Reworked basic shaper with OpenType support. (#101079, based on patch from
      Protect against possible division by zeros (#316468, Steve Grubb)
      Added "Since:" tags to all interfaces added after Pango 1.0. (#319116,
      Fix typo in docs.
      Tiny doc improvement.
      Use g_slice for PangoOTBuffer allocation. (bug #325026, Matthias Clasen)
      pango/Makefile.am, pango/fonts.c, pango/glyphstring.c,
      Make sure #include <config.h> is the first include in the file. (bug
      If major.minor of required and available glib versions are the same, add
      Removed.
      Handle GSUB Lookup type 8, and ReverseChainContextualSubst table. (bug
      === Released 1.12.0 ===
      Don't err on Table_Missing.
      Convert pango/opentype to the new project called HarfBuzz.
      Define NULL.
      .
      .
      Make sure TTAG_GDEF and frineds are defined, needed for FreeType <= 2.1.7
      Update from HarfBuzz. Lars Knoll fixed all the warnings.
      Fix minor bugs reported by the Coverity scan report.
      Bug 337924 – cleanups for issues reported by various compilers Patch
      Fix loop variables. (coverity found bug.)
      Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't correct when
      Bug 341138 – Using TTC font, Gtk2 programs begin to eating big memory
      Bug 345600 – cvs build error in pango/opentype/Makefile
      Bug 347073 – Allow empty GPOS table
      First version.
      Second version.  Complete redesign, based on C++ classes to ensure endian
      Remove the annoying HB_ prefix.
      After DEFINE_SCRIPT_ARRAY
      Add Makefile
      Add OpenTypeFontFile.
      Make types not instantiable
      Use CamelCaseTags.
      LangSys
      Implement Feature
      LookupFlags
      Rename to harfbuzz-ng.cc
      Coverage.
      s/DEFINE_NOT_INSTANTIABLE/DEFINE_NON_INSTANTIABLE/
      Define more structs using DEFINE_INT_TYPE.
      Rename CoverageFormat to Coverage
      ClassDef
      Device tables.
      Finished OpenType Common Table Formats
      GSUBGPOSHeader
      s/OpenTypeFont/OpenTypeFontFace/g
      Add GPOS stub
      Use union for Coverage
      Use union for ClassDef
      Oops. s/OpenTypeFontFaceFile/OpenTypeFontFile/g
      Break and rename, in the layout of old HarfBuzz codebase
      Remove stale comment
      Don't shift down the mark attachment type
      Add stub GDEF files
      Remove .cvsignore files (moved to svn:ignore prop)
      Copy fixes from harfbuzz stable branch. Includes a leak fix, a kerning
      Link freetype to harfbuzz-dump, for those systems that don't track
      Improve stupid Makefile
      [open] small fixes, including not using unions for main structs
      [gdef] Initial implementation
      Don't ignore error return value of hb_buffer_copy_output_glyph(). Patch
      Bug 463430 – Gets stuck while "formatting message"
      Bug 302952 – The placement of a diacritic marks for an arabic ligature
      Bug 485559 – Boston Summit HarfBuzz optimizations
      Bug 485621 – Get rid of freetype memory allocator in harfbuzz
      Allocate buffer->positions lazily.
      Rename buffer->inplace to buffer->separate_out with the inverted meaning,
      Minor.
      Move some code around.
      Some more cleanup.
      Don't include harfbuzz-dump.[ch] in libharfbuzz.a. Those are just used by
      Same here.
      Build harfbuzz.c instead of individual source files, to let compiler go
      Remove FTGLUE_API/APIDEF cruft.
      Mark internal symbols as HB_INTERNAL and define that to static in
      Bug 488840 – harfbuzz: protect against ligid overflow
      Add commented-out dummy struct for Extension lookups.
      New header file harfbuzz-global.h. Rename FT_* int types to HB_* types.
      Rename ftglue.c to harfbuzz-impl.c and more type renames and moving code
      More cleanup, remove redundant error types.
      Even more cleanup and more type renames.
      Fix typo.
      Some more cleanup and merging.
      And some more.
      Remove dead code.
      Minor
      Remove unused macro.
      Bug 485536 – underline_position can be zero
      Undo accidental change.
      Bug 501575 – Compile errors Patch from Jens Granseuer
      HarfBuzz was relicensed to a more generous and simpler license. Adapt. See
      Remove COPYING.GPL and COPYING.FTL that are no longer there.
      Misc cleanup
      Finish and test GDEF
      Define get_for_data() factories
      Make all code NULL-free and assert-free
      Clean up file names, add namespace
      Minor cleanup, add LIKELY and UNLIKELY annotations
      Add copyright notices.
      Initial gsub stub
      Minor renaming
      Minor
      Remove unused macro
      Starting public interface
      More public api
      Implement glyph properties
      [GDEF] Finish public API
      [GDEF] Finish internal API
      GDEF completely working now
      Rename hb_ot_layout_create() to hb_ot_layout_create_for_data()
      Rename HB_OT_Layout to hb_ot_layout_t
      Make main.cc compile again, which means finished getter API
      Add script and language public getter API
      Finish script, language, and feature public API
      Fix typo, add TODOs
      [hb-ot-layout] Add proper namespace to accessors
      Bug 540592 – Crash in HB_GSUB_Apply_String with Linux-Libertine font
      Fix left-to-right positioning. Reported by Peter Hunter.
      Bug 528272 – "Error loading GPOS table 5503" when using katakana
      Fix more warnings.
      Bug 469049 – Fix all compiler warnings
      Allocate all array rows in a single ALLOC call. Saves over 2000 alloc
      Remove old cruft.
      Use calloc(), instead of malloc()ing and memset()ing.
      Remove ClassDef->Defined field. This is the comment accompanying it:
      Allocate all array rows in a single ALLOC call. Saves over 100 alloc calls
      Fix Bug 572529 – Poor -I ordering can break build
      [opentype] Use size_t instead of uint for malloc wrappers
      [opentype] Protect against illegal access for arrays of length zero
      Bug 577952 – Error loading {GDEF,GSUB,GPOS} table 0x6EAD
      Give it a start at GSUB
      Use git.mk
      Merge harfbuzz-ng
      Implement the first substitute()
      [harfbuzz/GSUB] towards a partially working GSUB
      [GSUB] Fix reverse lookup loop like we did in the old code before
      [GSUB] Implement Extension subtables
      [GSUB] Implement Alternate subtables
      [GSUB] Start Ligature subtable support
      [GSUB] Hook new GSUB up in Pango
      [GSUB] Implement ligature substitutions
      [GSUB] Minor refactoring
      [GSUB] Towards Context subtitutes
      [GSUB] minor
      [HarfBuzz] Start a TODO file
      [GSUB] Shuffle
      [GSUB] ContextSubst format 1
      [HB] Remove get_size()
      [HB] Remove DEFINE_NON_INSTANTIABLE
      [HB] Add TODO item
      [HB] Fix typo
      [GSUB] Finish ContextSubstFormat1
      [GSUB] Add GSUB::substitute_lookup()
      [GSUB] Implement ContextSubstFormat2
      [GSUB] Implement ContextSubstFormat3
      [GSUB] Start ChainContextSubst
      [HB] Remove obsolete comment
      [HB] Use templates for Null objects
      [HB] Automate int-type size assertion
      [HB] Add OffsetTo template.
      [HB] Use OffsetTo<> in more places
      [HB] Use OffsetTo<> for Coverage
      [HB] Add ArrayOf<>
      [HB] Use ArrayOf<> in GSUB
      [HB] Simplify more arrays
      [HB] Update copyright years
      [HB] Add TODO item
      [HB] Simplify buffer
      [HB] Renames
      [GSUB] Unify ContextSubst matching
      [HB] Move Context matching logic out of GSUB
      [HB] Unify first glyph property checking
      [GSUB] Further optimize the main switch
      [HB] Propagate property of first glyph
      [HB] Couple size checks
      [HB] Use four bytes for Null Tag, not 5
      [HB] Cleanup format unions
      [HB] More shuffling
      [HB] Split Layout-common tables into new files
      [HB] Remove stale TODO
      [HB] Start ChainContext and ReverseChainSingleSubst lookups
      [HB] Cosmetic
      [HB] Add check to avoid infinite recursion
      [HB] Towards sharing Context and ChainContext code
      [HB] More churning towards ChainContext lookups
      [HB] More template goodness
      [HB] Add HeadlessArrayTo<>
      [HB] A step closer to working ChainContext
      [HB] Further modularize Context matching
      [HB] One more step to go, for fully working GSUB and ChainContext
      [HB] Implement backtrack matching
      [HB] ChainContext complete
      [HB] Fix context_length checking
      [HB] Correctly skip glyphs when applying (Chain)Context lookups
      [HB] Minor cleanup
      [GSUB] Fix context_length handling in Ligature too
      [HB] Cleanup TODOs
      [HB] Tweak some constants and fix Coverage
      [GSUB] Oops, fix Extension check
      [HB] Don't use G_LIKELY!
      [GSUB] Implement ReverseChainSingleSubst
      [GSUB] Protect against mismatching Extension subtable types
      [HB] Minor
      [GSUB] Minor
      [HB] Start GPOS!
      Switch Pango to new, defunt, GPOS
      [HB] Simplify casts
      [HB] Internally rename position() and substitute() to apply()
      [HB] Rename LOOKUP_ARGS to APPLY_ARGS
      [HB] More reference cast simplification
      [HB] Use enums
      [GPOS] Start filling apply() functions in
      [GPOS] PairPosFormat1
      [GSUB] PairPosFormat2
      [GPOS] CursivePosFormat1
      [HB] Indentation
      [HB] Remove unused methods
      [HB] Indentation
      [GDEF] Simplify Device access
      [HB] Move lookup types enum into subtable class
      [GPOS] Fix more brokenness
      [GPOS] Finally it's working, up to Cursive
      [HB] Remove all references to the old code!
      [HB] Rename harfbuzz-buffer to hb-buffer
      [HB] Remove last dependence on the old code base!
      [HB] Add TODO item
      [HB] Add TODO item
      [GPOS] Start MarkBasePosFormat1
      [GPOS] Remove apply_value() return value
      [GPOS] Implement Device support in AnchorFormat3
      [GPOS] Implement MarkArray interface
      [GPOS] MarkBasePosFormat1
      [GPOS] MarkMarkPosFormat1
      [HB] Ouch.  Add files.
      [GPOS] Remove printf.  MarkMarkPos1 is working
      [HB] Share Extension lookup code between GSUB and GPOS
      [HB] Remove apply_subtables() again
      [GPOS] MarkLigPosFormat1
      [GDEF] Add some get_carret_value() code
      [HB] Add TODO items
      [HB] Minor
      [HB] Check for GDEF/GSUB/GPOS versions
      [HB] Simplify version check in GSUB/GPOS
      [HB] Remove unused data types
      [HB] Simplify tag
      [HB] Add FixedVersion cast to int
      [HB] Remove stale TODO mark
      [HB] Remove old code!
      [HB] Remove stale makefile.msc too
      [HB] Update text files
      [HB] simplify macros
      [HB] Simplify some basic things
      [HB] Simplify more
      [HB] Simplify Tag
      [HB] More cleanup
      [HB] Would have helped if I actually knew C++ before using it...
      [HB] Update copyright years
      [HB] Remove one XXX, add another
      [HB] Clean more
      [HB] Cleanup buffer
      [HB] More buffer cleanup
      [HB] Remove more macros
      [HB] Add get_attach_points()
      [HB] Implement get_lig_carets()
      [HB] Start MarkFilteringSet support
      [HB] More de-C++'ization
      [HB] Support parsing MarkFilteringSets introduced in OpenType 1.6
      [HB] Simplify MarkAttachmentType handling
      [GDEF] Support MarkFilteringSets
      [HB] When looking back/forward, skip marks only
      [GPOS] Fix mark matching
      [GPOS] Fix PairPos signedness
      [HB] Fix glyph properties
      [GPOS] Remove unused variables
      [HB] Remove useless include
      [GPOS] Add vertical TODO
      [GPOS] Fix property checking
      [HB] Improve buffer.  Don't dup out buffer unless out is longer than in
      [GPOS] Advance buffer cursor in SinglePos lookups.  Ouch!
      XX
      Revert "XX"
      Apply patch from Jonathan Kew
      [HB] Fix buffer enlargement.  Ouch
      [HB] Rename internal vars
      [HB] Move direction to buffer
      [HB] Add a "blob" manager
      [HB] Remove hinting setting and use ppem==0 to mean "no hinting"
      [HB] Use calloc instead of malloc where feasible
      [HB] Fix for dfont's with multiple faces
      [HB] Simplify refcounting functions
      [HB] Add abstract font and face API
      [HB] Simplify object creation
      [HB] Assorted compiler macros
      [HB] Remove glib dependency
      [HB] Add get_reference_count()
      [HB] Move typedef's around
      [HB] Port buffert to new object API
      [OT] Match struct with HB's
      [HB] Cleanup public buffer structs
      [HB] Cleanup TODO
      [HB] Rename _duplicate to _copy
      [HB] Add XXX marks
      [HB] Add top-level header files
      [HB] Port ot-layout to new public API
      [HB] Move OT file handling out of ot-layout
      [OT] Rename C++ header files from *.h to *.hh
      [HB] Rename hb-font.c to hb-font.cc
      [HB] Add sub-blobs
      [HB] Simplify sub-blob support
      [HB] Use face_t directly instead of ot_layout_t
      [HB] Make it all work again
      [HB] Remove use of typeof()
      [HB] Start sanitize()
      [HB] More sanitize()
      [HB] Optimize sanitize()
      [HB] Add comment
      [HB] Finish GSUB sanitize()
      [HB] Simplify indirect sanitize()
      [HB] Merge more templates
      [Hb] Use reinterpret casts instead of direct casts to char *
      [HB] More cast cleanup
      [HB] Fix couple of bugs
      [HB] More casts
      [HB] Sanitize DeviceTable
      [HB] GPOS sanitize()
      [HB] Fix mix warnings
      [HB] Hookup NEUTER()
      [HB] Remove stale TODO
      [HB] Fix Extension sanitize()
      [HB] GDEF sanitize()
      [HB] Tag sanitize()
      [HB] open-file sanitize()
      [HB] More sanitize infrastructure
      [HB] Shuffle code around
      [HB] Minor cleanup
      [HB] Add XXX
      [HB] Add Sanitizer
      [HB] Fix leak
      [HB] Hook Sanitizer up.  Hell's breaking loose right now
      [HB] Avoid infinite recusion in Extension sanitize()
      [HB] Fix warnings
      [HB] Save edit even if not writeable
      [HB] Rename open-types to open-type; beauty
      [HB] Add sanitize debugging facilities
      [HB] Add missing sanitize
      [HB] Fix fatal Sanitizer bug
      [HB] More debugging output
      [HB] Fix a couple other sanitize() bugs
      [HB] Fix another sanitize() bug;  hopefully it's the last one
      [HB] turn debugging off
      [HB] Fix build of main.cc
      [HB] Minor
      [HB] Improve debug output and fix mprotect bug
      [HB] Fix blob unlock
      [HB] Improve debug output
      [HB] Add a few TODO items
      [HB] Minor
      [HB] Improve debug output
      [HB] Use glib again
      [HB] Fix blob to use a actual mutex
      [HB] Remove a few 'inline's, though the compiler mostly ignores them
      [HB] Fix unaligned access
      [HB] Remove stale XXX
      [HB] Rebrand XXX as TODO
      [HB] Remove another stale XXX
      [HB] Remove unused var
      [HB] Fix various XXX issues
      [HB] Remove clumsy macros and improve API
      [HB] Fix bug introduced recently
      [HB] Rename hb_ot_layout_feature_mask_t to hb_mask_t
      [HB] Remove hb_ot_layout_table_find_feature()
      [HB] Print mark sets in main.cc
      [HB] Remove done TODO item
      [HB] Add a NEXT() macro
      [HB] Remove unused code
      [HB] Indent
      [HB] Don't override CXX compiler
      [HB] Put C++ inline's back
      [HB] Start adding Unicode funcs
      [HB] Reuse the positions array as alt string array
      [HB] Add hb_buffer_reverse()
      [HB] Add buffer UTF-X API
      [HB] Implement buffer UTF-X input
      [HB] Flesh out Unicode funcs
      [HB] Initialize unicode funcs to nil getters
      [HB] Use nil unicode funcs in nil face
      [HB] Add hb_unicode_funcs_make_immutable()
      [HB] Add hb-glib
      [OT] Hookup glib unicode funcs
      [HB] Add missing initializer
      [HB] Add hb_font_funcs_make_immutable()
      [HB] Fix invalid access / overflow on x86-64
      [HB] Ouch.  Fix compilation.
      [HB] Fixed signedness warnings
      [HB] Fix _hb_buffer_next() when positioning
      [HB] Always clear positions if dirty, before returning to user
      [HB] Add comment
      Bug 591511 – hb-blob.c does not compile using mingw on windows
      Bug 591413 – needs to link with libstdc++
      [HB] Fix buffer sizing issue with mingw gcc
      Bug 591511 – hh-blob.c does not compile using mingw on windows
      [HB] Bitfield packing *is* very delicate
      [HB] Add empty hb_shape() API
      [HB] Add note about auditing sanitize code for overflows
      [HB] Use SANITIZE_THIS() when applicable
      [HB] Use inline function for SANITIZE_MEM()
      [HB] Debug output for SANITIZE_MEM()
      [HB] Fix possible int overflows during sanitize
      [HB] Simplify MarkMark
      [HB] Simplify MarkBase and MarkLig too
      [HB] Correctly sanitize LigatureAttach
      [HB] Move code around
      [HB] More minor shuffling
      [HB] Merge mark positionin code between three types of lookups
      [HB] Simplify loop
      [HB] Avoid int overflow in GPOS
      Bug 592194 -  Fix missing _SC_PAGE_SIZE macro
      [HB] Fix wrong method signature
      [HB] Fix more wrong method signatures
      [HB] Fix pedantic warnings
      Fix a few other pedantic warnings
      [HB] Add font funcs prototypes
      [HB] Fix typo
      [HB] Hide lig_id and component members of hb_glyph_info_t
      [HB] s/writeable/writable/g
      [HB] Remove HB_MEMORY_MODE_READONLY_NEVER_DUPLICATE
      [HB] Rename CAIRO_ in macro prefix to HB_
      [HB] Fix more casts
      [HB][glib] Make glib unicode funcs static
      Bug 592484 -  invalid write in HB
      [HB] Bug 593231 - < c99 compiler dislikes ValueRecord
      [HB] Indent
      [HB] Simplify counting
      Fix stupid array growing bug
      [HB] Allow enabling different debug facilities individually
      [HB] Add GSUB/GPOS tracing
      [HB] Rename DEBUG to TRACE where appropriate
      [HB] Add TODO item
      [HB] Fix bug in chain_context_lookup() invocations
      [HB] Fix apply_lookup() loop
      [HB] Add comment
      [HB] Fix lookup_flag ignoring
      [HB] Add point_index to get_contour_point()
      [HB] Add glyph_metrics typedef
      Add build system
      Generate ChangeLog
      Install library
      Remove use of GINT16_FROM_BE
      MSVC has no stdint.h
      Build without glib
      Update Makefile to build without glib
      We don't really use gthread directly
      Disable configure cache
      Fix build without glib, again
      Another try at build without glib
      Cosmetic
      Don't use zero-sized arrays
      More MSVC fixes from Jonathan Kew
      Add bunch of TODO items
      [TODO] Remove obsolete item
      [configure] Fix check for FreeType
      Use the C linker, not C++ linker
      Add check for not linking to libstdc++
      [TODO] Add item for fixing buffer error handling
      [Makefile] Install hb-unicode.h
      Move unicode_funcs to buffer
      Namespace MSVC defines in public header
      Fix hb_be_uint16()
      Add ICU glue
      Start ft glue
      Implement nil font functions
      Add TODO item
      Finish FT glue.  Rough and untested
      Fix array query API
      Fix previous commit, ouch!
      Minor
      Another one
      Define ARRAY_LENGTH
      Add hb_language_t as well as language/script conversion to OT tags
      Add script and language to buffer
      Start filling hb_shape() in
      Cosmetic
      Rename [xy]_pos to [xy]_offset since we don't accumulate positions
      Add hb_font_get_*
      Include stdio.h if debugging
      Fix MarkMark issue with ligid and components
      Add default positioning to hb-shape
      Add hb_ft_face_create_cached
      Fix ref counting
      Add TODO item
      Initialize font->klass
      Return 0 from get_glyph_nil
      Cosmetic
      Add debugging to object lifecycle
      include errno.h
      Fix warning
      Cosmetic
      Fix FT_Face generic finalizer
      Minor.
      Rename hb_buffer_get_len() to hb_buffer_get_length()
      Fix FT_Face finalizer call
      Add hb_ot_layout_position_finish()
      Add _hb_buffer_add_output_glyphs() that takes codepoint_t*
      [GSUB] More ligature/component fixing
      Remove debug info that crept in
      Change order of font and face for API consistency
      Oops, wrong change
      Handle shaping in non-native direction
      Reverse buffer at the end if RTL
      Remove done item
      Remove obsolete TODO item
      Fix sanitize
      Add Mongolian variation selectors
      Use autoconf FLEXIBLE_ARRAY_MEMBER when available
      Fix warning
      Another C++ strictness fix
      Distribute autogen.sh
      Make main.cc compile without glib
      Add HB_DIRECTION_IS_FORWARD/BACKWARD
      Explicitly track whether the buffer has positions
      We'll have to link to libstdc++ if linking to ICU, so disable test for now
      Add hb_unicode_get_*() functions
      Protect against NULL funcs
      Do mirroring
      Direct unicode->get_mirroring directly
      Add TrueType kern support
      Refactor hb_shape a bit
      Avoid overflow
      Pass features down
      Hook OpenType shaping up
      Oops, add file.
      Remove glibism!
      Fallback to 'kern' if no GPOS applied
      Revert "Fallback to 'kern' if no GPOS applied"
      Indent
      Fix compile with older FreeType
      [TODO] Add kern/GPOS interaction
      [GDEF] Fix bug in building synthetic GDEF
      Use __attribute__((unused)) only with gcc 4 and later
      Improve the alignment for NullPool
      Make blob unlocking 64bit-safe
      [ft] Check stream->read instead of stream->base
      Cosmetic
      Typo
      Fix the mystery bug!
      Fix leak when duplicating blob
      Fix debug build
      Fix warnings
      Round instead of trunc
      Remove ASSERT_SIZE_DATA
      Add couple consts to operators
      Fix Class operator return type
      Cosmetic
      Simplify Tag struct
      Use a function template instead of struct template for Null
      Remove stale TODO item
      Improve comments
      WIP
      GNOME Bug 613015 - [HB] Does not sanitize Device tables referenced from ValueRecords
      Remove unused macros
      Move macros around
      Minor
      Rename macros
      Remove unused macro
      Use templates for defining int typess
      Const correctness
      Use templates for const char * casts
      Convert NEXT() and ARRAY_AFTER() macros to templates
      Remove ArrayAfter, use StructAfter in place
      Rename const_array() to array() (overloaded)
      Further simplify IntType struct defs
      Improve comment
      Add comment
      Add comment
      Add more comments
      Cleanup de-const-casting during sanitize
      Rename ConstCharP to CharP (overloaded now)
      More cast simplification
      Change header comment
      Simplify Lookup sanitize
      Cosmetic
      Rename const_sub_array to sub_array since all consts are implicit now
      Watch for overflow in Array sanitize
      Sanitize shallow in Lookup since the generic SubLookup has no methods
      Simplify Extension offset now that our int types have no alignment
      Improve Subst/Pos SubTable access and sanitize
      Make sure semicolon is expected after DEFINE_NULL_DATA()
      Make casts more explicit
      Avoid overflow in TableDirectory sanitize
      Remove unnecessary casts
      Add coment
      Don't sanitize raw table data
      Remove integrity check in Tag sanitize
      Minor
      Add comment
      Cleanup ContextFormat3 sanitize
      Check for (impossible) overflow
      Minor cleanup of sanitize
      More sanitize cleanup
      Fail sanitize on major version mismatch
      Cleanup Extension sanitize()
      Remove unused macro
      Convert the last set of cast macros to templates
      Cosmetic
      Add comment re bsearch effect on sanitize
      Cleanup Extension lookups
      Properly define separate structs for TTCHeader and TTCHeaderVersion1
      Cleanup OpenTypeFontFile
      [blob] Fallback to copying if mprotect() fails
      When sanitizing, delay making writable
      No need to keep blob in sanitize context
      Fix compile warnings (HB_GNUC_UNUSED)
      Remove unused parameter
      More warning fixes
      Zero glyph metrics before calling user callback
      Add TODO
      Remove GET_FOR_DATA macros
      Add different casts from pointer and ref to avoid bugs
      Remove lock_instance()
      Typo
      Allow get_table() to return NULL
      Cleanup hb_face_create_for_data()
      Remove use of flexible arrays
      Rename Var to Obj
      Fix Device::get_size() calculation
      [object] Actually handle malloc() failure
      Fix debug build
      Fix build.  Ouch!
      [blob] Make debug code always available to the compiler
      Minor
      [object] Make debug code always available to the compiler
      Fix compiler warning about value unused
      [gsubgpos] Make debug code always available to the compiler
      [sanitize] Make debug code always available to the compiler
      Simplify trace code
      Further simplify tracing
      [apply] Use a context object to reduce number of parameters passed around
      Rename
      Rename apply_context -> context
      Add const
      Use const_cast
      Fix bug in hb_language_from_string()
      Minor
      Use BCP47 private-use tags for OpenType tag language string mapping
      Make sure mirroring is done in original direction
      [gdef] Implement getting contour point
      [gdef] Fix rounding
      [gdef] Fix delta scale
      More contour point use
      Convert to uppercase in hb_ot_tag_from_language()
      [sanitize] Make debug code always available to the compiler
      Define HB_FUNC for portability to non-gcc
      Rename HB_GNUC_UNUSED -> HB_UNUSED
      [ft] Disallow getting the entire font data with tag=0
      [GPOS] Speedup apply_value()
      Whitespace
      Remove unused method
      Merge remote branch 'jrmuizel/master'
      Mark a couple functions as inline
      Cosmetic: Rename HB_LIKELY/HB_UNLIKELY to likely/unlikely
      Comment new SFNT tags
      [main] Recognize Apple SFNTs
      Make internal method private
      Remove the NEUTER macro, move code to a method
      Remove SANITIZE2
      Remove SANITIZE_BASE2
      Remove SANITIZE_THIS3
      Cosmetic
      Remove SANITIZE_THIS2
      Remove SANITIZE_OBJ
      Rename SANITIZE_BASE to SANITIZE_WITH_BASE
      Remove SANITIZE_THIS
      Make _hb_sanitize_*() methods of the context object
      Use function template for pass-thru argument
      Make sanitize_depth variable automatic and not passed through function args
      Add hb_trace_t
      Remove trace from sanitize_shallow()
      Remove SANITIZE_ARG_DEF and SANITIZE_ARG
      I keep changing my mind about this
      Minor
      Move layout_context into apply_context
      Move buffer into apply_context
      Move context_length into apply_context
      Port apply to use hb_trace_t
      Remove APPLY_ARG_DEF and APPLY_ARG
      Simplify chaining
      Minor
      Minor
      Cosmetic
      Remove SANITIZE_ARRAY
      Rename check to check_range
      Remove SANITIZE_MEM
      Remove SANITIZE_WITH_BASE
      Cleanup Value casts
      Remove SANITIZE macro
      Remove the last of SANITIZE macros: SANITIZE_SELF
      Start cleaning up get_size()
      Simplify DEFINE_NULL_DATA
      Whitespace
      Cleanup ASSERT_SIZE_VAR
      Remove ASSERT_SIZE in favor of the safer DEFINE_SIZE_STATIC
      Cleanup
      Further cleanup of DEFINE_SIZE
      Make StructAtOffset take a pointer
      Remove unnecessary casts
      Remove CastP completely
      Further cleanup of sizeof
      Fix check_struct to check min_size instead of sizeof
      Simplify array access
      Minor
      Cleanup DEFINE_SIZE_VAR2
      Change DEFINE_SIZE_VAR to DEFINE_SIZE_ARRAY
      Remove unused macro
      Simplify unions
      Fix accessing tables from NULL pointer
      Fix comment
      Don't fail sanitize on NULL data
      Fix tracing order
      Fix awful confusion between lookup format and subtable format
      Clean up NO_INDEX
      Fix warning
      Shrink NullPool now that we have accurate size tracking
      Remove excess sub_format sanitize
      Remove a few likely()'s
      Sprinkle a few strategic likely()'s
      Fix warnings
      Simplify likely() implementation
      Add CONST_FUNC annotation
      Simplify PairSet
      Remove obsolete friend
      Fix comment
      Rename a few files to be C++ sources
      Use bit tricks for HB_DIRECTION_IS_*
      Add buffer->allocate_lig_id()
      Hide internal symbols
      Add check for internal symbols
      Add buffer->swap()
      Add a few other buffer methods
      Make HB_PRIVATE more useful
      Improve check for internal symbols
      Minor
      Add a few more buffer convenience methods
      Don't use variable-length-arrays
      s/\<context\>/c/g
      Remove POSITION() and CURPOSITION() macros
      Fix lookahead matching.  Oops!
      Remove OUT_GLYPH() and OUT_INFO() macros
      Remove IN_COMPONENT() macro
      Remove the IN_LIGID() macro
      Remove the IN_MASK() macro
      Remove the IN_CLUSTER() macro
      Remove the IN_GLYPH() macro
      Remove IN_INFO() and IN_NEXTGLYPH() macros
      Remove the IN_CURINFO() macro
      Remove the IN_CURGLYPH() macro
      Remove the unused BUFFER macro
      Merge buffer->out_pos and buffer->out_length
      Shortening buffer accessors: rename buffer->in_string to buffer->info
      Shortening buffer accessors: rename buffer->out_string to buffer->out_info
      Shortening buffer accessors: rename buffer->positions to buffer->pos
      Shortening buffer accessors: rename buffer->in_length to buffer->len
      Shortening buffer accessors: rename buffer->out_length to buffer->out_len
      Shortening buffer accessors: rename buffer->in_pos to buffer->i
      Update buffer docs
      Minor
      Handle malloc failture in the buffer
      Add an inline version of hb_buffer_ensure()
      Indent
      Minor
      Add LONGDATETIME
      Add 'head' table
      Fix scale issues
      Change hb_feature_t to keep tag/int instead of string
      Apply user features
      Invert the mask logic
      Update always-apply mask from 0xFFFF to 1
      Add lookup_map
      Add _hb_bit_storage()
      Apply user features to ranges!
      Write hb_face_create_for_data() in terms of hb_face_create_for_tables()
      get_table() is allowed to return NULL.  Use that to simplify code
      Do alternate glyph selection!
      Remove unused operator
      Fix delta scale, again...
      Fix alternate off-by-one
      Fix alternate, again
      Let hb_face_get_table() return NULL if table not found
      Add Python wrapper from Martin Hosken
      Add hb_ot_tag_to_script()
      Fix feature mask setting
      Add Unicode 5.2 scripts
      Speed up feature mask setting
      Don't allocate bits for features not available
      Add hb_tag_from_string()
      Update the Python module
      Import Graphite shaping backend by Martin Hosken
      Fix warnings
      Fix test failing
      Move main shaper code into hb_ot_shape()
      Graphite also forces us to link to libstdc++ currently
      Simple renames
      Fix Makefile to install hb-ot-shape.h
      Add hb-ot-shape.h, oops.
      Add note
      Cleanup bitmask allocation
      Add ltra, ltrm, and rtla features
      Add rtlm
      Add note
      Add a few more standard features
      Move mirroring around a bit
      Move all callback functions in a vtable structs
      Make sure we initialize all callbacks upon creation
      Minor
      Fix struct initializers
      Merge remote branch 'martin/master'
      Revert "Merge remote branch 'martin/master'"
      Cypriot is RTL
      Disable Graphite as it crashes all over the place...
      Fix loop
      Add note about UTF-8 decoder
      Allow disabling default features
      Towards a mask allocator
      Simplify mask allocation
      Fix global feature handling
      Further simplify mask allocator
      Minor
      Make feature sorting stable
      Fix skipping variation-selectors
      Followup fix for variation-selectors
      Fix header tags
      Add a test for header preprocessor guards
      Fix header
      Remove useless TODO
      Use bsearch where applicable
      Don't bother sorting, it's a safe font error if the array is not sorted
      Fix 64bit issues with debug prints
      Mozilla bug 580233 - check for zero-length record in hb sanitizer.
      Remove fixed TODO item
      Add arm build fix to TODO
      Add TODO option
      Don't use "operator ="
      dos2unix
      Header dep cleanup
      De-C++ where possible
      Prefer C linkage
      Add TODO items
      Towards separating bit allocation from shaping
      Minor
      Logically separate feature allocation from application
      Add TODO
      [GPOS] Fix div-by-zero
      Fix NULL dereference
      Speedup Device table delta computation for common cases
      Add TODO item
      Fix blob refcounting with insane SFNT table directories
      Fix hb_ot_layout leak
      Add test.c using public API
      Remove unimplemented method hb_font_get_funcs()
      Add TODO iteam
      Fix stupid bug in bsearch cmp function!
      Add comment re DejaVu Sans Mono having 'dflt' script
      Improve cmp function parameter namings and casts
      One fewer cmp() implementation...
      Don't zero glyph advances in MarkToBase and similar lookups
      Pedantic
      Avoid div-by-zero, validate upem
      Minor
      Add getters for all setter APIs
      Add is_mutable() functions
      Add API comments
      Add TODO item
      Add hb_face_get_upem()
      Update build system
      Add Arabic/Syriac/N'ko shaping logic
      Add internal hb_ot_shape_context_t
      Move table_tag to hb_ot_shape_context_t
      Rename setup_lookups()
      Call hb_ot_shape_setup_lookups_complex()
      Add XXX note
      Rename
      Simplify compiling lookups
      Minor
      Move some more code around
      Minor
      Logically separate feature collection
      Flip the OT bit-allocation vs gsub/gpos inside-out
      Add private hb_segment_properties_t
      Add hb-ot-map-private.hh
      Add hb-ot-shape-private.hh
      Minor cleanup
      Fix feature overriding
      Add hb-ot-map.cc
      Improve checks
      Rename hb_mask_allocator_t to hb_ot_map_t
      Enable 'rtlm' mirroring
      Minor
      More separation
      Fix missing negation in unreachable code!
      Fix infinite loop!
      Update Arabic shaping table to Unicode 6.0.0.
      More refactoring
      Refactor, in a different direction
      Add hb_ot_shape_plan_t
      Add hb_ot_complex_shaper_t stuff and start hooking Arabic shaper up
      Add hb_ot_shape_execute()
      Clear masks before setting them up, not after!
      Form clusters before setting masks
      Merge clearing masks and setting global masks
      Hookup Arabic shaper!
      Fix Arabic shaper
      Step the version up to 0.2 now that Arabic shaper is in
      Fix stupid bug, oops
      Cleanup TODO
      Add TODO item
      Set user masks after complex masks
      Fix applying default-value for features
      Make sure feature values don't leak out of their mask
      Return early if mask is 0
      Make sure boolean features always use value=1
      Oops, actually set global mask
      Massage mask setting a bit more
      Fix blob leak
      Divide get_metrics into get_advance and get_extents
      Oops, remove extra mask setting that broke complex shaping
      Remove obsolete TODO item
      Fix segfault with Arabic combining marks
      Fix Cursive positioning
      Rewrite Cursive joining to act more like other pair lookups
      Remove unused macro
      Remove LONGTERMTODO item that I'll never fix
      Implement vertical support in get_lig_carets()
      Rename hb_ot_layout_get_lig_carets() to hb_ot_layout_get_ligature_carets()
      Remove more pointless LONGTERMTODO items
      Clarify cursive_chain (and change its sign)
      Supposedly implement vertical support in GPOS
      Remove trailing comma
      Add hb_var_int_t
      Get rid of the OpenType-specific internal buffer representation
      Remove comment
      Set component=0 for ligature glyph
      Always allocate new ligature id
      Move setting lig_id/component out of buffer and to the gsub code
      Minor renaming
      More removal of lig-id code from buffer
      More lig-id cleanup
      More cleanup
      Remove unused function
      WIP removing external synthesized GDEF support and implementing it internally
      Rename lookup_flags to lookup_props since it's more than just flags
      Simplify mark skipping logic
      Move some more code around
      Move code around
      Move buffer var allocation local
      Move things around some more
      Fix unreachable-code warning
      Remove another couple lines of dead code
      Fix a few more "unreachable code" warnings
      Minor code shuffling
      Pedantic
      Add comment
      More "unreached code" warning fixes
      Save general category and combining class in the buffer for reuse
      Add TODO item
      Add XXX marks
      Add TODO item
      Change HB_SCRIPT_MEITEI_MAYEK to HB_SCRIPT_MEETEI_MAYEK
      Add Unicode 6.0 scripts
      Add OpenType script tags for Unicode 5.2 and Unicode 6.0 scripts
      Update Arabic joining table to include Mandaic
      Move generated table to its own file
      Clarify copyright notice
      Remove email address from Copyright headers
      Fix failing checks
      Adjust pyx files to reflect change from int to hb_var_int_t
      Bug 31965 - some GNU/Linux distributions lack icu.pc but have icu-config
      Fix arabic shaping of LTR text
      Rename original_direction to target_direction
      Mozilla Bug 618592 - freeze on typekit
      Disallow ligature substitutions replacing one glyph
      Update 'head' table to OpenType 1.6
      Rename TableDirectory to TableRecord as per OpenType 1.6
      Rename remaining metrics uses to extents
      Annotate the Arabic joining table with block information
      Reroute Mandaic shaping through the Arabic shaper
      Bug 32274 - classic mongolian shaper
      Docs
      Remove Graphite backend
      Fix ICU detection
      Remove unused realloc
      Fix ChanContext backtrack matching with GPOS
      Fix 'make distcheck'
      Don't use the m4/ dir
      Fix language extension matching
      Add initial hb-view tool
      Default background color shall either be white or transparent
      Fix possible overflow
      [hb-view] Link with -lm
      [hb-view] Handle write_to_png errors
      Let hb_shape() guess script and direction...
      Add script to/from ISO 15924 tag support
      Sort options for clarity
      [hb-view] Support --features
      [hb-view] Add --debug
      [hb-view] Use cached hb-ft face creation
      [hb-view] Rewrite --features parsing, with range support
      [hb-view] setlocale (LC_ALL, "")
      Disable 'cswh' by default except for Arabic shaper
      Update TODO items
      Add test directory
      Assert int types
      Remove warning message from public header file
      A few more ASSERTs
      Add few more paratheses to the HB_TAG macro
      Add an in-tree test suite
      Rename HB_TAG_STR() to HB_TAG_CHAR4()
      Move macros around
      Build fix
      Make hb_tag_from_string(NULL) return HB_TAG_NONE
      Make HB_TAG_CHAR4 private
      Rename hb_category_t to hb_unicode_general_category_t
      [teset] Test hb_script_t
      Make hb_language_from_string("") return NULL language
      [test] Test hb_language_t
      Fold hb-language.[ch] into hb-common.[ch]
      [test] Actually hook up hb_script_t tests
      Minor
      [TODO] Add API item
      [TODO] Add item re hb_buffer_resize()
      [TODO] Add item re hb_buffer_reset()
      [test] Test hb-buffer.h
      [TODO] Add item re script iso15924 functions
      [test] Add todo items
      Minor
      Add hb_buffer_reset() and hb_buffer_set_length()
      [test] Add more TODO items
      Make hb_language_t typesafe
      [TODO] Remove done items
      Cosmetic
      [TODO] Remove done items
      [API] Remove hb_buffer_clear()
      Remove hb_buffer_clear_positions(), add hb_ot_layout_position_start()
      Add hb_script_from_string()
      Mark internal buffer variables private
      [TODO] Add new item
      Move enum types to hb-common.h
      Change buffer default properties to invalid
      [API] Use ISO 15924 tags for hb_script_t
      [API] Add hb_buffer_allocation_successful()
      [API] Rename hb_buffer_add_glyph() to hb_buffer_add()
      Cosmetic
      unicode: Cleanup implementation
      Remove verbose comments
      [glib] Add two-way script conversion functions
      [icu] Add two-way script conversion functions
      [test] Rename test-types to test-common
      [API] blob: move user_data before destroy()
      [API] font: move user_data before destroy()
      [test] Add todo items
      [test] Add test for headers included from C and C++
      Minor
      [OT] Fix script to ot-script-tag conversion
      [API] Remove hb_*_get_reference_count()
      [TODO] Remove done items
      [API] Rename hb_face_get_table() to hb_face_reference_table()
      [API] Make hb_face_reference_table() return empty blob instead of NULL
      [TODO] Remove done items
      Rename hb-blob.c to hb-blob.cc in preparation of more changes
      Rename all private sources and headers to C++ files
      Move hb_reference_count_t from macros to inline methods
      [icu] Remove big script switch(), rely on reverse-lookup
      [API] Allow negative font x_scale/y_scale
      [TODO] Remove finished items
      Cleanup hb_refrence_count_t
      Add ASSERT_STATIC_EXPR macro
      Remove obsolete comment
      [hb-view] Accept numbers in feature tag name
      Update Copyright headers
      Move hb_reference_count_t to hb-private.h
      Add hb_object_header_t which is the common part of all objects
      Further simplify object handling
      Don't return in void function
      Add TODO item
      Replace simple macros with inline functions for better type safety
      [API] Add hb_unicode_funcs_get_default()
      Make buffer size growth start from 32 instead of 8
      [TODO] Add hb-view items
      Rename hb-view.c and test.c to .cc files
      [API] Add hb_direction_from/to_string()
      GNOME Bug 612402 - (hb-arm) HarfBuzz compilation fix for arm
      [object] Add tracing support back in
      [blob] Use HB_FUNC instead of __FUNCTION__
      [object] Remove unnecessary use of macros
      Add initial implementation of user_data to objects
      Move code around
      [API] Add _set/get_user_data() for all objects
      [test/buffer] Test reverse() and reverse_clusters()
      [test/buffer] Test reset(), set_length(), and set/get_unicode_data()
      [test/buffer] Add test pre_alloc(); hangs in the buffer code right now
      [buffer] More error handling
      Fix possible but improbable overflow in hb_array_t
      [test/buffer] Test pre_allocate() and allocation_successful()
      Desable possibly lethal test on 64-bit machines
      Add _hb_unsigned_int_mul_overflows
      [TODO] Remove finished items
      [API Remove hb_font_funcs_copy()
      Add test suite infrastructure
      [test/buffer] Add initial utf-8 tests
      [test/buffer] Add more extensive UTF-8 test data from glib
      [test/buffer] Add UTF-16 tests
      [test/unicode] Use text fixture instead of static variables
      [test/unicode] Test is/make_immutable()
      [test/unicode] Add testing of all unicode properties
      Minor
      [test/unicode] Add log messages
      ISO 15924 fixes
      [icu] Make sure we return script UNKNOWN instead of INVALID
      Minor
      [test/buffer] Clean up testing
      [test/unicode] Test Unicode 5.2+ but don't fail
      [test/unicode] Port the _custom test to test all property setters
      [test/unicode] Better test chainup
      [test/unicode] Add script roundtrip tests for glib and ICU
      [unicode] Make _get_parent() return _nil object instead of NULL
      Cosmetic
      [buffer] Fail in _create() if we cannot pre-allocate the requested size
      [face] Return nil face if blob is inert
      [API] Rename hb_blob_create_empty() to hb_blob_get_empty()
      Cosmetic
      [test/object] Add test for object lifecycle stuff
      [object] Fix bug in get_user_data() implementation
      Fix bug in map implementation
      Fix bug in array growth implementation
      Protect NULL in a couple places
      [API] Make hb_font_create() take a face and reference it
      Cosmetic
      Add hb_mutex_free() and use it
      Implement win32 thread-safety stuff
      [blob] Implement sub_blob() in terms of create()
      Refactor to keep hb-object-private.h and hb-open-type.h separate
      Move Win32 thread-safety stuff to hb-object-private.h
      [ft] Fix font->face handling
      Move code around
      Add hb_static_mutex_t
      Make hb_mutex_*() macros take a pointer
      Make array/map implementation more generic
      Replace hb_map_t with hb_set_t which is more intuitive and flexible
      Minor
      Replace fixed-size feature_infos array with hb_array_t
      Replace fixed-size feature_maps array with hb_array_t
      Replace fixed-size lookup_maps array with hb_array_t
      [TODO] Remove done items
      Move code around
      Use hb_array_t for hb_language_t mapping
      Add hb_threadsafe_set_t
      Use threadsafe set implementation for hb_language lookups
      Shrink code
      Make user_data access threadsafe
      [buffer] Remove wrong optimization
      Fix build with older glib
      Add AC_CANONICAL_HOST
      Remove win32-dll libtool flag
      Add disable-static libtool flag
      [API] Add version macros and functions
      [API] Add hb_language_get_default()
      Add note re deadlocks
      Remove unused hb_blob_try_writable_inplace()
      [TODO] Update
      Add -Bsymbolic-functions to linker flags
      [API] Simplify blob API, remove lock
      [test] Test blob API
      [test/blob] Add create_sub_blob()
      [test/blob] Fix bug in test
      Add DOAP file
      [test/object] Test user_data with destroy() callback that calls user_data
      [test] Always initialize gthread such that our mutex() stuff is tested
      Fix set implementation to be truly threadsafe even with destroy() callbacks
      Remove duplicate atomic_int implementation
      Fix build without mutex
      Add hb_font_make/is_immutable()
      [API] Remove broken-by-design hb_font_unset_funcs()
      [font] Fix internal sign of x/y_scale
      [API] Add hb_font_create_sub_font() and hb_font_get_parent()
      [API] Remove font_funcs func getter functions
      Whitespace
      [API] Pass down closure user_data to font funcs
      Make default font-funcs chain-up to the parent
      Remove hb_ot_layout_context_t, simplify code
      Minor
      [font] Do user-space conversion when chaining up to parent font
      [API] Change signature of get_contour_point and get_kerning ffuncs
      Minor
      Add maxp table
      Minor
      [unicode] Simplify method setting
      Plug leaks
      Plug more leaks
      Minor
      [API] Add HB_UNTAG()
      [API] Add hb_*_get_empty() for all objects
      [TODO] Update
      [test] Add tests for _get_empty() funcs
      Remove unused hb_mutex_trylock()
      Streamline mutex stuff
      Free static mutex'es
      Fix compile with no mutex available
      Minor
      Use constructor/destructor for hb_ot_shape_plan_t
      Remove hb_static_threadsafe_set_t
      Remove unused hb_set_t
      [API] Add hb_ot_layout_substitute_start/finish()
      [API] Rename hb_face_create_for_data() to hb_face_create()
      [test/font] Start adding tests for hb-font.h
      [test/font] Add test_font_properties()
      [test/font] Test get_face() / get_parent()
      [test/font] More get_empty() tests
      [test/font] More tests
      [test/font] More tests
      [API] Remove const from font user_data
      [API] Pass face to get_table()
      [test/font] Test more
      [test/font] Test empty funcs
      [test/font] Test font_funcs subclassing
      Fix font subclass chainup
      [TODO] Update
      [object] Make object inert during destruction
      [test/shape] Add simplest test for hb_shape()
      [test/blob] Use MAP_ANON instead of MAP_ANONYMOUS
      [test] Add test-shape.c.  Oops
      Rename get_kernings() arguments from first/second_glyph to left/right_glyph
      [test/shape] Check shape output
      [API] Make get_glyph() callback return a boolean
      Finish off previous change
      [API] Add hb_face_make/is_immutable()
      [TODO] Add items
      [test/test-ot-tag] Test hb-ot-tag.h, fix many bugs
      [API] Add HB_LANGUAGE_INVALID
      [test/ot-tag] More tests
      [test/buffer] Add more tests for nil buffer
      Minor
      [hb-view] No need to allocate an extra glyph item at the end
      [hb-view] Start work on vertical support
      Remove unnecessary TODO item
      Cosmetic
      Check for mmap()
      Minor
      [API] Add support for vertical text
      [API] Vertical support, take 2
      Minor
      Cosmetic
      Vertical: Adjust origin in glyph_extents() and glyph_contour_point()
      [hb-view] Add --annotate
      More vertical
      [Vertical] GPOS is always done with horizontal origin
      [Vertical] Do fallback origin calculation
      [Vertical] Fix GPOS y-advance direction
      [Vertical] GPOS x/y advance adjustments only apply in hori/vert respectively
      [TODO] Update
      [Vertical] fix vertical gpos
      [test] Update to API changes
      [API] One last font-funcs API change
      [TODO] Add item
      Update README, etc
      Add libtool versioning
      [test/version] Test hb-version.h
      [test] Add test-symbols that checks API symbol text coverage
      [test] Switch to automake-based test-runner
      [test/unicode] Fix double-free
      Hide internal symbols
      [test] Rename test-symbols to check-symbols
      [test-common] Test hb_direction_to_string()
      Release 0.6.0.  First official tarball release!

Bradley Grainger (1):
      Fix #pragma message for MSVC.

Darin Adler (1):
      Remove stray semicolon.

Eric Mader (3):
      Add modules modules/indic/indic-xft.c, indic-ot.c, indic-ot.h,
      Don't fail when reading an empty script.
      Correctly handle back, new_advance.

Hans Breuer (3):
      moved pango_fc_* to the latter where they live on *nix too.
      if PANGO_MODULE_PREFIX is defined include the basic backend shaper (should
      updated

Havoc Pennington (1):
      header to abstract the difference between FreeType 2.0.3 and 2.0.4 error

James Henstridge (1):
      make similar changes to the ones on glib head (call gtk-docize, etc).

Javier Jardón (1):
      Bug 31174 - Update autotools configuration

Jeff Muizelaar (2):
      Include the tags from the Apple specification for TrueType fonts
      HB_UNUSED is unneeded on static inline functions

Manish Singh (1):
      Get rid of unnecessary casts for g_object_{ref,unref}

Martin Hosken (8):
      Rename classes from Grxxx to HbGrxxx
      Rename Grxxx to HbGrxxx
      Add graphical output to hbtestfont
      Merge branch 'master' of git://git.freedesktop.org/~behdad/harfbuzz-ng
      Add fontconfig to hbtestfont
      Tidy up hbtestfont and add README
      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.
      Fixes to Python and Graphite from Martin

Matthias Clasen (2):
      Remove declarations of unimplemented functions
      Add docs.

Owen Taylor (68):
      Since Xft may only be available statically without shlib deps, check for
      Release 0.14
      Remove excess call to DONE_Stream left over from conversion from FT1.
      Use ISO C99 varargs when available.
      Up to 0.19.
      Uncomment GPOS parts.
      In Load_ChainContextSubst2, handle the case where an empty class
      Add compatibility defines for changes in FreeType 2.1.0.
      Fix acess outside of a loaded frame and some memory leaks on failure.
      on Jun  3 18:56:09 2002  Owen Taylor  <otaylor-H+wXaHxf7aLQT0dZR+AlfA <at> public.gmane.org>
      Offset to MarkAttachClassDef is offset to table, not offset to offset to
      Start of merges from freetype1 of OpenType fixes.
      ligatures can be also used in MarkBasePos lookups. (2001-03-17 Werner
      Export TT_New_GDEF_Table to create an empty GDEF table.
      Up the FreeType version requirement to 2.0.9. (2.2.1 had a compilation
      Add an --enable-debug configure argument defaulting to 'yes' for unstable
      Fix infinite loop in the case where the charmap contains a character >
      Fix confusion between boolean and FT_Error return. (#108358, Noah Levitt)
      Fix mispelled constant from last commit.
      When loading in Load_Chain{Sub,Pos}ClassRule, the limit we have only
      More careful handling of face->charmap; if is NULL, try to set a unicode
      Fix uses of g_assert() around statements with side effects. (#115498,
      Improvements to OpenType-dumping code, based on changes in Qt by Lars
      Fix a couple of places where TTO_Err_Not_Covered wasn't considered a
      Add GPOS_LOOKUP_EXTENSION, GSUB_LOOKUP_EXTENSION, which allow lookup
      Update of GPOS and GSUB support to OpenType 1.3 (From FreeType, Werner
      OpenType-1.4 update: backtrack information is stored with the item closest
      Fix some FreeType1 variable declarations that snuck in from the last
      If applying a ligature lookup makes adjacent two glyphs that were not
      Fix additional places where TTO_Err_Not_Covered wasn't considered a
      Fix various memory leaks from error returns that should have been jumps to
      Move allocation afer initial checks, fixing memory leak.
      Fix confusion between boolean and FT_Error return. (GSUB equivalent of fix
      Fix return value to only contain TTO_Err_Not_Covered if *no* lookups
      Check for lookahead glyphs in the right place. (Patch from #116860)
      Revert back out the FreeType patch preventing ligatures of not-originally
      Rewrite handling of IGNORE_SPECIAL_MARKS to be properly "ignore marks of
      Add some macro definitions for gcc-3.3 that suppress the bogus
      pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3) Fix problems where
      Fix gcc-3.3 versions of macros to have the right return value.
      Switch over to recommended Freetype system of include ft2build.h then
      Suport CFF fonts as well. (#131202, Manjunath Sripadarao)
      Memory leak fixes from Masatake YAMATO, #130652
      Sign convention for y offsets is opposite between PangoGlyphString and FT
      Rework opentype interfaces and other changes to make GPOS work for Arabic.
      === Released 1.4.0 ===
      Free buffer->positions, clean up error returns that were returning
      Revert error return changes from last commit.
      Use the gcc-3.3 strict-aliasing compatible macros from fterrcompat.h
      #143693, Sayamindu Dasgupta
      Fix pervasive buffer overruns when skipping glyphs when matching contexts.
      Add support for ChainContextSubstFormat3.
      Make Check_Property() take a OTL_GlyphItem, add a gproperties field to
      Match backtrack context against the output glyphs not the input glyphs
      Add missing macro to make the last change actually compile.
      Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros.
      Fix allocation and indexing in NewGlyphClasses array. (#130661, Masatake
      Save the order in which features were added and use that when applying
      Finish extending properties flags from FT_UShort => FT_UInt. (OTLBuffer
      === Released 1.6.0 ===
      Cleanups from 'sparse', #149922, Kjartan Maraas
      Set G_LOG_DOMAIN.
      For all binary searches, handle the case where the number of items is 0.
      Chain up from finalize. (#307547, Paolo Borelli)
      Fix up places where there is missing or incomplete Copyright and License
      Patch from David Turner. Review and testing by Behdad Esfahbod
      Remove an unecessary set of block2.
      Skip lookups with lookup index out of range. (Patch from Behdad Esfahbod,

Ryan Lortie (3):
      [API} hb_buffer_get_glyph_{infos,positions}: Add length out parameter
      [API] Rename hb_buffer_ensure() to hb_buffer_pre_allocate()
      [API] unicode: rework virtual functions for subclassing

Sebastian Wilhelmi (2):
      Resuming aborted commit
      Do not add GLIB_CFLAGS to CFLAGS.

Theppitak Karoonboonyanan (1):
      Negate y offset according to different conventions between

Tor Lillqvist (4):
      Only a script engine here.
      pango/makefile.mingw.in pango/mini-fribidi/makefile.mingw Remove. Not
      Remove. Not used. (A static library is built here. Exported entries are in
      Rename LDADDS to libpango_ot_la_LIBADD to actually make libpango-ot.la

_______________________________________________
HarfBuzz mailing list
HarfBuzz <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Behdad Esfahbod | 4 Mar 21:33 2015

harfbuzz: Changes to 'refs/tags/pango-start'

Tag 'pango-start' created by Behdad Esfahbod <behdad <at> behdad.org> at 2009-11-02 19:48 -0800

Start of the tree extracted from pango/pango/opentype
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkrvN38ACgkQn+4E5dNTERWGvQCbBy/VEfxmL/8P3aGwV9AGj4Y4
dqcAniwNx0Mq9osIV2mhxhuoGyZniTz0
=Bh9F
-----END PGP SIGNATURE-----

Changes since the dawn of time:
Owen Taylor (1):
      Since Xft may only be available statically without shlib deps, check for

_______________________________________________
HarfBuzz mailing list
HarfBuzz <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Behdad Esfahbod | 4 Mar 21:33 2015

harfbuzz: Changes to 'refs/tags/pango-extractpoint'

Tag 'pango-extractpoint' created by Behdad Esfahbod <behdad <at> behdad.org> at 2009-11-02 19:51 -0800

Git surgery to extract harfbuzz-ng out of Pango tree

Merged older harfbuzz-ng tree into it to preserve history.
Still hasn't merged with upstream harfbuzz tree though.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkrvOGMACgkQn+4E5dNTERUeZgCfcXnCO8EwMGE/g0TLgtxa8J2A
7mEAn3Rkl+1LqVIPYmm2roip7zMyC8fO
=xMzq
-----END PGP SIGNATURE-----

Changes since ng-mergepoint-310:
---
 0 files changed
---
_______________________________________________
HarfBuzz mailing list
HarfBuzz <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Behdad Esfahbod | 4 Mar 21:33 2015

harfbuzz: Changes to 'refs/tags/hb-rename'

Tag 'hb-rename' created by Behdad Esfahbod <behdad <at> behdad.org> at 2009-11-02 19:44 -0800

Rename FTXLayout code to HarfBuzz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkrvNpsACgkQn+4E5dNTERWCrgCaA1rAcMQl0Z1s9lBs2X/+sZ47
8YEAn3TS0f2wBRAXk3reFc609qR3lEFE
=CbgE
-----END PGP SIGNATURE-----

Changes since the dawn of time:
Behdad Esfahbod (22):
      Fix bug to copy glyph from in_string, not out_string.
      Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros.
      Replace perror with perror_. Remove FT_BEGIN_STMNT and FT_END_STMNT.
      Generate valid XML output. Dump LookupFlag too.
      Patches from #170414. Reviewed by Matthias Clasen.
      Turn various gcc warnings off. Adding const, adding static, fully
      Remove debug line that got in accidentally.
      Part of #101079:
      Reworked basic shaper with OpenType support. (#101079, based on patch from
      Protect against possible division by zeros (#316468, Steve Grubb)
      Added "Since:" tags to all interfaces added after Pango 1.0. (#319116,
      Fix typo in docs.
      Tiny doc improvement.
      Use g_slice for PangoOTBuffer allocation. (bug #325026, Matthias Clasen)
      pango/Makefile.am, pango/fonts.c, pango/glyphstring.c,
      Make sure #include <config.h> is the first include in the file. (bug
      If major.minor of required and available glib versions are the same, add
      Removed.
      Handle GSUB Lookup type 8, and ReverseChainContextualSubst table. (bug
      === Released 1.12.0 ===
      Don't err on Table_Missing.
      Convert pango/opentype to the new project called HarfBuzz.

Darin Adler (1):
      Remove stray semicolon.

Eric Mader (3):
      Add modules modules/indic/indic-xft.c, indic-ot.c, indic-ot.h,
      Don't fail when reading an empty script.
      Correctly handle back, new_advance.

Hans Breuer (2):
      moved pango_fc_* to the latter where they live on *nix too.
      if PANGO_MODULE_PREFIX is defined include the basic backend shaper (should

Havoc Pennington (1):
      header to abstract the difference between FreeType 2.0.3 and 2.0.4 error

James Henstridge (1):
      make similar changes to the ones on glib head (call gtk-docize, etc).

Manish Singh (1):
      Get rid of unnecessary casts for g_object_{ref,unref}

Matthias Clasen (2):
      Remove declarations of unimplemented functions
      Add docs.

Owen Taylor (68):
      Since Xft may only be available statically without shlib deps, check for
      Release 0.14
      Remove excess call to DONE_Stream left over from conversion from FT1.
      Use ISO C99 varargs when available.
      Up to 0.19.
      Uncomment GPOS parts.
      In Load_ChainContextSubst2, handle the case where an empty class
      Add compatibility defines for changes in FreeType 2.1.0.
      Fix acess outside of a loaded frame and some memory leaks on failure.
      on Jun  3 18:56:09 2002  Owen Taylor  <otaylor <at> redhat.com>
      Offset to MarkAttachClassDef is offset to table, not offset to offset to
      Start of merges from freetype1 of OpenType fixes.
      ligatures can be also used in MarkBasePos lookups. (2001-03-17 Werner
      Export TT_New_GDEF_Table to create an empty GDEF table.
      Up the FreeType version requirement to 2.0.9. (2.2.1 had a compilation
      Add an --enable-debug configure argument defaulting to 'yes' for unstable
      Fix infinite loop in the case where the charmap contains a character >
      Fix confusion between boolean and FT_Error return. (#108358, Noah Levitt)
      Fix mispelled constant from last commit.
      When loading in Load_Chain{Sub,Pos}ClassRule, the limit we have only
      More careful handling of face->charmap; if is NULL, try to set a unicode
      Fix uses of g_assert() around statements with side effects. (#115498,
      Improvements to OpenType-dumping code, based on changes in Qt by Lars
      Fix a couple of places where TTO_Err_Not_Covered wasn't considered a
      Add GPOS_LOOKUP_EXTENSION, GSUB_LOOKUP_EXTENSION, which allow lookup
      Update of GPOS and GSUB support to OpenType 1.3 (From FreeType, Werner
      OpenType-1.4 update: backtrack information is stored with the item closest
      Fix some FreeType1 variable declarations that snuck in from the last
      If applying a ligature lookup makes adjacent two glyphs that were not
      Fix additional places where TTO_Err_Not_Covered wasn't considered a
      Fix various memory leaks from error returns that should have been jumps to
      Move allocation afer initial checks, fixing memory leak.
      Fix confusion between boolean and FT_Error return. (GSUB equivalent of fix
      Fix return value to only contain TTO_Err_Not_Covered if *no* lookups
      Check for lookahead glyphs in the right place. (Patch from #116860)
      Revert back out the FreeType patch preventing ligatures of not-originally
      Rewrite handling of IGNORE_SPECIAL_MARKS to be properly "ignore marks of
      Add some macro definitions for gcc-3.3 that suppress the bogus
      pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3) Fix problems where
      Fix gcc-3.3 versions of macros to have the right return value.
      Switch over to recommended Freetype system of include ft2build.h then
      Suport CFF fonts as well. (#131202, Manjunath Sripadarao)
      Memory leak fixes from Masatake YAMATO, #130652
      Sign convention for y offsets is opposite between PangoGlyphString and FT
      Rework opentype interfaces and other changes to make GPOS work for Arabic.
      === Released 1.4.0 ===
      Free buffer->positions, clean up error returns that were returning
      Revert error return changes from last commit.
      Use the gcc-3.3 strict-aliasing compatible macros from fterrcompat.h
      #143693, Sayamindu Dasgupta
      Fix pervasive buffer overruns when skipping glyphs when matching contexts.
      Add support for ChainContextSubstFormat3.
      Make Check_Property() take a OTL_GlyphItem, add a gproperties field to
      Match backtrack context against the output glyphs not the input glyphs
      Add missing macro to make the last change actually compile.
      Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros.
      Fix allocation and indexing in NewGlyphClasses array. (#130661, Masatake
      Save the order in which features were added and use that when applying
      Finish extending properties flags from FT_UShort => FT_UInt. (OTLBuffer
      === Released 1.6.0 ===
      Cleanups from 'sparse', #149922, Kjartan Maraas
      Set G_LOG_DOMAIN.
      For all binary searches, handle the case where the number of items is 0.
      Chain up from finalize. (#307547, Paolo Borelli)
      Fix up places where there is missing or incomplete Copyright and License
      Patch from David Turner. Review and testing by Behdad Esfahbod
      Remove an unecessary set of block2.
      Skip lookups with lookup index out of range. (Patch from Behdad Esfahbod,

Sebastian Wilhelmi (2):
      Resuming aborted commit
      Do not add GLIB_CFLAGS to CFLAGS.

Theppitak Karoonboonyanan (1):
      Negate y offset according to different conventions between

Tor Lillqvist (4):
      Only a script engine here.
      pango/makefile.mingw.in pango/mini-fribidi/makefile.mingw Remove. Not
      Remove. Not used. (A static library is built here. Exported entries are in
      Rename LDADDS to libpango_ot_la_LIBADD to actually make libpango-ot.la

_______________________________________________
HarfBuzz mailing list
HarfBuzz <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Behdad Esfahbod | 4 Mar 21:33 2015

harfbuzz: Changes to 'refs/tags/0.9.39'

Tag '0.9.39' created by Behdad Esfahbod <behdad <at> behdad.org> at 2015-03-04 20:32 -0800

0.9.39
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEABECAAYFAlT3a9EACgkQn+4E5dNTERXBbgCeI/g6HipCeGX/1DdNxh5rs2Bl
dVIAoLjIwdeKEid5/n/qPF7nck9xU0Hk
=mzLJ
-----END PGP SIGNATURE-----

Changes since 0.9.38-60:
---
 0 files changed
---
_______________________________________________
HarfBuzz mailing list
HarfBuzz <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Behdad Esfahbod | 4 Mar 21:33 2015

harfbuzz: Changes to 'refs/tags/ng-start'

Tag 'ng-start' created by Behdad Esfahbod <behdad <at> behdad.org> at 2009-11-02 19:49 -0800

Start of the rewritten harfbuzz-ng tree
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkrvN7oACgkQn+4E5dNTERV9lACfeP83aRYnQkJLvssyNwyJk0Jz
NrwAnAq6NHj74nQrxuOjdoj1cjPwEg9X
=agHa
-----END PGP SIGNATURE-----

Changes since the dawn of time:
Behdad Esfahbod (1):
      First version.

_______________________________________________
HarfBuzz mailing list
HarfBuzz <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/harfbuzz
Behdad Esfahbod | 4 Mar 21:33 2015

harfbuzz: Changes to 'refs/tags/ng-mergepoint'

Tag 'ng-mergepoint' created by Behdad Esfahbod <behdad <at> behdad.org> at 2009-11-02 19:48 -0800

Merge harfbuzz-ng
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEABECAAYFAkrvN5sACgkQn+4E5dNTERVc5QCgmeXhg6M77lF6GmH2oLvamTcL
or4AnAkpS8lj3NaLUteDjqzUcZsMGOKj
=VoUY
-----END PGP SIGNATURE-----

Changes since hb-rename-64:
---
 0 files changed
---
_______________________________________________
HarfBuzz mailing list
HarfBuzz <at> lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/harfbuzz

Gmane