diff options
| author | Steven Fuller <relnev@icculus.org> | 2003-10-15 02:56:47 +0000 |
|---|---|---|
| committer | Patryk Obara <dreamer.tan@gmail.com> | 2019-08-20 02:22:37 +0200 |
| commit | c77756e6fe793ff80d36a39b711b00e8aa53a47d (patch) | |
| tree | d7a19efbc34ecd4bca8a3fd75187489d1dcbebe8 /src/files.c | |
| parent | 9811f0824c1f040de97bd47b37f5b0cbf5eeea97 (diff) | |
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.
Diffstat (limited to 'src/files.c')
| -rw-r--r-- | src/files.c | 11 |
1 files changed, 8 insertions, 3 deletions
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++; } |
