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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to