Specify a locale if none is set

Sometimes users had not properly configured their system locale and thus
qbt will specify a default locale just in case.

Closes #16127.
Closes #19609.
Closes #19834.
PR #20203.
This commit is contained in:
Chocobo1 2024-01-02 16:49:40 +08:00 committed by Vladimir Golovnev (glassez)
parent a56b3edc58
commit 77d907c2aa
No known key found for this signature in database
GPG key ID: 52A2C7DEE2DFA6F7

View file

@ -94,6 +94,7 @@ void showSplashScreen();
#ifdef Q_OS_UNIX #ifdef Q_OS_UNIX
void adjustFileDescriptorLimit(); void adjustFileDescriptorLimit();
void adjustLocale();
#endif #endif
// Main // Main
@ -104,6 +105,7 @@ int main(int argc, char *argv[])
#endif #endif
#ifdef Q_OS_UNIX #ifdef Q_OS_UNIX
adjustLocale();
adjustFileDescriptorLimit(); adjustFileDescriptorLimit();
#endif #endif
@ -392,4 +394,12 @@ void adjustFileDescriptorLimit()
limit.rlim_cur = limit.rlim_max; limit.rlim_cur = limit.rlim_max;
setrlimit(RLIMIT_NOFILE, &limit); setrlimit(RLIMIT_NOFILE, &limit);
} }
void adjustLocale()
{
// specify the default locale just in case if user has not set any other locale
// only `C` locale is available universally without installing locale packages
if (qEnvironmentVariableIsEmpty("LANG"))
qputenv("LANG", "C.UTF-8");
}
#endif #endif