SOURCES: poldek-both_langs.patch - better implementation
witekfl
witekfl at pld-linux.org
Wed Dec 10 14:07:42 CET 2008
Author: witekfl Date: Wed Dec 10 13:07:42 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- better implementation
---- Files affected:
SOURCES:
poldek-both_langs.patch (1.1 -> 1.2)
---- Diffs:
================================================================
Index: SOURCES/poldek-both_langs.patch
diff -u SOURCES/poldek-both_langs.patch:1.1 SOURCES/poldek-both_langs.patch:1.2
--- SOURCES/poldek-both_langs.patch:1.1 Tue Dec 9 21:59:45 2008
+++ SOURCES/poldek-both_langs.patch Wed Dec 10 14:07:36 2008
@@ -1,59 +1,57 @@
---- poldek-0.30-cvs20080820.23/misc.c.old 2008-12-09 21:38:51.000000000 +0100
-+++ poldek-0.30-cvs20080820.23/misc.c 2008-12-09 21:38:54.000000000 +0100
-@@ -646,6 +646,14 @@ static char *cut_country_code (const cha
+--- poldek-0.30-cvs20080820.23/misc.c.old 2008-12-10 10:49:26.000000000 +0100
++++ poldek-0.30-cvs20080820.23/misc.c 2008-12-10 10:49:56.000000000 +0100
+@@ -646,6 +646,15 @@ static char *cut_country_code (const cha
return newlang;
}
-+
+static inline void n_array_push_check_dup(tn_array *langs, char *value)
+{
-+ if (n_array_bsearch(langs, value) == NULL)
-+ n_array_push(langs, n_strdup(value));
-+
++ int i;
++
++ for (i = 0; i < n_array_size(langs); i++)
++ if (strcmp(n_array_nth(langs, i), value) == 0) return;
++ n_array_push(langs, n_strdup(value));
+}
+
/*
* lang_match_avlangs:
*
-@@ -656,24 +664,36 @@ static char *cut_country_code (const cha
+@@ -656,24 +665,33 @@ static char *cut_country_code (const cha
static inline void lang_match_avlangs(tn_array *avlangs, tn_array *r_langs,
const char *lang, int *has_C)
{
+ char lang_utf8[32];
char *cut = NULL;
-
+-
++
/* first try */
if (n_array_bsearch(avlangs, lang)) {
-- if (strcmp(lang, "C") == 0)
-+ if (strcmp(lang, "C") == 0) {
+ if (strcmp(lang, "C") == 0)
*has_C = 1;
-
- n_array_push(r_langs, n_strdup(lang));
-+ } else {
-+ n_snprintf(lang_utf8, sizeof(lang_utf8), "%s.UTF-8", lang);
-+ if (n_array_bsearch(avlangs, lang_utf8)) {
-+ n_array_push_check_dup(r_langs, lang_utf8);
-+ }
-+ }
++
+ n_array_push_check_dup(r_langs, lang);
}
-
+-
++ n_snprintf(lang_utf8, sizeof(lang_utf8), "%s.UTF-8", lang);
++ if (n_array_bsearch(avlangs, lang_utf8))
++ n_array_push_check_dup(r_langs, lang_utf8);
++
/* second try, without country code */
if ((cut = cut_country_code(lang))) {
if (n_array_bsearch(avlangs, cut)) {
-- if (strcmp(cut, "C") == 0)
-+ if (strcmp(cut, "C") == 0) {
+ if (strcmp(cut, "C") == 0)
*has_C = 1;
-
- n_array_push(r_langs, cut);
-+ } else {
-+ n_snprintf(lang_utf8, sizeof(lang_utf8), "%s.UTF-8", cut);
-+ if (n_array_bsearch(avlangs, lang_utf8)) {
-+ n_array_push_check_dup(r_langs, lang_utf8);
-+ }
-+ }
++
+ n_array_push_check_dup(r_langs, cut);
}
++ n_snprintf(lang_utf8, sizeof(lang_utf8), "%s.UTF-8", cut);
++ if (n_array_bsearch(avlangs, lang_utf8))
++ n_array_push_check_dup(r_langs, lang_utf8);
++
+ free(cut);
}
}
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/poldek-both_langs.patch?r1=1.1&r2=1.2&f=u
More information about the pld-cvs-commit
mailing list