netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=498ee5c72d5194ef29973b92b955f9561677ac38

commit 498ee5c72d5194ef29973b92b955f9561677ac38
Author: Alastair Poole <nets...@gmail.com>
Date:   Wed Mar 3 21:43:30 2021 +0000

    procview: manual chunks.
---
 src/bin/ui/ui_process_view.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/bin/ui/ui_process_view.c b/src/bin/ui/ui_process_view.c
index bec462a..86880ae 100644
--- a/src/bin/ui/ui_process_view.c
+++ b/src/bin/ui/ui_process_view.c
@@ -838,8 +838,9 @@ static void
 _manual_init_cb(void *data, Ecore_Thread *thread)
 {
    Eina_List *lines = NULL;
-   char *line;
+   Eina_Strbuf *sbuf = NULL;
    char buf[4096];
+   char *line;
    int n = 1;
    Ui_Data *pd = data;
 
@@ -857,14 +858,22 @@ _manual_init_cb(void *data, Ecore_Thread *thread)
                  pd->selected_cmd);
         ecore_thread_feedback(thread, strdup(buf));
      }
+   else sbuf = eina_strbuf_new();
    EINA_LIST_FREE(lines, line)
      {
         if (n++ > 1)
           {
-             snprintf(buf, sizeof(buf), "%s<br>", line);
-             ecore_thread_feedback(thread, strdup(buf));
-         }
-       free(line);
+             eina_strbuf_append_printf(sbuf, "%s<br>", line);
+             if (eina_strbuf_length_get(sbuf) >= 4096)
+               ecore_thread_feedback(thread, eina_strbuf_string_steal(sbuf));
+          }
+       free(line);
+     }
+   if (sbuf)
+     {
+        if (eina_strbuf_length_get(sbuf))
+          ecore_thread_feedback(thread, eina_strbuf_string_steal(sbuf));
+        eina_strbuf_free(sbuf);
      }
    ecore_thread_feedback(thread, strdup("</code>"));
    unsetenv("MANWIDTH");

-- 


Reply via email to