@INC = '../lib';
}
-use warnings;
+# use warnings;
use strict;
use ExtUtils::MakeMaker;
use ExtUtils::Constant qw (constant_types C_constant XS_constant autoload);
use File::Spec::Functions;
use File::Spec;
# Because were are going to be changing directory before running Makefile.PL
-my $perl = File::Spec->rel2abs( $^X );
+my $perl;
+$perl = rel2abs( $^X ) unless $] < 5.006; # Hack. Until 5.00503 has rel2abs
# ExtUtils::Constant::C_constant uses $^X inside a comment, and we want to
# compare output to ensure that it is the same. We were probably run as ./perl
# whereas we will run the child with the full path in $perl. So make $^X for
# Test the code that generates 1 and 2 letter name comparisons.
my %compass = (
-N => 0, NE => 45, E => 90, SE => 135, S => 180, SW => 225, W => 270, NW => 315
+N => 0, 'NE' => 45, E => 90, SE => 135, S => 180, SW => 225, W => 270, NW => 315
);
my $parent_rfc1149 =
print FH <<'EOT';
use strict;
-use warnings;
+EOT
+printf FH "use warnings;\n" unless $] < 5.006;
+print FH <<'EOT';
use Carp;
require Exporter;
require DynaLoader;
-use vars qw ($VERSION @ISA @EXPORT_OK);
+use vars qw ($VERSION @ISA @EXPORT_OK $AUTOLOAD);
$VERSION = '0.01';
@ISA = qw(Exporter DynaLoader);
EOT
while (my ($point, $bearing) = each %compass) {
- print FH "$point => $bearing, "
+ print FH "'$point' => $bearing, "
}
print FH <<'EOT';
package ExtUtils::Constant;
use vars qw (@ISA $VERSION %XS_Constant %XS_TypeSet @EXPORT_OK %EXPORT_TAGS);
-$VERSION = '0.08';
+$VERSION = '0.09';
=head1 NAME
=cut
-require 5.006; # I think, for [:cntrl:] in REGEXP
-use warnings;
+if ($] >= 5.006) {
+ eval "use warnings; 1" or die $@;
+}
use strict;
use Carp;
s/\t/\\t/g;
s/\f/\\f/g;
s/\a/\\a/g;
- s/([[:cntrl:]])/sprintf "\\%03o", ord $1/ge;
- s/\177/\\177/g; # DEL doesn't seem to be a [:cntrl:]
+ unless ($] < 5.006) {
+ # This will elict a warning on 5.005_03 about [: :] being reserved unless
+ # I cheat
+ my $cheat = '([[:^print:]])';
+ s/$cheat/sprintf "\\%03o", ord $1/ge;
+ } else {
+ require POSIX;
+ s/([^A-Za-z0-9_])/POSIX::isprint($1) ? $1 : sprintf "\\%03o", ord $1/ge;
+ }
$_;
}
#ifndef NVTYPE
typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */
#endif
+#ifndef aTHX_
+#define aTHX_ /* 5.6 or later define this for threading support. */
+#endif
+#ifndef pTHX_
+#define pTHX_ /* 5.6 or later define this for threading support. */
+#endif
EOT
return join '', @lines;