From f987b7a54199cad8eed8b4fccfbe33478adf243a Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Sun, 8 Jul 2007 00:00:17 +0000 Subject: - silence a cosmetic warning (closes several issues in mantis). This also provides a nice up-to-date filestamp if something got reconfigured (e.g. c++ support got toggled) that can be used in the future to depend accordingly. --- package/config/confdata.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'package/config/confdata.c') diff --git a/package/config/confdata.c b/package/config/confdata.c index c19b6ffed..0098a08ee 100644 --- a/package/config/confdata.c +++ b/package/config/confdata.c @@ -11,6 +11,7 @@ #include #include #include +#include #define LKC_DIRECT_LINK #include "lkc.h" @@ -529,7 +530,7 @@ int conf_write(const char *name) int conf_split_config(void) { - char *name, path[128]; + char *name, path[128], *opwd, *dir, *_name; char *s, *d, c; struct symbol *sym; struct stat sb; @@ -540,8 +541,20 @@ int conf_split_config(void) name = "include/config/auto.conf"; conf_read_simple(name, S_DEF_AUTO); - if (chdir("include/config")) + opwd = malloc(256); + _name = strdup(name); + if (opwd == NULL || _name == NULL) return 1; + opwd = getcwd(opwd, 256); + dir = dirname(_name); + if (dir == NULL) { + res = 1; + goto err; + } + if (chdir(dir)) { + res = 1; + goto err; + } res = 0; for_all_symbols(i, sym) { @@ -634,9 +647,11 @@ int conf_split_config(void) close(fd); } out: - if (chdir("../..")) - return 1; - + if (chdir(opwd)) + res = 1; +err: + free(opwd); + free(_name); return res; } -- cgit v1.2.3