From 0db8e9601917c4c67b48ab9b397517732f21a4ff Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 27 Jun 2001 21:05:04 +0000 Subject: [PATCH] Fixed window specific themes git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1575 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/fe-common/core/formats.c | 9 +++------ src/fe-common/core/formats.h | 3 +++ src/fe-common/core/printtext.c | 11 ++++++----- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/fe-common/core/formats.c b/src/fe-common/core/formats.c index a88a1f2b..d5b9f3a4 100644 --- a/src/fe-common/core/formats.c +++ b/src/fe-common/core/formats.c @@ -430,10 +430,8 @@ char *format_get_text_theme(THEME_REC *theme, const char *module, va_list va; char *str; - if (theme == NULL) { - theme = dest->window->theme == NULL ? current_theme : - dest->window->theme; - } + if (theme == NULL) + theme = window_get_theme(dest->window); va_start(va, formatnum); str = format_get_text_theme_args(theme, module, dest, formatnum, va); @@ -484,8 +482,7 @@ char *format_get_text(const char *module, WINDOW_REC *window, char *str; format_create_dest(&dest, server, target, 0, window); - theme = dest.window->theme == NULL ? current_theme : - dest.window->theme; + theme = window_get_theme(dest.window); va_start(va, formatnum); str = format_get_text_theme_args(theme, module, &dest, formatnum, va); diff --git a/src/fe-common/core/formats.h b/src/fe-common/core/formats.h index 4678b6f4..1bb44b3b 100644 --- a/src/fe-common/core/formats.h +++ b/src/fe-common/core/formats.h @@ -51,6 +51,9 @@ typedef struct { int flags; } TEXT_DEST_REC; +#define window_get_theme(window) \ + ((window)->theme != NULL ? (window)->theme : current_theme) + int format_find_tag(const char *module, const char *tag); /* Return length of text part in string (ie. without % codes) */ diff --git a/src/fe-common/core/printtext.c b/src/fe-common/core/printtext.c index 6c35c326..29611a13 100644 --- a/src/fe-common/core/printtext.c +++ b/src/fe-common/core/printtext.c @@ -52,8 +52,7 @@ static void printformat_module_dest(const char *module, TEXT_DEST_REC *dest, THEME_REC *theme; char *str; - theme = dest->window->theme == NULL ? current_theme : - dest->window->theme; + theme = window_get_theme(dest->window); formats = g_hash_table_lookup(default_formats, module); format_read_arglist(va, &formats[formatnum], @@ -131,7 +130,8 @@ void printformat_module_gui_args(const char *module, int formatnum, va_list va) arglist, sizeof(arglist)/sizeof(char *), buffer, sizeof(buffer)); - str = format_get_text_theme_charargs(current_theme, module, &dest, + str = format_get_text_theme_charargs(window_get_theme(dest.window), + module, &dest, formatnum, arglist); if (*str != '\0') format_send_to_gui(&dest, str); g_free(str); @@ -153,7 +153,7 @@ static void print_line(TEXT_DEST_REC *dest, const char *text) g_return_if_fail(dest != NULL); g_return_if_fail(text != NULL); - tmp = format_get_level_tag(current_theme, dest); + tmp = format_get_level_tag(window_get_theme(dest->window), dest); str = format_add_linestart(text, tmp); g_free_not_null(tmp); @@ -377,7 +377,8 @@ static void sig_print_text(TEXT_DEST_REC *dest, const char *text) /* add timestamp/server tag here - if it's done in print_line() it would be written to log files too */ - tmp = format_get_line_start(current_theme, dest, time(NULL)); + tmp = format_get_line_start(window_get_theme(dest->window), + dest, time(NULL)); str = format_add_linestart(text, tmp); g_free_not_null(tmp);