Fixed "rm foo" that had been broken while implementing "rm -- foo"

This commit is contained in:
Pavel Roskin 2000-06-14 17:39:41 +00:00
parent 1af7ed5573
commit e97da40079
3 changed files with 23 additions and 13 deletions

View File

@ -61,7 +61,7 @@
* Fixed segfault caused by "rm -f"
* Fixed segfault caused by "ln -s -s" and similar abuses.
* Fixed segfault caused by "cp -a -a" and similar abuses.
* Implemented "rm -- <foo>"
* Implemented "rm -- <foo>". Implementation fixed by Pavel Roskin.
* "which" rewritten to use stat(). Fixes to improve its compatability
with traditional implementations -- Pavel Roskin.
* "mount" now reports errors from nfsmount() and assumes NFS mount

View File

@ -68,14 +68,12 @@ extern int rm_main(int argc, char **argv)
int stopIt=FALSE;
struct stat statbuf;
if (argc < 2) {
usage(rm_usage);
}
argc--;
argv++;
/* Parse any options */
while (--argc >= 0 && *argv && **argv && stopIt==FALSE) {
while (**argv == '-') {
while (argc > 0 && stopIt == FALSE) {
if (**argv == '-') {
while (*++(*argv))
switch (**argv) {
case 'R':
@ -91,8 +89,15 @@ extern int rm_main(int argc, char **argv)
default:
usage(rm_usage);
}
argc--;
argv++;
}
argv++;
else
break;
}
if (argc < 1 && forceFlag == FALSE) {
usage(rm_usage);
}
while (argc-- > 0) {

17
rm.c
View File

@ -68,14 +68,12 @@ extern int rm_main(int argc, char **argv)
int stopIt=FALSE;
struct stat statbuf;
if (argc < 2) {
usage(rm_usage);
}
argc--;
argv++;
/* Parse any options */
while (--argc >= 0 && *argv && **argv && stopIt==FALSE) {
while (**argv == '-') {
while (argc > 0 && stopIt == FALSE) {
if (**argv == '-') {
while (*++(*argv))
switch (**argv) {
case 'R':
@ -91,8 +89,15 @@ extern int rm_main(int argc, char **argv)
default:
usage(rm_usage);
}
argc--;
argv++;
}
argv++;
else
break;
}
if (argc < 1 && forceFlag == FALSE) {
usage(rm_usage);
}
while (argc-- > 0) {