File ghostscript-8.60-runlibfileifexists.dif of Package ghostscript-library.887

--- Resource/Init/gs_init.ps
+++ Resource/Init/gs_init.ps	2007-09-03 14:48:35.000000000 +0000
@@ -673,6 +673,13 @@ systemdict /internaldict dup .makeintern
 	   { /undefinedfilename signalerror }
 	  ifelse
 	} bind def
+/runlibfileifexists
+	{
+	  findlibfile
+	    { exch pop /run .systemvar exec }
+	    { pop }
+	  ifelse
+	} bind def
 /selectdevice
 	{ finddevice setdevice .setdefaultscreen } bind def
 /signalerror		% <object> <errorname> signalerror -
@@ -841,6 +848,7 @@ userdict /.currentresourcefile //null pu
 	} bind def
 % Temporarily substitute it for the real runlibfile.
 /.runlibfile /runlibfile load def
+/.runlibfileifexists /runlibfileifexists load def
 /runlibfile /runlibfile0 load def
 
 % Create the error handling machinery.
--- Resource/Init/gs_fonts.ps
+++ Resource/Init/gs_fonts.ps	2007-09-03 14:57:21.000000000 +0000
@@ -96,10 +96,19 @@ userdict /Fontmap .FontDirectory maxleng
                 % stack: dict file fontname filename|aliasname
       1 index type /stringtype eq
       1 index type /nametype eq and 1 index xcheck and
-      1 index /run eq 2 index /.runlibfile eq or and {
+      1 index /run eq 2 index /.runlibfile eq 3 index /.runlibfileifexists eq or or and {
                 % This is an inclusion entry.
-        pop findlibfile { exch pop } { file } ifelse
-        2 index exch .readFontmap pop
+	0 index /.runlibfileifexists eq {
+	  pop findlibfile {
+	    exch pop
+	    2 index exch .readFontmap pop
+	  } {
+	    pop
+	  } ifelse
+	} {
+          pop findlibfile { exch pop } { file } ifelse
+          2 index exch .readFontmap pop
+	} ifelse
       } {
                 % This is a real entry.
                 % Read and pop tokens until a semicolon.
openSUSE Build Service is sponsored by