From 9e839263349aed657dc37cc1cdd6e8a93790e7d3 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Fri, 22 Oct 2004 02:25:23 +0000 Subject: [PATCH] Created iniFileName() to auto-generate full-paths to correctly-cased .ini filenames, using file.host.ini, if it exists, in place of file.ini. --- src/xpdev/ini_file.c | 33 +++++++++++++++++++++++++++++++++ src/xpdev/ini_file.h | 1 + 2 files changed, 34 insertions(+) diff --git a/src/xpdev/ini_file.c b/src/xpdev/ini_file.c index 0ea9e8ac02..4a599a0059 100644 --- a/src/xpdev/ini_file.c +++ b/src/xpdev/ini_file.c @@ -854,6 +854,39 @@ ulong iniGetIpAddress(str_list_t* list, const char* section, const char* key, ul #endif /* !NO_SOCKET_SUPPORT */ +char* iniFileName(char* dest, size_t maxlen, const char* indir, const char* infname) +{ + char dir[MAX_PATH+1]; + char fname[MAX_PATH+1]; + char ext[MAX_PATH+1]; + char* p; + + SAFECOPY(dir,indir); + backslash(dir); + SAFECOPY(fname,infname); + ext[0]=0; + if((p=getfext(fname))!=NULL) { + SAFECOPY(ext,p); + *p=0; + } + +#if !defined(NO_SOCKET_SUPPORT) + { + char hostname[128]; + + if(gethostname(hostname,sizeof(hostname))==0) { + safe_snprintf(dest,maxlen,"%s%s.%s%s",dir,fname,hostname,ext); + if(fexistcase(dest)) + return(dest); + } + } +#endif + + safe_snprintf(dest,maxlen,"%s%s%s",dir,fname,ext); + fexistcase(dest); + return(dest); +} + double iniReadFloat(FILE* fp, const char* section, const char* key, double deflt) { char buf[INI_MAX_VALUE_LEN]; diff --git a/src/xpdev/ini_file.h b/src/xpdev/ini_file.h index 1f5c2eb314..ab1b9847bc 100644 --- a/src/xpdev/ini_file.h +++ b/src/xpdev/ini_file.h @@ -96,6 +96,7 @@ void* iniFreeNamedStringList(named_string_t** list); /* File I/O Functions */ +char* iniFileName(char* dest, size_t maxlen, const char* dir, const char* fname); FILE* iniOpenFile(const char* fname); str_list_t iniReadFile(FILE*); BOOL iniWriteFile(FILE*, const str_list_t); -- GitLab