blob: 093a0382775884832b60d3e0276deeb66b20ef74 [file] [log] [blame]
#include <cstring>
#include <cstdlib>
#include <cstdio>
#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;
}