
Rechtschreibprüfung mit Hunspell
Zur Rechtschreibprüfung benutzen wir Hunspell, das auch in OpenOffice zum Einsatz kommt. Damit wir die
Datei "libhunspell.dll" in unseren Clarion-Programmen nutzen können, mussten wir jedoch den Sourcecode
der "libhunspell.dll" etwas ändern und ergänzen. Die Dll-Datei exportiert im Original gleichzeitig
Funktionen wie "hunspell_spell" und "Hunspell_spell". In C++ ist das in Ordnung. In Clarion führt
dies jedoch Link-Fehlern, da Clarion nicht case sensitiv ist.
Wir haben daher die kleingeschriebenen Funktionen alle in "libhunspell_..." umbenannt. Wir
hätten auch die großgeschriebenen Funktionen vom Export ausschließen können, damit wäre allerdings
die Dll nicht mehr voll nutzbar gewesen und wäre zu sehr von der Dokumentation abgewichen.
Neben den Änderungen haben wir außerdm noch die Funktion "slo_getsuggest" in die Dll eingebaut.
Die vorhandene Funktion "libhunspell_suggest" erwartet als dritten Parameter einen "char ***slst",
also einen Pointer auf eine Liste von CSTRING's. So etwas geht auch in Clarion, aber es war uns zu
mühselig. "slo_getsuggest" holt die Korrekturvorschläge auf der C++ - Ebene und schreibt die
Liste in einen CSTRING, der als dritter Parameter an "slo_getsuggest" übergeben wird. Der CSTRING muss
in Clarion mit einer Größe von 2021 Bytes initialisiert werden und kann somit maximal 20 Korrekturvorschläge
aufnehmen. Die einzelnen Korrekturvorschläge werden durch "|" getrennt, so dass der CSTRING direkt an ein
Popup-Menü übergeben werden kann.
Die Datei hunspell4clarion.zip enthält die Dateien
"hunspelldll.h" und "hunspelldll.c", die von uns geändert wurden.
Die Datei libhunspell.dll enthält unsere komplette Dll.
Zusammen mit der Datei libhunspell.lib, die wir mit "Libmaker"
erstellt haben, kann jeder Clarion-Programmierer sehr leicht seine Anwendungen mit einer leistungsfähigen
Rechtschreibprüfung ausstatten.
Aus der Datei module_libhunspell_lib.clw kann entnommen
werden, wie wir die "libhunspell.dll" in unsere Programme einbinden.