static int recursiveFlag;
static int followLinks;
static int preserveFlag;
+static int forceFlag;
static const char *baseSrcName;
static int srcDirFlag;
void name_too_long__exit (void)
{
fprintf(stderr, name_too_long, dz);
- exit FALSE;
+ exit(FALSE);
}
static void
add_to_ino_dev_hashtable(statbuf, destName);
}
}
- return copyFile(fileName, destName, preserveFlag, followLinks);
+ return copyFile(fileName, destName, preserveFlag, followLinks, forceFlag);
}
static int
argv++;
if (dz_i == is_cp) {
- recursiveFlag = preserveFlag = FALSE;
+ recursiveFlag = preserveFlag = forceFlag = FALSE;
followLinks = TRUE;
- while (**argv == '-') {
+ while (*argv && **argv == '-') {
while (*++(*argv)) {
switch (**argv) {
case 'a':
recursiveFlag = TRUE;
break;
case 'f':
- /* for compatibility; busybox cp/mv always does force */
+ forceFlag = TRUE;
break;
default:
usage(cp_mv_usage[is_cp]);
argc--;
argv++;
}
+ if (argc < 2) {
+ usage(cp_mv_usage[dz_i]);
+ }
} else { /* (dz_i == is_mv) */
recursiveFlag = preserveFlag = TRUE;
followLinks = FALSE;
}
+
if (strlen(argv[argc - 1]) > BUFSIZ) {
fprintf(stderr, name_too_long, "cp");
if (flags_memo)
*(baseDestName + baseDestLen) = '\0';
}
-// exit_true:
- exit TRUE;
+ return( TRUE);
exit_false:
- exit FALSE;
+ return( FALSE);
}
/*