ls: fix year 9999 bug :)
No binary (build failed)
—
(log yok)
| @@ -581,12 +581,15 @@ static NOINLINE unsigned display_single(const struct dnode *dn) | |
| } else { /* LIST_DATE_TIME */ | |
| /* G.current_time_t ~== time(NULL) */ | |
| time_t age = G.current_time_t - ttime; | |
| - | printf("%.6s ", filetime + 4); /* "Jun 30" */ |
| if (age < 3600L * 24 * 365 / 2 && age > -15 * 60) { | |
| - | /* hh:mm if less than 6 months old */ |
| - | printf("%.5s ", filetime + 11); |
| - | } else { /* year. buggy if year > 9999 ;) */ |
| - | printf(" %.4s ", filetime + 20); |
| + | /* less than 6 months old */ |
| + | /* "mmm dd hh:mm " */ |
| + | printf("%.12s ", filetime + 4); |
| + | } else { |
| + | /* "mmm dd yyyy " */ |
| + | /* "mmm dd yyyyy " after year 9999 :) */ |
| + | strchr(filetime + 20, '\n')[0] = ' '; |
| + | printf("%.7s%6s", filetime + 4, filetime + 20); |
| } | |
| column += 13; | |
| } | |