summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--coreutils/touch.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/coreutils/touch.c b/coreutils/touch.c
index 43312d22a..52605fb7c 100644
--- a/coreutils/touch.c
+++ b/coreutils/touch.c
@@ -88,8 +88,8 @@ int touch_main(int argc UNUSED_PARAM, char **argv)
int opts;
smalluint status = EXIT_SUCCESS;
#if ENABLE_FEATURE_TOUCH_SUSV3
- char *reference_file = NULL;
- char *date_str = NULL;
+ char *reference_file;
+ char *date_str;
/* timebuf[0] is atime, timebuf[1] is mtime */
struct timespec timebuf[2];
#else
@@ -137,7 +137,7 @@ int touch_main(int argc UNUSED_PARAM, char **argv)
);
timebuf[0].tv_nsec = timebuf[1].tv_nsec = UTIME_NOW;
- if (reference_file) {
+ if (opts & OPT_r) {
struct stat stbuf;
xstat(reference_file, &stbuf);
timebuf[0].tv_sec = stbuf.st_atime;
@@ -145,7 +145,7 @@ int touch_main(int argc UNUSED_PARAM, char **argv)
timebuf[0].tv_nsec = stbuf.st_atim.tv_nsec;
timebuf[1].tv_nsec = stbuf.st_mtim.tv_nsec;
}
- if (date_str) {
+ if (opts & (OPT_d|OPT_t)) {
struct tm tm_time;
time_t t;