diff --git a/bin/ps/extern.h b/bin/ps/extern.h index 55796699d435..dedac7ee5921 100644 --- a/bin/ps/extern.h +++ b/bin/ps/extern.h @@ -41,7 +41,7 @@ struct varent; extern fixpt_t ccpu; extern int eval, fscale, mempages, nlistread, rawcpu, cflag; -extern int sumrusage, termwidth, totwidth, use_ampm; +extern int sumrusage, termwidth, totwidth; extern VAR var[]; extern VARENT *vhead; diff --git a/bin/ps/print.c b/bin/ps/print.c index 37d03a382821..f73c3f06d09b 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -51,6 +51,7 @@ static const char rcsid[] = #include #include +#include #include #include #include @@ -354,6 +355,7 @@ started(k, ve) time_t then; struct tm *tp; char buf[100]; + static int use_ampm = -1; v = ve->var; if (!k->ki_valid) { @@ -361,6 +363,9 @@ started(k, ve) return; } + if (use_ampm < 0) + use_ampm = (*nl_langinfo(T_FMT_AMPM) != '\0'); + then = k->ki_p->ki_start.tv_sec; tp = localtime(&then); if (!now) diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 7d5aaeebbd4a..55fdc0782621 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -58,7 +58,6 @@ static const char rcsid[] = #include #include #include -#include #include #include #include @@ -83,7 +82,6 @@ int rawcpu; /* -C */ int sumrusage; /* -S */ int termwidth; /* width of screen (0 == infinity) */ int totwidth; /* calculated width of requested variables */ -int use_ampm; /* use AM/PM time */ static int needuser, needcomm, needenv; #if defined(LAZY_PS) @@ -131,7 +129,6 @@ main(argc, argv) char *nlistf, *memf, *swapf, errbuf[_POSIX2_LINE_MAX]; (void) setlocale(LC_ALL, ""); - use_ampm = (*nl_langinfo(T_FMT_AMPM) != '\0'); if ((ioctl(STDOUT_FILENO, TIOCGWINSZ, (char *)&ws) == -1 && ioctl(STDERR_FILENO, TIOCGWINSZ, (char *)&ws) == -1 &&