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) { if (dz_i == is_cp) {
recursiveFlag = preserveFlag = forceFlag = FALSE; recursiveFlag = preserveFlag = forceFlag = FALSE;
followLinks = TRUE; followLinks = TRUE;
while (--argc >= 0 && *argv && **argv) { while (*argv && **argv == '-') {
while (**argv == '-') { while (*++(*argv)) {
while (*++(*argv)) { switch (**argv) {
switch (**argv) { case 'a':
case 'a': followLinks = FALSE;
followLinks = FALSE; preserveFlag = TRUE;
preserveFlag = TRUE; recursiveFlag = TRUE;
recursiveFlag = TRUE; break;
break; case 'd':
case 'd': followLinks = FALSE;
followLinks = FALSE; break;
break; case 'p':
case 'p': preserveFlag = TRUE;
preserveFlag = TRUE; break;
break; case 'R':
case 'R': recursiveFlag = TRUE;
recursiveFlag = TRUE; break;
break; case 'f':
case 'f': forceFlag = TRUE;
forceFlag = TRUE; break;
break; default:
default: usage(cp_mv_usage[is_cp]);
usage(cp_mv_usage[is_cp]);
}
} }
} }
argc--;
argv++; argv++;
} }
if (argc < 1) { if (argc < 2) {
fatalError("cp: missing file argument\n"); usage(cp_mv_usage[dz_i]);
} }
} else { /* (dz_i == is_mv) */ } else { /* (dz_i == is_mv) */
recursiveFlag = preserveFlag = TRUE; recursiveFlag = preserveFlag = TRUE;