[gs-cvs] rev 7749 - in trunk/gs: doc lib

alexcher at ghostscript.com alexcher at ghostscript.com
Wed Feb 28 09:03:29 PST 2007


Author: alexcher
Date: 2007-02-28 09:03:28 -0800 (Wed, 28 Feb 2007)
New Revision: 7749

Modified:
   trunk/gs/doc/pscet_status.txt
   trunk/gs/lib/gs_lev2.ps
Log:
Validate arguments of the operator startjob. Fix CET 31-10-02.

DIFFERENCES:
No other Comparefiles or CET differences.


Modified: trunk/gs/doc/pscet_status.txt
===================================================================
--- trunk/gs/doc/pscet_status.txt	2007-02-27 21:11:08 UTC (rev 7748)
+++ trunk/gs/doc/pscet_status.txt	2007-02-28 17:03:28 UTC (rev 7749)
@@ -5248,7 +5248,7 @@
 
 31-10-1  OK	Minor differences in positions and character shapes - ADC
 
-31-10-2  DIFF	startjob result differ assign Ray
+31-10-2  OK  	Fixed in rev. 7749. - Alex
 
 31-10-3  OK	
 

Modified: trunk/gs/lib/gs_lev2.ps
===================================================================
--- trunk/gs/lib/gs_lev2.ps	2007-02-27 21:11:08 UTC (rev 7748)
+++ trunk/gs/lib/gs_lev2.ps	2007-02-28 17:03:28 UTC (rev 7749)
@@ -441,10 +441,10 @@
 % We could protect the job information better, but we aren't attempting
 % (currently) to protect ourselves against maliciousness.
 
-/.jobsave null def		% top-level save object
+/.jobsave //null def		% top-level save object
 /.jobsavelevel 0 def		% save depth of job (0 if .jobsave is null,
 				% 1 otherwise)
-/.adminjob true def		% status of current unencapsulated job
+/.adminjob //true def		% status of current unencapsulated job
 
 end		% serverdict
 
@@ -457,10 +457,10 @@
 % it doesn't reset stdin/stdout.
 /.startnewjob {			% <exit_bool> <password_level>
 				%   .startnewjob -
-    serverdict /.jobsave get dup null eq { pop } { restore } ifelse
+    serverdict /.jobsave get dup //null eq { pop } { restore } ifelse
     exch {
 			% Unencapsulated job
-      serverdict /.jobsave null put
+      serverdict /.jobsave //null put
       serverdict /.jobsavelevel 0 put
       serverdict /.adminjob 3 -1 roll 1 gt put
     } {
@@ -473,7 +473,7 @@
 		% Reset the interpreter state.
   clear cleardictstack
   initgraphics
-  false setglobal
+  //false setglobal
   2 vmreclaim	% Make sure GC'ed memory is reclaimed and freed.
 } bind def
 /.startjob {			% <exit_bool> <password> <finish_proc>
@@ -486,20 +486,23 @@
 		% passing the finish_proc to be executed afterwards.
     2 .stop
   } {		% Password check failed
-    pop pop pop false
+    pop pop pop //false
   } ifelse
 } odef
 /startjob {			% <exit_bool> <password> startjob <ok_bool>
 	% This is a hack.  We really need some way to indicate explicitly
 	% to the interpreter that we are under control of a job server.
-  { .startnewjob true } .startjob
+  1 .argindex type /booleantype ne {
+    /startjob .systemvar /typecheck signalerror
+  } if
+  { .startnewjob //true } .startjob
 } odef
 
 % The procedure to undo the job encapsulation 
 /.endjob {
   clear cleardictstack
-  serverdict /.jobsave get dup null eq { pop } { restore } ifelse
-  serverdict /.jobsave null put
+  serverdict /.jobsave get dup //null eq { pop } { restore } ifelse
+  serverdict /.jobsave //null put
   2 vmreclaim   % recover local and global VM
 } odef
 
@@ -521,7 +524,7 @@
 serverdict begin
 
 /exitserver {			% <password> exitserver -
-  true exch { .startnewjob } .startjob not {
+  //true exch { .startnewjob } .startjob not {
     /exitserver /invalidaccess signalerror
   } if
 } bind def



More information about the gs-cvs mailing list