]> spindle.queued.net Git - midori/commitdiff
Use GString to build text in copy tabs extension
authorChristian Dywan <christian@twotoasts.de>
Sun, 11 Dec 2011 01:53:25 +0000 (02:53 +0100)
committerChristian Dywan <christian@twotoasts.de>
Sun, 11 Dec 2011 01:53:25 +0000 (02:53 +0100)
extensions/copy-tabs.c

index 636c1197a250db29f5af329f949d2a2785c961d6..8dc1e49ebfe44e598b05df0a77a88761fd4400a1 100644 (file)
@@ -15,19 +15,19 @@ static void
 copy_tabs_apply_cb (GtkWidget*     menuitem,
                     MidoriBrowser* browser)
 {
-    guint i = 0;
-    GtkWidget* view;
-    gchar* text = g_strdup ("");
+    GList* children;
+    GString* text = g_string_sized_new (256);
     GtkClipboard* clipboard = gtk_widget_get_clipboard (menuitem,
                                                         GDK_SELECTION_CLIPBOARD);
 
-    while ((view = midori_browser_get_nth_tab (browser, i++)))
+    children = midori_browser_get_tabs (MIDORI_BROWSER (browser));
+    for (; children; children = g_list_next (children))
     {
-        gchar* new_text = g_strconcat (text,
-            midori_view_get_display_uri (MIDORI_VIEW (view)), "\n", NULL);
-        katze_assign (text, new_text);
+        g_string_append (text, midori_view_get_display_uri (children->data));
+        g_string_append_c (text, '\n');
     }
-    gtk_clipboard_set_text (clipboard, text, -1);
+    gtk_clipboard_set_text (clipboard, text->str, -1);
+    g_string_free (text, TRUE);
 }
 
 static void