From bf941a655a6ab857542e924e46cc316cf4108daa Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Tue, 6 Aug 2019 20:32:58 +0000 Subject: [PATCH] Fix issue reported by Mark Lewis: scfg validates/creates directories when you save the file area config but they are missing the '/' between "dirs" and the internal code... So the Transfer File Path auto-default-value logic is actually in 3 places: - load_cfg.c prep_cfg() - scfgsave.c write_file_cfg() - scfgxfr2.c dir_cfg() - for display purposes only <sigh> --- src/sbbs3/scfgsave.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/sbbs3/scfgsave.c b/src/sbbs3/scfgsave.c index cccc539625..9d5386c358 100644 --- a/src/sbbs3/scfgsave.c +++ b/src/sbbs3/scfgsave.c @@ -829,22 +829,20 @@ BOOL DLLCALL write_file_cfg(scfg_t* cfg, int backup_level) if (cfg->dir[i]->misc&DIR_FCHK) { SAFECOPY(path, cfg->dir[i]->path); if (!path[0]) { /* no file storage path specified */ - if(cfg->dir[i]->data_dir[0]) - SAFECOPY(path, cfg->dir[i]->data_dir); - else - SAFEPRINTF(path, "%sdirs", cfg->data_dir); - SAFEPRINTF2(str, "%s%s" + SAFEPRINTF2(path, "%s%s" , cfg->lib[cfg->dir[i]->lib]->code_prefix , cfg->dir[i]->code_suffix); - strlwr(str); - SAFECAT(path,str); + strlwr(path); } - else if (cfg->lib[cfg->dir[i]->lib]->parent_path[0]) { - SAFECOPY(path, cfg->lib[cfg->dir[i]->lib]->parent_path); - backslash(path); - SAFECAT(path, cfg->dir[i]->path); + if(cfg->lib[cfg->dir[i]->lib]->parent_path[0]) + prep_dir(cfg->lib[cfg->dir[i]->lib]->parent_path, path, sizeof(path)); + else { + if(cfg->dir[i]->data_dir[0]) + SAFECOPY(str, cfg->dir[i]->data_dir); + else + SAFEPRINTF(str, "%sdirs", cfg->data_dir); + prep_dir(str, path, sizeof(path)); } - prep_dir(cfg->ctrl_dir, path, sizeof(path)); mkpath(path); } -- GitLab