diff --git a/bin/ls/print.c b/bin/ls/print.c index 596825c7d7d8..d397c1c7773f 100644 --- a/bin/ls/print.c +++ b/bin/ls/print.c @@ -293,30 +293,25 @@ static void printtime(ftime) time_t ftime; { - int i; char longstring[80]; static time_t now; + const char *format; if (now == 0) now = time(NULL); - strftime(longstring, sizeof(longstring), "%c", localtime(&ftime)); - for (i = 4; i < 11; ++i) - (void)putchar(longstring[i]); - #define SIXMONTHS ((365 / 2) * 86400) if (f_sectime) - for (i = 11; i < 24; i++) - (void)putchar(longstring[i]); + /* Mmm dd hh:mm:ss yyyy */ + format = "%b %e %T %Y "; else if (ftime + SIXMONTHS > now && ftime < now + SIXMONTHS) - for (i = 11; i < 16; ++i) - (void)putchar(longstring[i]); - else { - (void)putchar(' '); - for (i = 20; i < 24; ++i) - (void)putchar(longstring[i]); - } - (void)putchar(' '); + /* Mmm dd hh:mm */ + format = "%b %e %R "; + else + /* Mmm dd yyyy */ + format = "%b %e %Y "; + strftime(longstring, sizeof(longstring), format, localtime(&ftime)); + fputs(longstring, stdout); } static int