threads / patch / 22799

patchshortlog: do not stall when there is no input

Subject: [PATCH] shortlog: do not stall when there is no input

## tl;dr

3 messages between Feb 24, 2010 and Feb 24, 2010. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Michele Ballabio· Feb 24, 2010, 19:20 UTC · lore

A simple "git shortlog" outside of a git repository used to stall waiting for an input. Fix this by testing with isatty() before calling read_from_stdin().

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
---
 builtin-shortlog.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
Show changes to builtin-shortlog.c +1 −2
diff --git a/builtin-shortlog.c b/builtin-shortlog.c
index b3b055f..ff5dca6 100644
--- a/builtin-shortlog.c
+++ b/builtin-shortlog.c
@@ -294,9 +294,8 @@ parse_done:
 	/* assume HEAD if from a tty */
 	if (!nongit && !rev.pending.nr && isatty(0))
 		add_head_to_pending(&rev);
-	if (rev.pending.nr == 0) {
+	if (rev.pending.nr == 0 && !isatty(0))
 		read_from_stdin(&log);
-	}
 	else
 		get_from_rev(&rev, &log);
 
-- 
1.7.0
Junio C Hamano· Feb 24, 2010, 19:31 UTC · re: Michele Ballabio · lore

Re: [PATCH] shortlog: do not stall when there is no input

Michele Ballabio <barra_cuda@katamail.com> writes:
> A simple "git shortlog" outside of a git repository used to stall
> waiting for an input. Fix this by testing with isatty() before
> calling read_from_stdin().

I'd actually prefer doing what "git commit" does. Give a helpful hint that it is waiting for input from the standard input, but do read from standard input as the program is instructed to do.

That way people who drive the program with expect will not be broken ;-) but that is a minor point.

Michele Ballabio· Feb 24, 2010, 20:49 UTC · re: Junio C Hamano · lore

[PATCH] shortlog: warn the user when there is no input

A simple "git shortlog" outside of a git repository stalls waiting for an input. Check if that's the case by testing with isatty() before read_from_stdin(), and warn the user like "git commit" does in a similar case.

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
---
On Wednesday 24 February 2010, Junio C Hamano wrote:
Show 9 quoted lines
> Michele Ballabio <barra_cuda@katamail.com> writes:
> 
> > A simple "git shortlog" outside of a git repository used to stall
> > waiting for an input. Fix this by testing with isatty() before
> > calling read_from_stdin().
> 
> I'd actually prefer doing what "git commit" does.  Give a helpful hint
> that it is waiting for input from the standard input, but do read from
> standard input as the program is instructed to do.
Ok.
 builtin-shortlog.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
Show changes to builtin-shortlog.c +2 −0
diff --git a/builtin-shortlog.c b/builtin-shortlog.c
index b3b055f..22668b4 100644
--- a/builtin-shortlog.c
+++ b/builtin-shortlog.c
@@ -295,6 +295,8 @@ parse_done:
 	if (!nongit && !rev.pending.nr && isatty(0))
 		add_head_to_pending(&rev);
 	if (rev.pending.nr == 0) {
+		if (isatty(0))
+			fprintf(stderr, "(reading log message from standard input)\n");
 		read_from_stdin(&log);
 	}
 	else
-- 
1.7.0

← back to recent threads