[gtk/wip/compose-parser: 7/15] composetable: Handle substitutions in includes




commit ff4f07d76fc0cb253abc44856139fd8cf65699fd
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Jul 7 13:56:19 2021 -0400

    composetable: Handle substitutions in includes
    
    Hande the %H, %L, %S substitutions that are described
    in Compose(7).
    
    Test included.

 gtk/gtkcomposetable.c                 |  46 ++-
 testsuite/gtk/compose/system          |   1 +
 testsuite/gtk/compose/system.expected | 587 ++++++++++++++++++++++++++++++++++
 testsuite/gtk/composetable.c          |   2 +
 4 files changed, 635 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtkcomposetable.c b/gtk/gtkcomposetable.c
index b8561aa161..af064d7461 100644
--- a/gtk/gtkcomposetable.c
+++ b/gtk/gtkcomposetable.c
@@ -254,6 +254,50 @@ fail:
 static void parser_parse_file (GtkComposeParser *parser,
                                const char       *path);
 
+/* Substitute %H, %L and %S */
+static char *
+handle_substitutions (const char *start,
+                      int         length)
+{
+  GString *s;
+  const char *locale_name;
+   const char *p;
+
+  s = g_string_new ("");
+
+  locale_name = getenv ("LANG");
+
+  for (p = start; *p && p < start + length; p++)
+    {
+      if (*p != '%')
+        {
+          g_string_append_c (s, *p);
+        }
+      else
+        {
+          switch (p[1])
+            {
+            case 'H':
+              p++;
+              g_string_append (s, g_get_home_dir ());
+              break;
+            case 'L':
+              p++;
+              g_string_append_printf (s, "/usr/share/X11/locale/%s/Compose", locale_name);
+              break;
+            case 'S':
+              p++;
+              g_string_append (s, "/usr/share/X11/locale");
+              break;
+            default: ;
+              /* do nothing, next iteration handles p[1] */
+            }
+        }
+    }
+
+  return g_string_free (s, FALSE);
+}
+
 static void
 parser_handle_include (GtkComposeParser *parser,
                        const char       *line)
@@ -290,7 +334,7 @@ parser_handle_include (GtkComposeParser *parser,
   if (*p && *p != '#')
     goto error;
 
-  path = g_strndup (start, end - start);
+  path = handle_substitutions (start, end - start);
 
   parser_parse_file (parser, path);
 
diff --git a/testsuite/gtk/compose/system b/testsuite/gtk/compose/system
new file mode 100644
index 0000000000..28fe1f1616
--- /dev/null
+++ b/testsuite/gtk/compose/system
@@ -0,0 +1 @@
+include "%L"
diff --git a/testsuite/gtk/compose/system.expected b/testsuite/gtk/compose/system.expected
new file mode 100644
index 0000000000..6fdf4fab29
--- /dev/null
+++ b/testsuite/gtk/compose/system.expected
@@ -0,0 +1,587 @@
+# n_seqs: 585
+# max_seq_len: 5
+<U17fb> <U0> <U0> <U0> <U0> : "ុះ"
+<U17fc> <U0> <U0> <U0> <U0> : "ុំ"
+<U17fd> <U0> <U0> <U0> <U0> : "េះ"
+<U17fe> <U0> <U0> <U0> <U0> : "ោះ"
+<U17ff> <U0> <U0> <U0> <U0> : "ាំ"
+<Ufe50> <U4d> <U0> <U0> <U0> : "M̀"
+<Ufe50> <U6d> <U0> <U0> <U0> : "m̀"
+<Ufe50> <U186> <U0> <U0> <U0> : "Ɔ̀"
+<Ufe50> <U18e> <U0> <U0> <U0> : "Ǝ̀"
+<Ufe50> <U190> <U0> <U0> <U0> : "Ɛ̀"
+<Ufe50> <U196> <U0> <U0> <U0> : "Ɩ̀"
+<Ufe50> <U1b1> <U0> <U0> <U0> : "Ʊ̀"
+<Ufe50> <U1b2> <U0> <U0> <U0> : "Ʋ̀"
+<Ufe50> <U1dd> <U0> <U0> <U0> : "ǝ̀"
+<Ufe50> <U254> <U0> <U0> <U0> : "ɔ̀"
+<Ufe50> <U25b> <U0> <U0> <U0> : "ɛ̀"
+<Ufe50> <U269> <U0> <U0> <U0> : "ɩ̀"
+<Ufe50> <U28a> <U0> <U0> <U0> : "ʊ̀"
+<Ufe50> <U28b> <U0> <U0> <U0> : "ʋ̀"
+<Ufe50> <U3bd> <U0> <U0> <U0> : "Ŋ̀"
+<Ufe50> <U3bf> <U0> <U0> <U0> : "ŋ̀"
+<Ufe50> <U6c1> <U0> <U0> <U0> : "а̀"
+<Ufe50> <U6cf> <U0> <U0> <U0> : "о̀"
+<Ufe50> <U6d2> <U0> <U0> <U0> : "р̀"
+<Ufe50> <U6d5> <U0> <U0> <U0> : "у̀"
+<Ufe50> <U6e1> <U0> <U0> <U0> : "А̀"
+<Ufe50> <U6ef> <U0> <U0> <U0> : "О̀"
+<Ufe50> <U6f2> <U0> <U0> <U0> : "Р̀"
+<Ufe50> <U6f5> <U0> <U0> <U0> : "У̀"
+<Ufe50> <U1f00> <U0> <U0> <U0> : "ἂ" # U1f02
+<Ufe50> <U1f01> <U0> <U0> <U0> : "ἃ" # U1f03
+<Ufe50> <U1f08> <U0> <U0> <U0> : "Ἂ" # U1f0a
+<Ufe50> <U1f09> <U0> <U0> <U0> : "Ἃ" # U1f0b
+<Ufe50> <U1f10> <U0> <U0> <U0> : "ἒ" # U1f12
+<Ufe50> <U1f11> <U0> <U0> <U0> : "ἓ" # U1f13
+<Ufe50> <U1f18> <U0> <U0> <U0> : "Ἒ" # U1f1a
+<Ufe50> <U1f19> <U0> <U0> <U0> : "Ἓ" # U1f1b
+<Ufe50> <U1f20> <U0> <U0> <U0> : "ἢ" # U1f22
+<Ufe50> <U1f21> <U0> <U0> <U0> : "ἣ" # U1f23
+<Ufe50> <U1f28> <U0> <U0> <U0> : "Ἢ" # U1f2a
+<Ufe50> <U1f29> <U0> <U0> <U0> : "Ἣ" # U1f2b
+<Ufe50> <U1f30> <U0> <U0> <U0> : "ἲ" # U1f32
+<Ufe50> <U1f31> <U0> <U0> <U0> : "ἳ" # U1f33
+<Ufe50> <U1f38> <U0> <U0> <U0> : "Ἲ" # U1f3a
+<Ufe50> <U1f39> <U0> <U0> <U0> : "Ἳ" # U1f3b
+<Ufe50> <U1f40> <U0> <U0> <U0> : "ὂ" # U1f42
+<Ufe50> <U1f41> <U0> <U0> <U0> : "ὃ" # U1f43
+<Ufe50> <U1f48> <U0> <U0> <U0> : "Ὂ" # U1f4a
+<Ufe50> <U1f49> <U0> <U0> <U0> : "Ὃ" # U1f4b
+<Ufe50> <U1f50> <U0> <U0> <U0> : "ὒ" # U1f52
+<Ufe50> <U1f51> <U0> <U0> <U0> : "ὓ" # U1f53
+<Ufe50> <U1f59> <U0> <U0> <U0> : "Ὓ" # U1f5b
+<Ufe50> <U1f60> <U0> <U0> <U0> : "ὢ" # U1f62
+<Ufe50> <U1f61> <U0> <U0> <U0> : "ὣ" # U1f63
+<Ufe50> <U1f68> <U0> <U0> <U0> : "Ὢ" # U1f6a
+<Ufe50> <U1f69> <U0> <U0> <U0> : "Ὣ" # U1f6b
+<Ufe50> <Ufe53> <U41> <U0> <U0> : "Ã̀"
+<Ufe50> <Ufe53> <U45> <U0> <U0> : "Ẽ̀"
+<Ufe50> <Ufe53> <U49> <U0> <U0> : "Ĩ̀"
+<Ufe50> <Ufe53> <U4f> <U0> <U0> : "Õ̀"
+<Ufe50> <Ufe53> <U55> <U0> <U0> : "Ũ̀"
+<Ufe50> <Ufe53> <U61> <U0> <U0> : "ã̀"
+<Ufe50> <Ufe53> <U65> <U0> <U0> : "ẽ̀"
+<Ufe50> <Ufe53> <U69> <U0> <U0> : "ĩ̀"
+<Ufe50> <Ufe53> <U6f> <U0> <U0> : "õ̀"
+<Ufe50> <Ufe53> <U75> <U0> <U0> : "ũ̀"
+<Ufe50> <Ufe53> <U186> <U0> <U0> : "Ɔ̃̀"
+<Ufe50> <Ufe53> <U18e> <U0> <U0> : "Ǝ̃̀"
+<Ufe50> <Ufe53> <U190> <U0> <U0> : "Ɛ̃̀"
+<Ufe50> <Ufe53> <U1dd> <U0> <U0> : "ǝ̃̀"
+<Ufe50> <Ufe53> <U254> <U0> <U0> : "ɔ̃̀"
+<Ufe50> <Ufe53> <U25b> <U0> <U0> : "ɛ̃̀"
+<Ufe51> <U4a> <U0> <U0> <U0> : "J́"
+<Ufe51> <U6a> <U0> <U0> <U0> : "j́"
+<Ufe51> <U186> <U0> <U0> <U0> : "Ɔ́"
+<Ufe51> <U18e> <U0> <U0> <U0> : "Ǝ́"
+<Ufe51> <U190> <U0> <U0> <U0> : "Ɛ́"
+<Ufe51> <U196> <U0> <U0> <U0> : "Ɩ́"
+<Ufe51> <U1b1> <U0> <U0> <U0> : "Ʊ́"
+<Ufe51> <U1b2> <U0> <U0> <U0> : "Ʋ́"
+<Ufe51> <U1dd> <U0> <U0> <U0> : "ǝ́"
+<Ufe51> <U254> <U0> <U0> <U0> : "ɔ́"
+<Ufe51> <U25b> <U0> <U0> <U0> : "ɛ́"
+<Ufe51> <U269> <U0> <U0> <U0> : "ɩ́"
+<Ufe51> <U28a> <U0> <U0> <U0> : "ʊ́"
+<Ufe51> <U28b> <U0> <U0> <U0> : "ʋ́"
+<Ufe51> <U3bd> <U0> <U0> <U0> : "Ŋ́"
+<Ufe51> <U3bf> <U0> <U0> <U0> : "ŋ́"
+<Ufe51> <U6c0> <U0> <U0> <U0> : "ю́"
+<Ufe51> <U6c1> <U0> <U0> <U0> : "а́"
+<Ufe51> <U6c5> <U0> <U0> <U0> : "е́"
+<Ufe51> <U6c9> <U0> <U0> <U0> : "и́"
+<Ufe51> <U6cf> <U0> <U0> <U0> : "о́"
+<Ufe51> <U6d1> <U0> <U0> <U0> : "я́"
+<Ufe51> <U6d2> <U0> <U0> <U0> : "р́"
+<Ufe51> <U6d5> <U0> <U0> <U0> : "у́"
+<Ufe51> <U6d9> <U0> <U0> <U0> : "ы́"
+<Ufe51> <U6dc> <U0> <U0> <U0> : "э́"
+<Ufe51> <U6e0> <U0> <U0> <U0> : "Ю́́"
+<Ufe51> <U6e1> <U0> <U0> <U0> : "А́"
+<Ufe51> <U6e5> <U0> <U0> <U0> : "Е́"
+<Ufe51> <U6e9> <U0> <U0> <U0> : "И́"
+<Ufe51> <U6ef> <U0> <U0> <U0> : "О́"
+<Ufe51> <U6f1> <U0> <U0> <U0> : "Я́"
+<Ufe51> <U6f2> <U0> <U0> <U0> : "Р́"
+<Ufe51> <U6f5> <U0> <U0> <U0> : "У́"
+<Ufe51> <U6f9> <U0> <U0> <U0> : "Ы́"
+<Ufe51> <U6fc> <U0> <U0> <U0> : "Э́"
+<Ufe51> <U1f00> <U0> <U0> <U0> : "ἄ" # U1f04
+<Ufe51> <U1f01> <U0> <U0> <U0> : "ἅ" # U1f05
+<Ufe51> <U1f08> <U0> <U0> <U0> : "Ἄ" # U1f0c
+<Ufe51> <U1f09> <U0> <U0> <U0> : "Ἅ" # U1f0d
+<Ufe51> <U1f10> <U0> <U0> <U0> : "ἔ" # U1f14
+<Ufe51> <U1f11> <U0> <U0> <U0> : "ἕ" # U1f15
+<Ufe51> <U1f18> <U0> <U0> <U0> : "Ἔ" # U1f1c
+<Ufe51> <U1f19> <U0> <U0> <U0> : "Ἕ" # U1f1d
+<Ufe51> <U1f20> <U0> <U0> <U0> : "ἤ" # U1f24
+<Ufe51> <U1f21> <U0> <U0> <U0> : "ἥ" # U1f25
+<Ufe51> <U1f28> <U0> <U0> <U0> : "Ἤ" # U1f2c
+<Ufe51> <U1f29> <U0> <U0> <U0> : "Ἥ" # U1f2d
+<Ufe51> <U1f30> <U0> <U0> <U0> : "ἴ" # U1f34
+<Ufe51> <U1f31> <U0> <U0> <U0> : "ἵ" # U1f35
+<Ufe51> <U1f38> <U0> <U0> <U0> : "Ἴ" # U1f3c
+<Ufe51> <U1f39> <U0> <U0> <U0> : "Ἵ" # U1f3d
+<Ufe51> <U1f40> <U0> <U0> <U0> : "ὄ" # U1f44
+<Ufe51> <U1f41> <U0> <U0> <U0> : "ὅ" # U1f45
+<Ufe51> <U1f48> <U0> <U0> <U0> : "Ὄ" # U1f4c
+<Ufe51> <U1f49> <U0> <U0> <U0> : "Ὅ" # U1f4d
+<Ufe51> <U1f50> <U0> <U0> <U0> : "ὔ" # U1f54
+<Ufe51> <U1f51> <U0> <U0> <U0> : "ὕ" # U1f55
+<Ufe51> <U1f59> <U0> <U0> <U0> : "Ὕ" # U1f5d
+<Ufe51> <U1f60> <U0> <U0> <U0> : "ὤ" # U1f64
+<Ufe51> <U1f61> <U0> <U0> <U0> : "ὥ" # U1f65
+<Ufe51> <U1f68> <U0> <U0> <U0> : "Ὤ" # U1f6c
+<Ufe51> <U1f69> <U0> <U0> <U0> : "Ὥ" # U1f6d
+<Ufe51> <Ufe53> <U41> <U0> <U0> : "Ã́"
+<Ufe51> <Ufe53> <U45> <U0> <U0> : "Ẽ́"
+<Ufe51> <Ufe53> <U49> <U0> <U0> : "Ĩ́"
+<Ufe51> <Ufe53> <U61> <U0> <U0> : "ã́"
+<Ufe51> <Ufe53> <U65> <U0> <U0> : "ẽ́"
+<Ufe51> <Ufe53> <U69> <U0> <U0> : "ĩ́"
+<Ufe51> <Ufe53> <U186> <U0> <U0> : "Ɔ̃́"
+<Ufe51> <Ufe53> <U18e> <U0> <U0> : "Ǝ̃́"
+<Ufe51> <Ufe53> <U190> <U0> <U0> : "Ɛ̃́"
+<Ufe51> <Ufe53> <U1dd> <U0> <U0> : "ǝ̃́"
+<Ufe51> <Ufe53> <U254> <U0> <U0> : "ɔ̃́"
+<Ufe51> <Ufe53> <U25b> <U0> <U0> : "ɛ̃́"
+<Ufe52> <U186> <U0> <U0> <U0> : "Ɔ̂"
+<Ufe52> <U18e> <U0> <U0> <U0> : "Ǝ̂"
+<Ufe52> <U190> <U0> <U0> <U0> : "Ɛ̂"
+<Ufe52> <U196> <U0> <U0> <U0> : "Ɩ̂"
+<Ufe52> <U1b1> <U0> <U0> <U0> : "Ʊ̂"
+<Ufe52> <U1b2> <U0> <U0> <U0> : "Ʋ̂"
+<Ufe52> <U1dd> <U0> <U0> <U0> : "ǝ̂"
+<Ufe52> <U254> <U0> <U0> <U0> : "ɔ̂"
+<Ufe52> <U25b> <U0> <U0> <U0> : "ɛ̂"
+<Ufe52> <U269> <U0> <U0> <U0> : "ɩ̂"
+<Ufe52> <U28a> <U0> <U0> <U0> : "ʊ̂"
+<Ufe52> <U28b> <U0> <U0> <U0> : "ʋ̂"
+<Ufe52> <U6c1> <U0> <U0> <U0> : "а̂"
+<Ufe52> <U6c5> <U0> <U0> <U0> : "е̂"
+<Ufe52> <U6c9> <U0> <U0> <U0> : "и̂"
+<Ufe52> <U6cf> <U0> <U0> <U0> : "о̂"
+<Ufe52> <U6d2> <U0> <U0> <U0> : "р̂"
+<Ufe52> <U6d5> <U0> <U0> <U0> : "у̂"
+<Ufe52> <U6e1> <U0> <U0> <U0> : "А̂"
+<Ufe52> <U6e5> <U0> <U0> <U0> : "Е̂"
+<Ufe52> <U6e9> <U0> <U0> <U0> : "И̂"
+<Ufe52> <U6ef> <U0> <U0> <U0> : "О̂"
+<Ufe52> <U6f2> <U0> <U0> <U0> : "Р̂"
+<Ufe52> <U6f5> <U0> <U0> <U0> : "У̂"
+<Ufe52> <U1ea0> <U0> <U0> <U0> : "Ậ" # U1eac
+<Ufe52> <U1ea1> <U0> <U0> <U0> : "ậ" # U1ead
+<Ufe52> <U1eb8> <U0> <U0> <U0> : "Ệ" # U1ec6
+<Ufe52> <U1eb9> <U0> <U0> <U0> : "ệ" # U1ec7
+<Ufe52> <U1ecc> <U0> <U0> <U0> : "Ộ" # U1ed8
+<Ufe52> <U1ecd> <U0> <U0> <U0> : "ộ" # U1ed9
+<Ufe53> <U186> <U0> <U0> <U0> : "Ɔ̃"
+<Ufe53> <U18e> <U0> <U0> <U0> : "Ǝ̃"
+<Ufe53> <U190> <U0> <U0> <U0> : "Ɛ̃"
+<Ufe53> <U1dd> <U0> <U0> <U0> : "ǝ̃"
+<Ufe53> <U254> <U0> <U0> <U0> : "ɔ̃"
+<Ufe53> <U25b> <U0> <U0> <U0> : "ɛ̃"
+<Ufe54> <U186> <U0> <U0> <U0> : "Ɔ̄"
+<Ufe54> <U18e> <U0> <U0> <U0> : "Ǝ̄"
+<Ufe54> <U190> <U0> <U0> <U0> : "Ɛ̄"
+<Ufe54> <U196> <U0> <U0> <U0> : "Ɩ̄"
+<Ufe54> <U1b1> <U0> <U0> <U0> : "Ʊ̄"
+<Ufe54> <U1b2> <U0> <U0> <U0> : "Ʋ̄"
+<Ufe54> <U1dd> <U0> <U0> <U0> : "ǝ̄"
+<Ufe54> <U1ea> <U0> <U0> <U0> : "Ǭ" # U1ec
+<Ufe54> <U1eb> <U0> <U0> <U0> : "ǭ" # U1ed
+<Ufe54> <U226> <U0> <U0> <U0> : "Ǡ" # U1e0
+<Ufe54> <U227> <U0> <U0> <U0> : "ǡ" # U1e1
+<Ufe54> <U22e> <U0> <U0> <U0> : "Ȱ" # U230
+<Ufe54> <U22f> <U0> <U0> <U0> : "ȱ" # U231
+<Ufe54> <U254> <U0> <U0> <U0> : "ɔ̄"
+<Ufe54> <U25b> <U0> <U0> <U0> : "ɛ̄"
+<Ufe54> <U269> <U0> <U0> <U0> : "ɩ̄"
+<Ufe54> <U28a> <U0> <U0> <U0> : "ʊ̄"
+<Ufe54> <U28b> <U0> <U0> <U0> : "ʋ̄"
+<Ufe54> <U6c1> <U0> <U0> <U0> : "а̄"
+<Ufe54> <U6c5> <U0> <U0> <U0> : "е̄"
+<Ufe54> <U6cf> <U0> <U0> <U0> : "о̄"
+<Ufe54> <U6d2> <U0> <U0> <U0> : "р̄"
+<Ufe54> <U6e1> <U0> <U0> <U0> : "А̄"
+<Ufe54> <U6e5> <U0> <U0> <U0> : "Е̄"
+<Ufe54> <U6ef> <U0> <U0> <U0> : "О̄"
+<Ufe54> <U6f2> <U0> <U0> <U0> : "Р̄"
+<Ufe54> <U1e36> <U0> <U0> <U0> : "Ḹ" # U1e38
+<Ufe54> <U1e37> <U0> <U0> <U0> : "ḹ" # U1e39
+<Ufe54> <U1e5a> <U0> <U0> <U0> : "Ṝ" # U1e5c
+<Ufe54> <U1e5b> <U0> <U0> <U0> : "ṝ" # U1e5d
+<Ufe54> <Ufe57> <U55> <U0> <U0> : "Ǖ" # U1d5
+<Ufe54> <Ufe57> <U75> <U0> <U0> : "ǖ" # U1d6
+<Ufe55> <U228> <U0> <U0> <U0> : "Ḝ" # U1e1c
+<Ufe55> <U229> <U0> <U0> <U0> : "ḝ" # U1e1d
+<Ufe55> <U1ea0> <U0> <U0> <U0> : "Ặ" # U1eb6
+<Ufe55> <U1ea1> <U0> <U0> <U0> : "ặ" # U1eb7
+<Ufe56> <U17f> <U0> <U0> <U0> : "ẛ" # U1e9b
+<Ufe56> <U1e62> <U0> <U0> <U0> : "Ṩ" # U1e68
+<Ufe56> <U1e63> <U0> <U0> <U0> : "ṩ" # U1e69
+<Ufe57> <U3d2> <U0> <U0> <U0> : "Ȫ" # U22a
+<Ufe57> <U4d8> <U0> <U0> <U0> : "Ӛ" # U4da
+<Ufe57> <U4d9> <U0> <U0> <U0> : "ӛ" # U4db
+<Ufe57> <U4e8> <U0> <U0> <U0> : "Ӫ" # U4ea
+<Ufe57> <U4e9> <U0> <U0> <U0> : "ӫ" # U4eb
+<Ufe57> <Ufe54> <U55> <U0> <U0> : "Ṻ" # U1e7a
+<Ufe57> <Ufe54> <U75> <U0> <U0> : "ṻ" # U1e7b
+<Ufe5a> <U186> <U0> <U0> <U0> : "Ɔ̌"
+<Ufe5a> <U18e> <U0> <U0> <U0> : "Ǝ̌"
+<Ufe5a> <U190> <U0> <U0> <U0> : "Ɛ̌"
+<Ufe5a> <U196> <U0> <U0> <U0> : "Ɩ̌"
+<Ufe5a> <U1b1> <U0> <U0> <U0> : "Ʊ̌"
+<Ufe5a> <U1b2> <U0> <U0> <U0> : "Ʋ̌"
+<Ufe5a> <U1dd> <U0> <U0> <U0> : "ǝ̌"
+<Ufe5a> <U254> <U0> <U0> <U0> : "ɔ̌"
+<Ufe5a> <U25b> <U0> <U0> <U0> : "ɛ̌"
+<Ufe5a> <U269> <U0> <U0> <U0> : "ɩ̌"
+<Ufe5a> <U28a> <U0> <U0> <U0> : "ʊ̌"
+<Ufe5a> <U28b> <U0> <U0> <U0> : "ʋ̌"
+<Ufe5b> <U114> <U0> <U0> <U0> : "Ḝ" # U1e1c
+<Ufe5b> <U115> <U0> <U0> <U0> : "ḝ" # U1e1d
+<Ufe5d> <U1f00> <U0> <U0> <U0> : "ᾀ" # U1f80
+<Ufe5d> <U1f01> <U0> <U0> <U0> : "ᾁ" # U1f81
+<Ufe5d> <U1f02> <U0> <U0> <U0> : "ᾂ" # U1f82
+<Ufe5d> <U1f03> <U0> <U0> <U0> : "ᾃ" # U1f83
+<Ufe5d> <U1f04> <U0> <U0> <U0> : "ᾄ" # U1f84
+<Ufe5d> <U1f05> <U0> <U0> <U0> : "ᾅ" # U1f85
+<Ufe5d> <U1f06> <U0> <U0> <U0> : "ᾆ" # U1f86
+<Ufe5d> <U1f07> <U0> <U0> <U0> : "ᾇ" # U1f87
+<Ufe5d> <U1f08> <U0> <U0> <U0> : "ᾈ" # U1f88
+<Ufe5d> <U1f09> <U0> <U0> <U0> : "ᾉ" # U1f89
+<Ufe5d> <U1f0a> <U0> <U0> <U0> : "ᾊ" # U1f8a
+<Ufe5d> <U1f0b> <U0> <U0> <U0> : "ᾋ" # U1f8b
+<Ufe5d> <U1f0c> <U0> <U0> <U0> : "ᾌ" # U1f8c
+<Ufe5d> <U1f0d> <U0> <U0> <U0> : "ᾍ" # U1f8d
+<Ufe5d> <U1f0e> <U0> <U0> <U0> : "ᾎ" # U1f8e
+<Ufe5d> <U1f0f> <U0> <U0> <U0> : "ᾏ" # U1f8f
+<Ufe5d> <U1f20> <U0> <U0> <U0> : "ᾐ" # U1f90
+<Ufe5d> <U1f21> <U0> <U0> <U0> : "ᾑ" # U1f91
+<Ufe5d> <U1f22> <U0> <U0> <U0> : "ᾒ" # U1f92
+<Ufe5d> <U1f23> <U0> <U0> <U0> : "ᾓ" # U1f93
+<Ufe5d> <U1f24> <U0> <U0> <U0> : "ᾔ" # U1f94
+<Ufe5d> <U1f25> <U0> <U0> <U0> : "ᾕ" # U1f95
+<Ufe5d> <U1f26> <U0> <U0> <U0> : "ᾖ" # U1f96
+<Ufe5d> <U1f27> <U0> <U0> <U0> : "ᾗ" # U1f97
+<Ufe5d> <U1f28> <U0> <U0> <U0> : "ᾘ" # U1f98
+<Ufe5d> <U1f29> <U0> <U0> <U0> : "ᾙ" # U1f99
+<Ufe5d> <U1f2a> <U0> <U0> <U0> : "ᾚ" # U1f9a
+<Ufe5d> <U1f2b> <U0> <U0> <U0> : "ᾛ" # U1f9b
+<Ufe5d> <U1f2c> <U0> <U0> <U0> : "ᾜ" # U1f9c
+<Ufe5d> <U1f2d> <U0> <U0> <U0> : "ᾝ" # U1f9d
+<Ufe5d> <U1f2e> <U0> <U0> <U0> : "ᾞ" # U1f9e
+<Ufe5d> <U1f2f> <U0> <U0> <U0> : "ᾟ" # U1f9f
+<Ufe5d> <U1f60> <U0> <U0> <U0> : "ᾠ" # U1fa0
+<Ufe5d> <U1f61> <U0> <U0> <U0> : "ᾡ" # U1fa1
+<Ufe5d> <U1f62> <U0> <U0> <U0> : "ᾢ" # U1fa2
+<Ufe5d> <U1f63> <U0> <U0> <U0> : "ᾣ" # U1fa3
+<Ufe5d> <U1f64> <U0> <U0> <U0> : "ᾤ" # U1fa4
+<Ufe5d> <U1f65> <U0> <U0> <U0> : "ᾥ" # U1fa5
+<Ufe5d> <U1f66> <U0> <U0> <U0> : "ᾦ" # U1fa6
+<Ufe5d> <U1f67> <U0> <U0> <U0> : "ᾧ" # U1fa7
+<Ufe5d> <U1f68> <U0> <U0> <U0> : "ᾨ" # U1fa8
+<Ufe5d> <U1f69> <U0> <U0> <U0> : "ᾩ" # U1fa9
+<Ufe5d> <U1f6a> <U0> <U0> <U0> : "ᾪ" # U1faa
+<Ufe5d> <U1f6b> <U0> <U0> <U0> : "ᾫ" # U1fab
+<Ufe5d> <U1f6c> <U0> <U0> <U0> : "ᾬ" # U1fac
+<Ufe5d> <U1f6d> <U0> <U0> <U0> : "ᾭ" # U1fad
+<Ufe5d> <U1f6e> <U0> <U0> <U0> : "ᾮ" # U1fae
+<Ufe5d> <U1f6f> <U0> <U0> <U0> : "ᾯ" # U1faf
+<Ufe5d> <U1f70> <U0> <U0> <U0> : "ᾲ" # U1fb2
+<Ufe5d> <U1f74> <U0> <U0> <U0> : "ῂ" # U1fc2
+<Ufe5d> <U1f7c> <U0> <U0> <U0> : "ῲ" # U1ff2
+<Ufe5d> <U1fb6> <U0> <U0> <U0> : "ᾷ" # U1fb7
+<Ufe5d> <U1fc6> <U0> <U0> <U0> : "ῇ" # U1fc7
+<Ufe5d> <U1ff6> <U0> <U0> <U0> : "ῷ" # U1ff7
+<Ufe5d> <Ufe50> <U1f00> <U0> <U0> : "ᾂ" # U1f82
+<Ufe5d> <Ufe50> <U1f01> <U0> <U0> : "ᾃ" # U1f83
+<Ufe5d> <Ufe50> <U1f08> <U0> <U0> : "ᾊ" # U1f8a
+<Ufe5d> <Ufe50> <U1f09> <U0> <U0> : "ᾋ" # U1f8b
+<Ufe5d> <Ufe50> <U1f20> <U0> <U0> : "ᾒ" # U1f92
+<Ufe5d> <Ufe50> <U1f21> <U0> <U0> : "ᾓ" # U1f93
+<Ufe5d> <Ufe50> <U1f28> <U0> <U0> : "ᾚ" # U1f9a
+<Ufe5d> <Ufe50> <U1f29> <U0> <U0> : "ᾛ" # U1f9b
+<Ufe5d> <Ufe50> <U1f60> <U0> <U0> : "ᾢ" # U1fa2
+<Ufe5d> <Ufe50> <U1f61> <U0> <U0> : "ᾣ" # U1fa3
+<Ufe5d> <Ufe50> <U1f68> <U0> <U0> : "ᾪ" # U1faa
+<Ufe5d> <Ufe50> <U1f69> <U0> <U0> : "ᾫ" # U1fab
+<Ufe5d> <Ufe51> <U1f00> <U0> <U0> : "ᾄ" # U1f84
+<Ufe5d> <Ufe51> <U1f01> <U0> <U0> : "ᾅ" # U1f85
+<Ufe5d> <Ufe51> <U1f08> <U0> <U0> : "ᾌ" # U1f8c
+<Ufe5d> <Ufe51> <U1f09> <U0> <U0> : "ᾍ" # U1f8d
+<Ufe5d> <Ufe51> <U1f20> <U0> <U0> : "ᾔ" # U1f94
+<Ufe5d> <Ufe51> <U1f21> <U0> <U0> : "ᾕ" # U1f95
+<Ufe5d> <Ufe51> <U1f28> <U0> <U0> : "ᾜ" # U1f9c
+<Ufe5d> <Ufe51> <U1f29> <U0> <U0> : "ᾝ" # U1f9d
+<Ufe5d> <Ufe51> <U1f60> <U0> <U0> : "ᾤ" # U1fa4
+<Ufe5d> <Ufe51> <U1f61> <U0> <U0> : "ᾥ" # U1fa5
+<Ufe5d> <Ufe51> <U1f68> <U0> <U0> : "ᾬ" # U1fac
+<Ufe5d> <Ufe51> <U1f69> <U0> <U0> : "ᾭ" # U1fad
+<Ufe5e> <U3046> <U0> <U0> <U0> : "ゔ" # U3094
+<Ufe5e> <U304b> <U0> <U0> <U0> : "が" # U304c
+<Ufe5e> <U304d> <U0> <U0> <U0> : "ぎ" # U304e
+<Ufe5e> <U304f> <U0> <U0> <U0> : "ぐ" # U3050
+<Ufe5e> <U3051> <U0> <U0> <U0> : "げ" # U3052
+<Ufe5e> <U3053> <U0> <U0> <U0> : "ご" # U3054
+<Ufe5e> <U3055> <U0> <U0> <U0> : "ざ" # U3056
+<Ufe5e> <U3057> <U0> <U0> <U0> : "じ" # U3058
+<Ufe5e> <U3059> <U0> <U0> <U0> : "ず" # U305a
+<Ufe5e> <U305b> <U0> <U0> <U0> : "ぜ" # U305c
+<Ufe5e> <U305d> <U0> <U0> <U0> : "ぞ" # U305e
+<Ufe5e> <U305f> <U0> <U0> <U0> : "だ" # U3060
+<Ufe5e> <U3061> <U0> <U0> <U0> : "ぢ" # U3062
+<Ufe5e> <U3064> <U0> <U0> <U0> : "づ" # U3065
+<Ufe5e> <U3066> <U0> <U0> <U0> : "で" # U3067
+<Ufe5e> <U3068> <U0> <U0> <U0> : "ど" # U3069
+<Ufe5e> <U306f> <U0> <U0> <U0> : "ば" # U3070
+<Ufe5e> <U3072> <U0> <U0> <U0> : "び" # U3073
+<Ufe5e> <U3075> <U0> <U0> <U0> : "ぶ" # U3076
+<Ufe5e> <U3078> <U0> <U0> <U0> : "べ" # U3079
+<Ufe5e> <U307b> <U0> <U0> <U0> : "ぼ" # U307c
+<Ufe5e> <U309d> <U0> <U0> <U0> : "ゞ" # U309e
+<Ufe5e> <U30f0> <U0> <U0> <U0> : "ヸ" # U30f8
+<Ufe5e> <U30f1> <U0> <U0> <U0> : "ヹ" # U30f9
+<Ufe5e> <U30fd> <U0> <U0> <U0> : "ヾ" # U30fe
+<Ufe5f> <U306f> <U0> <U0> <U0> : "ぱ" # U3071
+<Ufe5f> <U3072> <U0> <U0> <U0> : "ぴ" # U3074
+<Ufe5f> <U3075> <U0> <U0> <U0> : "ぷ" # U3077
+<Ufe5f> <U3078> <U0> <U0> <U0> : "ぺ" # U307a
+<Ufe5f> <U307b> <U0> <U0> <U0> : "ぽ" # U307d
+<Ufe63> <U3c> <U0> <U0> <U0> : "≮" # U226e
+<Ufe63> <U3d> <U0> <U0> <U0> : "≠" # U2260
+<Ufe63> <U3e> <U0> <U0> <U0> : "≯" # U226f
+<Ufe66> <U474> <U0> <U0> <U0> : "Ѷ" # U476
+<Ufe66> <U475> <U0> <U0> <U0> : "ѷ" # U477
+<Ufe66> <U6c1> <U0> <U0> <U0> : "а̏"
+<Ufe66> <U6c5> <U0> <U0> <U0> : "е̏"
+<Ufe66> <U6c9> <U0> <U0> <U0> : "и̏"
+<Ufe66> <U6cf> <U0> <U0> <U0> : "о̏"
+<Ufe66> <U6d2> <U0> <U0> <U0> : "р̏"
+<Ufe66> <U6d5> <U0> <U0> <U0> : "у̏"
+<Ufe66> <U6e1> <U0> <U0> <U0> : "А̏"
+<Ufe66> <U6e5> <U0> <U0> <U0> : "Е̏"
+<Ufe66> <U6e9> <U0> <U0> <U0> : "И̏"
+<Ufe66> <U6ef> <U0> <U0> <U0> : "О̏"
+<Ufe66> <U6f2> <U0> <U0> <U0> : "Р̏"
+<Ufe66> <U6f5> <U0> <U0> <U0> : "У̏"
+<Ufe6d> <U41> <U0> <U0> <U0> : "Ȃ" # U202
+<Ufe6d> <U45> <U0> <U0> <U0> : "Ȇ" # U206
+<Ufe6d> <U49> <U0> <U0> <U0> : "Ȋ" # U20a
+<Ufe6d> <U4f> <U0> <U0> <U0> : "Ȏ" # U20e
+<Ufe6d> <U52> <U0> <U0> <U0> : "Ȓ" # U212
+<Ufe6d> <U55> <U0> <U0> <U0> : "Ȗ" # U216
+<Ufe6d> <U61> <U0> <U0> <U0> : "ȃ" # U203
+<Ufe6d> <U65> <U0> <U0> <U0> : "ȇ" # U207
+<Ufe6d> <U69> <U0> <U0> <U0> : "ȋ" # U20b
+<Ufe6d> <U6f> <U0> <U0> <U0> : "ȏ" # U20f
+<Ufe6d> <U72> <U0> <U0> <U0> : "ȓ" # U213
+<Ufe6d> <U75> <U0> <U0> <U0> : "ȗ" # U217
+<Ufe6d> <U6c1> <U0> <U0> <U0> : "а̑"
+<Ufe6d> <U6c5> <U0> <U0> <U0> : "е̑"
+<Ufe6d> <U6c9> <U0> <U0> <U0> : "и̑"
+<Ufe6d> <U6cf> <U0> <U0> <U0> : "о̑"
+<Ufe6d> <U6d2> <U0> <U0> <U0> : "р̑"
+<Ufe6d> <U6d5> <U0> <U0> <U0> : "у̑"
+<Ufe6d> <U6e1> <U0> <U0> <U0> : "А̑"
+<Ufe6d> <U6e5> <U0> <U0> <U0> : "Е̑"
+<Ufe6d> <U6e9> <U0> <U0> <U0> : "И̑"
+<Ufe6d> <U6ef> <U0> <U0> <U0> : "О̑"
+<Ufe6d> <U6f2> <U0> <U0> <U0> : "Р̑"
+<Ufe6d> <U6f5> <U0> <U0> <U0> : "У̑"
+<Ufef5> <U0> <U0> <U0> <U0> : "لآ"
+<Ufef7> <U0> <U0> <U0> <U0> : "لأ"
+<Ufef9> <U0> <U0> <U0> <U0> : "لإ"
+<Ufefb> <U0> <U0> <U0> <U0> : "لا"
+<Uff20> <U22> <U27> <U0> <U0> : "̈́" # U344
+<Uff20> <U27> <U4a> <U0> <U0> : "J́"
+<Uff20> <U27> <U6a> <U0> <U0> : "j́"
+<Uff20> <U27> <U6c0> <U0> <U0> : "ю́"
+<Uff20> <U27> <U6c1> <U0> <U0> : "а́"
+<Uff20> <U27> <U6c5> <U0> <U0> : "е́"
+<Uff20> <U27> <U6c9> <U0> <U0> : "и́"
+<Uff20> <U27> <U6cf> <U0> <U0> : "о́"
+<Uff20> <U27> <U6d1> <U0> <U0> : "я́"
+<Uff20> <U27> <U6d2> <U0> <U0> : "р́"
+<Uff20> <U27> <U6d5> <U0> <U0> : "у́"
+<Uff20> <U27> <U6d9> <U0> <U0> : "ы́"
+<Uff20> <U27> <U6dc> <U0> <U0> : "э́"
+<Uff20> <U27> <U6e0> <U0> <U0> : "Ю́́"
+<Uff20> <U27> <U6e1> <U0> <U0> : "А́"
+<Uff20> <U27> <U6e5> <U0> <U0> : "Е́"
+<Uff20> <U27> <U6e9> <U0> <U0> : "И́"
+<Uff20> <U27> <U6ef> <U0> <U0> : "О́"
+<Uff20> <U27> <U6f1> <U0> <U0> : "Я́"
+<Uff20> <U27> <U6f2> <U0> <U0> : "Р́"
+<Uff20> <U27> <U6f5> <U0> <U0> : "У́"
+<Uff20> <U27> <U6f9> <U0> <U0> : "Ы́"
+<Uff20> <U27> <U6fc> <U0> <U0> : "Э́"
+<Uff20> <U28> <U35> <U30> <U29> : "㊿" # U32bf
+<Uff20> <U28> <Uffb5> <U30> <U29> : "㊿" # U32bf
+<Uff20> <U2a> <U25cb> <U0> <U0> : "⍟" # U235f
+<Uff20> <U2d> <U41> <U0> <U0> : "Ā" # U100
+<Uff20> <U2d> <U4f> <U0> <U0> : "Ō" # U14c
+<Uff20> <U2d> <U25cb> <U0> <U0> : "⊖" # U2296
+<Uff20> <U2e> <U25cb> <U0> <U0> : "⊙" # U2299
+<Uff20> <U41> <U2d> <U0> <U0> : "Ā" # U100
+<Uff20> <U41> <U5f> <U0> <U0> : "Ā" # U100
+<Uff20> <U46> <U55> <U0> <U0> : "🖕" # U1f595
+<Uff20> <U4a> <U27> <U0> <U0> : "J́"
+<Uff20> <U4a> <Ub4> <U0> <U0> : "J́"
+<Uff20> <U4c> <U3d> <U0> <U0> : "₤" # U20a4
+<Uff20> <U4c> <U4c> <U41> <U50> : "🖖" # U1f596
+<Uff20> <U4f> <U2d> <U0> <U0> : "Ō" # U14c
+<Uff20> <U4f> <U5f> <U0> <U0> : "Ō" # U14c
+<Uff20> <U5c> <U6f> <U2f> <U0> : "🙌" # U1f64c
+<Uff20> <U5c> <U25cb> <U0> <U0> : "⍉" # U2349
+<Uff20> <U5e> <U6c1> <U0> <U0> : "а̂"
+<Uff20> <U5e> <U6c5> <U0> <U0> : "е̂"
+<Uff20> <U5e> <U6c9> <U0> <U0> : "и̂"
+<Uff20> <U5e> <U6cf> <U0> <U0> : "о̂"
+<Uff20> <U5e> <U6d2> <U0> <U0> : "р̂"
+<Uff20> <U5e> <U6d5> <U0> <U0> : "у̂"
+<Uff20> <U5e> <U6e1> <U0> <U0> : "А̂"
+<Uff20> <U5e> <U6e5> <U0> <U0> : "Е̂"
+<Uff20> <U5e> <U6e9> <U0> <U0> : "И̂"
+<Uff20> <U5e> <U6ef> <U0> <U0> : "О̂"
+<Uff20> <U5e> <U6f2> <U0> <U0> : "Р̂"
+<Uff20> <U5e> <U6f5> <U0> <U0> : "У̂"
+<Uff20> <U5f> <U6c1> <U0> <U0> : "а̄"
+<Uff20> <U5f> <U6c5> <U0> <U0> : "е̄"
+<Uff20> <U5f> <U6cf> <U0> <U0> : "о̄"
+<Uff20> <U5f> <U6d2> <U0> <U0> : "р̄"
+<Uff20> <U5f> <U6e1> <U0> <U0> : "А̄"
+<Uff20> <U5f> <U6e5> <U0> <U0> : "Е̄"
+<Uff20> <U5f> <U6ef> <U0> <U0> : "О̄"
+<Uff20> <U5f> <U6f2> <U0> <U0> : "Р̄"
+<Uff20> <U5f> <U2282> <U0> <U0> : "⊆" # U2286
+<Uff20> <U5f> <U2283> <U0> <U0> : "⊇" # U2287
+<Uff20> <U5f> <U22a5> <U0> <U0> : "⍊" # U234a
+<Uff20> <U5f> <U25cb> <U0> <U0> : "⍜" # U235c
+<Uff20> <U60> <U60> <U6c1> <U0> : "а̏"
+<Uff20> <U60> <U60> <U6c5> <U0> : "е̏"
+<Uff20> <U60> <U60> <U6c9> <U0> : "и̏"
+<Uff20> <U60> <U60> <U6cf> <U0> : "о̏"
+<Uff20> <U60> <U60> <U6d2> <U0> : "р̏"
+<Uff20> <U60> <U60> <U6d5> <U0> : "у̏"
+<Uff20> <U60> <U60> <U6e1> <U0> : "А̏"
+<Uff20> <U60> <U60> <U6e5> <U0> : "Е̏"
+<Uff20> <U60> <U60> <U6e9> <U0> : "И̏"
+<Uff20> <U60> <U60> <U6ef> <U0> : "О̏"
+<Uff20> <U60> <U60> <U6f2> <U0> : "Р̏"
+<Uff20> <U60> <U60> <U6f5> <U0> : "У̏"
+<Uff20> <U60> <U6c1> <U0> <U0> : "а̀"
+<Uff20> <U60> <U6cf> <U0> <U0> : "о̀"
+<Uff20> <U60> <U6d2> <U0> <U0> : "р̀"
+<Uff20> <U60> <U6d5> <U0> <U0> : "у̀"
+<Uff20> <U60> <U6e1> <U0> <U0> : "А̀"
+<Uff20> <U60> <U6ef> <U0> <U0> : "О̀"
+<Uff20> <U60> <U6f2> <U0> <U0> : "Р̀"
+<Uff20> <U60> <U6f5> <U0> <U0> : "У̀"
+<Uff20> <U61> <U5f> <U0> <U0> : "ā" # U101
+<Uff20> <U6a> <U27> <U0> <U0> : "j́"
+<Uff20> <U6a> <Ub4> <U0> <U0> : "j́"
+<Uff20> <U6f> <U5f> <U0> <U0> : "ō" # U14d
+<Uff20> <U70> <U6f> <U6f> <U0> : "💩" # U1f4a9
+<Uff20> <U7c> <U2206> <U0> <U0> : "⍋" # U234b
+<Uff20> <U7c> <U2207> <U0> <U0> : "⍒" # U2352
+<Uff20> <U7c> <U222a> <U0> <U0> : "⍦" # U2366
+<Uff20> <U7c> <U2282> <U0> <U0> : "⍧" # U2367
+<Uff20> <U7c> <U25cb> <U0> <U0> : "⌽" # U233d
+<Uff20> <Ua8> <U22a4> <U0> <U0> : "⍡" # U2361
+<Uff20> <Ua8> <U25cb> <U0> <U0> : "⍥" # U2365
+<Uff20> <Uaf> <U6c1> <U0> <U0> : "а̄"
+<Uff20> <Uaf> <U6c5> <U0> <U0> : "е̄"
+<Uff20> <Uaf> <U6cf> <U0> <U0> : "о̄"
+<Uff20> <Uaf> <U6d2> <U0> <U0> : "р̄"
+<Uff20> <Uaf> <U6e1> <U0> <U0> : "А̄"
+<Uff20> <Uaf> <U6e5> <U0> <U0> : "Е̄"
+<Uff20> <Uaf> <U6ef> <U0> <U0> : "О̄"
+<Uff20> <Uaf> <U6f2> <U0> <U0> : "Р̄"
+<Uff20> <Uaf> <U1e5b> <U0> <U0> : "ṝ" # U1e5d
+<Uff20> <Uaf> <U22a4> <U0> <U0> : "⍑" # U2351
+<Uff20> <Ub4> <U4a> <U0> <U0> : "J́"
+<Uff20> <Ub4> <U6a> <U0> <U0> : "j́"
+<Uff20> <Ub4> <U6c0> <U0> <U0> : "ю́"
+<Uff20> <Ub4> <U6c1> <U0> <U0> : "а́"
+<Uff20> <Ub4> <U6c5> <U0> <U0> : "е́"
+<Uff20> <Ub4> <U6c9> <U0> <U0> : "и́"
+<Uff20> <Ub4> <U6cf> <U0> <U0> : "о́"
+<Uff20> <Ub4> <U6d1> <U0> <U0> : "я́"
+<Uff20> <Ub4> <U6d2> <U0> <U0> : "р́"
+<Uff20> <Ub4> <U6d5> <U0> <U0> : "у́"
+<Uff20> <Ub4> <U6d9> <U0> <U0> : "ы́"
+<Uff20> <Ub4> <U6dc> <U0> <U0> : "э́"
+<Uff20> <Ub4> <U6e0> <U0> <U0> : "Ю́́"
+<Uff20> <Ub4> <U6e1> <U0> <U0> : "А́"
+<Uff20> <Ub4> <U6e5> <U0> <U0> : "Е́"
+<Uff20> <Ub4> <U6e9> <U0> <U0> : "И́"
+<Uff20> <Ub4> <U6ef> <U0> <U0> : "О́"
+<Uff20> <Ub4> <U6f1> <U0> <U0> : "Я́"
+<Uff20> <Ub4> <U6f2> <U0> <U0> : "Р́"
+<Uff20> <Ub4> <U6f5> <U0> <U0> : "У́"
+<Uff20> <Ub4> <U6f9> <U0> <U0> : "Ы́"
+<Uff20> <Ub4> <U6fc> <U0> <U0> : "Э́"
+<Uff20> <U7e9> <Ufe53> <Ufe65> <U7f9> : "ᾧ" # U1fa7
+<Uff20> <U2218> <U2229> <U0> <U0> : "⍝" # U235d
+<Uff20> <U2218> <U22a4> <U0> <U0> : "⍕" # U2355
+<Uff20> <U2218> <U22a5> <U0> <U0> : "⍎" # U234e
+<Uff20> <U2218> <U2395> <U0> <U0> : "⌻" # U233b
+<Uff20> <U2218> <U25cb> <U0> <U0> : "⌾" # U233e
+<Uff20> <U222a> <U7c> <U0> <U0> : "⍦" # U2366
+<Uff20> <U2282> <U5f> <U0> <U0> : "⊆" # U2286
+<Uff20> <U2282> <U7c> <U0> <U0> : "⍧" # U2367
+<Uff20> <U2283> <U5f> <U0> <U0> : "⊇" # U2287
+<Uff20> <U2286> <U338> <U0> <U0> : "⊈" # U2288
+<Uff20> <U2287> <U338> <U0> <U0> : "⊉" # U2289
+<Uff20> <U2291> <U338> <U0> <U0> : "⋢" # U22e2
+<Uff20> <U2292> <U338> <U0> <U0> : "⋣" # U22e3
+<Uff20> <U22a4> <Ua8> <U0> <U0> : "⍡" # U2361
+<Uff20> <U22a4> <Uaf> <U0> <U0> : "⍑" # U2351
+<Uff20> <U22a4> <U2218> <U0> <U0> : "⍕" # U2355
+<Uff20> <U22a4> <U22a5> <U0> <U0> : "⌶" # U2336
+<Uff20> <U22a5> <U5f> <U0> <U0> : "⍊" # U234a
+<Uff20> <U22a5> <U2218> <U0> <U0> : "⍎" # U234e
+<Uff20> <U22a5> <U22a4> <U0> <U0> : "⌶" # U2336
+<Uff20> <U22b2> <U338> <U0> <U0> : "⋪" # U22ea
+<Uff20> <U22b3> <U338> <U0> <U0> : "⋫" # U22eb
+<Uff20> <U22b4> <U338> <U0> <U0> : "⋬" # U22ec
+<Uff20> <U22b5> <U338> <U0> <U0> : "⋭" # U22ed
+<Uff20> <U22c4> <U5f> <U0> <U0> : "⍚" # U235a
+<Uff20> <U22c4> <U2395> <U0> <U0> : "⌺" # U233a
+<Uff20> <U2373> <U5f> <U0> <U0> : "⍸" # U2378
+<Uff20> <U2375> <U5f> <U0> <U0> : "⍹" # U2379
+<Uff20> <U237a> <U5f> <U0> <U0> : "⍶" # U2376
+<Uff20> <U2395> <U27> <U0> <U0> : "⍞" # U235e
+<Uff20> <U2395> <U2f> <U0> <U0> : "⍁" # U2341
+<Uff20> <U2395> <U3a> <U0> <U0> : "⍠" # U2360
+<Uff20> <U2395> <U3c> <U0> <U0> : "⍃" # U2343
+<Uff20> <U2395> <U3d> <U0> <U0> : "⌸" # U2338
+<Uff20> <U2395> <U3e> <U0> <U0> : "⍄" # U2344
+<Uff20> <U2395> <U3f> <U0> <U0> : "⍰" # U2370
+<Uff20> <U2395> <U5c> <U0> <U0> : "⍂" # U2342
+<Uff20> <U2395> <Uf7> <U0> <U0> : "⌹" # U2339
+<Uff20> <U2395> <U2190> <U0> <U0> : "⍇" # U2347
+<Uff20> <U2395> <U2191> <U0> <U0> : "⍐" # U2350
+<Uff20> <U2395> <U2192> <U0> <U0> : "⍈" # U2348
+<Uff20> <U2395> <U2193> <U0> <U0> : "⍗" # U2357
+<Uff20> <U2395> <U2206> <U0> <U0> : "⍍" # U234d
+<Uff20> <U2395> <U2207> <U0> <U0> : "⍔" # U2354
+<Uff20> <U2395> <U2218> <U0> <U0> : "⌻" # U233b
+<Uff20> <U2395> <U2227> <U0> <U0> : "⍓" # U2353
+<Uff20> <U2395> <U2228> <U0> <U0> : "⍌" # U234c
+<Uff20> <U2395> <U2260> <U0> <U0> : "⍯" # U236f
+<Uff20> <U2395> <U22c4> <U0> <U0> : "⌺" # U233a
+<Uff20> <U2395> <U25cb> <U0> <U0> : "⌼" # U233c
+<Uff20> <U25cb> <U2a> <U0> <U0> : "⍟" # U235f
+<Uff20> <U25cb> <U2d> <U0> <U0> : "⊖" # U2296
+<Uff20> <U25cb> <U2e> <U0> <U0> : "⊙" # U2299
+<Uff20> <U25cb> <U5c> <U0> <U0> : "⍉" # U2349
+<Uff20> <U25cb> <U5f> <U0> <U0> : "⍜" # U235c
+<Uff20> <U25cb> <U7c> <U0> <U0> : "⌽" # U233d
+<Uff20> <U25cb> <Ua8> <U0> <U0> : "⍥" # U2365
+<Uff20> <U25cb> <U2218> <U0> <U0> : "⌾" # U233e
+<Uff20> <U25cb> <U2395> <U0> <U0> : "⌼" # U233c
diff --git a/testsuite/gtk/composetable.c b/testsuite/gtk/composetable.c
index 1414a7c99f..f2875c46c1 100644
--- a/testsuite/gtk/composetable.c
+++ b/testsuite/gtk/composetable.c
@@ -383,6 +383,7 @@ main (int argc, char *argv[])
 {
   char *dir;
 
+  g_setenv ("LC_ALL", "en_US.UTF-8", TRUE);
   dir = g_dir_make_tmp ("composetableXXXXXX", NULL);
   g_setenv ("XDG_CACHE_HOME", dir, TRUE);
   g_free (dir);
@@ -405,6 +406,7 @@ main (int argc, char *argv[])
   g_test_add_data_func ("/compose-table/multi", "multi", compose_table_compare);
   g_test_add_data_func ("/compose-table/strings", "strings", compose_table_compare);
   g_test_add_data_func ("/compose-table/include", "include", compose_table_compare);
+  g_test_add_data_func ("/compose-table/system", "system", compose_table_compare);
   g_test_add_func ("/compose-table/include-cycle", compose_table_cycle);
   g_test_add_func ("/compose-table/include-nofile", compose_table_nofile);
   g_test_add_func ("/compose-table/match", compose_table_match);


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