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

Re: [PATCH 4/4] grep -O: allow optional argument specifying the pager (or editor)

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 13, 2010, 16:35 UTC
Message-ID
<7vvd9mevqy.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20100612163946.GD5657@burratino>
Jonathan Nieder <jrnieder@gmail.com> writes:
Show 13 quoted lines
> diff --git a/Documentation/git-grep.txt b/Documentation/git-grep.txt
> index 8fdd8e1..d89ec32 100644
> --- a/Documentation/git-grep.txt
> +++ b/Documentation/git-grep.txt
> @@ -14,7 +14,7 @@ SYNOPSIS
>  	   [-E | --extended-regexp] [-G | --basic-regexp]
>  	   [-F | --fixed-strings] [-n]
>  	   [-l | --files-with-matches] [-L | --files-without-match]
> -	   [-O | --open-files-in-pager]
> +	   [(-O | --open-files-in-pager) [<pager>]]
>  	   [-z | --null]
>  	   [-c | --count] [--all-match] [-q | --quiet]
>  	   [--max-depth <depth>]

Hmm, does "git grep -e Heh -O frotz" look for Heh and show in the frotz pager, or does it look for Heh in paths under frotz/ directory and show hits in the default pager?

Show 10 quoted lines
> diff --git a/builtin/grep.c b/builtin/grep.c
> index 1e8b946..f32fbbc 100644
> --- a/builtin/grep.c
> +++ b/builtin/grep.c
> @@ -828,7 +828,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
>  	int cached = 0;
>  	int seen_dashdash = 0;
>  	int external_grep_allowed__ignored;
> -	int show_in_pager = 0;
> +	const char *show_in_pager = NULL, *default_pager = "dummy";

If there were another instance of constant string "dummy" elsewhere in the program, is a clever compiler-linker combo allowed to optimize memory use by allocating one instance of such a string and pointing default_pager pointer to it? IOW, if the patch were:

> +	const char *show_in_pager = NULL, *default_pager = "dummy";
> +	const char *another_dummy = "dummy";
could another_dummy and default_pager start out with the same value?

This is just out of curiosity and does not affect correctness of the code, but I am wondering...

Previous: Paolo BonziniNext: Paolo Bonzini
Message 14 of 20 in “Teach 'git grep' about --open-files-in-pager=[<pager>]”
  1. 0/2 Teach 'git grep' about --open-files-in-pager=[<pager>]Jonathan Nieder, Jun 5, 2010
  2. 1/2 grep: Add the option '--open-files-in-pager'Jonathan Nieder, Jun 5, 2010
  3. Jonathan NiederJun 5, 2010
  4. 2/2 grep -O: allow optional argument specifying the pager (or editor)Jonathan Nieder, Jun 5, 2010
  5. Johannes SchindelinJun 5, 2010
  6. Jonathan NiederJun 12, 2010
  7. Johannes SchindelinJun 12, 2010
  8. 0/4 Teach 'git grep' about --open-files-in-pager=[<pager>]Jonathan Nieder, Jun 12, 2010
  9. 1/4 grep: refactor grep_objects loop into its own functionJonathan Nieder, Jun 12, 2010
  10. 2/4 Unify code paths of threaded grepsJonathan Nieder, Jun 12, 2010
  11. 3/4 grep: Add the option '--open-files-in-pager'Jonathan Nieder, Jun 12, 2010
  12. 4/4 grep -O: allow optional argument specifying the pager (or editor)Jonathan Nieder, Jun 12, 2010
  13. Paolo BonziniJun 12, 2010
  14. Junio C HamanoJun 13, 2010
  15. Paolo BonziniJun 13, 2010
  16. Jonathan NiederJun 14, 2010
  17. Johannes SchindelinJun 12, 2010
  18. Jonathan NiederJun 12, 2010
  19. Paolo BonziniJun 12, 2010
  20. Jonathan NiederJun 12, 2010

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.