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

[PATCH 2/5] diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit

From
Stefan Beller <sbeller@google.com>
Date
Jan 3, 2018, 00:46 UTC
Message-ID
<20180103004624.222528-3-sbeller@google.com>
In-Reply-To
<20180103004624.222528-1-sbeller@google.com>

Currently flags for pickaxing are found in different places. Unify the flags into the `pickaxe_opts` field, which will contain any pickaxe related flags.

Signed-off-by: Stefan Beller <sbeller@google.com>
---
 diff.h             | 3 ++-
 diffcore-pickaxe.c | 6 +++---
 revision.c         | 2 +-
 3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/diff.h b/diff.h
index ea310f76fd..8af1213684 100644
--- a/diff.h
+++ b/diff.h
@@ -91,7 +91,6 @@ struct diff_flags {
 	unsigned override_submodule_config:1;
 	unsigned dirstat_by_line:1;
 	unsigned funccontext:1;
-	unsigned pickaxe_ignore_case:1;
 	unsigned default_follow_renames:1;
 };
 
@@ -327,6 +326,8 @@ extern void diff_setup_done(struct diff_options *);
 #define DIFF_PICKAXE_KIND_S	4 /* traditional plumbing counter */
 #define DIFF_PICKAXE_KIND_G	8 /* grep in the patch */
 
+#define DIFF_PICKAXE_IGNORE_CASE	32
+
 extern void diffcore_std(struct diff_options *);
 extern void diffcore_fix_diff_index(struct diff_options *);
 
diff --git a/diffcore-pickaxe.c b/diffcore-pickaxe.c
index 9476bd2108..4b5d88ea46 100644
--- a/diffcore-pickaxe.c
+++ b/diffcore-pickaxe.c
@@ -222,11 +222,11 @@ void diffcore_pickaxe(struct diff_options *o)
 
 	if (opts & (DIFF_PICKAXE_REGEX | DIFF_PICKAXE_KIND_G)) {
 		int cflags = REG_EXTENDED | REG_NEWLINE;
-		if (o->flags.pickaxe_ignore_case)
+		if (o->pickaxe_opts & DIFF_PICKAXE_IGNORE_CASE)
 			cflags |= REG_ICASE;
 		regcomp_or_die(&regex, needle, cflags);
 		regexp = &regex;
-	} else if (o->flags.pickaxe_ignore_case &&
+	} else if (o->pickaxe_opts & DIFF_PICKAXE_IGNORE_CASE &&
 		   has_non_ascii(needle)) {
 		struct strbuf sb = STRBUF_INIT;
 		int cflags = REG_NEWLINE | REG_ICASE;
@@ -236,7 +236,7 @@ void diffcore_pickaxe(struct diff_options *o)
 		strbuf_release(&sb);
 		regexp = &regex;
 	} else {
-		kws = kwsalloc(o->flags.pickaxe_ignore_case
+		kws = kwsalloc(o->pickaxe_opts & DIFF_PICKAXE_IGNORE_CASE
 			       ? tolower_trans_tbl : NULL);
 		kwsincr(kws, needle, strlen(needle));
 		kwsprep(kws);
diff --git a/revision.c b/revision.c
index e2e691dd5a..ccf1d212ce 100644
--- a/revision.c
+++ b/revision.c
@@ -2076,7 +2076,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
 		revs->grep_filter.pattern_type_option = GREP_PATTERN_TYPE_ERE;
 	} else if (!strcmp(arg, "--regexp-ignore-case") || !strcmp(arg, "-i")) {
 		revs->grep_filter.ignore_case = 1;
-		revs->diffopt.flags.pickaxe_ignore_case = 1;
+		revs->diffopt.pickaxe_opts |= DIFF_PICKAXE_IGNORE_CASE;
 	} else if (!strcmp(arg, "--fixed-strings") || !strcmp(arg, "-F")) {
 		revs->grep_filter.pattern_type_option = GREP_PATTERN_TYPE_FIXED;
 	} else if (!strcmp(arg, "--perl-regexp") || !strcmp(arg, "-P")) {
-- 
2.15.1.620.gb9897f4670-goog
Previous: Junio C HamanoNext: Stefan Beller
Message 4 of 19 in “pickaxe refactorings and a new mode to find blobs (WAS: diffcore: add a pickaxe option to find a specific blob)”
  1. 0/5 pickaxe refactorings and a new mode to find blobs (WAS: diffcore: add a pickaxe option to find a specific blob)Stefan Beller, Jan 3, 2018
  2. 1/5 diff.h: Make pickaxe_opts an unsigned bit fieldStefan Beller, Jan 3, 2018
  3. Junio C HamanoJan 3, 2018
  4. 2/5 diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bitStefan Beller, Jan 3, 2018
  5. 4/5 diffcore: add a pickaxe option to find a specific blobStefan Beller, Jan 3, 2018
  6. 4/5 diffcore: add a pickaxe option to find a specific blobStefan Beller, Jan 3, 2018
  7. 5/5 diff: properly error out when combining multiple pickaxe optionsStefan Beller, Jan 3, 2018
  8. Jacob KellerJan 3, 2018
  9. Junio C HamanoJan 3, 2018
  10. Stefan BellerJan 3, 2018
  11. 3/5 diff: introduce DIFF_PICKAXE_KINDS_MASKStefan Beller, Jan 3, 2018
  12. Junio C HamanoJan 3, 2018
  13. 0/6 pickaxe refactorings and a new mode to find blobs (WAS: diffcore: add a pickaxe option to find a specific blob)Stefan Beller, Jan 4, 2018
  14. 1/6 diff.h: Make pickaxe_opts an unsigned bit fieldStefan Beller, Jan 4, 2018
  15. 3/6 diff: introduce DIFF_PICKAXE_KINDS_MASKStefan Beller, Jan 4, 2018
  16. 4/6 diffcore: add a pickaxe option to find a specific blobStefan Beller, Jan 4, 2018
  17. 5/6 diff: properly error out when combining multiple pickaxe optionsStefan Beller, Jan 4, 2018
  18. 2/6 diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bitStefan Beller, Jan 4, 2018
  19. 6/6 diff: use HAS_MULTI_BITS instead of counting bits manuallyStefan Beller, Jan 4, 2018

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.