Improve lastplayed time format for ls and stat output.
authorAndre Noll <maan@tuebingen.mpg.de>
Sat, 5 Sep 2015 17:51:28 +0000 (19:51 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Sun, 13 Dec 2015 10:30:27 +0000 (11:30 +0100)
It is possible that the lastplayed time happens to be in the future.

Fix a whitespace issue while at it.

aft.c

diff --git a/aft.c b/aft.c
index 8a8e528..8df2bc6 100644 (file)
--- 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;
 }