[bindings] Make sample Python 2/3 compatible

This commit is contained in:
Behdad Esfahbod 2015-01-06 15:37:31 -08:00
parent b632e7997d
commit 81a31f3eff
1 changed files with 14 additions and 1 deletions

View File

@ -5,6 +5,19 @@ from __future__ import print_function
import sys import sys
from gi.repository import HarfBuzz as hb 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): def nothing(data):
print(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) blob = hb.blob_create (fontdata, hb.memory_mode_t.DUPLICATE, 1234, None)
buf = hb.buffer_create () 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) hb.buffer_guess_segment_properties (buf)
face = hb.face_create (blob, 0) face = hb.face_create (blob, 0)