The previous regular expression failed to parse 32 timezone files
including Jersusalem. All timezone files are parsed(hopefully correctly)
by this regular expression.
fs-4762 paritally address.
my $data = join( "", <$in> );
close($in);
- if ( $data !~ /^TZif/o ) {
+ my @strings = $data =~ (m/[ -~]{4,}/g);
+ if ( shift(@strings) !~ /^TZif/o ) {
$debug && print "Skipped $file\n";
next;
}
- my $tmp = $data;
- $tmp =~ s/\n$//s;
- $tmp =~ s/.*\n//sgmo;
-
- $zones{$name} = $tmp;
+ $zones{$name} = pop(@strings);
}
open( my $out, ">$output" );