+ $info_str =~ m@^([^\n]+)\n@s ||
+ error ("$filename: unparsable copyright");
+ my $copyright = "$1";
+ $copyright =~ s/\b\d{4}-(\d{4})\b/$1/;
+
+ # Lose the Wikipedia URLs.
+ $info_str =~ s@http:.*?\b(wikipedia|mathworld)\b[^\s]+[ \t]*\n?@@gm;
+
+ $info_str =~ s/(\n\n)\n+/$1/gs;
+ $info_str =~ s/(^\s+|\s+$)//gs;
+ $plist = set_plist_key ($filename, $plist,
+ "NSHumanReadableCopyright", $copyright);
+ $plist = set_plist_key ($filename, $plist,
+ "CFBundleLongVersionString",$copyright);
+ $plist = set_plist_key ($filename, $plist,
+ "CFBundleGetInfoString", $info_str);
+
+ if ($oplist eq $plist) {
+ print STDERR "$progname: $filename: unchanged\n" if ($verbose > 1);
+ } else {
+ $plist = convert_plist ($plist, 1); # convert to binary plist
+ my $file_tmp = "$filename.tmp";
+ open (my $out, '>:raw', $file_tmp) || error ("$file_tmp: $!");
+ print $out $plist || error ("$file_tmp: $!");
+ close $out || error ("$file_tmp: $!");
+
+ if (!rename ("$file_tmp", "$filename")) {
+ unlink "$file_tmp";
+ error ("mv \"$file_tmp\" \"$filename\": $!");
+ }
+ print STDERR "$progname: wrote $filename\n" if ($verbose);