]> git.pld-linux.org Git - packages/poldek.git/commitdiff
- show UTF-8 descriptions
authorwitekfl <witekfl@pld-linux.org>
Thu, 31 May 2007 16:08:46 +0000 (16:08 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    poldek-desc_in_utf8.patch -> 1.1

poldek-desc_in_utf8.patch [new file with mode: 0644]

diff --git a/poldek-desc_in_utf8.patch b/poldek-desc_in_utf8.patch
new file mode 100644 (file)
index 0000000..6390132
--- /dev/null
@@ -0,0 +1,70 @@
+--- poldek-0.20.1-cvs20070108.22/pkgdir/pndir/description.c.stare      2007-05-29 22:39:55.000000000 +0200
++++ poldek-0.20.1-cvs20070108.22/pkgdir/pndir/description.c    2007-05-30 15:11:58.000000000 +0200
+@@ -166,6 +166,7 @@
+         for (i = n_array_size(langs) - 1; i >= 0; i--) {
+             struct tndb *db;
+             const char *lang;
++            char lang_utf8[24];
+             char dkey[512];
+             int  dklen;
+@@ -176,6 +177,19 @@
+             if ((db = pndir_db_dscr_h_get(db_dscr_h, lang)) == NULL)
+                 continue;
++            snprintf(lang_utf8, sizeof(lang_utf8), "%s.UTF-8", lang);
++
++            dklen = n_snprintf(dkey, sizeof(dkey), "%s%s", key, lang_utf8);
++            vlen = tndb_get(db, dkey, dklen, val, sizeof(val));
++            DBGF("ld %s: %s (%d)\n", pkg_snprintf_s(pkg), lang_utf8, vlen);
++            if (vlen > 0) {
++                tn_buf_it it;
++                n_buf_clean(nbuf);
++                n_buf_init(nbuf, val, vlen);
++                n_buf_it_init(&it, nbuf);
++                pkguinf_restore_i18n(pkgu, &it, lang_utf8);
++            }
++    
+             dklen = n_snprintf(dkey, sizeof(dkey), "%s%s", key, lang);
+             vlen = tndb_get(db, dkey, dklen, val, sizeof(val));
+             DBGF("ld %s: %s (%d)\n", pkg_snprintf_s(pkg), lang, vlen);
+--- poldek-0.20.1-cvs20070108.22/pkgu.c.stare  2007-05-29 21:40:39.000000000 +0200
++++ poldek-0.20.1-cvs20070108.22/pkgu.c        2007-05-30 16:37:16.000000000 +0200
+@@ -15,6 +15,8 @@
+ */
+ #include <ctype.h>
++#include <iconv.h>
++#include <langinfo.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -576,7 +576,27 @@
+         return 0;
+     description = n_buf_it_getz(it, &dlen);
+-    inf = pkguinf_i18n_new(pkgu->_na, summary, description);
++    if (strstr(lang, "UTF-8")) {
++        iconv_t cd;
++        size_t u_slen = slen, u_dlen = dlen;
++        char *new_s, *new_d;
++        char *summary_utf8 = n_malloc(u_slen + 1);
++        char *description_utf8 = n_malloc(u_dlen + 1);
++
++        new_s = summary_utf8;
++        new_d = description_utf8;
++        cd = iconv_open(nl_langinfo(CODESET), "UTF-8");
++        iconv(cd, &summary, &slen, &new_s, &u_slen);
++        iconv(cd, &description, &dlen, &new_d, &u_dlen);
++        iconv_close(cd);
++        *new_s = '\0';
++        *new_d = '\0';
++        inf = pkguinf_i18n_new(pkgu->_na, summary_utf8, description_utf8);
++        n_free(summary_utf8);
++        n_free(description_utf8);
++    } else {
++        inf = pkguinf_i18n_new(pkgu->_na, summary, description);
++    }
+     n_hash_insert(pkgu->_ht, lang, inf);
+     
+     pkgu->summary = inf->summary;
This page took 0.034546 seconds and 4 git commands to generate.