From adcbaf530f3ec351ec2932ebe9b77140f79eda4a Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Wed, 20 May 2015 23:59:53 -0500 Subject: Make "grep -r regex" work on implicit "." if no files specified. --- toys/posix/grep.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'toys/posix/grep.c') diff --git a/toys/posix/grep.c b/toys/posix/grep.c index 61df08ea..6e383efc 100644 --- a/toys/posix/grep.c +++ b/toys/posix/grep.c @@ -269,7 +269,7 @@ static int do_grep_r(struct dirtree *new) void grep_main(void) { - char **ss; + char **ss = toys.optargs; // Handle egrep and fgrep if (*toys.which->name == 'e' || (toys.optflags & FLAG_w)) @@ -277,9 +277,9 @@ void grep_main(void) if (*toys.which->name == 'f') toys.optflags |= FLAG_F; if (!TT.e && !TT.f) { - if (!*toys.optargs) error_exit("no REGEX"); + if (!*ss) error_exit("no REGEX"); TT.e = xzalloc(sizeof(struct arg_list)); - TT.e->arg = *(toys.optargs++); + TT.e->arg = *(ss++); toys.optc--; } @@ -294,7 +294,7 @@ void grep_main(void) } if (toys.optflags & FLAG_r) { - for (ss=toys.optargs; *ss; ss++) { + for (ss = *ss ? ss : (char *[]){".", 0}; *ss; ss++) { if (!strcmp(*ss, "-")) do_grep(0, *ss); else dirtree_read(*ss, do_grep_r); } -- cgit v1.2.3