Force Activestate Perl to tie git command pipe handle to a handle class
authorAlex Riesen <raa.lkml@gmail.com>
Mon, 22 Jan 2007 16:16:05 +0000 (17:16 +0100)
committerJunio C Hamano <junkio@cox.net>
Mon, 22 Jan 2007 17:44:26 +0000 (09:44 -0800)
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

index 58414e3..2f6b59a 100644 (file)
@@ -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);