use strict;
use warnings;
-use Cwd (); # cwd, abs_path
+use Cwd (); # cwd
use File::Spec (); # canonpath, catdir, splitdir, abs2rel
-use POSIX qw/WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG SIGINT SIGQUIT/;
+use POSIX (); # WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG SIGINT SIGQUIT
+
+use App::Rgit::Utils (); # abs_path
+
+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
=head1 VERSION
-Version 0.06
+Version 0.08
=cut
-our $VERSION = '0.06';
+our $VERSION = '0.08';
=head1 DESCRIPTION
my $dir = $args{dir};
if (defined $dir) {
- $dir = Cwd::abs_path($dir);
+ $dir = App::Rgit::Utils::abs_path($dir);
} else {
$dir = Cwd::cwd;
}
}
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