summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qprocess.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2023-03-18 21:12:56 -0700
committerThiago Macieira <thiago.macieira@intel.com>2023-03-20 23:14:33 -0700
commit617165af6b3a317ec40f130ccadff81684171c34 (patch)
tree237be38cdc5122531bfdf123416bc7296b29163f /src/corelib/io/qprocess.cpp
parent69d3e96e02d4726d79aaf2d82acd30a903aa5a74 (diff)
QProcess: reimplement systemEnvironment() using QProcessEnvironment
[ChangeLog][QtCore][QProcess] Fixed a bug that would cause systemEnvironment() to produce corrupted entries (mojibake) on Windows if the environment contains characters outside of the ANSI character set. Pick-to: 6.2 6.5 Change-Id: Idd5e1bb52be047d7b4fffffd174db6c1024318dd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/corelib/io/qprocess.cpp')
-rw-r--r--src/corelib/io/qprocess.cpp19
1 files changed, 1 insertions, 18 deletions
diff --git a/src/corelib/io/qprocess.cpp b/src/corelib/io/qprocess.cpp
index 16447033ca1..a64f9c9cb53 100644
--- a/src/corelib/io/qprocess.cpp
+++ b/src/corelib/io/qprocess.cpp
@@ -2447,18 +2447,6 @@ bool QProcess::startDetached(const QString &program,
return process.startDetached(pid);
}
-QT_BEGIN_INCLUDE_NAMESPACE
-#if defined(Q_OS_MACOS)
-# include <crt_externs.h>
-# define environ (*_NSGetEnviron())
-#elif defined(QT_PLATFORM_UIKIT)
- Q_CONSTINIT static char *qt_empty_environ[] = { 0 };
-#define environ qt_empty_environ
-#elif !defined(Q_OS_WIN)
- extern char **environ;
-#endif
-QT_END_INCLUDE_NAMESPACE
-
/*!
\since 4.1
@@ -2480,12 +2468,7 @@ QT_END_INCLUDE_NAMESPACE
*/
QStringList QProcess::systemEnvironment()
{
- QStringList tmp;
- char *entry = nullptr;
- int count = 0;
- while ((entry = environ[count++]))
- tmp << QString::fromLocal8Bit(entry);
- return tmp;
+ return QProcessEnvironment::systemEnvironment().toStringList();
}
/*!