[telepathy-gabble/master] gabble_capability_set_dump: strdup and return the message rather than printing it, and add optional indent

Simon McVittie simon.mcvittie at collabora.co.uk
Mon Aug 24 11:49:34 PDT 2009


---
 src/capabilities.c |   26 +++++++++++++++++---------
 src/capabilities.h |    3 ++-
 2 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/src/capabilities.c b/src/capabilities.c
index ef99465..1b33839 100644
--- a/src/capabilities.c
+++ b/src/capabilities.c
@@ -550,32 +550,40 @@ gabble_capability_set_foreach (const GabbleCapabilitySet *caps,
     }
 }
 
-void
-gabble_capability_set_dump (const GabbleCapabilitySet *caps)
+gchar *
+gabble_capability_set_dump (const GabbleCapabilitySet *caps,
+    const gchar *indent)
 {
+  GString *ret;
   TpIntSetIter iter;
 
-  g_return_if_fail (caps != NULL);
+  g_return_val_if_fail (caps != NULL, NULL);
 
-  tp_intset_iter_init (&iter, tp_handle_set_peek (caps->handles));
+  if (indent == NULL)
+    indent = "";
 
-  DEBUG ("--begin--");
+  ret = g_string_new (indent);
+  g_string_append (ret, "--begin--\n");
+
+  tp_intset_iter_init (&iter, tp_handle_set_peek (caps->handles));
 
   while (tp_intset_iter_next (&iter))
     {
       const gchar *var = tp_handle_inspect (feature_handles, iter.element);
 
-      g_return_if_fail (var != NULL);
+      g_return_val_if_fail (var != NULL, NULL);
 
       if (var[0] == QUIRK_PREFIX_CHAR)
         {
-          DEBUG ("Quirk:   %s", var + 1);
+          g_string_append_printf (ret, "%sQuirk:   %s\n", indent, var + 1);
         }
       else
         {
-          DEBUG ("Feature: %s", var);
+          g_string_append_printf (ret, "%sFeature: %s\n", indent, var);
         }
     }
 
-  DEBUG ("--end--");
+  g_string_append (ret, indent);
+  g_string_append (ret, "--end--\n");
+  return g_string_free (ret, FALSE);
 }
diff --git a/src/capabilities.h b/src/capabilities.h
index a693b6e..af5c207 100644
--- a/src/capabilities.h
+++ b/src/capabilities.h
@@ -77,7 +77,8 @@ void gabble_capability_set_clear (GabbleCapabilitySet *caps);
 void gabble_capability_set_free (GabbleCapabilitySet *caps);
 void gabble_capability_set_foreach (const GabbleCapabilitySet *caps,
     GFunc func, gpointer user_data);
-void gabble_capability_set_dump (const GabbleCapabilitySet *caps);
+gchar *gabble_capability_set_dump (const GabbleCapabilitySet *caps,
+    const gchar *indent);
 
 /* A predicate used by the presence code to select suitable resources */
 typedef gboolean (*GabbleCapabilitySetPredicate) (
-- 
1.5.6.5




More information about the telepathy-commits mailing list