git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/5] grep: remove redundant "fixed" field re-assignment to 0

From
Stefan Beller <sbeller@google.com>
Date
Jun 29, 2017, 17:10 UTC
Message-ID
<CAGZ79kaLEA+6DDgWnqw-hg1GrWVD7CgGNAkmXx_iQmeKGSJUqQ@mail.gmail.com>
In-Reply-To
<20170628215809.23060-4-avarab@gmail.com>

On Wed, Jun 28, 2017 at 2:58 PM, Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:

Show 24 quoted lines
> 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 <avarab@gmail.com>
> ---
>  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

Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 4 of 19 in “grep: remove redundant code & reflags from API”
  1. 0/5 grep: remove redundant code & reflags from APIÆvar Arnfjörð Bjarmason, Jun 28, 2017
  2. 1/5 grep: remove redundant double assignment to 0Ævar Arnfjörð Bjarmason, Jun 28, 2017
  3. 3/5 grep: remove redundant "fixed" field re-assignment to 0Ævar Arnfjörð Bjarmason, Jun 28, 2017
  4. Stefan BellerJun 29, 2017
  5. 2/5 grep: remove redundant grep pattern type assignmentÆvar Arnfjörð Bjarmason, Jun 28, 2017
  6. Stefan BellerJun 29, 2017
  7. Ævar Arnfjörð BjarmasonJun 29, 2017
  8. 4/5 grep: remove redundant and verbose re-assignments to 0Ævar Arnfjörð Bjarmason, Jun 28, 2017
  9. 5/5 grep: remove regflags from the public grep_opt APIÆvar Arnfjörð Bjarmason, Jun 28, 2017
  10. Stefan BellerJun 29, 2017
  11. Ævar Arnfjörð BjarmasonJun 29, 2017
  12. 0/6 grep: remove redundant code & reflags from APIÆvar Arnfjörð Bjarmason, Jun 29, 2017
  13. 1/6 grep: remove redundant double assignment to 0Ævar Arnfjörð Bjarmason, Jun 29, 2017
  14. 2/6 grep: adjust a redundant grep pattern type assignmentÆvar Arnfjörð Bjarmason, Jun 29, 2017
  15. 3/6 grep: remove redundant "fixed" field re-assignment to 0Ævar Arnfjörð Bjarmason, Jun 29, 2017
  16. 4/6 grep: remove redundant and verbose re-assignments to 0Ævar Arnfjörð Bjarmason, Jun 29, 2017
  17. 6/6 grep: remove redundant REG_NEWLINE when compiling fixed regexÆvar Arnfjörð Bjarmason, Jun 29, 2017
  18. 5/6 grep: remove regflags from the public grep_opt APIÆvar Arnfjörð Bjarmason, Jun 29, 2017
  19. Junio C HamanoJun 30, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.