From 4ca9672a920c46fcc01aa65744e829a02e9d4ec5 Mon Sep 17 00:00:00 2001 From: RichardHitt Date: Sat, 29 Mar 2014 14:27:23 -0700 Subject: Fix scrollback_load to deal with e.g. the output of /HELP Fixes #928. --- src/common/text.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/common/text.c b/src/common/text.c index 96442e6e..e7cef398 100644 --- a/src/common/text.c +++ b/src/common/text.c @@ -303,6 +303,12 @@ scrollback_load (session *sess) buf = g_strndup (buf_tmp, n_bytes); g_free (buf_tmp); + /* + * Some scrollback lines have three blanks after the timestamp and a newline + * Some have only one blank and a newline + * Some don't even have a timestamp + * Some don't have any text at all + */ if (buf[0] == 'T') { if (sizeof (time_t) == 4) @@ -310,7 +316,7 @@ scrollback_load (session *sess) else stamp = strtoull (buf + 2, NULL, 10); /* in case time_t is 64 bits */ text = strchr (buf + 3, ' '); - if (text) + if (text && text[1]) { if (prefs.hex_text_stripcolor_replay) { @@ -324,8 +330,19 @@ scrollback_load (session *sess) g_free (text); } } - lines++; + else + { + fe_print_text (sess, " ", stamp, TRUE); + } + } + else + { + if (strlen (buf)) + fe_print_text (sess, buf, 0, TRUE); + else + fe_print_text (sess, " ", 0, TRUE); } + lines++; g_free (buf); } -- cgit 1.4.1