[voikko] Mozvoikko 1.0.1 Windows bugi
Andris Pavenis
andris.pavenis at iki.fi
Sun Mar 21 22:55:36 EET 2010
21.3.2010 21:09, Andris Pavenis kirjoitti:
> 19.03.2010 19:39, Ville Pohjanheimo kirjoitti:
>> Moi
>>
>> Päivitin pari viikkoa sitten AMOssa jaellun oikoluvun tuohon 10.2.
>> julkaisemaasi 1.0.1 versioon. Kaikki näyttää hyvältä Linuxilla, mutta
>> Windowsilla jokin on vialla, koska kaikki f-kirjaimella alkavat sanat
>> (folio, fuusio) on alleviivattu virheelliseksi (muuten toimii kyllä).
>> Voikon ehdotukset sanalle ovat samanlaisia kuin jo kirjoitettu sana ja
>> "korjauksen" valitseminen poistaa alleviivauksen vain hetkeksi.
>>
>> Olen kokeillut tota vaan Windows Vistassa / Firefox 3.6:ssa.
>>
>> Mitään havaintoa tosta? Tai missä vika voisi olla? Voikossa vai
>> mozvoikossa? Voikostahan tuli uusi versio (2.3.1) 17.2.
>
> Voin vahvistaa että minäkin voin toistaa virheen mutta ainoastaan
> Windowsissa (eikä Linuxissa). Se näyttää olevan libvoikko:n ongelma eikä
> uusi version 2.3.1 korjaa mitään.
>
> Vähän debugointi (käänsin voikkospell lähdekoodeista testaamista varten)
> paljastaa että:
>
> voikko_normalise() kutsuttu voikko_spell_ucs4():istä palauttaa
> 'ffioosio' jos
> argumentti on 'fuusio'.
>
> Todellisuudessa tilanne on vielä huonompaa: 'f' kirjaimen läsnäolo
> sanassa
> riittää, sen ei pitää olla sana alussa.
>
> Myös: kokeilkaa sana 'Chile' ja saatte saman virheen.
>
> Epäilen että siinä on rakenne L"\ujotakin". Se ei näytä toimivan hyvin
> Visual C++
> kanssa. Varmaan kannattaisi käyttää jotakin muutta kuin:
>
> struct Conv_1to2
> {
> uint32_t ch;
> wchar_t ch_subst;
> };
>
Todellinen syy on Unicoden käyttö lähdekoodissa. Jos VC++:ille määrätään
että lähdekoodin koodaus on
Unicode silloin libvoikko ei käänny VC++ 2005 kanssa. Yksinkertaisemmin
on varmaan välttää
Unicode merkkejä libvoikon koodista:
Index: character/charset.cpp
===================================================================
--- character/charset.cpp (revision 3254)
+++ character/charset.cpp (working copy)
@@ -136,8 +136,8 @@
const size_t N_1TO2 = 5; /* Number of entries in this table */
const wchar_t * CONV_1TO2 =
/* Letterlike Symbols --> Latin-1 Supplement / Basic Latin */
- L"\u2103" L"°C" /* U+2103 DEGREE CELSIUS <--> U+00B0 DEGREE SIGN +
U+0043 LATIN CAPITAL LETTER C */
- L"\u2109" L"°F" /* U+2109 DEGREE FAHRENHEIT <--> U+00B0 DEGREE
SIGN + U+0046 LATIN CAPITAL LETTER F */
+ L"\u2103" L"\u00B0" L"C" /* U+2103 DEGREE CELSIUS <--> U+00B0
DEGREE SIGN + U+0043 LATIN CAPITAL LETTER C */
+ L"\u2109" L"\u00B0" L"F" /* U+2109 DEGREE FAHRENHEIT <--> U+00B0
DEGREE SIGN + U+0046 LATIN CAPITAL LETTER F */
/* Alphabetic Presentation Forms --> Basic Latin */
L"\uFB00" L"ff" /* LATIN SMALL LIGATURE FF <--> 2 X LATIN SMALL
LETTER F */
L"\uFB01" L"fi" /* LATIN SMALL LIGATURE FI <--> LATIN SMALL
LETTER F + LATIN SMALL LETTER I */
> Andris
More information about the voikko
mailing list