]> git.pld-linux.org Git - packages/poldek.git/blame - poldek-desc_in_utf8.patch
This commit was manufactured by cvs2git to create branch 'DEVEL'.
[packages/poldek.git] / poldek-desc_in_utf8.patch
CommitLineData
a7d09531 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.047769 seconds and 4 git commands to generate.