summaryrefslogtreecommitdiff
path: root/src/xdg.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2014-01-13 00:27:34 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2014-01-13 00:27:34 (GMT)
commitabb191e42e356914bd09176a6d6c5bf89ec50bbf (patch)
tree851f3d195a991bff42d5958a7d40d75422ad1e83 /src/xdg.c
parent01750b1c29ade2865f608513b139597a98a95e57 (diff)
Ensured that a path with directories exists.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@366 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/xdg.c')
-rw-r--r--src/xdg.c103
1 files changed, 0 insertions, 103 deletions
diff --git a/src/xdg.c b/src/xdg.c
deleted file mode 100644
index 6541e89..0000000
--- a/src/xdg.c
+++ /dev/null
@@ -1,103 +0,0 @@
-
-/* OpenIDA - Outil d'analyse de fichiers binaires
- * xdg.c - compléments mineurs au support Freedesktop
- *
- * Copyright (C) 2008 Cyrille Bagard
- *
- * This file is part of OpenIDA.
- *
- * OpenIDA is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * OpenIDA is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include "xdg.h"
-
-
-#include <dirent.h>
-#include <malloc.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-
-/******************************************************************************
-* *
-* Paramètres : suffix = élément visé dans le répertoire de configuration. *
-* *
-* Description : Détermine le chemin d'un répertoire selon les specs. XDG. *
-* *
-* Retour : Chemin d'accès aux configurations personnelles ou NULL. *
-* *
-* Remarques : cf. http://standards.freedesktop.org/basedir-spec/. *
-* *
-******************************************************************************/
-
-char *get_xdg_config_dir(const char *suffix)
-{
- char *result; /* Chemin d'accès à renvoyer */
- const char *env; /* Valeur de l'environnement */
- DIR *directory; /* Répertoire avec contenu ? */
- struct dirent *entry; /* Elément de répertoire */
-
- result = NULL;
-
- env = getenv("XDG_CONFIG_HOME");
-
- if (env != NULL && env[0] != '\0')
- {
- directory = opendir(env);
- if (directory == NULL) goto default_cfg_dir;
-
- for (entry = readdir(directory); entry != NULL && result == NULL; entry = readdir(directory))
- {
- if (strcmp(entry->d_name, ".") == 0) continue;
- if (strcmp(entry->d_name, "..") == 0) continue;
-
- result = (char *)calloc(strlen(env) + 2 + strlen(suffix) + 1, sizeof(char));
- strcpy(result, env);
-
- if (env[strlen(env) - 1] != '/')
- strcat(result, "/");
-
- strcat(result, ".");
- strcat(result, suffix);
-
- }
-
- closedir(directory);
-
- }
-
- default_cfg_dir:
-
- if (result == NULL)
- {
- env = getenv("HOME");
- if (env == NULL || env[0] == '\0') return NULL;
-
- result = (char *)calloc(strlen(env) + 1 + strlen(".config/") + strlen(suffix) + 1, sizeof(char));
-
- strcpy(result, env);
-
- if (env[strlen(env) - 1] != '/')
- strcat(result, "/");
-
- strcat(result, ".config/");
- strcat(result, suffix);
-
- }
-
- return result;
-
-}