diff options
Diffstat (limited to 'src/utils.c')
-rw-r--r-- | src/utils.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/utils.c b/src/utils.c index 7b02f12..d380926 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1593,7 +1593,10 @@ static enum format_specifier parse_fs(const char **s, char *extformat) } } -/* Print a formatted date to stdout. */ +/* + * Print date to stdout, formatted to be displayed for day. + * The "day" argument may be any time belonging to that day. + */ static void print_date(long date, long day, const char *extformat) { char buf[BUFSIZ]; @@ -1601,14 +1604,14 @@ static void print_date(long date, long day, const char *extformat) if (!strcmp(extformat, "epoch")) { printf("%ld", date); } else { - time_t day_end = date_sec_change(day, 0, 1); - time_t t = date; + time_t day_start = update_time_in_date(day, 0, 0); + time_t day_end = date_sec_change(day_start, 0, 1); struct tm lt; - localtime_r((time_t *) & t, <); + localtime_r((time_t *) &date, <); if (extformat[0] == '\0' || !strcmp(extformat, "default")) { - if (date >= day && date <= day_end) + if (date >= day_start && date <= day_end) strftime(buf, BUFSIZ, "%H:%M", <); else strftime(buf, BUFSIZ, "..:..", <); |