From 19d111eff42e2a2d8424383994e9962f611fd912 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 5 Jan 2001 08:34:39 +0000 Subject: [PATCH] printtext_string() fix, should actually work now :) git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1073 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/fe-common/core/printtext.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/fe-common/core/printtext.c b/src/fe-common/core/printtext.c index 5072e783..6e21ed4d 100644 --- a/src/fe-common/core/printtext.c +++ b/src/fe-common/core/printtext.c @@ -219,6 +219,32 @@ static char *printtext_get_args(TEXT_DEST_REC *dest, const char *str, va_list va return ret; } +static char *printtext_expand_formats(TEXT_DEST_REC *dest, const char *str) +{ + GString *out; + char *ret; + + out = g_string_new(NULL); + for (; *str != '\0'; str++) { + if (*str != '%') { + g_string_append_c(out, *str); + continue; + } + + if (*++str == '\0') + break; + + if (!format_expand_styles(out, *str, dest)) { + g_string_append_c(out, '%'); + g_string_append_c(out, *str); + } + } + + ret = out->str; + g_string_free(out, FALSE); + return ret; +} + void printtext_dest(TEXT_DEST_REC *dest, const char *text, va_list va) { char *str; @@ -253,6 +279,7 @@ void printtext(void *server, const char *target, int level, const char *text, .. void printtext_string(void *server, const char *target, int level, const char *text) { TEXT_DEST_REC dest; + char *str; g_return_if_fail(text != NULL); @@ -264,7 +291,9 @@ void printtext_string(void *server, const char *target, int level, const char *t sending_print_starting = FALSE; } - print_line(&dest, text); + str = printtext_expand_formats(&dest, text); + print_line(&dest, str); + g_free(str); } void printtext_window(WINDOW_REC *window, int level, const char *text, ...)