Work on dict_compact routine.
[idzebra-moved-to-github.git] / dict / dicttest.c
index 181f14a..4199f30 100644 (file)
@@ -1,10 +1,20 @@
 /*
- * Copyright (C) 1994-1995, Index Data I/S 
+ * Copyright (C) 1994-1999, Index Data
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: dicttest.c,v $
- * Revision 1.19  1996-02-02 13:43:50  adam
+ * Revision 1.22  1999-02-02 14:50:19  adam
+ * Updated WIN32 code specific sections. Changed header.
+ *
+ * Revision 1.21  1996/10/29 14:00:03  adam
+ * Page size given by DICT_DEFAULT_PAGESIZE in dict.h.
+ *
+ * Revision 1.20  1996/03/20 09:35:16  adam
+ * Function dict_lookup_grep got extra parameter, init_pos, which marks
+ * from which position in pattern approximate pattern matching should occur.
+ *
+ * Revision 1.19  1996/02/02  13:43:50  adam
  * The public functions simply use char instead of Dict_char to represent
  * search strings. Dict_char is used internally only.
  *
@@ -77,6 +87,7 @@
 #include <ctype.h>
 
 #include <dict.h>
+#include <zebrautl.h>
 
 char *prog;
 static Dict dict;
@@ -97,6 +108,7 @@ int main (int argc, char **argv)
     const char *base = NULL;
     int do_delete = 0;
     int range = -1;
+    int srange = 0;
     int rw = 0;
     int infosize = 4;
     int cache = 10;
@@ -113,11 +125,12 @@ int main (int argc, char **argv)
     if (argc < 2)
     {
         fprintf (stderr, "usage:\n "
-                 " %s [-d] [-r n] [-u] [-g pat] [-s n] [-v n] [-i f] [-w]"
-                 " [-c n] base file\n\n",
+                 " %s [-d] [-r n] [-p n] [-u] [-g pat] [-s n] [-v n] [-i f]"
+                 " [-w] [-c n] base file\n\n",
                  prog);
         fprintf (stderr, "  -d      delete instead of insert\n");
         fprintf (stderr, "  -r n    set regular match range\n");
+        fprintf (stderr, "  -p n    set regular match start range\n");
         fprintf (stderr, "  -u      report if keys change during insert\n");
         fprintf (stderr, "  -g p    try pattern n (see -r)\n");
         fprintf (stderr, "  -s n    set info size to n (instead of 4)\n");
@@ -127,7 +140,7 @@ int main (int argc, char **argv)
         fprintf (stderr, "  -c n    cache size (number of pages)\n");
         exit (1);
     }
-    while ((ret = options ("dr:ug:s:v:i:wc:", argv, argc, &arg)) != -2)
+    while ((ret = options ("dr:p:ug:s:v:i:wc:", argv, argc, &arg)) != -2)
     {
         if (ret == 0)
         {
@@ -151,6 +164,10 @@ int main (int argc, char **argv)
         {
             range = atoi (arg);
         }
+        else if (ret == 'p')
+        {
+            srange = atoi (arg);
+        }
         else if (ret == 'u')
         {
             unique = 1;
@@ -268,7 +285,7 @@ int main (int argc, char **argv)
                     {
                         look_hits = 0;
                         dict_lookup_grep (dict, ipf_ptr, range, NULL,
-                                          &max_pos, grep_handle);
+                                          &max_pos, srange, grep_handle);
                         if (look_hits)
                             no_of_hits++;
                         else
@@ -288,7 +305,7 @@ int main (int argc, char **argv)
             range = 0;
         logf (LOG_LOG, "Grepping '%s'", grep_pattern);
         dict_lookup_grep (dict, grep_pattern, range, NULL, &max_pos,
-                          grep_handle);
+                          srange, grep_handle);
     }
     if (rw)
     {