grep: use grep_and_expr() in compile_pattern_and()

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Taylor Blau 2022-01-06 14:50:15 -05:00 committed by Junio C Hamano
parent f2d275984d
commit 0a6adc26e2

13
grep.c
View File

@ -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); 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_or(struct grep_pat **);
static struct grep_expr *compile_pattern_atom(struct grep_pat **list) static struct grep_expr *compile_pattern_atom(struct grep_pat **list)
{ {
@ -674,7 +679,7 @@ static struct grep_expr *compile_pattern_not(struct grep_pat **list)
static struct grep_expr *compile_pattern_and(struct grep_pat **list) static struct grep_expr *compile_pattern_and(struct grep_pat **list)
{ {
struct grep_pat *p; struct grep_pat *p;
struct grep_expr *x, *y, *z; struct grep_expr *x, *y;
x = compile_pattern_not(list); x = compile_pattern_not(list);
p = *list; p = *list;
@ -687,11 +692,7 @@ static struct grep_expr *compile_pattern_and(struct grep_pat **list)
y = compile_pattern_and(list); y = compile_pattern_and(list);
if (!y) if (!y)
die("--and not followed by pattern expression"); die("--and not followed by pattern expression");
CALLOC_ARRAY(z, 1); return grep_and_expr(x, y);
z->node = GREP_NODE_AND;
z->u.binary.left = x;
z->u.binary.right = y;
return z;
} }
return x; return x;
} }