Fixed: CPath::makePathAbsolute removing first /
This commit is contained in:
parent
cc888d2dec
commit
23ec09c4b1
1 changed files with 10 additions and 6 deletions
|
@ -2578,13 +2578,13 @@ std::string CPath::makePathAbsolute( const std::string &relativePath, const std:
|
|||
{
|
||||
absolutePath = relativePath;
|
||||
}
|
||||
#else
|
||||
// Unix filesystem absolute path
|
||||
else
|
||||
#endif
|
||||
// Unix filesystem absolute path (works also under Windows)
|
||||
if (relativePath[0] == '/')
|
||||
{
|
||||
absolutePath = relativePath;
|
||||
}
|
||||
#endif
|
||||
else
|
||||
{
|
||||
// Add a slash to the directory if necessary.
|
||||
|
@ -2610,14 +2610,15 @@ std::string CPath::makePathAbsolute( const std::string &relativePath, const std:
|
|||
|
||||
// Now build the new absolute path
|
||||
absolutePath += relativePath;
|
||||
absolutePath = standardizePath(absolutePath, true);
|
||||
}
|
||||
|
||||
absolutePath = standardizePath(absolutePath, true);
|
||||
|
||||
if (simplify)
|
||||
{
|
||||
// split all components path to manage parent directories
|
||||
std::vector<std::string> tokens;
|
||||
explode(absolutePath, std::string("/"), tokens, true);
|
||||
explode(absolutePath, std::string("/"), tokens, false);
|
||||
|
||||
std::vector<std::string> directoryParts;
|
||||
|
||||
|
@ -2649,7 +2650,10 @@ std::string CPath::makePathAbsolute( const std::string &relativePath, const std:
|
|||
|
||||
// rebuild the whole absolute path
|
||||
for(uint i = 1, len = directoryParts.size(); i < len; ++i)
|
||||
{
|
||||
if (!directoryParts[i].empty())
|
||||
absolutePath += "/" + directoryParts[i];
|
||||
}
|
||||
|
||||
// add trailing slash
|
||||
absolutePath += "/";
|
||||
|
|
Loading…
Reference in a new issue