A simplification and code deletion of the overly complex setup for the grep API, no behavior changes. For v4 see: https://lore.kernel.org/git/cover-v4-0.7-00000000000-20211203T101348Z-avarab@xxxxxxxxx/ This re-roll is rebased on the latest push-out to "master", now-landed topic had a minor conflict with it in git.c. Ævar Arnfjörð Bjarmason (7): grep.h: remove unused "regex_t regexp" from grep_opt log tests: check if grep_config() is called by "log"-like cmds grep tests: add missing "grep.patternType" config test built-ins: trust the "prefix" from run_builtin() grep.c: don't pass along NULL callback value grep API: call grep_config() after grep_init() grep: simplify config parsing and option parsing builtin/grep.c | 27 +++++----- builtin/log.c | 13 ++++- builtin/ls-tree.c | 2 +- git.c | 1 + grep.c | 124 ++++++++-------------------------------------- grep.h | 33 ++++++++---- revision.c | 4 +- t/t4202-log.sh | 24 +++++++++ t/t7810-grep.sh | 19 +++++++ 9 files changed, 116 insertions(+), 131 deletions(-) Range-diff against v4: 1: d7d232b2b52 = 1: b6a3e0e2e08 grep.h: remove unused "regex_t regexp" from grep_opt 2: f853d669682 = 2: c0d77b2683f log tests: check if grep_config() is called by "log"-like cmds 3: a97b7de3a3c = 3: f02f246aa23 grep tests: add missing "grep.patternType" config test 4: f7d995a5a80 ! 4: a542a352eab built-ins: trust the "prefix" from run_builtin() @@ builtin/ls-tree.c: int cmd_ls_tree(int argc, const char **argv, const char *pref ## git.c ## @@ git.c: static int run_builtin(struct cmd_struct *p, int argc, const char **argv) - int nongit_ok; - prefix = setup_git_directory_gently(&nongit_ok); - } -+ assert(!prefix || *prefix); - precompose_argv_prefix(argc, argv, NULL); - if (use_pager == -1 && p->option & (RUN_SETUP | RUN_SETUP_GENTLY) && - !(p->option & DELAY_PAGER_CONFIG)) + } else { + prefix = NULL; + } ++ assert(!prefix || *prefix); + precompose_argv_prefix(argc, argv, NULL); + if (use_pager == -1 && run_setup && + !(p->option & DELAY_PAGER_CONFIG)) ## grep.c ## @@ grep.c: int grep_config(const char *var, const char *value, void *cb) 5: ab1685f0dad = 5: a33b00a247e grep.c: don't pass along NULL callback value 6: 8ffa22df8c7 = 6: 92b1c3958fa grep API: call grep_config() after grep_init() 7: efbd1c50b43 = 7: 63de643ebc2 grep: simplify config parsing and option parsing -- 2.34.1.1146.gb52885e7c44