diff --git a/src/fe-common/core/formats.c b/src/fe-common/core/formats.c index ef1b79d7..515a48a3 100644 --- a/src/fe-common/core/formats.c +++ b/src/fe-common/core/formats.c @@ -105,6 +105,12 @@ int format_expand_styles(GString *out, const char **format, int *flags) fmt = **format; switch (fmt) { + case '{': + case '}': + case '%': + /* escaped char */ + g_string_append_c(out, fmt); + break; case 'U': /* Underline on/off */ g_string_append_c(out, 4); @@ -121,9 +127,6 @@ int format_expand_styles(GString *out, const char **format, int *flags) g_string_append_c(out, 4); g_string_append_c(out, FORMAT_STYLE_REVERSE); break; - case '%': - g_string_append_c(out, '%'); - break; case ':': /* Newline */ g_string_append_c(out, '\n'); diff --git a/src/fe-common/core/themes.c b/src/fe-common/core/themes.c index a6881fa6..c7f8cf7b 100644 --- a/src/fe-common/core/themes.c +++ b/src/fe-common/core/themes.c @@ -212,7 +212,9 @@ static void theme_format_append_next(THEME_REC *theme, GString *str, return; } - /* %{ or %} gives us { or } char */ + /* %{ or %} gives us { or } char - keep the % char + though to make sure {} isn't treated as abstract */ + g_string_append_c(str, '%'); chr = **format; }