X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=dfa%2Fgrepper.c;h=b9da08106b3160f635139568af5e7a24284dada8;hp=897e19f7904f617571ed593c814892e3f028790e;hb=dcda88860b03641b6900d43135ca769f005105e8;hpb=a66b7d79383ae700f3358731eecfe2aafed0e90d diff --git a/dfa/grepper.c b/dfa/grepper.c index 897e19f..b9da081 100644 --- a/dfa/grepper.c +++ b/dfa/grepper.c @@ -1,5 +1,5 @@ /* This file is part of the Zebra server. - Copyright (C) 1994-2010 Index Data + 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 @@ -18,6 +18,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#if HAVE_CONFIG_H +#include +#endif #include #include #include @@ -43,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) { @@ -79,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; @@ -91,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); } @@ -257,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,7 +336,7 @@ static int grep_file (struct DFA *dfa, const char *fname, int range) } else inf = stdin; - + mc = mk_MatchContext (dfa, range); go (mc, dfa, inf);