use Cwd (); # cwd, abs_path
use File::Spec (); # canonpath, catdir, splitdir, abs2rel
-use POSIX qw/WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG SIGINT SIGQUIT/;
+use POSIX (); # WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG SIGINT SIGQUIT
+
+my ($WIFEXITED, $WEXITSTATUS, $WIFSIGNALED, $WTERMSIG);
BEGIN {
- no warnings 'redefine';
- *WIFEXITED = sub { 1 } unless eval { WIFEXITED(0); 1 };
- *WEXITSTATUS = sub { shift() >> 8 } unless eval { WEXITSTATUS(0); 1 };
- *WIFSIGNALED = sub { shift() & 127 } unless eval { WIFSIGNALED(0); 1 };
+ $WIFEXITED = eval { POSIX::WIFEXITED(0); 1 } ? \&POSIX::WIFEXITED
+ : sub { 1 };
+ $WEXITSTATUS = eval { POSIX::WEXITSTATUS(0); 1 } ? \&POSIX::WEXITSTATUS
+ : sub { shift() >> 8 };
+ $WIFSIGNALED = eval { POSIX::WIFSIGNALED(0); 1 } ? \&POSIX::WIFSIGNALED
+ : sub { shift() & 127 };
+ $WTERMSIG = eval { POSIX::WTERMSIG(0); 1 } ? \&POSIX::WTERMSIG
+ : sub { shift() & 127 };
}
=head1 NAME
}
my $ret;
- $ret = WEXITSTATUS($?) if WIFEXITED($?);
+ $ret = $WEXITSTATUS->($?) if $WIFEXITED->($?);
my $sig;
- if (WIFSIGNALED($?)) {
- $sig = WTERMSIG($?);
+ if ($WIFSIGNALED->($?)) {
+ $sig = $WTERMSIG->($?);
$conf->warn("git died with signal $sig\n");
- if ($sig == SIGINT || $sig == SIGQUIT) {
+ if ($sig == POSIX::SIGINT() || $sig == POSIX::SIGQUIT()) {
$conf->err("Aborting\n");
exit $sig;
}
=head1 BUGS
-Please report any bugs or feature requests to C<bug-rgit at rt.cpan.org>, or through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=rgit>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
+Please report any bugs or feature requests to C<bug-rgit at rt.cpan.org>, or through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=rgit>.
+I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
=head1 SUPPORT