Re: [RFC] column: show auto columns when pager is active
- Date: Tue, 10 Oct 2017 10:29:30 -0400
- From: Jeff King <peff@xxxxxxxx>
- Subject: Re: [RFC] column: show auto columns when pager is active
On Tue, Oct 10, 2017 at 10:10:19AM -0400, Jeff King wrote:
> That said, I'm still puzzled why it would return zero output. Strace
> shows that the read from stdin is getting no input. I suspect this may
> have to do with how we redirect stdin in test-terminal.perl.
> See 18d8c26930 (test_terminal: redirect child process' stdin to a pty,
> 2015-08-04), which claims there's some raciness with closing the
Ah, yeah, I think that is it. Try:
echo input | test_terminal sed s/^/foo:/
it will randomly succeed or fail, depending on whether sed manages to
read the input before the stdin terminal is closed.
I'm not sure of an easy way to fix test-terminal, but we could work
around it like this (which also uses "-p" to actually invoke the pager,
and uses a pager that makes it clear when it's being run):
diff --git a/t/t9002-column.sh b/t/t9002-column.sh
index 9441145bf0..d322c3b745 100755
@@ -180,14 +180,14 @@ EOF
test_expect_success TTY '20 columns, mode auto, pager' '
cat >expected <<\EOF &&
- test_terminal env PAGER="cat|cat" git column --mode=auto <lista >actual &&
+ test_terminal env PAGER="sed s/^/paged:/" sh -c "git -p column --mode=auto <lista" >actual &&
test_cmp expected actual
All that said, I think I'd just as soon test a real command like "git
tag", which doesn't care about reading from stdin.