- related to #607

Signed-off-by: Jakub Filak <[email protected]>
---
 src/plugins/abrt-retrace-client.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/src/plugins/abrt-retrace-client.c 
b/src/plugins/abrt-retrace-client.c
index d06def4..1560ce6 100644
--- a/src/plugins/abrt-retrace-client.c
+++ b/src/plugins/abrt-retrace-client.c
@@ -20,6 +20,7 @@
 
 #define MAX_FORMATS 16
 #define MAX_RELEASES 32
+#define MAX_DOTS_PER_LINE 80
 
 enum
 {
@@ -1015,6 +1016,7 @@ static int run_batch(bool delete_temp_archive)
     char *task_status = xstrdup("");
     char *status_message = xstrdup("");
     int status_delay = delay ? delay : 10;
+    int dots = 0;
     while (0 != strncmp(task_status, "FINISHED", strlen("finished")))
     {
         char *previous_status_message = status_message;
@@ -1023,9 +1025,28 @@ static int run_batch(bool delete_temp_archive)
         status(task_id, task_password, &task_status, &status_message);
         if (g_verbose > 0 || 0 != strcmp(previous_status_message, 
status_message))
         {
+            if (dots)
+            {   /* A same message was received and a period was printed instead
+                 * but the period wasn't followed by new line and now we are 
+                 * goning to print a new message thus we want to start at next 
line
+                 */
+                dots = 0;
+                putchar('\n');
+            }
             puts(status_message);
             fflush(stdout);
         }
+        else
+        {
+            if (dots >= MAX_DOTS_PER_LINE)
+            {
+                dots = 0;
+                putchar('\n');
+            }
+            ++dots;
+            client_log(".");
+            fflush(stdout);
+        }
         free(previous_status_message);
         previous_status_message = status_message;
     }
-- 
1.8.1.2

Reply via email to