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

[PATCH v4 22/31] grep: remove redundant regflags assignments

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
May 25, 2017, 19:45 UTC
Message-ID
<20170525194535.9324-23-avarab@gmail.com>
In-Reply-To
<20170525194535.9324-1-avarab@gmail.com>

Remove redundant assignments to the "regflags" variable. This variable is only used set under GREP_PATTERN_TYPE_ERE, so there's no need to un-set it under GREP_PATTERN_TYPE_{FIXED,BRE,PCRE}.

Back in 5010cb5fcc[1], we did do "opt.regflags &= ~REG_EXTENDED" upon seeing "-G" on the command line and flipped the bit on upon seeing "-E", but I think that was perfectly sensible and it would have been a bug if we didn't. They were part of the command line parsing that could have seen "-E" on the command line earlier.

When cca2c172 ("git-grep: do not die upon -F/-P when grep.extendedRegexp is set.", 2011-05-09) switched the command line parsing to "read into a 'tentatively this is what we saw the last' variable and then finally commit just once", we didn't touch opt.regflags for PCRE and FIXED, but we still had to flip regflags between BRE and ERE, because parsing of grep.extendedregexp configuration variable directly touched opt.regflags back then, which was done by b22520a3 ("grep: allow -E and -n to be turned on by default via configuration", 2011-03-30).

When 84befcd0 ("grep: add a grep.patternType configuration setting", 2012-08-03) introduced extended_regexp_option field, we stopped flipping regflags while reading the configuration, and that was when we should have noticed and stopped dropping REG_EXTENDED bit in the "now we can commit what type to use" helper function.

There is no reason to do this anymore, so stop doing it, more to reduce "wait this is used under fixed/BRE/PCRE how?" confusion when reading the code, than to to save ourselves trivial CPU cycles by removing one assignment.

1. "built-in "git grep"", 2006-04-30.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 grep.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/grep.c b/grep.c
index 47cee45067..bf6c2494fd 100644
--- a/grep.c
+++ b/grep.c
@@ -179,7 +179,6 @@ static void grep_set_pattern_type_option(enum grep_pattern_type pattern_type, st
 	case GREP_PATTERN_TYPE_BRE:
 		opt->fixed = 0;
 		opt->pcre = 0;
-		opt->regflags &= ~REG_EXTENDED;
 		break;
 
 	case GREP_PATTERN_TYPE_ERE:
@@ -191,13 +190,11 @@ static void grep_set_pattern_type_option(enum grep_pattern_type pattern_type, st
 	case GREP_PATTERN_TYPE_FIXED:
 		opt->fixed = 1;
 		opt->pcre = 0;
-		opt->regflags &= ~REG_EXTENDED;
 		break;
 
 	case GREP_PATTERN_TYPE_PCRE:
 		opt->fixed = 0;
 		opt->pcre = 1;
-		opt->regflags &= ~REG_EXTENDED;
 		break;
 	}
 }
@@ -415,10 +412,9 @@ static void compile_fixed_regexp(struct grep_pat *p, struct grep_opt *opt)
 {
 	struct strbuf sb = STRBUF_INIT;
 	int err;
-	int regflags;
+	int regflags = opt->regflags;
 
 	basic_regex_quote_buf(&sb, p->pattern);
-	regflags = opt->regflags & ~REG_EXTENDED;
 	if (opt->ignore_case)
 		regflags |= REG_ICASE;
 	err = regcomp(&p->regexp, sb.buf, regflags);
-- 
2.13.0.303.g4ebf302169
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 25 of 32 in “Easy to review grep & pre-PCRE changes”
  1. 00/31 Easy to review grep & pre-PCRE changesÆvar Arnfjörð Bjarmason, May 25, 2017
  2. 01/31 Makefile & configure: reword inaccurate comment about PCREÆvar Arnfjörð Bjarmason, May 25, 2017
  3. 02/31 grep & rev-list doc: stop promising libpcre for --perl-regexpÆvar Arnfjörð Bjarmason, May 25, 2017
  4. 04/31 log: add exhaustive tests for pattern style options & configÆvar Arnfjörð Bjarmason, May 25, 2017
  5. 03/31 test-lib: rename the LIBPCRE prerequisite to PCREÆvar Arnfjörð Bjarmason, May 25, 2017
  6. 05/31 log: make --regexp-ignore-case work with --perl-regexpÆvar Arnfjörð Bjarmason, May 25, 2017
  7. 07/31 grep: add a test for backreferences in PCRE patternsÆvar Arnfjörð Bjarmason, May 25, 2017
  8. 08/31 grep: change non-ASCII -i test to stop using --debugÆvar Arnfjörð Bjarmason, May 25, 2017
  9. 06/31 grep: add a test asserting that --perl-regexp dies when !PCREÆvar Arnfjörð Bjarmason, May 25, 2017
  10. 09/31 grep: add tests for --threads=N and grep.threadsÆvar Arnfjörð Bjarmason, May 25, 2017
  11. 10/31 grep: amend submodule recursion test for regex engine testingÆvar Arnfjörð Bjarmason, May 25, 2017
  12. 11/31 grep: add tests for grep pattern types being passed to submodulesÆvar Arnfjörð Bjarmason, May 25, 2017
  13. 12/31 grep: add a test helper function for less verbose -f \0 testsÆvar Arnfjörð Bjarmason, May 25, 2017
  14. 13/31 grep: prepare for testing binary regexes containing rx metacharactersÆvar Arnfjörð Bjarmason, May 25, 2017
  15. 14/31 grep: add tests to fix blind spots with \0 patternsÆvar Arnfjörð Bjarmason, May 25, 2017
  16. 16/31 perf: emit progress output when unpacking & buildingÆvar Arnfjörð Bjarmason, May 25, 2017
  17. 18/31 perf: add a comparison test of grep regex engines with -FÆvar Arnfjörð Bjarmason, May 25, 2017
  18. 17/31 perf: add a comparison test of grep regex enginesÆvar Arnfjörð Bjarmason, May 25, 2017
  19. 15/31 perf: add a GIT_PERF_MAKE_COMMAND for when *_MAKE_OPTS won't doÆvar Arnfjörð Bjarmason, May 25, 2017
  20. 19/31 perf: add a comparison test of log --grep regex enginesÆvar Arnfjörð Bjarmason, May 25, 2017
  21. 20/31 perf: add a comparison test of log --grep regex engines with -FÆvar Arnfjörð Bjarmason, May 25, 2017
  22. 24/31 grep: change the internal PCRE macro names to be PCRE1Ævar Arnfjörð Bjarmason, May 25, 2017
  23. 23/31 grep: factor test for \0 in grep patterns into a functionÆvar Arnfjörð Bjarmason, May 25, 2017
  24. 21/31 grep: catch a missing enum in switch statementÆvar Arnfjörð Bjarmason, May 25, 2017
  25. 22/31 grep: remove redundant regflags assignmentsÆvar Arnfjörð Bjarmason, May 25, 2017
  26. 28/31 pack-objects & index-pack: add test for --threads warningÆvar Arnfjörð Bjarmason, May 25, 2017
  27. 30/31 grep: given --threads with NO_PTHREADS=YesPlease, warnÆvar Arnfjörð Bjarmason, May 25, 2017
  28. 25/31 grep: change internal *pcre* variable & function names to be *pcre1*Ævar Arnfjörð Bjarmason, May 25, 2017
  29. 31/31 grep: assert that threading is enabled when calling grep_{lock,unlock}Ævar Arnfjörð Bjarmason, May 25, 2017
  30. 29/31 pack-objects: fix buggy warning about threadsÆvar Arnfjörð Bjarmason, May 25, 2017
  31. 27/31 test-lib: add a PTHREADS prerequisiteÆvar Arnfjörð Bjarmason, May 25, 2017
  32. 26/31 grep: move is_fixed() earlier to avoid forward declarationÆvar Arnfjörð Bjarmason, May 25, 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.