From af90e9d35b93489f48c80154ba00b2797f4a56fc Mon Sep 17 00:00:00 2001 From: "Rob Swindell (on Debian Linux)" <rob@synchro.net> Date: Tue, 5 Nov 2024 19:27:32 -0800 Subject: [PATCH] If fail to create dirs.raw in lib parent dir, create in ctrl_dir instead Fix for issue #809 --- src/sbbs3/scfg/scfgxfr2.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/sbbs3/scfg/scfgxfr2.c b/src/sbbs3/scfg/scfgxfr2.c index f45c9159a2..f09df723cb 100644 --- a/src/sbbs3/scfg/scfgxfr2.c +++ b/src/sbbs3/scfg/scfgxfr2.c @@ -252,17 +252,20 @@ static void append_dir_list(const char* parent, const char* dir, FILE* fp, int d globfree(&g); } -BOOL create_raw_dir_list(const char* list_file) +BOOL create_raw_dir_list(char* list_file) { char path[MAX_PATH+1]; + char fname[MAX_PATH+1] = "dirs.raw"; char* p; int k=0; bool include_empty_dirs; FILE* fp; SAFECOPY(path, list_file); - if((p=getfname(path))!=NULL) + if((p=getfname(path))!=NULL) { + SAFECOPY(fname, p); *p=0; + } if(uifc.input(WIN_MID|WIN_SAV,0,0,"Parent Directory",path,sizeof(path)-1 ,K_EDIT)<1) return(FALSE); @@ -276,9 +279,12 @@ BOOL create_raw_dir_list(const char* list_file) if(k<0) return(FALSE); if((fp=fopen(list_file,"w"))==NULL) { - SAFEPRINTF2(path,"Create Failure (%u): %s", errno, list_file); - uifc.msg(path); - return(FALSE); + strcpy(list_file, fname); + if((fp=fopen(list_file,"w"))==NULL) { + SAFEPRINTF2(path,"Create Failure (%u): %s", errno, list_file); + uifc.msg(path); + return(FALSE); + } } backslash(path); uifc.pop("Scanning Directories..."); -- GitLab