dtrace: honor LC_NUMERIC for %'d and alike, and LC_TIME for %T

Note that the public documentation on dtrace.org fails to mention %T and
incorrectly documents %Y.  The latter actually uses format "%Y %b %e %T"
where %b is always in C locale.

Discussed with:	markj
MFC after:	1 month
Sponsored by:	Panzura
This commit is contained in:
avg 2020-12-03 11:59:40 +00:00
parent 634456c98a
commit c2fd06243e

View File

@ -51,6 +51,7 @@
#include <libproc.h>
#endif
#ifdef __FreeBSD__
#include <locale.h>
#include <spawn.h>
#endif
@ -1316,6 +1317,14 @@ main(int argc, char *argv[])
struct ps_prochandle *P;
pid_t pid;
#ifdef __FreeBSD__
/* For %'d and the like. */
(void) setlocale(LC_NUMERIC, "");
/* For %T. */
(void) setlocale(LC_TIME, "");
#endif
g_pname = basename(argv[0]);
if (argc == 1)