mirror of https://github.com/mpv-player/mpv
language-posix: as a fallback, treat "C" as "en"
If we see "C" in one of the language vars we check, don't treat it as a language tag. Once we've checked everything, if we don't have any languages, but saw "C" anywhere, fall back on "en".
This commit is contained in:
parent
4939570e17
commit
4ac5e6c810
|
@ -33,6 +33,7 @@ char **mp_get_user_langs(void)
|
||||||
|
|
||||||
size_t nb = 0;
|
size_t nb = 0;
|
||||||
char **ret = NULL;
|
char **ret = NULL;
|
||||||
|
bool has_c = false;
|
||||||
|
|
||||||
// Prefer anything we get from LANGUAGE first
|
// Prefer anything we get from LANGUAGE first
|
||||||
for (const char *langList = getenv("LANGUAGE"); langList && *langList;) {
|
for (const char *langList = getenv("LANGUAGE"); langList && *langList;) {
|
||||||
|
@ -49,11 +50,21 @@ char **mp_get_user_langs(void)
|
||||||
const char *envval = getenv(list[i]);
|
const char *envval = getenv(list[i]);
|
||||||
if (envval && *envval) {
|
if (envval && *envval) {
|
||||||
size_t len = strcspn(envval, ".@");
|
size_t len = strcspn(envval, ".@");
|
||||||
|
if (!strncmp("C", envval, len)) {
|
||||||
|
has_c = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
MP_TARRAY_GROW(NULL, ret, nb);
|
MP_TARRAY_GROW(NULL, ret, nb);
|
||||||
ret[nb++] = talloc_strndup(ret, envval, len);
|
ret[nb++] = talloc_strndup(ret, envval, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (has_c && !nb) {
|
||||||
|
MP_TARRAY_GROW(NULL, ret, nb);
|
||||||
|
ret[nb++] = talloc_strdup(ret, "en");
|
||||||
|
}
|
||||||
|
|
||||||
// Null-terminate the list
|
// Null-terminate the list
|
||||||
MP_TARRAY_APPEND(NULL, ret, nb, NULL);
|
MP_TARRAY_APPEND(NULL, ret, nb, NULL);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue