From 9b0389d37851ddfe36bb872063218aeaaa4ff383 Mon Sep 17 00:00:00 2001
From: Cyrille Bagard <nocbos@gmail.com>
Date: Tue, 1 Dec 2015 22:15:16 +0100
Subject: Moved the mkpath() function to a proper location.

---
 ChangeLog             | 11 +++++++
 src/analysis/db/cdb.c |  1 +
 src/common/pathname.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/common/pathname.h |  7 +++++
 src/common/xdg.c      | 84 ---------------------------------------------------
 src/common/xdg.h      | 12 ++------
 6 files changed, 105 insertions(+), 93 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 1723878..e000b54 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 15-12-01  Cyrille Bagard <nocbos@gmail.com>
 
+	* src/analysis/db/cdb.c:
+	Update code.
+
+	* src/common/pathname.c:
+	* src/common/pathname.h:
+	* src/common/xdg.c:
+	* src/common/xdg.h:
+	Move the mkpath() function to a proper location.
+
+15-12-01  Cyrille Bagard <nocbos@gmail.com>
+
 	* src/analysis/content-int.h:
 	* src/analysis/content.c:
 	* src/analysis/content.h:
diff --git a/src/analysis/db/cdb.c b/src/analysis/db/cdb.c
index 70e0dc5..a42f838 100644
--- a/src/analysis/db/cdb.c
+++ b/src/analysis/db/cdb.c
@@ -48,6 +48,7 @@
 #include "../../common/cpp.h"
 #include "../../common/extstr.h"
 #include "../../common/io.h"
+#include "../../common/pathname.h"
 #include "../../common/xdg.h"
 #include "../../common/xml.h"
 #include "../../core/collections.h"
diff --git a/src/common/pathname.c b/src/common/pathname.c
index 181fd1f..3a68599 100644
--- a/src/common/pathname.c
+++ b/src/common/pathname.c
@@ -28,6 +28,7 @@
 #include <glib.h>
 #include <malloc.h>
 #include <string.h>
+#include <sys/stat.h>
 
 
 #include "extstr.h"
@@ -171,3 +172,85 @@ char *build_absolute_filename(const char *ref, const char *target)
     return result;
 
 }
+
+
+/******************************************************************************
+*                                                                             *
+*  Paramètres  : path = chemin d'accès avec répertoires.                      *
+*                                                                             *
+*  Description : S'assure que le chemin fourni est bien en place.             *
+*                                                                             *
+*  Retour      : Bilan de l'opération.                                        *
+*                                                                             *
+*  Remarques   : -                                                            *
+*                                                                             *
+******************************************************************************/
+
+bool mkpath(const char *path)
+{
+    char tmp[PATH_MAX];                     /* Recopie de travail          */
+    size_t len;                             /* Taille du chemin fourni     */
+    char *iter;                             /* Boucle de parcours          */
+    struct stat info;                       /* Information sur l'existant  */
+    int ret;                                /* Bilan d'un appel système    */
+
+    snprintf(tmp, PATH_MAX, "%s", path);
+    len = strlen(tmp);
+
+    /* Le chemin fournit ne contient que des répertoires ? */
+    if (tmp[len - 1] == G_DIR_SEPARATOR)
+        tmp[len - 1] = '\0';
+
+    /* Sinon, on supprime le dernier élément, qui est un fichier */
+    else
+    {
+        iter = strrchr(tmp, G_DIR_SEPARATOR);
+        if (iter == NULL) return true;
+
+        *iter = '\0';
+
+    }
+
+    for(iter = tmp + 1; *iter; iter++)
+        if(*iter == G_DIR_SEPARATOR)
+        {
+            *iter = '\0';
+
+            /* Analyse de l'existant */
+            if (stat(tmp, &info) == 0)
+            {
+                if (S_ISDIR(info.st_mode) == 0)
+                    return false;
+                else
+                {
+                    *iter = G_DIR_SEPARATOR;
+                    continue;
+                }
+            }
+
+            ret = mkdir(tmp, S_IRWXU);
+            if (ret != 0)
+            {
+                perror("mkdir");
+                return false;
+            }
+
+            *iter = G_DIR_SEPARATOR;
+
+        }
+
+    /* Analyse de l'existant */
+    if (stat(tmp, &info) == 0)
+    {
+        if (S_ISDIR(info.st_mode) == 0)
+            return false;
+        else
+            return true;
+    }
+
+    ret = mkdir(tmp, S_IRWXU);
+    if (ret != 0) perror("mkdir");
+
+    return (ret == 0);
+
+}
diff --git a/src/common/pathname.h b/src/common/pathname.h
index 744a11b..72d6606 100644
--- a/src/common/pathname.h
+++ b/src/common/pathname.h
@@ -25,12 +25,19 @@
 #define _COMMON_PATHNAME_H
 
 
+#include <stdbool.h>
+
+
+
 /* Calcule le chemin relatif entre deux fichiers donnés. */
 char *build_relative_filename(const char *, const char *);
 
 /* Calcule le chemin absolu d'un fichier par rapport à un autre. */
 char *build_absolute_filename(const char *, const char *);
 
+/* S'assure que le chemin fourni est bien en place. */
+bool mkpath(const char *);
+
 
 
 #endif  /* _COMMON_PATHNAME_H */
diff --git a/src/common/xdg.c b/src/common/xdg.c
index 29e4cb9..81bc7aa 100644
--- a/src/common/xdg.c
+++ b/src/common/xdg.c
@@ -27,10 +27,8 @@
 #include <dirent.h>
 #include <glib.h>
 #include <malloc.h>
-#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/stat.h>
 
 
 
@@ -105,85 +103,3 @@ char *get_xdg_config_dir(const char *suffix)
     return result;
 
 }
-
-
-/******************************************************************************
-*                                                                             *
-*  Paramètres  : path = chemin d'accès avec répertoires.                      *
-*                                                                             *
-*  Description : S'assure que le chemin fourni est bien en place.             *
-*                                                                             *
-*  Retour      : Bilan de l'opération.                                        *
-*                                                                             *
-*  Remarques   : -                                                            *
-*                                                                             *
-******************************************************************************/
-
-bool mkpath(const char *path)
-{
-    char tmp[PATH_MAX];                     /* Recopie de travail          */
-    size_t len;                             /* Taille du chemin fourni     */
-    char *iter;                             /* Boucle de parcours          */
-    struct stat info;                       /* Information sur l'existant  */
-    int ret;                                /* Bilan d'un appel système    */
-
-    snprintf(tmp, PATH_MAX, "%s", path);
-    len = strlen(tmp);
-
-    /* Le chemin fournit ne contient que des répertoires ? */
-    if (tmp[len - 1] == G_DIR_SEPARATOR)
-        tmp[len - 1] = '\0';
-
-    /* Sinon, on supprime le dernier élément, qui est un fichier */
-    else
-    {
-        iter = strrchr(tmp, G_DIR_SEPARATOR);
-        if (iter == NULL) return true;
-
-        *iter = '\0';
-
-    }
-
-    for(iter = tmp + 1; *iter; iter++)
-        if(*iter == G_DIR_SEPARATOR)
-        {
-            *iter = '\0';
-
-            /* Analyse de l'existant */
-            if (stat(tmp, &info) == 0)
-            {
-                if (S_ISDIR(info.st_mode) == 0)
-                    return false;
-                else
-                {
-                    *iter = G_DIR_SEPARATOR;
-                    continue;
-                }
-            }
-
-            ret = mkdir(tmp, S_IRWXU);
-            if (ret != 0)
-            {
-                perror("mkdir");
-                return false;
-            }
-
-            *iter = G_DIR_SEPARATOR;
-
-        }
-
-    /* Analyse de l'existant */
-    if (stat(tmp, &info) == 0)
-    {
-        if (S_ISDIR(info.st_mode) == 0)
-            return false;
-        else
-            return true;
-    }
-
-    ret = mkdir(tmp, S_IRWXU);
-    if (ret != 0) perror("mkdir");
-
-    return (ret == 0);
-
-}
diff --git a/src/common/xdg.h b/src/common/xdg.h
index a9aa254..19a507e 100644
--- a/src/common/xdg.h
+++ b/src/common/xdg.h
@@ -21,20 +21,14 @@
  */
 
 
-#ifndef _XDG_H
-#define _XDG_H
-
-
-#include <stdbool.h>
+#ifndef _COMMON_XDG_H
+#define _COMMON_XDG_H
 
 
 
 /* Détermine le chemin d'un répertoire selon les specs. XDG. */
 char *get_xdg_config_dir(const char *);
 
-/* S'assure que le chemin fourni est bien en place. */
-bool mkpath(const char *);
-
 
 
-#endif  /* _XDG_H */
+#endif  /* _COMMON_XDG_H */
-- 
cgit v0.11.2-87-g4458