diff options
author | ache <ache@FreeBSD.org> | 2001-03-02 23:53:36 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 2001-03-02 23:53:36 +0000 |
commit | 0d5efacbf56c92f8d2b3ed41f72b0c928e6efb45 (patch) | |
tree | b1808f8dc48f3c15fda2d81be061757003d8c529 /bin | |
parent | 98047335baabd6545b20432cdeeed011dcceb61b (diff) | |
download | FreeBSD-src-0d5efacbf56c92f8d2b3ed41f72b0c928e6efb45.zip FreeBSD-src-0d5efacbf56c92f8d2b3ed41f72b0c928e6efb45.tar.gz |
Use AM/PM time only when available in locale
Diffstat (limited to 'bin')
-rw-r--r-- | bin/ps/extern.h | 2 | ||||
-rw-r--r-- | bin/ps/print.c | 6 | ||||
-rw-r--r-- | bin/ps/ps.c | 5 |
3 files changed, 9 insertions, 4 deletions
diff --git a/bin/ps/extern.h b/bin/ps/extern.h index dedac7e..5579669 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; +extern int sumrusage, termwidth, totwidth, use_ampm; extern VAR var[]; extern VARENT *vhead; diff --git a/bin/ps/print.c b/bin/ps/print.c index 72d96cf..37d03a3 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -366,9 +366,11 @@ started(k, ve) if (!now) (void)time(&now); if (now - k->ki_p->ki_start.tv_sec < 24 * 3600) { - (void)strftime(buf, sizeof(buf) - 1, "%l:%M%p", tp); + (void)strftime(buf, sizeof(buf) - 1, + use_ampm ? "%l:%M%p" : "%k:%M ", tp); } else if (now - k->ki_p->ki_start.tv_sec < 7 * 86400) { - (void)strftime(buf, sizeof(buf) - 1, "%a%I%p", tp); + (void)strftime(buf, sizeof(buf) - 1, + use_ampm ? "%a%I%p" : "%a%H ", tp); } else (void)strftime(buf, sizeof(buf) - 1, "%e%b%y", tp); (void)printf("%-*s", v->width, buf); diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 324ff6b..7d5aaee 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -58,14 +58,15 @@ static const char rcsid[] = #include <errno.h> #include <fcntl.h> #include <kvm.h> +#include <langinfo.h> #include <limits.h> +#include <locale.h> #include <nlist.h> #include <paths.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> -#include <locale.h> #include <pwd.h> #include <utmp.h> @@ -82,6 +83,7 @@ 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) @@ -129,6 +131,7 @@ 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 && |