locale-setup: default to C.UTF-8

Most distributions already were shipping a C.UTF-8 locale and even Fedora
now supports the C.UTF-8 locale, and there's clear indication that this
is going upstream too. Hence, let's default to it now too, if nothing
else is set.

Note that this is only a fallback if noting else is set, and since
distros generally configure a default for this behaviour shouldn't
really change in installed systems.

On new systems this makes vconsole.conf redundant.
This commit is contained in:
Lennart Poettering 2018-11-12 13:12:39 +01:00
parent cd45734f87
commit 0db9bd200f

View file

@ -79,16 +79,28 @@ int locale_setup(char ***environment) {
} }
} }
if (!strv_isempty(add)) { if (strv_isempty(add)) {
char **e; /* If no locale is configured then default to C.UTF-8. */
e = strv_env_merge(2, *environment, add); add = strv_new("LANG=C.UTF-8");
if (!e) { if (!add) {
r = -ENOMEM;
goto finish;
}
}
if (strv_isempty(*environment))
strv_free_and_replace(*environment, add);
else {
char **merged;
merged = strv_env_merge(2, *environment, add);
if (!merged) {
r = -ENOMEM; r = -ENOMEM;
goto finish; goto finish;
} }
strv_free_and_replace(*environment, e); strv_free_and_replace(*environment, merged);
} }
r = 0; r = 0;