Re: [hunspell-fi-devel] Yhdyssanat ja CVS:n käyttöönotto

Reijo Tomperi reijo.tomperi at pp2.inet.fi
Fri Jan 27 01:13:11 EET 2006


Harri Pitkänen wrote:
> Ongelma on 
> siinä, että jos yhdyssanojen tunnistuksen ottaa käyttöön ja sitten kutsuu 
> Hunspellin morph-funktiota sellaisella yhdyssanalla, jonka jälkiosa on 
> taivutettu, Hunspell kaatuu. 
Kaatumiset on perinteisesti helppoja korjata ilman mitään ymmärrystä 
projektista. Korjaaminen onnistuu muokkaamalla affixmgr.cxx tiedostoa. 
Sieltä etsii kaksi paikkaa joissa on rivi:
line_uniq(m);

Ja muuttaa rivit:
                          line_uniq(m);
                          if (strchr(m, '\n')) {
                                strcat(*result, "(");
                                strcat(*result, line_join(m, '|'));
                                strcat(*result, ")");
                          } else {
                                strcat(*result, m);
                          }
                          free(m);

Tähän muotoon:
                      if( m )
                      {
                          line_uniq(m);
                          if (strchr(m, '\n')) {
                                strcat(*result, "(");
                                strcat(*result, line_join(m, '|'));
                                strcat(*result, ")");
                          } else {
                                strcat(*result, m);
                          }
                          free(m);
                      }

Eli periaatteessa tarkistaa vain että onko m NULL ennenkuin käyttää 
sitä.Mutta en todellakaan tiedä pitäisikö resultille tehdä jotain siinä 
tapauksessa jos m on NULL. Enkä tiedä sitäkään saisiko m olla tuossa 
paikassa NULL vai onko virhe tapahtunut jo aikaisemmin. Mutta ainakaan 
se ei kaadu (tuohon) jos nuo korjaukset tekee. En raportoinut tästä 
hunspell-projektille. Jos joku pitää tuota hyvänä korjauksena, siitä voi 
minun puolestani kertoa kenelle haluaa.



More information about the devel mailing list