Check if the configuration folder exists

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
This commit is contained in:
Quentin Hibon 2018-08-25 12:04:12 +02:00 committed by Lukas Fleischer
parent 8104c4aaf4
commit 65064ceed1
3 changed files with 20 additions and 10 deletions

View File

@ -1216,6 +1216,7 @@ extern int want_reload;
extern const char *datefmt_str[DATE_FORMATS]; extern const char *datefmt_str[DATE_FORMATS];
extern int days[12]; extern int days[12];
extern char path_dir[BUFSIZ]; extern char path_dir[BUFSIZ];
extern char path_conf_dir[BUFSIZ];
extern char path_todo[BUFSIZ]; extern char path_todo[BUFSIZ];
extern char path_apts[BUFSIZ]; extern char path_apts[BUFSIZ];
extern char path_conf[BUFSIZ]; extern char path_conf[BUFSIZ];

View File

@ -144,17 +144,21 @@ unsigned io_fprintln(const char *fname, const char *fmt, ...)
void io_init(const char *cfile, const char *datadir, const char *confdir) void io_init(const char *cfile, const char *datadir, const char *confdir)
{ {
const char *home; const char *home;
const char *conf_home;
if (datadir != NULL) { if (datadir != NULL) {
home = datadir; home = datadir;
if (confdir == NULL)
conf_home = home;
else
conf_home = confdir;
snprintf(path_dir, BUFSIZ, "%s", home); snprintf(path_dir, BUFSIZ, "%s", home);
if (!confdir)
confdir = path_dir;
snprintf(path_conf, BUFSIZ, "%s/" CONF_PATH_NAME, confdir); snprintf(path_conf_dir, BUFSIZ, "%s", conf_home);
snprintf(path_keys, BUFSIZ, "%s/" KEYS_PATH_NAME, confdir); snprintf(path_conf, BUFSIZ, "%s/" CONF_PATH_NAME, conf_home);
snprintf(path_hooks, BUFSIZ, "%s/" HOOKS_DIR_NAME, confdir); snprintf(path_keys, BUFSIZ, "%s/" KEYS_PATH_NAME, conf_home);
snprintf(path_hooks, BUFSIZ, "%s/" HOOKS_DIR_NAME, conf_home);
snprintf(path_todo, BUFSIZ, "%s/" TODO_PATH_NAME, home); snprintf(path_todo, BUFSIZ, "%s/" TODO_PATH_NAME, home);
snprintf(path_cpid, BUFSIZ, "%s/" CPID_PATH_NAME, home); snprintf(path_cpid, BUFSIZ, "%s/" CPID_PATH_NAME, home);
@ -166,14 +170,17 @@ void io_init(const char *cfile, const char *datadir, const char *confdir)
if (home == NULL) { if (home == NULL) {
home = "."; home = ".";
} }
if (confdir == NULL)
conf_home = home;
else
conf_home = confdir;
snprintf(path_dir, BUFSIZ, "%s/" DIR_NAME, home); snprintf(path_dir, BUFSIZ, "%s/" DIR_NAME, home);
if (!confdir)
confdir = path_dir;
snprintf(path_conf, BUFSIZ, "%s/" CONF_PATH_NAME, confdir); snprintf(path_conf_dir, BUFSIZ, "%s", conf_home);
snprintf(path_keys, BUFSIZ, "%s/" KEYS_PATH_NAME, confdir); snprintf(path_conf, BUFSIZ, "%s/" CONF_PATH_NAME, conf_home);
snprintf(path_hooks, BUFSIZ, "%s/" HOOKS_DIR_NAME, confdir); snprintf(path_keys, BUFSIZ, "%s/" KEYS_PATH_NAME, conf_home);
snprintf(path_hooks, BUFSIZ, "%s/" HOOKS_DIR_NAME, conf_home);
snprintf(path_todo, BUFSIZ, "%s/" TODO_PATH, home); snprintf(path_todo, BUFSIZ, "%s/" TODO_PATH, home);
snprintf(path_cpid, BUFSIZ, "%s/" CPID_PATH, home); snprintf(path_cpid, BUFSIZ, "%s/" CPID_PATH, home);
@ -1152,6 +1159,7 @@ int io_check_data_files(void)
int missing = 0; int missing = 0;
missing += io_check_dir(path_dir) ? 0 : 1; missing += io_check_dir(path_dir) ? 0 : 1;
missing += io_check_dir(path_conf_dir) ? 0 : 1;
missing += io_check_dir(path_notes) ? 0 : 1; missing += io_check_dir(path_notes) ? 0 : 1;
missing += io_check_file(path_todo) ? 0 : 1; missing += io_check_file(path_todo) ? 0 : 1;
missing += io_check_file(path_apts) ? 0 : 1; missing += io_check_file(path_apts) ? 0 : 1;

View File

@ -80,6 +80,7 @@ int days[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
* io_init() * io_init()
*/ */
char path_dir[] = ""; char path_dir[] = "";
char path_conf_dir[] = "";
char path_todo[] = ""; char path_todo[] = "";
char path_apts[] = ""; char path_apts[] = "";
char path_conf[] = ""; char path_conf[] = "";