[pango/ligature-caret-rtl-fixes: 2/7] test-shape: Add an option for hex chars




commit de7d9bb9bddbbf1c5b1d290dfe54e93ce01994e5
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Aug 27 08:41:25 2021 -0400

    test-shape: Add an option for hex chars
    
    This is useful when trying to understand the output
    for scripts I don't read.

 tests/test-shape.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)
---
diff --git a/tests/test-shape.c b/tests/test-shape.c
index 2b78e96a..d0f4b80b 100644
--- a/tests/test-shape.c
+++ b/tests/test-shape.c
@@ -34,6 +34,8 @@
 
 static PangoContext *context;
 
+gboolean opt_hex_chars;
+
 static void
 append_text (GString    *s,
              const char *text,
@@ -46,7 +48,9 @@ append_text (GString    *s,
       gunichar ch = g_utf8_get_char (p);
       if (ch == ' ')
         g_string_append (s, "[ ]");
-      if (ch == 0x0A || ch == 0x2028 || !g_unichar_isprint (ch))
+      else if (opt_hex_chars)
+        g_string_append_printf (s, "[%#04x]", ch);
+      else if (ch == 0x0A || ch == 0x2028 || !g_unichar_isprint (ch))
         g_string_append_printf (s, "[%#04x]", ch);
       else
         g_string_append_unichar (s, ch);
@@ -347,6 +351,21 @@ main (int argc, char *argv[])
   GError *error = NULL;
   const gchar *name;
   gchar *path;
+  GOptionContext *option_context;
+  GOptionEntry entries[] = {
+    { "hex-chars", '0', 0, G_OPTION_ARG_NONE, &opt_hex_chars, "Print all chars in hex", NULL },
+    { NULL, 0 },
+  };
+
+  option_context = g_option_context_new ("");
+  g_option_context_add_main_entries (option_context, entries, NULL);
+  g_option_context_set_ignore_unknown_options (option_context, TRUE);
+  if (!g_option_context_parse (option_context, &argc, &argv, &error))
+    {
+      g_error ("failed to parse options: %s", error->message);
+      return 1;
+    }
+  g_option_context_unref (option_context);
 
   setlocale (LC_ALL, "");
 


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