From: Junio C Hamano <gitster@pobox.com>
To: Oleg Nesterov <oleg@redhat.com>
Cc: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Calvin Wan" <calvinwan@google.com>,
"Carlo Marcelo Arenas Belón" <carenas@gmail.com>,
"Elijah Newren" <newren@gmail.com>, "Jeff King" <peff@peff.net>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Mathias Krause" <minipli@grsecurity.net>,
"René Scharfe" <l.s.r@web.de>, "Taylor Blau" <me@ttaylorr.com>,
git@vger.kernel.org
Subject: Re: [PATCH 1/1] git-grep: improve the --show-function behaviour
Date: Mon, 11 Sep 2023 15:34:06 -0700 [thread overview]
Message-ID: <xmqq34zktk4h.fsf@gitster.g> (raw)
In-Reply-To: <20230911121211.GA17401@redhat.com> (Oleg Nesterov's message of "Mon, 11 Sep 2023 14:12:11 +0200")
Oleg Nesterov <oleg@redhat.com> writes:
> $ git grep --untracked -pn xxx TEST.c
>
> before the patch:
>
> TEST.c=1=void func(void);
> TEST.c:3:void func1(xxx)
> TEST.c:5: use1(xxx);
> TEST.c:8:void func2(xxx)
> TEST.c:10: use2(xxx);
>
> after the patch:
>
> TEST.c=1=void func(void);
> TEST.c:3:void func1(xxx)
> TEST.c=3=void func1(xxx)
> TEST.c:5: use1(xxx);
> TEST.c:8:void func2(xxx)
> TEST.c=8=void func2(xxx)
> TEST.c:10: use2(xxx);
>
> which looks much better to me.
The "better" is often subjective. The former is showing what is
going on in the TEST.c code very clearly without wasting valuable
vertical screen real estate, at least to me. If we want to adopt
the proposed behaviour, which I would recommend against, the same
patch should update the documentation, which currently says
Show the preceding line that contains the function name of the
match, unless the matching line is a function name itself.
which has allowed the users to depend on the current behaviour for
practically forever since the feature was introduced by 2944e4e6
(grep: add option -p/--show-function, 2009-07-02).
As René said, I think -p/--show-function is a rather less used
option in modern Git where "--function-context", which back in
2944e4e6 did not exist, tend to be a much more useful option, so the
fallout from such a change may be small, but it still is a backward
incompatible behaviour change that needs to be handled with care.
Thanks.
> Signed-off-by: Oleg Nesterov <oleg@redhat.com>
> ---
> grep.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/grep.c b/grep.c
> index 0904d55b24..7cad8352f4 100644
> --- a/grep.c
> +++ b/grep.c
> @@ -1350,12 +1350,11 @@ static void show_funcname_line(struct grep_opt *opt, struct grep_source *gs,
> while (bol > gs->buf) {
> const char *eol = --bol;
>
> + if (--lno < opt->last_shown)
> + break;
> +
> while (bol > gs->buf && bol[-1] != '\n')
> bol--;
> - lno--;
> -
> - if (lno <= opt->last_shown)
> - break;
>
> if (match_funcname(opt, gs, bol, eol)) {
> show_line(opt, bol, eol, gs->name, lno, 0, '=');
next prev parent reply other threads:[~2023-09-12 1:41 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-11 12:11 [PATCH 0/1] git-grep: improve the --show-function behaviour Oleg Nesterov
2023-09-11 12:12 ` [PATCH 1/1] " Oleg Nesterov
2023-09-11 20:11 ` René Scharfe
2023-09-11 21:54 ` Oleg Nesterov
2023-09-11 22:34 ` Junio C Hamano [this message]
2023-09-11 23:17 ` Oleg Nesterov
2023-09-12 13:04 ` Oleg Nesterov
2023-09-12 13:51 ` Oleg Nesterov
2023-09-12 18:07 ` René Scharfe
2023-09-13 0:31 ` Junio C Hamano
2023-09-13 9:46 ` Oleg Nesterov
2023-09-14 19:34 ` René Scharfe
2023-09-17 16:44 ` Oleg Nesterov
2023-09-14 19:34 ` René Scharfe
2023-09-13 10:15 ` Oleg Nesterov
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=xmqq34zktk4h.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=avarab@gmail.com \
--cc=calvinwan@google.com \
--cc=carenas@gmail.com \
--cc=git@vger.kernel.org \
--cc=l.s.r@web.de \
--cc=me@ttaylorr.com \
--cc=minipli@grsecurity.net \
--cc=newren@gmail.com \
--cc=oleg@redhat.com \
--cc=peff@peff.net \
--cc=torvalds@linux-foundation.org \
/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).