From: Junio C Hamano <gitster@pobox.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: git@vger.kernel.org, J Smith <dark.panda@gmail.com>,
Taylor Blau <me@ttaylorr.com>
Subject: Re: [PATCH v9 9/9] grep: simplify config parsing and option parsing
Date: Thu, 27 Jan 2022 12:30:09 -0800 [thread overview]
Message-ID: <xmqq35l82a7i.fsf@gitster.g> (raw)
In-Reply-To: <patch-v9-9.9-445467e87f7-20220127T115058Z-avarab@gmail.com> ("Ævar Arnfjörð Bjarmason"'s message of "Thu, 27 Jan 2022 12:56:31 +0100")
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> In a preceding commit we changed grep_config() to be called after
> grep_init(), which means that much of the complexity here can go
> away.
>
> As before both "grep.patternType" and "grep.extendedRegexp" are
> last-one-wins variable, with "grep.extendedRegexp" yielding to
> "grep.patternType", except when "grep.patternType=default".
>
> Note that this applies as we parse the config, i.e. a sequence of:
>
> -c grep.patternType=perl
> -c grep.extendedRegexp=true \
> -c grep.patternType=default
>
> should select ERE due to "grep.extendedRegexp=true and
> grep.patternType=default".
Correct. The same reasoning would apply to:
-c grep.extendedRegexp=true \
-c grep.patternType=perl \
-c grep.patternType=default
which should also select ERE due to "grep.extendedRegexp=true and
grep.patternType=default". As we re-check grep.extendedRegexp every
time grep.patternType changes, and we keep extendedRegexp as a
separate copy without getting lost like earlier rounds of this
series, this should work.
Would this also work?
-c grep.extendedRegexp=false \
-c grep.patternType=default \
-c grep.extendedRegexp=true
We do keep extendedRegexp, but as soon as we read .patternType that
is default, adjust_pattern_type() overwrites the pattern_type_option
member with BRE, and the fact that .patternType was specified as "do
whatever the .extendedRegexp says" is lost when we read the third
one.
So, no, I am not sure this is correct.
> diff --git a/grep.c b/grep.c
> index 60228a95a4f..f07a21ff1aa 100644
> --- a/grep.c
> +++ b/grep.c
> @@ -48,6 +48,12 @@ static int parse_pattern_type_arg(const char *opt, const char *arg)
>
> define_list_config_array_extra(color_grep_slots, {"match"});
>
> +static void adjust_pattern_type(enum grep_pattern_type *pto, const int ero)
> +{
> + if (*pto == GREP_PATTERN_TYPE_UNSPECIFIED)
> + *pto = ero ? GREP_PATTERN_TYPE_ERE : GREP_PATTERN_TYPE_BRE;
> +}
OK. Earlier rounds just replaced the UNSPECIFIED with hardcoded value "0",
which was more or less pointless. I think this is easier to follow.
But as I said, "committing" ERE vs BRE in this manner is probably
way too early and produce an incorrect result. Instead ...
> @@ -490,9 +446,9 @@ static void compile_regexp(struct grep_pat *p, struct grep_opt *opt)
... this is the right place to do the "see if pattern_type_option is
'default' and if so use 'extended_regexp_option' to commit to either
BRE or ERE".
I guess that is what I have been repeating during the review of the
past few rounds. Am I overlooking some other cases where that
simpler-to-explain approach does not work?
> p->word_regexp = opt->word_regexp;
> p->ignore_case = opt->ignore_case;
> - p->fixed = opt->fixed;
> + p->fixed = opt->pattern_type_option == GREP_PATTERN_TYPE_FIXED;
>
> - if (!opt->pcre2 &&
> + if (opt->pattern_type_option != GREP_PATTERN_TYPE_PCRE &&
> memchr(p->pattern, 0, p->patternlen))
> die(_("given pattern contains NULL byte (via -f <file>). This is only supported with -P under PCRE v2"));
>
> @@ -544,14 +500,14 @@ static void compile_regexp(struct grep_pat *p, struct grep_opt *opt)
> return;
> }
>
> - if (opt->pcre2) {
> + if (opt->pattern_type_option == GREP_PATTERN_TYPE_PCRE) {
> compile_pcre2_pattern(p, opt);
> return;
> }
>
> if (p->ignore_case)
> regflags |= REG_ICASE;
> - if (opt->extended_regexp_option)
> + if (opt->pattern_type_option == GREP_PATTERN_TYPE_ERE)
> regflags |= REG_EXTENDED;
> err = regcomp(&p->regexp, p->pattern, regflags);
> if (err) {
> diff --git a/grep.h b/grep.h
> index 89a2ce51130..f89324e9aa9 100644
> --- a/grep.h
> +++ b/grep.h
> @@ -143,7 +143,6 @@ struct grep_opt {
> int unmatch_name_only;
> int count;
> int word_regexp;
> - int fixed;
> int all_match;
> int no_body_match;
> int body_hit;
> @@ -154,7 +153,6 @@ struct grep_opt {
> int allow_textconv;
> int extended;
> int use_reflog_filter;
> - int pcre2;
> int relative;
> int pathname;
> int null_following_name;
> @@ -183,6 +181,7 @@ struct grep_opt {
> .relative = 1, \
> .pathname = 1, \
> .max_depth = -1, \
> + .extended_regexp_option = -1, \
I do not think you meant this. Uninitialized grep.extendedRegexp
defaults to 0 (BRE), I think.
> .pattern_type_option = GREP_PATTERN_TYPE_UNSPECIFIED, \
> .colors = { \
> [GREP_COLOR_CONTEXT] = "", \
> @@ -202,7 +201,6 @@ struct grep_opt {
>
> int grep_config(const char *var, const char *value, void *);
> void grep_init(struct grep_opt *, struct repository *repo);
> -void grep_commit_pattern_type(enum grep_pattern_type, struct grep_opt *opt);
>
> void append_grep_pat(struct grep_opt *opt, const char *pat, size_t patlen, const char *origin, int no, enum grep_pat_token t);
> void append_grep_pattern(struct grep_opt *opt, const char *pat, const char *origin, int no, enum grep_pat_token t);
> diff --git a/revision.c b/revision.c
> index d6e0e2b23b5..dd301e30147 100644
> --- a/revision.c
> +++ b/revision.c
> @@ -2860,8 +2860,6 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
>
> diff_setup_done(&revs->diffopt);
>
> - grep_commit_pattern_type(GREP_PATTERN_TYPE_UNSPECIFIED,
> - &revs->grep_filter);
> if (!is_encoding_utf8(get_log_output_encoding()))
> revs->grep_filter.ignore_locale = 1;
> compile_grep_patterns(&revs->grep_filter);
next prev parent reply other threads:[~2022-01-27 20:30 UTC|newest]
Thread overview: 151+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-06 21:10 [PATCH 0/8] grep: simplify & delete code by changing obscure cfg variable behavior Ævar Arnfjörð Bjarmason
2021-11-06 21:10 ` [PATCH 1/8] grep.h: remove unused "regex_t regexp" from grep_opt Ævar Arnfjörð Bjarmason
2021-11-06 21:10 ` [PATCH 2/8] git.c & grep.c: assert that "prefix" is NULL or non-zero string Ævar Arnfjörð Bjarmason
2021-11-08 20:37 ` Taylor Blau
2021-11-06 21:10 ` [PATCH 3/8] grep: remove unused "prefix_length" member Ævar Arnfjörð Bjarmason
2021-11-08 20:42 ` Taylor Blau
2021-11-06 21:10 ` [PATCH 4/8] grep.c: move "prefix" out of "struct grep_opt" Ævar Arnfjörð Bjarmason
2021-11-08 20:56 ` Taylor Blau
2021-11-09 2:10 ` Ævar Arnfjörð Bjarmason
2021-11-10 0:18 ` Taylor Blau
2021-11-06 21:10 ` [PATCH 5/8] log tests: check if grep_config() is called by "log"-like cmds Ævar Arnfjörð Bjarmason
2021-11-06 21:10 ` [PATCH 6/8] grep API: call grep_config() after grep_init() Ævar Arnfjörð Bjarmason
2021-11-08 21:49 ` Taylor Blau
2021-11-09 2:06 ` Ævar Arnfjörð Bjarmason
2021-11-10 0:18 ` Taylor Blau
2021-11-06 21:10 ` [PATCH 7/8] grep: simplify config parsing, change grep.<rx config> interaction Ævar Arnfjörð Bjarmason
2021-11-08 23:04 ` Taylor Blau
2021-11-09 2:01 ` Ævar Arnfjörð Bjarmason
2021-11-10 0:16 ` Taylor Blau
2021-11-06 21:10 ` [PATCH 8/8] grep: make "extendedRegexp=true" the same as "patternType=extended" Ævar Arnfjörð Bjarmason
2021-11-10 1:43 ` [PATCH v2 0/8] grep: simplify & delete code by changing obscure cfg variable behavior Ævar Arnfjörð Bjarmason
2021-11-10 1:43 ` [PATCH v2 1/8] grep.h: remove unused "regex_t regexp" from grep_opt Ævar Arnfjörð Bjarmason
2021-11-12 16:11 ` Junio C Hamano
2021-11-10 1:43 ` [PATCH v2 2/8] built-ins: trust the "prefix" from run_builtin() Ævar Arnfjörð Bjarmason
2021-11-12 16:38 ` Junio C Hamano
2021-11-10 1:43 ` [PATCH v2 3/8] log tests: check if grep_config() is called by "log"-like cmds Ævar Arnfjörð Bjarmason
2021-11-12 17:09 ` Junio C Hamano
2021-11-10 1:43 ` [PATCH v2 4/8] grep docs: de-duplicate configuration sections Ævar Arnfjörð Bjarmason
2021-11-12 17:15 ` Junio C Hamano
2021-11-10 1:43 ` [PATCH v2 5/8] grep.c: don't pass along NULL callback value Ævar Arnfjörð Bjarmason
2021-11-12 17:18 ` Junio C Hamano
2021-11-10 1:43 ` [PATCH v2 6/8] grep API: call grep_config() after grep_init() Ævar Arnfjörð Bjarmason
2021-11-12 17:32 ` Junio C Hamano
2021-11-10 1:43 ` [PATCH v2 7/8] grep: simplify config parsing, change grep.<rx config> interaction Ævar Arnfjörð Bjarmason
2021-11-12 19:19 ` Junio C Hamano
2021-11-13 9:55 ` Ævar Arnfjörð Bjarmason
2021-11-10 1:43 ` [PATCH v2 8/8] grep: make "extendedRegexp=true" the same as "patternType=extended" Ævar Arnfjörð Bjarmason
2021-11-12 19:32 ` Junio C Hamano
2021-11-10 2:23 ` [PATCH v2 0/8] grep: simplify & delete code by changing obscure cfg variable behavior Taylor Blau
2021-11-29 14:50 ` [PATCH v3 0/7] grep: simplify & delete "init" & "config" code Ævar Arnfjörð Bjarmason
2021-11-29 14:50 ` [PATCH v3 1/7] grep.h: remove unused "regex_t regexp" from grep_opt Ævar Arnfjörð Bjarmason
2021-11-29 14:50 ` [PATCH v3 2/7] log tests: check if grep_config() is called by "log"-like cmds Ævar Arnfjörð Bjarmason
2022-03-04 8:57 ` Tests in t4202 are aborted early, was: Re: [PATCH v3 2/7] log Fabian Stelzer
2022-03-04 10:05 ` [PATCH] log tests: fix "abort tests early" regression in ff37a60c369 Ævar Arnfjörð Bjarmason
2021-11-29 14:50 ` [PATCH v3 3/7] grep tests: add missing "grep.patternType" config test Ævar Arnfjörð Bjarmason
2021-11-29 21:52 ` Junio C Hamano
2021-12-03 0:48 ` Junio C Hamano
2021-11-29 14:50 ` [PATCH v3 4/7] built-ins: trust the "prefix" from run_builtin() Ævar Arnfjörð Bjarmason
2021-11-29 14:50 ` [PATCH v3 5/7] grep.c: don't pass along NULL callback value Ævar Arnfjörð Bjarmason
2021-11-29 14:50 ` [PATCH v3 6/7] grep API: call grep_config() after grep_init() Ævar Arnfjörð Bjarmason
2021-11-29 14:50 ` [PATCH v3 7/7] grep: simplify config parsing and option parsing Ævar Arnfjörð Bjarmason
2021-11-29 21:06 ` [PATCH v3 0/7] grep: simplify & delete "init" & "config" code Junio C Hamano
2021-11-29 21:36 ` Junio C Hamano
2021-12-03 10:19 ` [PATCH v4 " Ævar Arnfjörð Bjarmason
2021-12-03 10:19 ` [PATCH v4 1/7] grep.h: remove unused "regex_t regexp" from grep_opt Ævar Arnfjörð Bjarmason
2021-12-03 10:19 ` [PATCH v4 2/7] log tests: check if grep_config() is called by "log"-like cmds Ævar Arnfjörð Bjarmason
2021-12-03 10:19 ` [PATCH v4 3/7] grep tests: add missing "grep.patternType" config test Ævar Arnfjörð Bjarmason
2021-12-03 10:19 ` [PATCH v4 4/7] built-ins: trust the "prefix" from run_builtin() Ævar Arnfjörð Bjarmason
2021-12-03 10:19 ` [PATCH v4 5/7] grep.c: don't pass along NULL callback value Ævar Arnfjörð Bjarmason
2021-12-03 10:19 ` [PATCH v4 6/7] grep API: call grep_config() after grep_init() Ævar Arnfjörð Bjarmason
2021-12-03 10:19 ` [PATCH v4 7/7] grep: simplify config parsing and option parsing Ævar Arnfjörð Bjarmason
2021-12-22 2:58 ` [PATCH v5 0/7] grep: simplify & delete "init" & "config" code Ævar Arnfjörð Bjarmason
2021-12-22 2:58 ` [PATCH v5 1/7] grep.h: remove unused "regex_t regexp" from grep_opt Ævar Arnfjörð Bjarmason
2021-12-22 2:58 ` [PATCH v5 2/7] log tests: check if grep_config() is called by "log"-like cmds Ævar Arnfjörð Bjarmason
2021-12-22 2:58 ` [PATCH v5 3/7] grep tests: add missing "grep.patternType" config test Ævar Arnfjörð Bjarmason
2021-12-23 22:25 ` Junio C Hamano
2021-12-25 0:06 ` Re* " Junio C Hamano
2021-12-25 0:19 ` [RFC/PATCH] grep: allow scripts to ignore configured pattern type Junio C Hamano
2021-12-26 23:09 ` Ævar Arnfjörð Bjarmason
2021-12-25 1:04 ` Re* [PATCH v5 3/7] grep tests: add missing "grep.patternType" config test Junio C Hamano
2021-12-22 2:58 ` [PATCH v5 4/7] built-ins: trust the "prefix" from run_builtin() Ævar Arnfjörð Bjarmason
2021-12-22 2:58 ` [PATCH v5 5/7] grep.c: don't pass along NULL callback value Ævar Arnfjörð Bjarmason
2021-12-22 2:58 ` [PATCH v5 6/7] grep API: call grep_config() after grep_init() Ævar Arnfjörð Bjarmason
2021-12-22 2:58 ` [PATCH v5 7/7] grep: simplify config parsing and option parsing Ævar Arnfjörð Bjarmason
2021-12-23 22:37 ` Junio C Hamano
2021-12-23 0:30 ` [PATCH v5 0/7] grep: simplify & delete "init" & "config" code Junio C Hamano
2021-12-26 22:37 ` [PATCH v6 " Ævar Arnfjörð Bjarmason
2021-12-26 22:37 ` [PATCH v6 1/7] grep.h: remove unused "regex_t regexp" from grep_opt Ævar Arnfjörð Bjarmason
2021-12-26 22:37 ` [PATCH v6 2/7] log tests: check if grep_config() is called by "log"-like cmds Ævar Arnfjörð Bjarmason
2021-12-26 22:37 ` [PATCH v6 3/7] grep tests: add missing "grep.patternType" config tests Ævar Arnfjörð Bjarmason
2021-12-26 22:37 ` [PATCH v6 4/7] built-ins: trust the "prefix" from run_builtin() Ævar Arnfjörð Bjarmason
2021-12-26 22:37 ` [PATCH v6 5/7] grep.c: don't pass along NULL callback value Ævar Arnfjörð Bjarmason
2021-12-26 22:37 ` [PATCH v6 6/7] grep API: call grep_config() after grep_init() Ævar Arnfjörð Bjarmason
2021-12-26 22:37 ` [PATCH v6 7/7] grep: simplify config parsing and option parsing Ævar Arnfjörð Bjarmason
2021-12-27 6:06 ` Junio C Hamano
2021-12-27 18:51 ` Junio C Hamano
2021-12-28 1:07 ` [PATCH v7 00/10] grep: simplify & delete "init" & "config" code Ævar Arnfjörð Bjarmason
2021-12-28 1:07 ` [PATCH v7 01/10] grep.h: remove unused "regex_t regexp" from grep_opt Ævar Arnfjörð Bjarmason
2021-12-28 1:07 ` [PATCH v7 02/10] log tests: check if grep_config() is called by "log"-like cmds Ævar Arnfjörð Bjarmason
2021-12-28 1:07 ` [PATCH v7 03/10] grep tests: add missing "grep.patternType" config tests Ævar Arnfjörð Bjarmason
2021-12-28 1:07 ` [PATCH v7 04/10] built-ins: trust the "prefix" from run_builtin() Ævar Arnfjörð Bjarmason
2021-12-28 1:07 ` [PATCH v7 05/10] grep.c: don't pass along NULL callback value Ævar Arnfjörð Bjarmason
2021-12-28 1:07 ` [PATCH v7 06/10] grep API: call grep_config() after grep_init() Ævar Arnfjörð Bjarmason
2021-12-28 1:07 ` [PATCH v7 07/10] grep.h: make "grep_opt.pattern_type_option" use its enum Ævar Arnfjörð Bjarmason
2021-12-28 1:07 ` [PATCH v7 08/10] grep.c: do "if (bool && memchr())" not "if (memchr() && bool)" Ævar Arnfjörð Bjarmason
2021-12-28 1:07 ` [PATCH v7 09/10] grep: simplify config parsing and option parsing Ævar Arnfjörð Bjarmason
2021-12-28 1:07 ` [PATCH v7 10/10] grep.[ch]: remove GREP_PATTERN_TYPE_UNSPECIFIED Ævar Arnfjörð Bjarmason
2022-01-18 15:55 ` [PATCH v8 00/10] grep: simplify & delete "init" & "config" code Ævar Arnfjörð Bjarmason
2022-01-18 15:55 ` [PATCH v8 01/10] grep.h: remove unused "regex_t regexp" from grep_opt Ævar Arnfjörð Bjarmason
2022-01-18 15:55 ` [PATCH v8 02/10] log tests: check if grep_config() is called by "log"-like cmds Ævar Arnfjörð Bjarmason
2022-01-18 15:55 ` [PATCH v8 03/10] grep tests: add missing "grep.patternType" config tests Ævar Arnfjörð Bjarmason
2022-01-18 15:55 ` [PATCH v8 04/10] built-ins: trust the "prefix" from run_builtin() Ævar Arnfjörð Bjarmason
2022-01-18 15:55 ` [PATCH v8 05/10] grep.c: don't pass along NULL callback value Ævar Arnfjörð Bjarmason
2022-01-18 15:55 ` [PATCH v8 06/10] grep API: call grep_config() after grep_init() Ævar Arnfjörð Bjarmason
2022-01-18 15:55 ` [PATCH v8 07/10] grep.h: make "grep_opt.pattern_type_option" use its enum Ævar Arnfjörð Bjarmason
2022-01-18 15:55 ` [PATCH v8 08/10] grep.c: do "if (bool && memchr())" not "if (memchr() && bool)" Ævar Arnfjörð Bjarmason
2022-01-18 15:55 ` [PATCH v8 09/10] grep: simplify config parsing and option parsing Ævar Arnfjörð Bjarmason
2022-01-18 22:50 ` Junio C Hamano
2022-01-18 22:55 ` Junio C Hamano
2022-01-19 0:17 ` Ævar Arnfjörð Bjarmason
2022-01-19 1:09 ` Junio C Hamano
2022-01-19 1:15 ` Ævar Arnfjörð Bjarmason
2022-01-18 15:55 ` [PATCH v8 10/10] grep.[ch]: remove GREP_PATTERN_TYPE_UNSPECIFIED Ævar Arnfjörð Bjarmason
2022-01-27 11:56 ` [PATCH v9 0/9] grep: simplify & delete "init" & "config" code Ævar Arnfjörð Bjarmason
2022-01-27 11:56 ` [PATCH v9 1/9] grep.h: remove unused "regex_t regexp" from grep_opt Ævar Arnfjörð Bjarmason
2022-01-27 11:56 ` [PATCH v9 2/9] log tests: check if grep_config() is called by "log"-like cmds Ævar Arnfjörð Bjarmason
2022-01-27 11:56 ` [PATCH v9 3/9] grep tests: add missing "grep.patternType" config tests Ævar Arnfjörð Bjarmason
2022-01-27 11:56 ` [PATCH v9 4/9] built-ins: trust the "prefix" from run_builtin() Ævar Arnfjörð Bjarmason
2022-01-27 11:56 ` [PATCH v9 5/9] grep.c: don't pass along NULL callback value Ævar Arnfjörð Bjarmason
2022-01-27 11:56 ` [PATCH v9 6/9] grep API: call grep_config() after grep_init() Ævar Arnfjörð Bjarmason
2022-01-27 11:56 ` [PATCH v9 7/9] grep.h: make "grep_opt.pattern_type_option" use its enum Ævar Arnfjörð Bjarmason
2022-01-27 11:56 ` [PATCH v9 8/9] grep.c: do "if (bool && memchr())" not "if (memchr() && bool)" Ævar Arnfjörð Bjarmason
2022-01-27 11:56 ` [PATCH v9 9/9] grep: simplify config parsing and option parsing Ævar Arnfjörð Bjarmason
2022-01-27 20:30 ` Junio C Hamano [this message]
2022-01-27 21:35 ` Junio C Hamano
2022-01-27 21:39 ` Junio C Hamano
2022-02-04 21:20 ` [PATCH v10 0/9] grep: simplify & delete "init" & "config" code Ævar Arnfjörð Bjarmason
2022-02-04 21:20 ` [PATCH v10 1/9] grep.h: remove unused "regex_t regexp" from grep_opt Ævar Arnfjörð Bjarmason
2022-02-04 21:20 ` [PATCH v10 2/9] log tests: check if grep_config() is called by "log"-like cmds Ævar Arnfjörð Bjarmason
2022-02-04 21:20 ` [PATCH v10 3/9] grep tests: add missing "grep.patternType" config tests Ævar Arnfjörð Bjarmason
2022-02-04 23:03 ` Junio C Hamano
2022-02-04 23:24 ` Junio C Hamano
2022-02-04 21:20 ` [PATCH v10 4/9] built-ins: trust the "prefix" from run_builtin() Ævar Arnfjörð Bjarmason
2022-02-04 21:20 ` [PATCH v10 5/9] grep.c: don't pass along NULL callback value Ævar Arnfjörð Bjarmason
2022-02-04 21:20 ` [PATCH v10 6/9] grep API: call grep_config() after grep_init() Ævar Arnfjörð Bjarmason
2022-02-04 21:20 ` [PATCH v10 7/9] grep.h: make "grep_opt.pattern_type_option" use its enum Ævar Arnfjörð Bjarmason
2022-02-04 21:20 ` [PATCH v10 8/9] grep.c: do "if (bool && memchr())" not "if (memchr() && bool)" Ævar Arnfjörð Bjarmason
2022-02-04 21:20 ` [PATCH v10 9/9] grep: simplify config parsing and option parsing Ævar Arnfjörð Bjarmason
2022-02-04 23:41 ` Junio C Hamano
2022-02-16 0:00 ` [PATCH v11 00/10] grep: simplify & delete "init" & "config" code Ævar Arnfjörð Bjarmason
2022-02-16 0:00 ` [PATCH v11 01/10] grep.h: remove unused "regex_t regexp" from grep_opt Ævar Arnfjörð Bjarmason
2022-02-16 0:00 ` [PATCH v11 02/10] log tests: check if grep_config() is called by "log"-like cmds Ævar Arnfjörð Bjarmason
2022-02-16 0:00 ` [PATCH v11 03/10] grep tests: create a helper function for "BRE" or "ERE" Ævar Arnfjörð Bjarmason
2022-02-16 0:00 ` [PATCH v11 04/10] grep tests: add missing "grep.patternType" config tests Ævar Arnfjörð Bjarmason
2022-02-16 0:00 ` [PATCH v11 05/10] built-ins: trust the "prefix" from run_builtin() Ævar Arnfjörð Bjarmason
2022-02-16 0:00 ` [PATCH v11 06/10] grep.c: don't pass along NULL callback value Ævar Arnfjörð Bjarmason
2022-02-16 0:00 ` [PATCH v11 07/10] grep API: call grep_config() after grep_init() Ævar Arnfjörð Bjarmason
2022-02-16 0:00 ` [PATCH v11 08/10] grep.h: make "grep_opt.pattern_type_option" use its enum Ævar Arnfjörð Bjarmason
2022-02-16 0:00 ` [PATCH v11 09/10] grep.c: do "if (bool && memchr())" not "if (memchr() && bool)" Ævar Arnfjörð Bjarmason
2022-02-16 0:00 ` [PATCH v11 10/10] grep: simplify config parsing and option parsing Ævar Arnfjörð Bjarmason
2022-02-16 2:20 ` [PATCH v11 00/10] grep: simplify & delete "init" & "config" code Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqq35l82a7i.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=avarab@gmail.com \
--cc=dark.panda@gmail.com \
--cc=git@vger.kernel.org \
--cc=me@ttaylorr.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).