From 423df0c66f19a144de34665075f5d25a6d371e40 Mon Sep 17 00:00:00 2001 From: ac-stef Date: Tue, 6 Sep 2016 19:15:26 +0200 Subject: [PATCH] omit "./" prefix from media file paths in map config files Ignore it, if "./" prefixes a media path given with a texture, mapmodel or mapsound command. It's useless and prevents comparing path names. --- source/src/audiomanager.cpp | 2 +- source/src/rendermodel.cpp | 2 +- source/src/texture.cpp | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/source/src/audiomanager.cpp b/source/src/audiomanager.cpp index 8b46eb00..419f10ea 100644 --- a/source/src/audiomanager.cpp +++ b/source/src/audiomanager.cpp @@ -821,7 +821,7 @@ const int mapsoundbasepath_n = strlen(mapsoundbasepath), mapsoundfinalpath_n = s COMMANDF(mapsound, "si", (char *name, int *maxuses) { filtertext(name, name, FTXT__MEDIAFILEPATH); - defformatstring(stripped)("%s%s", mapsoundbasepath, name); + defformatstring(stripped)("%s%s", mapsoundbasepath, name[0] == '.' && name[1] == '/' ? name + 2 : name); unixpath(path(stripped)); if(mapconfigdata.mapsoundlines.length() > 254) { diff --git a/source/src/rendermodel.cpp b/source/src/rendermodel.cpp index df31ecd1..2c50af69 100644 --- a/source/src/rendermodel.cpp +++ b/source/src/rendermodel.cpp @@ -128,7 +128,7 @@ void mapmodel(int *rad, int *h, int *zoff, char *scale, char *name) mmi.m = NULL; filtertext(name, name, FTXT__MEDIAFILEPATH); - formatstring(mmi.name)("%s%s", mmpath, name); + formatstring(mmi.name)("%s%s", mmpath, name[0] == '.' && name[1] == '/' ? name + 2 : name); mapmodelchanged = 1; flagmapconfigchange(); } diff --git a/source/src/texture.cpp b/source/src/texture.cpp index e75b7d73..9eddc6a2 100644 --- a/source/src/texture.cpp +++ b/source/src/texture.cpp @@ -471,6 +471,7 @@ void _texture(Slot &s, float *scale, char *name) if(name) { filtertext(s.name, parentdir(name), FTXT__MEDIAFILEPATH); // filter parts separately, because filename may (legally) contain "" + if(s.name[0] == '.' && s.name[1] == '/') memmove(s.name, s.name + 2, sizeof(s.name) - 2); if(*s.name) concatstring(s.name, "/"); name = (char *)behindpath(name); if(*name == '<')