30 #include <sys/types.h>
51 void error (
const char *format, ...)
54 va_start (argptr, format);
55 fprintf (stderr,
"%s error: ",
prog);
56 (void) vfprintf (stderr, format, argptr);
72 fprintf (stderr,
"%s: %s %s\n",
prog, __DATE__, __TIME__);
100 fprintf (stderr,
"%s: unknown option `-%s'\n",
prog, *argv);
108 #define INF_BUF_SIZE 32768U
124 if ((r = read (
fd, p, b)) == (
unsigned) -1)
134 while ((b -= r) > 0);
135 while (p !=
inf_buf && *--p !=
'\n')
137 while (p !=
inf_buf && *--p !=
'\n')
148 while (p !=
inf_buf && p[-1] !=
'\n')
155 printf (
"%5d:\t%s\n",
line_no, p0);
174 if (c >= t->
ch[0] && c <= t->
ch[1])
179 if ((s = dfaar[t->
to])->rule_no &&
187 if ((
unsigned) *p >= t->
ch[0]
188 && (
unsigned) *p <= t->
ch[1])
206 fprintf (stderr,
"%s: read error\n",
prog);
232 int main (
int argc,
char **argv)
234 const char *pattern = NULL;
242 fprintf (stderr,
"usage: agrep [options] pattern file..\n");
243 fprintf (stderr,
" -v dfa verbose\n");
244 fprintf (stderr,
" -n show lines\n");
245 fprintf (stderr,
" -d debug\n");
246 fprintf (stderr,
" -V show version\n");
249 setbuf (stdout, outbuf);
254 if (**++argv !=
'-' && **argv)
262 fprintf (stderr,
"%s: illegal pattern\n",
prog);
273 fprintf (stderr,
"%s: couldn't open `%s'\n",
prog, *argv);
284 fprintf (stderr,
"usage:\n "
285 " %s [-d] [-v] [-n] [-f] pattern file ..\n",
prog);
static char * prline(char *p)
static int go(int fd, struct DFA_state **dfaar)
int main(int argc, char **argv)
int agrep(struct DFA_state **dfas, int fd)
int agrep_options(int argc, char **argv)
static int inf_flush(int fd)
void error(const char *format,...)
int dfa_parse(struct DFA *, const char **)
void dfa_mkstate(struct DFA *)
void dfa_delete(struct DFA **)
struct DFA * dfa_init(void)
void * imalloc(size_t size)
struct DFA_state ** states