diff options
author | Christian Dywan <christian.dywan@canonical.com> | 2013-11-04 21:59:15 +0100 |
---|---|---|
committer | Christian Dywan <christian.dywan@canonical.com> | 2013-11-04 21:59:15 +0100 |
commit | e97c4e8e605932406af69d289d27e14a77c504f4 (patch) | |
tree | 258315551ea2645c3d116ab63a46f3aba8bc0774 /midori/midori-websettings.c | |
parent | 955bb7aaf65ca173c1cdc8dbdfe1c4f9f9b28838 (diff) | |
download | midori-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.c | 22 |
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); } |