From 5ad955236528d3962e63ce486bcbda2ee6896a63 Mon Sep 17 00:00:00 2001 From: Diogo Sousa Date: Tue, 8 Oct 2013 23:59:36 +0100 Subject: [PATCH] Fix messages with server-time not showing as new activity Added a parameter to fe_print_text() to say that the message does not represent new activity. This is used when a log from an old session is loaded. This used to be implicit whenever the timestamp was non-zero, but with server-time this no longer makes sense. Fixes issue #746. --- src/common/fe.h | 3 ++- src/common/text.c | 6 +++--- src/fe-gtk/fe-gtk.c | 7 ++++--- src/fe-text/fe-text.c | 10 ++++++---- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/common/fe.h b/src/common/fe.h index 91bf0a5b..24fde989 100644 --- a/src/common/fe.h +++ b/src/common/fe.h @@ -86,7 +86,8 @@ void fe_text_clear (struct session *sess, int lines); void fe_close_window (struct session *sess); void fe_progressbar_start (struct session *sess); void fe_progressbar_end (struct server *serv); -void fe_print_text (struct session *sess, char *text, time_t stamp); +void fe_print_text (struct session *sess, char *text, time_t stamp, + gboolean no_activity); void fe_userlist_insert (struct session *sess, struct User *newuser, int row, int sel); int fe_userlist_remove (struct session *sess, struct User *user); void fe_userlist_rehash (struct session *sess, struct User *user); diff --git a/src/common/text.c b/src/common/text.c index d18b9c1a..0b66c5fd 100644 --- a/src/common/text.c +++ b/src/common/text.c @@ -314,7 +314,7 @@ scrollback_load (session *sess) text = strip_color (text + 1, -1, STRIP_COLOR); } - fe_print_text (sess, text, stamp); + fe_print_text (sess, text, stamp, TRUE); if (prefs.hex_text_stripcolor_replay) { @@ -340,7 +340,7 @@ scrollback_load (session *sess) text = ctime (&stamp); text[24] = 0; /* get rid of the \n */ buf = g_strdup_printf ("\n*\t%s %s\n\n", _("Loaded log from"), text); - fe_print_text (sess, buf, 0); + fe_print_text (sess, buf, 0, TRUE); g_free (buf); /*EMIT_SIGNAL (XP_TE_GENMSG, sess, "*", buf, NULL, NULL, NULL, 0);*/ } @@ -895,7 +895,7 @@ PrintTextTimeStamp (session *sess, char *text, time_t timestamp) log_write (sess, text); scrollback_save (sess, text); - fe_print_text (sess, text, timestamp); + fe_print_text (sess, text, timestamp, FALSE); if (conv) g_free (conv); diff --git a/src/fe-gtk/fe-gtk.c b/src/fe-gtk/fe-gtk.c index 97067f90..af3173e1 100644 --- a/src/fe-gtk/fe-gtk.c +++ b/src/fe-gtk/fe-gtk.c @@ -607,12 +607,13 @@ fe_progressbar_end (server *serv) } void -fe_print_text (struct session *sess, char *text, time_t stamp) +fe_print_text (struct session *sess, char *text, time_t stamp, + gboolean no_activity) { PrintTextRaw (sess->res->buffer, (unsigned char *)text, prefs.hex_text_indent, stamp); - if (!sess->new_data && sess != current_tab && - sess->gui->is_tab && !sess->nick_said && stamp == 0) + if (!no_activity && !sess->new_data && sess != current_tab && + sess->gui->is_tab && !sess->nick_said) { sess->new_data = TRUE; lastact_update (sess); diff --git a/src/fe-text/fe-text.c b/src/fe-text/fe-text.c index f5454dd2..b218e862 100644 --- a/src/fe-text/fe-text.c +++ b/src/fe-text/fe-text.c @@ -99,7 +99,7 @@ fe_new_window (struct session *sess, int focus) " \017This binary compiled \00310"__DATE__"\017\n", get_sys_str (1), glib_major_version, glib_minor_version, glib_micro_version); - fe_print_text (sess, buf, 0); + fe_print_text (sess, buf, 0, FALSE); fe_print_text (sess, "\n\nCompiled in Features\0032:\017 " #ifdef USE_PLUGIN @@ -114,7 +114,7 @@ fe_new_window (struct session *sess, int focus) #ifdef USE_IPV6 "IPv6" #endif - "\n\n", 0); + "\n\n", 0, FALSE); fflush (stdout); } @@ -144,7 +144,8 @@ timecat (char *buf, time_t stamp) static const short colconv[] = { 0, 7, 4, 2, 1, 3, 5, 11, 13, 12, 6, 16, 14, 15, 10, 7 }; void -fe_print_text (struct session *sess, char *text, time_t stamp) +fe_print_text (struct session *sess, char *text, time_t stamp, + gboolean no_activity) { int dotime = FALSE; char num[8]; @@ -312,7 +313,8 @@ fe_print_text (struct session *sess, char *text, time_t stamp) #else /* The win32 version for cmd.exe */ void -fe_print_text (struct session *sess, char *text, time_t stamp) +fe_print_text (struct session *sess, char *text, time_t stamp, + gboolean no_activity) { int dotime = FALSE; int comma, k, i = 0, j = 0, len = strlen (text);