mardelle created this revision.
mardelle added reviewers: Frameworks, shaforostoff.
Restricted Application added a project: Frameworks.
REVISION SUMMARY
KAutoSaveFile does not correctly handle simple characters like spaces in file
names!!!
When creating a stale file (backup file) , to determine the file name it uses:
in tempFileName(), line 83:
return QString::fromLatin1(QUrl::toPercentEncoding(name).constData());
So the filename is encoded using percent encoding. But when checking for an
existing backup file, it does:
in extractManagedFilePath, line 180:
managedFileName.setPath(QUrl::fromPercentEncoding(encodedPath) +
QLatin1Char('/') + QFileInfo(staleFileName.left(sepPos)).fileName());
So the path part is correctly restored from percent encoding, but the
filename part is not decoded.
So we end up comparing "my file" with "my%20file" and the stale file is not
correctly identified!
TEST PLAN
Project files with space in their name in Kdenlive now have crash recovery
working
REPOSITORY
R244 KCoreAddons
REVISION DETAIL
https://phabricator.kde.org/D8084
AFFECTED FILES
src/lib/io/kautosavefile.cpp
To: mardelle, #frameworks, shaforostoff