Merge branch 'master' into conflictingFontFix
This commit is contained in:
commit
f7da0486ed
|
@ -20,6 +20,7 @@ def tounicode(s, encoding='utf-8'):
|
|||
|
||||
fontdata = open (sys.argv[1], 'rb').read ()
|
||||
text = tounicode(sys.argv[2])
|
||||
codepoints = list(map(ord, text))
|
||||
# Need to create GLib.Bytes explicitly until this bug is fixed:
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=729541
|
||||
blob = hb.glib_blob_create (GLib.Bytes.new (fontdata))
|
||||
|
@ -39,7 +40,7 @@ class Debugger(object):
|
|||
return True
|
||||
debugger = Debugger()
|
||||
hb.buffer_set_message_func (buf, debugger.message, 1, 0)
|
||||
hb.buffer_add_utf8 (buf, text.encode('utf-8'), 0, -1)
|
||||
hb.buffer_add_utf32 (buf, codepoints, 0, len(codepoints))
|
||||
hb.buffer_guess_segment_properties (buf)
|
||||
|
||||
hb.shape (font, buf, [])
|
||||
|
|
|
@ -7,7 +7,43 @@ from itertools import *
|
|||
diff_symbols = "-+=*&^%$#@!~/"
|
||||
diff_colors = ['red', 'green', 'blue']
|
||||
|
||||
if sys.version_info[0] >= 3:
|
||||
try:
|
||||
unichr = unichr
|
||||
|
||||
if sys.maxunicode < 0x10FFFF:
|
||||
# workarounds for Python 2 "narrow" builds with UCS2-only support.
|
||||
|
||||
_narrow_unichr = unichr
|
||||
|
||||
def unichr(i):
|
||||
"""
|
||||
Return the unicode character whose Unicode code is the integer 'i'.
|
||||
The valid range is 0 to 0x10FFFF inclusive.
|
||||
|
||||
>>> _narrow_unichr(0xFFFF + 1)
|
||||
Traceback (most recent call last):
|
||||
File "<stdin>", line 1, in ?
|
||||
ValueError: unichr() arg not in range(0x10000) (narrow Python build)
|
||||
>>> unichr(0xFFFF + 1) == u'\U00010000'
|
||||
True
|
||||
>>> unichr(1114111) == u'\U0010FFFF'
|
||||
True
|
||||
>>> unichr(0x10FFFF + 1)
|
||||
Traceback (most recent call last):
|
||||
File "<stdin>", line 1, in ?
|
||||
ValueError: unichr() arg not in range(0x110000)
|
||||
"""
|
||||
try:
|
||||
return _narrow_unichr(i)
|
||||
except ValueError:
|
||||
try:
|
||||
padded_hex_str = hex(i)[2:].zfill(8)
|
||||
escape_str = "\\U" + padded_hex_str
|
||||
return escape_str.decode("unicode-escape")
|
||||
except UnicodeDecodeError:
|
||||
raise ValueError('unichr() arg not in range(0x110000)')
|
||||
|
||||
except NameError:
|
||||
unichr = chr
|
||||
|
||||
class ColorFormatter:
|
||||
|
|
Loading…
Reference in New Issue