Remove `== TRUE' tests and convert `!= TRUE' and `== FALSE' tests to use !.
[oweals/busybox.git] / coreutils / touch.c
index f52bb0284202ddea81bfa48a923c82f11b41493c..f1c6dc4849fd8780a45e3cd70111bea2a6b41444 100644 (file)
@@ -2,9 +2,8 @@
 /*
  * Mini touch implementation for busybox
  *
- *
- * Copyright (C) 1999,2000 by Lineo, inc.
- * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
+ * Copyright (C) 1999,2000 by Lineo, inc. and Erik Andersen
+ * Copyright (C) 1999,2000,2001 by Erik Andersen <andersee@debian.org>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  *
  */
 
-#include "internal.h"
 #include <stdio.h>
 #include <sys/types.h>
-#include <sys/stat.h>
 #include <fcntl.h>
 #include <utime.h>
 #include <errno.h>
-
-
-static const char touch_usage[] = "touch [-c] file [file ...]\n"
-#ifndef BB_FEATURE_TRIVIAL_HELP
-       "\nUpdate the last-modified date on the given file[s].\n\n"
-       "Options:\n"
-       "\t-c\tDo not create any files\n"
-#endif
-       ;
-
+#include <unistd.h>
+#include <stdlib.h>
+#include "busybox.h"
 
 extern int touch_main(int argc, char **argv)
 {
@@ -53,33 +43,34 @@ extern int touch_main(int argc, char **argv)
                                create = FALSE;
                                break;
                        default:
-                               usage(touch_usage);
-                               exit(FALSE);
+                               show_usage();
                        }
                }
        }
 
        if (argc < 1) {
-               usage(touch_usage);
+               show_usage();
        }
 
        while (argc > 0) {
-               fd = open(*argv, (create == FALSE) ? O_RDWR : O_RDWR | O_CREAT,
+               fd = open(*argv, create ? O_RDWR | O_CREAT : O_RDWR,
                                S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
                if (fd < 0) {
-                       if (create == FALSE && errno == ENOENT)
-                               exit(TRUE);
-                       else {
-                               fatalError("touch: %s", strerror(errno));
+                       if (! create && errno == ENOENT) {
+                               argc--;
+                               argv++;
+                               continue;
+                       } else {
+                               perror_msg_and_die("%s", *argv);
                        }
                }
                close(fd);
                if (utime(*argv, NULL)) {
-                       fatalError("touch: %s", strerror(errno));
+                       perror_msg_and_die("%s", *argv);
                }
                argc--;
                argv++;
        }
 
-       return(TRUE);
+       return EXIT_SUCCESS;
 }