diff options
Diffstat (limited to 'Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps')
-rw-r--r-- | Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps b/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps index eee0b9f6175..44fe6195665 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps @@ -163,10 +163,11 @@ end % Set them again to the new values. From here on, we are safe, % since a context switch will consult userparams. .setuserparams -} .bind executeonly def % must be bound and hidden for .forceput +} .bind executeonly odef % must be bound and hidden for .forceput /setuserparams { % <dict> setuserparams - - .setuserparams2 + {.setuserparams2} stopped + {/setuserparams load $error /errorname get signalerror} if } .bind odef % Initialize user parameters managed here. /JobName () .definepsuserparam @@ -415,7 +416,9 @@ psuserparams /ProcessDSCComment {.checkprocesscomment} put % VMReclaim and VMThreshold are user parameters. /setvmthreshold { % <int> setvmthreshold - - mark /VMThreshold 2 .argindex .dicttomark .setuserparams2 pop + mark /VMThreshold 2 .argindex .dicttomark {.setuserparams2} stopped + {pop /setvmthreshold load $error /errorname get signalerror} + {pop} ifelse } odef /vmreclaim { % <int> vmreclaim - dup 0 gt { @@ -427,7 +430,9 @@ psuserparams /ProcessDSCComment {.checkprocesscomment} put ifelse } { % VMReclaim userparam controls enable/disable GC - mark /VMReclaim 2 index .dicttomark .setuserparams2 pop + mark /VMReclaim 2 index .dicttomark {.setuserparams2} stopped + {pop /vmreclaim load $error /errorname get signalerror} + {pop} ifelse } ifelse } odef -1 setvmthreshold @@ -610,7 +615,14 @@ currentuserparams /WaitTimeout known .dicttomark setpagedevice /WaitTimeout exch mark /JobTimeout 5 2 roll .dicttomark setsystemparams } bind def -/.setpagesize { 2 array astore /PageSize .dict1 setpagedevice } bind def +/.setpagesize + { 2 copy 2 array astore /PageSize .dict1 { setpagedevice } stopped { + pop % the setpagedevice dict + /setpagesize $error /errorname get signalerror + } { + pop pop % success -- pop the arguments + } ifelse + } bind def /setduplexmode { /Duplex .dict1 setpagedevice } bind def /setmargins { exch 2 array astore /Margins .dict1 setpagedevice @@ -624,7 +636,14 @@ currentuserparams /WaitTimeout known .dicttomark setpagedevice } bind def /setresolution - { dup 2 array astore /HWResolution .dict1 setpagedevice + { count 1 lt { /setresolution /stackunderflow signalerror } if + dup type dup /integertype eq exch /realtype eq or not + { + /setresolution /typecheck signalerror + } if + dup 2 array astore /HWResolution .dict1 { setpagedevice } stopped { + pop /setresolution $error /errorname get signalerror + } if } bind def %END PAGEDEVICE |