[gs-cvs] rev 8054 - trunk/gs/lib

alexcher at ghostscript.com alexcher at ghostscript.com
Sat Jun 16 17:01:02 PDT 2007


Author: alexcher
Date: 2007-06-16 17:01:02 -0700 (Sat, 16 Jun 2007)
New Revision: 8054

Modified:
   trunk/gs/lib/gs_init.ps
Log:
Fix misleading error message from runlibfile0 that always referred to the last
libfile that was ever STARTED, even if it finished and control returned to
another file. Bug 688738.

DETAILS:
Change runlibfile0 to define ".currentfilename" again after the libfile ends.
The  correct value is kept on the exec stack, by constructing and executing a
procedure with the filename bound into it. Thanks to SaGS for the patch.

DIFFERENCES:
None


Modified: trunk/gs/lib/gs_init.ps
===================================================================
--- trunk/gs/lib/gs_init.ps	2007-06-16 19:24:22 UTC (rev 8053)
+++ trunk/gs/lib/gs_init.ps	2007-06-17 00:01:02 UTC (rev 8054)
@@ -821,13 +821,15 @@
 
 % Define a special version of runlibfile that aborts on errors.
 /runlibfile0
-	{ cvlit dup /.currentfilename exch def
+	{ cvlit dup dup /.currentfilename exch def
 	   { findlibfile not { stop } if }
 	  stopped
 	   { (Can't find \(or open\) initialization file ) print
 	     .currentfilename == flush /runlibfile0 cvx 1 .quit
 	   } if
-	  exch pop cvx stopped
+	  exch pop cvx 
+	  { stopped } 0 get 3 -1 roll 2 array astore cvx exec
+	  /.currentfilename exch store
 	   { (While reading ) print .currentfilename print (:\n) print flush
 	     /handleerror .systemvar exec /runlibfile0 1 .quit
 	   } if



More information about the gs-cvs mailing list