From e8360c875d1f34481a314551e12f54bc23b2ed2d Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@qt.io> Date: Tue, 19 Sep 2017 14:08:28 +0200 Subject: [PATCH] Environment: set LANGUAGE variable both with LC_MESSAGES As LANGUAGE takes precedence on LC_MESSAGES variable sometimes If LANG is not set to C now en locale really should be used for messages by gcc. This fixes parsing of gcc header paths and error messages on non- english locales Change-Id: I96db16b555b8ff22b041b6e965558b342ef1a378 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> --- src/libs/utils/environment.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libs/utils/environment.cpp b/src/libs/utils/environment.cpp index fd49115aee0..12958108e41 100644 --- a/src/libs/utils/environment.cpp +++ b/src/libs/utils/environment.cpp @@ -338,20 +338,27 @@ Environment Environment::systemEnvironment() } const char lcMessages[] = "LC_MESSAGES"; +const char language[] = "LANGUAGE"; const char englishLocale[] = "en_US.utf8"; +const char languageEnglishLocales[] = "en_US:en"; void Environment::setupEnglishOutput(Environment *environment) { + QTC_ASSERT(environment, return); environment->set(lcMessages, englishLocale); + environment->set(language, languageEnglishLocales); } void Environment::setupEnglishOutput(QProcessEnvironment *environment) { + QTC_ASSERT(environment, return); environment->insert(lcMessages, englishLocale); + environment->insert(language, languageEnglishLocales); } void Environment::setupEnglishOutput(QStringList *environment) { + QTC_ASSERT(environment, return); Environment env(*environment); setupEnglishOutput(&env); *environment = env.toStringList(); -- GitLab