[gtk+/wip/matthiasc/emoji-picker] Add a blacklist



commit 0d0fa322c090db172f22ff329c7b344acb6f617e
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Aug 10 13:27:06 2017 -0400

    Add a blacklist
    
    Stolen from polari. This avoids all the emoji that render as
    multiple characters with Noto.

 tests/convert.c |   47 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 45 insertions(+), 2 deletions(-)
---
diff --git a/tests/convert.c b/tests/convert.c
index e9cff68..3619707 100644
--- a/tests/convert.c
+++ b/tests/convert.c
@@ -18,7 +18,7 @@ parse_code (GVariantBuilder *b, const char *code)
                         g_error ("failed to parse code: %s\n", strv[j]);
                         return FALSE;
                 }
-                if (u != 0xfe0f || u1 == 0x2764)
+                //if (u != 0xfe0f || strv[j+1] != 0)
                         g_variant_builder_add (b, "u", u);
                 u1 = u;
         }
@@ -26,6 +26,35 @@ parse_code (GVariantBuilder *b, const char *code)
         return TRUE;
 }
 
+static const char *blacklist[] = {
+  "child",
+  "adult",
+  "older adult",
+  "woman with headscarf",
+  "bearded person",
+  "breast-feeding",
+  "mage",
+  "fairy",
+  "vampire",
+  "merperson",
+  "merman",
+  "mermaid",
+  "elf",
+  "genie",
+  "zombie",
+  "in steamy room",
+  "climbing",
+  "in lotus position",
+  "person in bed",
+  "man in suit levitating",
+  "horse racing",
+  "snowboarder",
+  "golfing",
+  "love-you gesture",
+  "palms up together",
+  NULL
+};
+
 int
 main (int argc, char *argv[])
 {
@@ -58,6 +87,10 @@ main (int argc, char *argv[])
                 GVariantBuilder b1, b2;
                 const char *name;
                 const char *code;
+                int j;
+                gboolean skip;
+
+                i++;
 
                 g_variant_builder_init (&b1, G_VARIANT_TYPE ("au"));
                 g_variant_builder_init (&b2, G_VARIANT_TYPE ("aau"));
@@ -65,10 +98,20 @@ main (int argc, char *argv[])
                 name = json_object_get_string_member (obj, "name");
                 code = json_object_get_string_member (obj, "code");
 
+                if (strcmp (name, "world map") == 0)
+                        continue;
+
+                skip = FALSE;
+                for (j = 0; blacklist[j]; j++) {
+                        if (strstr (name, blacklist[j]) != 0)
+                                skip = TRUE;
+                }
+                if (skip)
+                        continue;
+
                 if (!parse_code (&b1, code))
                         return 1;
 
-                i++;
                 while (i < length) {
                         JsonNode *node2 = json_array_get_element (array, i);
                         JsonObject *obj2 = json_node_get_object (node2);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]