summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Small <csmall@dropbear.xyz>2022-11-09 21:02:09 +1100
committerCraig Small <csmall@dropbear.xyz>2022-11-09 21:02:09 +1100
commitd99c213af9c4a28c9232fe186fd0b10ea9b063f7 (patch)
treee737f952c2782360457fba503cf287941171a29b
parent2647eb57da100823ffdb2f8afffbfd59e2887e8f (diff)
downloadprocps-ng-d99c213af9c4a28c9232fe186fd0b10ea9b063f7.tar.gz
w: Show time with TIME_BITS=64 on 32bit env
Thanks to @kabe-gl for this patch. w command shows ????? for LOGIN@ column when compiled on 32bit environment with -D_TIME_BITS=64. References: #256 Signed-off-by: Craig Small <csmall@dropbear.xyz>
-rw-r--r--NEWS1
-rw-r--r--src/w.c14
2 files changed, 8 insertions, 7 deletions
diff --git a/NEWS b/NEWS
index cdbfef9..cdd02a6 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@ procps-ng-NEXT
---------------
* library
Handle absent 'core_id' in /proc/cpuinfo
+ * w: Show time with D_TIME_BITS=64 on 32bit env issue #256
procps-ng-4.0.1
---------------
diff --git a/src/w.c b/src/w.c
index 8b37179..63f81c7 100644
--- a/src/w.c
+++ b/src/w.c
@@ -251,34 +251,34 @@ static void print_time_ival7(time_t t, int centi_sec, FILE * fout)
if (oldstyle) {
if (t >= 48 * 60 * 60)
/* > 2 days */
- fprintf(fout, _(" %2ludays"), t / (24 * 60 * 60));
+ fprintf(fout, _(" %2lludays"), (unsigned long long)t / (24 * 60 * 60));
else if (t >= 60 * 60)
/* > 1 hour */
/* Translation Hint: Hours:Minutes */
- fprintf(fout, " %2lu:%02u ", t / (60 * 60),
+ fprintf(fout, " %2llu:%02u ", (unsigned long long)t / (60 * 60),
(unsigned)((t / 60) % 60));
else if (t > 60)
/* > 1 minute */
/* Translation Hint: Minutes:Seconds */
- fprintf(fout, _(" %2lu:%02um"), t / 60, (unsigned)t % 60);
+ fprintf(fout, _(" %2llu:%02um"), (unsigned long long)t / 60, (unsigned)t % 60);
else
fprintf(fout, " ");
} else {
if (t >= 48 * 60 * 60)
/* 2 days or more */
- fprintf(fout, _(" %2ludays"), t / (24 * 60 * 60));
+ fprintf(fout, _(" %2lludays"), (unsigned long long)t / (24 * 60 * 60));
else if (t >= 60 * 60)
/* 1 hour or more */
/* Translation Hint: Hours:Minutes */
- fprintf(fout, _(" %2lu:%02um"), t / (60 * 60),
+ fprintf(fout, _(" %2llu:%02um"), (unsigned long long)t / (60 * 60),
(unsigned)((t / 60) % 60));
else if (t > 60)
/* 1 minute or more */
/* Translation Hint: Minutes:Seconds */
- fprintf(fout, " %2lu:%02u ", t / 60, (unsigned)t % 60);
+ fprintf(fout, " %2llu:%02u ", (unsigned long long)t / 60, (unsigned)t % 60);
else
/* Translation Hint: Seconds:Centiseconds */
- fprintf(fout, _(" %2lu.%02us"), t, centi_sec);
+ fprintf(fout, _(" %2llu.%02us"), (unsigned long long)t, centi_sec);
}
}