From: Jochen Eisinger Date: Wed, 11 Dec 2002 20:49:21 +0000 (+0000) Subject: Wed Dec 11 21:46:19 CET 2002 Jochen Eisinger X-Git-Tag: silc.client.0.9.11~38 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=81748eefd52c7118c93caf991952305dbaa3e11e;p=silc.git Wed Dec 11 21:46:19 CET 2002 Jochen Eisinger * Fix theme abstracts parsing. Affected files irssi/default.theme, irssi/src/fe-common/core/themes.c --- diff --git a/CHANGES b/CHANGES index 77566b3c..2b468232 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +Wed Dec 11 21:46:19 CET 2002 Jochen Eisinger + + * Fix theme abstracts parsing. Affected files irssi/default.theme, + irssi/src/fe-common/core/themes.c + Wed Dec 11 20:20:07 EET 2002 Pekka Riikonen * Fixed close command to use the port correctly when closing diff --git a/apps/irssi/default.theme b/apps/irssi/default.theme index 311eedeb..1e2dca6f 100644 --- a/apps/irssi/default.theme +++ b/apps/irssi/default.theme @@ -329,7 +329,8 @@ abstracts = { privmsgnick_failed = "{privmsgnick {flag_failed}$0}"; ownmsgnick_signed = "{msgnick {flag_signed} $1-}%g"; - ownprivmsgnick_signed = "->*%c{flag_signed}%n* %g$1-"; + ownprivmsg_signed = "->*%c{flag_signed}$1-%n* %g"; + ownprivmsgnick_signed = "->*%c{flag_signed}$0%n* %g$1-"; }; # diff --git a/apps/irssi/src/fe-common/core/themes.c b/apps/irssi/src/fe-common/core/themes.c index 06880060..437b118f 100644 --- a/apps/irssi/src/fe-common/core/themes.c +++ b/apps/irssi/src/fe-common/core/themes.c @@ -314,7 +314,11 @@ char *theme_format_expand_get(THEME_REC *theme, const char **format) braces++; else if (**format == '}') braces--; - else { + else if ((braces > 1) && (**format == ' ')) { + g_string_append(str, "\\x20"); + (*format)++; + continue; + } else { theme_format_append_next(theme, str, format, 'n', 'n', &dummy, &dummy, 0); @@ -341,6 +345,7 @@ static char *theme_format_expand_abstract(THEME_REC *theme, char default_fg, char default_bg, int flags) { + GString *str; const char *p, *format; char *abstract, *data, *ret; int len; @@ -400,7 +405,21 @@ static char *theme_format_expand_abstract(THEME_REC *theme, PARSE_FLAG_ONLY_ARGS); g_free(abstract); g_free(data); - abstract = ret; + str = g_string_new(NULL); + p = ret; + while (*p != '\0') { + if (*p == '\\') { + int chr; + p++; + chr = expand_escape(&p); + g_string_append_c(str, chr != -1 ? chr : *p); + } else + g_string_append_c(str, *p); + p++; + } + g_free(ret); + abstract = str->str; + g_string_free(str, FALSE); /* abstract may itself contain abstracts or replaces */ p = abstract;