$SIG{__WARN__} = sub {
if ($_[0] =~ /^Invalid conversion/) {
- $w = ' INVALID'
+ $w = ' INVALID'
} else {
- warn @_;
+ warn @_;
}
};
$x = sprintf(">$template<",
defined @$evalData ? @$evalData : $evalData);
substr($x, -1, 0) = $w if $w;
- ($y = $x) =~ s/([Ee][-+])0(\d)/$1$2/g; # $y has 3 exponent digits, not 2
+ # $y may have 3 exponent digits, not 2
+ my $r;
+ if (($y = $x) =~ s/([Ee][-+])0(\d)/$1$2/g) {
+ $y =~ s/^>\s+/>/;
+ $y =~ s/\s+<$/</;
+ $r = $result;
+ $r =~ s/^\s+//;
+ $r =~ s/\s+$//;
+ }
+
if ($x eq ">$result<") {
print "ok $i\n";
}
- elsif ($y eq ">$result<") # Some C libraries always give
- { # three-digit exponent
- print("ok $i >$result< $x # three-digit exponent accepted\n");
- }
+ elsif ($r and $y eq ">$r<") # Some C libraries always give
+ { # three-digit exponent
+ print("ok $i >$result< $x # three-digit exponent accepted\n");
+ }
else {
- print("not ok $i >$template< >$data< >$result< $x",
- $comment ? " # $comment\n" : "\n");
+ print("not ok $i >$template< >$data< >$result< $x",
+ $comment ? " # $comment\n" : "\n");
}
}