about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--handle.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/handle.c b/handle.c
index cec823a..fd8b25f 100644
--- a/handle.c
+++ b/handle.c
@@ -498,14 +498,16 @@ static void handleReplyWhoisIdle(struct Message *msg) {
 			}
 		}
 	}
-	time_t signon = (msg->params[3] ? strtoul(msg->params[3], NULL, 10) : 0);
+	char signon[sizeof("0000-00-00 00:00:00")];
+	time_t time = (msg->params[3] ? strtol(msg->params[3], NULL, 10) : 0);
+	strftime(signon, sizeof(signon), "%F %T", localtime(&time));
 	uiFormat(
 		Network, Warm, tagTime(msg),
-		"\3%02d%s\3\tis idle for %lu %s%s%s%.*s",
+		"\3%02d%s\3\tis idle for %lu %s%s%s%s",
 		completeColor(Network, msg->params[1]), msg->params[1],
 		idle, unit, (idle != 1 ? "s" : ""),
-		(signon ? ", signed on " : ""),
-		24, (signon ? ctime(&signon) : "")
+		(msg->params[3] ? ", signed on " : ""),
+		(msg->params[3] ? signon : "")
 	);
 }