aboutsummaryrefslogtreecommitdiff
path: root/system/noto-emoji/patches/293da509043595a052efbead51a9effbbb13794c.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/noto-emoji/patches/293da509043595a052efbead51a9effbbb13794c.patch')
-rw-r--r--system/noto-emoji/patches/293da509043595a052efbead51a9effbbb13794c.patch84
1 files changed, 0 insertions, 84 deletions
diff --git a/system/noto-emoji/patches/293da509043595a052efbead51a9effbbb13794c.patch b/system/noto-emoji/patches/293da509043595a052efbead51a9effbbb13794c.patch
deleted file mode 100644
index 5aea67682fa7d..0000000000000
--- a/system/noto-emoji/patches/293da509043595a052efbead51a9effbbb13794c.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 293da509043595a052efbead51a9effbbb13794c Mon Sep 17 00:00:00 2001
-From: Andrew Clemons <andrew.clemons@gmail.com>
-Date: Thu, 9 Mar 2017 21:48:18 +1300
-Subject: [PATCH] Add support for "narrow" python to emoji_builder.py
-
-The code currently only works with wide builds since it does not take
-UTF-16 surrogate pairs into account.
----
- third_party/color_emoji/emoji_builder.py | 41 ++++++++++++++++++++++++++++----
- 1 file changed, 37 insertions(+), 4 deletions(-)
-
-diff --git a/third_party/color_emoji/emoji_builder.py b/third_party/color_emoji/emoji_builder.py
-index c118e83..3d3e0c8 100644
---- a/third_party/color_emoji/emoji_builder.py
-+++ b/third_party/color_emoji/emoji_builder.py
-@@ -25,10 +25,36 @@
-
- from nototools import font_data
-
-+def myunichr(cp):
-+ if sys.maxunicode < 0x10FFFF and cp > 0xFFFF:
-+ return ("\\U" + hex(cp)[2:].zfill(8)).decode("unicode-escape")
-+ return unichr(cp)
-+
-+def myord(high, low):
-+ return (ord(high) - 0xD800) * 0x400 + (ord(low) - 0xDC00) + 0x10000
-+
-+def begins_with_surrogate(string):
-+ return sys.maxunicode < 0x10FFFF and len(string) > 1 and (0xD800 <= ord(string[0]) <= 0xDBFF) and (0xDC00 <= ord(string[1]) <= 0xDFFF)
-+
- def get_glyph_name_from_gsub (string, font, cmap_dict):
- ligatures = font['GSUB'].table.LookupList.Lookup[0].SubTable[0].ligatures
-- first_glyph = cmap_dict[ord (string[0])]
-- rest_of_glyphs = [cmap_dict[ord (ch)] for ch in string[1:]]
-+
-+ if begins_with_surrogate(string):
-+ first_glyph = cmap_dict[myord(string[0], string[1])]
-+ string = string[2:]
-+ else:
-+ first_glyph = cmap_dict[ord (string[0])]
-+ string = string[1:]
-+
-+ rest_of_glyphs = []
-+ while (len(string) > 0):
-+ if begins_with_surrogate(string):
-+ rest_of_glyphs.append(cmap_dict[myord(string[0], string[1])])
-+ string = string[2:]
-+ else:
-+ rest_of_glyphs.append(cmap_dict[ord (string[0])])
-+ string = string[1:]
-+
- for ligature in ligatures[first_glyph]:
- if ligature.Component == rest_of_glyphs:
- return ligature.LigGlyph
-@@ -462,13 +488,13 @@ def is_vs(cp):
- if "_" in codes:
- pieces = codes.split ("_")
- cps = [int(code, 16) for code in pieces]
-- uchars = "".join ([unichr(cp) for cp in cps if not is_vs(cp)])
-+ uchars = "".join ([myunichr(cp) for cp in cps if not is_vs(cp)])
- else:
- cp = int(codes, 16)
- if is_vs(cp):
- print "ignoring unexpected vs input %04x" % cp
- continue
-- uchars = unichr(cp)
-+ uchars = myunichr(cp)
- img_files[uchars] = img_file
- if not img_files:
- raise Exception ("No image files found in '%s'." % glb)
-@@ -483,6 +509,13 @@ def is_vs(cp):
- except:
- print "no cmap entry for %x" % ord(uchars)
- raise ValueError("%x" % ord(uchars))
-+ elif len (uchars) == 2 and begins_with_surrogate(uchars):
-+ cp = myord(uchars[0], uchars[1])
-+ try:
-+ glyph_name = unicode_cmap.cmap[cp]
-+ except:
-+ print "no cmap entry for %x" % cp
-+ raise ValueError("%x" % ord(uchars))
- else:
- glyph_name = get_glyph_name_from_gsub (uchars, font, unicode_cmap.cmap)
- glyph_id = font.getGlyphID (glyph_name)