X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Frmdir.c;h=ddb5c30b2c866036ac0dad3b341d4ccabb5831a5;hb=8c275683036775b0f42833f4e895343d0f3e85fe;hp=477227ba95a82c34dd19599726a380db8d4a0838;hpb=7c22e8ebaf9e7b68312e9bea4544746344da6ee8;p=gnulib.git diff --git a/lib/rmdir.c b/lib/rmdir.c index 477227ba9..ddb5c30b2 100644 --- a/lib/rmdir.c +++ b/lib/rmdir.c @@ -1,5 +1,6 @@ -/* rmdir.c -- BSD compatible remove directory function for System V - Copyright (C) 1988, 1990 Free Software Foundation, Inc. +/* BSD compatible remove directory function for System V + + Copyright (C) 1988, 1990, 1999, 2003, 2004 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 @@ -12,30 +13,18 @@ GNU General Public License for more details. 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ifdef HAVE_CONFIG_H -#include +#if HAVE_CONFIG_H +# include #endif #include #include - #include -#ifndef errno -extern int errno; -#endif - -#ifdef 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 "safe-stat.h" +#include "stat-macros.h" /* rmdir adapted from GNU tar. */ @@ -43,13 +32,13 @@ extern int errno; Return 0 if successful, -1 if not. */ int -rmdir (dpath) - char *dpath; +rmdir (char const *dpath) { - int cpid, status; + pid_t cpid; + int status; struct stat statbuf; - if (SAFE_STAT (dpath, &statbuf) != 0) + if (stat (dpath, &statbuf) != 0) return -1; /* errno already set */ if (!S_ISDIR (statbuf.st_mode)) @@ -75,7 +64,7 @@ rmdir (dpath) while (wait (&status) != cpid) /* Do nothing. */ ; - if (status & 0xFFFF) + if (status) { /* /bin/rmdir failed. */