Store Zebra libs in <prefix>/lib/idzebra<suffix> and modules in
[idzebra-moved-to-github.git] / recctrl / regxread.c
index 3d074a8..c54e12a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: regxread.c,v 1.57 2005-01-16 23:14:57 adam Exp $
+/* $Id: regxread.c,v 1.62 2006-06-13 19:45:14 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -27,7 +27,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include <ctype.h>
 
 #include <yaz/tpath.h>
-#include <zebrautl.h>
+#include <idzebra/util.h>
 #include <dfa.h>
 #include <idzebra/recgrs.h>
 
@@ -469,15 +469,20 @@ static int actionListMk (struct lexSpec *spec, const char *s,
             r = dfa_parse ((*ap)->u.pattern.dfa, &s);
             if (r || *s != '/')
             {
+                int pos = s - s0;
                 xfree (*ap);
                 *ap = NULL;
-                yaz_log (YLOG_WARN, "regular expression error '%.*s'", s-s0, s0);
+                yaz_log(YLOG_WARN, "regular expression error '%.*s'", pos, s0);
                 return -1;
             }
-           if (debug_dfa_tran)
-               printf ("pattern: %.*s\n", s-s0, s0);
-            dfa_mkstate ((*ap)->u.pattern.dfa);
-            s++;
+            else
+            {
+                int pos = s - s0;
+                if (debug_dfa_tran)
+                    printf("pattern: %.*s\n", pos, s0);
+                dfa_mkstate((*ap)->u.pattern.dfa);
+                s++;
+            }
             break;
         case REGX_BEGIN:
             yaz_log (YLOG_WARN, "cannot use BEGIN here");
@@ -1866,11 +1871,12 @@ void *grs_init(Res res, RecType recType)
 }
 
 
-void grs_config(void *clientData, Res res, const char *args)
+ZEBRA_RES grs_config(void *clientData, Res res, const char *args)
 {
     struct lexSpecs *specs = (struct lexSpecs *) clientData;
     if (strlen(args) < sizeof(specs->type))
        strcpy(specs->type, args);
+    return ZEBRA_OK;
 }
 
 data1_node *grs_read_regx (struct grs_read_info *p)
@@ -1920,6 +1926,7 @@ static int retrieve_regx(void *clientData, struct recRetrieveCtrl *ctrl)
 }
 
 static struct recType regx_type = {
+    0,
     "grs.regx",
     grs_init,
     grs_config,
@@ -1986,6 +1993,7 @@ static int retrieve_tcl(void *clientData, struct recRetrieveCtrl *ctrl)
 }
 
 static struct recType tcl_type = {
+    0,
     "grs.tcl",
     grs_init,
     grs_config,
@@ -2010,3 +2018,11 @@ idzebra_filter
 #endif
     0,
 };
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+