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;
+}