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