Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148643926
D15197.id41851.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
11 KB
Referenced Files
None
Subscribers
None
D15197.id41851.diff
View Options
Index: usr.bin/grep/Makefile
===================================================================
--- usr.bin/grep/Makefile
+++ usr.bin/grep/Makefile
@@ -69,20 +69,6 @@
grep.1 rgrep.1
.endif
-LIBADD= z
-
-.if ${MK_LZMA_SUPPORT} != "no"
-LIBADD+= lzma
-.else
-CFLAGS+= -DWITHOUT_LZMA
-.endif
-
-.if ${MK_BZIP2_SUPPORT} != "no"
-LIBADD+= bz2
-.else
-CFLAGS+= -DWITHOUT_BZIP2
-.endif
-
.if ${MK_GNU_GREP_COMPAT} != "no"
CFLAGS+= -I${SYSROOT:U${DESTDIR}}/usr/include/gnu -DWITH_GNU
LIBADD+= gnuregex
Index: usr.bin/grep/file.c
===================================================================
--- usr.bin/grep/file.c
+++ usr.bin/grep/file.c
@@ -51,29 +51,11 @@
#include <wctype.h>
#include <zlib.h>
-#ifndef WITHOUT_LZMA
-#include <lzma.h>
-#endif
-
-#ifndef WITHOUT_BZIP2
-#include <bzlib.h>
-#endif
-
#include "grep.h"
#define MAXBUFSIZ (32 * 1024)
#define LNBUFBUMP 80
-static gzFile gzbufdesc;
-#ifndef WITHOUT_LZMA
-static lzma_stream lstrm = LZMA_STREAM_INIT;
-static lzma_action laction;
-static uint8_t lin_buf[MAXBUFSIZ];
-#endif
-#ifndef WITHOUT_BZIP2
-static BZFILE* bzbufdesc;
-#endif
-
static unsigned char *buffer;
static unsigned char *bufpos;
static size_t bufrem;
@@ -86,9 +68,6 @@
grep_refill(struct file *f)
{
ssize_t nr;
-#ifndef WITHOUT_LZMA
- lzma_ret lzmaret;
-#endif
if (filebehave == FILE_MMAP)
return (0);
@@ -96,84 +75,7 @@
bufpos = buffer;
bufrem = 0;
- switch (filebehave) {
- case FILE_GZIP:
- nr = gzread(gzbufdesc, buffer, MAXBUFSIZ);
- break;
-#ifndef WITHOUT_BZIP2
- case FILE_BZIP:
- if (bzbufdesc != NULL) {
- int bzerr;
-
- nr = BZ2_bzRead(&bzerr, bzbufdesc, buffer, MAXBUFSIZ);
- switch (bzerr) {
- case BZ_OK:
- case BZ_STREAM_END:
- /* No problem, nr will be okay */
- break;
- case BZ_DATA_ERROR_MAGIC:
- /*
- * As opposed to gzread(), which simply returns the
- * plain file data, if it is not in the correct
- * compressed format, BZ2_bzRead() instead aborts.
- *
- * So, just restart at the beginning of the file again,
- * and use plain reads from now on.
- */
- BZ2_bzReadClose(&bzerr, bzbufdesc);
- bzbufdesc = NULL;
- if (lseek(f->fd, 0, SEEK_SET) == -1)
- return (-1);
- nr = read(f->fd, buffer, MAXBUFSIZ);
- break;
- default:
- /* Make sure we exit with an error */
- nr = -1;
- }
- } else
- /*
- * Also an error case; we should never have a scenario
- * where we have an open file but no bzip descriptor
- * at this point. See: grep_open
- */
- nr = -1;
- break;
-#endif
-#ifndef WITHOUT_LZMA
- case FILE_XZ:
- case FILE_LZMA:
- lstrm.next_out = buffer;
-
- do {
- if (lstrm.avail_in == 0) {
- lstrm.next_in = lin_buf;
- nr = read(f->fd, lin_buf, MAXBUFSIZ);
-
- if (nr < 0)
- return (-1);
- else if (nr == 0)
- laction = LZMA_FINISH;
-
- lstrm.avail_in = nr;
- }
-
- lzmaret = lzma_code(&lstrm, laction);
-
- if (lzmaret != LZMA_OK && lzmaret != LZMA_STREAM_END)
- return (-1);
-
- if (lstrm.avail_out == 0 || lzmaret == LZMA_STREAM_END) {
- bufrem = MAXBUFSIZ - lstrm.avail_out;
- lstrm.next_out = buffer;
- lstrm.avail_out = MAXBUFSIZ;
- }
- } while (bufrem == 0 && lzmaret != LZMA_STREAM_END);
-
- return (0);
-#endif /* WITHOUT_LZMA */
- default:
- nr = read(f->fd, buffer, MAXBUFSIZ);
- }
+ nr = read(f->fd, buffer, MAXBUFSIZ);
if (nr < 0)
return (-1);
@@ -269,9 +171,6 @@
grep_open(const char *path)
{
struct file *f;
-#ifndef WITHOUT_LZMA
- lzma_ret lzmaret;
-#endif
f = grep_malloc(sizeof *f);
memset(f, 0, sizeof *f);
@@ -308,37 +207,6 @@
if ((buffer == NULL) || (buffer == MAP_FAILED))
buffer = grep_malloc(MAXBUFSIZ);
-
- switch (filebehave) {
- case FILE_GZIP:
- if ((gzbufdesc = gzdopen(f->fd, "r")) == NULL)
- goto error2;
- break;
-#ifndef WITHOUT_BZIP2
- case FILE_BZIP:
- if ((bzbufdesc = BZ2_bzdopen(f->fd, "r")) == NULL)
- goto error2;
- break;
-#endif
-#ifndef WITHOUT_LZMA
- case FILE_XZ:
- case FILE_LZMA:
-
- if (filebehave == FILE_XZ)
- lzmaret = lzma_stream_decoder(&lstrm, UINT64_MAX,
- LZMA_CONCATENATED);
- else
- lzmaret = lzma_alone_decoder(&lstrm, UINT64_MAX);
-
- if (lzmaret != LZMA_OK)
- goto error2;
-
- lstrm.avail_in = 0;
- lstrm.avail_out = MAXBUFSIZ;
- laction = LZMA_RUN;
- break;
-#endif
- }
/* Fill read buffer, also catches errors early */
if (bufrem == 0 && grep_refill(f) != 0)
Index: usr.bin/grep/grep.h
===================================================================
--- usr.bin/grep/grep.h
+++ usr.bin/grep/grep.h
@@ -69,10 +69,6 @@
#define FILE_STDIO 0
#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
Index: usr.bin/grep/grep.1
===================================================================
--- usr.bin/grep/grep.1
+++ usr.bin/grep/grep.1
@@ -30,17 +30,16 @@
.\"
.\" @(#)grep.1 8.3 (Berkeley) 4/18/94
.\"
-.Dd April 17, 2017
+.Dd April 25, 2018
.Dt GREP 1
.Os
.Sh NAME
.Nm grep , egrep , fgrep , rgrep ,
-.Nm zgrep , zegrep , zfgrep
.Nd file pattern searcher
.Sh SYNOPSIS
.Nm grep
.Bk -words
-.Op Fl abcdDEFGHhIiJLlmnOopqRSsUVvwxZz
+.Op Fl abcdDEFGHhIiLlmnOopqRSsUVvwxz
.Op Fl A Ar num
.Op Fl B Ar num
.Op Fl C Ns Op Ar num
@@ -88,21 +87,6 @@
Patterns may consist of one or more lines,
allowing any of the pattern lines to match a portion of the input.
.Pp
-.Nm zgrep ,
-.Nm zegrep ,
-and
-.Nm zfgrep
-act like
-.Nm grep ,
-.Nm egrep ,
-and
-.Nm fgrep ,
-respectively, but accept input files compressed with the
-.Xr compress 1
-or
-.Xr gzip 1
-compression utilities.
-.Pp
The following options are available:
.Bl -tag -width indent
.It Fl A Ar num , Fl Fl after-context Ns = Ns Ar num
@@ -274,10 +258,6 @@
patterns take priority over
.Fl Fl include-dir
patterns.
-.It Fl J, Fl Fl bz2decompress
-Decompress the
-.Xr bzip2 1
-compressed file before looking for the text.
.It Fl L , Fl Fl files-without-match
Only the names of files not containing selected lines are written to
standard output.
@@ -381,11 +361,6 @@
.It Fl z , Fl Fl null-data
Treat input and output data as sequences of lines terminated by a
zero-byte instead of a newline.
-.It Fl Z , Fl Fl decompress
-Force
-.Nm grep
-to behave as
-.Nm zgrep .
.It Fl Fl binary-files Ns = Ns Ar value
Controls searching and printing of binary files.
Options are
@@ -465,7 +440,6 @@
.Sh SEE ALSO
.Xr ed 1 ,
.Xr ex 1 ,
-.Xr gzip 1 ,
.Xr sed 1 ,
.Xr re_format 7
.Sh STANDARDS
Index: usr.bin/grep/grep.c
===================================================================
--- usr.bin/grep/grep.c
+++ usr.bin/grep/grep.c
@@ -68,9 +68,8 @@
const char *errstr[] = {
"",
/* 1*/ "(standard input)",
-/* 2*/ "cannot read bzip2 compressed file",
/* 3*/ "unknown %s option",
-/* 4*/ "usage: %s [-abcDEFGHhIiJLlmnOoPqRSsUVvwxZz] [-A num] [-B num] [-C[num]]\n",
+/* 4*/ "usage: %s [-abcDEFGHhIiLlmnOoPqRSsUVvwxz] [-A num] [-B num] [-C[num]]\n",
/* 5*/ "\t[-e pattern] [-f file] [--binary-files=value] [--color=when]\n",
/* 6*/ "\t[--context[=num]] [--directories=action] [--label] [--line-buffered]\n",
/* 7*/ "\t[--null] [pattern] [file ...]\n",
@@ -136,7 +135,7 @@
const char *color; /* --color */
int grepbehave = GREP_BASIC; /* -EFGP: type of the regex */
int binbehave = BINFILE_BIN; /* -aIU: handling of binary files */
-int filebehave = FILE_STDIO; /* -JZ: normal, gzip or bzip2 file */
+int filebehave = FILE_STDIO;
int devbehave = DEV_READ; /* -D: handling of devices */
int dirbehave = DIR_READ; /* -dRr: handling of directories */
int linkbehave = LINK_READ; /* -OpS: handling of symlinks */
@@ -169,14 +168,14 @@
static void
usage(void)
{
- fprintf(stderr, getstr(4), getprogname());
+ fprintf(stderr, getstr(3), getprogname());
+ fprintf(stderr, "%s", getstr(4));
fprintf(stderr, "%s", getstr(5));
fprintf(stderr, "%s", getstr(6));
- fprintf(stderr, "%s", getstr(7));
exit(2);
}
-static const char *optstr = "0123456789A:B:C:D:EFGHIJMLOPSRUVZabcd:e:f:hilm:nopqrsuvwxXyz";
+static const char *optstr = "0123456789A:B:C:D:EFGHILOPSRUVabcd:e:f:hilm:nopqrsuvwxyz";
static const struct option long_options[] =
{
@@ -208,11 +207,9 @@
{"no-filename", no_argument, NULL, 'h'},
{"with-filename", no_argument, NULL, 'H'},
{"ignore-case", no_argument, NULL, 'i'},
- {"bz2decompress", no_argument, NULL, 'J'},
{"files-with-matches", no_argument, NULL, 'l'},
{"files-without-match", no_argument, NULL, 'L'},
{"max-count", required_argument, NULL, 'm'},
- {"lzma", no_argument, NULL, 'M'},
{"line-number", no_argument, NULL, 'n'},
{"only-matching", no_argument, NULL, 'o'},
{"quiet", no_argument, NULL, 'q'},
@@ -225,9 +222,7 @@
{"version", no_argument, NULL, 'V'},
{"word-regexp", no_argument, NULL, 'w'},
{"line-regexp", no_argument, NULL, 'x'},
- {"xz", no_argument, NULL, 'X'},
{"null-data", no_argument, NULL, 'z'},
- {"decompress", no_argument, NULL, 'Z'},
{NULL, no_argument, NULL, 0}
};
@@ -367,21 +362,9 @@
way we can have all the funcionalities in one binary
without the need of scripting and using ugly hacks. */
pn = getprogname();
- if (pn[0] == 'b' && pn[1] == 'z') {
- filebehave = FILE_BZIP;
- pn += 2;
- } else if (pn[0] == 'x' && pn[1] == 'z') {
- filebehave = FILE_XZ;
- pn += 2;
- } else if (pn[0] == 'l' && pn[1] == 'z') {
- filebehave = FILE_LZMA;
- pn += 2;
- } else if (pn[0] == 'r') {
+ if (pn[0] == 'r') {
dirbehave = DIR_RECURSE;
Hflag = true;
- } else if (pn[0] == 'z') {
- filebehave = FILE_GZIP;
- pn += 1;
}
switch (pn[0]) {
case 'e':
@@ -490,7 +473,7 @@
else if (strcasecmp(optarg, "read") == 0)
devbehave = DEV_READ;
else
- errx(2, getstr(3), "--devices");
+ errx(2, getstr(2), "--devices");
break;
case 'd':
if (strcasecmp("recurse", optarg) == 0) {
@@ -501,7 +484,7 @@
else if (strcasecmp("read", optarg) == 0)
dirbehave = DIR_READ;
else
- errx(2, getstr(3), "--directories");
+ errx(2, getstr(2), "--directories");
break;
case 'E':
grepbehave = GREP_EXTENDED;
@@ -541,13 +524,6 @@
iflag = true;
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':
lflag = false;
Lflag = true;
@@ -568,9 +544,6 @@
err(2, NULL);
}
break;
- case 'M':
- filebehave = FILE_LZMA;
- break;
case 'n':
nflag = true;
break;
@@ -607,9 +580,9 @@
break;
case 'V':
#ifdef WITH_GNU
- printf(getstr(10), getprogname(), VERSION);
-#else
printf(getstr(9), getprogname(), VERSION);
+#else
+ printf(getstr(8), getprogname(), VERSION);
#endif
exit(0);
case 'v':
@@ -623,15 +596,9 @@
xflag = true;
cflags &= ~REG_NOSUB;
break;
- case 'X':
- filebehave = FILE_XZ;
- break;
case 'z':
fileeol = '\0';
break;
- case 'Z':
- filebehave = FILE_GZIP;
- break;
case BIN_OPT:
if (strcasecmp("binary", optarg) == 0)
binbehave = BINFILE_BIN;
@@ -640,7 +607,7 @@
else if (strcasecmp("text", optarg) == 0)
binbehave = BINFILE_TEXT;
else
- errx(2, getstr(3), "--binary-files");
+ errx(2, getstr(2), "--binary-files");
break;
case COLOR_OPT:
color = NULL;
@@ -660,7 +627,7 @@
} else if (strcasecmp("never", optarg) != 0 &&
strcasecmp("none", optarg) != 0 &&
strcasecmp("no", optarg) != 0)
- errx(2, getstr(3), "--color");
+ errx(2, getstr(2), "--color");
cflags &= ~REG_NOSUB;
break;
case LABEL_OPT:
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Mar 20, 7:59 AM (5 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30008958
Default Alt Text
D15197.id41851.diff (11 KB)
Attached To
Mode
D15197: Remove compression support from bsdgrep
Attached
Detach File
Event Timeline
Log In to Comment