so that $lh->maketext("Error: [_1]\n", $@) works as expected
Also added a new test for this fix
p4raw-id: //depot/perl@25547
BEGIN { unless(defined &DEBUG) { *DEBUG = sub () {0} } }
# define the constant 'DEBUG' at compile-time
-$VERSION = "1.09";
+$VERSION = "1.09_01";
@ISA = ();
$MATCH_SUPERS = 1;
my($handle, $phrase) = splice(@_,0,2);
+ # Don't interefere with $@ in case that's being interpolated into the msg.
+ local $@;
+
# Look up the value:
my $value;
--- /dev/null
+
+require 5;
+use Test;
+BEGIN { plan tests => 4; }
+use Locale::Maketext;
+print "# Hi there...\n";
+ok 1;
+
+print "# --- Making sure that Perl globals are localized ---\n";
+
+# declare a class...
+{
+ package Woozle;
+ @ISA = ('Locale::Maketext');
+ %Lexicon = (
+ _AUTO => 1
+ );
+ keys %Lexicon; # dodges the 'used only once' warning
+}
+
+my $lh;
+print "# Basic sanity:\n";
+ok defined( $lh = Woozle->new() ) && ref($lh);
+
+print "# Make sure \$@ is localized...\n";
+$@ = 'foo';
+ok $lh && $lh->maketext('Eval error: [_1]', $@), "Eval error: foo";
+
+print "# Byebye!\n";
+ok 1;