]> git.pld-linux.org Git - packages/poldek.git/blob - poldek-desc_in_utf8.patch
- R: sed back until somebody wishes to rewrite vf* scripts in shell
[packages/poldek.git] / poldek-desc_in_utf8.patch
1 --- poldek-0.20.1-cvs20070108.22/pkgdir/pndir/description.c.stare       2007-05-29 22:39:55.000000000 +0200
2 +++ poldek-0.20.1-cvs20070108.22/pkgdir/pndir/description.c     2007-05-30 15:11:58.000000000 +0200
3 @@ -166,6 +166,7 @@
4          for (i = n_array_size(langs) - 1; i >= 0; i--) {
5              struct tndb *db;
6              const char *lang;
7 +            char lang_utf8[24];
8              char dkey[512];
9              int  dklen;
10  
11 @@ -176,6 +177,19 @@
12              if ((db = pndir_db_dscr_h_get(db_dscr_h, lang)) == NULL)
13                  continue;
14  
15 +            snprintf(lang_utf8, sizeof(lang_utf8), "%s.UTF-8", lang);
16 +
17 +            dklen = n_snprintf(dkey, sizeof(dkey), "%s%s", key, lang_utf8);
18 +            vlen = tndb_get(db, dkey, dklen, val, sizeof(val));
19 +            DBGF("ld %s: %s (%d)\n", pkg_snprintf_s(pkg), lang_utf8, vlen);
20 +            if (vlen > 0) {
21 +                tn_buf_it it;
22 +                n_buf_clean(nbuf);
23 +                n_buf_init(nbuf, val, vlen);
24 +                n_buf_it_init(&it, nbuf);
25 +                pkguinf_restore_i18n(pkgu, &it, lang_utf8);
26 +            }
27 +    
28              dklen = n_snprintf(dkey, sizeof(dkey), "%s%s", key, lang);
29              vlen = tndb_get(db, dkey, dklen, val, sizeof(val));
30              DBGF("ld %s: %s (%d)\n", pkg_snprintf_s(pkg), lang, vlen);
31 --- poldek-0.20.1-cvs20070108.22/pkgu.c.stare   2007-05-29 21:40:39.000000000 +0200
32 +++ poldek-0.20.1-cvs20070108.22/pkgu.c 2007-05-30 16:37:16.000000000 +0200
33 @@ -15,6 +15,8 @@
34  */
35  
36  #include <ctype.h>
37 +#include <iconv.h>
38 +#include <langinfo.h>
39  #include <stdio.h>
40  #include <stdlib.h>
41  #include <string.h>
42 @@ -576,7 +576,27 @@
43          return 0;
44      description = n_buf_it_getz(it, &dlen);
45  
46 -    inf = pkguinf_i18n_new(pkgu->_na, summary, description);
47 +    if (strstr(lang, "UTF-8")) {
48 +        iconv_t cd;
49 +        size_t u_slen = slen, u_dlen = dlen;
50 +        char *new_s, *new_d;
51 +        char *summary_utf8 = n_malloc(u_slen + 1);
52 +        char *description_utf8 = n_malloc(u_dlen + 1);
53 +
54 +        new_s = summary_utf8;
55 +        new_d = description_utf8;
56 +        cd = iconv_open(nl_langinfo(CODESET), "UTF-8");
57 +        iconv(cd, &summary, &slen, &new_s, &u_slen);
58 +        iconv(cd, &description, &dlen, &new_d, &u_dlen);
59 +        iconv_close(cd);
60 +        *new_s = '\0';
61 +        *new_d = '\0';
62 +        inf = pkguinf_i18n_new(pkgu->_na, summary_utf8, description_utf8);
63 +        n_free(summary_utf8);
64 +        n_free(description_utf8);
65 +    } else {
66 +        inf = pkguinf_i18n_new(pkgu->_na, summary, description);
67 +    }
68      n_hash_insert(pkgu->_ht, lang, inf);
69      
70      pkgu->summary = inf->summary;
This page took 0.028701 seconds and 3 git commands to generate.