From c77756e6fe793ff80d36a39b711b00e8aa53a47d Mon Sep 17 00:00:00 2001 From: Steven Fuller Date: Wed, 15 Oct 2003 02:56:47 +0000 Subject: changed FixFilename to only lowercase the game-supplied part of a filename. added better game directory detection code. now each candidate directory is checked for validity. --- src/files.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/files.c') diff --git a/src/files.c b/src/files.c index 042441b..b25ddbe 100644 --- a/src/files.c +++ b/src/files.c @@ -44,15 +44,19 @@ static char *FixFilename(const char *filename, const char *prefix, int force) { char *f, *ptr; int flen; + int plen; - flen = strlen(filename) + strlen(prefix) + 2; + plen = strlen(prefix) + 1; + flen = strlen(filename) + plen + 1; f = (char *)malloc(flen); strcpy(f, prefix); strcat(f, DIR_SEPARATOR); strcat(f, filename); - ptr = f; + /* only the filename part needs to be modified */ + ptr = &f[plen+1]; + while (*ptr) { if ((*ptr == '/') || (*ptr == '\\') || (*ptr == ':')) { *ptr = DIR_SEPARATOR[0]; @@ -60,8 +64,9 @@ static char *FixFilename(const char *filename, const char *prefix, int force) *ptr = 0; break; } else { - if (force) + if (force) { *ptr = tolower(*ptr); + } } ptr++; } -- cgit v1.3