Re: [PATCH] git-rebase-interactive: avoid breaking when GREP_OPTIONS="-H"
Junio C Hamano <gitster@pobox.com> writes:
Show 19 quoted lines
> Carlo Marcelo Arenas Belon <carenas@sajinet.com.pe> writes:
>
>> if GREP_OPTIONS is set and includes -H, using `grep -c` will fail
>> to generate a numeric count and result in the following error :
>>
>> /usr/libexec/git-core/git-rebase--interactive: line 110: (standard
>> input):1+(standard input):0: missing `)' (error token is
>> "input):1+(standard input):0")
>>
>> instead of grep counting use `wc -l` to return the line count.
>
> Thanks.
>
> How does your patch help when the user has GREP_OPTIONS=-C3 in the
> environment?
>
> I think a saner workaround for this user environment bug (or GNU grep
> misfeature) is to unset GREP_OPTIONS at the beginning of the script, or
> even in git-sh-setup.
Or even this.
git.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/git.c b/git.c
index 0b22595..3548154 100644
--- a/git.c
+++ b/git.c
@@ -450,11 +450,24 @@ static int run_argv(int *argcp, const char ***argv)
return done_alias;
}
+static void sanitize_env(void) {
+ static const char *vars[] = {
+ "GREP_OPTIONS",
+ "GREP_COLOR",
+ "GREP_COLORS",
+ NULL,
+ };
+ const char **p;
+
+ for (p = vars; *p; p++)
+ unsetenv(*p);
+}
int main(int argc, const char **argv)
{
const char *cmd;
+ sanitize_env();
cmd = git_extract_argv0_path(argv[0]);
if (!cmd)
cmd = "git-help";