diff options
Diffstat (limited to 'src/fe-common/core/formats.c')
-rw-r--r-- | src/fe-common/core/formats.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/fe-common/core/formats.c b/src/fe-common/core/formats.c index 729a8b1e..ef1b79d7 100644 --- a/src/fe-common/core/formats.c +++ b/src/fe-common/core/formats.c @@ -144,6 +144,11 @@ int format_expand_styles(GString *out, const char **format, int *flags) g_string_append_c(out, 4); g_string_append_c(out, FORMAT_STYLE_DEFAULTS); break; + case '>': + /* clear to end of line */ + g_string_append_c(out, 4); + g_string_append_c(out, FORMAT_STYLE_CLRTOEOL); + break; case '[': /* code */ format_expand_code(format, flags); @@ -882,16 +887,19 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text) /* bell */ if (settings_get_bool("bell_beeps")) signal_emit("beep", 0); + } else if (type == 4 && *ptr == FORMAT_STYLE_CLRTOEOL) { + /* clear to end of line */ + flags |= GUI_PRINT_FLAG_CLRTOEOL; } - if (*str != '\0') { + if (*str != '\0' || (flags & GUI_PRINT_FLAG_CLRTOEOL)) { /* send the text to gui handler */ signal_emit_id(signal_gui_print_text, 6, dest->window, GINT_TO_POINTER(fgcolor), GINT_TO_POINTER(bgcolor), GINT_TO_POINTER(flags), str, dest->level); - flags &= ~GUI_PRINT_FLAG_INDENT; + flags &= ~(GUI_PRINT_FLAG_INDENT|GUI_PRINT_FLAG_CLRTOEOL); } if (type == '\n') @@ -938,6 +946,8 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text) fgcolor = bgcolor = -1; flags &= GUI_PRINT_FLAG_INDENT; break; + case FORMAT_STYLE_CLRTOEOL: + break; default: if (*ptr != FORMAT_COLOR_NOCHANGE) { fgcolor = (unsigned char) *ptr-'0'; |