• R/O
  • HTTP
  • SSH
  • HTTPS

MUtilities: 提交

MUtilities development repository


Commit MetaInfo

修订版37522d4c157099ae1b335908ddbd4896b441cf06 (tree)
时间2016-10-03 00:32:40
作者LoRd_MuldeR <mulder2@gmx....>
CommiterLoRd_MuldeR

Log Message

Some improvements to init_process() function.

更改概述

差异

--- a/include/MUtils/Global.h
+++ b/include/MUtils/Global.h
@@ -76,7 +76,7 @@ namespace MUtils
7676 MUTILS_API const QString& temp_folder(void);
7777
7878 //Process Utils
79- MUTILS_API void init_process(QProcess &process, const QString &wokringDir, const bool bReplaceTempDir = true, const QString &extraPath = QString());
79+ MUTILS_API void init_process(QProcess &process, const QString &wokringDir, const bool bReplaceTempDir = true, const QStringList *const extraPaths = NULL);
8080
8181 //Random
8282 MUTILS_API void seed_rand(void);
--- a/src/Global.cpp
+++ b/src/Global.cpp
@@ -37,6 +37,7 @@
3737 #include <QProcess>
3838 #include <QTextCodec>
3939 #include <QPair>
40+#include <QListIterator>
4041
4142 //CRT
4243 #include <cstdlib>
@@ -391,7 +392,7 @@ static void prependToPath(QProcessEnvironment &env, const QString &value)
391392 env.insert(PATH, path.isEmpty() ? value : QString("%1;%2").arg(value, path));
392393 }
393394
394-void MUtils::init_process(QProcess &process, const QString &wokringDir, const bool bReplaceTempDir, const QString &extraPath)
395+void MUtils::init_process(QProcess &process, const QString &wokringDir, const bool bReplaceTempDir, const QStringList *const extraPaths)
395396 {
396397 //Environment variable names
397398 static const char *const s_envvar_names_temp[] =
@@ -427,9 +428,14 @@ void MUtils::init_process(QProcess &process, const QString &wokringDir, const bo
427428
428429 //Setup PATH variable
429430 prependToPath(env, tempDir);
430- if (!extraPath.isEmpty())
431+ if (extraPaths && (!extraPaths->isEmpty()))
431432 {
432- prependToPath(env, QDir::toNativeSeparators(extraPath));
433+ QListIterator<QString> iter(*extraPaths);
434+ iter.toBack();
435+ while (iter.hasPrevious())
436+ {
437+ prependToPath(env, QDir::toNativeSeparators(iter.previous()));
438+ }
433439 }
434440
435441 //Setup QPorcess object
Show on old repository browser