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");