Blame 0017-interactive-plugins-do-not-truncate-message-on-EAGAI.patch

Jiri Moskovcak 4696337
From 6aab2606ce1bcbdfc2198eafa08afc22597768cf Mon Sep 17 00:00:00 2001
Jiri Moskovcak 4696337
From: Michal Toman <mtoman@redhat.com>
Jiri Moskovcak 4696337
Date: Mon, 1 Aug 2011 16:11:51 +0200
Jiri Moskovcak 4696337
Subject: [PATCH 17/52] interactive plugins: do not truncate message on EAGAIN
Jiri Moskovcak 4696337
Jiri Moskovcak 4696337
---
Jiri Moskovcak 4696337
 src/gui-wizard-gtk/wizard.c |   10 +++++++---
Jiri Moskovcak 4696337
 1 files changed, 7 insertions(+), 3 deletions(-)
Jiri Moskovcak 4696337
Jiri Moskovcak 4696337
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
Jiri Moskovcak 4696337
index a6c48eb..4dcfd34 100644
Jiri Moskovcak 4696337
--- a/src/gui-wizard-gtk/wizard.c
Jiri Moskovcak 4696337
+++ b/src/gui-wizard-gtk/wizard.c
Jiri Moskovcak 4696337
@@ -213,6 +213,7 @@ static page_obj_t pages[] =
Jiri Moskovcak 4696337
 
Jiri Moskovcak 4696337
 static page_obj_t *added_pages[NUM_PAGES];
Jiri Moskovcak 4696337
 
Jiri Moskovcak 4696337
+static struct strbuf *line = NULL;
Jiri Moskovcak 4696337
 
Jiri Moskovcak 4696337
 /* Utility functions */
Jiri Moskovcak 4696337
 
Jiri Moskovcak 4696337
@@ -1174,7 +1175,8 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
Jiri Moskovcak 4696337
     char *newline;
Jiri Moskovcak 4696337
     char *raw;
Jiri Moskovcak 4696337
     int r;
Jiri Moskovcak 4696337
-    struct strbuf *line = strbuf_new();
Jiri Moskovcak 4696337
+    if (!line)
Jiri Moskovcak 4696337
+        line = strbuf_new();
Jiri Moskovcak 4696337
 
Jiri Moskovcak 4696337
     int alert_prefix_len = strlen(REPORT_PREFIX_ALERT);
Jiri Moskovcak 4696337
     int ask_prefix_len = strlen(REPORT_PREFIX_ASK);
Jiri Moskovcak 4696337
@@ -1348,8 +1350,6 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
Jiri Moskovcak 4696337
         strbuf_append_str(line, raw);
Jiri Moskovcak 4696337
     }
Jiri Moskovcak 4696337
 
Jiri Moskovcak 4696337
-    strbuf_free(line);
Jiri Moskovcak 4696337
-
Jiri Moskovcak 4696337
     if (r < 0 && errno == EAGAIN)
Jiri Moskovcak 4696337
         /* We got all buffered data, but fd is still open. Done for now */
Jiri Moskovcak 4696337
         return TRUE; /* "please don't remove this event (yet)" */
Jiri Moskovcak 4696337
@@ -1415,6 +1415,10 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
Jiri Moskovcak 4696337
                 gtk_label_set_text(evd->status_label, msg);
Jiri Moskovcak 4696337
                 free(msg);
Jiri Moskovcak 4696337
 
Jiri Moskovcak 4696337
+                /* free child output buffer */
Jiri Moskovcak 4696337
+                strbuf_free(line);
Jiri Moskovcak 4696337
+                line = NULL;
Jiri Moskovcak 4696337
+
Jiri Moskovcak 4696337
                 /* Enable (un-gray out) navigation buttons */
Jiri Moskovcak 4696337
                 gtk_widget_set_sensitive(GTK_WIDGET(g_assistant), true);
Jiri Moskovcak 4696337
 
Jiri Moskovcak 4696337
-- 
Jiri Moskovcak 4696337
1.7.6
Jiri Moskovcak 4696337