]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
owncloudcmd: Fix --exclude regression
authorChristian Kamm <mail@ckamm.de>
Wed, 22 Jun 2016 13:30:20 +0000 (15:30 +0200)
committerChristian Kamm <mail@ckamm.de>
Wed, 22 Jun 2016 13:30:20 +0000 (15:30 +0200)
It's ok if the system exclude file is missing when --exclude is
specified explicitly.

src/cmd/cmd.cpp

index ab26a428b1efe42760474c9cdc93e1d1b92a08af..9fe32aa941fffcb040b2bf4a33d0ad6bf00adfe8 100644 (file)
@@ -443,16 +443,27 @@ restart_sync:
     QObject::connect(&engine, SIGNAL(finished(bool)), &app, SLOT(quit()));
     QObject::connect(&engine, SIGNAL(transmissionProgress(ProgressInfo)), &cmd, SLOT(transmissionProgressSlot()));
 
+
     // Exclude lists
-    engine.excludedFiles().addExcludeFilePath(ConfigFile::excludeFileFromSystem());
-    if( QFile::exists(options.exclude) )
+
+    bool hasUserExcludeFile = !options.exclude.isEmpty();
+    QString systemExcludeFile = ConfigFile::excludeFileFromSystem();
+
+    // Always try to load the user-provided exclude list if one is specified
+    if ( hasUserExcludeFile ) {
         engine.excludedFiles().addExcludeFilePath(options.exclude);
+    }
+    // Load the system list if available, or if there's no user-provided list
+    if ( !hasUserExcludeFile || QFile::exists(systemExcludeFile) ) {
+        engine.excludedFiles().addExcludeFilePath(systemExcludeFile);
+    }
+
     if (!engine.excludedFiles().reloadExcludes()) {
-        // Always make sure at least one list has been loaded
         qFatal("Cannot load system exclude list or list supplied via --exclude");
         return EXIT_FAILURE;
     }
 
+
     // Have to be done async, else, an error before exec() does not terminate the event loop.
     QMetaObject::invokeMethod(&engine, "startSync", Qt::QueuedConnection);