summaryrefslogtreecommitdiffstats
path: root/usr.bin/grep/grep.h
diff options
context:
space:
mode:
authorgabor <gabor@FreeBSD.org>2011-10-05 09:56:43 +0000
committergabor <gabor@FreeBSD.org>2011-10-05 09:56:43 +0000
commit1cb16d98872b7dcec16ad22150c6a1c95e4a0796 (patch)
tree23f8a074a9eca70aa3ae8f97192648beb5aa6572 /usr.bin/grep/grep.h
parent58a76bb04f6febb9b77e88729b156b605c0be242 (diff)
downloadFreeBSD-src-1cb16d98872b7dcec16ad22150c6a1c95e4a0796.zip
FreeBSD-src-1cb16d98872b7dcec16ad22150c6a1c95e4a0796.tar.gz
Update BSD grep to the latest development version. It has some code
backported that was written for the TRE integration project in Google Summer of Code 2011. This is a temporary solution until the whole regex library is not replaced so that BSD grep development can continue and the backported code gets some review and testing. This change only improves scalability slightly, there is no big performance boost yet but several minor bugs have been found and fixed. Approved by: delphij (mentor) Sposored by: Google Summer of Code 2011 MFC after: 1 week
Diffstat (limited to 'usr.bin/grep/grep.h')
-rw-r--r--usr.bin/grep/grep.h37
1 files changed, 16 insertions, 21 deletions
diff --git a/usr.bin/grep/grep.h b/usr.bin/grep/grep.h
index fe15c17..47d4ab9 100644
--- a/usr.bin/grep/grep.h
+++ b/usr.bin/grep/grep.h
@@ -36,6 +36,8 @@
#include <stdio.h>
#include <zlib.h>
+#include "fastmatch.h"
+
#ifdef WITHOUT_NLS
#define getstr(n) errstr[n]
#else
@@ -58,8 +60,11 @@ extern const char *errstr[];
#define BINFILE_TEXT 2
#define FILE_STDIO 0
-#define FILE_GZIP 1
-#define FILE_BZIP 2
+#define FILE_MMAP 1
+#define FILE_GZIP 2
+#define FILE_BZIP 3
+#define FILE_XZ 4
+#define FILE_LZMA 5
#define DIR_READ 0
#define DIR_SKIP 1
@@ -90,22 +95,16 @@ struct str {
int line_no;
};
+struct pat {
+ char *pat;
+ int len;
+};
+
struct epat {
char *pat;
int mode;
};
-typedef struct {
- size_t len;
- unsigned char *pattern;
- int qsBc[UCHAR_MAX + 1];
- /* flags */
- bool bol;
- bool eol;
- bool reversed;
- bool word;
-} fastgrep_t;
-
/* Flags passed to regcomp() and regexec() */
extern int cflags, eflags;
@@ -114,7 +113,8 @@ extern bool Eflag, Fflag, Gflag, Hflag, Lflag,
bflag, cflag, hflag, iflag, lflag, mflag, nflag, oflag,
qflag, sflag, vflag, wflag, xflag;
extern bool dexclude, dinclude, fexclude, finclude, lbflag, nullflag;
-extern unsigned long long Aflag, Bflag, mcount;
+extern unsigned long long Aflag, Bflag;
+extern long long mcount;
extern char *label;
extern const char *color;
extern int binbehave, devbehave, dirbehave, filebehave, grepbehave, linkbehave;
@@ -122,10 +122,10 @@ extern int binbehave, devbehave, dirbehave, filebehave, grepbehave, linkbehave;
extern bool first, matchall, notfound, prev;
extern int tail;
extern unsigned int dpatterns, fpatterns, patterns;
-extern char **pattern;
+extern struct pat *pattern;
extern struct epat *dpattern, *fpattern;
extern regex_t *er_pattern, *r_pattern;
-extern fastgrep_t *fg_pattern;
+extern fastmatch_t *fg_pattern;
/* For regex errors */
#define RE_ERROR_BUF 512
@@ -150,8 +150,3 @@ void clearqueue(void);
void grep_close(struct file *f);
struct file *grep_open(const char *path);
char *grep_fgetln(struct file *f, size_t *len);
-
-/* fastgrep.c */
-int fastcomp(fastgrep_t *, const char *);
-void fgrepcomp(fastgrep_t *, const char *);
-int grep_search(fastgrep_t *, const unsigned char *, size_t, regmatch_t *);
OpenPOWER on IntegriCloud