Use Canonical Paths for Relative Paths Calculations (#4211)
Fix redundant path elements Closes #4173
This commit is contained in:
@@ -225,9 +225,9 @@ bool ConfigManager::hasWorkingDir() const
|
||||
}
|
||||
|
||||
|
||||
void ConfigManager::setWorkingDir( const QString & _wd )
|
||||
void ConfigManager::setWorkingDir( const QString & wd )
|
||||
{
|
||||
m_workingDir = ensureTrailingSlash( _wd );
|
||||
m_workingDir = ensureTrailingSlash( QFileInfo( wd ).canonicalFilePath() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1415,7 +1415,8 @@ QString SampleBuffer::tryToMakeRelative( const QString & file )
|
||||
{
|
||||
if( QFileInfo( file ).isRelative() == false )
|
||||
{
|
||||
QString f = QString( file ).replace( QDir::separator(), '/' );
|
||||
// Normalize the path
|
||||
QString f = QFileInfo( file ).canonicalFilePath().replace( QDir::separator(), '/' );
|
||||
|
||||
// First, look in factory samples
|
||||
// Isolate "samples/" from "data:/samples/"
|
||||
|
||||
@@ -40,8 +40,11 @@ private slots:
|
||||
|
||||
QString absPath = fi.absoluteFilePath();
|
||||
QString relPath = "drums/kick01.ogg";
|
||||
QString fuzPath = absPath;
|
||||
fuzPath.replace(relPath, "drums/.///kick01.ogg");
|
||||
QCOMPARE(SampleBuffer::tryToMakeRelative(absPath), relPath);
|
||||
QCOMPARE(SampleBuffer::tryToMakeAbsolute(relPath), absPath);
|
||||
QCOMPARE(SampleBuffer::tryToMakeRelative(fuzPath), relPath);
|
||||
}
|
||||
} RelativePathTests;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user