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