ReSpellData

typedef struct ReSpellData_tag {
  ReSpellInit init;
  ReSpellParm parm;

  short rel_graph_in_len;
  short rel_result_in_len;

  const RelGraph *rel_graph_in;
  const RelResult *rel_result_in;
  long  rel_codepage;
  
  KADMOS_ERROR (KADMOS_API *oem_spell_lookup)(const char *word, char *results, int results_size);
  long  oem_codepage;
  char  oem_wordchars[512];
  short oem_reject_char;
  short filler1[3];

  const RelData *rel_repeat;
  const RepData *rep_repeat;
  RepResult     *repr;

  short rel_graph_out_len;
  short rel_result_out_len;
  short result_text_len;
  short filler2;

  RelGraph *rel_graph_out; 
  RelResult *rel_result_out;
  void *result_text;      
  void *filler3; 

} ReSpellData;
      

Elemente:

init
Aktivieren des jeweiligen Wörterbuchs. Dieser Parameter ist vor dem Aufruf von respell_init() zu setzen.
parm
Die Arbeit des Moduls RESPELL kann mit einer Vielzahl von Parametern gesteuert werden. Diese Parameter sind in einer Struktur ReSpellParm zusammengefasst. Eine solche Struktur ist nun Bestandteil der für den Aufruf des Moduls benötigten Datenstruktur ReSpellData und ist voreingestellt durch respell_init().
rel_graph_in_len
Anzahl der Elemente von rel_graph_in.
rel_result_in_len
Anzahl der Elemente von rel_result_in.
*rel_graph_in
An respell_do() übergebener Eingabe-Graph.
*rel_result_in
An respell_do() übergebenes Feld rel_result. Die Kennungen unter rec_char werden in der unter rel_codepage eingetragenen Codepage erwartet.
rel_codepage;
Hier muss für respell_do() die Codepage spezifiziert werden, in welcher die Erkennungs-Resultate in rel_result_in kodiert sind. Üblicherweise ist dies die Codepage reldata.parm.code aus einem vorangegangenen Aufruf von rel_do() oder die Codepage repdata.parm.code aus einem vorangegangenen Aufruf von rep_do(). rel_result_out und result_text werden von respell_do() ebenfalls in dieser Codepage bereitgestellt.
oem_spell_lookup
Private oder von OEM verwendete Wörterbuch-Suchfunktion, Parameter dieser Funktion:
word = Wort für die Suche, results = Speicher f⇈r das Ergebnis, results_size = Länge des Ergebnisses.
oem_codepage
Die für das eigene Wörterbuch verwendete Codepage.
oem_wordchars
alle Zeichen aller Wörter der privaten Rechtschreibprüfung.
oem_reject_char
Das für den eigenen Spellchecker benötigte Rückweisungszeichen.
filler1
8 Byte Alignment.
rel_repeat, rep_repeat
Beinhaltet die jeweilige Datenstruktur von rel_do() bzw. rep_do(). Daher ist nur rel_repeat bei Verwendung von REL oder rep_repeat bei Verwendung von REP zu verwenden. rel_do() bzw. rep_do() ist nach jedem unerkannten Wort aus dem Wörterbuch erneut aufzurufen.
*repr
rep_result enthält einen Pointer auf ein Feld von Strukturen RepResult mit dem Ergebnis von rep_repeat.
rel_graph_out_len
Länge (Knotenanzahl) des von respell_do() zurückgelieferten Resultat-Graphen rel_graph_out.
rel_result_out_len
Die Anzahl der eingetragenen Feldelemente des von respell_do() zurückgelieferten Resultats.
result_text_len
Länge (Zeichenanzahl) des von respell_do() zurückgelieferten Resultat-Textes result_text.
filler2
8 Byte Alignment
rel_graph_out
Sofern an dieser Stelle Speicherplatz bereitgestellt wurde (rel_graph_out!=NULL, rel_graph_out_maxlen>0) wird respell_do() hier den Ergebnis-Graphen eintragen. Die Anzahl der eingetragenen Knoten wird unter rel_graph_out_len zurückgegeben. Die Grösse des bereitgestellten Speicherplatzes sollte mindestens rel_graph_out_len*sizeof(RelGraph) betragen, ansonsten werden nicht alle Resultate verfügbar.
rel_result_out
Sofern an dieser Stelle Speicherplatz bereitgestellt wurde (rel_result_out!=NULL, rel_result_out_maxlen>0) wird respell_do() hier die zu rel_graph_out gehörigen Ergebnisse RelResult eintragen. Die Anzahl der eingetragenen Feldelemente wird unter rel_result_out_len zurückgegeben. Die Grösse des bereitgestellten Speicherplatzes sollte mindestens rel_result_out_len*sizeof(RelResult) betragen, ansonsten werden nicht alle Resultate verfügbar. Für den Eintrag in rel_result_out wird die unter rel_codepage spezifizierte Codepage verwendet.
result_text
Sofern an dieser Stelle Speicherplatz bereitgestellt wurde (result_text!=NULL, result_text_maxlen >0) wird respell_do() hier den Ergebnis-Textstring bereitstellen. Die Grösse des bereitgestellten Speicherplatzes sollte mindestens result_text_len*sizeof([w]char) betragen, ansonsten wird das Ergebnis beschnitten. Für den Eintrag in result_text wird die unter rel_codepage spezifizierte Codepage verwendet. Die oben beschriebenen Parameter reject_level, reject_char und text_format steuern die Generierung von result_text in gleicher Weise wie bei den Funktionen re*_textline().
filler3
8 Byte Alignment.

Verweise: