[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[graphite2] 11/69: Imported Upstream version 1.0.2



This is an automated email from the git hooks/post-receive script.

rene pushed a commit to branch master
in repository graphite2.

commit 926c049b0c3fcc6cc492a15fb6a4497f54382600
Author: Rene Engelhard <rene@debian.org>
Date:   Thu Apr 21 14:48:41 2016 +0200

    Imported Upstream version 1.0.2
---
 .hg_archival.txt                                   |   4 +-
 .hgtags                                            |   3 +
 CMakeLists.txt                                     |  11 +-
 COPYING                                            |   4 +-
 ChangeLog                                          |   9 +
 contrib/android/jni/Android.mk                     |   4 +-
 contrib/android/jni/graphite_layer.cpp             |   4 +-
 contrib/android/jni/load.cpp                       |   4 +-
 contrib/android/jni/load.h                         |   4 +-
 contrib/android/jni/load_gr.h                      |   4 +-
 contrib/android/jni/loadgr_jni.cpp                 |   4 +-
 contrib/android/src/org/sil/palaso/Graphite.java   |   4 +-
 .../src/org/sil/palaso/helloworld/HelloWorld.java  |   4 +-
 contrib/perl/lib/Text/Graphite2.pm                 |   4 +-
 debian-src/copyright                               |  13 +-
 doc/calling.txt                                    |  35 ++
 doc/hacking.txt                                    |   8 -
 doc/intro.txt                                      |  11 +-
 gr2fonttest/gr2FontTest.cpp                        |   4 +-
 include/graphite2/Font.h                           |   4 +-
 include/graphite2/Segment.h                        |   4 +-
 include/graphite2/Types.h                          |   4 +-
 include/graphite2/XmlLog.h                         |   4 +-
 src/Bidi.cpp                                       | 416 ++++++++++-----------
 src/CMakeLists.txt                                 |   4 +-
 src/CachedFace.cpp                                 |   4 +-
 src/CachedFace.h                                   |   4 +-
 src/CharInfo.h                                     |   4 +-
 src/CmapCache.cpp                                  |   4 +-
 src/CmapCache.h                                    |   4 +-
 src/Code.cpp                                       |   4 +-
 src/Code.h                                         |   4 +-
 src/Face.cpp                                       |   4 +-
 src/Face.h                                         |   4 +-
 src/FeatureMap.cpp                                 |   4 +-
 src/FeatureMap.h                                   |   4 +-
 src/FeatureVal.h                                   |   4 +-
 src/Font.cpp                                       |   4 +-
 src/Font.h                                         |   7 +-
 src/GlyphFace.cpp                                  |   4 +-
 src/GlyphFace.h                                    |   4 +-
 src/GlyphFaceCache.cpp                             |   4 +-
 src/GlyphFaceCache.h                               |   4 +-
 src/List.h                                         |   4 +-
 src/Machine.h                                      |   4 +-
 src/Main.h                                         |   8 +-
 src/NameTable.cpp                                  |   4 +-
 src/NameTable.h                                    |   4 +-
 src/Pass.cpp                                       |   4 +-
 src/Pass.h                                         |   4 +-
 src/Position.h                                     |   4 +-
 src/Rule.cpp                                       |  35 +-
 src/Rule.h                                         |  39 +-
 src/SegCache.cpp                                   |   4 +-
 src/SegCache.h                                     |   4 +-
 src/SegCacheEntry.cpp                              |   4 +-
 src/SegCacheEntry.h                                |   4 +-
 src/SegCacheStore.cpp                              |   4 +-
 src/SegCacheStore.h                                |   4 +-
 src/Segment.cpp                                    |  12 +-
 src/Segment.h                                      |   4 +-
 src/Silf.cpp                                       |   9 +-
 src/Silf.h                                         |   4 +-
 src/Slot.cpp                                       |   4 +-
 src/Slot.h                                         |   4 +-
 src/Sparse.cpp                                     |   4 +-
 src/Sparse.h                                       |   4 +-
 src/TtfTypes.h                                     |   8 +-
 src/TtfUtil.cpp                                    |  21 +-
 src/TtfUtil.h                                      |  18 +-
 src/XmlTraceLog.cpp                                |   4 +-
 src/XmlTraceLog.h                                  |   4 +-
 src/XmlTraceLogTags.cpp                            |   4 +-
 src/XmlTraceLogTags.h                              |   4 +-
 src/call_machine.cpp                               |   4 +-
 src/direct_machine.cpp                             |   4 +-
 src/files.mk                                       |   4 +-
 src/gr_char_info.cpp                               |   4 +-
 src/gr_face.cpp                                    |   4 +-
 src/gr_features.cpp                                |   4 +-
 src/gr_font.cpp                                    |   4 +-
 src/gr_logging.cpp                                 |   4 +-
 src/gr_segment.cpp                                 |   4 +-
 src/gr_slot.cpp                                    |   4 +-
 src/locale2lcid.h                                  |   4 +-
 src/opcode_table.h                                 |   4 +-
 src/opcodes.h                                      |   4 +-
 src/processUTF.h                                   |   4 +-
 tests/comparerenderer/CompareRenderer.cpp          |   4 +-
 tests/comparerenderer/FeatureParser.h              |   4 +-
 tests/comparerenderer/Gr2Renderer.h                |   4 +-
 tests/comparerenderer/GrRenderer.h                 |   4 +-
 tests/comparerenderer/HbNgRenderer.h               |  10 +-
 tests/comparerenderer/HbRenderer.h                 |   4 +-
 tests/comparerenderer/IcuRenderer.h                |   4 +-
 tests/comparerenderer/RenderedLine.h               |   4 +-
 tests/comparerenderer/Renderer.h                   |   4 +-
 tests/comparerenderer/RendererOptions.h            |   4 +-
 tests/comparerenderer/UniscribeRenderer.h          |   4 +-
 tests/featuremap/featuremaptest.cpp                |   4 +-
 tests/nametabletest/nametabletest.cpp              |   4 +-
 tests/segcache/segcachetest.cpp                    |   4 +-
 102 files changed, 548 insertions(+), 461 deletions(-)

diff --git a/.hg_archival.txt b/.hg_archival.txt
index 42a9630..c350104 100644
--- a/.hg_archival.txt
+++ b/.hg_archival.txt
@@ -1,5 +1,5 @@
 repo: 999e2033695c3bcf2f65d611737ac9008805bd58
-node: 0580ac256e07c7347b3ee4f8dcbb91d1b20d86fe
+node: aaa88521e9abb8542b45498dd840fd4653ccbd71
 branch: default
-latesttag: 1.0.1
+latesttag: 1.0.2
 latesttagdistance: 1
diff --git a/.hgtags b/.hgtags
index 95f4c06..a1cb6d6 100644
--- a/.hgtags
+++ b/.hgtags
@@ -10,3 +10,6 @@ bedb05f72d56f24ca0fc333fd14eabb1ec553902 1.0.1
 0000000000000000000000000000000000000000 1.0.1
 0000000000000000000000000000000000000000 1.0.1
 01df4f7cc7b0f31f8490b4246b298ac10d92675e 1.0.1
+0fa690ff089ce0bc382a553cc01c0b721fbdee5c 1.0.2
+0fa690ff089ce0bc382a553cc01c0b721fbdee5c 1.0.2
+b10bcaf1302411513a5961d1854ff8c02e5ad5e6 1.0.2
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 51bd54f..265ec7d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,10 +1,13 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)
 cmake_policy(SET CMP0012 NEW)
 include(CMakeDependentOption)
+include(TestBigEndian)
 
 project(graphite2)
 set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
-set_property(CACHE CMAKE_BUILD_TYPE PROPERTY VALUE Release)
+if (NOT CMAKE_BUILD_TYPE)
+    set_property(CACHE CMAKE_BUILD_TYPE PROPERTY VALUE Release)
+endif (NOT CMAKE_BUILD_TYPE)
 
 enable_language(CXX C)
 
@@ -50,6 +53,12 @@ if (VM_MACHINE_TYPE STREQUAL "direct" AND NOT CMAKE_COMPILER_IS_GNUCXX)
 endif (VM_MACHINE_TYPE STREQUAL "direct" AND NOT CMAKE_COMPILER_IS_GNUCXX)
 message(STATUS "Using vm machine type: ${VM_MACHINE_TYPE}")
 
+TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
+if (WORDS_BIGENDIAN)
+    add_definitions(-DWORDS_BIGENDIAN)
+endif (WORDS_BIGENDIAN)
+
+
 add_subdirectory(src)
 add_subdirectory(gr2fonttest)
 add_subdirectory(tests)
diff --git a/COPYING b/COPYING
index 8c20188..d40f2d8 100644
--- a/COPYING
+++ b/COPYING
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, you may use this library under the terms of the Mozilla
diff --git a/ChangeLog b/ChangeLog
index 71f2ff1..c9850b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+1.0.2
+    . Fix Windows build
+    . Comparerenderer uses hbng enforcing ot rendering
+    . Add Bidi .hasChar support and refactor mirroring code
+    . Make cmake default Release rather than debug
+    . Don't compile in a boat load of TtfUtil that isn't used, saving 15% of binary
+    . Chase the FSF around its latest office moves
+    . WORDS_BIGENDIAN is set at the top so tests now pass on ppc, etc.
+    . More words in the manual
 1.0.1
     . Release is the default build in cmake now.
     . Refactor cmake build to not rebuild things so much.
diff --git a/contrib/android/jni/Android.mk b/contrib/android/jni/Android.mk
index e00ec81..7ae1d28 100644
--- a/contrib/android/jni/Android.mk
+++ b/contrib/android/jni/Android.mk
@@ -15,8 +15,8 @@
 # 
 #   You should also have received a copy of the GNU Lesser General Public
 #   License along with this library in the file named "LICENSE".
-#   If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-#   Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+#   If not, write to the Free Software Foundation, 51 Franklin Street, 
+#   Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
 #   internet at http://www.fsf.org/licenses/lgpl.html.
 # 
 #   Alternatively, you may use this library under the terms of the Mozilla
diff --git a/contrib/android/jni/graphite_layer.cpp b/contrib/android/jni/graphite_layer.cpp
index 2006b9a..425e9e4 100644
--- a/contrib/android/jni/graphite_layer.cpp
+++ b/contrib/android/jni/graphite_layer.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, you may use this library under the terms of the Mozilla
diff --git a/contrib/android/jni/load.cpp b/contrib/android/jni/load.cpp
index f40d4c2..5e3030e 100644
--- a/contrib/android/jni/load.cpp
+++ b/contrib/android/jni/load.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, you may use this library under the terms of the Mozilla
diff --git a/contrib/android/jni/load.h b/contrib/android/jni/load.h
index 1bcaac1..4733e41 100644
--- a/contrib/android/jni/load.h
+++ b/contrib/android/jni/load.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, you may use this library under the terms of the Mozilla
diff --git a/contrib/android/jni/load_gr.h b/contrib/android/jni/load_gr.h
index bd12abf..ae36601 100644
--- a/contrib/android/jni/load_gr.h
+++ b/contrib/android/jni/load_gr.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, you may use this library under the terms of the Mozilla
diff --git a/contrib/android/jni/loadgr_jni.cpp b/contrib/android/jni/loadgr_jni.cpp
index 64c55e6..5aabbef 100644
--- a/contrib/android/jni/loadgr_jni.cpp
+++ b/contrib/android/jni/loadgr_jni.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, you may use this library under the terms of the Mozilla
diff --git a/contrib/android/src/org/sil/palaso/Graphite.java b/contrib/android/src/org/sil/palaso/Graphite.java
index 4110665..88570da 100644
--- a/contrib/android/src/org/sil/palaso/Graphite.java
+++ b/contrib/android/src/org/sil/palaso/Graphite.java
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, you may use this library under the terms of the Mozilla
diff --git a/contrib/android/src/org/sil/palaso/helloworld/HelloWorld.java b/contrib/android/src/org/sil/palaso/helloworld/HelloWorld.java
index 3cb0890..57ee06a 100644
--- a/contrib/android/src/org/sil/palaso/helloworld/HelloWorld.java
+++ b/contrib/android/src/org/sil/palaso/helloworld/HelloWorld.java
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, you may use this library under the terms of the Mozilla
diff --git a/contrib/perl/lib/Text/Graphite2.pm b/contrib/perl/lib/Text/Graphite2.pm
index 9cd2420..3d74fec 100644
--- a/contrib/perl/lib/Text/Graphite2.pm
+++ b/contrib/perl/lib/Text/Graphite2.pm
@@ -119,8 +119,8 @@ GRAPHITE2 LICENSING
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/debian-src/copyright b/debian-src/copyright
index d22381d..0ce4945 100644
--- a/debian-src/copyright
+++ b/debian-src/copyright
@@ -5,7 +5,7 @@ All rights reserved
 Copyright:
 
     This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
+    modify it under the terms of the GNU Lesser General Public
     License as published by the Free Software Foundation; either
     version 2 of the License, or (at your option) any later version.
 
@@ -14,8 +14,9 @@ Copyright:
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     Library General Public License for more details.
 
-    On Debian systems you should have a local copy of the GNU Library
-    General Public License in /usr/share/common-licenses/LGPL-2. If you
-    downloaded the source you will find it in the file LICENSE; if not,
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+    On Debian systems you should have a local copy of the GNU Lesser
+    General Public License in /usr/share/common-licenses/LGPL. If you
+    downloaded the source you will find it in the file LICENSE; 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
+    internet at http://www.fsf.org/licenses/lgpl.html.
diff --git a/doc/calling.txt b/doc/calling.txt
index 6658658..fcfebaa 100644
--- a/doc/calling.txt
+++ b/doc/calling.txt
@@ -199,3 +199,38 @@ include::../tests/examples/linebreak.c[]
 <9> Each line is a complete linked list that we can iterate over. We can no longer iterate
     over the whole segment. We have to do it line by line now.
 
+=== Bidi ===
+
+Bidirectional processing is complex not so much because of any algorithms
+involved, but because of the tendency for applications to address bidi text
+processing differently. Some try to do everything themselves, inverting the text
+order, etc. While others do nothing, expecting the shaper to resolve all the
+orders. In addition, there is the question of mirroring characters and where
+that is done. Graphite2 adds the complexity that it tries to enable extensions
+to the bidi algorithm by giving PUA characters directionality. To facilitate all
+these different ways of working, Graphite2 uses the `rtl` attribute to pass
+various bits to control bidi processing within the Graphite engine.
+
+[width="100%",cols="^2,^3,<15",options="header"]
+|=======================================================
+|gr_nobidi  |gr_nomirror  |Description
+
+|0          |0            |
+Runs the bidi algorithm and does all mirroring
+
+|0          |1            |
+Runs the bidi algorithm and mirrors those chars that don't have char
+replacements. It also un/remirrors anything that ends up in the opposite direction
+to the stated text direction on input.
+
+|1          |0            |
+Doesn't run the bidi algorithm but does do mirroring of all characters if
+direction is rtl.
+
+|1          |1            |
+Doesn't run the bidi algorithm and only mirrors those glyphs for which there is
+no corresponding mirroring character.
+
+|=======================================================
+
+
diff --git a/doc/hacking.txt b/doc/hacking.txt
index e192245..6689fd1 100644
--- a/doc/hacking.txt
+++ b/doc/hacking.txt
@@ -52,14 +52,6 @@ types that are not classes we use malloc() or the type safe version gralloc().++
 
 There are various facilities that silgraphite provides that graphite2 as yet does not. The primary motivation in developing graphite2 is that it be use case driven. Thus only those facilities that have a proven use case in the target applications into which graphite is to be integrated will be implemented.
 
-Bidi::
-    Graphite2 follows Silgraphite in running a bidi pass if the font calls for it.
-    And this allows integration of PUA characters into the bidi reordering. But in many
-    contexts in which Graphite2 is used, the bidi algorithm has been run at the Unicode
-    text level and so the running of a bidi pass within the segment creation process is
-    redundant and a waste of time. It is possible to call make_seg() with a bit set in the
-    rtl parameter to disable the bidi pass.
-
 Justification::
     Silgraphite has the ability to handle complex justification. This is not
     part of graphite2 yet. But then neither were any external applications making use
diff --git a/doc/intro.txt b/doc/intro.txt
index d57a430..bf34f4b 100644
--- a/doc/intro.txt
+++ b/doc/intro.txt
@@ -27,8 +27,15 @@ as shaping. This process takes an input Unicode text string and returns a
 sequence of positioned glyphids from the font. There are other similar 'smart
 font' technologies including AAT and OpenType. While OpenType implementations
 are more prevalently integrated into applications than Graphite, Graphite still
-has a place. There are a number of reasons why someone might want to add
-Graphite smarts to their font:
+has a place. Graphite was developed primarily to address the generic shaping
+problem where current OpenType shaping engines do not address the specific needs
+of a font developer and the lead time on any changes to address those needs
+become prohibitive. This is a particular issue when creating solutions for some
+minority languages. In effect OpenType addresses the 80% problem and Graphite
+the 20% problem (or is that the 98% problem and the 2% problem?)
+
+There are a number of reasons why someone might want to add Graphite smarts to
+their font:
 
 - There is no consistent shaping across OpenType engines for the script and
   writing system that a font designer wants their font to support. Not all
diff --git a/gr2fonttest/gr2FontTest.cpp b/gr2fonttest/gr2FontTest.cpp
index e0825ab..0155f11 100644
--- a/gr2fonttest/gr2FontTest.cpp
+++ b/gr2fonttest/gr2FontTest.cpp
@@ -14,8 +14,8 @@ Responsibility: Keith Stribley, Martin Hosken
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/include/graphite2/Font.h b/include/graphite2/Font.h
index 6bef44a..abca683 100644
--- a/include/graphite2/Font.h
+++ b/include/graphite2/Font.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, the contents of this file may be used under the terms
diff --git a/include/graphite2/Segment.h b/include/graphite2/Segment.h
index e1a278e..01966b8 100644
--- a/include/graphite2/Segment.h
+++ b/include/graphite2/Segment.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, the contents of this file may be used under the terms
diff --git a/include/graphite2/Types.h b/include/graphite2/Types.h
index 955d09b..2ac3504 100644
--- a/include/graphite2/Types.h
+++ b/include/graphite2/Types.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, the contents of this file may be used under the terms
diff --git a/include/graphite2/XmlLog.h b/include/graphite2/XmlLog.h
index 0233739..5541327 100644
--- a/include/graphite2/XmlLog.h
+++ b/include/graphite2/XmlLog.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
     Alternatively, the contents of this file may be used under the terms
diff --git a/src/Bidi.cpp b/src/Bidi.cpp
index 83c59b7..3c3ed5f 100644
--- a/src/Bidi.cpp
+++ b/src/Bidi.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
@@ -140,14 +140,14 @@ Slot *resolveExplicit(int level, int dir, Slot *s, int nNest = 0)
 
         if (dir != N)
             cls = dir;
-	if (s)
-	{
-	    s->setBidiLevel(level);
-	    if (s->getBidiClass() != BN)
-		s->setBidiClass(cls);
-	}
-	else
-	    break;
+        if (s)
+        {
+            s->setBidiLevel(level);
+            if (s->getBidiClass() != BN)
+                s->setBidiClass(cls);
+        }
+        else
+            break;
     }
     return res;
 }
@@ -156,31 +156,31 @@ Slot *resolveExplicit(int level, int dir, Slot *s, int nNest = 0)
 
 enum bidi_state // possible states
 {
-	xa,		//	arabic letter
-	xr,		//	right leter
-	xl,		//	left letter
-
-	ao,		//	arabic lett. foll by ON
-	ro,		//	right lett. foll by ON
-	lo,		//	left lett. foll by ON
-
-	rt,		//	ET following R
-	lt,		//	ET following L
-
-	cn,		//	EN, AN following AL
-	ra,		//	arabic number foll R
-	re,		//	european number foll R
-	la,		//	arabic number foll L
-	le,		//	european number foll L
-
-	ac,		//	CS following cn
-	rc,		//	CS following ra
-	rs,		//	CS,ES following re
-	lc,		//	CS following la
-	ls,		//	CS,ES following le
-
-	ret,	//	ET following re
-	let,	//	ET following le
+        xa,             //      arabic letter
+        xr,             //      right leter
+        xl,             //      left letter
+
+        ao,             //      arabic lett. foll by ON
+        ro,             //      right lett. foll by ON
+        lo,             //      left lett. foll by ON
+
+        rt,             //      ET following R
+        lt,             //      ET following L
+
+        cn,             //      EN, AN following AL
+        ra,             //      arabic number foll R
+        re,             //      european number foll R
+        la,             //      arabic number foll L
+        le,             //      european number foll L
+
+        ac,             //      CS following cn
+        rc,             //      CS following ra
+        rs,             //      CS,ES following re
+        lc,             //      CS following la
+        ls,             //      CS,ES following le
+
+        ret,            //      ET following re
+        let,            //      ET following le
 } ;
 
 enum bidi_state_mask
@@ -209,99 +209,99 @@ enum bidi_state_mask
 
 const bidi_state stateWeak[][10] =
 {
-    	//	N,  L,  R,  AN, EN, AL,NSM, CS, ES, ET,
-{ /*xa*/	ao, xl, xr, cn, cn, xa, xa, ao, ao, ao, /* arabic letter		  */ },
-{ /*xr*/	ro, xl, xr, ra, re, xa, xr, ro, ro, rt, /* right letter 		  */ },
-{ /*xl*/	lo, xl, xr, la, le, xa, xl, lo, lo, lt, /* left letter			  */ },
+        //      N,  L,  R,  AN, EN, AL,NSM, CS, ES, ET,
+{ /*xa*/        ao, xl, xr, cn, cn, xa, xa, ao, ao, ao, /* arabic letter          */ },
+{ /*xr*/        ro, xl, xr, ra, re, xa, xr, ro, ro, rt, /* right letter           */ },
+{ /*xl*/        lo, xl, xr, la, le, xa, xl, lo, lo, lt, /* left letter            */ },
 
-{ /*ao*/	ao, xl, xr, cn, cn, xa, ao, ao, ao, ao, /* arabic lett. foll by ON*/ },
-{ /*ro*/	ro, xl, xr, ra, re, xa, ro, ro, ro, rt, /* right lett. foll by ON */ },
-{ /*lo*/	lo, xl, xr, la, le, xa, lo, lo, lo, lt, /* left lett. foll by ON  */ },
+{ /*ao*/        ao, xl, xr, cn, cn, xa, ao, ao, ao, ao, /* arabic lett. foll by ON*/ },
+{ /*ro*/        ro, xl, xr, ra, re, xa, ro, ro, ro, rt, /* right lett. foll by ON */ },
+{ /*lo*/        lo, xl, xr, la, le, xa, lo, lo, lo, lt, /* left lett. foll by ON  */ },
 
-{ /*rt*/	ro, xl, xr, ra, re, xa, rt, ro, ro, rt, /* ET following R		  */ },
-{ /*lt*/	lo, xl, xr, la, le, xa, lt, lo, lo, lt, /* ET following L		  */ },
+{ /*rt*/        ro, xl, xr, ra, re, xa, rt, ro, ro, rt, /* ET following R         */ },
+{ /*lt*/        lo, xl, xr, la, le, xa, lt, lo, lo, lt, /* ET following L         */ },
 
-{ /*cn*/	ao, xl, xr, cn, cn, xa, cn, ac, ao, ao, /* EN, AN following AL	  */ },
-{ /*ra*/	ro, xl, xr, ra, re, xa, ra, rc, ro, rt, /* arabic number foll R   */ },
-{ /*re*/	ro, xl, xr, ra, re, xa, re, rs, rs,ret, /* european number foll R */ },
-{ /*la*/	lo, xl, xr, la, le, xa, la, lc, lo, lt, /* arabic number foll L   */ },
-{ /*le*/	lo, xl, xr, la, le, xa, le, ls, ls,let, /* european number foll L */ },
+{ /*cn*/        ao, xl, xr, cn, cn, xa, cn, ac, ao, ao, /* EN, AN following AL    */ },
+{ /*ra*/        ro, xl, xr, ra, re, xa, ra, rc, ro, rt, /* arabic number foll R   */ },
+{ /*re*/        ro, xl, xr, ra, re, xa, re, rs, rs,ret, /* european number foll R */ },
+{ /*la*/        lo, xl, xr, la, le, xa, la, lc, lo, lt, /* arabic number foll L   */ },
+{ /*le*/        lo, xl, xr, la, le, xa, le, ls, ls,let, /* european number foll L */ },
 
-{ /*ac*/	ao, xl, xr, cn, cn, xa, ao, ao, ao, ao, /* CS following cn		  */ },
-{ /*rc*/	ro, xl, xr, ra, re, xa, ro, ro, ro, rt, /* CS following ra		  */ },
-{ /*rs*/	ro, xl, xr, ra, re, xa, ro, ro, ro, rt, /* CS,ES following re	  */ },
-{ /*lc*/	lo, xl, xr, la, le, xa, lo, lo, lo, lt, /* CS following la		  */ },
-{ /*ls*/	lo, xl, xr, la, le, xa, lo, lo, lo, lt, /* CS,ES following le	  */ },
+{ /*ac*/        ao, xl, xr, cn, cn, xa, ao, ao, ao, ao, /* CS following cn        */ },
+{ /*rc*/        ro, xl, xr, ra, re, xa, ro, ro, ro, rt, /* CS following ra        */ },
+{ /*rs*/        ro, xl, xr, ra, re, xa, ro, ro, ro, rt, /* CS,ES following re     */ },
+{ /*lc*/        lo, xl, xr, la, le, xa, lo, lo, lo, lt, /* CS following la        */ },
+{ /*ls*/        lo, xl, xr, la, le, xa, lo, lo, lo, lt, /* CS,ES following le     */ },
 
-{ /*ret*/ ro, xl, xr, ra, re, xa,ret, ro, ro,ret, /* ET following re		  */ },
-{ /*let*/ lo, xl, xr, la, le, xa,let, lo, lo,let, /* ET following le		  */ },
+{ /*ret*/ ro, xl, xr, ra, re, xa,ret, ro, ro,ret, /* ET following re              */ },
+{ /*let*/ lo, xl, xr, la, le, xa,let, lo, lo,let, /* ET following le              */ },
 
 
 };
 
 enum bidi_action // possible actions
 {
-	// primitives
-	IX = 0x100,					// increment
-	XX = 0xF,					// no-op
-
-	// actions
-	xxx = (XX << 4) + XX,		// no-op
-	xIx = IX + xxx,				// increment run
-	xxN = (XX << 4) + ON,		// set current to N
-	xxE = (XX << 4) + EN,		// set current to EN
-	xxA = (XX << 4) + AN,		// set current to AN
-	xxR = (XX << 4) + R,		// set current to R
-	xxL = (XX << 4) + L,		// set current to L
-	Nxx = (ON << 4) + 0xF,		// set run to neutral
-	Axx = (AN << 4) + 0xF,		// set run to AN
-	ExE = (EN << 4) + EN,		// set run to EN, set current to EN
-	NIx = (ON << 4) + 0xF + IX,	// set run to N, increment
-	NxN = (ON << 4) + ON,		// set run to N, set current to N
-	NxR = (ON << 4) + R,		// set run to N, set current to R
-	NxE = (ON << 4) + EN,		// set run to N, set current to EN
-
-	AxA = (AN << 4) + AN,		// set run to AN, set current to AN
-	NxL = (ON << 4) + L,		// set run to N, set current to L
-	LxL = (L << 4) + L,			// set run to L, set current to L
+        // primitives
+        IX = 0x100,                     // increment
+        XX = 0xF,                       // no-op
+
+        // actions
+        xxx = (XX << 4) + XX,           // no-op
+        xIx = IX + xxx,                         // increment run
+        xxN = (XX << 4) + ON,           // set current to N
+        xxE = (XX << 4) + EN,           // set current to EN
+        xxA = (XX << 4) + AN,           // set current to AN
+        xxR = (XX << 4) + R,            // set current to R
+        xxL = (XX << 4) + L,            // set current to L
+        Nxx = (ON << 4) + 0xF,          // set run to neutral
+        Axx = (AN << 4) + 0xF,          // set run to AN
+        ExE = (EN << 4) + EN,           // set run to EN, set current to EN
+        NIx = (ON << 4) + 0xF + IX,     // set run to N, increment
+        NxN = (ON << 4) + ON,           // set run to N, set current to N
+        NxR = (ON << 4) + R,            // set run to N, set current to R
+        NxE = (ON << 4) + EN,           // set run to N, set current to EN
+
+        AxA = (AN << 4) + AN,           // set run to AN, set current to AN
+        NxL = (ON << 4) + L,            // set run to N, set current to L
+        LxL = (L << 4) + L,             // set run to L, set current to L
 };
 
 
 const bidi_action actionWeak[][10] =
 {
-	  //   N,.. L,   R,  AN,  EN,  AL, NSM,  CS,..ES,  ET,
-{ /*xa*/ xxx, xxx, xxx, xxx, xxA, xxR, xxR, xxN, xxN, xxN, /* arabic letter			*/ },
-{ /*xr*/ xxx, xxx, xxx, xxx, xxE, xxR, xxR, xxN, xxN, xIx, /* right leter 			*/ },
-{ /*xl*/ xxx, xxx, xxx, xxx, xxL, xxR, xxL, xxN, xxN, xIx, /* left letter 			*/ },
-
-{ /*ao*/ xxx, xxx, xxx, xxx, xxA, xxR, xxN, xxN, xxN, xxN, /* arabic lett. foll by ON	*/ },
-{ /*ro*/ xxx, xxx, xxx, xxx, xxE, xxR, xxN, xxN, xxN, xIx, /* right lett. foll by ON	*/ },
-{ /*lo*/ xxx, xxx, xxx, xxx, xxL, xxR, xxN, xxN, xxN, xIx, /* left lett. foll by ON	*/ },
-
-{ /*rt*/ Nxx, Nxx, Nxx, Nxx, ExE, NxR, xIx, NxN, NxN, xIx, /* ET following R			*/ },
-{ /*lt*/ Nxx, Nxx, Nxx, Nxx, LxL, NxR, xIx, NxN, NxN, xIx, /* ET following L			*/ },
-
-{ /*cn*/ xxx, xxx, xxx, xxx, xxA, xxR, xxA, xIx, xxN, xxN, /* EN, AN following  AL	*/ },
-{ /*ra*/ xxx, xxx, xxx, xxx, xxE, xxR, xxA, xIx, xxN, xIx, /* arabic number foll R	*/ },
-{ /*re*/ xxx, xxx, xxx, xxx, xxE, xxR, xxE, xIx, xIx, xxE, /* european number foll R	*/ },
-{ /*la*/ xxx, xxx, xxx, xxx, xxL, xxR, xxA, xIx, xxN, xIx, /* arabic number foll L	*/ },
-{ /*le*/ xxx, xxx, xxx, xxx, xxL, xxR, xxL, xIx, xIx, xxL, /* european number foll L	*/ },
-
-{ /*ac*/ Nxx, Nxx, Nxx, Axx, AxA, NxR, NxN, NxN, NxN, NxN, /* CS following cn 		*/ },
-{ /*rc*/ Nxx, Nxx, Nxx, Axx, NxE, NxR, NxN, NxN, NxN, NIx, /* CS following ra 		*/ },
-{ /*rs*/ Nxx, Nxx, Nxx, Nxx, ExE, NxR, NxN, NxN, NxN, NIx, /* CS,ES following re		*/ },
-{ /*lc*/ Nxx, Nxx, Nxx, Axx, NxL, NxR, NxN, NxN, NxN, NIx, /* CS following la 		*/ },
-{ /*ls*/ Nxx, Nxx, Nxx, Nxx, LxL, NxR, NxN, NxN, NxN, NIx, /* CS,ES following le		*/ },
-
-{ /*ret*/xxx, xxx, xxx, xxx, xxE, xxR, xxE, xxN, xxN, xxE, /* ET following re			*/ },
-{ /*let*/xxx, xxx, xxx, xxx, xxL, xxR, xxL, xxN, xxN, xxL, /* ET following le			*/ },
+          //   N,.. L,   R,  AN,  EN,  AL, NSM,  CS,..ES,  ET,
+{ /*xa*/ xxx, xxx, xxx, xxx, xxA, xxR, xxR, xxN, xxN, xxN, /* arabic letter             */ },
+{ /*xr*/ xxx, xxx, xxx, xxx, xxE, xxR, xxR, xxN, xxN, xIx, /* right leter               */ },
+{ /*xl*/ xxx, xxx, xxx, xxx, xxL, xxR, xxL, xxN, xxN, xIx, /* left letter               */ },
+
+{ /*ao*/ xxx, xxx, xxx, xxx, xxA, xxR, xxN, xxN, xxN, xxN, /* arabic lett. foll by ON   */ },
+{ /*ro*/ xxx, xxx, xxx, xxx, xxE, xxR, xxN, xxN, xxN, xIx, /* right lett. foll by ON    */ },
+{ /*lo*/ xxx, xxx, xxx, xxx, xxL, xxR, xxN, xxN, xxN, xIx, /* left lett. foll by ON     */ },
+
+{ /*rt*/ Nxx, Nxx, Nxx, Nxx, ExE, NxR, xIx, NxN, NxN, xIx, /* ET following R            */ },
+{ /*lt*/ Nxx, Nxx, Nxx, Nxx, LxL, NxR, xIx, NxN, NxN, xIx, /* ET following L            */ },
+
+{ /*cn*/ xxx, xxx, xxx, xxx, xxA, xxR, xxA, xIx, xxN, xxN, /* EN, AN following  AL      */ },
+{ /*ra*/ xxx, xxx, xxx, xxx, xxE, xxR, xxA, xIx, xxN, xIx, /* arabic number foll R      */ },
+{ /*re*/ xxx, xxx, xxx, xxx, xxE, xxR, xxE, xIx, xIx, xxE, /* european number foll R    */ },
+{ /*la*/ xxx, xxx, xxx, xxx, xxL, xxR, xxA, xIx, xxN, xIx, /* arabic number foll L      */ },
+{ /*le*/ xxx, xxx, xxx, xxx, xxL, xxR, xxL, xIx, xIx, xxL, /* european number foll L    */ },
+
+{ /*ac*/ Nxx, Nxx, Nxx, Axx, AxA, NxR, NxN, NxN, NxN, NxN, /* CS following cn           */ },
+{ /*rc*/ Nxx, Nxx, Nxx, Axx, NxE, NxR, NxN, NxN, NxN, NIx, /* CS following ra           */ },
+{ /*rs*/ Nxx, Nxx, Nxx, Nxx, ExE, NxR, NxN, NxN, NxN, NIx, /* CS,ES following re        */ },
+{ /*lc*/ Nxx, Nxx, Nxx, Axx, NxL, NxR, NxN, NxN, NxN, NIx, /* CS following la           */ },
+{ /*ls*/ Nxx, Nxx, Nxx, Nxx, LxL, NxR, NxN, NxN, NxN, NIx, /* CS,ES following le        */ },
+
+{ /*ret*/xxx, xxx, xxx, xxx, xxE, xxR, xxE, xxN, xxN, xxE, /* ET following re           */ },
+{ /*let*/xxx, xxx, xxx, xxx, xxL, xxR, xxL, xxN, xxN, xxL, /* ET following le           */ },
 };
 
-inline uint8 	GetDeferredType(bidi_action a)		{ return (a >> 4) & 0xF; }
-inline uint8 	GetResolvedType(bidi_action a) 		{ return a & 0xF; }
-inline DirCode 	EmbeddingDirection(int l)   		{ return l & 1 ? R : L; }
-inline bool		IsDeferredState(bidi_state a) 		{ return (1 << a) & (rtmask | ltmask | acmask | rcmask | rsmask | lcmask | lsmask); }
-inline bool		IsModifiedClass(DirCode a) 			{ return (1 << a) & (ALmask | NSMmask | ESmask | CSmask | ETmask | ENmask); }
+inline uint8    GetDeferredType(bidi_action a)          { return (a >> 4) & 0xF; }
+inline uint8    GetResolvedType(bidi_action a)          { return a & 0xF; }
+inline DirCode  EmbeddingDirection(int l)               { return l & 1 ? R : L; }
+inline bool     IsDeferredState(bidi_state a)           { return (1 << a) & (rtmask | ltmask | acmask | rcmask | rsmask | lcmask | lsmask); }
+inline bool     IsModifiedClass(DirCode a)              { return (1 << a) & (ALmask | NSMmask | ESmask | CSmask | ETmask | ENmask); }
 
 void SetDeferredRunClass(Slot *s, Slot *sRun, int nval)
 {
@@ -364,73 +364,73 @@ void resolveWeak(int baseLevel, Slot *s)
 // Neutrals
 enum neutral_action
 {
-	// action to resolve previous input
-	nL = L, 		// resolve EN to L
-	En = 3 << 4,	// resolve neutrals run to embedding level direction
-	Rn = R << 4,	// resolve neutrals run to strong right
-	Ln = L << 4,	// resolved neutrals run to strong left
-	In = (1<<8),	// increment count of deferred neutrals
-	LnL = (1<<4)+L, // set run and EN to L
+        // action to resolve previous input
+        nL = L,         // resolve EN to L
+        En = 3 << 4,    // resolve neutrals run to embedding level direction
+        Rn = R << 4,    // resolve neutrals run to strong right
+        Ln = L << 4,    // resolved neutrals run to strong left
+        In = (1<<8),    // increment count of deferred neutrals
+        LnL = (1<<4)+L, // set run and EN to L
 };
 
 int GetDeferredNeutrals(int action, int level)
 {
-	action = (action >> 4) & 0xF;
-	if (action == (En >> 4))
-		return EmbeddingDirection(level);
-	else
-		return action;
+        action = (action >> 4) & 0xF;
+        if (action == (En >> 4))
+            return EmbeddingDirection(level);
+        else
+            return action;
 }
 
 int GetResolvedNeutrals(int action)
 {
-	action = action & 0xF;
-	if (action == In)
-		return 0;
-	else
-		return action;
+        action = action & 0xF;
+        if (action == In)
+            return 0;
+        else
+            return action;
 }
 
 // state values
 enum neutral_state
 {
-	// new temporary class
-	r,	// R and characters resolved to R
-	l,	// L and characters resolved to L
-	rn, // N preceded by right
-	ln, // N preceded by left
-	a,	// AN preceded by left (the abbrev 'la' is used up above)
-	na, // N preceeded by a
+        // new temporary class
+        r,  // R and characters resolved to R
+        l,  // L and characters resolved to L
+        rn, // N preceded by right
+        ln, // N preceded by left
+        a,  // AN preceded by left (the abbrev 'la' is used up above)
+        na, // N preceeded by a
 } ;
 
 const uint8 neutral_class_map[] = { 0, 1, 2, 0, 4, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0 };
 
 const int actionNeutrals[][5] =
 {
-//	N,	L,	R, AN, EN, = cls
-							// state =
-{ 	In,  0,  0,  0,  0, }, 	// r	right
-{ 	In,  0,  0,  0,  L, }, 	// l	left
+//      N,      L,      R, AN, EN, = cls
+                                // state =
+{       In,  0,  0,  0,  0, },  // r    right
+{       In,  0,  0,  0,  L, },  // l    left
 
-{ 	In, En, Rn, Rn, Rn, }, 	// rn	N preceded by right
-{ 	In, Ln, En, En, LnL, },	// ln	N preceded by left
+{       In, En, Rn, Rn, Rn, },  // rn   N preceded by right
+{       In, Ln, En, En, LnL, }, // ln   N preceded by left
 
-{ 	In,  0,  0,  0,  L, }, 	// a   AN preceded by left
-{ 	In, En, Rn, Rn, En, }, 	// na	N  preceded by a
+{       In,  0,  0,  0,  L, },  // a   AN preceded by left
+{       In, En, Rn, Rn, En, },  // na   N  preceded by a
 } ;
 
 const int stateNeutrals[][5] =
 {
-//	 N, L,	R,	AN, EN = cls
-							// state =
-{	rn, l,	r,	r,	r, },		// r   right
-{	ln, l,	r,	a,	l, },		// l   left
+//       N, L,  R,      AN, EN = cls
+                                                // state =
+{       rn, l,  r,      r,      r, },           // r   right
+{       ln, l,  r,      a,      l, },           // l   left
 
-{	rn, l,	r,	r,	r, },		// rn  N preceded by right
-{	ln, l,	r,	a,	l, },		// ln  N preceded by left
+{       rn, l,  r,      r,      r, },           // rn  N preceded by right
+{       ln, l,  r,      a,      l, },           // ln  N preceded by left
 
-{	na, l,	r,	a,	l, },		// a  AN preceded by left
-{	na, l,	r,	a,	l, },		// na  N preceded by la
+{       na, l,  r,      a,      l, },           // a  AN preceded by left
+{       na, l,  r,      a,      l, },           // na  N preceded by la
 } ;
 
 void resolveNeutrals(int baseLevel, Slot *s)
@@ -443,7 +443,7 @@ void resolveNeutrals(int baseLevel, Slot *s)
 
     for ( ; s; s = s->next())
     {
-	sLast = s;
+        sLast = s;
         cls = s->getBidiClass();
         if (cls == BN)
         {
@@ -473,15 +473,16 @@ void resolveNeutrals(int baseLevel, Slot *s)
 
 const int addLevel[][4] =
 {
-		//    L,  R,	AN, EN = cls
-							        // level =
-/* even */	{ 0,	1,	2,	2, },	// EVEN
-/* odd	*/	{ 1,	0,	1,	1, },	// ODD
+                //    L,  R,    AN, EN = cls
+                                                // level =
+/* even */      { 0,    1,      2,      2, },   // EVEN
+/* odd  */      { 1,    0,      1,      1, },   // ODD
 
 };
 
-void resolveImplicit(Slot *s)
+void resolveImplicit(Slot *s, Segment *seg, uint8 aMirror)
 {
+    bool rtl = seg->dir() & 1;
     for ( ; s; s = s->next())
     {
         int cls = s->getBidiClass();
@@ -492,7 +493,18 @@ void resolveImplicit(Slot *s)
         if (cls < 5 && cls > 0)
         {
             int level = s->getBidiLevel();
-            s->setBidiLevel(level + addLevel[level & 1][cls - 1]);
+            level += addLevel[level & 1][cls - 1];
+            s->setBidiLevel(level);
+            if (aMirror)
+            {
+                int hasChar = seg->glyphAttr(s->gid(), aMirror + 1);
+                if ( ((level & 1) && (!(seg->dir() & 4) || !hasChar)) 
+                  || ((rtl ^ (level & 1)) && (seg->dir() & 4) && hasChar) )
+                {
+                    unsigned short g = seg->glyphAttr(s->gid(), aMirror);
+                    if (g) s->setGlyph(seg, g);
+                }
+            }
         }
     }
 }
@@ -513,70 +525,52 @@ void resolveWhitespace(int baseLevel, Segment *seg, uint8 aBidi, Slot *s)
 inline
 Slot * join(int level, Slot * a, Slot * b)
 {
-	if (!a)	return b;
-	if (level & 1)	{ Slot * const t = a; a = b; b = t; }
-	Slot * const t = b->prev();
-	a->prev()->next(b);	b->prev(a->prev()); // splice middle
-	t->next(a); a->prev(t);			// splice ends
-	return a;
+    if (!a) return b;
+    if (level & 1)  { Slot * const t = a; a = b; b = t; }
+    Slot * const t = b->prev();
+    a->prev()->next(b); b->prev(a->prev()); // splice middle
+    t->next(a); a->prev(t);                 // splice ends
+    return a;
 }
 
 
-Slot * span(Segment *seg, Slot * & cs, const bool rtl, uint8 aMirror)
+Slot * span(Slot * & cs, const bool rtl)
 {
-	Slot * r = cs, * re = cs; cs = cs->next();
-    if (aMirror && r->getBidiLevel() & 1)
+    Slot * r = cs, * re = cs; cs = cs->next();
+    if (rtl)
     {
-        unsigned short g = seg->glyphAttr(r->gid(), aMirror);
-        if (g) r->setGlyph(seg, g);
-    }
-        
-	if (rtl)
-	{
-		Slot * t = r->next(); r->next(r->prev()); r->prev(t);
-		for (int l = r->getBidiLevel(); cs && l == cs->getBidiLevel(); cs = cs->prev())
-		{
-            if (aMirror && (l & 1))
-            {
-                unsigned short g = seg->glyphAttr(cs->gid(), aMirror);
-                if (g) cs->setGlyph(seg, g);
-            }
-			re = cs;
-			t = cs->next(); cs->next(cs->prev()); cs->prev(t);
-		}
-		r->next(re);
-		re->prev(r);
-		r = re;
-	}
-	else
-	{
-		for (int l = r->getBidiLevel(); cs && l == cs->getBidiLevel(); cs = cs->next())
+        Slot * t = r->next(); r->next(r->prev()); r->prev(t);
+        for (int l = r->getBidiLevel(); cs && l == cs->getBidiLevel(); cs = cs->prev())
         {
-            if (aMirror && (l & 1))
-            {
-                unsigned short g = seg->glyphAttr(cs->gid(), aMirror);
-                if (g) cs->setGlyph(seg, g);
-            }
-			re = cs;
+            re = cs;
+            t = cs->next(); cs->next(cs->prev()); cs->prev(t);
         }
-		r->prev(re);
-		re->next(r);
-	}
-	if (cs)		cs->prev(0);
-	return r;
+        r->next(re);
+        re->prev(r);
+        r = re;
+    }
+    else
+    {
+        for (int l = r->getBidiLevel(); cs && l == cs->getBidiLevel(); cs = cs->next())
+            re = cs;
+        r->prev(re);
+        re->next(r);
+    }
+    if (cs) cs->prev(0);
+    return r;
 }
 
 
-Slot *resolveOrder(Segment *seg, Slot * & cs, const bool reordered, uint8 aMirror, const int level)
+Slot *resolveOrder(Slot * & cs, const bool reordered, const int level)
 {
-	Slot * r = 0;
-	int ls;
-	while (cs && level <= (ls = cs->getBidiLevel() - reordered))
-	{
-		r = join(level, r, level >= ls
-								? span(seg, cs, level & 1, aMirror)
-								: resolveOrder(seg, cs, reordered, aMirror, level+1));
-	}
-	return r;
+    Slot * r = 0;
+    int ls;
+    while (cs && level <= (ls = cs->getBidiLevel() - reordered))
+    {
+        r = join(level, r, level >= ls
+                                ? span(cs, level & 1)
+                                : resolveOrder(cs, reordered, level+1));
+    }
+    return r;
 }
 
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1ff34c8..6e6f7db 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -15,8 +15,8 @@
 #
 #    You should also have received a copy of the GNU Lesser General Public
 #    License along with this library in the file named "LICENSE".
-#    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-#    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+#    If not, write to the Free Software Foundation, 51 Franklin Street, 
+#    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
 #    internet at http://www.fsf.org/licenses/lgpl.html.
 
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)
diff --git a/src/CachedFace.cpp b/src/CachedFace.cpp
index 874d4b3..c9a4f09 100644
--- a/src/CachedFace.cpp
+++ b/src/CachedFace.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/CachedFace.h b/src/CachedFace.h
index b735be2..9c73e4d 100644
--- a/src/CachedFace.h
+++ b/src/CachedFace.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/CharInfo.h b/src/CharInfo.h
index 5b106fe..dbc2035 100644
--- a/src/CharInfo.h
+++ b/src/CharInfo.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/CmapCache.cpp b/src/CmapCache.cpp
index 19ffd03..398df8e 100644
--- a/src/CmapCache.cpp
+++ b/src/CmapCache.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/CmapCache.h b/src/CmapCache.h
index ed51ef9..dc1603b 100644
--- a/src/CmapCache.h
+++ b/src/CmapCache.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Code.cpp b/src/Code.cpp
index b49cdc7..e6cfd52 100644
--- a/src/Code.cpp
+++ b/src/Code.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Code.h b/src/Code.h
index 673019f..7f82d8c 100644
--- a/src/Code.h
+++ b/src/Code.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Face.cpp b/src/Face.cpp
index 0446899..311d325 100644
--- a/src/Face.cpp
+++ b/src/Face.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Face.h b/src/Face.h
index 2faeca4..b1a0fab 100644
--- a/src/Face.h
+++ b/src/Face.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/FeatureMap.cpp b/src/FeatureMap.cpp
index 08eb263..10f70fb 100644
--- a/src/FeatureMap.cpp
+++ b/src/FeatureMap.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/FeatureMap.h b/src/FeatureMap.h
index 331141d..41d4583 100644
--- a/src/FeatureMap.h
+++ b/src/FeatureMap.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/FeatureVal.h b/src/FeatureVal.h
index 189b72d..d1ff0a8 100644
--- a/src/FeatureVal.h
+++ b/src/FeatureVal.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Font.cpp b/src/Font.cpp
index b779396..aa83540 100644
--- a/src/Font.cpp
+++ b/src/Font.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Font.h b/src/Font.h
index 3f3dab4..e5b4f46 100644
--- a/src/Font.h
+++ b/src/Font.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
@@ -32,9 +32,10 @@ of the License or (at your option) any later version.
 
 namespace graphite2 {
 
+#define INVALID_ADVANCE -1e38f		// can't be a static const because non-integral
+
 class Font
 {
-	static const float INVALID_ADVANCE = -1e38f;		//because this is in the header it can be optimized out.
 public:
     Font(float ppm, const Face *face/*needed for scaling*/);
     virtual ~Font();
diff --git a/src/GlyphFace.cpp b/src/GlyphFace.cpp
index ff74e50..c238ade 100644
--- a/src/GlyphFace.cpp
+++ b/src/GlyphFace.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/GlyphFace.h b/src/GlyphFace.h
index 6d754c4..2268f6f 100644
--- a/src/GlyphFace.h
+++ b/src/GlyphFace.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/GlyphFaceCache.cpp b/src/GlyphFaceCache.cpp
index 74fcd04..5b807de 100644
--- a/src/GlyphFaceCache.cpp
+++ b/src/GlyphFaceCache.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/GlyphFaceCache.h b/src/GlyphFaceCache.h
index a79c4b5..389828e 100644
--- a/src/GlyphFaceCache.h
+++ b/src/GlyphFaceCache.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/List.h b/src/List.h
index 73ac8aa..b7dfc0c 100644
--- a/src/List.h
+++ b/src/List.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Machine.h b/src/Machine.h
index 3f509a3..5672673 100644
--- a/src/Machine.h
+++ b/src/Machine.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Main.h b/src/Main.h
index bed4875..85f9add 100644
--- a/src/Main.h
+++ b/src/Main.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
@@ -29,7 +29,6 @@ of the License or (at your option) any later version.
 #include <cstdlib>
 #include "graphite2/Types.h"
 
-#if !defined WORDS_BIGENDIAN || defined PC_OS
 
 namespace graphite2 {
 
@@ -42,10 +41,11 @@ typedef gr_int16        int16;
 typedef gr_int32        int32;
 typedef size_t          uintptr;
 
+#if !defined WORDS_BIGENDIAN || defined PC_OS
 inline uint16 swap16(uint16 x) { return (x << 8) | (x >> 8); }
 inline  int16 swap16(int16 x)  { return int16(swap16(uint16(x))); }
 inline uint32 swap32(uint32 x) { return (uint32(swap16(uint16(x))) << 16) | swap16(uint16(x >> 16)); }
-inline  int32 swap32(int32 x)  { return int16(swap16(uint16(x))); }
+inline  int32 swap32(int32 x)  { return int32(swap32(uint32(x))); }
 #else
 #define swap16(x) (x)
 #define swap32(x) (x)
diff --git a/src/NameTable.cpp b/src/NameTable.cpp
index bb7c926..5a9b3b4 100644
--- a/src/NameTable.cpp
+++ b/src/NameTable.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/NameTable.h b/src/NameTable.h
index ef755b2..ede5f74 100644
--- a/src/NameTable.h
+++ b/src/NameTable.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Pass.cpp b/src/Pass.cpp
index fb9aa55..79a002b 100644
--- a/src/Pass.cpp
+++ b/src/Pass.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Pass.h b/src/Pass.h
index 8c2117b..0c7d2cd 100644
--- a/src/Pass.h
+++ b/src/Pass.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Position.h b/src/Position.h
index ffb3ebf..e740b75 100644
--- a/src/Position.h
+++ b/src/Position.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Rule.cpp b/src/Rule.cpp
index 4d20d9e..5f35a59 100644
--- a/src/Rule.cpp
+++ b/src/Rule.cpp
@@ -1,17 +1,28 @@
-/*
-   This library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public
-   License version 2 as published by the Free Software Foundation.
+/*  GRAPHITE2 LICENSING
 
-   This library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
+    Copyright 2010, SIL International
+    All rights reserved.
 
-   You should have received a copy of the GNU Library General Public License
-   along with this library; see the file COPYING.LIB.  If not, write to
-   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.
+    This library is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published
+    by the Free Software Foundation; either version 2.1 of License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should also have received a copy of the GNU Lesser General Public
+    License along with this library in the file named "LICENSE".
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
+    internet at http://www.fsf.org/licenses/lgpl.html.
+
+Alternatively, the contents of this file may be used under the terms of the
+Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public
+License, as published by the Free Software Foundation, either version 2
+of the License or (at your option) any later version.
 */
 
 #include "Rule.h"
diff --git a/src/Rule.h b/src/Rule.h
index da91eb2..872ce56 100644
--- a/src/Rule.h
+++ b/src/Rule.h
@@ -1,17 +1,28 @@
-/*
-  This library is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Library General Public
-  License version 2 as published by the Free Software Foundation.
-
-  This library is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  Library General Public License for more details.
-
-  You should have received a copy of the GNU Library General Public License
-  along with this library; see the file COPYING.LIB.  If not, write to
-  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-  Boston, MA 02110-1301, USA.
+/*  GRAPHITE2 LICENSING
+
+    Copyright 2010, SIL International
+    All rights reserved.
+
+    This library is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published
+    by the Free Software Foundation; either version 2.1 of License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should also have received a copy of the GNU Lesser General Public
+    License along with this library in the file named "LICENSE".
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
+    internet at http://www.fsf.org/licenses/lgpl.html.
+
+Alternatively, the contents of this file may be used under the terms of the
+Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public
+License, as published by the Free Software Foundation, either version 2
+of the License or (at your option) any later version.
 */
 
 #pragma once
diff --git a/src/SegCache.cpp b/src/SegCache.cpp
index b2bb373..fdbc849 100644
--- a/src/SegCache.cpp
+++ b/src/SegCache.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/SegCache.h b/src/SegCache.h
index 1a2b07a..ff4bfc1 100644
--- a/src/SegCache.h
+++ b/src/SegCache.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/SegCacheEntry.cpp b/src/SegCacheEntry.cpp
index 328237e..6c7718b 100644
--- a/src/SegCacheEntry.cpp
+++ b/src/SegCacheEntry.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/SegCacheEntry.h b/src/SegCacheEntry.h
index 18b2349..e42ebdc 100644
--- a/src/SegCacheEntry.h
+++ b/src/SegCacheEntry.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/SegCacheStore.cpp b/src/SegCacheStore.cpp
index 9bf25c8..1ce0aa1 100644
--- a/src/SegCacheStore.cpp
+++ b/src/SegCacheStore.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/SegCacheStore.h b/src/SegCacheStore.h
index bbf53f4..a098d01 100644
--- a/src/SegCacheStore.h
+++ b/src/SegCacheStore.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Segment.cpp b/src/Segment.cpp
index 3a034c1..0bb7332 100644
--- a/src/Segment.cpp
+++ b/src/Segment.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
@@ -591,9 +591,9 @@ void Segment::justify(Slot *pSlot, const Font *font, float width, GR_MAYBE_UNUSE
 Slot *resolveExplicit(int level, int dir, Slot *s, int nNest = 0);
 void resolveWeak(int baseLevel, Slot *s);
 void resolveNeutrals(int baseLevel, Slot *s);
-void resolveImplicit(Slot *s);
+void resolveImplicit(Slot *s, Segment *seg, uint8 aMirror);
 void resolveWhitespace(int baseLevel, Segment *seg, uint8 aBidi, Slot *s);
-Slot *resolveOrder(Segment *seg, Slot * & s, const bool reordered, uint8 aMirror, const int level = 0);
+Slot *resolveOrder(Slot * & s, const bool reordered, const int level = 0);
 
 void Segment::bidiPass(uint8 aBidi, int paradir, uint8 aMirror)
 {
@@ -618,9 +618,9 @@ void Segment::bidiPass(uint8 aBidi, int paradir, uint8 aMirror)
             resolveWeak(baseLevel, first());
         if (bmask & 0x161)
             resolveNeutrals(baseLevel, first());
-        resolveImplicit(first());
+        resolveImplicit(first(), this, aMirror);
         resolveWhitespace(baseLevel, this, aBidi, last());
-        s = resolveOrder(this, s = first(), baseLevel, (dir() & 4) ? aMirror : 0);
+        s = resolveOrder(s = first(), baseLevel);
         first(s); last(s->prev());
         s->prev()->next(0); s->prev(0);
     }
diff --git a/src/Segment.h b/src/Segment.h
index 488e641..87a1538 100644
--- a/src/Segment.h
+++ b/src/Segment.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Silf.cpp b/src/Silf.cpp
index 1a4010d..48691ca 100644
--- a/src/Silf.cpp
+++ b/src/Silf.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
@@ -473,13 +473,14 @@ void Silf::runGraphite(Segment *seg, uint8 firstPass, uint8 lastPass) const
         // bidi and mirroring
         if (i == m_bPass && !(seg->dir() & 2))
             seg->bidiPass(m_aBidi, seg->dir() & 1, m_aMirror);
-        else if (i == m_bPass && (seg->dir() & 5) == 1 && m_aMirror)
+        else if (i == m_bPass && m_aMirror)
         {
             Slot * s;
             for (s = seg->first(); s; s = s->next())
             {
                 unsigned short g = seg->glyphAttr(s->gid(), m_aMirror);
-                if (g) s->setGlyph(seg, g);
+                if (g && (!(seg->dir() & 4) || !seg->glyphAttr(s->gid(), m_aMirror + 1)))
+                    s->setGlyph(seg, g);
             }
         }
 
diff --git a/src/Silf.h b/src/Silf.h
index de80334..27bdca0 100644
--- a/src/Silf.h
+++ b/src/Silf.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Slot.cpp b/src/Slot.cpp
index 63dc2a8..3062cf0 100644
--- a/src/Slot.cpp
+++ b/src/Slot.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Slot.h b/src/Slot.h
index 0824121..bf7bfa7 100644
--- a/src/Slot.h
+++ b/src/Slot.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Sparse.cpp b/src/Sparse.cpp
index bce5f73..5bad9fd 100644
--- a/src/Sparse.cpp
+++ b/src/Sparse.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/Sparse.h b/src/Sparse.h
index bd108dd..841d0af 100644
--- a/src/Sparse.h
+++ b/src/Sparse.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/TtfTypes.h b/src/TtfTypes.h
index 09468d1..cb324ef 100644
--- a/src/TtfTypes.h
+++ b/src/TtfTypes.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
@@ -26,10 +26,6 @@ of the License or (at your option) any later version.
 */
 #pragma once
 /*--------------------------------------------------------------------*//*:Ignore this sentence.
-Copyright (C) 2007 SIL International. All rights reserved.
-
-Distributable under the terms of either the Common Public License or the
-GNU Lesser General Public License, as specified in the LICENSING.txt file.
 
 File: TtfTypes.h
 Responsibility: Tim Eves
diff --git a/src/TtfUtil.cpp b/src/TtfUtil.cpp
index a78b7a5..8d8c35a 100644
--- a/src/TtfUtil.cpp
+++ b/src/TtfUtil.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
@@ -25,10 +25,6 @@ License, as published by the Free Software Foundation, either version 2
 of the License or (at your option) any later version.
 */
 /*--------------------------------------------------------------------*//*:Ignore this sentence.
-Copyright (C) 2000, 2001 SIL International. All rights reserved.
-
-Distributable under the terms of either the Common Public License or the
-GNU Lesser General Public License, as specified in the LICENSING.txt file.
 
 File: TtfUtil.cpp
 Responsibility: Alan Ward
@@ -111,6 +107,7 @@ namespace
 /*----------------------------------------------------------------------------------------------
 	Table of standard Postscript glyph names. From Martin Hosken. Disagress with ttfdump.exe
 ---------------------------------------------------------------------------------------------*/
+#ifdef ALL_TTFUTILS
 	const int kcPostNames = 258;
 
 	const char * rgPostName[kcPostNames] = {
@@ -154,6 +151,7 @@ namespace
 		"threequarters", "franc", "Gbreve", "gbreve", "Idotaccent", "Scedilla", 
 		"scedilla", "Cacute", "cacute", "Ccaron", "ccaron", 
 		"dcroat" };
+#endif
 
 } // end of namespace
 
@@ -381,6 +379,7 @@ size_t GlyphCount(const void * pMaxp)
 	return read(pTable->num_glyphs);
 }
 
+#ifdef ALL_TTFUTILS
 /*----------------------------------------------------------------------------------------------
 	Return the maximum number of components for any composite glyph in the font.
 
@@ -432,6 +431,7 @@ size_t LocaGlyphCount(size_t lLocaSize, const void * pHead) //throw(std::domain_
 	return -1;
 	//throw std::domain_error("head table in inconsistent state. The font may be corrupted");
 }
+#endif
 
 /*----------------------------------------------------------------------------------------------
 	Return the design units the font is designed with
@@ -444,6 +444,7 @@ int DesignUnits(const void * pHead)
 	return read(pTable->units_per_em);
 }
 
+#ifdef ALL_TTFUTILS
 /*----------------------------------------------------------------------------------------------
 	Return the checksum from the head table, which serves as a unique identifer for the font.
 ----------------------------------------------------------------------------------------------*/
@@ -534,6 +535,7 @@ bool FontOs2Style(const void *pOs2, bool & fBold, bool & fItalic)
 	
 	return true;
 }
+#endif
 
 /*----------------------------------------------------------------------------------------------
 	Method for searching name table.
@@ -566,6 +568,7 @@ bool GetNameInfo(const void * pName, int nPlatformId, int nEncodingId,
 	return false;
 }
 
+#ifdef ALL_TTFUTILS
 /*----------------------------------------------------------------------------------------------
 	Return all the lang-IDs that have data for the given name-IDs. Assume that there is room
 	in the return array (langIdList) for 128 items. The purpose of this method is to return
@@ -810,6 +813,7 @@ void SwapWString(void * pWStr, size_t nSize /* = 0 */) //throw (std::invalid_arg
 //			pStr[i] = utf16(read(uint16(pStr[i])));
 //		}
 }
+#endif
 
 /*----------------------------------------------------------------------------------------------
 	Get the left-side bearing and and advance width based on the given tables and Glyph ID
@@ -1230,6 +1234,7 @@ bool GlyfBox(const void * pSimpleGlyf, int & xMin, int & yMin,
 	return true;
 }
 
+#ifdef ALL_TTFUTILS
 /*----------------------------------------------------------------------------------------------
 	Return the number of contours for a simple glyf entry (non-composite)
 	Returning -1 means this is a composite glyph
@@ -1592,6 +1597,7 @@ bool GetComponentTransform(const void * pSimpleGlyf, int nCompId,
 	flt22 = 1;
 	return false;
 }
+#endif
 
 /*----------------------------------------------------------------------------------------------
 	Return a pointer into the glyf table based on the given tables and Glyph ID
@@ -1629,6 +1635,7 @@ void * GlyfLookup(gid16 nGlyphId, const void * pGlyf, const void * pLoca,
 	return pSimpleGlyf;
 }
 
+#ifdef ALL_TTFUTILS
 /*----------------------------------------------------------------------------------------------
 	Determine if a particular Glyph ID has any data in the glyf table. If it is white space,
 	there will be no glyf data, though there will be metric data in hmtx, etc.
@@ -1975,7 +1982,7 @@ bool CalcAbsolutePoints(int * prgnX, int * prgnY, int cnPoints)
 
 	return true;
 }
-
+#endif
 
 /*----------------------------------------------------------------------------------------------
 	Return the length of the 'name' table in bytes.
diff --git a/src/TtfUtil.h b/src/TtfUtil.h
index 63efced..b8de761 100644
--- a/src/TtfUtil.h
+++ b/src/TtfUtil.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
@@ -26,10 +26,6 @@ of the License or (at your option) any later version.
 */
 #pragma once
 /*--------------------------------------------------------------------*//*:Ignore this sentence.
-Copyright (C) 2000, 2001 SIL International. All rights reserved.
-
-Distributable under the terms of either the Common Public License or the
-GNU Lesser General Public License, as specified in the LICENSING.txt file.
 
 File: TtfUtil.h
 Responsibility: Alan Ward
@@ -107,10 +103,13 @@ public:
 
 	////////////////////////////////// simple font wide info 
 	size_t  GlyphCount(const void * pMaxp); 
+#ifdef ALL_TTFUTILS
 	size_t  MaxCompositeComponentCount(const void * pMaxp);
 	size_t  MaxCompositeLevelCount(const void * pMaxp);
 	size_t  LocaGlyphCount(size_t lLocaSize, const void * pHead); // throw (std::domain_error); 
+#endif
 	int DesignUnits(const void * pHead);
+#ifdef ALL_TTFUTILS
 	int HeadTableCheckSum(const void * pHead);
 	void HeadTableCreateTime(const void * pHead, unsigned int * pnDateBC, unsigned int * pnDateAD);
 	void HeadTableModifyTime(const void * pHead, unsigned int * pnDateBC, unsigned int * pnDateAD);
@@ -124,14 +123,17 @@ public:
 	bool Get30EngFullFontInfo(const void * pName, size_t & lOffset, size_t & lSize);
 	int PostLookup(const void * pPost, size_t lPostSize, const void * pMaxp, 
 		const char * pPostName);
+#endif
 
 	////////////////////////////////// utility methods helpful for name table
 	bool GetNameInfo(const void * pName, int nPlatformId, int nEncodingId,
 		int nLangId, int nNameId, size_t & lOffset, size_t & lSize);
 	//size_t NameTableLength(const byte * pTable);
+#ifdef ALL_TTFUTILS
 	int GetLangsForNames(const void * pName, int nPlatformId, int nEncodingId,
 		int *nameIdList, int cNameIds, short *langIdList);
 	void SwapWString(void * pWStr, size_t nSize = 0); // throw (std::invalid_argument);
+#endif
 
 	////////////////////////////////// cmap lookup tools 
 	const void * FindCmapSubtable(const void * pCmap, int nPlatformId = 3, 
@@ -158,6 +160,7 @@ public:
 	bool GlyfBox(const void * pSimpleGlyf, int & xMin, int & yMin, 
 		int & xMax, int & yMax);
 
+#ifdef ALL_TTFUTILS
 	int GlyfContourCount(const void * pSimpleGlyf); 
 	bool GlyfContourEndPoints(const void * pSimpleGlyf, int * prgnContourEndPoint, 
 		int cnPointsTotal, size_t & cnPoints);
@@ -173,11 +176,13 @@ public:
 	// primitive to find the transform data for a component in a composite glyph
 	bool GetComponentTransform(const void * pSimpleGlyf, int nCompId,
 		float & flt11, float & flt12, float & flt21, float & flt22, bool & fTransOffset);
+#endif
 
 	////////////////////////////////// operate on composite or simple glyph (auto glyf lookup)
 	void * GlyfLookup(gid16 nGlyphId, const void * pGlyf, const void * pLoca, 
 		size_t lGlyfSize, size_t lLocaSize, const void * pHead); // primitive used by below methods
 
+#ifdef ALL_TTFUTILS
 	// below are primary user methods for handling glyf data
 	bool IsSpace(gid16 nGlyphId, const void * pLoca, size_t lLocaSize, const void * pHead);
 	bool IsDeepComposite(gid16 nGlyphId, const void * pGlyf, const void * pLoca, 
@@ -196,6 +201,7 @@ public:
 	// utitily method used by high-level GlyfPoints 
 	bool SimplifyFlags(char * prgbFlags, int cnPoints);
 	bool CalcAbsolutePoints(int * prgnX, int * prgnY, int cnPoints);
+#endif
 
 } // end of namespace TtfUtil
 } // end of namespace graphite2
diff --git a/src/XmlTraceLog.cpp b/src/XmlTraceLog.cpp
index a342b8e..7703ebc 100644
--- a/src/XmlTraceLog.cpp
+++ b/src/XmlTraceLog.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/XmlTraceLog.h b/src/XmlTraceLog.h
index e93303a..2d93a1d 100644
--- a/src/XmlTraceLog.h
+++ b/src/XmlTraceLog.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/XmlTraceLogTags.cpp b/src/XmlTraceLogTags.cpp
index 0193e57..b6ec970 100644
--- a/src/XmlTraceLogTags.cpp
+++ b/src/XmlTraceLogTags.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/XmlTraceLogTags.h b/src/XmlTraceLogTags.h
index e1026ca..b817850 100644
--- a/src/XmlTraceLogTags.h
+++ b/src/XmlTraceLogTags.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/call_machine.cpp b/src/call_machine.cpp
index 98b1927..375e17d 100644
--- a/src/call_machine.cpp
+++ b/src/call_machine.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/direct_machine.cpp b/src/direct_machine.cpp
index a72827c..c4c1d49 100644
--- a/src/direct_machine.cpp
+++ b/src/direct_machine.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/files.mk b/src/files.mk
index a7fdc14..9504e60 100644
--- a/src/files.mk
+++ b/src/files.mk
@@ -15,8 +15,8 @@
 #
 #    You should also have received a copy of the GNU Lesser General Public
 #    License along with this library in the file named "LICENSE".
-#    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-#    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+#    If not, write to the Free Software Foundation, 51 Franklin Street, 
+#    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
 #    internet at http://www.fsf.org/licenses/lgpl.html.
 #
 # Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/gr_char_info.cpp b/src/gr_char_info.cpp
index 54ce8d9..954f39c 100644
--- a/src/gr_char_info.cpp
+++ b/src/gr_char_info.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/gr_face.cpp b/src/gr_face.cpp
index 2800986..bf52cb0 100644
--- a/src/gr_face.cpp
+++ b/src/gr_face.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/gr_features.cpp b/src/gr_features.cpp
index 2ada4ba..6c38280 100644
--- a/src/gr_features.cpp
+++ b/src/gr_features.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/gr_font.cpp b/src/gr_font.cpp
index 09fbc6c..7ffd647 100644
--- a/src/gr_font.cpp
+++ b/src/gr_font.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/gr_logging.cpp b/src/gr_logging.cpp
index a3b4321..a1afa00 100644
--- a/src/gr_logging.cpp
+++ b/src/gr_logging.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/gr_segment.cpp b/src/gr_segment.cpp
index 4abb470..a7f24ad 100644
--- a/src/gr_segment.cpp
+++ b/src/gr_segment.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/gr_slot.cpp b/src/gr_slot.cpp
index a8fe0b0..58367dc 100644
--- a/src/gr_slot.cpp
+++ b/src/gr_slot.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/locale2lcid.h b/src/locale2lcid.h
index 3d6eeb2..890625b 100644
--- a/src/locale2lcid.h
+++ b/src/locale2lcid.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/opcode_table.h b/src/opcode_table.h
index e3323c6..efab472 100644
--- a/src/opcode_table.h
+++ b/src/opcode_table.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/opcodes.h b/src/opcodes.h
index 4a4cdae..cdf1c01 100644
--- a/src/opcodes.h
+++ b/src/opcodes.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/src/processUTF.h b/src/processUTF.h
index d7eccf6..de8d307 100644
--- a/src/processUTF.h
+++ b/src/processUTF.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place, 
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the 
+    If not, write to the Free Software Foundation, 51 Franklin Street, 
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the 
     internet at http://www.fsf.org/licenses/lgpl.html.
 
 Alternatively, the contents of this file may be used under the terms of the
diff --git a/tests/comparerenderer/CompareRenderer.cpp b/tests/comparerenderer/CompareRenderer.cpp
index 3afbf91..19e23ab 100644
--- a/tests/comparerenderer/CompareRenderer.cpp
+++ b/tests/comparerenderer/CompareRenderer.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #include <cstdlib>
diff --git a/tests/comparerenderer/FeatureParser.h b/tests/comparerenderer/FeatureParser.h
index ea7e821..5f080d8 100644
--- a/tests/comparerenderer/FeatureParser.h
+++ b/tests/comparerenderer/FeatureParser.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #pragma once
diff --git a/tests/comparerenderer/Gr2Renderer.h b/tests/comparerenderer/Gr2Renderer.h
index 1371582..8f1b5ce 100644
--- a/tests/comparerenderer/Gr2Renderer.h
+++ b/tests/comparerenderer/Gr2Renderer.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #pragma once
diff --git a/tests/comparerenderer/GrRenderer.h b/tests/comparerenderer/GrRenderer.h
index 6be6a93..b73caed 100644
--- a/tests/comparerenderer/GrRenderer.h
+++ b/tests/comparerenderer/GrRenderer.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #include "Renderer.h"
diff --git a/tests/comparerenderer/HbNgRenderer.h b/tests/comparerenderer/HbNgRenderer.h
index 2da852f..b54b6ed 100644
--- a/tests/comparerenderer/HbNgRenderer.h
+++ b/tests/comparerenderer/HbNgRenderer.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #pragma once
@@ -35,6 +35,10 @@
 #include "Renderer.h"
 #include "FeatureParser.h"
 
+static const char *shapers[] = {
+    "ot", NULL
+};
+
 void hbngFtDestroy(void *user_data)
 {
     // the face is destroyed at the same time as the HB face, so shouldn't be needed
@@ -120,7 +124,7 @@ public:
         hb_language_t lang = hb_ot_tag_to_language(HB_OT_TAG_DEFAULT_LANGUAGE);
         hb_buffer_set_language(m_buffer, lang);
         //hb_feature_t feats = {HB_TAG(' ', 'R', 'N', 'D'), 0, 0, -1};
-        hb_shape(m_font, m_buffer, m_feats, m_featCount);
+        hb_shape_full(m_font, m_buffer, m_feats, m_featCount, NULL, shapers);
         hb_glyph_info_t * infos = hb_buffer_get_glyph_infos(m_buffer, NULL);
         hb_glyph_position_t * positions = hb_buffer_get_glyph_positions(m_buffer, NULL);
         size_t numGlyphs = hb_buffer_get_length(m_buffer);
diff --git a/tests/comparerenderer/HbRenderer.h b/tests/comparerenderer/HbRenderer.h
index 69e2430..32b2aeb 100644
--- a/tests/comparerenderer/HbRenderer.h
+++ b/tests/comparerenderer/HbRenderer.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #pragma once
diff --git a/tests/comparerenderer/IcuRenderer.h b/tests/comparerenderer/IcuRenderer.h
index 5810156..3f9931c 100644
--- a/tests/comparerenderer/IcuRenderer.h
+++ b/tests/comparerenderer/IcuRenderer.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #pragma once
diff --git a/tests/comparerenderer/RenderedLine.h b/tests/comparerenderer/RenderedLine.h
index 5e5b77f..e5f2351 100644
--- a/tests/comparerenderer/RenderedLine.h
+++ b/tests/comparerenderer/RenderedLine.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #pragma once
diff --git a/tests/comparerenderer/Renderer.h b/tests/comparerenderer/Renderer.h
index 88e488a..dc1e312 100644
--- a/tests/comparerenderer/Renderer.h
+++ b/tests/comparerenderer/Renderer.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #pragma once
diff --git a/tests/comparerenderer/RendererOptions.h b/tests/comparerenderer/RendererOptions.h
index a0dde4e..a4fe344 100644
--- a/tests/comparerenderer/RendererOptions.h
+++ b/tests/comparerenderer/RendererOptions.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #pragma once
diff --git a/tests/comparerenderer/UniscribeRenderer.h b/tests/comparerenderer/UniscribeRenderer.h
index 9f060a4..23e89ae 100644
--- a/tests/comparerenderer/UniscribeRenderer.h
+++ b/tests/comparerenderer/UniscribeRenderer.h
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #pragma once
diff --git a/tests/featuremap/featuremaptest.cpp b/tests/featuremap/featuremaptest.cpp
index f95dc3f..456ab03 100644
--- a/tests/featuremap/featuremaptest.cpp
+++ b/tests/featuremap/featuremaptest.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #include <cassert>
diff --git a/tests/nametabletest/nametabletest.cpp b/tests/nametabletest/nametabletest.cpp
index a6078e0..8b783d5 100644
--- a/tests/nametabletest/nametabletest.cpp
+++ b/tests/nametabletest/nametabletest.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #include <cassert>
diff --git a/tests/segcache/segcachetest.cpp b/tests/segcache/segcachetest.cpp
index fd81e34..25cea8f 100644
--- a/tests/segcache/segcachetest.cpp
+++ b/tests/segcache/segcachetest.cpp
@@ -15,8 +15,8 @@
 
     You should also have received a copy of the GNU Lesser General Public
     License along with this library in the file named "LICENSE".
-    If not, write to the Free Software Foundation, Inc., 59 Temple Place,
-    Suite 330, Boston, MA 02111-1307, USA or visit their web page on the
+    If not, write to the Free Software Foundation, 51 Franklin Street,
+    Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
     internet at http://www.fsf.org/licenses/lgpl.html.
 */
 #include <graphite2/Segment.h>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-openoffice/graphite2.git


Reply to: