[Pkg-owncloud-commits] [owncloud-client] 271/332: SocketAPI: Normalize file names when read from the filesystem.
Sandro Knauß
hefee-guest at moszumanska.debian.org
Thu Aug 14 21:07:11 UTC 2014
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit fe9a2e7ba4567fadcc235149bc2346b651e9889d
Author: Klaas Freitag <freitag at owncloud.com>
Date: Mon Jul 28 15:09:33 2014 +0200
SocketAPI: Normalize file names when read from the filesystem.
Otherwise there will be bad encoded file names because of a Qt
upstream error that skips the normalization.
---
src/mirall/socketapi.cpp | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/mirall/socketapi.cpp b/src/mirall/socketapi.cpp
index 6198bc1..41e079e 100644
--- a/src/mirall/socketapi.cpp
+++ b/src/mirall/socketapi.cpp
@@ -57,7 +57,7 @@ namespace Mirall {
namespace SocketApiHelper {
-SyncFileStatus fileStatus(Folder *folder, const QString& fileName );
+SyncFileStatus fileStatus(Folder *folder, const QString& systemFileName );
/**
* @brief recursiveFolderStatus
@@ -79,15 +79,17 @@ SyncFileStatus recursiveFolderStatus(Folder *folder, const QString& fileName )
SyncFileStatus result(SyncFileStatus::STATUS_SYNC);
foreach( const QString entry, dirEntries ) {
+ QString normalizedFile = QString(fileName + QLatin1Char('/') + entry).normalized(QString::NormalizationForm_C);
QFileInfo fi(entry);
SyncFileStatus sfs;
+
if( fi.isDir() ) {
- sfs = recursiveFolderStatus(folder, fileName + QLatin1Char('/') + entry );
+ sfs = recursiveFolderStatus(folder, normalizedFile );
} else {
- QString fs( fileName + QLatin1Char('/') + entry );
+ QString fs( normalizedFile );
if( fileName.isEmpty() ) {
// toplevel, no slash etc. needed.
- fs = entry;
+ fs = entry.normalized(QString::NormalizationForm_C);
}
sfs = fileStatus(folder, fs );
}
@@ -104,11 +106,12 @@ SyncFileStatus recursiveFolderStatus(Folder *folder, const QString& fileName )
/**
* Get status about a single file.
*/
-SyncFileStatus fileStatus(Folder *folder, const QString& fileName )
+SyncFileStatus fileStatus(Folder *folder, const QString& systemFileName )
{
// FIXME: Find a way for STATUS_ERROR
QString file = folder->path();
+ QString fileName = systemFileName.normalized(QString::NormalizationForm_C);
bool isSyncRootFolder = true;
if( fileName != QLatin1String("/") && !fileName.isEmpty() ) {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list