Re: [PATCH 2/2] grep: use grep_and_expr() in compile_pattern_and()
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 6, 2022, 22:14 UTC
- Message-ID
- <xmqqlezsbjfs.fsf@gitster.g>
- In-Reply-To
- <71bd2d1bcc6486f2e21c649708d3f4fa67dc162c.1641498525.git.me@ttaylorr.com>
Taylor Blau <me@ttaylorr.com> writes:
Show 39 quoted lines
> In a similar spirit as a previous commit, use the new `grep_and_expr()`
> to construct the AND node in `compile_pattern_and()`.
>
> Unlike the aforementioned previous commit, this is not about code
> duplication, since this is the only spot in grep.c where an AND node is
> constructed. Rather, this is about visual consistency with the other
> `compile_pattern_xyz()` functions.
>
> Signed-off-by: Taylor Blau <me@ttaylorr.com>
> ---
> grep.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/grep.c b/grep.c
> index d772fe6cc5..ab4fdacaed 100644
> --- a/grep.c
> +++ b/grep.c
> @@ -619,6 +619,11 @@ static struct grep_expr *grep_or_expr(struct grep_expr *left, struct grep_expr *
> return grep_binexp(GREP_NODE_OR, left, right);
> }
>
> +static struct grep_expr *grep_and_expr(struct grep_expr *left, struct grep_expr *right)
> +{
> + return grep_binexp(GREP_NODE_AND, left, right);
> +}
> +
> static struct grep_expr *compile_pattern_or(struct grep_pat **);
> static struct grep_expr *compile_pattern_atom(struct grep_pat **list)
> {
> @@ -687,11 +692,7 @@ static struct grep_expr *compile_pattern_and(struct grep_pat **list)
> y = compile_pattern_and(list);
> if (!y)
> die("--and not followed by pattern expression");
> - CALLOC_ARRAY(z, 1);
> - z->node = GREP_NODE_AND;
> - z->u.binary.left = x;
> - z->u.binary.right = y;
> - return z;
> + return grep_and_expr(x, y);You'd need to remove 'z' from the function to avoid getting yelled at by your compiler for unused variable.