lib/PublicInbox/Git.pm | 13 +++++++++++-- diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm index f7332bb60e29a82b84ce49aacbe280ef01f0e665..cdd2b400763acd93ee4fd7ba07ad7ae0aa787e0a 100644 --- a/lib/PublicInbox/Git.pm +++ b/lib/PublicInbox/Git.pm @@ -365,8 +365,17 @@ # same args as popen above sub qx { my $self = shift; my $fh = $self->popen(@_); - local $/ = wantarray ? "\n" : undef; - <$fh>; + if (wantarray) { + local $/ = "\n"; + my @ret = <$fh>; + close $fh; # caller should check $? + @ret; + } else { + local $/; + my $ret = <$fh>; + close $fh; # caller should check $? + $ret; + } } # check_async and cat_async may trigger the other, so ensure they're