Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=fw32.git;a=commitdiff;h=fd0925f22b65095426dabb9b33162c76c10d86ad

commit fd0925f22b65095426dabb9b33162c76c10d86ad
Author: James Buren <r...@frugalware.org>
Date:   Wed Nov 2 04:08:45 2011 -0500

fw32.c: simplify error handling in mkdir_parents

diff --git a/fw32.c b/fw32.c
index 16d1ed7..d4ae7e0 100644
--- a/fw32.c
+++ b/fw32.c
@@ -5,10 +5,13 @@
#include <string.h>
#include <sys/stat.h>
#include <limits.h>
+#include <errno.h>
#include <assert.h>

static const char *FW32_ROOT = "/usr/lib/fw32";

+static const char *FW32_CONFIG = "/etc/fw32/pacman-g2.conf";
+
static const char *FW32_DIRS[] =
{
"/proc",
@@ -47,7 +50,6 @@ static void
mkdir_parents(const char *s)
{
char path[PATH_MAX], *p;
-  struct stat st;

assert(s && *s == '/');

@@ -57,28 +59,20 @@ mkdir_parents(const char *s)
{
*p = 0;

-    if(!stat(path,&st))
-    {
-      if(S_ISDIR(st.st_mode))
-        continue;
+    errno = 0;

-      error("Parent directory exists and is not a directory: %s\n",path);
-    }
+    mkdir(path,0755);

-    if(mkdir(path,0755))
-      error("Failed to create parent directory: %s\n",path);
+    if(errno && errno != EEXIST)
+        error("Failed to create parent directory: %s: 
%s\n",path,strerror(errno));
}

-  if(!stat(path,&st))
-  {
-    if(S_ISDIR(st.st_mode))
-      return;
+  errno = 0;

-    error("Directory exists and is not a directory: %s\n",path);
-  }
+  mkdir(path,0755);

-  if(mkdir(path,0755))
-    error("Failed to create directory: %s\n",path);
+  if(errno && errno != EEXIST)
+    error("Failed to create directory: %s: %s\n",path,strerror(errno));
}

static bool
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to