ls(1): Take II on fixing future time listings
authorJohn Marino <draco@marino.st>
Fri, 20 Nov 2015 16:01:57 +0000 (17:01 +0100)
committerJohn Marino <draco@marino.st>
Fri, 20 Nov 2015 16:03:47 +0000 (17:03 +0100)
Really make sure all future timestamps are display with a year.
The logic of the first attempt was incorrect, and it did the opposite.

bin/ls/print.c

index 98441ff..17d1914 100644 (file)
@@ -378,10 +378,10 @@ printtime(time_t ftime)
                 *        If file was modified within the past 6 months,
                 *        return equivalent of: date "+%b %e %H:%M"
                 */
-               if (ftime + SIXMONTHS > now)
-                       format = "%b %e %R ";
-               else
+               if ((ftime > now) || (ftime < now - SIXMONTHS))
                        format = "%b %e  %Y ";
+               else
+                       format = "%b %e %R ";
        } else {
                /* Named locales use ISO 8601 (basic with T): YYYYDDMMThh */
                format = "%Y%m%dT%H ";