summaryrefslogtreecommitdiff
path: root/src/tools/example.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/example.cxx')
-rw-r--r--src/tools/example.cxx65
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;
+}
+