From c118c594e3689bac3c6a083ecc05c1866e65927c Mon Sep 17 00:00:00 2001 From: C. McEnroe Date: Wed, 27 Jan 2021 00:15:46 -0500 Subject: Add toggleable display of timestamps --- chat.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'chat.c') diff --git a/chat.c b/chat.c index 6458925..7de427c 100644 --- a/chat.c +++ b/chat.c @@ -40,6 +40,7 @@ #include #include #include +#include #include #include @@ -124,6 +125,16 @@ static void parseHash(char *str) { if (*str) hashBound = strtoul(&str[1], NULL, 0); } +static void parseTimestamp(const char *format) { + uiTime.enable = true; + if (!format) return; + char buf[TimeCap]; + uiTime.format = format; + struct tm *time = localtime(&(time_t) { -22100400 }); + uiTime.width = strftime(buf, sizeof(buf), format, time); + if (!uiTime.width) errx(EX_USAGE, "invalid timestamp format: %s", format); +} + #ifdef __OpenBSD__ static void unveilConfig(const char *name) { @@ -197,6 +208,7 @@ int main(int argc, char *argv[]) { { .val = 'O', .name = "open", required_argument }, { .val = 'R', .name = "restrict", no_argument }, { .val = 'S', .name = "bind", required_argument }, + { .val = 'T', .name = "timestamp", optional_argument }, { .val = 'a', .name = "sasl-plain", required_argument }, { .val = 'c', .name = "cert", required_argument }, { .val = 'e', .name = "sasl-external", no_argument }, @@ -234,6 +246,7 @@ int main(int argc, char *argv[]) { break; case 'O': utilPush(&urlOpenUtil, optarg); break; case 'R': self.restricted = true; break; case 'S': bind = optarg; + break; case 'T': parseTimestamp(optarg); break; case 'a': sasl = true; self.plain = optarg; break; case 'c': cert = optarg; break; case 'e': sasl = true; -- cgit 1.4.1-2-gfad0