Git.pm: Make File::Spec and File::Temp requirement lazy
This will ensure that the API at large is accessible to nearly all Perl versions, while only the temp file caching API is tied to the File::Temp and File::Spec modules being available. Signed-off-by: Marcus Griep <marcus@griep.us> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
4370c2d620
commit
c14c8ceb13
@ -100,8 +100,6 @@ use Carp qw(carp croak); # but croak is bad - throw instead
|
|||||||
use Error qw(:try);
|
use Error qw(:try);
|
||||||
use Cwd qw(abs_path);
|
use Cwd qw(abs_path);
|
||||||
use IPC::Open2 qw(open2);
|
use IPC::Open2 qw(open2);
|
||||||
use File::Temp ();
|
|
||||||
require File::Spec;
|
|
||||||
use Fcntl qw(SEEK_SET SEEK_CUR);
|
use Fcntl qw(SEEK_SET SEEK_CUR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1009,6 +1007,8 @@ sub temp_release {
|
|||||||
sub _temp_cache {
|
sub _temp_cache {
|
||||||
my ($name) = @_;
|
my ($name) = @_;
|
||||||
|
|
||||||
|
_verify_require();
|
||||||
|
|
||||||
my $temp_fd = \$TEMP_FILES{$name};
|
my $temp_fd = \$TEMP_FILES{$name};
|
||||||
if (defined $$temp_fd and $$temp_fd->opened) {
|
if (defined $$temp_fd and $$temp_fd->opened) {
|
||||||
if ($TEMP_LOCKS{$$temp_fd}) {
|
if ($TEMP_LOCKS{$$temp_fd}) {
|
||||||
@ -1031,6 +1031,11 @@ sub _temp_cache {
|
|||||||
$$temp_fd;
|
$$temp_fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub _verify_require {
|
||||||
|
eval { require File::Temp; require File::Spec; };
|
||||||
|
$@ and throw Error::Simple($@);
|
||||||
|
}
|
||||||
|
|
||||||
=item temp_reset ( FILEHANDLE )
|
=item temp_reset ( FILEHANDLE )
|
||||||
|
|
||||||
Truncates and resets the position of the C<FILEHANDLE>.
|
Truncates and resets the position of the C<FILEHANDLE>.
|
||||||
|
Loading…
Reference in New Issue
Block a user