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

Re: [PATCH 5/6] grep: add option -p/--show-function

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 2, 2009, 02:35 UTC
Message-ID
<7vbpo3errd.fsf@alter.siamese.dyndns.org>
In-Reply-To
<4A4BDDEA.3030005@lsrfire.ath.cx>
René Scharfe <rene.scharfe@lsrfire.ath.cx> writes:
> The new option -p instructs git grep to print the previous function
> definition as a context line, similar to diff -p.  Such context lines
> are marked with an equal sign instead of a dash.  This option
> complements the existing context options -A, -B, -C.
I have to say that I am a bit confused with these '==' markers.
    $ ./git-grep -p -n -e pre_context -- '*.c'
    builtin-grep.c=238=static int flush_grep(struct grep_opt *opt,
    builtin-grep.c:288:	if (opt->pre_context || opt->post_context ||...
    ==
    builtin-grep.c=328=static int external_grep(struct grep_opt *opt, co...
    builtin-grep.c:363:	if (opt->post_context || opt->pre_context) {
    builtin-grep.c:364:		if (opt->post_context != opt->pre_co...
    builtin-grep.c:365:			if (opt->pre_context) {
    builtin-grep.c:368:						"%u"...
    ==
    builtin-grep.c=586=static int context_callback(const struct option *...

Am I correct to say that '==' tells us that it has been showing the hits in the previous function shown on the =$lineno= line, but now it will show hits from a different function?

When used with -[ABC], it gets even confusing.
    $ ./git-grep -C1 -p -n -e pre_context -- '*.c'
    builtin-grep.c=238=static int flush_grep(struct grep_opt *opt,
    --
    builtin-grep.c-287-
    builtin-grep.c:288:	if (opt->pre_context || opt->post_context ||...
    builtin-grep.c-289-		/*
    ==
    builtin-grep.c=328=static int external_grep(struct grep_opt *opt, co...
    --
    builtin-grep.c-362-		push_arg("-c");
    builtin-grep.c:363:	if (opt->post_context || opt->pre_context) {
    builtin-grep.c:364:		if (opt->post_context != opt->pre_co...
    builtin-grep.c:365:			if (opt->pre_context) {
    builtin-grep.c-366-				push_arg("-B");
    builtin-grep.c-367-				len += snprintf(argp...
    builtin-grep.c:368:						"%u"...
    builtin-grep.c-369-				if (sizeof(randarg) ...
    ==
    builtin-grep.c=586=static int context_callback(const struct option *...
    --

What do "--" lines tell us in these cases? For example, does the first one tells us that the -p output shown, which was from line 238, is outside of the context of the hit it will show at line 288?

I am in no way complaining. My eyes are just not yet used to the output format and are having hard time getting used to them and/or appreciating how the separation these dividing lines give us is helpful.

Previous: René ScharfeNext: René Scharfe
Message 10 of 15 in “grep: add option -p/--show-function, similar to diff's”
  1. 0/6 grep: add option -p/--show-function, similar to diff'sRené Scharfe, Jul 1, 2009
  2. 1/6 userdiff: add xdiff_clear_find_func()René Scharfe, Jul 1, 2009
  3. 2/6 grep: move context hunk mark handling into show_line()René Scharfe, Jul 1, 2009
  4. Junio C HamanoJul 1, 2009
  5. René ScharfeJul 2, 2009
  6. Junio C HamanoJul 2, 2009
  7. 3/6 grep: print context hunk marks between filesRené Scharfe, Jul 1, 2009
  8. 4/6 grep: handle pre context lines on demandRené Scharfe, Jul 1, 2009
  9. 5/6 grep: add option -p/--show-functionRené Scharfe, Jul 1, 2009
  10. Junio C HamanoJul 2, 2009
  11. René ScharfeJul 2, 2009
  12. Junio C HamanoJul 2, 2009
  13. René ScharfeJul 2, 2009
  14. René ScharfeJul 2, 2009
  15. 6/6 grep -p: support user defined regular expressionsRené Scharfe, Jul 1, 2009

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.