[HarfBuzz] harfbuzz: Branch 'master' - 3 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Tue Jan 6 16:58:48 PST 2015


 src/hb-blob.cc    |    4 ++--
 src/hb-glib.cc    |   11 +++++++++++
 src/hb-glib.h     |    3 +++
 src/hb-shape.cc   |    2 +-
 src/hb-unicode.cc |    2 +-
 src/sample.py     |   15 ++++++++++++++-
 6 files changed, 32 insertions(+), 5 deletions(-)

New commits:
commit 0ef179e2dc040c13497af847b8c1cec846dbdbf9
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Jan 6 16:58:33 2015 -0800

    [glib] Add hb_glib_blob_create() that takes GBytes

diff --git a/src/hb-glib.cc b/src/hb-glib.cc
index af43cab..61dff5e 100644
--- a/src/hb-glib.cc
+++ b/src/hb-glib.cc
@@ -382,3 +382,14 @@ hb_glib_get_unicode_funcs (void)
   return const_cast<hb_unicode_funcs_t *> (&_hb_glib_unicode_funcs);
 }
 
+hb_blob_t *
+hb_glib_blob_create (GBytes *gbytes)
+{
+  gsize size = 0;
+  gconstpointer data = g_bytes_get_data (gbytes, &size);
+  return hb_blob_create ((const char *) data,
+			 size,
+			 HB_MEMORY_MODE_READONLY,
+			 g_bytes_ref (gbytes),
+			 (hb_destroy_func_t) g_bytes_unref);
+}
diff --git a/src/hb-glib.h b/src/hb-glib.h
index 63a9d33..1a8f42e 100644
--- a/src/hb-glib.h
+++ b/src/hb-glib.h
@@ -46,6 +46,9 @@ hb_glib_script_from_script (hb_script_t script);
 hb_unicode_funcs_t *
 hb_glib_get_unicode_funcs (void);
 
+hb_blob_t *
+hb_glib_blob_create (GBytes *gbytes);
+
 
 HB_END_DECLS
 
commit b91904a40da6287f84bc79de60674fa57232ec09
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Jan 6 15:43:14 2015 -0800

    [bindings] Replace deprecated allow-none with optional and nullable

diff --git a/src/hb-blob.cc b/src/hb-blob.cc
index d8b295e..51ea20d 100644
--- a/src/hb-blob.cc
+++ b/src/hb-blob.cc
@@ -82,8 +82,8 @@ _hb_blob_destroy_user_data (hb_blob_t *blob)
  * @data: (array length=length) (element-type uint8_t) (closure user_data) (destroy destroy) (scope notified) (transfer none): Pointer to blob data.
  * @length: Length of @data in bytes.
  * @mode: Memory mode for @data.
- * @user_data: (allow-none): Data parameter to pass to @destroy.
- * @destroy: (allow-none): Callback to call when @data is not needed anymore.
+ * @user_data: (nullable): Data parameter to pass to @destroy.
+ * @destroy: (nullable): Callback to call when @data is not needed anymore.
  *
  * Creates a new "blob" object wrapping @data.  The @mode parameter is used
  * to negotiate ownership and lifecycle of @data.
diff --git a/src/hb-shape.cc b/src/hb-shape.cc
index 100fb3c..9a59c08 100644
--- a/src/hb-shape.cc
+++ b/src/hb-shape.cc
@@ -200,7 +200,7 @@ parse_one_feature (const char **pp, const char *end, hb_feature_t *feature)
  * hb_feature_from_string:
  * @str: (array length=len):
  * @len: 
- * @feature: (out) (allow-none):
+ * @feature: (out) (optional):
  *
  * 
  *
diff --git a/src/hb-unicode.cc b/src/hb-unicode.cc
index d59dfb2..fc19006 100644
--- a/src/hb-unicode.cc
+++ b/src/hb-unicode.cc
@@ -157,7 +157,7 @@ hb_unicode_funcs_get_default (void)
 
 /**
  * hb_unicode_funcs_create: (Xconstructor)
- * @parent: (allow-none):
+ * @parent: (nullable):
  *
  * 
  *
commit 81a31f3eff44a85bb2160d51156a01a18f0a97df
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Jan 6 15:37:31 2015 -0800

    [bindings] Make sample Python 2/3 compatible

diff --git a/src/sample.py b/src/sample.py
index e2daba8..5a76f91 100755
--- a/src/sample.py
+++ b/src/sample.py
@@ -5,6 +5,19 @@ from __future__ import print_function
 import sys
 from gi.repository import HarfBuzz as hb
 
+# Python 2/3 compatibility
+try:
+	unicode
+except NameError:
+	unicode = str
+
+def tounicode(s, encoding='utf-8'):
+	if not isinstance(s, unicode):
+		return s.decode(encoding)
+	else:
+		return s
+
+
 def nothing(data):
 	print(data)
 
@@ -12,7 +25,7 @@ fontdata = open (sys.argv[1], 'rb').read ()
 
 blob = hb.blob_create (fontdata, hb.memory_mode_t.DUPLICATE, 1234, None)
 buf = hb.buffer_create ()
-hb.buffer_add_utf8 (buf, "Hello بهداد", 0, -1)
+hb.buffer_add_utf8 (buf, tounicode("Hello بهداد").encode('utf-8'), 0, -1)
 hb.buffer_guess_segment_properties (buf)
 
 face = hb.face_create (blob, 0)


More information about the HarfBuzz mailing list