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
", line); - ecore_thread_feedback(thread, strdup(buf)); - } - free(line); + eina_strbuf_append_printf(sbuf, "%s
", 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("")); unsetenv("MANWIDTH");