X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=dfa%2Fgrepper.c;h=b9da08106b3160f635139568af5e7a24284dada8;hp=cefb2f6e58f610e2b3345404600876ecb0cbea6d;hb=HEAD;hpb=e27ce02d4d96ac2b8220134c837c53cfef8eba23 diff --git a/dfa/grepper.c b/dfa/grepper.c index cefb2f6..b9da081 100644 --- a/dfa/grepper.c +++ b/dfa/grepper.c @@ -1,37 +1,34 @@ -/* - * Copyright (C) 1994, Index Data I/S - * All rights reserved. - * Sebastian Hammer, Adam Dickmeiss - * - * $Log: grepper.c,v $ - * Revision 1.6 1996-01-08 09:09:20 adam - * Function dfa_parse got 'const' string argument. - * New functions to define char mappings made public. - * - * Revision 1.5 1995/09/04 12:33:26 adam - * Various cleanup. YAZ util used instead. - * - * Revision 1.4 1995/01/24 16:00:21 adam - * Added -ansi to CFLAGS. - * Some changes to the dfa module. - * - * Revision 1.3 1994/10/04 17:46:43 adam - * Function options now returns arg with error option. - * - * Revision 1.2 1994/10/03 17:22:18 adam - * Optimization of grepper. - * - * Revision 1.1 1994/09/27 16:31:18 adam - * First version of grepper: grep with error correction. - * - */ +/* 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 +#endif #include #include #include #include #include -#include +#include +#include #include #include "imalloc.h" @@ -49,7 +46,7 @@ typedef struct { #define INFBUF_SIZE 16384 -#define INLINE +#define INLINE static INLINE void set_bit (MatchContext *mc, MatchWord *m, int ch, int state) { @@ -85,7 +82,7 @@ static MatchContext *mk_MatchContext (struct DFA *dfa, int range) mc->n = (dfa->no_states+WORD_BITS) / WORD_BITS; mc->range = range; mc->Sc = icalloc (sizeof(*mc->Sc) * 256 * mc->n); - + for (i=0; ino_states; i++) { int j; @@ -97,7 +94,7 @@ static MatchContext *mk_MatchContext (struct DFA *dfa, int range) int ch0 = state->trans[j].ch[0]; int ch1 = state->trans[j].ch[1]; assert (ch0 >= 0 && ch1 >= 0); - + for (ch = ch0; ch <= ch1; ch++) set_bit (mc, mc->Sc, ch, i); } @@ -263,7 +260,7 @@ static int go (MatchContext *mc, struct DFA *dfa, FILE *inf) while ((ch = getc (inf)) != EOF) { MatchWord *Rj_t; - + infbuf[inf_ptr] = ch; if (ch == '\n') { @@ -333,13 +330,13 @@ static int grep_file (struct DFA *dfa, const char *fname, int range) inf = fopen (fname, "r"); if (!inf) { - logf (LOG_FATAL|LOG_ERRNO, "cannot open `%s'", fname); + yaz_log (YLOG_FATAL|YLOG_ERRNO, "cannot open `%s'", fname); exit (1); } } else inf = stdin; - + mc = mk_MatchContext (dfa, range); go (mc, dfa, inf); @@ -383,7 +380,7 @@ int main (int argc, char **argv) } else if (ret == 'v') { - log_init (log_mask_str(arg), prog, NULL); + yaz_log_init (yaz_log_mask_str(arg), prog, NULL); } else if (ret == 's') { @@ -405,7 +402,7 @@ int main (int argc, char **argv) } else { - logf (LOG_FATAL, "Unknown option '-%s'", arg); + yaz_log (YLOG_FATAL, "Unknown option '-%s'", arg); exit (1); } } @@ -422,3 +419,12 @@ int main (int argc, char **argv) dfa_delete (&dfa); return 0; } +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +