Use thread-safe strftime_l() instead of strftime().

Peter Eisentraut <peter@eisentraut.org>

Commit: 890fc826c91f153ae8c084d3a008f91798495b13
Author: Peter Eisentraut <peter@eisentraut.org>
Date: 2025-03-28T06:13:43Z
Releases: 18.0
Use thread-safe strftime_l() instead of strftime().

This removes some setlocale() calls and a lot of commentary about how
dangerous that is.  strftime_l() is from POSIX 2008, and on Windows we
use _wcsftime_l().

While here, adjust error message for strftime_l() failure: it does not
in practice set errno (even though POSIX says it could), so no %m.

Author: Thomas Munro <thomas.munro@gmail.com>
Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://postgr.es/m/CA%2BhUKGJqVe0%2BPv9dvC9dSums_PXxGo9SWcxYAMBguWJUGbWz-A%40mail.gmail.com

Files

Discussion