summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-02-25 19:22:36 -0500
committerJune McEnroe <june@causal.agency>2020-02-25 19:22:36 -0500
commitc69214eac725c2607a70ebd2df717cc200f876fd (patch)
tree0445d84b825813cae8fabcd6bd1a46f8bc0e9de0
parentSupport message-tags (diff)
downloadpounce-c69214eac725c2607a70ebd2df717cc200f876fd.tar.gz
pounce-c69214eac725c2607a70ebd2df717cc200f876fd.zip
Add time tag to lines missing it
If a line was produced by another client, it won't have one from the
server.
-rw-r--r--client.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/client.c b/client.c
index b81732d..9b55fdd 100644
--- a/client.c
+++ b/client.c
@@ -485,6 +485,16 @@ static Filter *Filters[] = {
 	[CapUserhostInNamesBit] = filterUserhostInNames,
 };
 
+static bool hasTime(const char *line) {
+	if (!strncmp(line, "@time=", 6)) return true;
+	while (*line && *line != ' ') {
+		line += strcspn(line, "; ");
+		if (!strncmp(line, ";time=", 6)) return true;
+		if (*line == ';') line++;
+	}
+	return false;
+}
+
 void clientConsume(struct Client *client) {
 	struct timeval time;
 	const char *line = ringPeek(&time, client->consumer);
@@ -503,7 +513,7 @@ void clientConsume(struct Client *client) {
 		return;
 	}
 
-	if (client->caps & CapServerTime && !(stateCaps & CapServerTime)) {
+	if (client->caps & CapServerTime && !hasTime(line)) {
 		char ts[sizeof("YYYY-MM-DDThh:mm:ss")];
 		struct tm *tm = gmtime(&time.tv_sec);
 		strftime(ts, sizeof(ts), "%FT%T", tm);
opy utilitiesJune McEnroe 2020-02-12Handle RPL_AWAYJune McEnroe 2020-02-11Support monochromatic terminalsJune McEnroe 2020-02-11Add .gz to chroot-man scriptJune McEnroe 2020-02-11Add -R restricted flagJune McEnroe 2020-02-11Add chroot targetJune McEnroe 2020-02-11Exit focus and paste modes on err exitJune McEnroe 2020-02-11Add startup GPLv3 note and URLJune McEnroe 2020-02-11Make sure -D_GNU_SOURCE ends up in CFLAGS on LinuxJune McEnroe 2020-02-11Add note about setting PKG_CONFIG_PATHJune McEnroe 2020-02-11Rename query ID on nick changeJune McEnroe 2020-02-11Call completeClear when closing a windowJune McEnroe 2020-02-11Don't insert color codes for non-mentionsJune McEnroe 2020-02-11Take first two words in colorMentionsJune McEnroe 2020-02-11Use time_t for save signatureJune McEnroe 2020-02-11Set self.nick to * initiallyJune McEnroe 2020-02-11Define ColorCap instead of hardcoding 100June McEnroe 2020-02-11Move hash to top of chat.hJune McEnroe 2020-02-11Move base64 out of chat.hJune McEnroe 2020-02-11Move XDG_SUBDIR out of chat.hJune McEnroe 2020-02-11Fix whois idle unit calculationJune McEnroe 2020-02-11Cast towupper to wchar_tJune McEnroe 2020-02-11Cast set but unused variables to voidJune McEnroe 2020-02-11Declare strlcatJune McEnroe 2020-02-11Check if VDSUSP existsJune McEnroe 2020-02-11Fix completeReplace iterationJune McEnroe 2020-02-11Use pkg(8) to configure on FreeBSDJune McEnroe 2020-02-11Remove legacy codeJune McEnroe 2020-02-11Add INSTALLING section to READMEJune McEnroe