[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