X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Frmdir.c;h=1cc74395a4436d69bd5feb4841910503ea5dd633;hb=2c7110f2230f4bf73f74fe3721958fe16a58e8ba;hp=58b2edb7df584a3597db05cb51162cc0625956d3;hpb=3694c647bbc717913a28b5ad214a8540e7e725cf;p=gnulib.git diff --git a/lib/rmdir.c b/lib/rmdir.c index 58b2edb7d..1cc74395a 100644 --- a/lib/rmdir.c +++ b/lib/rmdir.c @@ -1,5 +1,7 @@ /* BSD compatible remove directory function for System V - Copyright (C) 1988, 1990 Free Software Foundation, Inc. + + Copyright (C) 1988, 1990, 1999, 2003, 2004, 2005, 2006 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 @@ -13,41 +15,29 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#if HAVE_CONFIG_H -# include -#endif +#include #include #include - #include -#ifndef errno -extern int errno; -#endif - -#if STAT_MACROS_BROKEN -# undef S_ISDIR -#endif -#if !defined(S_ISDIR) && defined(S_IFDIR) -# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -#endif +#include "stat-macros.h" /* rmdir adapted from GNU tar. */ -/* Remove directory DPATH. +/* Remove directory DIR. Return 0 if successful, -1 if not. */ int -rmdir (dpath) - char *dpath; +rmdir (char const *dir) { - int cpid, status; + pid_t cpid; + int status; struct stat statbuf; - if (stat (dpath, &statbuf) != 0) + if (stat (dir, &statbuf) != 0) return -1; /* errno already set */ if (!S_ISDIR (statbuf.st_mode)) @@ -63,7 +53,7 @@ rmdir (dpath) return -1; /* errno already set */ case 0: /* child process */ - execl ("/bin/rmdir", "rmdir", dpath, (char *) 0); + execl ("/bin/rmdir", "rmdir", dir, (char *) 0); _exit (1); default: /* parent process */ @@ -73,7 +63,7 @@ rmdir (dpath) while (wait (&status) != cpid) /* Do nothing. */ ; - if (status & 0xFFFF) + if (status) { /* /bin/rmdir failed. */