Fixed parsing of arguments for cp

This commit is contained in:
Pavel Roskin 2000-06-08 18:06:37 +00:00
parent b3cf9baeb9
commit b3d235f63b

51
cp_mv.c
View File

@ -203,36 +203,35 @@ extern int cp_mv_main(int argc, char **argv)
if (dz_i == is_cp) {
recursiveFlag = preserveFlag = forceFlag = FALSE;
followLinks = TRUE;
while (--argc >= 0 && *argv && **argv) {
while (**argv == '-') {
while (*++(*argv)) {
switch (**argv) {
case 'a':
followLinks = FALSE;
preserveFlag = TRUE;
recursiveFlag = TRUE;
break;
case 'd':
followLinks = FALSE;
break;
case 'p':
preserveFlag = TRUE;
break;
case 'R':
recursiveFlag = TRUE;
break;
case 'f':
forceFlag = TRUE;
break;
default:
usage(cp_mv_usage[is_cp]);
}
while (*argv && **argv == '-') {
while (*++(*argv)) {
switch (**argv) {
case 'a':
followLinks = FALSE;
preserveFlag = TRUE;
recursiveFlag = TRUE;
break;
case 'd':
followLinks = FALSE;
break;
case 'p':
preserveFlag = TRUE;
break;
case 'R':
recursiveFlag = TRUE;
break;
case 'f':
forceFlag = TRUE;
break;
default:
usage(cp_mv_usage[is_cp]);
}
}
argc--;
argv++;
}
if (argc < 1) {
fatalError("cp: missing file argument\n");
if (argc < 2) {
usage(cp_mv_usage[dz_i]);
}
} else { /* (dz_i == is_mv) */
recursiveFlag = preserveFlag = TRUE;