From 3c978d34b0e9e435c097f3cd6fbabf031087a3b6 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sat, 5 Sep 2015 19:51:28 +0200 Subject: [PATCH] Improve lastplayed time format for ls and stat output. It is possible that the lastplayed time happens to be in the future. Fix a whitespace issue while at it. --- aft.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/aft.c b/aft.c index 8a8e5282..8df2bc60 100644 --- a/aft.c +++ b/aft.c @@ -677,6 +677,11 @@ static int get_local_time(uint64_t *seconds, char *buf, size_t size, time_t current_time, enum ls_listing_mode lm) { struct tm t; + /* + * Omit year but show time if the given value is closer to the current + * time than this many seconds. + */ + const time_t m = 6 * 30 * 24 * 3600; /* six months */ if (!localtime_r((time_t *)seconds, &t)) return -E_LOCALTIME; @@ -685,12 +690,12 @@ static int get_local_time(uint64_t *seconds, char *buf, size_t size, return -E_STRFTIME; return 1; } - if (*seconds + 6 * 30 * 24 * 3600 > current_time) { + if (*seconds > current_time - m && *seconds < current_time + m) { if (!strftime(buf, size, "%b %e %k:%M", &t)) return -E_STRFTIME; return 1; } - if (!strftime(buf, size, "%b %e %Y", &t)) + if (!strftime(buf, size, "%b %e %Y", &t)) return -E_STRFTIME; return 1; } -- 2.39.2