[gnome-builder/wip/chergert/dspy: 6/11] dspy: hide args that are generated arg_0, etc



commit 2d49c86ca04ec209f2547829efec0e1c5c6a7996
Author: Christian Hergert <chergert redhat com>
Date:   Fri Apr 12 14:00:15 2019 -0700

    dspy: hide args that are generated arg_0, etc

 src/plugins/dspy/dspy-path-model.c | 44 ++++++++++++++++++++++++++++++++------
 1 file changed, 38 insertions(+), 6 deletions(-)
---
diff --git a/src/plugins/dspy/dspy-path-model.c b/src/plugins/dspy/dspy-path-model.c
index db629f9ed..f94fd3876 100644
--- a/src/plugins/dspy/dspy-path-model.c
+++ b/src/plugins/dspy/dspy-path-model.c
@@ -22,6 +22,7 @@
 
 #include "config.h"
 
+#include <errno.h>
 #include <glib/gi18n.h>
 #include <stdlib.h>
 
@@ -42,6 +43,25 @@ static GHashTable *simple_types;
 static void dspy_path_model_introspect (DspyPathModel *self,
                                         const gchar   *path);
 
+static gboolean
+arg_name_is_generated (const gchar *str)
+{
+  if (g_str_has_prefix (str, "arg_"))
+    {
+      gchar *endptr = NULL;
+      gint64 val;
+
+      str += strlen ("arg_");
+      errno = 0;
+      val = g_ascii_strtoll (str, &endptr, 10);
+
+      if (val >= 0 && errno == 0 && *endptr == 0)
+        return TRUE;
+    }
+
+  return FALSE;
+}
+
 static gint
 compare_iface (gconstpointer a,
                gconstpointer b)
@@ -155,8 +175,12 @@ method_to_string (GDBusMethodInfo *method)
         g_string_append (str, ", ");
 
       add_signature (str, arg->signature);
-      g_string_append_c (str, ' ');
-      add_arg_name (str, arg->name);
+
+      if (!arg_name_is_generated (arg->name))
+        {
+          g_string_append_c (str, ' ');
+          add_arg_name (str, arg->name);
+        }
     }
 
   g_string_append (str, ") ↦ (");
@@ -169,8 +193,12 @@ method_to_string (GDBusMethodInfo *method)
         g_string_append (str, ", ");
 
       add_signature (str, arg->signature);
-      g_string_append_c (str, ' ');
-      add_arg_name (str, arg->name);
+
+      if (!arg_name_is_generated (arg->name))
+        {
+          g_string_append_c (str, ' ');
+          add_arg_name (str, arg->name);
+        }
     }
 
   g_string_append_c (str, ')');
@@ -194,8 +222,12 @@ signal_to_string (GDBusSignalInfo *sig)
         g_string_append (str, ", ");
 
       add_signature (str, arg->signature);
-      g_string_append_c (str, ' ');
-      add_arg_name (str, arg->name);
+
+      if (!arg_name_is_generated (arg->name))
+        {
+          g_string_append_c (str, ' ');
+          add_arg_name (str, arg->name);
+        }
     }
 
   g_string_append_c (str, ')');


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