On Wed, Jun 28, 2017 at 2:58 PM, Ævar Arnfjörð Bjarmason
<[email protected]> wrote:
> Remove the redundant re-assignment of the fixed field to zero right
> after the entire struct has been set to zero via memset(...).
>
> Unlike some nearby commits this pattern doesn't date back to the
> pattern described in e0b9f8ae09 ("grep: remove redundant regflags
> assignments", 2017-05-25), instead it was apparently cargo-culted in
> 9eceddeec6 ("Use kwset in grep", 2011-08-21).
>
> Signed-off-by: Ævar Arnfjörð Bjarmason <[email protected]>
> ---
> grep.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/grep.c b/grep.c
> index 6614042fdc..7cd8a6512f 100644
> --- a/grep.c
> +++ b/grep.c
> @@ -627,8 +627,6 @@ static void compile_regexp(struct grep_pat *p, struct
> grep_opt *opt)
> has_null(p->pattern, p->patternlen) ||
> is_fixed(p->pattern, p->patternlen))
> p->fixed = !icase || ascii_only;
> - else
> - p->fixed = 0;
>
I was about to propose a similar action as in 2/5,
but getting the condition right is not as easy:
p->fixed = (opt->fixed ||
has_null(p->pattern, p->patternlen) ||
is_fixed(p->pattern, p->patternlen)) &&
(!icase || ascii_only);
does not look as convincing here.
Thanks for mentioning 9eceddeec6 as in that commit
I would have been easy with just proposing to have
p->fixed = opt->fixed || is_fixed(p->pattern, p->patternlen);
Thanks,
Stefan