From: Craig Small Date: Wed, 9 Nov 2022 10:02:09 +0000 (+1100) Subject: w: Show time with TIME_BITS=64 on 32bit env X-Git-Tag: v4.0.2_rc1~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d99c213af9c4a28c9232fe186fd0b10ea9b063f7;p=procps-ng 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 --- diff --git a/NEWS b/NEWS index cdbfef94..cdd02a6f 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 8b371798..63f81c72 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); } }