|
|
@@ -156,8 +156,7 @@ load_config_dir(const char *prog, const struct cmdinfo* cmdinfos)
|
|
|
struct dirent **dlist;
|
|
|
int dlist_n, i;
|
|
|
|
|
|
- dirname = m_malloc(strlen(CONFIGDIR "/.cfg.d") + strlen(prog) + 1);
|
|
|
- sprintf(dirname, "%s/%s.cfg.d", CONFIGDIR, prog);
|
|
|
+ m_asprintf(&dirname, "%s/%s.cfg.d", CONFIGDIR, prog);
|
|
|
|
|
|
dlist_n = scandir(dirname, &dlist, valid_config_filename, alphasort);
|
|
|
if (dlist_n < 0) {
|
|
|
@@ -171,9 +170,7 @@ load_config_dir(const char *prog, const struct cmdinfo* cmdinfos)
|
|
|
for (i = 0; i < dlist_n; i++) {
|
|
|
char *filename;
|
|
|
|
|
|
- filename = m_malloc(strlen(dirname) + 1 + strlen(dlist[i]->d_name) + 1);
|
|
|
- sprintf(filename, "%s/%s", dirname, dlist[i]->d_name);
|
|
|
-
|
|
|
+ m_asprintf(&filename, "%s/%s", dirname, dlist[i]->d_name);
|
|
|
myfileopt(filename, cmdinfos);
|
|
|
|
|
|
free(dlist[i]);
|
|
|
@@ -186,24 +183,18 @@ load_config_dir(const char *prog, const struct cmdinfo* cmdinfos)
|
|
|
|
|
|
void loadcfgfile(const char *prog, const struct cmdinfo* cmdinfos) {
|
|
|
char *home, *file;
|
|
|
- int l1, l2;
|
|
|
|
|
|
load_config_dir(prog, cmdinfos);
|
|
|
|
|
|
- l1 = strlen(CONFIGDIR "/.cfg") + strlen(prog);
|
|
|
- file = m_malloc(l1 + 1);
|
|
|
- sprintf(file, CONFIGDIR "/%s.cfg", prog);
|
|
|
+ m_asprintf(&file, "%s/%s.cfg", CONFIGDIR, prog);
|
|
|
myfileopt(file, cmdinfos);
|
|
|
+ free(file);
|
|
|
+
|
|
|
if ((home = getenv("HOME")) != NULL) {
|
|
|
- l2 = strlen(home) + 1 + strlen("/.cfg") + strlen(prog);
|
|
|
- if (l2 > l1) {
|
|
|
- free(file);
|
|
|
- file = m_malloc(l2 + 1);
|
|
|
- }
|
|
|
- sprintf(file, "%s/.%s.cfg", home, prog);
|
|
|
+ m_asprintf(&file, "%s/.%s.cfg", home, prog);
|
|
|
myfileopt(file, cmdinfos);
|
|
|
+ free(file);
|
|
|
}
|
|
|
- free(file);
|
|
|
}
|
|
|
|
|
|
void myopt(const char *const **argvp, const struct cmdinfo *cmdinfos) {
|