about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-01-27 14:18:20 -0500
committerJune McEnroe <june@causal.agency>2021-01-27 14:18:20 -0500
commitd6ff9e53cf724460b6f827edf40d698d35ffa2f7 (patch)
treef54e194740a4600a3ac6ea3966e58a76adf1f0fb
parentAdd toggleable display of timestamps (diff)
downloadcatgirl-d6ff9e53cf724460b6f827edf40d698d35ffa2f7.tar.gz
catgirl-d6ff9e53cf724460b6f827edf40d698d35ffa2f7.zip
Change default timestamp format to %X
This respects the user's locale settings.
Diffstat (limited to '')
-rw-r--r--catgirl.12
-rw-r--r--chat.c15
-rw-r--r--ui.c14
3 files changed, 14 insertions, 17 deletions
diff --git a/catgirl.1 b/catgirl.1
index d40b377..d572a8b 100644
--- a/catgirl.1
+++ b/catgirl.1
@@ -188,7 +188,7 @@ in the specified
 .Xr strftime 3
 .Ar format .
 The default format is
-.Qq \&%T .
+.Qq \&%X .
 .
 .It Fl a Ar user : Ns Ar pass , Cm sasl-plain = Ar user : Ns Ar pass
 Authenticate as
diff --git a/chat.c b/chat.c
index 7de427c..7335520 100644
--- a/chat.c
+++ b/chat.c
@@ -125,16 +125,6 @@ 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) {
@@ -246,7 +236,10 @@ 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 'T': {
+				uiTime.enable = true;
+				if (optarg) uiTime.format = optarg;
+			}
 			break; case 'a': sasl = true; self.plain = optarg;
 			break; case 'c': cert = optarg;
 			break; case 'e': sasl = true;
diff --git a/ui.c b/ui.c
index 5997571..da40dc0 100644
--- a/ui.c
+++ b/ui.c
@@ -69,11 +69,6 @@ enum {
 #define RIGHT (COLS - 1)
 #define MAIN_LINES (LINES - StatusLines - InputLines)
 
-struct Time uiTime = {
-	.format = "%T",
-	.width = 8,
-};
-
 static WINDOW *status;
 static WINDOW *main;
 static WINDOW *input;
@@ -232,6 +227,8 @@ static const char *ExitFocusMode  = "\33[?1004l";
 static const char *EnterPasteMode = "\33[?2004h";
 static const char *ExitPasteMode  = "\33[?2004l";
 
+struct Time uiTime = { .format = "%X" };
+
 static void errExit(void) {
 	putp(ExitFocusMode);
 	putp(ExitPasteMode);
@@ -239,6 +236,13 @@ static void errExit(void) {
 }
 
 void uiInitEarly(void) {
+	char buf[TimeCap];
+	struct tm *time = localtime(&(time_t) { -22100400 });
+	uiTime.width = strftime(buf, sizeof(buf), uiTime.format, time);
+	if (!uiTime.width) {
+		errx(EX_CONFIG, "invalid timestamp format: %s", uiTime.format);
+	}
+
 	initscr();
 	cbreak();
 	noecho();