From: Russell Treleaven Date: Thu, 25 Sep 2014 17:18:07 +0000 (-0400) Subject: improve regular expression to parse Jerusalem timezone files X-Git-Tag: v1.5.14~16^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=139b03204550cd394877da882fec49b08eba08fa;p=thirdparty%2Ffreeswitch.git improve regular expression to parse Jerusalem timezone files 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. --- diff --git a/scripts/perl/timezone-gen.pl b/scripts/perl/timezone-gen.pl index 281f88556c..6127005062 100755 --- a/scripts/perl/timezone-gen.pl +++ b/scripts/perl/timezone-gen.pl @@ -55,16 +55,13 @@ foreach my $name ( sort( keys(%name_to_file) ) ) { 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" );