svn commit: r226109 - user/gabor/grep/trunk

Gabor Kovesdan gabor at FreeBSD.org
Fri Oct 7 14:42:12 UTC 2011


Author: gabor
Date: Fri Oct  7 14:42:11 2011
New Revision: 226109
URL: http://svn.freebsd.org/changeset/base/226109

Log:
  - Add support for WITHOUT_BZIP2
  
  Requested by:	delphij

Modified:
  user/gabor/grep/trunk/Makefile
  user/gabor/grep/trunk/file.c
  user/gabor/grep/trunk/grep.c

Modified: user/gabor/grep/trunk/Makefile
==============================================================================
--- user/gabor/grep/trunk/Makefile	Fri Oct  7 14:30:45 2011	(r226108)
+++ user/gabor/grep/trunk/Makefile	Fri Oct  7 14:42:11 2011	(r226109)
@@ -26,9 +26,6 @@ LINKS=	${BINDIR}/grep ${BINDIR}/egrep \
 	${BINDIR}/grep ${BINDIR}/zgrep \
 	${BINDIR}/grep ${BINDIR}/zegrep \
 	${BINDIR}/grep ${BINDIR}/zfgrep \
-	${BINDIR}/grep ${BINDIR}/bzgrep \
-	${BINDIR}/grep ${BINDIR}/bzegrep \
-	${BINDIR}/grep ${BINDIR}/bzfgrep \
 	${BINDIR}/grep ${BINDIR}/xzgrep \
 	${BINDIR}/grep ${BINDIR}/xzegrep \
 	${BINDIR}/grep ${BINDIR}/xzfgrep \
@@ -41,9 +38,6 @@ MLINKS= grep.1 egrep.1 \
 	grep.1 zgrep.1 \
 	grep.1 zegrep.1 \
 	grep.1 zfgrep.1 \
-	grep.1 bzgrep.1 \
-	grep.1 bzegrep.1 \
-	grep.1 bzfgrep.1 \
 	grep.1 xzgrep.1 \
 	grep.1 xzegrep.1 \
 	grep.1 xzfgrep.1 \
@@ -52,8 +46,22 @@ MLINKS= grep.1 egrep.1 \
 	grep.1 lzfgrep.1
 .endif
 
-LDADD=	-lz -lbz2 -llzma
-DPADD=	${LIBZ} ${LIBBZ2} ${LIBLZMA}
+LDADD=	-lz -llzma
+DPADD=	${LIBZ} ${LIBLZMA}
+
+.if !defined(WITHOUT_BZIP2)
+LDADD+=	-lbz2
+DPADD+=	${LIBBZ2}
+
+LINKS+= ${BINDIR}/grep ${BINDIR}/bzgrep \
+	${BINDIR}/grep ${BINDIR}/bzegrep \
+	${BINDIR}/grep ${BINDIR}/bzfgrep
+MLINKS+= grep.1 bzgrep.1 \
+	 grep.1 bzegrep.1 \
+	 grep.1 bzfgrep.1
+.else
+CFLAGS+= -DWITHOUT_BZIP2
+.endif
 
 .if !defined(WITHOUT_GNU_COMPAT)
 CFLAGS+= -I/usr/include/gnu

Modified: user/gabor/grep/trunk/file.c
==============================================================================
--- user/gabor/grep/trunk/file.c	Fri Oct  7 14:30:45 2011	(r226108)
+++ user/gabor/grep/trunk/file.c	Fri Oct  7 14:42:11 2011	(r226109)
@@ -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/grep/trunk/grep.c
==============================================================================
--- user/gabor/grep/trunk/grep.c	Fri Oct  7 14:30:45 2011	(r226108)
+++ user/gabor/grep/trunk/grep.c	Fri Oct  7 14:42:11 2011	(r226109)
@@ -507,6 +507,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':


More information about the svn-src-user mailing list