diff options
author | Elliott Hughes <enh@google.com> | 2016-12-30 11:19:08 -0800 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2016-12-30 15:53:01 -0600 |
commit | f87c5710261db735a0dd78d4770c3969da3bfc3f (patch) | |
tree | 57b90841182d12fdec08c48860893d4b3b7cf354 | |
parent | 8ddfb71b17369bcd3bd247a76f0a2c4cf301016b (diff) | |
download | toybox-f87c5710261db735a0dd78d4770c3969da3bfc3f.tar.gz |
Remove unnecessary casts in stat.c, fix a claimed buffer length.
POSIX does have a name for the struct timespec in struct stat.
-rw-r--r-- | toys/other/stat.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/toys/other/stat.c b/toys/other/stat.c index b998a0ed..9d64579e 100644 --- a/toys/other/stat.c +++ b/toys/other/stat.c @@ -65,14 +65,10 @@ static void strout(char *val) printf(toybuf, val); } -// Note: the atime, mtime, and ctime fields in struct stat are the start -// of embedded struct timespec, but posix won't let them use that -// struct definition for legacy/namespace reasons. - static void date_stat_format(struct timespec *ts) { char *s = toybuf+128; - strftime(s, sizeof(toybuf), "%Y-%m-%d %H:%M:%S", + strftime(s, sizeof(toybuf)-128, "%Y-%m-%d %H:%M:%S", localtime(&(ts->tv_sec))); sprintf(s+strlen(s), ".%09ld", ts->tv_nsec); strout(s); @@ -126,11 +122,11 @@ static void print_stat(char type) else if (type == 'T') out('x', dev_minor(stat->st_rdev)); else if (type == 'u') out('u', stat->st_uid); else if (type == 'U') strout(getusername(stat->st_uid)); - else if (type == 'x') date_stat_format((void *)&stat->st_atime); + else if (type == 'x') date_stat_format(&stat->st_atim); else if (type == 'X') out('u', stat->st_atime); - else if (type == 'y') date_stat_format((void *)&stat->st_mtime); + else if (type == 'y') date_stat_format(&stat->st_mtim); else if (type == 'Y') out('u', stat->st_mtime); - else if (type == 'z') date_stat_format((void *)&stat->st_ctime); + else if (type == 'z') date_stat_format(&stat->st_ctim); else if (type == 'Z') out('u', stat->st_ctime); else xprintf("?"); } |