diff --git a/src/configure.c b/src/configure.c index 3df9a61..69655e7 100644 --- a/src/configure.c +++ b/src/configure.c @@ -464,8 +464,11 @@ static int _project_load(ConfigurePrefs * prefs, String const * directory, String * path; String const * subdirs = NULL; - if((path = string_new_append(directory, "/", PROJECT_CONF, NULL)) - == NULL) + if(directory == NULL || string_length(directory) == 0) + path = string_new_append(PROJECT_CONF, NULL); + else + path = string_new_append(directory, "/", PROJECT_CONF, NULL); + if(path == NULL) return configure_error(1, "%s", error_get(NULL)); if((config = config_new()) == NULL) { @@ -523,10 +526,15 @@ static int _project_load_subdirs_subdir(ConfigurePrefs * prefs, int ret; String * p; - if((p = string_new_append(directory, "/", subdir, NULL)) == NULL) - return error_print(PROGNAME); - ret = _project_load(prefs, p, ca); - string_delete(p); + if(directory == NULL || string_length(directory) == 0) + ret = _project_load(prefs, subdir, ca); + else if((p = string_new_append(directory, "/", subdir, NULL)) == NULL) + ret = error_print(PROGNAME); + else + { + ret = _project_load(prefs, p, ca); + string_delete(p); + } return ret; } diff --git a/src/main.c b/src/main.c index afa0e72..3f22a71 100644 --- a/src/main.c +++ b/src/main.c @@ -185,7 +185,7 @@ int main(int argc, char * argv[]) ret = configure_error(2, "%s", error_get(NULL)); else if(optind == argc) { - if((ret = configure_project(configure, ".")) != 0) + if((ret = configure_project(configure, NULL)) != 0) configure_error(2, "%s", error_get(NULL)); } else diff --git a/src/makefile.c b/src/makefile.c index 2bf8cd9..a54e90c 100644 --- a/src/makefile.c +++ b/src/makefile.c @@ -103,8 +103,11 @@ int makefile(Configure * configure, String const * directory, configArray * ca, String * filename; int ret = 0; - if((filename = string_new_append(directory, "/", MAKEFILE, NULL)) - == NULL) + if(directory == NULL || string_length(directory) == 0) + filename = string_new(MAKEFILE); + else + filename = string_new_append(directory, "/", MAKEFILE, NULL); + if(filename == NULL) return -1; makefile.configure = configure; makefile.fp = NULL; @@ -114,8 +117,7 @@ int makefile(Configure * configure, String const * directory, configArray * ca, else { if(_makefile_is_flag_set(&makefile, PREFS_v)) - printf("%s%s/%s", "Creating ", directory, - MAKEFILE "\n"); + printf("%s%s\n", "Creating ", filename); ret |= _makefile_write(&makefile, ca, from, to); if(makefile.fp != NULL) fclose(makefile.fp); diff --git a/src/settings.c b/src/settings.c index b876788..96ddd99 100644 --- a/src/settings.c +++ b/src/settings.c @@ -111,17 +111,20 @@ static int _settings_do(Configure * configure, String const * directory, } if(configure_is_flag_set(configure, PREFS_n)) return 0; - if((filename = string_new_append(directory, "/config.", extension, - NULL)) == NULL) + if(directory == NULL || string_length(directory) == 0) + filename = string_new_append("config.", extension, NULL); + else + filename = string_new_append(directory, "/config.", extension, + NULL); + if(filename == NULL) return 1; + if(configure_is_flag_set(configure, PREFS_v)) + printf("%s%s\n", "Creating ", filename); if((fp = fopen(filename, "w")) == NULL) configure_error(0, "%s: %s", filename, strerror(errno)); string_delete(filename); if(fp == NULL) return 1; - if(configure_is_flag_set(configure, PREFS_v)) - printf("%s%s/%s%s\n", "Creating ", directory, "config.", - extension); switch(i) { case ST_H: