Version 2.0.59
[idzebra-moved-to-github.git] / dfa / readfile.c
index d28bbd2..4e266bc 100644 (file)
@@ -1,28 +1,26 @@
-/*
- * Copyright (C) 1994, Index Data I/S 
- * All rights reserved.
- * Sebastian Hammer, Adam Dickmeiss
- *
- * $Log: readfile.c,v $
- * Revision 1.5  1995-09-04 12:33:27  adam
- * Various cleanup. YAZ util used instead.
- *
- * Revision 1.4  1995/01/25  11:30:51  adam
- * Simple error reporting when parsing regular expressions.
- * Memory usage reduced.
- *
- * Revision 1.3  1995/01/24  16:00:22  adam
- * Added -ansi to CFLAGS.
- * Some changes to the dfa module.
- *
- * Revision 1.2  1994/09/26  16:30:57  adam
- * Minor changes. imalloc uses xmalloc now.
- *
- * Revision 1.1  1994/09/26  10:16:56  adam
- * First version of dfa module in alex. This version uses yacc to parse
- * regular expressions. This should be hand-made instead.
- *
- */
+/* This file is part of the Zebra server.
+   Copyright (C) Index Data
+
+Zebra is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+*/
+
+
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
 #include <stdio.h>
 #include <assert.h>
 
@@ -30,7 +28,7 @@
 #include <string.h>
 #include <ctype.h>
 
-#include <alexutil.h>
+#include <idzebra/util.h>
 #include <dfa.h>
 #include "lexer.h"
 
@@ -88,6 +86,7 @@ static void read_defs (void)
 static void read_rules (struct DFA *dfa)
 {
     char *s;
+    const char *sc;
     int i;
     int no = 0;
 
@@ -102,11 +101,12 @@ static void read_rules (struct DFA *dfa)
             /* copy rest of line to output */
             fputs (s, outf);
         else
-        { 
+        {
             /* preprocess regular expression */
-            prep (&s);                   
+            prep (&s);
             /* now parse regular expression */
-            i = dfa_parse (dfa, &s);
+            sc = s;
+            i = dfa_parse (dfa, &sc);
             if (i)
             {
                 fprintf (stderr, "%s #%d: regular expression syntax error\n",
@@ -121,9 +121,9 @@ static void read_rules (struct DFA *dfa)
                 no++;
                 fprintf (outf, "\tcase %d:\n#line %d\n\t\t", no, line_no);
             }
-            while (*s == '\t' || *s == ' ')
-                s++;
-            fputs (s, outf);
+            while (*sc == '\t' || *sc == ' ')
+                sc++;
+            fputs (sc, outf);
         }
     }
     fputs ("\tYY_BREAK\n\t}\n}\n", outf);
@@ -164,3 +164,12 @@ int read_file (const char *s, struct DFA *dfa)
     fclose (inf);
     return err_no;
 }
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+