From: Ben Harris Date: Tue, 25 Mar 2025 11:09:54 +0000 (+0000) Subject: Switch from asctime() to strftime() X-Git-Tag: bedstead-3.252~2 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=f94a7062e3208013d5cba9619fda9bebbb0fb3e8;p=bedstead.git 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. --- 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; }