]> git.0d.be Git - empathy.git/commitdiff
merge store_filter_foreach () and copy_model_foreach ()
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Mon, 16 Apr 2012 09:56:45 +0000 (11:56 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 10 May 2012 07:48:07 +0000 (09:48 +0200)
They were basically the same function. The only difference was that one was
assuming to receive an empty string during the first iteration while the other
was coping with it being NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=674182

src/empathy-debug-window.c

index f64ebabdd386983d7f976c5d251e2c4f2e20cd4f..677a9ed2680777f684049601ceb2f787dcebb3ea 100644 (file)
@@ -1494,15 +1494,19 @@ debug_window_time_formatter (GtkTreeViewColumn *tree_column,
 }
 
 static gboolean
-debug_window_store_filter_foreach (GtkTreeModel *model,
+debug_window_copy_model_foreach (GtkTreeModel *model,
     GtkTreePath *path,
     GtkTreeIter *iter,
     gpointer user_data)
 {
-  gchar **debug_data = (gchar **)user_data;
+  gchar **text = (gchar **) user_data;
+  gchar *tmp;
   gchar *domain, *category, *message, *level_str, *level_upper;
   gdouble timestamp;
-  gchar *line, *time_str, *tmp;
+  gchar *line, *time_str;
+
+  if (*text == NULL)
+    *text = g_strdup ("");
 
   gtk_tree_model_get (model, iter,
       COL_DEBUG_TIMESTAMP, &timestamp,
@@ -1522,15 +1526,9 @@ debug_window_store_filter_foreach (GtkTreeModel *model,
 
   g_free (time_str);
 
-  /* Compact all message lines in the out parameter debug_data */
-  if (!tp_str_empty (*debug_data))
-    tmp = g_strconcat (*debug_data, line, NULL);
-  else
-    tmp = g_strdup (line);
-
-  g_free (*debug_data);
-  *debug_data = tmp;
+  tmp = g_strconcat (*text, line, NULL);
 
+  g_free (*text);
   g_free (line);
   g_free (level_upper);
   g_free (level_str);
@@ -1538,6 +1536,8 @@ debug_window_store_filter_foreach (GtkTreeModel *model,
   g_free (category);
   g_free (message);
 
+  *text = tmp;
+
   return FALSE;
 }
 
@@ -1572,7 +1572,7 @@ debug_window_save_file_chooser_response_cb (GtkDialog *dialog,
     }
 
   gtk_tree_model_foreach (self->priv->store_filter,
-      debug_window_store_filter_foreach, &debug_data);
+      debug_window_copy_model_foreach, &debug_data);
 
   g_output_stream_write (G_OUTPUT_STREAM (output_stream), debug_data,
       strlen (debug_data), NULL, &file_write_error);
@@ -1766,65 +1766,18 @@ debug_window_send_to_pastebin_cb (GtkToolButton *tool_button,
   DEBUG ("Preparing debug data for sending to pastebin.");
 
   gtk_tree_model_foreach (self->priv->store_filter,
-      debug_window_store_filter_foreach, &debug_data);
+      debug_window_copy_model_foreach, &debug_data);
 
   debug_window_send_to_pastebin (self, debug_data);
   g_free (debug_data);
 }
 
-static gboolean
-debug_window_copy_model_foreach (GtkTreeModel *model,
-    GtkTreePath *path,
-    GtkTreeIter *iter,
-    gpointer user_data)
-{
-  gchar **text = (gchar **) user_data;
-  gchar *tmp;
-  gchar *domain, *category, *message, *level_str, *level_upper;
-  gdouble timestamp;
-  gchar *line, *time_str;
-
-  gtk_tree_model_get (model, iter,
-      COL_DEBUG_TIMESTAMP, &timestamp,
-      COL_DEBUG_DOMAIN, &domain,
-      COL_DEBUG_CATEGORY, &category,
-      COL_DEBUG_LEVEL_STRING, &level_str,
-      COL_DEBUG_MESSAGE, &message,
-      -1);
-
-  level_upper = g_ascii_strup (level_str, -1);
-
-  time_str = debug_window_format_timestamp (timestamp);
-
-  line = g_strdup_printf ("%s%s%s-%s: %s: %s\n",
-      domain, EMP_STR_EMPTY (category) ? "" : "/",
-      category, level_upper, time_str, message);
-
-  g_free (time_str);
-
-  tmp = g_strconcat (*text, line, NULL);
-
-  g_free (*text);
-  g_free (line);
-  g_free (level_upper);
-  g_free (level_str);
-  g_free (domain);
-  g_free (category);
-  g_free (message);
-
-  *text = tmp;
-
-  return FALSE;
-}
-
 static void
 debug_window_copy_clicked_cb (GtkToolButton *tool_button,
     EmpathyDebugWindow *self)
 {
   GtkClipboard *clipboard;
-  gchar *text;
-
-  text = g_strdup ("");
+  gchar *text = NULL;
 
   gtk_tree_model_foreach (self->priv->store_filter,
       debug_window_copy_model_foreach, &text);