From: tholo Date: Sat, 1 Feb 1997 07:18:28 +0000 (+0000) Subject: Better handling of long uptimes; from NetBSD X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=a48771820fabd4e03de17306d6cef26e27d16a65;p=openbsd Better handling of long uptimes; from NetBSD --- 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 @@ -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';