aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autotests/test_kconf_update.cpp6
-rw-r--r--autotests/test_kconf_update.h1
-rw-r--r--src/kconf_update/kconf_update.cpp9
3 files changed, 12 insertions, 4 deletions
diff --git a/autotests/test_kconf_update.cpp b/autotests/test_kconf_update.cpp
index 86553a21..baa4dc56 100644
--- a/autotests/test_kconf_update.cpp
+++ b/autotests/test_kconf_update.cpp
@@ -33,6 +33,12 @@
QTEST_GUILESS_MAIN(TestKConfUpdate)
+void TestKConfUpdate::initTestCase()
+{
+ // Ensure it all works with spaces in paths (as happens more commonly on OSX where it's ~/Library/Application Support/)
+ qputenv("XDG_DATA_HOME", "/tmp/a b");
+}
+
static void writeFile(const QString &path, const QString &content)
{
QFile file(path);
diff --git a/autotests/test_kconf_update.h b/autotests/test_kconf_update.h
index 1b3151f1..ca8fe3ba 100644
--- a/autotests/test_kconf_update.h
+++ b/autotests/test_kconf_update.h
@@ -27,6 +27,7 @@ class TestKConfUpdate : public QObject
{
Q_OBJECT
private Q_SLOTS:
+ void initTestCase();
void test_data();
void test();
void testScript_data();
diff --git a/src/kconf_update/kconf_update.cpp b/src/kconf_update/kconf_update.cpp
index 309bc3c2..7659e7b2 100644
--- a/src/kconf_update/kconf_update.cpp
+++ b/src/kconf_update/kconf_update.cpp
@@ -777,6 +777,7 @@ void KonfUpdate::gotScript(const QString &_script)
log() << m_currentFilename << ": Running script '" << script << "'" << endl;
}
+ QStringList args;
QString cmd;
if (interpreter.isEmpty()) {
cmd = path;
@@ -787,12 +788,12 @@ void KonfUpdate::gotScript(const QString &_script)
m_skip = true;
return;
}
- cmd = interpreterPath + ' ' + path;
+ cmd = interpreterPath;
+ args << path;
}
if (!m_arguments.isNull()) {
- cmd += ' ';
- cmd += m_arguments;
+ args += m_arguments;
}
QTemporaryFile scriptIn;
@@ -834,7 +835,7 @@ void KonfUpdate::gotScript(const QString &_script)
log() << "Script contents is:" << endl << scriptFile.readAll() << endl;
}
}
- proc.start(cmd);
+ proc.start(cmd, args);
if (!proc.waitForFinished(60000)) {
logFileError() << "update script did not terminate within 60 seconds: " << cmd << endl;
m_skip = true;