summaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rwxr-xr-xsrc/cmd/rm/makefile2
-rwxr-xr-xsrc/cmd/rm/rmbin34912 -> 24592 bytes
-rwxr-xr-xsrc/cmd/rm/rm.c5
3 files changed, 4 insertions, 3 deletions
diff --git a/src/cmd/rm/makefile b/src/cmd/rm/makefile
index 8b9afda..444ddf0 100755
--- a/src/cmd/rm/makefile
+++ b/src/cmd/rm/makefile
@@ -1,4 +1,4 @@
-CFLAGS=-Wall -Werror
+CFLAGS=-Wall -Werror -g
build: rm
@cp rm $(PROROOT)/build/bin/rm
diff --git a/src/cmd/rm/rm b/src/cmd/rm/rm
index e2c59a6..4dbbec7 100755
--- a/src/cmd/rm/rm
+++ b/src/cmd/rm/rm
Binary files differ
diff --git a/src/cmd/rm/rm.c b/src/cmd/rm/rm.c
index ceff76b..86a30b9 100755
--- a/src/cmd/rm/rm.c
+++ b/src/cmd/rm/rm.c
@@ -77,7 +77,7 @@ int rm(char *path) {
return -1;
}
} else if (S_ISDIR(sbuf.st_mode)) {
- warnc(EISDIR, "%s", path);
+ fprintf(stderr, "rm: %s: %s\n", path, strerror(EISDIR));
return -1;
} else {
if (unlink(path) != 0) {
@@ -101,9 +101,10 @@ int removedir(const char * const path) {
size_t len = strlen(path) + strlen(name) + 3;
char *newpath = (char *)malloc(len);
if (newpath == NULL) {
+ perror("rm");
exit(EXIT_FAILURE);
}
- strncat(newpath, path, len);
+ strncpy(newpath, path, len);
strncat(newpath, "/", (len -= strlen(path)));
strncat(newpath, name, --len);
status = rm(newpath);