From f94a7062e3208013d5cba9619fda9bebbb0fb3e8 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Tue, 25 Mar 2025 11:09:54 +0000 Subject: [PATCH] Switch from asctime() to strftime() C23 marks asctime() as deprecated and it seems polite to keep up with that. Using strftime() isn't noticeably more complicated: the "%c" specifier does what we want and we don't get a spurious newline that we have to remove again. --- bedstead.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bedstead.c b/bedstead.c index d524564..704ed40 100644 --- a/bedstead.c +++ b/bedstead.c @@ -3145,9 +3145,11 @@ fullname_to_fontname(char const *fullname) static char * time_for_ttx(void) { + static char timestr[25]; + size_t timestrlen; struct tm *timeptr, tm; unsigned long long epochull; - char *epochstr, *endptr, *timestr; + char *epochstr, *endptr; /* Work out what timestamp to use. */ if ((epochstr = getenv("SOURCE_DATE_EPOCH")) != NULL) { @@ -3201,9 +3203,8 @@ time_for_ttx(void) return NULL; } } - timestr = asctime(timeptr); - assert(strlen(timestr) == 25); - timestr[24] = '\0'; /* Remove newline. */ + timestrlen = strftime(timestr, lenof(timestr), "%c", timeptr); + assert(timestrlen == 24); return timestr; } -- 2.30.2