summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/libc/stdio/remove.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/libc/stdio/remove.c b/lib/libc/stdio/remove.c
index 189663d80e2..915149bc032 100644
--- a/lib/libc/stdio/remove.c
+++ b/lib/libc/stdio/remove.c
@@ -35,14 +35,21 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$OpenBSD: remove.c,v 1.2 1996/08/19 08:33:01 tholo Exp $";
+static char rcsid[] = "$OpenBSD: remove.c,v 1.3 1996/10/28 04:55:25 tholo Exp $";
#endif /* LIBC_SCCS and not lint */
-#include <unistd.h>
#include <stdio.h>
+#include <unistd.h>
+#include <sys/stat.h>
remove(file)
const char *file;
{
+ struct stat st;
+
+ if (stat(file, &st) < 0)
+ return (-1);
+ if (S_ISDIR(st.st_mode))
+ return (rmdir(file));
return (unlink(file));
}