Hello community,

here is the log from the commit of package harfbuzz for openSUSE:Factory 
checked in at 2013-01-20 14:39:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/harfbuzz (Old)
 and      /work/SRC/openSUSE:Factory/.harfbuzz.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "harfbuzz", Maintainer is ""

Changes:
--------
--- /work/SRC/openSUSE:Factory/harfbuzz/harfbuzz.changes        2013-01-10 
12:56:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.harfbuzz.new/harfbuzz.changes   2013-01-20 
14:39:32.000000000 +0100
@@ -1,0 +2,12 @@
+Mon Jan 14 21:19:08 UTC 2013 - zai...@opensuse.org
+
+- Update to version 0.9.11:
+  + Fix GPOS mark attachment with null Anchor offsets.
+  + [Indic] Fix old-spec reordering of viramas if sequence ends in
+    one.
+  + Fix multi-threaded shaper data creation crash.
+  + Add atomic ops for Solaris.
+  + API changes: Rename hb_buffer_clear() to
+    hb_buffer_clear_contents().
+
+-------------------------------------------------------------------

Old:
----
  harfbuzz-0.9.10.tar.bz2

New:
----
  harfbuzz-0.9.11.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ harfbuzz.spec ++++++
--- /var/tmp/diff_new_pack.i80tou/_old  2013-01-20 14:39:33.000000000 +0100
+++ /var/tmp/diff_new_pack.i80tou/_new  2013-01-20 14:39:33.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           harfbuzz
-Version:        0.9.10
+Version:        0.9.11
 Release:        0
 # FIXME: graphite2 is not packaged / 
http://projects.palaso.org/projects/graphitedev
 Summary:        An OpenType text shaping engine

++++++ harfbuzz-0.9.10.tar.bz2 -> harfbuzz-0.9.11.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/NEWS new/harfbuzz-0.9.11/NEWS
--- old/harfbuzz-0.9.10/NEWS    2013-01-03 07:14:19.000000000 +0100
+++ new/harfbuzz-0.9.11/NEWS    2013-01-10 16:05:05.000000000 +0100
@@ -1,3 +1,17 @@
+Overview of changes leading to 0.9.11
+Thursday, January 10, 2013
+=====================================
+
+- Build fixes.
+- Fix GPOS mark attachment with null Anchor offsets.
+- [Indic] Fix old-spec reordering of viramas if sequence ends in one.
+- Fix multi-threaded shaper data creation crash.
+- Add atomic ops for Solaris.
+
+API changes:
+- Rename hb_buffer_clear() to hb_buffer_clear_contents().
+
+
 Overview of changes leading to 0.9.10
 Thursday, January 3, 2013
 =====================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/config.h.in 
new/harfbuzz-0.9.11/config.h.in
--- old/harfbuzz-0.9.10/config.h.in     2013-01-03 07:09:01.000000000 +0100
+++ new/harfbuzz-0.9.11/config.h.in     2013-01-10 16:05:29.000000000 +0100
@@ -78,9 +78,12 @@
 /* Define to 1 if you have the <sched.h> header file. */
 #undef HAVE_SCHED_H
 
-/* Define to 1 if you have the `sched_yield' function. */
+/* Have sched_yield */
 #undef HAVE_SCHED_YIELD
 
+/* Have Solaris __machine_*_barrier and atomic_* operations */
+#undef HAVE_SOLARIS_ATOMIC_OPS
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/configure 
new/harfbuzz-0.9.11/configure
--- old/harfbuzz-0.9.10/configure       2013-01-03 07:08:56.000000000 +0100
+++ new/harfbuzz-0.9.11/configure       2013-01-10 16:05:21.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for HarfBuzz 0.9.10.
+# Generated by GNU Autoconf 2.68 for HarfBuzz 0.9.11.
 #
 # Report bugs to <http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz>.
 #
@@ -571,8 +571,8 @@
 # Identity of this package.
 PACKAGE_NAME='HarfBuzz'
 PACKAGE_TARNAME='harfbuzz'
-PACKAGE_VERSION='0.9.10'
-PACKAGE_STRING='HarfBuzz 0.9.10'
+PACKAGE_VERSION='0.9.11'
+PACKAGE_STRING='HarfBuzz 0.9.11'
 PACKAGE_BUGREPORT='http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz'
 PACKAGE_URL='http://harfbuzz.org/'
 
@@ -1388,7 +1388,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures HarfBuzz 0.9.10 to adapt to many kinds of systems.
+\`configure' configures HarfBuzz 0.9.11 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1458,7 +1458,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of HarfBuzz 0.9.10:";;
+     short | recursive ) echo "Configuration of HarfBuzz 0.9.11:";;
    esac
   cat <<\_ACEOF
 
@@ -1596,7 +1596,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-HarfBuzz configure 0.9.10
+HarfBuzz configure 0.9.11
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2140,7 +2140,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by HarfBuzz $as_me 0.9.10, which was
+It was created by HarfBuzz $as_me 0.9.11, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -2961,7 +2961,7 @@
 
 # Define the identity of the package.
  PACKAGE='harfbuzz'
- VERSION='0.9.10'
+ VERSION='0.9.11'
 
 
 # Some tools Automake needs.
@@ -16131,8 +16131,8 @@
 
 HB_VERSION_MAJOR=0
 HB_VERSION_MINOR=9
-HB_VERSION_MICRO=10
-HB_VERSION=0.9.10
+HB_VERSION_MICRO=11
+HB_VERSION=0.9.11
 
 
 
@@ -16143,12 +16143,12 @@
 
 
 
-HB_LIBTOOL_VERSION_INFO=910:0:910
+HB_LIBTOOL_VERSION_INFO=911:0:911
 
 
 
 # Functions and headers
-for ac_func in atexit mprotect sysconf getpagesize sched_yield mmap _setmode 
isatty
+for ac_func in atexit mprotect sysconf getpagesize mmap _setmode isatty
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -16160,7 +16160,7 @@
 fi
 done
 
-for ac_header in unistd.h sys/mman.h sched.h io.h
+for ac_header in unistd.h sys/mman.h io.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" 
"$ac_includes_default"
@@ -17184,6 +17184,7 @@
        have_icu=true
 fi
 if $have_icu; then
+       CXXFLAGS="$CXXFLAGS `$PKG_CONFIG --variable=CXXFLAGS icu-uc`"
 
 $as_echo "#define HAVE_ICU 1" >>confdefs.h
 
@@ -17588,6 +17589,121 @@
 fi
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris atomic 
operations" >&5
+$as_echo_n "checking for Solaris atomic operations... " >&6; }
+if ${hb_cv_have_solaris_atomic_ops+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+       hb_cv_have_solaris_atomic_ops=false
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+               #include <atomic.h>
+               /* This requires Solaris Studio 12.2 or newer: */
+               #include <mbarrier.h>
+               void memory_barrier (void) { __machine_rw_barrier (); }
+               int atomic_add (volatile unsigned *i) { return 
atomic_add_int_nv (i, 1); }
+               void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, 
void *newval) { return atomic_cas_ptr (target, cmp, newval); }
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  hb_cv_have_solaris_atomic_ops=true
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 
$hb_cv_have_solaris_atomic_ops" >&5
+$as_echo "$hb_cv_have_solaris_atomic_ops" >&6; }
+if $hb_cv_have_solaris_atomic_ops; then
+
+$as_echo "#define HAVE_SOLARIS_ATOMIC_OPS 1" >>confdefs.h
+
+fi
+
+if test "$os_win32" = no && ! $have_pthread; then
+       for ac_header in sched.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sched.h" "ac_cv_header_sched_h" 
"$ac_includes_default"
+if test "x$ac_cv_header_sched_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SCHED_H 1
+_ACEOF
+
+fi
+
+done
+
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library 
containing sched_yield" >&5
+$as_echo_n "checking for library containing sched_yield... " >&6; }
+if ${ac_cv_search_sched_yield+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sched_yield ();
+int
+main ()
+{
+return sched_yield ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' rt; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_sched_yield=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_sched_yield+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_sched_yield+:} false; then :
+
+else
+  ac_cv_search_sched_yield=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sched_yield" >&5
+$as_echo "$ac_cv_search_sched_yield" >&6; }
+ac_res=$ac_cv_search_sched_yield
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+$as_echo "#define HAVE_SCHED_YIELD 1" >>confdefs.h
+
+fi
+
+fi
+
+
 ac_config_files="$ac_config_files Makefile harfbuzz.pc src/Makefile 
src/hb-version.h src/hb-icu-le/Makefile src/hb-old/Makefile 
src/hb-ucdn/Makefile util/Makefile test/Makefile test/api/Makefile 
test/shaping/Makefile"
 
 
@@ -18197,7 +18313,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by HarfBuzz $as_me 0.9.10, which was
+This file was extended by HarfBuzz $as_me 0.9.11, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18264,7 +18380,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-HarfBuzz config.status 0.9.10
+HarfBuzz config.status 0.9.11
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/configure.ac 
new/harfbuzz-0.9.11/configure.ac
--- old/harfbuzz-0.9.10/configure.ac    2013-01-03 07:08:51.000000000 +0100
+++ new/harfbuzz-0.9.11/configure.ac    2013-01-10 16:05:14.000000000 +0100
@@ -1,6 +1,6 @@
 AC_PREREQ([2.64])
 AC_INIT([HarfBuzz],
-        [0.9.10],
+        [0.9.11],
         [http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz],
         [harfbuzz],
         [http://harfbuzz.org/])
@@ -55,8 +55,8 @@
 dnl GTK_DOC_CHECK([1.15],[--flavour no-tmpl])
 
 # Functions and headers
-AC_CHECK_FUNCS(atexit mprotect sysconf getpagesize sched_yield mmap _setmode 
isatty)
-AC_CHECK_HEADERS(unistd.h sys/mman.h sched.h io.h)
+AC_CHECK_FUNCS(atexit mprotect sysconf getpagesize mmap _setmode isatty)
+AC_CHECK_HEADERS(unistd.h sys/mman.h io.h)
 
 # Compiler flags
 AC_CANONICAL_HOST
@@ -171,6 +171,7 @@
 
 PKG_CHECK_MODULES(ICU, icu-uc, have_icu=true, have_icu=false)
 if $have_icu; then
+       CXXFLAGS="$CXXFLAGS `$PKG_CONFIG --variable=CXXFLAGS icu-uc`"
        AC_DEFINE(HAVE_ICU, 1, [Have ICU library])
 fi
 AM_CONDITIONAL(HAVE_ICU, $have_icu)
@@ -259,6 +260,29 @@
 fi
 
 dnl ===========================================================================
+
+AC_CACHE_CHECK([for Solaris atomic operations], hb_cv_have_solaris_atomic_ops, 
[
+       hb_cv_have_solaris_atomic_ops=false
+       AC_TRY_LINK([
+               #include <atomic.h>
+               /* This requires Solaris Studio 12.2 or newer: */
+               #include <mbarrier.h>
+               void memory_barrier (void) { __machine_rw_barrier (); }
+               int atomic_add (volatile unsigned *i) { return 
atomic_add_int_nv (i, 1); }
+               void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, 
void *newval) { return atomic_cas_ptr (target, cmp, newval); }
+               ], [], hb_cv_have_solaris_atomic_ops=true
+       )
+])
+if $hb_cv_have_solaris_atomic_ops; then
+       AC_DEFINE(HAVE_SOLARIS_ATOMIC_OPS, 1, [Have Solaris __machine_*_barrier 
and atomic_* operations])
+fi
+
+if test "$os_win32" = no && ! $have_pthread; then
+       AC_CHECK_HEADERS(sched.h)
+       AC_SEARCH_LIBS(sched_yield,rt,AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have 
sched_yield]))
+fi
+
+dnl ===========================================================================
 
 AC_CONFIG_FILES([
 Makefile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/src/hb-atomic-private.hh 
new/harfbuzz-0.9.11/src/hb-atomic-private.hh
--- old/harfbuzz-0.9.10/src/hb-atomic-private.hh        2013-01-03 
00:41:16.000000000 +0100
+++ new/harfbuzz-0.9.11/src/hb-atomic-private.hh        2013-01-10 
08:16:29.000000000 +0100
@@ -99,6 +99,18 @@
 #define hb_atomic_ptr_cmpexch(P,O,N)   __sync_bool_compare_and_swap ((P), (O), 
(N))
 
 
+#elif !defined(HB_NO_MT) && defined(HAVE_SOLARIS_ATOMIC_OPS)
+
+#include <atomic.h>
+#include <mbarrier.h>
+
+typedef unsigned int fc_atomic_int_t;
+#define fc_atomic_int_add(AI, V)       ( ({__machine_rw_barrier ();}), 
atomic_add_int_nv (&(AI), (V)) - (V))
+
+#define fc_atomic_ptr_get(P)           ( ({__machine_rw_barrier ();}), (void 
*) *(P))
+#define fc_atomic_ptr_cmpexch(P,O,N)   ( ({__machine_rw_barrier ();}), 
atomic_cas_ptr ((P), (O), (N)) == (void *) (O) ? FcTrue : FcFalse)
+
+
 #elif !defined(HB_NO_MT)
 
 #define HB_ATOMIC_INT_NIL 1 /* Warn that fallback implementation is in use. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/src/hb-buffer.cc 
new/harfbuzz-0.9.11/src/hb-buffer.cc
--- old/harfbuzz-0.9.10/src/hb-buffer.cc        2012-12-30 00:39:10.000000000 
+0100
+++ new/harfbuzz-0.9.11/src/hb-buffer.cc        2013-01-07 23:45:18.000000000 
+0100
@@ -790,7 +790,7 @@
 }
 
 void
-hb_buffer_clear (hb_buffer_t *buffer)
+hb_buffer_clear_contents (hb_buffer_t *buffer)
 {
   buffer->clear ();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/src/hb-buffer.h 
new/harfbuzz-0.9.11/src/hb-buffer.h
--- old/harfbuzz-0.9.10/src/hb-buffer.h 2012-11-23 21:30:42.000000000 +0100
+++ new/harfbuzz-0.9.11/src/hb-buffer.h 2013-01-07 23:45:05.000000000 +0100
@@ -193,7 +193,7 @@
 
 /* Like reset, but does NOT clear unicode_funcs. */
 void
-hb_buffer_clear (hb_buffer_t *buffer);
+hb_buffer_clear_contents (hb_buffer_t *buffer);
 
 /* Returns false if allocation failed */
 hb_bool_t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/src/hb-open-type-private.hh 
new/harfbuzz-0.9.11/src/hb-open-type-private.hh
--- old/harfbuzz-0.9.10/src/hb-open-type-private.hh     2012-12-18 
00:37:13.000000000 +0100
+++ new/harfbuzz-0.9.11/src/hb-open-type-private.hh     2013-01-08 
23:13:42.000000000 +0100
@@ -616,10 +616,20 @@
 DEFINE_NULL_DATA (Index, "\xff\xff");
 
 /* Offset to a table, same as uint16 (length = 16 bits), Null offset = 0x0000 
*/
-typedef USHORT Offset;
+struct Offset : USHORT
+{
+  inline bool is_null (void) const { return 0 == *this; }
+  public:
+  DEFINE_SIZE_STATIC (2);
+};
 
 /* LongOffset to a table, same as uint32 (length = 32 bits), Null offset = 
0x00000000 */
-typedef ULONG LongOffset;
+struct LongOffset : ULONG
+{
+  inline bool is_null (void) const { return 0 == *this; }
+  public:
+  DEFINE_SIZE_STATIC (4);
+};
 
 
 /* CheckSum */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/src/hb-ot-layout-gpos-table.hh 
new/harfbuzz-0.9.11/src/hb-ot-layout-gpos-table.hh
--- old/harfbuzz-0.9.10/src/hb-ot-layout-gpos-table.hh  2012-12-04 
23:06:16.000000000 +0100
+++ new/harfbuzz-0.9.11/src/hb-ot-layout-gpos-table.hh  2013-01-08 
23:14:59.000000000 +0100
@@ -336,8 +336,10 @@
 
 struct AnchorMatrix
 {
-  inline const Anchor& get_anchor (unsigned int row, unsigned int col, 
unsigned int cols) const {
+  inline const Anchor& get_anchor (unsigned int row, unsigned int col, 
unsigned int cols, bool *found) const {
+    *found = false;
     if (unlikely (row >= rows || col >= cols)) return Null(Anchor);
+    *found = !matrix[row * cols + col].is_null ();
     return this+matrix[row * cols + col];
   }
 
@@ -392,7 +394,11 @@
     unsigned int mark_class = record.klass;
 
     const Anchor& mark_anchor = this + record.markAnchor;
-    const Anchor& glyph_anchor = anchors.get_anchor (glyph_index, mark_class, 
class_count);
+    bool found;
+    const Anchor& glyph_anchor = anchors.get_anchor (glyph_index, mark_class, 
class_count, &found);
+    /* If this subtable doesn't have an anchor for this base and this class,
+     * return false such that the subsequent subtables have a chance at it. */
+    if (unlikely (!found)) return TRACE_RETURN (false);
 
     hb_position_t mark_x, mark_y, base_x, base_y;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/src/hb-ot-layout-gsubgpos-private.hh 
new/harfbuzz-0.9.11/src/hb-ot-layout-gsubgpos-private.hh
--- old/harfbuzz-0.9.10/src/hb-ot-layout-gsubgpos-private.hh    2013-01-03 
06:36:11.000000000 +0100
+++ new/harfbuzz-0.9.11/src/hb-ot-layout-gsubgpos-private.hh    2013-01-04 
08:25:08.000000000 +0100
@@ -62,7 +62,7 @@
   template <typename T>
   inline return_t process (const T &obj) { obj.closure (this); return HB_VOID; 
}
   static return_t default_return_value (void) { return HB_VOID; }
-  bool stop_sublookup_iteration (const return_t r HB_UNUSED) const { return 
false; }
+  bool stop_sublookup_iteration (return_t r HB_UNUSED) const { return false; }
   return_t recurse (unsigned int lookup_index)
   {
     if (unlikely (nesting_level_left == 0 || !recurse_func))
@@ -111,7 +111,7 @@
   template <typename T>
   inline return_t process (const T &obj) { return obj.would_apply (this); }
   static return_t default_return_value (void) { return false; }
-  bool stop_sublookup_iteration (const return_t r) const { return r; }
+  bool stop_sublookup_iteration (return_t r) const { return r; }
 
   hb_face_t *face;
   const hb_codepoint_t *glyphs;
@@ -150,7 +150,7 @@
   template <typename T>
   inline return_t process (const T &obj) { obj.collect_glyphs (this); return 
HB_VOID; }
   static return_t default_return_value (void) { return HB_VOID; }
-  bool stop_sublookup_iteration (const return_t r HB_UNUSED) const { return 
false; }
+  bool stop_sublookup_iteration (return_t r HB_UNUSED) const { return false; }
   return_t recurse (unsigned int lookup_index)
   {
     if (unlikely (nesting_level_left == 0 || !recurse_func))
@@ -243,7 +243,7 @@
   template <typename T>
   inline return_t process (const T &obj) { return obj.apply (this); }
   static return_t default_return_value (void) { return false; }
-  bool stop_sublookup_iteration (const return_t r) const { return r; }
+  bool stop_sublookup_iteration (return_t r) const { return r; }
   return_t recurse (unsigned int lookup_index)
   {
     if (unlikely (nesting_level_left == 0 || !recurse_func))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic.cc 
new/harfbuzz-0.9.11/src/hb-ot-shape-complex-indic.cc
--- old/harfbuzz-0.9.10/src/hb-ot-shape-complex-indic.cc        2012-12-30 
00:39:10.000000000 +0100
+++ new/harfbuzz-0.9.11/src/hb-ot-shape-complex-indic.cc        2013-01-09 
01:08:21.000000000 +0100
@@ -644,15 +644,16 @@
     info[start].indic_position() = POS_RA_TO_BECOME_REPH;
 
   /* For old-style Indic script tags, move the first post-base Halant after
-   * last consonant. */
+   * last consonant.  Only do this if there is *not* a Halant after last
+   * consonant.  Otherwise it becomes messy. */
   if (indic_plan->is_old_spec) {
     for (unsigned int i = base + 1; i < end; i++)
       if (info[i].indic_category() == OT_H) {
         unsigned int j;
         for (j = end - 1; j > i; j--)
-         if (is_consonant (info[j]))
+         if (is_consonant (info[j]) || info[j].indic_category() == OT_H)
            break;
-       if (j > i) {
+       if (info[j].indic_category() != OT_H && j > i) {
          /* Move Halant to after last consonant. */
          hb_glyph_info_t t = info[i];
          memmove (&info[i], &info[i + 1], (j - i) * sizeof (info[0]));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/src/hb-shaper-private.hh 
new/harfbuzz-0.9.11/src/hb-shaper-private.hh
--- old/harfbuzz-0.9.10/src/hb-shaper-private.hh        2012-11-23 
21:30:42.000000000 +0100
+++ new/harfbuzz-0.9.11/src/hb-shaper-private.hh        2013-01-10 
07:03:23.000000000 +0100
@@ -95,7 +95,10 @@
     if (unlikely (!data)) \
       data = (HB_SHAPER_DATA_TYPE (shaper, object) *) HB_SHAPER_DATA_INVALID; \
     if (!hb_atomic_ptr_cmpexch (&HB_SHAPER_DATA (shaper, object), NULL, data)) 
{ \
-      HB_SHAPER_DATA_DESTROY_FUNC (shaper, object) (data); \
+      if (data && \
+         data != HB_SHAPER_DATA_INVALID && \
+         data != HB_SHAPER_DATA_SUCCEEDED) \
+       HB_SHAPER_DATA_DESTROY_FUNC (shaper, object) (data); \
       goto retry; \
     } \
   } \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/src/hb-version.h 
new/harfbuzz-0.9.11/src/hb-version.h
--- old/harfbuzz-0.9.10/src/hb-version.h        2013-01-03 07:09:02.000000000 
+0100
+++ new/harfbuzz-0.9.11/src/hb-version.h        2013-01-10 16:05:28.000000000 
+0100
@@ -38,9 +38,9 @@
 
 #define HB_VERSION_MAJOR 0
 #define HB_VERSION_MINOR 9
-#define HB_VERSION_MICRO 10
+#define HB_VERSION_MICRO 11
 
-#define HB_VERSION_STRING "0.9.10"
+#define HB_VERSION_STRING "0.9.11"
 
 #define HB_VERSION_CHECK(major,minor,micro) \
        ((major)*10000+(minor)*100+(micro) >= \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/test/api/test-buffer.c 
new/harfbuzz-0.9.11/test/api/test-buffer.c
--- old/harfbuzz-0.9.10/test/api/test-buffer.c  2012-11-14 21:36:34.000000000 
+0100
+++ new/harfbuzz-0.9.11/test/api/test-buffer.c  2013-01-07 23:45:33.000000000 
+0100
@@ -135,7 +135,7 @@
 
   /* test clear clears all properties but unicode_funcs */
 
-  hb_buffer_clear (b);
+  hb_buffer_clear_contents (b);
 
   g_assert (hb_buffer_get_unicode_funcs (b) == ufuncs);
   g_assert (hb_buffer_get_direction (b) == HB_DIRECTION_INVALID);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/harfbuzz-0.9.10/util/options.hh 
new/harfbuzz-0.9.11/util/options.hh
--- old/harfbuzz-0.9.10/util/options.hh 2012-12-30 00:39:10.000000000 +0100
+++ new/harfbuzz-0.9.11/util/options.hh 2013-01-07 23:46:24.000000000 +0100
@@ -175,7 +175,7 @@
   void populate_buffer (hb_buffer_t *buffer, const char *text, int text_len,
                        const char *text_before, const char *text_after)
   {
-    hb_buffer_clear (buffer);
+    hb_buffer_clear_contents (buffer);
     if (text_before) {
       unsigned int len = strlen (text_before);
       hb_buffer_add_utf8 (buffer, text_before, len, len, 0);

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to