* Sebastian Hammer, Adam Dickmeiss
*
* $Log: agrep.c,v $
- * Revision 1.6 1995-09-28 09:18:51 adam
+ * Revision 1.10 1997-09-09 13:37:57 adam
+ * Partial port to WIN95/NT.
+ *
+ * Revision 1.9 1996/10/29 13:57:18 adam
+ * Include of zebrautl.h instead of alexutil.h.
+ *
+ * Revision 1.8 1996/01/08 09:09:16 adam
+ * Function dfa_parse got 'const' string argument.
+ * New functions to define char mappings made public.
+ *
+ * Revision 1.7 1995/10/16 09:31:24 adam
+ * Bug fix.
+ *
+ * Revision 1.6 1995/09/28 09:18:51 adam
* Removed various preprocessor defines.
*
* Revision 1.5 1995/09/04 12:33:25 adam
#include <sys/types.h>
#include <sys/stat.h>
-#include <fcntl.h>
+#include <fcntl.h>\r
+#ifdef WINDOWS\r
+#include <io.h>\r
+#else
#include <unistd.h>
+#endif
-
-#include <alexutil.h>
+#include <zebrautl.h>
#include <dfa.h>
#include "imalloc.h"
char *p;
int i;
unsigned char c;
+ int start_line = 1;
while (1)
{
p = inf_ptr;
do
{
- if ((s = dfaar[t->to])->rule_no)
+ if ((s = dfaar[t->to])->rule_no &&
+ (start_line || s->rule_nno))
{
inf_ptr = prline (inf_ptr);
c = '\n';
}
if (c == '\n')
{
+ start_line = 1;
++line_no;
if (inf_ptr == inf_flsh)
{
}
}
}
+ else
+ start_line = 0;
}
return 0;
}
int argc;
char **argv;
{
- char *pattern = NULL;
+ const char *pattern = NULL;
char outbuf[BUFSIZ];
int fd, i, no = 0;
struct DFA *dfa = dfa_init();
prog = *argv;
+ if (argc < 2)
+ {
+ fprintf (stderr, "usage: agrep [options] pattern file..\n");
+ fprintf (stderr, " -v dfa verbose\n");
+ fprintf (stderr, " -n show lines\n");
+ fprintf (stderr, " -d debug\n");
+ fprintf (stderr, " -V show version\n");
+ exit (1);
+ }
setbuf (stdout, outbuf);
i = agrep_options (argc, argv);
if (i)
}
if (!no)
{
- fprintf (stderr, "%s: no files specified\n", prog);
+ fprintf (stderr, "usage:\n "
+ " %s [-d] [-v] [-n] [-f] pattern file ..\n", prog);
return 2;
}
fflush(stdout);