summaryrefslogtreecommitdiff
path: root/midori/midori-websettings.c
diff options
context:
space:
mode:
authorChristian Dywan <christian.dywan@canonical.com>2013-11-04 21:59:15 +0100
committerChristian Dywan <christian.dywan@canonical.com>2013-11-04 21:59:15 +0100
commite97c4e8e605932406af69d289d27e14a77c504f4 (patch)
tree258315551ea2645c3d116ab63a46f3aba8bc0774 /midori/midori-websettings.c
parent955bb7aaf65ca173c1cdc8dbdfe1c4f9f9b28838 (diff)
downloadmidori-e97c4e8e605932406af69d289d27e14a77c504f4.tar.gz
Use GString instead of GArray in sokoke_accept_languages
Diffstat (limited to 'midori/midori-websettings.c')
-rw-r--r--midori/midori-websettings.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/midori/midori-websettings.c b/midori/midori-websettings.c
index e9027d0d..f031bcaa 100644
--- a/midori/midori-websettings.c
+++ b/midori/midori-websettings.c
@@ -870,11 +870,9 @@ sokoke_add_quality_value (const gchar *str,
static gchar *
sokoke_accept_languages (const gchar* const * lang_names)
{
- GArray *langs_garray = NULL;
+ GString* langs = NULL;
char *cur_lang = NULL;
char *prev_lang = NULL;
- char **langs_array;
- char *langs_str;
float delta;
int i, n_lang_names;
@@ -883,7 +881,7 @@ sokoke_accept_languages (const gchar* const * lang_names)
delta = 0.999 / (n_lang_names - 1);
/* Build the array of languages */
- langs_garray = g_array_new (TRUE, FALSE, sizeof (char*));
+ langs = g_string_sized_new (n_lang_names);
for (i = 0; lang_names[i] != NULL; i++)
{
cur_lang = sokoke_posix_lang_to_rfc2616 (lang_names[i]);
@@ -901,21 +899,17 @@ sokoke_accept_languages (const gchar* const * lang_names)
/* Add the quality value and append it */
qv_lang = sokoke_add_quality_value (cur_lang, 1 - i * delta);
- g_array_append_val (langs_garray, qv_lang);
+ if (langs->len > 0)
+ g_string_append_c (langs, ',');
+ g_string_append (langs, qv_lang);
}
}
/* Fallback: add "en" if list is empty */
- if (langs_garray->len == 0)
- {
- gchar* fallback = g_strdup ("en");
- g_array_append_val (langs_garray, fallback);
- }
-
- langs_array = (char **) g_array_free (langs_garray, FALSE);
- langs_str = g_strjoinv (", ", langs_array);
+ if (langs->len == 0)
+ g_string_append (langs, "en");
- return langs_str;
+ return g_string_free (langs, FALSE);
}