new parameter addspacechars
[swftools.git] / lib / pdf / inject-xpdf.pl
index 8693f81..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 --verbose < ../xpdf-changes.patch") and die;
+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");
@@ -29,9 +46,8 @@ VERSION=\$1
 PS3="choose> "
 
 if test "x\$VERSION" = "x";then
-    select V in stable latest;do VERSION="$V";break;done
+    select V in stable latest;do VERSION="\$V";break;done
 fi
-
 if test "x\$VERSION" = "xstable";then
     echo "Switching to stable version"
     rm -f xpdf
@@ -46,3 +62,4 @@ EOF
 close(fi);
 system("chmod a+x switch");
 
+