From 617165af6b3a317ec40f130ccadff81684171c34 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sat, 18 Mar 2023 21:12:56 -0700 Subject: [PATCH] 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 Reviewed-by: Fabian Kosmale --- src/corelib/io/qprocess.cpp | 19 +------------------ 1 file changed, 1 insertion(+), 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 -# 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(); } /*!