All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Sebastian Celis <sebastian@sebastiancelis.com>,
	Eric Wong <normalperson@yhbt.net>,
	git@vger.kernel.org
Subject: [PATCH 4/6] git svn: Fix launching of pager
Date: Sun, 14 Feb 2010 06:06:10 -0600	[thread overview]
Message-ID: <20100214120610.GD3499@progeny.tock> (raw)
In-Reply-To: <20100214115430.GA1849@progeny.tock>

In commit dec543e (am -i, git-svn: use "git var GIT_PAGER"), I tried
to teach git svn to defer to git var on what pager to use. In the
process, I introduced two bugs:

 - The value set for $pager in config_pager has local scope, so
   run_pager never sees it;

 - git var cannot tell whether git svn’s output is going to a
   terminal, so the value chosen for $pager does not reflect that
   information.

Fix them.

Reported-by: Sebastian Celis <sebastian@sebastiancelis.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
Oops.  Eric, this bug is masked by another bug in "git var" whose fix
is patch 2 from this series I sent to the list, but whatever happens,
I think this is an improvement.  Sorry for the breakage.

 git-svn.perl |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index 265852f..473a0b9 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -5459,7 +5459,12 @@ sub git_svn_log_cmd {
 
 # adapted from pager.c
 sub config_pager {
-	chomp(my $pager = command_oneline(qw(var GIT_PAGER)));
+	if (! -t *STDOUT) {
+		$ENV{GIT_PAGER_IN_USE} = 'false';
+		$pager = undef;
+		return;
+	}
+	chomp($pager = command_oneline(qw(var GIT_PAGER)));
 	if ($pager eq 'cat') {
 		$pager = undef;
 	}
@@ -5467,7 +5472,7 @@ sub config_pager {
 }
 
 sub run_pager {
-	return unless -t *STDOUT && defined $pager;
+	return unless defined $pager;
 	pipe my ($rfd, $wfd) or return;
 	defined(my $pid = fork) or ::fatal "Can't fork: $!";
 	if (!$pid) {
-- 
1.7.0

  parent reply	other threads:[~2010-02-14 12:06 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-13 21:14 'git svn log' no longer uses the pager Sebastian Celis
2010-02-13 23:51 ` Jeff King
2010-02-14 11:54   ` Jonathan Nieder
2010-02-14 11:55     ` [PATCH 1/6] Fix 'git var' usage synopsis Jonathan Nieder
2010-02-15  2:22       ` Junio C Hamano
2010-02-15  2:36       ` [PATCH v2 " Jonathan Nieder
2010-02-15  4:47         ` Jeff King
2010-02-14 11:59     ` [PATCH 2/6] Make 'git var GIT_PAGER' always print the configured pager Jonathan Nieder
2010-02-15  5:00       ` Jeff King
2010-02-15  5:44         ` Jonathan Nieder
2010-02-15  7:57           ` Jeff King
2010-02-14 12:02     ` [PATCH 3/6] git.1: Clarify the behavior of the --paginate option Jonathan Nieder
2010-02-15  4:55       ` Jeff King
2010-02-14 12:06     ` Jonathan Nieder [this message]
2010-02-15  7:58       ` [PATCH 4/6] git svn: Fix launching of pager Eric Wong
2010-02-14 12:07     ` [PATCH 5/6] am: " Jonathan Nieder
2010-02-15  2:30       ` Junio C Hamano
2010-02-15  2:59       ` [PATCH v2 " Jonathan Nieder
2010-02-15  3:25         ` [PATCH v3 " Jonathan Nieder
2010-02-15  4:42           ` Jeff King
2010-02-15  5:04             ` [PATCH v4 " Jonathan Nieder
2010-02-15  5:12               ` Jeff King
2010-02-15 20:26               ` Johannes Sixt
2010-02-14 12:13     ` [PATCH 6/6] tests: Add tests for automatic use " Jonathan Nieder
2010-02-15  5:10       ` Jeff King
2010-02-15  5:35         ` [PATCH v2 " Jonathan Nieder
2010-02-15  5:37           ` Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100214120610.GD3499@progeny.tock \
    --to=jrnieder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=normalperson@yhbt.net \
    --cc=peff@peff.net \
    --cc=sebastian@sebastiancelis.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.