mc.spec z HEAD
Arkadiusz Miskiewicz
arekm w pld-linux.org
Sob, 15 Paź 2005, 16:17:39 CEST
On Saturday 01 of October 2005 17:09, Robert 'dzeus' Graużenis wrote:
> 1. Wsparcie dla utf8 psuje kodowanie iso-8859-2 przy locale pl_PL:
>
> F3 na grip.spec i:
> %description -l
> pl Grip jest odtwarzaczem kompaktów. Mo|e by^G u|ywany jako front-end
> do programów [ci^Egaj^Ecych [cie|ki CD oraz kompresuj^Ecych pliki
> dzwi^Ykowe do formatu MP3. Umo|liwia [ci^Eganie tak caBych jak i wybranych
> cz^Y[ci utworu. Program ten wspiera protokóB CDDB w celu
> [ci^Egania/wysyBania danych o kompakcie z/do umo|liwiaj^Ecego tego typu
> operacje serwera.
>
> przebudowany z --without utf8, kodowanie poprawne.
Problem jest w src/view.c w fragmencie - całe przekodowywanie do wide char
jest ok dla znaków ascii, a dla pozosałych jest kaplica.
#ifndef UTF8
if (view->viewer_nroff_flag && c == '\b') {
#else /* UTF8 */
mblen = 1;
mbbuf[0] = convert_to_display_c(c);
mbbuf[1] = 0;
while (mblen < MB_LEN_MAX) {
int res;
memset (&mbs, 0, sizeof (mbs));
res = mbrtowc (&wc, mbbuf, mblen, &mbs);
if (res <= 0 && res != -2) {
wc = '.';
mblen = 1;
break;
}
if (res == mblen)
break;
mbbuf[mblen] = convert_to_display_c (get_byte (view, from
+ mblen));
mblen++;
}
printw("%s\n", wc);
if (mblen == MB_LEN_MAX) {
wc = '.';
mblen = 1;
}
from += mblen - 1;
if (view->viewer_nroff_flag && wc == '\b') {
#endif /* UTF8 */
gdzie potem chcą to wyświetlać:
if (!iswprint (wc))
wc = '.';
view_add_character (view, wc);
{
int cw = wcwidth(wc);
if (cw > 1)
col+= cw - 1;
}
--
Arkadiusz Miśkiewicz PLD/Linux Team
http://www.t17.ds.pwr.wroc.pl/~misiek/ http://ftp.pld-linux.org/
Więcej informacji o liście dyskusyjnej pld-devel-pl