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

Re: [PATCH] git grep -O -i: if the pager is 'less', pass the '-i' option

From
Junio C Hamano <gitster@pobox.com>
Date
May 15, 2014, 19:48 UTC
Message-ID
<xmqqha4qesbj.fsf@gitster.dls.corp.google.com>
In-Reply-To
<alpine.DEB.1.00.1405151943310.14982@s15462909.onlinehome-server.info>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 19 quoted lines
>> Jonathan Nieder <jrnieder@gmail.com> writes:
>> 
>> >>> +		if (opt.ignore_case && !strcmp("less", pager))
>> >>> +			string_list_append(&path_list, "-i");
>> >>
>> >> I have a feeling that this goes against the recent trend of not
>> >> mucking with the expectation of the users on their pagers, if I
>> >> recall correctly the arguments for dropping S from the default given
>> >> to an unconfigured LESS environment variable.
>> >
>> > It's just missing an explanation.
>> > ...
>> > (That's -I, not -i, because it ought to work even when the pattern
>> > contains capital letters.)
>> 
>> Spot on.  The change, especially with "-I", makes sense.
>
> Except that it was not tested with -I. If you change it that way and it
> stops working on Windows, it's useless to me.

That is all true, and I didn't test on Windows, but it seems that the feature is very old in the upstream that we can rely on, so let's take Jonathan's explanation and queue somethink like this.

-- >8 --
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Tue, 8 Feb 2011 00:17:24 -0600
Subject: [PATCH] git grep -O -i: if the pager is 'less', pass the '-I' option
When <command> happens to be the magic string "less", today
	git grep -O<command> -e<pattern>

helpfully passes +/<pattern> to less so you can navigate through the results within a file using the n and shift+n keystrokes.

Alas, that doesn't do the right thing for a case-insensitive match, i.e.

	git grep -i -O<command> -e<pattern>

For that case we should pass --IGNORE-CASE to "less" so that n and shift+n can move between results ignoring case in the pattern.

The original patch came from msysgit and used "-i", but that was not due to lack of support for "-I" but it merely overlooked that it ought to work even when the pattern contains capital letters.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Stepan Kasal <kasal@ucw.cz>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 builtin/grep.c | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/builtin/grep.c b/builtin/grep.c
index 63f8603..c0573d0 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -876,6 +876,9 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
 		if (len > 4 && is_dir_sep(pager[len - 5]))
 			pager += len - 4;
 
+		if (opt.ignore_case && !strcmp("less", pager))
+			string_list_append(&path_list, "-I");
+
 		if (!strcmp("less", pager) || !strcmp("vi", pager)) {
 			struct strbuf buf = STRBUF_INIT;
 			strbuf_addf(&buf, "+/%s%s",
-- 
2.0.0-rc3-419-gdb851f2

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Previous: Johannes SchindelinNext: Stepan Kasal
Message 9 of 14 in “git grep -O -i: if the pager is 'less', pass the '-i' option”
  1. git grep -O -i: if the pager is 'less', pass the '-i' optionStepan Kasal, May 14, 2014
  2. Junio C HamanoMay 14, 2014
  3. Matthieu MoyMay 14, 2014
  4. Jonathan NiederMay 14, 2014
  5. Junio C HamanoMay 14, 2014
  6. Johannes SchindelinMay 15, 2014
  7. Jonathan NiederMay 15, 2014
  8. Johannes SchindelinMay 15, 2014
  9. Junio C HamanoMay 15, 2014
  10. Stepan KasalMay 14, 2014
  11. Jeff KingMay 14, 2014
  12. Johannes SchindelinMay 15, 2014
  13. Jonathan NiederMay 15, 2014
  14. Jeff KingMay 15, 2014

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.