[hunspell-fi-devel] tmispell-voikko ja emacs

Harri Pitkänen hatapitk at cc.jyu.fi
Thu Jul 27 10:45:32 EEST 2006


Hei!

On Thursday 27 July 2006 00:00, Ilja Sidoroff wrote:
> Hei,
>
> olen törmännyt pariin ongelmaa tmispell-voikon kanssa. En käytä
> kde:ta, jolla kehittäjät ilmeisesti ohjelmaa ovat testanneet, vaan
> Gnomea (Ubuntu dapper) ja emacsia.
>
> Kun yritän käyttää emacsin (21.4.1) tavutustoimintoa, ispell
                                      ^^^^^^^^^^^^^^^^
Tarkoitat tässä varmaan oikolukua? Tavutusta ispell (tai ainakaan tmispell) ei 
tue.

> (tmispell) prosessi jumiutuu yleensä sen jälkeen, kun ensimmäinen
> tavutusehdotus on esitetty ja alaikkunaan jää teksti "Continuing
> spelling check using finnish dictionary". Kerran taisin saada
> jumituksen alkamaan heti, mutta en ole tuosta aivan täysin varma. Tämä
> tapahtuu etenkin yhdellä tietyllä iso-8859 -tekstillä, jonka olen
> konvertoinut iconv:lla utf-8:ksi, joten kyseessä voi olla joku emacsin
> ispellin käyttöön ja iso-8859/utf-8 -merkistöihin liittyvä
> bugi/ominaisuus. Mutta koska tavallinen ispell "toimii", niin
> ilmeisesti tmispellin toiminta poikkeaa hieman ispellistä.

Itse sain tämän kyllä toimimaan. Hannu on luultavasti oikeassa, kyseessä on 
jokin merkistöjuttu. En ole Emacsin käyttäjä joten tätä testiä varten kopioin 
ja liitin hiukan muutettuna Googlen avulla löytämiäni 
asetustiedostoesimerkkejä, ja homma toimi seuraavalla .emacs -tiedoston 
sisällöllä:

(custom-set-variables
  ;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
  ;; Your init file should contain only one such instance.
 '(case-fold-search t)
 '(current-language-environment "UTF-8")
 '(default-input-method "rfc1345"))
(custom-set-faces
  ;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
  ;; Your init file should contain only one such instance.
 )

(require 'ispell)
    (add-to-list 'ispell-dictionary-alist
                 '("suomi"
                   "[a-zA-Z\304\326\334\344\366\337\374]"
                   "[^a-zA-Z\304\326\334\344\366\337\374]"
                   "[']" t ("-C" "-d" "suomi") "~utf-8" utf-8))
    (defun my-ispell-suomi-dictionary ()
      "Switch to the Suomi dictionary."
      (interactive)
      (ispell-change-dictionary "suomi"))
    (require 'easymenu)
    (easy-menu-add-item  nil '("tools" "spell")
      ["Select Suomi Dict" my-ispell-suomi-dictionary t])

Epäilen, että oleellisinta on pitää rivillä '(current-language-environment... 
ja add-to-list -komennoissa samat koodaukset. Jos tmispell saa virheellisesti 
koodattua dataa, se antaa virheilmoituksen ja tämä voi saada emacsin 
ymmälleen.


> Toinen bugi tmispellissä ilmenee interaktiivisessa moodissa. Sana,
> jota ei tunnistettu ei aina näy oikein, vaan sen lihavoitu versio
> näkyy yhden tai useamman merkin myöhemmin kuin pitäisi (käytössä GNOME
> Terminal 2.14.2 eikä mitään säätöjä), esimerkkitekstissä tämä ilmenee
> ensiksi minulla sanan Gloria toisen ilmentymän kohdalla.

Tämän bugin sain toistetuksi. Varmaankin ongelma UTF-8 -koodatun datan 
käsittelyssä. Tuolla virheellisellä Gloria-rivillä on yksi ä-kirjain rivin 
alkuosassa, jolloin jos ohjelmoija on olettanut, että "merkin paikka rivillä" 
== "merkin etäisyys tavuissa puskurin alusta" niin tulee juuri tuo yhden 
merkin siirtymä eteen päin koska skandimerkit vievät kaksi tavua tilaa 
UTF-8:ssa. Hyvä kun huomasit tämän. Korjaan sen jossain vaiheessa mutta en 
ihan heti, koska en ole vielä lainkaan tutustunut tämän interaktiivisen 
käyttöliittymän lähdekoodiin.

Harri



More information about the devel mailing list