iflag='';
lflag='';
kflag='no';
-rflag='no';
tflag='no';
t_e='no';
t_fp='no';
grepc_parse_cmd()
{
- while getopts "chiklrt:" opt; do
+ while getopts "chiklt:" opt; do
case "$opt" in
c)
cflag='yes';
lflag='l';
kflag='yes';
;;
- r)
- rflag='yes';
- ;;
t)
case "$OPTARG" in
e)
grepc_patterns "$identifier" >"$p";
- if test "$rflag" = 'no'; then
- pcre2grep -${iflag}${lflag}HMn -f "$p" $files;
+ if test -z "$files"; then
+ pcre2grep -${iflag}${lflag}HMn -f "$p";
else
find $files -type f \
| xargs grep -${iflag}lPI -- "$identifier" \
If no
.I file
is given,
-nonrecursive searches read standard input,
-and recursive searches examine the working directory.
+this program reads standard input.
+Otherwise,
+it reads all files specified,
+and searches under any specified directories, recursively,
+without following symbolic links.
.SS Types of code
This program can search for several types of code.
The following arguments can be passed to the
from which output would normally have been printed.
Each file is only printed once.
.TP
-.B \-r
-Recursive search.
-If an input file is a directory,
-read all files under such directory, recursively,
-without following symbolic links.
-This is useful even if specific files are specified in the command line
-as it enables certain optimizations that cannot be enabled in filter mode.
-.TP
.BI \-t " type"
Restrict the search to a specific
.I type
Default:
.BR "e f m t" .
.SH CAVEATS
+.SS Crashes
In some cases,
internal calls to
.MR pcre2grep 1
may fail after consuming too much resources.
To solve that,
restrict the "types of code" of your search.
+.SS Seekable files
+Files specified in the command line
+must be seekable and able to be opened twice.
+If you need to read a non-seekable file,
+redirect it to the standard input.
.SH EXAMPLES
.EX
-.RB \(ti/src/nginx/unit$ " grepc nxt_sprintf;"
+.RB \(ti/src/nginx/unit$ " grepc nxt_sprintf .;"
\&
\&
\&./src/nxt_sprintf.h:15: