|
@@ -1321,6 +1321,7 @@ static bool recurseDumpDirectories(const char *basePath, const char *subPath, Ve
|
|
dsize_t subtrLen = subPath ? dStrlen(subPath) : 0;
|
|
dsize_t subtrLen = subPath ? dStrlen(subPath) : 0;
|
|
char trail = trLen > 0 ? basePath[ trLen - 1 ] : '\0';
|
|
char trail = trLen > 0 ? basePath[ trLen - 1 ] : '\0';
|
|
char subTrail = subtrLen > 0 ? subPath[ subtrLen - 1 ] : '\0';
|
|
char subTrail = subtrLen > 0 ? subPath[ subtrLen - 1 ] : '\0';
|
|
|
|
+ char subLead = subtrLen > 0 ? subPath[0] : '\0';
|
|
|
|
|
|
if( trail == '/' )
|
|
if( trail == '/' )
|
|
{
|
|
{
|
|
@@ -1380,13 +1381,23 @@ static bool recurseDumpDirectories(const char *basePath, const char *subPath, Ve
|
|
{
|
|
{
|
|
if( ( subPath && ( dStrncmp( subPath, "", 1 ) != 0 ) ) )
|
|
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
|
|
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
|
|
else
|
|
directoryVector.push_back( StringTable->insert( basePath ) );
|
|
directoryVector.push_back( StringTable->insert( basePath ) );
|