vi: fixes to string search in colon commands, closes 10321
[oweals/busybox.git] / coreutils / mv.c
index df2ef0a52a55989647ec6f253e9b38ec8b65e19f..b9f8f698255aef3152025eed64dbd099cf68b495 100644 (file)
  * Size reduction and improved error checking.
  */
 //config:config MV
-//config:      bool "mv"
+//config:      bool "mv (10 kb)"
 //config:      default y
 //config:      help
-//config:        mv is used to move or rename files or directories.
-//config:
-//config:config FEATURE_MV_LONG_OPTIONS
-//config:      bool "Enable long options"
-//config:      default y
-//config:      depends on MV && LONG_OPTS
+//config:      mv is used to move or rename files or directories.
 
-//applet:IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP))
+//applet:IF_MV(APPLET_NOEXEC(mv, mv, BB_DIR_BIN, BB_SUID_DROP, mv))
+/* NOEXEC despite cases when it can be a "runner" (mv LARGE_DIR OTHER_FS) */
 
 //kbuild:lib-$(CONFIG_MV) += mv.o
 
 #include "libbb.h"
 #include "libcoreutils/coreutils.h"
 
-#if ENABLE_FEATURE_MV_LONG_OPTIONS
-static const char mv_longopts[] ALIGN1 =
-       "interactive\0" No_argument "i"
-       "force\0"       No_argument "f"
-       "no-clobber\0"  No_argument "n"
-       IF_FEATURE_VERBOSE(
-       "verbose\0"     No_argument "v"
-       )
-       ;
-#endif
-
-#define OPT_FORCE       (1 << 0)
-#define OPT_INTERACTIVE (1 << 1)
-#define OPT_NOCLOBBER   (1 << 2)
-#define OPT_VERBOSE     ((1 << 3) * ENABLE_FEATURE_VERBOSE)
-
-
 int mv_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int mv_main(int argc, char **argv)
 {
@@ -69,15 +48,25 @@ int mv_main(int argc, char **argv)
        int status = 0;
        int copy_flag = 0;
 
-#if ENABLE_FEATURE_MV_LONG_OPTIONS
-       applet_long_options = mv_longopts;
-#endif
+#define OPT_FORCE       (1 << 0)
+#define OPT_INTERACTIVE (1 << 1)
+#define OPT_NOCLOBBER   (1 << 2)
+#define OPT_VERBOSE     ((1 << 3) * ENABLE_FEATURE_VERBOSE)
        /* Need at least two arguments.
         * If more than one of -f, -i, -n is specified , only the final one
         * takes effect (it unsets previous options).
         */
-       opt_complementary = "-2:f-in:i-fn:n-fi";
-       flags = getopt32(argv, "finv");
+       flags = getopt32long(argv, "^"
+                       "finv"
+                       "\0"
+                       "-2:f-in:i-fn:n-fi",
+                       "interactive\0" No_argument "i"
+                       "force\0"       No_argument "f"
+                       "no-clobber\0"  No_argument "n"
+                       IF_FEATURE_VERBOSE(
+                       "verbose\0"     No_argument "v"
+                       )
+       );
        argc -= optind;
        argv += optind;
        last = argv[argc - 1];
@@ -112,7 +101,7 @@ int mv_main(int argc, char **argv)
                                if (fprintf(stderr, "mv: overwrite '%s'? ", dest) < 0) {
                                        goto RET_1;  /* Ouch! fprintf failed! */
                                }
-                               if (!bb_ask_confirmation()) {
+                               if (!bb_ask_y_confirmation()) {
                                        goto RET_0;
                                }
                        }