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

3 messages from 2010-02-24 to 2010-02-24. Participants: Michele Ballabio, Junio C Hamano.
Thread: https://gitlist.dev/t/22799

## Michele Ballabio, 2010-02-24 19:20

Subject: [PATCH] shortlog: do not stall when there is no input
Message-ID: <201002242020.27801.barra_cuda@katamail.com>
URL: https://gitlist.dev/e/201002242020.27801.barra_cuda%40katamail.com

```
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(-)

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, 2010-02-24 19:31

Subject: Re: [PATCH] shortlog: do not stall when there is no input
Message-ID: <7vvddmmnvo.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vvddmmnvo.fsf%40alter.siamese.dyndns.org
In-Reply-To: <201002242020.27801.barra_cuda@katamail.com>

```
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, 2010-02-24 20:49

Subject: [PATCH] shortlog: warn the user when there is no input
Message-ID: <201002242149.03662.barra_cuda@katamail.com>
URL: https://gitlist.dev/e/201002242149.03662.barra_cuda%40katamail.com
In-Reply-To: <7vvddmmnvo.fsf@alter.siamese.dyndns.org>

```
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:
> 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(-)

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

```
