From bed118d6bb6dee92180469466dfa265265678dd4 Mon Sep 17 00:00:00 2001
From: Alex Riesen <raa.lkml@gmail.com>
Date: Mon, 22 Jan 2007 17:16:05 +0100
Subject: [PATCH] Force Activestate Perl to tie git command pipe handle to a
 handle class

Otherwise it tries to tie it to a scalar and complains about missing
method. Dunno why, may be ActiveState brokenness again.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 perl/Git.pm | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/perl/Git.pm b/perl/Git.pm
index 58414e3ec80..2f6b59a43be 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -742,7 +742,13 @@ sub _command_common_pipe {
 		#	warn 'ignoring STDERR option - running w/ ActiveState';
 		$direction eq '-|' or
 			die 'input pipe for ActiveState not implemented';
-		tie ($fh, 'Git::activestate_pipe', $cmd, @args);
+		# the strange construction with *ACPIPE is just to
+		# explain the tie below that we want to bind to
+		# a handle class, not scalar. It is not known if
+		# it is something specific to ActiveState Perl or
+		# just a Perl quirk.
+		tie (*ACPIPE, 'Git::activestate_pipe', $cmd, @args);
+		$fh = *ACPIPE;
 
 	} else {
 		my $pid = open($fh, $direction);