diff options
author | Richard Hitt <rbh00@netcom.com> | 2014-03-30 20:09:37 -0700 |
---|---|---|
committer | Richard Hitt <rbh00@netcom.com> | 2014-03-30 20:09:37 -0700 |
commit | 5e8bc980e101f06b452d840569e255b01b220134 (patch) | |
tree | 8a7de305491f3c84233d4b39e0cb36ef93e7d3de | |
parent | 1a3bfdce75822a2c3cdf2ee23a266eb0ffbe4775 (diff) | |
parent | 4ca9672a920c46fcc01aa65744e829a02e9d4ec5 (diff) |
Merge pull request #929 from hexchat/928
Fix scrollback_load to deal with e.g. the output of /HELP
-rw-r--r-- | src/common/text.c | 21 |
1 files changed, 19 insertions, 2 deletions
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); } |