]> git.ipfire.org Git - thirdparty/git.git/commit - grep.c
grep: further simplify setting the pattern type
authorJunio C Hamano <gitster@pobox.com>
Fri, 22 Jul 2016 18:43:14 +0000 (11:43 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 25 Jul 2016 16:16:18 +0000 (09:16 -0700)
commit8465541e8ce8eaf16e66ab847086779768c18f2d
tree07a499721a46f259d2da05d1d6654e39211c657f
parent765428699a5381f113d19974720bc91b5bfeaf1d
grep: further simplify setting the pattern type

When c5c31d33 (grep: move pattern-type bits support to top-level
grep.[ch], 2012-10-03) introduced grep_commit_pattern_type() helper
function, the intention was to allow the users of grep API to having
to fiddle only with .pattern_type_option (which can be set to "fixed",
"basic", "extended", and "pcre"), and then immediately before compiling
the pattern strings for use, call grep_commit_pattern_type() to have
it prepare various bits in the grep_opt structure (like .fixed,
.regflags, etc.).

However, grep_set_pattern_type_option() helper function the grep API
internally uses were left as an external function by mistake.  This
function shouldn't have been made callable by the users of the API.

Later when the grep API was used in revision traversal machinery,
the caller then mistakenly started calling the function around
34a4ae55 (log --grep: use the same helper to set -E/-F options as
"git grep", 2012-10-03), instead of setting the .pattern_type_option
field and letting the grep_commit_pattern_type() to take care of the
details.

This caused an unnecessary bug that made a configured
grep.patternType take precedence over the command line options
(e.g. --basic-regexp, --fixed-strings) in "git log" family of
commands.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
grep.c
grep.h
revision.c
t/t4202-log.sh