new parameter addspacechars
[swftools.git] / lib / pdf / inject-xpdf.pl
index b917023..e3c2f1b 100755 (executable)
@@ -4,18 +4,35 @@ $filename = $ARGV[0];
 
 $filename or die "no filename";
 
-$directory = $filename;
-$directory =~ s/.tar.gz$//g;
+$basename = $filename;
+$basename =~ s/.tar.gz$//g;
+$directory = $basename;
 
 mkdir("$directory");
 mkdir("$directory/tmp/");
 
 chdir("$directory/tmp/") or die;
-system("tar -zxvf ../../$filename") and die;
-system("find -type f -exec mv {} .. \\;") and die;
+
+print "Extracting $filename\n";
+system("tar -zxf ../../$filename") and die;
+system("find . -type f -exec mv {} .. \\;") and die;
 chdir("..");
-system("find -type d -exec rmdir {} \\; 2> /dev/null");
-system("patch < ../xpdf-changes.patch");
+system("find . -type d -exec rmdir {} \\; 2> /dev/null");
+
+print "Applying security patches...\n";
+for($a=1;$a<10;$a++) {
+    $patchname = "../${basename}pl$a.patch";
+    if(-f $patchname) {
+        print "*pl$a.patch\n";
+        system("patch -s < $patchname") and die;
+    }
+}
+
+$c = 'find . \( -name "*.cc" -or -name "*.h" -or -name "*.c" \) -exec cp {} {}.orig \;';
+print "$c\n";
+system($c);
+
+system("patch < ../xpdf-changes.patch 2>&1 | grep -i failed");
 chdir("..");
 system("rm -f xpdf");
 system("ln -s $directory xpdf");
@@ -45,7 +62,4 @@ EOF
 close(fi);
 system("chmod a+x switch");
 
-$c = 'find '.$directory.' \( -name "*.cc" -or -name "*.h" -or -name "*.c" \) -exec cp {} {}.orig \;';
-print "$c\n";
-system($c);