#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;
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();
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) {