From 3d627ca527c40f82911058a81df3811ee2cac6a3 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 26 Sep 2000 22:02:19 +0000 Subject: if printformat() was given a argument ending with ^C it could mess up one or two chars of the following text (part/quit messages). git-svn-id: http://svn.irssi.org/repos/irssi/trunk@676 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/fe-common/core/printtext.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/fe-common') diff --git a/src/fe-common/core/printtext.c b/src/fe-common/core/printtext.c index 155b580f..6566bfa4 100644 --- a/src/fe-common/core/printtext.c +++ b/src/fe-common/core/printtext.c @@ -385,8 +385,18 @@ static char *output_format_text_args(TEXT_DEST_REC *dest, FORMAT_REC *format, ret = parse_special((char **) &str, active_win->active_server, active_win->active, arglist, &need_free, NULL); + if (ret != NULL) { + /* string shouldn't end with \003 or it could + mess up the next one or two characters */ + int diff; + int len = strlen(ret); + while (len > 0 && ret[len-1] == 3) len--; + diff = strlen(ret)-len; + g_string_append(out, ret); + if (diff > 0) + g_string_truncate(out, out->len-diff); if (need_free) g_free(ret); } code = 0; -- cgit v1.2.3