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.
This commit is contained in:
Ben Harris 2025-03-25 11:09:54 +00:00
parent bcd1d5304a
commit f94a7062e3

View File

@ -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;
}