Mercurial > hg > Applications > mh
diff sbr/remdir.c @ 0:bce86c4163a3
Initial revision
author | kono |
---|---|
date | Mon, 18 Apr 2005 23:46:02 +0900 |
parents | |
children | 441a2190cfae |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbr/remdir.c Mon Apr 18 23:46:02 2005 +0900 @@ -0,0 +1,49 @@ +/* remdir.c - remove a directory */ +#ifndef lint +static char ident[] = "@(#)$Id$"; +#endif /* lint */ + +#include "../h/mh.h" +#include <stdio.h> +#ifdef UNISTD +#include <unistd.h> +#endif + + +remdir (dir) +char *dir; +{ +#if !defined (BSD42) && !defined (SYS5DIR) + int pid; +#endif /* not BSD42 and not SYS5DIR */ + + m_update (); + (void) fflush (stdout); + +#if !defined (BSD42) && !defined (SYS5DIR) + switch (pid = vfork ()) { + case NOTOK: + advise ("fork", "unable to"); + return 0; + + case OK: + execl ("/bin/rmdir", "rmdir", dir, NULLCP); + execl ("/usr/bin/rmdir", "rmdir", dir, NULLCP); + fprintf (stderr, "unable to exec "); + perror ("rmdir"); + _exit (-1); + + default: + if (pidXwait (pid, "rmdir")) + return 0; + break; + } +#else /* BSD42 or SYS5DIR */ + if (rmdir (dir) == NOTOK) { + admonish (dir, "unable to remove directory"); + return 0; + } +#endif /* BSD42 or SYS5DIR */ + + return 1; +}