Prevent the pragmas from ${^OPEN} propagated to %^H from deparsing.
Rafael Garcia-Suarez [Tue, 18 Sep 2007 14:10:34 +0000 (14:10 +0000)]
This stops test failures when perl is run with -C under utf-8 locales.
However this is only a partial solution, since it will prevent the
open pragma from being properly deparsed. Probably ${^OPEN} should
be handled separately.

p4raw-id: //depot/perl@31894

ext/B/B/Deparse.pm

index 6cb6e4a..16c5983 100644 (file)
@@ -1453,11 +1453,13 @@ sub declare_hinthash {
     my ($from, $to, $indent) = @_;
     my @decls;
     for my $key (keys %$to) {
+       next if $key =~ /^open[<>]$/;
        if (!defined $from->{$key} or $from->{$key} ne $to->{$key}) {
            push @decls, qq(\$^H{'$key'} = q($to->{$key}););
        }
     }
     for my $key (keys %$from) {
+       next if $key =~ /^open[<>]$/;
        if (!exists $to->{$key}) {
            push @decls, qq(delete \$^H{'$key'};);
        }