#include #include #include #include "hunspell.hxx" extern char * mystrdup(const char * s); using namespace std; int main(int argc, char** argv) { FILE* wtclst; /* first parse the command line options */ if (argc < 4) { fprintf(stderr,"example (now it works with more dictionary files):\n"); fprintf(stderr,"example affix_file dictionary_file(s) file_of_words_to_check\n"); exit(1); } /* open the words to check list */ wtclst = fopen(argv[argc - 1],"r"); if (!wtclst) { fprintf(stderr,"Error - could not open file of words to check\n"); exit(1); } int k; int dp; char buf[101]; Hunspell * pMS= new Hunspell(argv[1], argv[2]); // load extra dictionaries if (argc > 4) for (k = 3; k < argc - 1; k++) pMS->add_dic(argv[k]); while(fgets(buf, 100, wtclst)) { k = strlen(buf); *(buf + k - 1) = '\0'; dp = pMS->spell(buf); if (dp) { fprintf(stdout,"\"%s\" is okay\n",buf); fprintf(stdout,"\n"); } else { fprintf(stdout,"\"%s\" is incorrect!\n",buf); fprintf(stdout," suggestions:\n"); char ** wlst; int ns = pMS->suggest(&wlst,buf); for (int i=0; i < ns; i++) { fprintf(stdout," ...\"%s\"\n",wlst[i]); } pMS->free_list(&wlst, ns); fprintf(stdout,"\n"); } } delete pMS; fclose(wtclst); return 0; }