SCCS-vsn: bin/rm/rm.c 4.23
-static char *sccsid = "@(#)rm.c 4.22 (Berkeley) %G%";
+static char *sccsid = "@(#)rm.c 4.23 (Berkeley) %G%";
/*
* rm - for ReMoving files, directories & trees.
/*
* rm - for ReMoving files, directories & trees.
int errcode; /* true if errors occured */
int errcode; /* true if errors occured */
-char *strcpy(), *malloc();
main(argc, argv)
int argc;
main(argc, argv)
int argc;
struct direct *dp; /* for reading a directory */
DIR *dirp; /* for reading a directory */
char prevname[MAXNAMLEN + 1]; /* previous name for -r */
struct direct *dp; /* for reading a directory */
DIR *dirp; /* for reading a directory */
char prevname[MAXNAMLEN + 1]; /* previous name for -r */
- char *cp;
-
- if (isdot(arg)) {
+ char *cp, *rindex();
+
+ cp = rindex(arg, '/');
+ if (cp == NULL)
+ cp = arg;
+ else
+ ++cp;
+ if (isdot(cp)) {
fprintf(stderr, "rm: cannot remove `.' or `..'\n");
return (0);
}
fprintf(stderr, "rm: cannot remove `.' or `..'\n");
return (0);
}
char *name;
{
register int n;
char *name;
{
register int n;
n = strlen(name);
if (path == NULL) {
n = strlen(name);
if (path == NULL) {