Blame SOURCES/ghostscript-runlibfileifexists.patch

c9d7fc
diff -up ghostscript-9.06/Resource/Init/gs_fonts.ps.runlibfileifexists ghostscript-9.06/Resource/Init/gs_fonts.ps
c9d7fc
--- ghostscript-9.06/Resource/Init/gs_fonts.ps.runlibfileifexists	2012-08-08 09:01:36.000000000 +0100
c9d7fc
+++ ghostscript-9.06/Resource/Init/gs_fonts.ps	2012-08-09 08:23:46.750732348 +0100
c9d7fc
@@ -95,10 +95,19 @@ userdict /Fontmap .FontDirectory maxleng
c9d7fc
                 % stack: dict file fontname filename|aliasname
c9d7fc
       1 index type /stringtype eq
c9d7fc
       1 index type /nametype eq and 1 index xcheck and
c9d7fc
-      1 index /run eq 2 index /.runlibfile eq or and {
c9d7fc
+      1 index /run eq 2 index /.runlibfile eq 3 index /.runlibfileifexists eq or or and {
c9d7fc
                 % This is an inclusion entry.
c9d7fc
-        pop findlibfile { exch pop } { file } ifelse
c9d7fc
-        2 index exch .readFontmap pop
c9d7fc
+        0 index /.runlibfileifexists eq {
c9d7fc
+          pop findlibfile {
c9d7fc
+            exch pop
c9d7fc
+            2 index exch .readFontmap pop
c9d7fc
+          } {
c9d7fc
+            pop
c9d7fc
+          } ifelse
c9d7fc
+        } {
c9d7fc
+          pop findlibfile { exch pop } { file } ifelse
c9d7fc
+          2 index exch .readFontmap pop
c9d7fc
+        } ifelse
c9d7fc
       } {
c9d7fc
                 % This is a real entry.
c9d7fc
                 % Read and pop tokens until a semicolon.
c9d7fc
diff -up ghostscript-9.06/Resource/Init/gs_init.ps.runlibfileifexists ghostscript-9.06/Resource/Init/gs_init.ps
c9d7fc
--- ghostscript-9.06/Resource/Init/gs_init.ps.runlibfileifexists	2012-08-08 09:01:36.000000000 +0100
c9d7fc
+++ ghostscript-9.06/Resource/Init/gs_init.ps	2012-08-09 08:23:46.750732348 +0100
c9d7fc
@@ -678,6 +678,14 @@ systemdict /internaldict dup .makeintern
c9d7fc
            { /undefinedfilename signalerror }
c9d7fc
           ifelse
c9d7fc
         } bind def
c9d7fc
+/runlibfileifexists
c9d7fc
+        {		% We don't want to bind 'run' into this procedure,
c9d7fc
+                        % since run may get redefined.
c9d7fc
+          findlibfile
c9d7fc
+           { exch pop /run .systemvar exec }
c9d7fc
+           { pop }
c9d7fc
+          ifelse
c9d7fc
+        } bind def
c9d7fc
 /selectdevice
c9d7fc
         { finddevice setdevice .setdefaultscreen } bind def
c9d7fc
 /signalerror		% <object> <errorname> signalerror -
c9d7fc
@@ -846,6 +854,7 @@ userdict /.currentresourcefile //null pu
c9d7fc
         } bind def
c9d7fc
 % Temporarily substitute it for the real runlibfile.
c9d7fc
 /.runlibfile /runlibfile load def
c9d7fc
+/.runlibfileifexists /runlibfileifexists load def
c9d7fc
 /runlibfile /runlibfile0 load def
c9d7fc
 
c9d7fc
 % Create the error handling machinery.