make remove(3) remove directories as well
This commit is contained in:
parent
f80aaae86a
commit
1d0e43c8f1
1 changed files with 15 additions and 1 deletions
|
@ -4,10 +4,24 @@
|
||||||
/* $Header$ */
|
/* $Header$ */
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
int _rmdir(const char *path);
|
||||||
int _unlink(const char *path);
|
int _unlink(const char *path);
|
||||||
|
|
||||||
int
|
int
|
||||||
remove(const char *filename) {
|
remove(const char *filename) {
|
||||||
return _unlink(filename);
|
int saved_errno, retval;
|
||||||
|
|
||||||
|
saved_errno = errno;
|
||||||
|
|
||||||
|
retval = _rmdir(filename);
|
||||||
|
|
||||||
|
if (retval == -1 && errno == ENOTDIR) {
|
||||||
|
errno = saved_errno;
|
||||||
|
|
||||||
|
retval = _unlink(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue