- spelling
[oweals/busybox.git] / coreutils / mv.c
index 4f08dedc08329fd53fcfb73ec2efd021dc359f45..02252c7ef114942c0d311f01081edacd1edf35c1 100644 (file)
 #include <dirent.h>
 #include <errno.h>
 #include <stdlib.h>
-#include <getopt.h>
+#include <getopt.h> /* struct option */
 #include "busybox.h"
 #include "libcoreutils/coreutils.h"
 
+#if ENABLE_FEATURE_MV_LONG_OPTIONS
 static const struct option mv_long_options[] = {
        { "interactive", 0, NULL, 'i' },
        { "force", 0, NULL, 'f' },
        { 0, 0, 0, 0 }
 };
+#endif
 
 #define OPT_FILEUTILS_FORCE       1
 #define OPT_FILEUTILS_INTERACTIVE 2
 
 static const char fmt[] = "cannot overwrite %sdirectory with %sdirectory";
 
-extern int mv_main(int argc, char **argv)
+int mv_main(int argc, char **argv)
 {
        struct stat dest_stat;
        const char *last;
@@ -55,8 +57,10 @@ extern int mv_main(int argc, char **argv)
        int dest_exists;
        int status = 0;
 
+#if ENABLE_FEATURE_MV_LONG_OPTIONS
        bb_applet_long_options = mv_long_options;
-       bb_opt_complementaly = "f-i:i-f";
+#endif
+       bb_opt_complementally = "f-i:i-f";
        flags = bb_getopt_ulflags(argc, argv, "fi");
        if (optind + 2 > argc) {
                bb_show_usage();
@@ -99,10 +103,10 @@ DO_MOVE:
                        struct stat source_stat;
                        int source_exists;
 
-                       if (errno != EXDEV) {
+                       if (errno != EXDEV ||
+                               (source_exists = cp_mv_stat(*argv, &source_stat)) < 1) {
                                bb_perror_msg("unable to rename `%s'", *argv);
-                       }
-                       else if ((source_exists = cp_mv_stat(*argv, &source_stat)) >= 0) {
+                       } else {
                                if (dest_exists) {
                                        if (dest_exists == 3) {
                                                if (source_exists != 3) {