summaryrefslogtreecommitdiffstats
path: root/gnu
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2000-01-31 13:28:57 +0000
committerru <ru@FreeBSD.org>2000-01-31 13:28:57 +0000
commit84567babad5cce22315b6b47244e853b80fda74d (patch)
tree0eeb47ce6d18b9e12aeb1642e2609ea936d97111 /gnu
parentc55fd8f4ccc405c7f10da674a10d06bb63267295 (diff)
downloadFreeBSD-src-84567babad5cce22315b6b47244e853b80fda74d.zip
FreeBSD-src-84567babad5cce22315b6b47244e853b80fda74d.tar.gz
Merge FreeBSD changes into 2.4d.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/usr.bin/grep/grep.1312
-rw-r--r--gnu/usr.bin/grep/grep.c106
-rw-r--r--gnu/usr.bin/grep/search.c29
3 files changed, 210 insertions, 237 deletions
diff --git a/gnu/usr.bin/grep/grep.1 b/gnu/usr.bin/grep/grep.1
index 995439f..26ce985 100644
--- a/gnu/usr.bin/grep/grep.1
+++ b/gnu/usr.bin/grep/grep.1
@@ -13,93 +13,39 @@
.de Id
.ds Dt \\$4
..
-.Id $Id: grep.1,v 1.8 2000/01/17 00:55:06 alainm Exp $
+.Id $Id: grep.1,v 1.9 2000/01/26 03:42:16 alainm Exp $
.TH GREP 1 \*(Dt "GNU Project"
.SH NAME
grep, egrep, fgrep, zgrep \- print lines matching a pattern
.SH SYNOPSIS
.B grep
-.RB [ \- [ ABC ]
-.IR NUM ]
-.RB [ \-EFGHLUVZabchilnqrsuvwxyz ]
+.RI [ options ]
+.I PATTERN
+.RI [ FILE .\|.\|.]
+.br
+.B grep
+.RI [ options ]
.RB [ \-e
.I PATTERN
|
.B \-f
.IR FILE ]
-.RB [ \-d
-.IR ACTION ]
-.RB [ \-\^\-binary-files=\fITYPE\fP ]
-.RB [ \-\^\-directories=\fIACTION\fP ]
-.RB [ \-\^\-extended-regexp ]
-.RB [ \-\^\-fixed-strings ]
-.RB [ \-\^\-basic-regexp ]
-.RB [ \-\^\-regexp=\fIPATTERN\fP ]
-.RB [ \-\^\-file=\fIFILE\fP ]
-.RB [ \-\^\-ignore-case ]
-.RB [ \-\^\-word-regexp ]
-.RB [ \-\^\-line-regexp ]
-.RB [ \-\^\-line-regexp ]
-.RB [ \-\^\-no-messages ]
-.RB [ \-\^\-invert-match ]
-.RB [ \-\^\-version ]
-.RB [ \-\^\-help ]
-.RB [ \-\^\-byte-offset ]
-.RB [ \-\^\-line-number ]
-.RB [ \-\^\-with-filename ]
-.RB [ \-\^\-no-filename ]
-.RB [ \-\^\-quiet ]
-.RB [ \-\^\-silent ]
-.RB [ \-\^\-text ]
-.RB [ \-\^\-files-without-match ]
-.RB [ \-\^\-files-with-matches ]
-.RB [ \-\^\-count ]
-.RB [ \-\^\-before-context=\fINUM\fP ]
-.RB [ \-\^\-after-context=\fINUM\fP ]
-.RB [ \-\^\-context [ =\fINUM\fP ]]
-.RB [ \-\^\-binary ]
-.RB [ \-\^\-unix-byte-offsets ]
-.RB [ \-\^\-mmap ]
-.RB [ \-\^\-null ]
-.RB [ \-\^\-recursive ]
-.RB [ \-\^\-decompress ]
-.RI [ file .\|.\|.]
+.RI [ FILE .\|.\|.]
.SH DESCRIPTION
.PP
.B grep
searches the named input
-.I files
+.IR FILE s
(or standard input if no files are named, or
the file name
.B \-
is given)
for lines containing a match to the given
-.IR pattern .
+.IR PATTERN .
By default,
.B grep
prints the matching lines.
.PP
-There are three major variants of
-.BR grep ,
-controlled by the following options.
-.PD 0
-.TP
-.BR \-G ", " \-\^\-basic-regexp
-Interpret
-.I pattern
-as a basic regular expression (see below). This is the default.
-.TP
-.BR \-E ", " \-\^\-extended-regexp
-Interpret
-.I pattern
-as an extended regular expression (see below).
-.TP
-.BR \-F ", " \-\^\-fixed-strings
-Interpret
-.I pattern
-as a list of fixed strings, separated by newlines,
-any of which is to be matched.
-.PP
In addition, two variant programs
.B egrep
and
@@ -114,40 +60,31 @@ is the same as
.B zgrep
is the same as
.BR "grep\ \-Z" .
-.PD
-.PP
-All variants of
-.B grep
-understand the following options:
-.PD 0
+.SH OPTIONS
.TP
.BI \-A " NUM" "\fR,\fP \-\^\-after-context=" NUM
Print
.I NUM
lines of trailing context after matching lines.
.TP
+.BR \-a ", " \-\^\-text
+Process a binary file as if it were text; this is equivalent to the
+.B \-\^\-binary-files=text
+option.
+.TP
.BI \-B " NUM" "\fR,\fP \-\^\-before-context=" NUM
Print
.I NUM
lines of leading context before matching lines.
.TP
-.BI \-C " \fR[\fPNUM\fR]\fP" "\fR,\fP \-\^\-context\fR[\fP=" NUM\fR]\fP
+\fB\-C\fP [\fINUM\fP], \fB\-\fP\fINUM\fP, \fB\-\^\-context\fP[\fB=\fP\fINUM\fP]
Print
.I NUM
lines (default 2) of output context.
.TP
-.BI \- NUM
-Same as
-.BI \-\^\-context= NUM
-lines of leading and trailing context. However,
-.B grep
-will never print any given line more than once.
-.TP
-.BR \-V ", " \-\^\-version
-Print the version number of
-.B grep
-to standard error. This version number should
-be included in all bug reports (see below).
+.BR \-b ", " \-\^\-byte-offset
+Print the byte offset within the input file before
+each line of output.
.TP
.BI \-\^\-binary-files= TYPE
If the first few bytes of a file indicate that the file contains binary
@@ -167,7 +104,9 @@ If
is
.BR without-match ,
.B grep
-assumes that a binary file does not match.
+assumes that a binary file does not match; this is equivalent to the
+.B \-I
+option.
If
.I TYPE
is
@@ -175,8 +114,6 @@ is
.B grep
processes a binary file as if it were text; this is equivalent to the
.B \-a
-or
-.B \-\^\-text
option.
.I Warning:
.B "grep \-\^\-binary-files=text"
@@ -184,10 +121,6 @@ might output binary garbage,
which can have nasty side effects if the output is a terminal and if the
terminal driver interprets some of it as commands.
.TP
-.BR \-b ", " \-\^\-byte-offset
-Print the byte offset within the input file before
-each line of output.
-.TP
.BR \-c ", " \-\^\-count
Suppress normal output; instead print a count of
matching lines for each input file.
@@ -218,18 +151,34 @@ this is equivalent to the
.B \-r
option.
.TP
+.BR \-E ", " \-\^\-extended-regexp
+Interpret
+.I PATTERN
+as an extended regular expression (see below).
+.TP
.BI \-e " PATTERN" "\fR,\fP \-\^\-regexp=" PATTERN
Use
.I PATTERN
as the pattern; useful to protect patterns beginning with
.BR \- .
.TP
+.BR \-F ", " \-\^\-fixed-strings
+Interpret
+.I PATTERN
+as a list of fixed strings, separated by newlines,
+any of which is to be matched.
+.TP
.BI \-f " FILE" "\fR,\fP \-\^\-file=" FILE
Obtain patterns from
.IR FILE ,
one per line.
The empty file contains zero patterns, and therfore matches nothing.
.TP
+.BR \-G ", " \-\^\-basic-regexp
+Interpret
+.I PATTERN
+as a basic regular expression (see below). This is the default.
+.TP
.BR \-H ", " \-\^\-with-filename
Print the filename for each match.
.TP
@@ -237,9 +186,18 @@ Print the filename for each match.
Suppress the prefixing of filenames on output
when multiple files are searched.
.TP
+.B \-\^\-help
+Output a brief help message.
+.TP
+.BR \-I
+Process a binary file as if it did not contain matching data; this is
+equivalent to the
+.B \-\^\-binary-files=without-match
+option.
+.TP
.BR \-i ", " \-\^\-ignore-case
Ignore case distinctions in both the
-.I pattern
+.I PATTERN
and the input files.
.TP
.BR \-L ", " \-\^\-files-without-match
@@ -254,6 +212,21 @@ the name of each input file from which output
would normally have been printed. The scanning will
stop on the first match.
.TP
+.B \-\^\-mmap
+If possible, use the
+.BR mmap (2)
+system call to read input, instead of
+the default
+.BR read (2)
+system call. In some situations,
+.B \-\^\-mmap
+yields better performance. However,
+.B \-\^\-mmap
+can cause undefined behavior (including core dumps)
+if an input file shrinks while
+.B grep
+is operating, or if an I/O error occurs.
+.TP
.BR \-n ", " \-\^\-line-number
Prefix each line of output with the line number
within its input file.
@@ -297,29 +270,6 @@ and
.B \-s
and should redirect output to /dev/null instead.
.TP
-.BR \-a ", " \-\^\-text
-Process a binary file as if it were text; this is equivalent to the
-.B \-\^\-binary-files=text
-option.
-.TP
-.BR \-v ", " \-\^\-invert-match
-Invert the sense of matching, to select non-matching lines.
-.TP
-.BR \-w ", " \-\^\-word-regexp
-Select only those lines containing matches that form whole words.
-The test is that the matching substring must either be at the
-beginning of the line, or preceded by a non-word constituent
-character. Similarly, it must be either at the end of the line
-or followed by a non-word constituent character. Word-constituent
-characters are letters, digits, and the underscore.
-.TP
-.BR \-x ", " \-\^\-line-regexp
-Select only those matches that exactly match the whole line.
-.TP
-.B \-y
-Obsolete synonym for
-.BR \-i .
-.TP
.BR \-U ", " \-\^\-binary
Treat the file(s) as binary. By default, under MS-DOS and MS-Windows,
.BR grep
@@ -351,20 +301,29 @@ on a Unix machine. This option has no effect unless
option is also used;
it has no effect on platforms other than MS-DOS and MS-Windows.
.TP
-.B \-\^\-mmap
-If possible, use the
-.BR mmap (2)
-system call to read input, instead of
-the default
-.BR read (2)
-system call. In some situations,
-.B \-\^\-mmap
-yields better performance. However,
-.B \-\^\-mmap
-can cause undefined behavior (including core dumps)
-if an input file shrinks while
+.BR \-V ", " \-\^\-version
+Print the version number of
.B grep
-is operating, or if an I/O error occurs.
+to standard error. This version number should
+be included in all bug reports (see below).
+.TP
+.BR \-v ", " \-\^\-invert-match
+Invert the sense of matching, to select non-matching lines.
+.TP
+.BR \-w ", " \-\^\-word-regexp
+Select only those lines containing matches that form whole words.
+The test is that the matching substring must either be at the
+beginning of the line, or preceded by a non-word constituent
+character. Similarly, it must be either at the end of the line
+or followed by a non-word constituent character. Word-constituent
+characters are letters, digits, and the underscore.
+.TP
+.BR \-x ", " \-\^\-line-regexp
+Select only those matches that exactly match the whole line.
+.TP
+.B \-y
+Obsolete synonym for
+.BR \-i .
.TP
.BR \-Z ", " \-\^\-null
Output a zero byte (the \s-1ASCII\s0
@@ -383,14 +342,10 @@ and
.B "xargs \-0"
to process arbitrary file names,
even those that contain newline characters.
-.PD
-.LP
-Following option is only available if compiled with zlib(3) library:
-.PD 0
.TP
-.B \-Z, --decompress
+.BR \-Z ", " \-\^\-decompress
Decompress the input data before searching.
-.PD
+This option is only available if compiled with zlib(3) library.
.SH "REGULAR EXPRESSIONS"
.PP
A regular expression is a pattern that describes a set of strings.
@@ -424,7 +379,7 @@ then it matches any character
in the list.
For example, the regular expression
.B [0123456789]
-matches any single digit. A range of ASCII characters
+matches any single digit. A range of characters
may be specified by giving the first and last characters, separated
by a hyphen.
Finally, certain named classes of characters are predefined.
@@ -445,8 +400,9 @@ For example,
.B [[:alnum:]]
means
.BR [0-9A-Za-z] ,
-except the latter form is dependent upon the ASCII character encoding,
-whereas the former is portable.
+except the latter form depends upon the \s-1POSIX\s0 locale and the
+\s-1ASCII\s0 character encoding, whereas the former is independent
+of locale and character set.
(Note that the brackets in these class names are part of the symbolic
names, and must be included in addition to the brackets delimiting
the bracket list.) Most metacharacters lose their special meaning
@@ -590,14 +546,84 @@ searches for the two-character string
instead of reporting a syntax error in the regular expression.
\s-1POSIX.2\s0 allows this behavior as an extension, but portable scripts
should avoid it.
-.SH ENVIRONMENT
-The environment variable
+.SH "ENVIRONMENT VARIABLES"
+.TP
+.B GREP_OPTIONS
+This variable specifies default options to be placed in front of any
+explicit options. For example, if
.B GREP_OPTIONS
-can hold a set of default
-options for
-.I grep.
-These options are interpreted first and can be overwritten by explicit command
-line parameters.
+is
+.BR "'\-\^\-binary-files=without-match \-\^\-directories=skip'" ,
+.B grep
+behaves as if the two options
+.B \-\^\-binary-files=without-match
+and
+.B \-\^\-directories=skip
+had been specified before any explicit options.
+Option specifications are separated by whitespace.
+A backslash escapes the next character,
+so it can be used to specify an option containing whitespace or a backslash.
+.TP
+\fBLC_ALL\fP, \fBLC_MESSAGES\fP, \fBLANG\fP
+These variables specify the
+.B LC_MESSAGES
+locale, which determines the language that
+.B grep
+uses for messages.
+The locale is determined by the first of these variables that is set.
+American English is used if none of these environment variables are set,
+or if the message catalog is not installed, or if
+.B grep
+was not compiled with national language support (\s-1NLS\s0).
+.TP
+\fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLANG\fP
+These variables specify the
+.B LC_CTYPE
+locale, which determines the type of characters, e.g., which
+characters are whitespace.
+The locale is determined by the first of these variables that is set.
+The \s-1POSIX\s0 locale is used if none of these environment variables
+are set, or if the locale catalog is not installed, or if
+.B grep
+was not compiled with national language support (\s-1NLS\s0).
+.TP
+.B POSIXLY_CORRECT
+If set,
+.B grep
+behaves as \s-1POSIX.2\s0 requires; otherwise,
+.B grep
+behaves more like other \s-1GNU\s0 programs.
+\s-1POSIX.2\s0 requires that options that follow file names must be
+treated as file names; by default, such options are permuted to the
+front of the operand list and are treated as options.
+Also, \s-1POSIX.2\s0 requires that unrecognized options be diagnosed as
+\*(lqillegal\*(rq, but since they are not really against the law the default
+is to diagnose them as \*(lqinvalid\*(rq.
+.B POSIXLY_CORRECT
+also disables \fB_\fP\fIN\fP\fB_GNU_nonoption_argv_flags_\fP,
+described below.
+.TP
+\fB_\fP\fIN\fP\fB_GNU_nonoption_argv_flags_\fP
+(Here
+.I N
+is
+.BR grep 's
+numeric process ID.) If the
+.IR i th
+character of this environment variable's value is
+.BR 1 ,
+do not consider the
+.IR i th
+operand of
+.B grep
+to be an option, even if it appears to be one.
+A shell can put this variable in the environment for each command it runs,
+specifying which operands are the results of file name wildcard
+expansion and therefore should not be treated as options.
+This behavior is available only with the \s-1GNU\s0 C library, and only
+when
+.B POSIXLY_CORRECT
+is not set.
.SH DIAGNOSTICS
.PP
Normally, exit status is 0 if matches were found,
diff --git a/gnu/usr.bin/grep/grep.c b/gnu/usr.bin/grep/grep.c
index 551a08c..9930db1 100644
--- a/gnu/usr.bin/grep/grep.c
+++ b/gnu/usr.bin/grep/grep.c
@@ -66,7 +66,7 @@ static int filename_mask;
/* Short options. */
static char const short_options[] =
-"0123456789A:B:C::EFGHUVX:abcd:e:f:hiLlnqrsuvwxyZz";
+"0123456789A:B:C::EFGHIUVX:abcd:e:f:hiLlnqrsuvwxyZz";
/* Non-boolean long options that have no corresponding short equivalents. */
enum
@@ -169,9 +169,7 @@ static char *(*execute) PARAMS ((char *, size_t, char **));
/* Print a message and possibly an error string. Remember
that something awful happened. */
static void
-error (mesg, errnum)
- const char *mesg;
- int errnum;
+error (const char *mesg, int errnum)
{
if (errnum)
fprintf (stderr, "%s: %s: %s\n", prog, mesg, strerror (errnum));
@@ -182,9 +180,7 @@ error (mesg, errnum)
/* Like error (), but die horribly after printing. */
void
-fatal (mesg, errnum)
- const char *mesg;
- int errnum;
+fatal (const char *mesg, int errnum)
{
error (mesg, errnum);
exit (2);
@@ -192,8 +188,7 @@ fatal (mesg, errnum)
/* Interface to handle errors and fix library lossage. */
char *
-xmalloc (size)
- size_t size;
+xmalloc (size_t size)
{
char *result;
@@ -205,9 +200,7 @@ xmalloc (size)
/* Interface to handle errors and fix some library lossage. */
char *
-xrealloc (ptr, size)
- char *ptr;
- size_t size;
+xrealloc (char *ptr, size_t size)
{
char *result;
@@ -223,9 +216,7 @@ xrealloc (ptr, size)
/* Convert STR to a positive integer, storing the result in *OUT.
If STR is not a valid integer, return -1 (otherwise 0). */
static int
-ck_atoi (str, out)
- char const *str;
- int *out;
+ck_atoi (char const *str, int *out)
{
char const *p;
for (p = str; *p; p++)
@@ -275,9 +266,7 @@ static int Zflag; /* uncompress before searching. */
possibly unaligned) buffer used to build the aligned buffer. To
free the buffer, free (*UP). */
static char *
-page_alloc (size, up)
- size_t size;
- char **up;
+page_alloc (size_t size, char **up)
{
size_t asize = size + pagesize - 1;
if (size <= asize)
@@ -295,10 +284,7 @@ page_alloc (size, up)
/* Reset the buffer for a new file, returning zero if we should skip it.
Initialize on the first time through. */
static int
-reset (fd, file, stats)
- int fd;
- char const *file;
- struct stats *stats;
+reset (int fd, char const *file, struct stats *stats)
{
if (pagesize)
bufsalloc = ALIGN_TO (bufalloc / PREFERRED_SAVE_FACTOR, pagesize);
@@ -379,9 +365,7 @@ reset (fd, file, stats)
to the beginning of the buffer contents, and 'buflim'
points just after the end. Return zero if there's an error. */
static int
-fillbuf (save, stats)
- size_t save;
- struct stats *stats;
+fillbuf (size_t save, struct stats *stats)
{
size_t fillsize = 0;
int cc = 1;
@@ -551,8 +535,7 @@ static int done_on_match; /* Stop scanning file on first match */
#endif
static void
-nlscan (lim)
- char *lim;
+nlscan (char *lim)
{
char *beg;
for (beg = lastnl; (beg = memchr (beg, eolbyte, lim - beg)); beg++)
@@ -561,9 +544,7 @@ nlscan (lim)
}
static void
-print_offset_sep (pos, sep)
- off_t pos;
- int sep;
+print_offset_sep (off_t pos, int sep)
{
/* Do not rely on printf to print pos, since off_t may be longer than long,
and long long is not portable. */
@@ -580,10 +561,7 @@ print_offset_sep (pos, sep)
}
static void
-prline (beg, lim, sep)
- char *beg;
- char *lim;
- int sep;
+prline (char *beg, char *lim, int sep)
{
if (out_file)
printf ("%s%c", filename, sep & filename_mask);
@@ -609,8 +587,7 @@ prline (beg, lim, sep)
/* Print pending lines of trailing context prior to LIM. */
static void
-prpending (lim)
- char *lim;
+prpending (char *lim)
{
char *nl;
@@ -630,10 +607,7 @@ prpending (lim)
/* Print the lines between BEG and LIM. Deal with context crap.
If NLINESP is non-null, store a count of lines between BEG and LIM. */
static void
-prtext (beg, lim, nlinesp)
- char *beg;
- char *lim;
- int *nlinesp;
+prtext (char *beg, char *lim, int *nlinesp)
{
static int used; /* avoid printing "--" before any output */
char *bp, *p, *nl;
@@ -696,9 +670,7 @@ prtext (beg, lim, nlinesp)
between matching lines if OUT_INVERT is true). Return a count of
lines printed. */
static int
-grepbuf (beg, lim)
- char *beg;
- char *lim;
+grepbuf (char *beg, char *lim)
{
int nlines, n;
register char *p, *b;
@@ -738,10 +710,7 @@ grepbuf (beg, lim)
but if the file is a directory and we search it recursively, then
return -2 if there was a match, and -1 otherwise. */
static int
-grep (fd, file, stats)
- int fd;
- char const *file;
- struct stats *stats;
+grep (int fd, char const *file, struct stats *stats)
{
int nlines, i;
int not_text;
@@ -834,6 +803,7 @@ grep (fd, file, stats)
}
if (residue)
{
+ *buflim++ = eol;
nlines += grepbuf (bufbeg + save - residue, buflim);
if (pending)
prpending (buflim);
@@ -848,9 +818,7 @@ grep (fd, file, stats)
}
static int
-grepfile (file, stats)
- char const *file;
- struct stats *stats;
+grepfile (char const *file, struct stats *stats)
{
int desc;
int count;
@@ -949,9 +917,7 @@ grepfile (file, stats)
}
static int
-grepdir (dir, stats)
- char const *dir;
- struct stats *stats;
+grepdir (char const *dir, struct stats *stats)
{
int status = 1;
struct stats *ancestor;
@@ -1009,8 +975,7 @@ grepdir (dir, stats)
}
static void
-usage(status)
-int status;
+usage (int status)
{
if (status != 0)
{
@@ -1022,7 +987,7 @@ int status;
printf (_("Usage: %s [OPTION]... PATTERN [FILE] ...\n"), prog);
printf (_("\
Search for PATTERN in each FILE or standard input.\n\
-Example: %s -i 'hello.*world' menu.h main.c\n\
+Example: %s -i 'hello world' menu.h main.c\n\
\n\
Regexp selection and interpretation:\n"), prog);
printf (_("\
@@ -1053,9 +1018,10 @@ Output control:\n\
-H, --with-filename print the filename for each match\n\
-h, --no-filename suppress the prefixing filename on output\n\
-q, --quiet, --silent suppress all normal output\n\
- -a, --text equivalent to --binary-files=text\n\
--binary-files=TYPE assume that binary files are TYPE\n\
TYPE is 'binary', 'text', or 'without-match'.\n\
+ -a, --text equivalent to --binary-files=text\n\
+ -I equivalent to --binary-files=without-match\n\
-d, --directories=ACTION how to handle directories\n\
ACTION is 'read', 'recurse', or 'skip'.\n\
-r, --recursive equivalent to --directories=recurse.\n\
@@ -1085,8 +1051,7 @@ and 2 if trouble.\n"));
/* Set the matcher to M, reporting any conflicts. */
static void
-setmatcher (m)
- char const *m;
+setmatcher (char const *m)
{
if (matcher && strcmp (matcher, m) != 0)
fatal (_("conflicting matchers specified"), 0);
@@ -1096,8 +1061,7 @@ setmatcher (m)
/* Go through the matchers vector and look for the specified matcher.
If we find it, install it in compile and execute, and return 1. */
static int
-install_matcher (name)
- char const *name;
+install_matcher (char const *name)
{
int i;
#ifdef HAVE_SETRLIMIT
@@ -1145,10 +1109,7 @@ install_matcher (name)
Do not set ARGV[N] to NULL. If ARGV is NULL, do not store ARGV[0]
etc. Backslash can be used to escape whitespace (and backslashes). */
static int
-prepend_args (options, buf, argv)
- char const *options;
- char *buf;
- char **argv;
+prepend_args (char const *options, char *buf, char **argv)
{
char const *o = options;
char *b = buf;
@@ -1177,10 +1138,7 @@ prepend_args (options, buf, argv)
vector of a main program with argument count *PARGC and argument
vector *PARGV. */
static void
-prepend_default_options (options, pargc, pargv)
- char const *options;
- int *pargc;
- char ***pargv;
+prepend_default_options (char const *options, int *pargc, char ***pargv)
{
if (options)
{
@@ -1199,15 +1157,14 @@ prepend_default_options (options, pargc, pargv)
}
int
-main (argc, argv)
- int argc;
- char *argv[];
+main (int argc, char **argv)
{
char *keys;
size_t keycc, oldcc, keyalloc;
int with_filenames;
int opt, cc, status;
- unsigned digit_args_val, default_context;
+ int default_context;
+ unsigned digit_args_val;
FILE *fp;
extern char *optarg;
extern int optind;
@@ -1328,6 +1285,9 @@ main (argc, argv)
case 'H':
with_filenames = 1;
break;
+ case 'I':
+ binary_files = WITHOUT_MATCH_BINARY_FILES;
+ break;
case 'U':
#if O_BINARY
dos_use_file_type = DOS_BINARY;
diff --git a/gnu/usr.bin/grep/search.c b/gnu/usr.bin/grep/search.c
index 4e3244a..f24c1a4 100644
--- a/gnu/usr.bin/grep/search.c
+++ b/gnu/usr.bin/grep/search.c
@@ -73,14 +73,13 @@ static kwset_t kwset;
static int lastexact;
void
-dfaerror(mesg)
- const char *mesg;
+dfaerror (char const *mesg)
{
fatal(mesg, 0);
}
static void
-kwsinit()
+kwsinit (void)
{
static char trans[NCHAR];
int i;
@@ -98,7 +97,7 @@ kwsinit()
to find those strings, and thus quickly filter out impossible
matches. */
static void
-kwsmusts()
+kwsmusts (void)
{
struct dfamust *dm;
char *err;
@@ -132,9 +131,7 @@ kwsmusts()
}
static void
-Gcompile(pattern, size)
- char *pattern;
- size_t size;
+Gcompile (char *pattern, size_t size)
{
const char *err;
@@ -186,9 +183,7 @@ Gcompile(pattern, size)
}
static void
-Ecompile(pattern, size)
- char *pattern;
- size_t size;
+Ecompile (char *pattern, size_t size)
{
const char *err;
@@ -248,10 +243,7 @@ Ecompile(pattern, size)
}
static char *
-EGexecute(buf, size, endp)
- char *buf;
- size_t size;
- char **endp;
+EGexecute (char *buf, size_t size, char **endp)
{
register char *buflim, *beg, *end, save;
char eol = eolbyte;
@@ -361,9 +353,7 @@ EGexecute(buf, size, endp)
}
static void
-Fcompile(pattern, size)
- char *pattern;
- size_t size;
+Fcompile (char *pattern, size_t size)
{
char *beg, *lim, *err;
@@ -386,10 +376,7 @@ Fcompile(pattern, size)
}
static char *
-Fexecute(buf, size, endp)
- char *buf;
- size_t size;
- char **endp;
+Fexecute (char *buf, size_t size, char **endp)
{
register char *beg, *try, *end;
register size_t len;
OpenPOWER on IntegriCloud