Skip to content

Commit

Permalink
Add special case for relative includes from top-level files
Browse files Browse the repository at this point in the history
  • Loading branch information
RicardoLuis0 authored and coelckers committed Jul 24, 2022
1 parent 27d4fc2 commit 12660b0
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions src/common/scripting/frontend/zcc_parser.cpp
Expand Up @@ -52,12 +52,15 @@ static FString ResolveIncludePath(const FString &path,const FString &lumpname){

auto end = lumpname.LastIndexOf("/"); // find last '/'

FString fullPath = lumpname.Mid(start + 1, end - start - 1); // get path from lumpname (format 'wad:filepath/filename')
// it's a top-level file, if it's a folder being loaded ( /xxx/yyy/:whatever.zs ) end is before than start, or if it's a zip ( xxx.zip/whatever.zs ) end would be -1
bool topLevelFile = start > end ;

if (start != -1 && end != -1)
FString fullPath = topLevelFile ? FString {} : lumpname.Mid(start + 1, end - start - 1); // get path from lumpname (format 'wad:filepath/filename')

if (start != -1)
{
FString relativePath = path;
if ( relativePath.IndexOf("./") == 0 ) // strip initial marker
if (relativePath.IndexOf("./") == 0) // strip initial marker
{
relativePath = relativePath.Mid(2);
}
Expand All @@ -77,7 +80,7 @@ static FString ResolveIncludePath(const FString &path,const FString &lumpname){
}
if (pathOk) // if '..' parsing was successful
{
return fullPath + "/" + relativePath;
return topLevelFile ? relativePath : fullPath + "/" + relativePath;
}
}
}
Expand Down

0 comments on commit 12660b0

Please sign in to comment.