summaryrefslogtreecommitdiff
path: root/libgnome-desktop
diff options
context:
space:
mode:
authorRui Matos <tiagomatos@gmail.com>2016-02-09 17:38:21 +0100
committerRui Matos <tiagomatos@gmail.com>2016-02-15 17:45:17 +0100
commit389a3761cf70b20be40894ce3dbb2e81b25a1a79 (patch)
tree010cc17a11e79014cb369dd7d2c01a0ec671baca /libgnome-desktop
parent9aab0e241f50cb51babb461671ef4a8a6d7c90f7 (diff)
downloadgnome-desktop-389a3761cf70b20be40894ce3dbb2e81b25a1a79.tar.gz
gnome-languages: Use g_auto* macros where applicable
https://bugzilla.gnome.org/show_bug.cgi?id=761776
Diffstat (limited to 'libgnome-desktop')
-rw-r--r--libgnome-desktop/gnome-languages.c144
1 files changed, 39 insertions, 105 deletions
diff --git a/libgnome-desktop/gnome-languages.c b/libgnome-desktop/gnome-languages.c
index 5ee03f8a..ec23a7a8 100644
--- a/libgnome-desktop/gnome-languages.c
+++ b/libgnome-desktop/gnome-languages.c
@@ -262,11 +262,11 @@ char *
gnome_normalize_locale (const char *locale)
{
char *normalized_name;
- char *language_code;
- char *territory_code;
- char *codeset;
- char *modifier;
gboolean valid;
+ g_autofree char *language_code = NULL;
+ g_autofree char *territory_code = NULL;
+ g_autofree char *codeset = NULL;
+ g_autofree char *modifier = NULL;
if (locale[0] == '\0') {
return NULL;
@@ -282,25 +282,19 @@ gnome_normalize_locale (const char *locale)
normalized_name = construct_language_name (language_code,
territory_code,
codeset, modifier);
- g_free (language_code);
- g_free (territory_code);
- g_free (codeset);
- g_free (modifier);
-
return normalized_name;
}
static gboolean
language_name_is_valid (const char *language_name)
{
- char *old_locale;
gboolean is_valid;
int lc_type_id = LC_MESSAGES;
+ g_autofree char *old_locale = NULL;
old_locale = g_strdup (setlocale (lc_type_id, NULL));
is_valid = setlocale (lc_type_id, language_name) != NULL;
setlocale (lc_type_id, old_locale);
- g_free (old_locale);
return is_valid;
}
@@ -310,15 +304,13 @@ language_name_get_codeset_details (const char *language_name,
char **pcodeset,
gboolean *is_utf8)
{
- char *old_locale;
- char *codeset;
+ g_autofree char *old_locale = NULL;
+ g_autofree char *codeset = NULL;
old_locale = g_strdup (setlocale (LC_CTYPE, NULL));
- if (setlocale (LC_CTYPE, language_name) == NULL) {
- g_free (old_locale);
+ if (setlocale (LC_CTYPE, language_name) == NULL)
return;
- }
codeset = nl_langinfo (CODESET);
@@ -330,11 +322,9 @@ language_name_get_codeset_details (const char *language_name,
codeset = normalize_codeset (codeset);
*is_utf8 = strcmp (codeset, "UTF-8") == 0;
- g_free (codeset);
}
setlocale (LC_CTYPE, old_locale);
- g_free (old_locale);
}
/**
@@ -351,15 +341,14 @@ gboolean
gnome_language_has_translations (const char *code)
{
GDir *dir;
- char *path;
const char *name;
gboolean has_translations;
+ g_autofree char *path = NULL;
path = g_build_filename (GNOMELOCALEDIR, code, "LC_MESSAGES", NULL);
has_translations = FALSE;
dir = g_dir_open (path, 0, NULL);
- g_free (path);
if (dir == NULL) {
goto out;
@@ -389,7 +378,7 @@ add_locale (const char *language_name,
{
GnomeLocale *locale;
GnomeLocale *old_locale;
- char *name;
+ g_autofree char *name = NULL;
gboolean is_utf8 = FALSE;
gboolean valid = FALSE;
@@ -412,17 +401,14 @@ add_locale (const char *language_name,
name = g_strdup_printf ("%s.UTF-8", language_name);
language_name_get_codeset_details (name, NULL, &is_utf8);
- if (!is_utf8) {
- g_free (name);
+ if (!is_utf8)
return FALSE;
- }
} else {
name = g_strdup (language_name);
}
if (!language_name_is_valid (name)) {
g_debug ("Ignoring '%s' as a locale, since it's invalid", name);
- g_free (name);
return FALSE;
}
@@ -432,7 +418,6 @@ add_locale (const char *language_name,
&locale->territory_code,
&locale->codeset,
&locale->modifier);
- g_free (name);
if (!valid) {
gnome_locale_free (locale);
return FALSE;
@@ -485,13 +470,12 @@ select_dirs (const struct dirent *dirent)
#endif
{
struct stat st;
- char *path;
+ g_autofree char *path = NULL;
path = g_build_filename (LIBLOCALEDIR, dirent->d_name, NULL);
if (g_stat (path, &st) == 0) {
mode = st.st_mode;
}
- g_free (path);
}
result = S_ISDIR (mode);
@@ -526,8 +510,9 @@ collect_locales_from_localebin (void)
{
gboolean found_locales = FALSE;
gchar *argv[] = { "locale", "-a", NULL };
- gchar *output;
- gchar **lines, **linep;
+ gchar **linep;
+ g_auto (GStrv) lines = NULL;
+ g_autofree gchar *output = NULL;
if (g_spawn_sync (NULL, argv, NULL,
G_SPAWN_SEARCH_PATH|G_SPAWN_STDERR_TO_DEV_NULL,
@@ -544,11 +529,8 @@ collect_locales_from_localebin (void)
found_locales = TRUE;
linep++;
}
- g_strfreev (lines);
}
- g_free (output);
-
return found_locales;
}
@@ -707,7 +689,7 @@ get_translated_language (const char *code,
name = NULL;
if (language != NULL) {
const char *translated_name;
- char *old_locale = NULL;
+ g_autofree char *old_locale = NULL;
if (locale != NULL) {
old_locale = g_strdup (setlocale (LC_MESSAGES, NULL));
@@ -723,7 +705,6 @@ get_translated_language (const char *code,
if (locale != NULL) {
setlocale (LC_MESSAGES, old_locale);
- g_free (old_locale);
}
}
@@ -760,7 +741,7 @@ get_translated_territory (const char *code,
name = NULL;
if (territory != NULL) {
const char *translated_territory;
- char *old_locale;
+ g_autofree char *old_locale = NULL;
if (locale != NULL) {
old_locale = g_strdup (setlocale (LC_MESSAGES, NULL));
@@ -772,7 +753,6 @@ get_translated_territory (const char *code,
if (locale != NULL) {
setlocale (LC_MESSAGES, old_locale);
- g_free (old_locale);
}
}
@@ -962,11 +942,11 @@ territories_parse_start_tag (GMarkupParseContext *ctx,
static void
languages_variant_init (const char *variant)
{
- GError *error;
gboolean res;
- char *buf;
gsize buf_len;
- char *filename;
+ g_autofree char *buf = NULL;
+ g_autofree char *filename = NULL;
+ g_autoptr (GError) error = NULL;
bindtextdomain (variant, ISO_CODES_LOCALESDIR);
bind_textdomain_codeset (variant, "UTF-8");
@@ -978,7 +958,7 @@ languages_variant_init (const char *variant)
&buf_len,
&error);
if (res) {
- GMarkupParseContext *ctx;
+ g_autoptr (GMarkupParseContext) ctx = NULL;
GMarkupParser parser = { languages_parse_start_tag, NULL, NULL, NULL, NULL };
ctx = g_markup_parse_context_new (&parser, 0, NULL, NULL);
@@ -990,19 +970,12 @@ languages_variant_init (const char *variant)
g_warning ("Failed to parse '%s': %s\n",
filename,
error->message);
- g_error_free (error);
}
-
- g_markup_parse_context_free (ctx);
- g_free (buf);
} else {
g_warning ("Failed to load '%s': %s\n",
filename,
error->message);
- g_error_free (error);
}
-
- g_free (filename);
}
static void
@@ -1020,10 +993,10 @@ languages_init (void)
static void
territories_init (void)
{
- GError *error;
gboolean res;
- char *buf;
gsize buf_len;
+ g_autofree char *buf = NULL;
+ g_autoptr (GError) error = NULL;
if (gnome_territories_map)
return;
@@ -1039,7 +1012,7 @@ territories_init (void)
&buf_len,
&error);
if (res) {
- GMarkupParseContext *ctx;
+ g_autoptr (GMarkupParseContext) ctx = NULL;
GMarkupParser parser = { territories_parse_start_tag, NULL, NULL, NULL, NULL };
ctx = g_markup_parse_context_new (&parser, 0, NULL, NULL);
@@ -1051,16 +1024,11 @@ territories_init (void)
g_warning ("Failed to parse '%s': %s\n",
ISO_CODES_DATADIR "/iso_3166.xml",
error->message);
- g_error_free (error);
}
-
- g_markup_parse_context_free (ctx);
- g_free (buf);
} else {
g_warning ("Failed to load '%s': %s\n",
ISO_CODES_DATADIR "/iso_3166.xml",
error->message);
- g_error_free (error);
}
}
@@ -1082,30 +1050,22 @@ gnome_get_language_from_locale (const char *locale,
const char *translation)
{
GString *full_language;
- char *language_code;
- char *territory_code;
- char *codeset_code;
- char *langinfo_codeset;
- char *translated_language;
- char *translated_territory;
+ g_autofree char *language_code = NULL;
+ g_autofree char *territory_code = NULL;
+ g_autofree char *codeset_code = NULL;
+ g_autofree char *langinfo_codeset = NULL;
+ g_autofree char *translated_language = NULL;
+ g_autofree char *translated_territory = NULL;
gboolean is_utf8 = TRUE;
g_return_val_if_fail (locale != NULL, NULL);
g_return_val_if_fail (*locale != '\0', NULL);
- translated_territory = NULL;
- translated_language = NULL;
- langinfo_codeset = NULL;
-
full_language = g_string_new (NULL);
languages_init ();
territories_init ();
- language_code = NULL;
- territory_code = NULL;
- codeset_code = NULL;
-
gnome_parse_locale (locale,
&language_code,
&territory_code,
@@ -1149,13 +1109,6 @@ gnome_get_language_from_locale (const char *locale,
}
out:
- g_free (language_code);
- g_free (territory_code);
- g_free (codeset_code);
- g_free (langinfo_codeset);
- g_free (translated_language);
- g_free (translated_territory);
-
if (full_language->len == 0) {
g_string_free (full_language, TRUE);
return NULL;
@@ -1182,30 +1135,22 @@ gnome_get_country_from_locale (const char *locale,
const char *translation)
{
GString *full_name;
- char *language_code;
- char *territory_code;
- char *codeset_code;
- char *langinfo_codeset;
- char *translated_language;
- char *translated_territory;
+ g_autofree char *language_code = NULL;
+ g_autofree char *territory_code = NULL;
+ g_autofree char *codeset_code = NULL;
+ g_autofree char *langinfo_codeset = NULL;
+ g_autofree char *translated_language = NULL;
+ g_autofree char *translated_territory = NULL;
gboolean is_utf8 = TRUE;
g_return_val_if_fail (locale != NULL, NULL);
g_return_val_if_fail (*locale != '\0', NULL);
- translated_territory = NULL;
- translated_language = NULL;
- langinfo_codeset = NULL;
-
full_name = g_string_new (NULL);
languages_init ();
territories_init ();
- language_code = NULL;
- territory_code = NULL;
- codeset_code = NULL;
-
gnome_parse_locale (locale,
&language_code,
&territory_code,
@@ -1245,13 +1190,6 @@ gnome_get_country_from_locale (const char *locale,
}
out:
- g_free (language_code);
- g_free (territory_code);
- g_free (codeset_code);
- g_free (langinfo_codeset);
- g_free (translated_language);
- g_free (translated_territory);
-
if (full_name->len == 0) {
g_string_free (full_name, TRUE);
return NULL;
@@ -1366,8 +1304,9 @@ gnome_get_input_source_from_locale (const char *locale,
{
static GHashTable *table = NULL;
DefaultInputSource *dis;
- gchar *l_code, *c_code;
- gchar *key;
+ g_autofree gchar *l_code = NULL;
+ g_autofree gchar *c_code = NULL;
+ g_autofree gchar *key = NULL;
gint i;
g_return_val_if_fail (locale != NULL, FALSE);
@@ -1392,10 +1331,5 @@ gnome_get_input_source_from_locale (const char *locale,
*type = dis->type;
*id = dis->id;
}
-
- g_free (l_code);
- g_free (c_code);
- g_free (key);
-
return dis != NULL;
}