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
4 for (i = n_array_size(langs) - 1; i >= 0; i--) {
12 if ((db = pndir_db_dscr_h_get(db_dscr_h, lang)) == NULL)
15 + snprintf(lang_utf8, sizeof(lang_utf8), "%s.UTF-8", lang);
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);
23 + n_buf_init(nbuf, val, vlen);
24 + n_buf_it_init(&it, nbuf);
25 + pkguinf_restore_i18n(pkgu, &it, lang_utf8);
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
38 +#include <langinfo.h>
44 description = n_buf_it_getz(it, &dlen);
46 - inf = pkguinf_i18n_new(pkgu->_na, summary, description);
47 + if (strstr(lang, "UTF-8")) {
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);
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);
62 + inf = pkguinf_i18n_new(pkgu->_na, summary_utf8, description_utf8);
63 + n_free(summary_utf8);
64 + n_free(description_utf8);
66 + inf = pkguinf_i18n_new(pkgu->_na, summary, description);
68 n_hash_insert(pkgu->_ht, lang, inf);
70 pkgu->summary = inf->summary;