diff options
author | Thorsten Lockert <tholo@cvs.openbsd.org> | 1997-02-01 07:18:29 +0000 |
---|---|---|
committer | Thorsten Lockert <tholo@cvs.openbsd.org> | 1997-02-01 07:18:29 +0000 |
commit | 04e80f5117ad97f18f7735f449da1eca9705b195 (patch) | |
tree | 19ba16ba102f5a7e9096339926e27dae57e94a9c | |
parent | ea8ffe2bb5c8cad389bbc90b3a3165cb297d5175 (diff) |
Better handling of long uptimes; from NetBSD
-rw-r--r-- | usr.bin/rup/rup.c | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/usr.bin/rup/rup.c b/usr.bin/rup/rup.c index 9c21189f01d..9869a0b528c 100644 --- a/usr.bin/rup/rup.c +++ b/usr.bin/rup/rup.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rup.c,v 1.5 1996/12/10 19:00:03 deraadt Exp $ */ +/* $OpenBSD: rup.c,v 1.6 1997/02/01 07:18:28 tholo Exp $ */ /*- * Copyright (c) 1993, John Brezak @@ -34,7 +34,7 @@ */ #ifndef lint -static char rcsid[] = "$OpenBSD: rup.c,v 1.5 1996/12/10 19:00:03 deraadt Exp $"; +static char rcsid[] = "$OpenBSD: rup.c,v 1.6 1997/02/01 07:18:28 tholo Exp $"; #endif /* not lint */ #include <stdio.h> @@ -186,7 +186,8 @@ print_rup_data(host, host_stat) { struct tm *tmp_time; struct tm host_time; - struct tm host_uptime; + unsigned ups=0,upm=0,uph=0,upd=0; + char days_buf[16]; char hours_buf[16]; @@ -197,21 +198,25 @@ print_rup_data(host, host_stat) host_stat->curtime.tv_sec -= host_stat->boottime.tv_sec; - tmp_time = gmtime((time_t *)&host_stat->curtime.tv_sec); - host_uptime = *tmp_time; + ups=host_stat->curtime.tv_sec; + upd=ups/(3600*24); + ups-=upd*3600*24; + uph=ups/3600; + ups-=uph*3600; + upm=ups/60; - if (host_uptime.tm_yday != 0) - sprintf(days_buf, "%3d day%s, ", host_uptime.tm_yday, - (host_uptime.tm_yday > 1) ? "s" : ""); + if (upd != 0) + sprintf(days_buf, "%3u day%s, ", upd, + (upd > 1) ? "s" : ""); else days_buf[0] = '\0'; - if (host_uptime.tm_hour != 0) - sprintf(hours_buf, "%2d:%02d, ", - host_uptime.tm_hour, host_uptime.tm_min); + if (uph != 0) + sprintf(hours_buf, "%2u:%02u, ", + uph, upm); else - if (host_uptime.tm_min != 0) - sprintf(hours_buf, "%2d mins, ", host_uptime.tm_min); + if (upm != 0) + sprintf(hours_buf, "%2u mins, ", upm); else hours_buf[0] = '\0'; |