diff options
Diffstat (limited to 'src/tools/example.cxx')
-rw-r--r-- | src/tools/example.cxx | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/tools/example.cxx b/src/tools/example.cxx new file mode 100644 index 0000000..093a038 --- /dev/null +++ b/src/tools/example.cxx @@ -0,0 +1,65 @@ +#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; +} + |