有人可以帮我把下面的postscript代码格式化为可读格式吗?我需要修改逻辑以在所有条件下返回错误响应,并且从不打印错误页面。格式Postscript ErrorHandler
%%BeginResource: file Pscript_WinNT_ErrorHandler 5.0 0
/currentpacking where{pop/oldpack currentpacking def/setpacking where{pop false
setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup type/stringtype
ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch
def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0
rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def
/nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def/=={/cp 0 def
typeprint nl}def/typeprint{dup type exec}readonly def/lmargin 72 def/rmargin 72
def/tprint{dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp
exch def prnt}readonly def/cvsprint{=string cvs tprint()tprint}readonly def
/integertype{cvsprint}readonly def/realtype{cvsprint}readonly def/booleantype
{cvsprint}readonly def/operatortype{(--)tprint =string cvs tprint(--)tprint}
readonly def/marktype{pop(-mark-)tprint}readonly def/dicttype{pop
(-dictionary-)tprint}readonly def/nulltype{pop(-null-)tprint}readonly def
/filetype{pop(-filestream-)tprint}readonly def/savetype{pop(-savelevel-)
tprint}readonly def/fonttype{pop(-fontid-)tprint}readonly def/nametype{dup
xcheck not{(/)tprint}if cvsprint}readonly def/stringtype{dup rcheck{(\()tprint
tprint(\))tprint}{pop(-string-)tprint}ifelse}readonly def/arraytype{dup rcheck
{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}forall(])
tprint}ifelse}{pop(-array-)tprint}ifelse}readonly def/packedarraytype{dup
rcheck{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}
forall(])tprint}ifelse}{pop(-packedarray-)tprint}ifelse}readonly def/courier
/Courier findfont 10 scalefont def end errordict/handleerror{systemdict begin
$error begin $brkpage begin newerror{/newerror false store vmstatus pop pop 0
ne{grestoreall}if errorname(VMerror)ne{showpage}if initgraphics courier setfont
lmargin 720 moveto errorname(VMerror)eq{userdict/ehsave known{clear userdict
/ehsave get restore 2 vmreclaim}if vmstatus exch pop exch pop PrtVMMsg}{
(ERROR:)prnt errorname prnt nl(OFFENDING COMMAND:)prnt/command load prnt
$error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}
repeat}if}ifelse systemdict/showpage get exec(%%[ Error:)print errorname
=print(; OffendingCommand:)print/command load =print(]%%)= flush}if end end
end}dup 0 systemdict put dup 4 $brkpage put bind readonly put/currentpacking
where{pop/setpacking where{pop oldpack setpacking}if}if
%%EndResource
这看起来更好看! – JuliandotNut 2014-08-27 16:25:12
我觉得这个问题是不公平的。使用工具正确缩进代码绝对是stackoverflow的主题。 “太多可能的答案”根本不适用于这个问题,因为可用的工具库非常小,我认为在这里包括所有这些问题都没有问题。我挑战那些认为存在太多选项来列出10个选项的人。 – hlovdal 2014-11-02 19:51:42
现在为一些非常令人印象深刻的不可读的postscript,请查看http://web.mit.edu/PostScript/obfuscated-1993/Tiny_RayTracing.ps。 – hlovdal 2014-11-02 19:55:00