Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Oct 2011 09:55:21 +0000 (UTC)
From:      Gabor Kovesdan <gabor@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r226562 - user/gabor/tre-integration/usr.bin/grep
Message-ID:  <201110200955.p9K9tLq3067230@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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++;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201110200955.p9K9tLq3067230>