about summary refs log tree commit diff stats
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/console.c52
-rw-r--r--src/ui/core.c5
-rw-r--r--src/ui/mucconfwin.c14
-rw-r--r--src/ui/mucwin.c23
-rw-r--r--src/ui/ui.h1
-rw-r--r--src/ui/window.c48
6 files changed, 80 insertions, 63 deletions
diff --git a/src/ui/console.c b/src/ui/console.c
index 48d33bfb..df9a7b43 100644
--- a/src/ui/console.c
+++ b/src/ui/console.c
@@ -130,7 +130,7 @@ cons_show_help(const char *const cmd, CommandHelp *help)
     for (i = 0; i < strlen(cmd) - 1 ; i++) {
         win_printf(console, '-', 0, NULL, NO_EOL | NO_DATE, THEME_WHITE_BOLD, "", "-");
     }
-    win_printf(console, '-', 0, NULL, NO_DATE, THEME_WHITE_BOLD, "", "");
+    win_appendln(console, THEME_WHITE_BOLD, "");
     cons_show("");
 
     win_println(console, THEME_WHITE_BOLD, '-', "Synopsis");
@@ -484,7 +484,7 @@ cons_show_login_success(ProfAccount *account, gboolean secured)
     win_printf(console, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", "%s", presence_str);
     win_printf(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", " (priority %d)",
         accounts_get_priority_for_presence_type(account->name, presence));
-    win_printf(console, '-', 0, NULL, NO_DATE, THEME_DEFAULT, "", ".");
+    win_appendln(console, THEME_DEFAULT, ".");
     if (!secured) {
         cons_show_error("TLS connection not established");
     }
@@ -555,7 +555,7 @@ cons_show_caps(const char *const fulljid, resource_presence_t presence)
 
         theme_item_t presence_colour = theme_main_presence_attrs(resource_presence);
         win_print(console, presence_colour, '-', "%s", fulljid);
-        win_printf(console, '-', 0, NULL, NO_DATE, THEME_DEFAULT, "", ":");
+        win_appendln(console, THEME_DEFAULT, ":");
 
         // show identity
         if (caps->identity) {
@@ -788,7 +788,7 @@ cons_show_disco_items(GSList *items, const char *const jid)
             if (item->name) {
                 win_printf(console, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", ", (%s)", item->name);
             }
-            win_printf(console, '-', 0, NULL, NO_DATE, THEME_DEFAULT, "", "");
+            win_appendln(console, THEME_DEFAULT, "");
             items = g_slist_next(items);
         }
     } else {
@@ -1005,7 +1005,7 @@ cons_show_account(ProfAccount *account)
             if (resource->status) {
                 win_printf(console, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", \"%s\"", resource->status);
             }
-            win_printf(console, '-', 0, NULL, NO_DATE, THEME_DEFAULT, "", "");
+            win_appendln(console, THEME_DEFAULT, "");
             Jid *jidp = jid_create_from_bare_and_resource(account->jid, resource->name);
             EntityCapabilities *caps = caps_lookup(jidp->fulljid);
             jid_destroy(jidp);
@@ -2192,7 +2192,7 @@ _cons_theme_bar_prop(theme_item_t theme, char *prop)
     g_string_append_printf(valstr, "%s ", setting);
     theme_free_string(setting);
     win_printf(console, '-', 0, NULL, NO_DATE | NO_EOL, theme, "", "%s", valstr->str);
-    win_printf(console, '-', 0, NULL, NO_DATE, THEME_TEXT, "", "");
+    win_appendln(console, THEME_TEXT, "");
     g_string_free(valstr, TRUE);
 }
 
@@ -2210,7 +2210,7 @@ _cons_theme_prop(theme_item_t theme, char *prop)
     char *setting = theme_get_string(prop);
     g_string_append_printf(valstr, "%s", setting);
     theme_free_string(setting);
-    win_printf(console, '-', 0, NULL, NO_DATE, theme, "", "%s", valstr->str);
+    win_appendln(console, theme, "%s", valstr->str);
     g_string_free(valstr, TRUE);
 }
 
@@ -2326,29 +2326,29 @@ cons_theme_colours(void)
     ProfWin *console = wins_get_console();
     cons_show("Available colours:");
 
-    win_print(console, THEME_WHITE, '-',                                " white   ");
-    win_printf(console, '-', 0, NULL, NO_DATE, THEME_WHITE_BOLD, "",    " bold_white");
+    win_print(console,      THEME_WHITE, '-',   " white   ");
+    win_appendln(console,   THEME_WHITE_BOLD,   " bold_white");
 
-    win_print(console, THEME_GREEN, '-',                                " green   ");
-    win_printf(console, '-', 0, NULL, NO_DATE, THEME_GREEN_BOLD, "",    " bold_green");
+    win_print(console,      THEME_GREEN, '-',   " green   ");
+    win_appendln(console,   THEME_GREEN_BOLD,   " bold_green");
 
-    win_print(console, THEME_RED, '-',                                  " red     ");
-    win_printf(console, '-', 0, NULL, NO_DATE, THEME_RED_BOLD, "",      " bold_red");
+    win_print(console,      THEME_RED, '-',     " red     ");
+    win_appendln(console,   THEME_RED_BOLD,     " bold_red");
 
-    win_print(console, THEME_YELLOW, '-',                               " yellow  ");
-    win_printf(console, '-', 0, NULL, NO_DATE, THEME_YELLOW_BOLD, "",   " bold_yellow");
+    win_print(console,      THEME_YELLOW, '-',  " yellow  ");
+    win_appendln(console,   THEME_YELLOW_BOLD,  " bold_yellow");
 
-    win_print(console, THEME_BLUE, '-',                                 " blue    ");
-    win_printf(console, '-', 0, NULL, NO_DATE, THEME_BLUE_BOLD, "",     " bold_blue");
+    win_print(console,      THEME_BLUE, '-',    " blue    ");
+    win_appendln(console,   THEME_BLUE_BOLD,    " bold_blue");
 
-    win_print(console, THEME_CYAN, '-',                                 " cyan    ");
-    win_printf(console, '-', 0, NULL, NO_DATE, THEME_CYAN_BOLD, "",     " bold_cyan");
+    win_print(console,      THEME_CYAN, '-',    " cyan    ");
+    win_appendln(console,   THEME_CYAN_BOLD,    " bold_cyan");
 
-    win_print(console, THEME_MAGENTA, '-',                              " magenta ");
-    win_printf(console, '-', 0, NULL, NO_DATE, THEME_MAGENTA_BOLD, "",  " bold_magenta");
+    win_print(console,      THEME_MAGENTA, '-', " magenta ");
+    win_appendln(console,   THEME_MAGENTA_BOLD, " bold_magenta");
 
-    win_print(console, THEME_BLACK, '-',                                " black   ");
-    win_printf(console, '-', 0, NULL, NO_DATE, THEME_BLACK_BOLD, "",    " bold_black");
+    win_print(console,      THEME_BLACK, '-',   " black   ");
+    win_appendln(console,   THEME_BLACK_BOLD,   " bold_black");
 
     cons_show("");
 }
@@ -2424,7 +2424,7 @@ _show_roster_contacts(GSList *list, gboolean show_groups)
         if (show_groups) {
             win_printf(console, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", "%s", sub->str);
         } else {
-            win_printf(console, '-', 0, NULL, NO_DATE, presence_colour, "", "%s", sub->str);
+            win_appendln(console, presence_colour, "%s", sub->str);
         }
 
         g_string_free(sub, TRUE);
@@ -2440,10 +2440,10 @@ _show_roster_contacts(GSList *list, gboolean show_groups)
                     }
                     groups = g_slist_next(groups);
                 }
-                win_printf(console, '-', 0, NULL, NO_DATE, THEME_DEFAULT, "", "%s", groups_str->str);
+                win_appendln(console, THEME_DEFAULT, "%s", groups_str->str);
                 g_string_free(groups_str, TRUE);
             } else {
-                 win_printf(console, '-', 0, NULL, NO_DATE, THEME_DEFAULT, "", " ");
+                win_appendln(console, THEME_DEFAULT, " ");
             }
         }
 
diff --git a/src/ui/core.c b/src/ui/core.c
index 178823c8..9866d93b 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -800,8 +800,7 @@ ui_room_join(const char *const roomjid, gboolean focus)
             win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_ROOMINFO, "", ", affiliation: %s", affiliation);
         }
     }
-    win_printf(window, '!', 0, NULL, NO_DATE, THEME_ROOMINFO, "", "");
-
+    win_appendln(window, THEME_ROOMINFO, "");
 
     if (focus) {
         ui_focus_win(window);
@@ -1304,7 +1303,7 @@ ui_show_software_version(const char *const jid, const char *const  presence,
         win_println(window, THEME_DEFAULT, '-', "");
         theme_item_t presence_colour = theme_main_presence_attrs(presence);
         win_print(window, presence_colour, '-', "%s", jid);
-        win_printf(window, '-', 0, NULL, NO_DATE, 0, "", ":");
+        win_appendln(window, THEME_DEFAULT, ":");
     }
     if (name) {
         win_println(window, THEME_DEFAULT, '-', "Name    : %s", name);
diff --git a/src/ui/mucconfwin.c b/src/ui/mucconfwin.c
index 8a9c3951..65cc6b04 100644
--- a/src/ui/mucconfwin.c
+++ b/src/ui/mucconfwin.c
@@ -48,7 +48,7 @@ mucconfwin_show_form(ProfMucConfWin *confwin)
     ProfWin *window = (ProfWin*) confwin;
     if (confwin->form->title) {
         win_print(window, THEME_DEFAULT, '-', "Form title: ");
-        win_printf(window, '-', 0, NULL, NO_DATE, THEME_DEFAULT, "", "%s", confwin->form->title);
+        win_appendln(window, THEME_DEFAULT, "%s", confwin->form->title);
     } else {
         win_println(window, THEME_DEFAULT, '-', "Configuration for room %s.", confwin->roomjid);
     }
@@ -113,9 +113,9 @@ mucconfwin_field_help(ProfMucConfWin *confwin, char *tag)
     if (field) {
         win_print(window, THEME_DEFAULT, '-', "%s", field->label);
         if (field->required) {
-            win_printf(window, '-', 0, NULL, NO_DATE, THEME_DEFAULT, "", " (Required):");
+            win_appendln(window, THEME_DEFAULT, " (Required):");
         } else {
-            win_printf(window, '-', 0, NULL, NO_DATE, THEME_DEFAULT, "", ":");
+            win_appendln(window, THEME_DEFAULT, ":");
         }
         if (field->description) {
             win_println(window, THEME_DEFAULT, '-', "  Description : %s", field->description);
@@ -252,16 +252,16 @@ _mucconfwin_form_field(ProfWin *window, char *tag, FormField *field)
         break;
     case FIELD_BOOLEAN:
         if (curr_value == NULL) {
-            win_printf(window, '-', 0, NULL, NO_DATE, THEME_OFFLINE, "", "FALSE");
+            win_appendln(window, THEME_OFFLINE, "FALSE");
         } else {
             char *value = curr_value->data;
             if (value == NULL) {
-                win_printf(window, '-', 0, NULL, NO_DATE, THEME_OFFLINE, "", "FALSE");
+                win_appendln(window, THEME_OFFLINE, "FALSE");
             } else {
                 if (g_strcmp0(value, "0") == 0) {
-                    win_printf(window, '-', 0, NULL, NO_DATE, THEME_OFFLINE, "", "FALSE");
+                    win_appendln(window, THEME_OFFLINE, "FALSE");
                 } else {
-                    win_printf(window, '-', 0, NULL, NO_DATE, THEME_ONLINE, "", "TRUE");
+                    win_appendln(window, THEME_ONLINE, "TRUE");
                 }
             }
         }
diff --git a/src/ui/mucwin.c b/src/ui/mucwin.c
index a1196ac4..62e5b997 100644
--- a/src/ui/mucwin.c
+++ b/src/ui/mucwin.c
@@ -58,7 +58,7 @@ mucwin_role_change(ProfMucWin *mucwin, const char *const role, const char *const
     if (reason) {
         win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_ROOMINFO, "", ", reason: %s", reason);
     }
-    win_printf(window, '!', 0, NULL, NO_DATE, THEME_ROOMINFO, "", "");
+    win_appendln(window, THEME_ROOMINFO, "");
 }
 
 void
@@ -75,7 +75,7 @@ mucwin_affiliation_change(ProfMucWin *mucwin, const char *const affiliation, con
     if (reason) {
         win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_ROOMINFO, "", ", reason: %s", reason);
     }
-    win_printf(window, '!', 0, NULL, NO_DATE, THEME_ROOMINFO, "", "");
+    win_appendln(window, THEME_ROOMINFO, "");
 }
 
 void
@@ -92,7 +92,7 @@ mucwin_role_and_affiliation_change(ProfMucWin *mucwin, const char *const role, c
     if (reason) {
         win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_ROOMINFO, "", ", reason: %s", reason);
     }
-    win_printf(window, '!', 0, NULL, NO_DATE, THEME_ROOMINFO, "", "");
+    win_appendln(window, THEME_ROOMINFO, "");
 }
 
 
@@ -110,7 +110,7 @@ mucwin_occupant_role_change(ProfMucWin *mucwin, const char *const nick, const ch
     if (reason) {
         win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_ROOMINFO, "", ", reason: %s", reason);
     }
-    win_printf(window, '!', 0, NULL, NO_DATE, THEME_ROOMINFO, "", "");
+    win_appendln(window, THEME_ROOMINFO, "");
 }
 
 void
@@ -127,7 +127,7 @@ mucwin_occupant_affiliation_change(ProfMucWin *mucwin, const char *const nick, c
     if (reason) {
         win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_ROOMINFO, "", ", reason: %s", reason);
     }
-    win_printf(window, '!', 0, NULL, NO_DATE, THEME_ROOMINFO, "", "");
+    win_appendln(window, THEME_ROOMINFO, "");
 }
 
 void
@@ -144,7 +144,7 @@ mucwin_occupant_role_and_affiliation_change(ProfMucWin *mucwin, const char *cons
     if (reason) {
         win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_ROOMINFO, "", ", reason: %s", reason);
     }
-    win_printf(window, '!', 0, NULL, NO_DATE, THEME_ROOMINFO, "", "");
+    win_appendln(window, THEME_ROOMINFO, "");
 }
 
 void
@@ -231,8 +231,7 @@ mucwin_roster(ProfMucWin *mucwin, GList *roster, const char *const presence)
 
             roster = g_list_next(roster);
         }
-        win_printf(window, '!', 0, NULL, NO_DATE, THEME_ONLINE, "", "");
-
+        win_appendln(window, THEME_ONLINE, "");
     }
 }
 
@@ -305,7 +304,7 @@ mucwin_occupant_online(ProfMucWin *mucwin, const char *const nick, const char *c
             win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_ONLINE, "", ", affiliation: %s", affiliation);
         }
     }
-    win_printf(window, '!', 0, NULL, NO_DATE, THEME_ROOMINFO, "", "");
+    win_appendln(window, THEME_ROOMINFO, "");
 }
 
 void
@@ -534,10 +533,10 @@ mucwin_subject(ProfMucWin *mucwin, const char *const nick, const char *const sub
     if (subject) {
         if (nick) {
             win_print(window, THEME_ROOMINFO, '!', "*%s has set the room subject: ", nick);
-            win_printf(window, '!', 0, NULL, NO_DATE, THEME_DEFAULT, "", "%s", subject);
+            win_appendln(window, THEME_DEFAULT, "%s", subject);
         } else {
             win_print(window, THEME_ROOMINFO, '!', "Room subject: ");
-            win_printf(window, '!', 0, NULL, NO_DATE, THEME_DEFAULT, "", "%s", subject);
+            win_appendln(window, THEME_DEFAULT, "%s", subject);
         }
     } else {
         if (nick) {
@@ -575,7 +574,7 @@ mucwin_broadcast(ProfMucWin *mucwin, const char *const message)
     int num = wins_get_num(window);
 
     win_print(window, THEME_ROOMINFO, '!', "Room message: ");
-    win_printf(window, '!', 0, NULL, NO_DATE, THEME_DEFAULT, "", "%s", message);
+    win_appendln(window, THEME_DEFAULT, "%s", message);
 
     // currently in groupchat window
     if (wins_is_current(window)) {
diff --git a/src/ui/ui.h b/src/ui/ui.h
index 05cac699..0830639a 100644
--- a/src/ui/ui.h
+++ b/src/ui/ui.h
@@ -359,6 +359,7 @@ void win_printf(ProfWin *window, const char show_char, int pad_indent, GDateTime
     theme_item_t theme_item, const char *const from, const char *const message, ...);
 void win_print(ProfWin *window, theme_item_t theme_item, const char ch, const char *const message, ...);
 void win_println(ProfWin *window, theme_item_t theme_item, const char ch, const char *const message, ...);
+void win_appendln(ProfWin *window, theme_item_t theme_item, const char *const message, ...);
 void win_println_indent(ProfWin *window, int pad, const char *const message);
 char* win_get_title(ProfWin *window);
 void win_show_occupant(ProfWin *window, Occupant *occupant);
diff --git a/src/ui/window.c b/src/ui/window.c
index a5b063cf..c7016b6f 100644
--- a/src/ui/window.c
+++ b/src/ui/window.c
@@ -689,7 +689,7 @@ win_show_occupant(ProfWin *window, Occupant *occupant)
         win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", \"%s\"", occupant->status);
     }
 
-    win_printf(window, '-', 0, NULL, NO_DATE, presence_colour, "", "");
+    win_appendln(window, presence_colour, "");
 }
 
 void
@@ -734,7 +734,7 @@ win_show_contact(ProfWin *window, PContact contact)
         win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", \"%s\"", p_contact_status(contact));
     }
 
-    win_printf(window, '-', 0, NULL, NO_DATE, presence_colour, "", "");
+    win_appendln(window, presence_colour, "");
 }
 
 void
@@ -792,7 +792,7 @@ win_show_occupant_info(ProfWin *window, const char *const room, Occupant *occupa
         if (caps->software_version) {
             SoftwareVersion *software_version = caps->software_version;
             if (software_version->software) {
-                win_printf(window, '!', 0, NULL, NO_EOL, THEME_DEFAULT, "", "  Software: %s", software_version->software);
+                win_print(window, THEME_DEFAULT, '!', "  Software: %s", software_version->software);
             }
             if (software_version->software_version) {
                 win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", ", %s", software_version->software_version);
@@ -801,7 +801,7 @@ win_show_occupant_info(ProfWin *window, const char *const room, Occupant *occupa
                 win_newline(window);
             }
             if (software_version->os) {
-                win_printf(window, '!', 0, NULL, NO_EOL, THEME_DEFAULT, "", "  OS: %s", software_version->os);
+                win_print(window, THEME_DEFAULT, '!', "  OS: %s", software_version->os);
             }
             if (software_version->os_version) {
                 win_printf(window, '!', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", ", %s", software_version->os_version);
@@ -829,11 +829,11 @@ win_show_info(ProfWin *window, PContact contact)
     theme_item_t presence_colour = theme_main_presence_attrs(presence);
 
     win_println(window, THEME_DEFAULT, '-', "");
-    win_printf(window, '-', 0, NULL, NO_EOL, presence_colour, "", "%s", barejid);
+    win_print(window, presence_colour, '-', "%s", barejid);
     if (name) {
         win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", " (%s)", name);
     }
-    win_printf(window, '-', 0, NULL, NO_DATE, THEME_DEFAULT, "", ":");
+    win_appendln(window, THEME_DEFAULT, ":");
 
     if (sub) {
         win_println(window, THEME_DEFAULT, '-', "Subscription: %s", sub);
@@ -880,7 +880,7 @@ win_show_info(ProfWin *window, PContact contact)
         Resource *resource = curr->data;
         const char *resource_presence = string_from_resource_presence(resource->presence);
         theme_item_t presence_colour = theme_main_presence_attrs(resource_presence);
-        win_printf(window, '-', 0, NULL, NO_EOL, presence_colour, "", "  %s (%d), %s", resource->name, resource->priority, resource_presence);
+        win_print(window, presence_colour, '-', "  %s (%d), %s", resource->name, resource->priority, resource_presence);
         if (resource->status) {
             win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", \"%s\"", resource->status);
         }
@@ -894,7 +894,7 @@ win_show_info(ProfWin *window, PContact contact)
             // show identity
             if (caps->identity) {
                 DiscoIdentity *identity = caps->identity;
-                win_printf(window, '-', 0, NULL, NO_EOL, THEME_DEFAULT, "", "    Identity: ");
+                win_print(window, THEME_DEFAULT, '-', "    Identity: ");
                 if (identity->name) {
                     win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", "%s", identity->name);
                     if (identity->category || identity->type) {
@@ -916,7 +916,7 @@ win_show_info(ProfWin *window, PContact contact)
             if (caps->software_version) {
                 SoftwareVersion *software_version = caps->software_version;
                 if (software_version->software) {
-                    win_printf(window, '-', 0, NULL, NO_EOL, THEME_DEFAULT, "", "    Software: %s", software_version->software);
+                    win_print(window, THEME_DEFAULT, '-', "    Software: %s", software_version->software);
                 }
                 if (software_version->software_version) {
                     win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", ", %s", software_version->software_version);
@@ -925,7 +925,7 @@ win_show_info(ProfWin *window, PContact contact)
                     win_newline(window);
                 }
                 if (software_version->os) {
-                    win_printf(window, '-', 0, NULL, NO_EOL, THEME_DEFAULT, "", "    OS: %s", software_version->os);
+                    win_print(window, THEME_DEFAULT, '-', "    OS: %s", software_version->os);
                 }
                 if (software_version->os_version) {
                     win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, THEME_DEFAULT, "", ", %s", software_version->os_version);
@@ -959,8 +959,7 @@ win_show_status_string(ProfWin *window, const char *const from,
         presence_colour = THEME_OFFLINE;
     }
 
-
-    win_printf(window, '-', 0, NULL, NO_EOL, presence_colour, "", "%s %s", pre, from);
+    win_print(window, presence_colour, '-', "%s %s", pre, from);
 
     if (show)
         win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", " is %s", show);
@@ -982,8 +981,7 @@ win_show_status_string(ProfWin *window, const char *const from,
     if (status)
         win_printf(window, '-', 0, NULL, NO_DATE | NO_EOL, presence_colour, "", ", \"%s\"", status);
 
-    win_printf(window, '-', 0, NULL, NO_DATE, presence_colour, "", "");
-
+    win_appendln(window, presence_colour, "");
 }
 
 void
@@ -1077,6 +1075,26 @@ win_println(ProfWin *window, theme_item_t theme_item, const char ch, const char
 }
 
 void
+win_appendln(ProfWin *window, theme_item_t theme_item, const char *const message, ...)
+{
+    GDateTime *timestamp = g_date_time_new_now_local();
+
+    va_list arg;
+    va_start(arg, message);
+    GString *fmt_msg = g_string_new(NULL);
+    g_string_vprintf(fmt_msg, message, arg);
+
+    buffer_push(window->layout->buffer, '-', 0, timestamp, NO_EOL, theme_item, "", fmt_msg->str, NULL);
+
+    _win_print(window, '-', 0, timestamp, NO_DATE, theme_item, "", fmt_msg->str, NULL);
+    inp_nonblocking(TRUE);
+    g_date_time_unref(timestamp);
+
+    g_string_free(fmt_msg, TRUE);
+    va_end(arg);
+
+}
+void
 win_print_http_upload(ProfWin *window, const char *const message, char *url)
 {
     win_print_with_receipt(window, '!', NULL, message, url);
@@ -1138,7 +1156,7 @@ win_println_indent(ProfWin *window, int pad, const char *const message)
 void
 win_newline(ProfWin *window)
 {
-    win_printf(window, '-', 0, NULL, NO_DATE, THEME_DEFAULT, "", "");
+    win_appendln(window, THEME_DEFAULT, "");
 }
 
 static void