diff -r 421d5a95c85a -r df789c4e291d williamr/convert_to_eula.pl --- a/williamr/convert_to_eula.pl Fri Oct 02 11:55:00 2009 +0100 +++ b/williamr/convert_to_eula.pl Fri Oct 02 12:13:57 2009 +0100 @@ -31,6 +31,7 @@ ); my @errorfiles = (); +my @multinoticefiles = (); sub map_eula($$$) { @@ -42,25 +43,23 @@ my $updated = 0; my @newlines = (); - my $index = 1; while (my $line = shift @lines) { - if (index($line,$newtext[0]) >= 0) - { - # file already converted - nothing to do - push @newlines, $line; - next; - #last; - } # under the terms of the License "Symbian Foundation License v1.0" # which accompanies this distribution, and is available # at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". my $pos1 = index $line, $oldtext[0]; if ($pos1 >= 0) { + # be careful - oldtext is a prefix of newtext! + if (index($line, $newtext[0]) >= 0) + { + # line already converted - nothing to do + push @newlines, $line; + next; + } my $midline = shift @lines; my $urlline = shift @lines; - $index+=2; my $pos2 = index $urlline, $oldtext[1]; if ($pos2 >= 0) { @@ -68,25 +67,30 @@ substr $line, $pos1, length($oldtext[0]), $newtext[0]; substr $urlline, $pos2, length($oldtext[1]), $newtext[1]; push @newlines, $line, $midline, $urlline; - $updated = 1; + $updated += 1; next; - #last; } else { - if(!$updated) - { - print STDERR "Problem in $file at $index: incorrectly formatted >\n$line$midline$urlline\n"; - push @errorfiles, $file; - } + if(!$updated) + { + my $lineno = 1 + (scalar @newlines); + print STDERR "Problem in $file at $lineno: incorrectly formatted >\n$line$midline$urlline\n"; + push @errorfiles, $file; + } last; } } push @newlines, $line; - $index+=1; } return if (!$updated); + + if ($updated > 1) + { + push @multinoticefiles, $file; + print "! found $updated SFL notices in $file\n"; + } mkpath($shadowdir, {verbose=>0}); move($file, "$shadowdir/$name") or die("Cannot move $file to $shadowdir/$name: $!\n"); @@ -127,3 +131,6 @@ printf "%d problem files\n", scalar @errorfiles; print "\t", join("\n\t", @errorfiles), "\n"; +printf "%d files with multiple notices\n", scalar @multinoticefiles; +print "\t", join("\n\t", @multinoticefiles), "\n"; +