From c2da755dc26b5d4e904785cdb72d9f4ca7a05c98 Mon Sep 17 00:00:00 2001 From: Areloch Date: Fri, 8 Jan 2016 00:19:11 -0600 Subject: [PATCH] Fix for the directory scan for modules so it doesn't trim off characters in the path. Resubmitted to clear the excess history entries. --- Engine/source/platformWin32/winFileio.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/Engine/source/platformWin32/winFileio.cpp b/Engine/source/platformWin32/winFileio.cpp index d5fdde104..85f8676a3 100644 --- a/Engine/source/platformWin32/winFileio.cpp +++ b/Engine/source/platformWin32/winFileio.cpp @@ -1321,6 +1321,7 @@ static bool recurseDumpDirectories(const char *basePath, const char *subPath, Ve dsize_t subtrLen = subPath ? dStrlen(subPath) : 0; char trail = trLen > 0 ? basePath[ trLen - 1 ] : '\0'; char subTrail = subtrLen > 0 ? subPath[ subtrLen - 1 ] : '\0'; + char subLead = subtrLen > 0 ? subPath[0] : '\0'; if( trail == '/' ) { @@ -1380,13 +1381,23 @@ static bool recurseDumpDirectories(const char *basePath, const char *subPath, Ve { if( ( subPath && ( dStrncmp( subPath, "", 1 ) != 0 ) ) ) { - char szPath [ 1024 ]; - dMemset( szPath, 0, 1024 ); - if( trail != '/' ) - dSprintf( szPath, 1024, "%s%s", basePath, subPath ); + char szPath[1024]; + dMemset(szPath, 0, 1024); + if (trail == '/') + { + if (subLead == '/') + dSprintf(szPath, 1024, "%s%s", basePath, &subPath[1]); + else + dSprintf(szPath, 1024, "%s%s", basePath, subPath); + } else - dSprintf( szPath, 1024, "%s%s", basePath, &subPath[1] ); - directoryVector.push_back( StringTable->insert( szPath ) ); + { + if (subLead == '/') + dSprintf(szPath, 1024, "%s%s", basePath, subPath); + else + dSprintf(szPath, 1024, "%s/%s", basePath, subPath); + } + directoryVector.push_back(StringTable->insert(szPath)); } else directoryVector.push_back( StringTable->insert( basePath ) );