From 6ed9c9dc9c3969bd0a75e2bc0a816b37ed167769 Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Wed, 1 May 1996 00:56:30 +0000 Subject: (ps_emit_past_time): Implement. (ps_emit_seconds): Use new args to fmt_seconds. (ps_emit_minutes): Use new args to fmt_minutes. --- libps/spec.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'libps/spec.c') diff --git a/libps/spec.c b/libps/spec.c index d4578700..49119f29 100644 --- a/libps/spec.c +++ b/libps/spec.c @@ -458,7 +458,7 @@ ps_emit_seconds (struct proc_stat *ps, const struct ps_getter *getter, G (getter, void)(ps, &tv); - fmt_seconds (&tv, ABS (width), buf, sizeof (buf)); + fmt_seconds (&tv, width != 0, width ? -1 : 0, ABS (width), buf, sizeof (buf)); return ps_stream_write_field (stream, buf, width); } @@ -472,7 +472,7 @@ ps_emit_minutes (struct proc_stat *ps, const struct ps_getter *getter, G (getter, int)(ps, &tv); - fmt_minutes (&tv, ABS (width), buf, sizeof (buf)); + fmt_minutes (&tv, width != 0, ABS (width), buf, sizeof (buf)); return ps_stream_write_field (stream, buf, width); } @@ -481,7 +481,18 @@ error_t ps_emit_past_time (struct proc_stat *ps, const struct ps_getter *getter, int width, struct ps_stream *stream) { - return 0; + static struct timeval now; + struct timeval tv; + char buf[20]; + + G (getter, int)(ps, &tv); + + if (now.tv_sec == 0 && gettimeofday (&now, 0) < 0) + return errno; + + fmt_past_time (&tv, &now, ABS (width), buf, sizeof buf); + + return ps_stream_write_field (stream, buf, width); } error_t -- cgit v1.2.3