diff options
author | Bastien Nocera <hadess@hadess.net> | 2022-07-28 11:03:05 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2022-07-28 11:03:05 +0200 |
commit | 8f5ea90436f8350b4ffe639050c8641f0bb495df (patch) | |
tree | 674e42986016ca5f84851abe78303ee568f36916 | |
parent | 2c6c39b1ed3d41c252c04b15b159864c0bbcd538 (diff) | |
download | gnome-desktop-8f5ea90436f8350b4ffe639050c8641f0bb495df.tar.gz |
gnome-languages: Re-add codeset normalisation
It was mistakenly removed in 8af09a3 ("gnome-languages: Simplify
XPG language parsing").
-rw-r--r-- | libgnome-desktop/gnome-languages.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libgnome-desktop/gnome-languages.c b/libgnome-desktop/gnome-languages.c index 065b2135..7ae473eb 100644 --- a/libgnome-desktop/gnome-languages.c +++ b/libgnome-desktop/gnome-languages.c @@ -172,6 +172,22 @@ gnome_parse_locale (const char *locale, match_info_fetch_named_non_empty (match_info, "codeset", codesetp); match_info_fetch_named_non_empty (match_info, "modifier", modifierp); + if (codesetp != NULL && *codesetp != NULL) { + g_autofree gchar *normalized_codeset = NULL; + g_autofree gchar *normalized_name = NULL; + + normalized_codeset = normalize_codeset (*codesetp); + normalized_name = construct_language_name (language_codep ? *language_codep : NULL, + country_codep ? *country_codep : NULL, + normalized_codeset, + modifierp ? *modifierp : NULL); + + if (language_name_is_valid (normalized_name)) { + g_free (*codesetp); + *codesetp = g_steal_pointer (&normalized_codeset); + } + } + return ret; } |