From: Sven Strickroth Date: Tue, 27 Dec 2011 14:39:53 GMT Subject: Re: [PATCH] honour GIT_ASKPASS for querying username in git-svn Message-ID: <4EF9D8B9.9060106@tu-clausthal.de> In-Reply-To: Am 27.12.2011 15:33 schrieb Jakub Narebski: >> +sub prompt { >> + my ($self, $prompt) = _maybe_self(@_); >> + if (exists $ENV{'GIT_ASKPASS'}) { >> + return _prompt($ENV{'GIT_ASKPASS'}, $prompt); >> + } elsif (exists $ENV{'SSH_ASKPASS'}) { >> + return _prompt($ENV{'SSH_ASKPASS'}, $prompt); >> + } else { >> + return undef; >> + } >> +} > > ...and provide some kind of fallback even if neither of GIT_ASKPASS > nor SSH_ASKPASS are set (perhaps assuming that some Perl packages from > CPAN are installed). If neither of GIT_ASKPASS nor SSH_ASKPASS are set the caller has to handle the request. This has to be done this way, because of lots of different needs (username, password (no echo) and so on). >> +sub _prompt { >> + my ($self, $askpass, $prompt) = _maybe_self(@_); >> + my $ret; >> + open(PH, "-|", $askpass, $prompt); >> + $ret = ; >> + $ret =~ s/[\012\015]//g; # strip \n\r >> + close(PH); >> + return $ret; >> +} > > Please, use modern Perl, in particula use lexical filehandles instead > of typeglobs (which are global variables), i.e. I used the same style as I found in Git.pm (see lines I removed in patch 2). -- Best regards, Sven Strickroth ClamAV, a GPL anti-virus toolkit http://www.clamav.net PGP key id F5A9D4C4 @ any key-server