From 343e9ffbf4c121ec315d92cc76c33bd855ce3df2 Mon Sep 17 00:00:00 2001
From: Doug Felt <dougfelt@google.com>
Date: Sun, 13 Mar 2016 14:56:02 -0700
Subject: [PATCH] Add 'unknown flag' glyph.

This uses PUA character U+FE82B for the unknown flag during processing.
Currently I don't yet remove this from the cmap when we're done.
---
 Makefile                              |   2 ++
 png/128/emoji_ufe82b.png              | Bin 0 -> 2251 bytes
 third_party/color_emoji/add_glyphs.py |  13 +++++++++----
 3 files changed, 11 insertions(+), 4 deletions(-)
 create mode 100644 png/128/emoji_ufe82b.png

diff --git a/Makefile b/Makefile
index dc450eb53..cbdd6ffa1 100644
--- a/Makefile
+++ b/Makefile
@@ -43,6 +43,8 @@ RENAMED_FLAGS_DIR := $(BUILD_DIR)/renamed_flags
 QUANTIZED_DIR := $(BUILD_DIR)/quantized_pngs
 COMPRESSED_DIR := $(BUILD_DIR)/compressed_pngs
 
+# Unknown flag is PUA fe82b
+
 LIMITED_FLAGS = CN DE ES FR GB IT JP KR RU US
 SELECTED_FLAGS = AC AD AE AF AG AI AL AM AO AQ AR AS AT AU AW AX AZ \
 	BA BB BD BE BF BG BH BI BJ BM BN BO BR BS BT BW BY BZ \
diff --git a/png/128/emoji_ufe82b.png b/png/128/emoji_ufe82b.png
new file mode 100644
index 0000000000000000000000000000000000000000..90ffa25e62de57b8efb368f7339fef73033c20d1
GIT binary patch
literal 2251
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
ZzyNT8I~cU`74854002ovPDHLkV1fXB??M0o

literal 0
HcmV?d00001

diff --git a/third_party/color_emoji/add_glyphs.py b/third_party/color_emoji/add_glyphs.py
index 2cba6a809..77d5c7e89 100644
--- a/third_party/color_emoji/add_glyphs.py
+++ b/third_party/color_emoji/add_glyphs.py
@@ -5,8 +5,9 @@ from fontTools import ttx
 from fontTools.ttLib.tables import otTables
 from png import PNG
 
-# TODO: replace with actual name once we have a glyph.
-MISSING_FLAG_GLYPH_NAME = "u2764"
+# PUA character for unknown flag.  This avoids the legacy emoji pua values, but
+# is in the same area.
+UNKNOWN_FLAG_GLYPH_NAME = "uFE82B"
 
 sys.path.append(
     os.path.join(os.path.dirname(__file__), os.pardir, os.pardir))
@@ -166,9 +167,9 @@ def add_lig_sequence(ligatures, seq, n):
 
 
 for (u, filename) in img_pairs:
-	# print "Adding glyph for U+%s" % ",".join (["%04X" % ord (char) for char in u])
 	n = glyph_name (u)
         glyph_names.add(n)
+	# print "Adding glyph for %s" % n
 
 	g.append (n)
 	for char in u:
@@ -205,6 +206,10 @@ for k in ligatures:
     have_flags = True
     break
 
+if have_flags and UNKNOWN_FLAG_GLYPH_NAME not in glyph_names:
+  raise ValueError(
+      'Have flags but no unknown flag glyph "%s"' % UNKNOWN_FLAG_GLYPH_NAME)
+
 # sigh, too many separate files with the same code.
 # copied from add_emoji_gsub.
 def _reg_indicator(letter):
@@ -233,7 +238,7 @@ if have_flags:
     for second in regional_names:
       seq = (first, second)
       if seq not in ligatures:
-        add_lig_sequence(ligatures, seq, MISSING_FLAG_GLYPH_NAME)
+        add_lig_sequence(ligatures, seq, UNKNOWN_FLAG_GLYPH_NAME)
 
 
 keyed_ligatures = collections.defaultdict(list)