[gtk/wip/otte/for-master: 4/4] builder-tool: Don't simplify enums too much




commit 82f92ea9870c50126392d838f959a1444ba006ea
Author: Benjamin Otte <otte redhat com>
Date:   Sun Nov 21 01:51:35 2021 +0100

    builder-tool: Don't simplify enums too much
    
    Store the enum nick, not the enum value. That way the file remains
    human-readable.

 tools/gtk-builder-tool-simplify.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
---
diff --git a/tools/gtk-builder-tool-simplify.c b/tools/gtk-builder-tool-simplify.c
index 0f13bf7a6d..dfa4eb7097 100644
--- a/tools/gtk-builder-tool-simplify.c
+++ b/tools/gtk-builder-tool-simplify.c
@@ -621,7 +621,15 @@ canonical_enum_value (MyParserData *data,
   GValue value = G_VALUE_INIT;
 
   if (gtk_builder_value_from_string_type (data->builder, type, string, &value, NULL))
-    return g_strdup_printf ("%d", g_value_get_enum (&value));
+    {
+      GEnumClass *eclass = g_type_class_ref (type);
+      GEnumValue *evalue = g_enum_get_value (eclass, g_value_get_enum (&value));
+
+      if (evalue)
+        return g_strdup (evalue->value_nick);
+      else
+        return g_strdup_printf ("%d", g_value_get_enum (&value));
+    }
 
   return NULL;
 }


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