From 8cd9f343e74ca65f36c42a44e845716ba5411663 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Fri, 18 Jun 2010 15:36:48 +0200
Subject: ash: times builtin: use unsigned type; take free-of-charge modulo

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 shell/ash.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

(limited to 'shell')

diff --git a/shell/ash.c b/shell/ash.c
index 171740768..f581b5bdf 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -12508,7 +12508,7 @@ static const unsigned char timescmd_str[] ALIGN1 = {
 static int FAST_FUNC
 timescmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
 {
-	long clk_tck, s, t;
+	unsigned long clk_tck, s, t;
 	const unsigned char *p;
 	struct tms buf;
 
@@ -12519,9 +12519,10 @@ timescmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
 	do {
 		t = *(clock_t *)(((char *) &buf) + p[1]);
 		s = t / clk_tck;
-		out1fmt("%ldm%ld.%.3lds%c",
-			s/60, s%60,
-			((t - s * clk_tck) * 1000) / clk_tck,
+		t = t % clk_tck;
+		out1fmt("%lum%lu.%03lus%c",
+			s / 60, s % 60,
+			(t * 1000) / clk_tck,
 			p[0]);
 		p += 2;
 	} while (*p);
-- 
cgit v1.2.3-55-g6feb