summaryrefslogtreecommitdiff
path: root/libshouldbeinlibc/timefmt.h
diff options
context:
space:
mode:
Diffstat (limited to 'libshouldbeinlibc/timefmt.h')
-rw-r--r--libshouldbeinlibc/timefmt.h40
1 files changed, 27 insertions, 13 deletions
diff --git a/libshouldbeinlibc/timefmt.h b/libshouldbeinlibc/timefmt.h
index f4b219ef..134cf56a 100644
--- a/libshouldbeinlibc/timefmt.h
+++ b/libshouldbeinlibc/timefmt.h
@@ -1,6 +1,6 @@
/* Routines for formatting time
- Copyright (C) 1995 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Written by Miles Bader <miles@gnu.ai.mit.edu>
@@ -26,19 +26,33 @@ struct timeval;
/* Format into BUF & BUF_LEN the time interval represented by TV, trying to
make the result less than WIDTH characters wide. The number of characters
used is returned. */
-int fmt_named_interval (struct timeval *tv, int width,
- char *buf, unsigned buf_len);
+size_t fmt_named_interval (struct timeval *tv, size_t width,
+ char *buf, size_t buf_len);
/* Format into BUF & BUF_LEN the time interval represented by TV, using
- HH:MM:SS notation where possible, and trying to make the result less than
- WIDTH characters wide. The number of characters used is returned. */
-int fmt_seconds (struct timeval *tv, unsigned width,
- char *buf, unsigned buf_len);
-
-/* Format into BUF & BUF_LEN the time interval represented by TV, using
- HH:MM notation where possible, and trying to make the result less than
- WIDTH characters wide. The number of characters used is returned. */
-int fmt_minutes (struct timeval *tv, unsigned width,
- char *buf, unsigned buf_len);
+ HH:MM:SS notation where possible, with FRAC_PLACES digits after the
+ decimal point, and trying to make the result less than WIDTH characters
+ wide. If LEADING_ZEROS is true, then any fields that are zero-valued, but
+ would fit in the given width are printed. If FRAC_PLACES is negative,
+ then any space remaining after printing the time, up to WIDTH, is used for
+ the fraction. The number of characters used is returned. */
+size_t fmt_seconds (struct timeval *tv, int leading_zeros, int frac_places,
+ size_t width, char *buf, size_t buf_len);
+
+/* Format into BUF & BUF_LEN the time interval represented by TV, using HH:MM
+ notation where possible, and trying to make the result less than WIDTH
+ characters wide. If LEADING_ZEROS is true, then any fields that are
+ zero-valued, but would fit in the given width are printed. The number of
+ characters used is returned. */
+size_t fmt_minutes (struct timeval *tv, int leading_zeros,
+ size_t width, char *buf, size_t buf_len);
+
+/* Format into BUF & BUF_LEN the absolute time represented by TV. An attempt
+ is made to fit the result in less than WIDTH characters, by omitting
+ fields implied by the current time, NOW (if NOW is 0, then no assumptions
+ are made, so the resulting times will be somewhat long). The number of
+ characters used is returned. */
+size_t fmt_past_time (struct timeval *tv, struct timeval *now,
+ size_t width, char *buf, size_t buf_len);
#endif /* __TIMEFMT_H__ */