/* Work around rmdir bugs.
- Copyright (C) 1988, 1990, 1999, 2003, 2004, 2005, 2006, 2009 Free
- Software Foundation, Inc.
+ Copyright (C) 1988, 1990, 1999, 2003-2006, 2009-2010 Free Software
+ Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
struct stat statbuf;
if (stat (dir, &statbuf) != 0)
- return -1; /* errno already set */
+ return -1; /* errno already set */
if (!S_ISDIR (statbuf.st_mode))
{
cpid = fork ();
switch (cpid)
{
- case -1: /* cannot fork */
- return -1; /* errno already set */
+ case -1: /* cannot fork */
+ return -1; /* errno already set */
- case 0: /* child process */
+ case 0: /* child process */
execl ("/bin/rmdir", "rmdir", dir, (char *) 0);
_exit (1);
- default: /* parent process */
+ default: /* parent process */
/* Wait for kid to finish. */
while (wait (&status) != cpid)
- /* Do nothing. */ ;
+ /* Do nothing. */ ;
if (status)
- {
+ {
- /* /bin/rmdir failed. */
+ /* /bin/rmdir failed. */
- errno = EIO;
- return -1;
- }
+ errno = EIO;
+ return -1;
+ }
return 0;
}
#endif /* !HAVE_RMDIR */