svn commit: r226562 - user/gabor/tre-integration/usr.bin/grep
Gabor Kovesdan
gabor at FreeBSD.org
Thu Oct 20 09:55:21 UTC 2011
Author: gabor
Date: Thu Oct 20 09:55:21 2011
New Revision: 226562
URL: http://svn.freebsd.org/changeset/base/226562
Log:
- Manual fixes after merge
Modified:
user/gabor/tre-integration/usr.bin/grep/file.c
user/gabor/tre-integration/usr.bin/grep/grep.c
user/gabor/tre-integration/usr.bin/grep/grep.h
user/gabor/tre-integration/usr.bin/grep/util.c
Modified: user/gabor/tre-integration/usr.bin/grep/file.c
==============================================================================
--- user/gabor/tre-integration/usr.bin/grep/file.c Thu Oct 20 09:53:20 2011 (r226561)
+++ user/gabor/tre-integration/usr.bin/grep/file.c Thu Oct 20 09:55:21 2011 (r226562)
@@ -38,7 +38,6 @@ __FBSDID("$FreeBSD$");
#include <sys/stat.h>
#include <sys/types.h>
-#include <bzlib.h>
#include <err.h>
#include <errno.h>
#include <fcntl.h>
@@ -51,14 +50,20 @@ __FBSDID("$FreeBSD$");
#include <wctype.h>
#include <zlib.h>
+#ifndef WITHOUT_BZIP2
+#include <bzlib.h>
+#endif
+
#include "grep.h"
#define MAXBUFSIZ (32 * 1024)
#define LNBUFBUMP 80
static gzFile gzbufdesc;
-static BZFILE* bzbufdesc;
static lzma_stream lstrm = LZMA_STREAM_INIT;
+#ifndef WITHOUT_BZIP2
+static BZFILE* bzbufdesc;
+#endif
static unsigned char *buffer;
static unsigned char *bufpos;
@@ -72,7 +77,6 @@ static inline int
grep_refill(struct file *f)
{
ssize_t nr;
- int bzerr;
if (filebehave == FILE_MMAP)
return (0);
@@ -80,9 +84,12 @@ grep_refill(struct file *f)
bufpos = buffer;
bufrem = 0;
- if (filebehave == FILE_GZIP)
+ if (filebehave == FILE_GZIP) {
nr = gzread(gzbufdesc, buffer, MAXBUFSIZ);
- else if (filebehave == FILE_BZIP && bzbufdesc != NULL) {
+#ifndef WITHOUT_BZIP2
+ } else if (filebehave == FILE_BZIP && bzbufdesc != NULL) {
+ int bzerr;
+
nr = BZ2_bzRead(&bzerr, bzbufdesc, buffer, MAXBUFSIZ);
switch (bzerr) {
case BZ_OK:
@@ -108,6 +115,7 @@ grep_refill(struct file *f)
/* Make sure we exit with an error */
nr = -1;
}
+#endif
} else if ((filebehave == FILE_XZ) || (filebehave == FILE_LZMA)) {
lzma_action action = LZMA_RUN;
uint8_t in_buf[MAXBUFSIZ];
@@ -271,9 +279,11 @@ grep_open(const char *path)
(gzbufdesc = gzdopen(f->fd, "r")) == NULL)
goto error2;
+#ifndef WITHOUT_BZIP2
if (filebehave == FILE_BZIP &&
(bzbufdesc = BZ2_bzdopen(f->fd, "r")) == NULL)
goto error2;
+#endif
/* Fill read buffer, also catches errors early */
if (bufrem == 0 && grep_refill(f) != 0)
Modified: user/gabor/tre-integration/usr.bin/grep/grep.c
==============================================================================
--- user/gabor/tre-integration/usr.bin/grep/grep.c Thu Oct 20 09:53:20 2011 (r226561)
+++ user/gabor/tre-integration/usr.bin/grep/grep.c Thu Oct 20 09:55:21 2011 (r226562)
@@ -147,15 +147,13 @@ bool prev; /* flag whether or not the
int tail; /* lines left to print */
bool notfound; /* file not found */
-extern char *__progname;
-
/*
* Prints usage information and returns 2.
*/
static void
usage(void)
{
- fprintf(stderr, getstr(4), __progname);
+ fprintf(stderr, getstr(4), getprogname());
fprintf(stderr, "%s", getstr(5));
fprintf(stderr, "%s", getstr(5));
fprintf(stderr, "%s", getstr(6));
@@ -329,7 +327,8 @@ int
main(int argc, char *argv[])
{
char **aargv, **eargv, *eopts;
- char *pn, *ep;
+ char *ep;
+ const char *pn;
unsigned long long l;
unsigned int aargc, eargc, i;
int c, lastc, needpattern, newarg, prevoptind;
@@ -343,7 +342,7 @@ main(int argc, char *argv[])
/* Check what is the program name of the binary. In this
way we can have all the funcionalities in one binary
without the need of scripting and using ugly hacks. */
- pn = __progname;
+ pn = getprogname();
if (pn[0] == 'b' && pn[1] == 'z') {
filebehave = FILE_BZIP;
pn += 2;
@@ -505,6 +504,10 @@ main(int argc, char *argv[])
cflags |= REG_ICASE;
break;
case 'J':
+#ifdef WITHOUT_BZIP2
+ errno = EOPNOTSUPP;
+ err(2, "bzip2 support was disabled at compile-time");
+#endif
filebehave = FILE_BZIP;
break;
case 'L':
@@ -565,7 +568,7 @@ main(int argc, char *argv[])
filebehave = FILE_MMAP;
break;
case 'V':
- printf(getstr(9), __progname, VERSION);
+ printf(getstr(9), getprogname(), VERSION);
exit(0);
case 'v':
vflag = true;
@@ -684,7 +687,6 @@ main(int argc, char *argv[])
/* Check if cheating is allowed (always is for fgrep). */
for (i = 0; i < patterns; ++i) {
- /* Fall back to full regex library */
c = regcomp(&r_pattern[i], pattern[i].pat, cflags);
if (c != 0) {
regerror(c, &r_pattern[i], re_error,
Modified: user/gabor/tre-integration/usr.bin/grep/grep.h
==============================================================================
--- user/gabor/tre-integration/usr.bin/grep/grep.h Thu Oct 20 09:53:20 2011 (r226561)
+++ user/gabor/tre-integration/usr.bin/grep/grep.h Thu Oct 20 09:55:21 2011 (r226562)
@@ -120,7 +120,7 @@ extern int binbehave, devbehave, dirbeh
extern bool first, matchall, notfound, prev;
extern int tail;
extern unsigned int dpatterns, fpatterns, patterns;
-extern struct pat *pattern;
+extern struct pat *pattern;
extern struct epat *dpattern, *fpattern;
extern regex_t *er_pattern, *r_pattern;
Modified: user/gabor/tre-integration/usr.bin/grep/util.c
==============================================================================
--- user/gabor/tre-integration/usr.bin/grep/util.c Thu Oct 20 09:53:20 2011 (r226561)
+++ user/gabor/tre-integration/usr.bin/grep/util.c Thu Oct 20 09:55:21 2011 (r226562)
@@ -232,7 +232,7 @@ procfile(const char *fn)
linesqueued++;
}
c += t;
- if (mflag && mcount < 0)
+ if (mflag && mcount <= 0)
break;
}
if (Bflag > 0)
@@ -280,58 +280,21 @@ procline(struct str *l, int nottext)
pmatch.rm_so = st;
pmatch.rm_eo = l->len;
- /* Loop to compare with all the patterns */
- for (i = 0; i < patterns; i++) {
- r = regexec(&r_pattern[i], l->dat, 1,
- &pmatch, eflags);
- r = (r == 0) ? 0 : REG_NOMATCH;
- st = pmatch.rm_eo;
- st = (cflags & REG_NOSUB)
- ? (size_t)l->len
- : (size_t)pmatch.rm_eo;
- if (r == REG_NOMATCH)
- continue;
- /* Check for full match */
- if (r == 0 && xflag)
- if (pmatch.rm_so != 0 ||
- (size_t)pmatch.rm_eo != l->len)
- r = REG_NOMATCH;
- if (r == 0) {
- if (m == 0)
- c++;
- if (m < MAX_LINE_MATCHES)
- matches[m++] = pmatch;
- /* matches - skip further patterns */
- if ((color == NULL && !oflag) ||
- qflag || lflag)
- break;
- }
- /* Loop to compare with all the patterns */
- for (i = 0; i < patterns; i++) {
- r = regexec(&r_pattern[i], l->dat, 1,
- &pmatch, eflags);
- r = (r == 0) ? 0 : REG_NOMATCH;
- st = (cflags & REG_NOSUB)
- ? (size_t)l->len
- : (size_t)pmatch.rm_eo;
- if (r == REG_NOMATCH)
- continue;
- /* Check for full match */
- if (r == 0 && xflag)
- if (pmatch.rm_so != 0 ||
- (size_t)pmatch.rm_eo != l->len)
- r = REG_NOMATCH;
- if (r == 0) {
- if (m == 0)
- c++;
- if (m < MAX_LINE_MATCHES)
- matches[m++] = pmatch;
- /* matches - skip further patterns */
- if ((color == NULL && !oflag) ||
- qflag || lflag)
- break;
- }
- }
+ /* Loop to compare with all the patterns */
+ for (i = 0; i < patterns; i++) {
+ r = regexec(&r_pattern[i], l->dat, 1,
+ &pmatch, eflags);
+ r = (r == 0) ? 0 : REG_NOMATCH;
+ st = (cflags & REG_NOSUB)
+ ? (size_t)l->len
+ : (size_t)pmatch.rm_eo;
+ if (r == REG_NOMATCH)
+ continue;
+ /* Check for full match */
+ if (r == 0 && xflag)
+ if (pmatch.rm_so != 0 ||
+ (size_t)pmatch.rm_eo != l->len)
+ r = REG_NOMATCH;
if (r == 0) {
if (m == 0)
c++;
More information about the svn-src-user
mailing list