Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a420368 authored by Elliott Hughes's avatar Elliott Hughes Committed by android-build-merger
Browse files

Merge "BSD grep: sync with upstream."

am: a42823b2

Change-Id: I5cbc85a29fe9092861dc6853e13c4030de17e748
parents e337910a a42823b2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -7,6 +7,8 @@ cc_defaults {
        "-Wno-unused-const-variable",
        "-D_FILE_OFFSET_BITS=64",
        "-DWITHOUT_NLS",
        "-DWITHOUT_BZ2",
        "-DWITHOUT_GZIP",
    ],
}

+22 −17
Original line number Diff line number Diff line
/*	$NetBSD: file.c,v 1.7 2011/04/18 22:46:48 joerg Exp $	*/
/*	$NetBSD: file.c,v 1.10 2018/08/12 09:03:21 christos Exp $	*/
/*	$FreeBSD: head/usr.bin/grep/file.c 211496 2010-08-19 09:28:59Z des $	*/
/*	$OpenBSD: file.c,v 1.11 2010/07/02 20:48:48 nicm Exp $	*/

@@ -35,15 +35,12 @@
#endif

#include <sys/cdefs.h>
__RCSID("$NetBSD: file.c,v 1.7 2011/04/18 22:46:48 joerg Exp $");
__RCSID("$NetBSD: file.c,v 1.10 2018/08/12 09:03:21 christos Exp $");

#include <sys/param.h>
#include <sys/types.h>
#include <sys/stat.h>

#ifndef __ANDROID__
#include <bzlib.h>
#endif
#include <err.h>
#include <errno.h>
#include <fcntl.h>
@@ -53,17 +50,16 @@ __RCSID("$NetBSD: file.c,v 1.7 2011/04/18 22:46:48 joerg Exp $");
#include <unistd.h>
#include <wchar.h>
#include <wctype.h>
#ifndef __ANDROID__
#include <zlib.h>
#endif

#include "grep.h"

#define	MAXBUFSIZ	(32 * 1024)
#define	LNBUFBUMP	80

#ifndef __ANDROID__
#ifndef WITHOUT_GZIP
static gzFile gzbufdesc;
#endif
#ifndef WITHOUT_BZ2
static BZFILE* bzbufdesc;
#endif

@@ -77,18 +73,21 @@ static size_t lnbuflen;
static inline int
grep_refill(struct file *f)
{
	ssize_t nr;
#ifndef __ANDROID__
	ssize_t nr = -1;
	int bzerr;
#endif

	bufpos = buffer;
	bufrem = 0;

#ifndef __ANDROID__
	if (filebehave == FILE_GZIP)
#ifndef WITHOUT_GZIP
	if (filebehave == FILE_GZIP) {
		nr = gzread(gzbufdesc, buffer, MAXBUFSIZ);
	else if (filebehave == FILE_BZIP && bzbufdesc != NULL) {
		if (nr == -1)
			return -1;
	}
#endif
#ifndef WITHOUT_BZ2
	if (filebehave == FILE_BZIP && bzbufdesc != NULL) {
		nr = BZ2_bzRead(&bzerr, bzbufdesc, buffer, MAXBUFSIZ);
		switch (bzerr) {
		case BZ_OK:
@@ -114,9 +113,13 @@ grep_refill(struct file *f)
			/* Make sure we exit with an error */
			nr = -1;
		}
	} else
		if (nr == -1)
			return -1;
	}
#endif
	if (nr == -1) {
		nr = read(f->fd, buffer, MAXBUFSIZ);
	}

	if (nr < 0)
		return (-1);
@@ -204,11 +207,13 @@ static inline struct file *
grep_file_init(struct file *f)
{

#ifndef __ANDROID__
#ifndef WITHOUT_GZIP
	if (filebehave == FILE_GZIP &&
	    (gzbufdesc = gzdopen(f->fd, "r")) == NULL)
		goto error;
#endif

#ifndef WITHOUT_BZ2
	if (filebehave == FILE_BZIP &&
	    (bzbufdesc = BZ2_bzdopen(f->fd, "r")) == NULL)
		goto error;
+18 −3
Original line number Diff line number Diff line
/*	$NetBSD: grep.c,v 1.12 2014/07/11 16:30:45 christos Exp $	*/
/*	$NetBSD: grep.c,v 1.15 2018/08/12 09:03:21 christos Exp $	*/
/* 	$FreeBSD: head/usr.bin/grep/grep.c 211519 2010-08-19 22:55:17Z delphij $	*/
/*	$OpenBSD: grep.c,v 1.42 2010/07/02 22:18:03 tedu Exp $	*/

@@ -34,7 +34,7 @@
#endif

#include <sys/cdefs.h>
__RCSID("$NetBSD: grep.c,v 1.12 2014/07/11 16:30:45 christos Exp $");
__RCSID("$NetBSD: grep.c,v 1.15 2018/08/12 09:03:21 christos Exp $");

#include <sys/stat.h>
#include <sys/types.h>
@@ -170,7 +170,9 @@ static const char optstr[] =
struct option long_options[] =
{
	{"binary-files",	required_argument,	NULL, BIN_OPT},
#ifndef WITHOUT_GZIP
	{"decompress",          no_argument,            NULL, DECOMPRESS_OPT},
#endif
	{"help",		no_argument,		NULL, HELP_OPT},
	{"mmap",		no_argument,		NULL, MMAP_OPT},
	{"line-buffered",	no_argument,		NULL, LINEBUF_OPT},
@@ -197,7 +199,9 @@ struct option long_options[] =
	{"no-filename",		no_argument,		NULL, 'h'},
	{"with-filename",	no_argument,		NULL, 'H'},
	{"ignore-case",		no_argument,		NULL, 'i'},
#ifndef WITHOUT_BZ2
	{"bz2decompress",	no_argument,		NULL, 'J'},
#endif
	{"files-with-matches",	no_argument,		NULL, 'l'},
	{"files-without-match", no_argument,            NULL, 'L'},
	{"max-count",		required_argument,	NULL, 'm'},
@@ -338,6 +342,7 @@ main(int argc, char *argv[])
	case 'g':
		grepbehave = GREP_BASIC;
		break;
#ifndef WITHOUT_GZIP
	case 'z':
		filebehave = FILE_GZIP;
		switch(__progname[1]) {
@@ -352,6 +357,7 @@ main(int argc, char *argv[])
			break;
		}
		break;
#endif
	}

	lastc = '\0';
@@ -491,9 +497,11 @@ main(int argc, char *argv[])
			iflag =  true;
			cflags |= REG_ICASE;
			break;
#ifndef WITHOUT_BZ2
		case 'J':
			filebehave = FILE_BZIP;
			break;
#endif
		case 'L':
			lflag = false;
			Lflag = true;
@@ -596,9 +604,11 @@ main(int argc, char *argv[])
			    strcasecmp("no", optarg) != 0)
				errx(2, getstr(3), "--color");
			break;
#ifndef WITHOUT_GZIP
		case DECOMPRESS_OPT:
			filebehave = FILE_GZIP;
			break;
#endif
		case LABEL_OPT:
			label = optarg;
			break;
@@ -679,8 +689,13 @@ main(int argc, char *argv[])
		}
	}

	if (lbflag)
	if (lbflag) {
#ifdef _IOLBF
		setvbuf(stdout, NULL, _IOLBF, 0);
#else
		setlinebuf(stdout);
#endif
	}

	if ((aargc == 0 || aargc == 1) && !Hflag)
		hflag = true;
+3 −3
Original line number Diff line number Diff line
/*	$NetBSD: grep.h,v 1.8 2012/05/06 22:27:00 joerg Exp $	*/
/*	$NetBSD: grep.h,v 1.10 2018/08/12 09:03:21 christos Exp $	*/
/*	$OpenBSD: grep.h,v 1.15 2010/04/05 03:03:55 tedu Exp $	*/
/*	$FreeBSD: head/usr.bin/grep/grep.h 211496 2010-08-19 09:28:59Z des $	*/

@@ -29,14 +29,14 @@
 * SUCH DAMAGE.
 */

#ifndef __ANDROID__
#ifndef WITHOUT_BZ2
#include <bzlib.h>
#endif
#include <limits.h>
#include <regex.h>
#include <stdbool.h>
#include <stdio.h>
#ifndef __ANDROID__
#ifndef WITHOUT_GZIP
#include <zlib.h>
#endif

+6 −5
Original line number Diff line number Diff line
/*	$NetBSD: util.c,v 1.17 2013/01/21 03:24:43 msaitoh Exp $	*/
/*	$NetBSD: util.c,v 1.19 2018/02/05 22:14:26 mrg Exp $	*/
/*	$FreeBSD: head/usr.bin/grep/util.c 211496 2010-08-19 09:28:59Z des $	*/
/*	$OpenBSD: util.c,v 1.39 2010/07/02 22:18:03 tedu Exp $	*/

@@ -34,7 +34,7 @@
#endif

#include <sys/cdefs.h>
__RCSID("$NetBSD: util.c,v 1.17 2013/01/21 03:24:43 msaitoh Exp $");
__RCSID("$NetBSD: util.c,v 1.19 2018/02/05 22:14:26 mrg Exp $");

#include <sys/stat.h>
#include <sys/types.h>
@@ -481,6 +481,7 @@ printline(struct str *line, int sep, regmatch_t *matches, int m)
			fwrite(line->dat + matches[i].rm_so, 
			    matches[i].rm_eo - matches[i].rm_so, 1,
			    stdout);

			if (color) 
				fprintf(stdout, "\33[m\33[K");
			a = matches[i].rm_eo;