summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2022-07-28 11:03:05 +0200
committerBastien Nocera <hadess@hadess.net>2022-07-28 11:03:05 +0200
commit8f5ea90436f8350b4ffe639050c8641f0bb495df (patch)
tree674e42986016ca5f84851abe78303ee568f36916
parent2c6c39b1ed3d41c252c04b15b159864c0bbcd538 (diff)
downloadgnome-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.c16
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;
}