diff --git a/src/sbbs3/sbbs_ini.c b/src/sbbs3/sbbs_ini.c index 3bbaf4c3b6073695204dff442844a0bcb0686e38..9833f85c141fe842fc7816db318a369dfbc9db0a 100644 --- a/src/sbbs3/sbbs_ini.c +++ b/src/sbbs3/sbbs_ini.c @@ -52,7 +52,8 @@ static const char* strLogMask="LogMask"; void sbbs_get_ini_fname(char* ini_file, char* ctrl_dir, char* pHostName) { char host_name[128]; - + char path[MAX_PATH+1]; + if(pHostName==NULL) { #if defined(_WINSOCKAPI_) WSADATA WSAData; @@ -64,13 +65,15 @@ void sbbs_get_ini_fname(char* ini_file, char* ctrl_dir, char* pHostName) #endif pHostName=host_name; } - sprintf(ini_file,"%s%c%s.ini",ctrl_dir,PATH_DELIM,pHostName); + SAFECOPY(path,ctrl_dir); + backslash(path); + sprintf(ini_file,"%s.ini",path,pHostName); #if defined(__unix__) && defined(PREFIX) if(!fexistcase(ini_file)) sprintf(ini_file,PREFIX"/etc/sbbs.ini"); #endif if(!fexistcase(ini_file)) - sprintf(ini_file,"%s%csbbs.ini",ctrl_dir,PATH_DELIM); + sprintf(ini_file,"%ssbbs.ini",path); } static void read_ini_globals(FILE* fp, global_startup_t* global)