summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Resource/Init/gs_diskn.ps2
-rw-r--r--Resource/Init/gs_dps.ps2
-rw-r--r--Resource/Init/gs_fntem.ps2
-rw-r--r--Resource/Init/gs_fonts.ps10
-rw-r--r--Resource/Init/gs_lev2.ps13
-rw-r--r--Resource/Init/gs_pdfwr.ps2
-rw-r--r--Resource/Init/gs_setpd.ps25
-rw-r--r--Resource/Init/gs_typ32.ps14
-rw-r--r--Resource/Init/gs_type1.ps2
-rw-r--r--Resource/Init/pdf_base.ps2
-rw-r--r--Resource/Init/pdf_draw.ps10
-rw-r--r--Resource/Init/pdf_font.ps8
-rw-r--r--Resource/Init/pdf_main.ps4
-rw-r--r--Resource/Init/pdf_ops.ps8
14 files changed, 61 insertions, 43 deletions
diff --git a/Resource/Init/gs_diskn.ps b/Resource/Init/gs_diskn.ps
index 5540715dc..26ec0b5b6 100644
--- a/Resource/Init/gs_diskn.ps
+++ b/Resource/Init/gs_diskn.ps
@@ -53,7 +53,7 @@ systemdict begin
53 exch .setglobal 53 exch .setglobal
54 } 54 }
55 if 55 if
56} .bind executeonly def % must be bound and hidden for .forceput 56} .bind executeonly odef % must be bound and hidden for .forceput
57 57
58% Modify .putdevparams to force regeneration of .searchabledevs list 58% Modify .putdevparams to force regeneration of .searchabledevs list
59/.putdevparams { 59/.putdevparams {
diff --git a/Resource/Init/gs_dps.ps b/Resource/Init/gs_dps.ps
index cad705623..daf7b0f0b 100644
--- a/Resource/Init/gs_dps.ps
+++ b/Resource/Init/gs_dps.ps
@@ -70,7 +70,7 @@
70 % Save a copy of the initial gstate. 70 % Save a copy of the initial gstate.
71 //systemdict /savedinitialgstate gstate readonly .forceput 71 //systemdict /savedinitialgstate gstate readonly .forceput
72 .setglobal 72 .setglobal
73} .bind executeonly def % must be bound and hidden for .forceput 73} .bind executeonly odef % must be bound and hidden for .forceput
74 74
75% Initialize local dictionaries and gstate when creating a new context. 75% Initialize local dictionaries and gstate when creating a new context.
76% Note that until this completes, we are in the anomalous situation of 76% Note that until this completes, we are in the anomalous situation of
diff --git a/Resource/Init/gs_fntem.ps b/Resource/Init/gs_fntem.ps
index 3ceee18d3..c1f7651f1 100644
--- a/Resource/Init/gs_fntem.ps
+++ b/Resource/Init/gs_fntem.ps
@@ -408,7 +408,7 @@ currentdict end def
408 exit 408 exit
409 } loop 409 } loop
410 exch setglobal 410 exch setglobal
411} .bind executeonly def % must be bound and hidden for .forceput 411} .bind executeonly odef % must be bound and hidden for .forceput
412 412
413currentdict end /ProcSet defineresource pop 413currentdict end /ProcSet defineresource pop
414 414
diff --git a/Resource/Init/gs_fonts.ps b/Resource/Init/gs_fonts.ps
index 45b661308..89c3ab7bd 100644
--- a/Resource/Init/gs_fonts.ps
+++ b/Resource/Init/gs_fonts.ps
@@ -377,8 +377,8 @@ FONTPATH length 0 eq { (%END FONTPATH) .skipeof } if
377 } 377 }
378 {pop} 378 {pop}
379 ifelse 379 ifelse
380} .bind executeonly def 380} .bind executeonly odef
381systemdict /NONATIVEFONTMAP known //.setnativefontmapbuilt exec 381systemdict /NONATIVEFONTMAP known .setnativefontmapbuilt
382/.buildnativefontmap { % - .buildnativefontmap <bool> 382/.buildnativefontmap { % - .buildnativefontmap <bool>
383 systemdict /.nativefontmapbuilt .knownget not 383 systemdict /.nativefontmapbuilt .knownget not
384 { //false} if 384 { //false} if
@@ -419,7 +419,7 @@ systemdict /NONATIVEFONTMAP known //.setnativefontmapbuilt exec
419 } forall 419 } forall
420 } if 420 } if
421 % record that we've been run 421 % record that we've been run
422 //true //.setnativefontmapbuilt exec 422 //true .setnativefontmapbuilt
423 } ifelse 423 } ifelse
424} bind def 424} bind def
425currentdict /.setnativefontmapbuilt .forceundef 425currentdict /.setnativefontmapbuilt .forceundef
@@ -1103,7 +1103,7 @@ $error /SubstituteFont { } put
1103 1103
1104 % Check to make sure the font was actually loaded. 1104 % Check to make sure the font was actually loaded.
1105 dup 3 index .fontknownget 1105 dup 3 index .fontknownget
1106 { dup /PathLoad 4 index //.putgstringcopy exec 1106 { dup /PathLoad 4 index .putgstringcopy
1107 4 1 roll pop pop pop //true exit 1107 4 1 roll pop pop pop //true exit
1108 } if 1108 } if
1109 1109
@@ -1115,7 +1115,7 @@ $error /SubstituteFont { } put
1115 { % Stack: origfontname fontdirectory path filefontname 1115 { % Stack: origfontname fontdirectory path filefontname
1116 2 index 1 index .fontknownget 1116 2 index 1 index .fontknownget
1117 { % Yes. Stack: origfontname fontdirectory path filefontname fontdict 1117 { % Yes. Stack: origfontname fontdirectory path filefontname fontdict
1118 dup 4 -1 roll /PathLoad exch //.putgstringcopy exec 1118 dup 4 -1 roll /PathLoad exch .putgstringcopy
1119 % Stack: origfontname fontdirectory filefontname fontdict 1119 % Stack: origfontname fontdirectory filefontname fontdict
1120 3 -1 roll pop 1120 3 -1 roll pop
1121 % Stack: origfontname filefontname fontdict 1121 % Stack: origfontname filefontname fontdict
diff --git a/Resource/Init/gs_lev2.ps b/Resource/Init/gs_lev2.ps
index 6b7ad030b..44fe61956 100644
--- a/Resource/Init/gs_lev2.ps
+++ b/Resource/Init/gs_lev2.ps
@@ -163,10 +163,11 @@ end
163 % Set them again to the new values. From here on, we are safe, 163 % Set them again to the new values. From here on, we are safe,
164 % since a context switch will consult userparams. 164 % since a context switch will consult userparams.
165 .setuserparams 165 .setuserparams
166} .bind executeonly def % must be bound and hidden for .forceput 166} .bind executeonly odef % must be bound and hidden for .forceput
167 167
168/setuserparams { % <dict> setuserparams - 168/setuserparams { % <dict> setuserparams -
169 .setuserparams2 169 {.setuserparams2} stopped
170 {/setuserparams load $error /errorname get signalerror} if
170} .bind odef 171} .bind odef
171% Initialize user parameters managed here. 172% Initialize user parameters managed here.
172/JobName () .definepsuserparam 173/JobName () .definepsuserparam
@@ -415,7 +416,9 @@ psuserparams /ProcessDSCComment {.checkprocesscomment} put
415 416
416% VMReclaim and VMThreshold are user parameters. 417% VMReclaim and VMThreshold are user parameters.
417/setvmthreshold { % <int> setvmthreshold - 418/setvmthreshold { % <int> setvmthreshold -
418 mark /VMThreshold 2 .argindex .dicttomark .setuserparams2 pop 419 mark /VMThreshold 2 .argindex .dicttomark {.setuserparams2} stopped
420 {pop /setvmthreshold load $error /errorname get signalerror}
421 {pop} ifelse
419} odef 422} odef
420/vmreclaim { % <int> vmreclaim - 423/vmreclaim { % <int> vmreclaim -
421 dup 0 gt { 424 dup 0 gt {
@@ -427,7 +430,9 @@ psuserparams /ProcessDSCComment {.checkprocesscomment} put
427 ifelse 430 ifelse
428 } { 431 } {
429 % VMReclaim userparam controls enable/disable GC 432 % VMReclaim userparam controls enable/disable GC
430 mark /VMReclaim 2 index .dicttomark .setuserparams2 pop 433 mark /VMReclaim 2 index .dicttomark {.setuserparams2} stopped
434 {pop /vmreclaim load $error /errorname get signalerror}
435 {pop} ifelse
431 } ifelse 436 } ifelse
432} odef 437} odef
433-1 setvmthreshold 438-1 setvmthreshold
diff --git a/Resource/Init/gs_pdfwr.ps b/Resource/Init/gs_pdfwr.ps
index fb1c4191c..58e75d3a4 100644
--- a/Resource/Init/gs_pdfwr.ps
+++ b/Resource/Init/gs_pdfwr.ps
@@ -660,7 +660,7 @@ currentdict /.pdfmarkparams .undef
660 { 660 {
661 pop 661 pop
662 } ifelse 662 } ifelse
663} .bind executeonly def % must be bound and hidden for .forceput 663} .bind executeonly odef % must be bound and hidden for .forceput
664 664
665% Use the DSC processing hook to pass DSC comments to the driver. 665% Use the DSC processing hook to pass DSC comments to the driver.
666% We use a pseudo-parameter named DSC whose value is an array: 666% We use a pseudo-parameter named DSC whose value is an array:
diff --git a/Resource/Init/gs_setpd.ps b/Resource/Init/gs_setpd.ps
index c129f6b79..a84496b8c 100644
--- a/Resource/Init/gs_setpd.ps
+++ b/Resource/Init/gs_setpd.ps
@@ -608,6 +608,20 @@ NOMEDIAATTRS {
608% in the <failed> dictionary with the policy value, 608% in the <failed> dictionary with the policy value,
609% and we replace the key in the <merged> dictionary with its prior value 609% and we replace the key in the <merged> dictionary with its prior value
610% (or remove it if it had no prior value). 610% (or remove it if it had no prior value).
611
612% Making this an operator means we can properly hide
613% the contents - specifically .forceput
614/1Policy
615{
616 % Roll back the failed request to its previous status.
617 SETPDDEBUG { (Rolling back.) = pstack flush } if
618 3 index 2 index 3 -1 roll .forceput
619 4 index 1 index .knownget
620 { 4 index 3 1 roll .forceput }
621 { 3 index exch .undef }
622 ifelse
623} bind executeonly odef
624
611/.policyprocs mark 625/.policyprocs mark
612% These procedures are called with the following on the stack: 626% These procedures are called with the following on the stack:
613% <orig> <merged> <failed> <Policies> <key> <policy> 627% <orig> <merged> <failed> <Policies> <key> <policy>
@@ -631,14 +645,7 @@ NOMEDIAATTRS {
631 /setpagedevice .systemvar /configurationerror signalerror 645 /setpagedevice .systemvar /configurationerror signalerror
632 } ifelse 646 } ifelse
633 } bind 647 } bind
634 1 { % Roll back the failed request to its previous status. 648 1 /1Policy load
635SETPDDEBUG { (Rolling back.) = pstack flush } if
636 3 index 2 index 3 -1 roll .forceput
637 4 index 1 index .knownget
638 { 4 index 3 1 roll .forceput }
639 { 3 index exch .undef }
640 ifelse
641 } .bind executeonly % must be bound and hidden for .forceput
642 7 { % For PageSize only, just impose the request. 649 7 { % For PageSize only, just impose the request.
643 1 index /PageSize eq 650 1 index /PageSize eq
644 { pop pop 1 index /PageSize 7 put } 651 { pop pop 1 index /PageSize 7 put }
@@ -646,6 +653,8 @@ SETPDDEBUG { (Rolling back.) = pstack flush } if
646 ifelse 653 ifelse
647 } bind 654 } bind
648.dicttomark readonly def 655.dicttomark readonly def
656currentdict /1Policy undef
657
649/.applypolicies % <orig> <merged> <failed> .applypolicies 658/.applypolicies % <orig> <merged> <failed> .applypolicies
650 % <orig> <merged'> <failed'> 659 % <orig> <merged'> <failed'>
651 { 1 index /Policies get 1 index 660 { 1 index /Policies get 1 index
diff --git a/Resource/Init/gs_typ32.ps b/Resource/Init/gs_typ32.ps
index b6600b0ce..9150f7187 100644
--- a/Resource/Init/gs_typ32.ps
+++ b/Resource/Init/gs_typ32.ps
@@ -79,15 +79,19 @@ systemdict /.removeglyphs .undef
79.dicttomark /ProcSet defineresource pop 79.dicttomark /ProcSet defineresource pop
80 80
81/.cidfonttypes where { pop } { /.cidfonttypes 6 dict def } ifelse 81/.cidfonttypes where { pop } { /.cidfonttypes 6 dict def } ifelse
82.cidfonttypes begin 82/CIDFontType4
83 83{
844 % CIDFontType 4 = FontType 32 84 dup /FontType 32 .forceput
85{ dup /FontType 32 .forceput
86 dup /CharStrings 20 dict .forceput 85 dup /CharStrings 20 dict .forceput
87 1 index exch .buildfont32 exch pop 86 1 index exch .buildfont32 exch pop
88} .bind executeonly def % must be bound and hidden for .forceput 87} .bind executeonly odef
88.cidfonttypes begin
89
90
914 /CIDFontType4 load def % CIDFontType 4 = FontType 32
89 92
90end % .cidfonttypes 93end % .cidfonttypes
94currentdict /CIDFontType4 .forceundef
91 95
92% Define the BuildGlyph procedure. 96% Define the BuildGlyph procedure.
93% Since Type 32 fonts are indexed by CID, there is no BuildChar procedure. 97% Since Type 32 fonts are indexed by CID, there is no BuildChar procedure.
diff --git a/Resource/Init/gs_type1.ps b/Resource/Init/gs_type1.ps
index 5df9fc7dc..96e1ced24 100644
--- a/Resource/Init/gs_type1.ps
+++ b/Resource/Init/gs_type1.ps
@@ -283,7 +283,7 @@ currentdict /closesourcedict .undef
283 } if 283 } if
284 2 copy /WeightVector exch .forceput 284 2 copy /WeightVector exch .forceput
285 .setweightvector 285 .setweightvector
286} .bind executeonly def 286} .bind executeonly odef
287end 287end
288 288
289% Register the font types for definefont. 289% Register the font types for definefont.
diff --git a/Resource/Init/pdf_base.ps b/Resource/Init/pdf_base.ps
index a82a2a3ad..7ccd4cd31 100644
--- a/Resource/Init/pdf_base.ps
+++ b/Resource/Init/pdf_base.ps
@@ -218,7 +218,7 @@ currentdict /num-chars-dict .undef
218 } ifelse 218 } ifelse
219 } ifelse 219 } ifelse
220 } ifelse 220 } ifelse
221} bind executeonly def 221} bind executeonly odef
222/PDFScanRules_true << /PDFScanRules //true >> def 222/PDFScanRules_true << /PDFScanRules //true >> def
223/PDFScanRules_null << /PDFScanRules //null >> def 223/PDFScanRules_null << /PDFScanRules //null >> def
224/.pdfrun { % <file> <opdict> .pdfrun - 224/.pdfrun { % <file> <opdict> .pdfrun -
diff --git a/Resource/Init/pdf_draw.ps b/Resource/Init/pdf_draw.ps
index d1b6ac909..c239daf5d 100644
--- a/Resource/Init/pdf_draw.ps
+++ b/Resource/Init/pdf_draw.ps
@@ -1158,7 +1158,7 @@ currentdict end readonly def
1158 Q 1158 Q
1159 PDFDEBUG { pdfdict /PDFSTEPcount .knownget { 1 le } { //true } ifelse { (%End PaintProc) print dup === flush } if } if 1159 PDFDEBUG { pdfdict /PDFSTEPcount .knownget { 1 le } { //true } ifelse { (%End PaintProc) print dup === flush } if } if
1160 PDFfile exch setfileposition 1160 PDFfile exch setfileposition
1161} bind executeonly def 1161} bind executeonly odef
1162 1162
1163/.pdfpaintproc { 1163/.pdfpaintproc {
1164 %% Get the /m from pdfopdict (must be present) 1164 %% Get the /m from pdfopdict (must be present)
@@ -1189,7 +1189,7 @@ currentdict end readonly def
1189 { 1189 {
1190 switch_to_text_marking_ops 1190 switch_to_text_marking_ops
1191 } if 1191 } if
1192}bind executeonly def 1192}bind executeonly odef
1193 1193
1194/resolvepattern { % <patternstreamdict> resolvepattern <patterndict> 1194/resolvepattern { % <patternstreamdict> resolvepattern <patterndict>
1195 % Don't do the resolvestream now: just capture the data 1195 % Don't do the resolvestream now: just capture the data
@@ -2353,7 +2353,7 @@ currentdict /last-ditch-bpc-csp undef
2353 }{ 2353 }{
2354 pdfdict /AppearanceNumber 0 .forceput 2354 pdfdict /AppearanceNumber 0 .forceput
2355 } ifelse 2355 } ifelse
2356}bind executeonly def 2356}bind executeonly odef
2357 2357
2358/MakeAppearanceName { 2358/MakeAppearanceName {
2359 pdfdict /AppearanceNumber get 2359 pdfdict /AppearanceNumber get
@@ -2382,7 +2382,7 @@ currentdict /last-ditch-bpc-csp undef
2382 DoForm 2382 DoForm
2383 pdfdict /.PreservePDFForm 3 -1 roll .forceput 2383 pdfdict /.PreservePDFForm 3 -1 roll .forceput
2384 grestore 2384 grestore
2385} bind executeonly def 2385} bind executeonly odef
2386 2386
2387/DoForm { 2387/DoForm {
2388 %% save the current value, if its true we will set it to false later, in order 2388 %% save the current value, if its true we will set it to false later, in order
@@ -2541,7 +2541,7 @@ currentdict /last-ditch-bpc-csp undef
2541 end 2541 end
2542 } if 2542 } if
2543 pdfdict /.PreservePDFForm 3 -1 roll .forceput 2543 pdfdict /.PreservePDFForm 3 -1 roll .forceput
2544} bind executeonly def 2544} bind executeonly odef
2545 2545
2546/_dops_save 1 array def 2546/_dops_save 1 array def
2547 2547
diff --git a/Resource/Init/pdf_font.ps b/Resource/Init/pdf_font.ps
index b23ce0adb..35f0a8aa3 100644
--- a/Resource/Init/pdf_font.ps
+++ b/Resource/Init/pdf_font.ps
@@ -718,7 +718,7 @@ currentdict end readonly def
718 {pop pop pop} 718 {pop pop pop}
719 ifelse 719 ifelse
720 720
721} bind executeonly def 721} bind executeonly odef
722 722
723currentdict /.DoToUnicode? .forceundef 723currentdict /.DoToUnicode? .forceundef
724 724
@@ -1241,7 +1241,7 @@ currentdict /eexec_pdf_param_dict .undef
1241 } bdef 1241 } bdef
1242 dup currentdict Encoding .processToUnicode 1242 dup currentdict Encoding .processToUnicode
1243 currentdict end .completefont exch pop 1243 currentdict end .completefont exch pop
1244} bind executeonly def 1244} bind executeonly odef
1245/.adjustcharwidth { % <wx> <wy> .adjustcharwidth <wx'> <wy'> 1245/.adjustcharwidth { % <wx> <wy> .adjustcharwidth <wx'> <wy'>
1246 % Enforce the metrics, in glyph space, to the values found in the PDF Font object 1246 % Enforce the metrics, in glyph space, to the values found in the PDF Font object
1247 % - force wy == 0 (assumed, and not stored in the PDF font) 1247 % - force wy == 0 (assumed, and not stored in the PDF font)
@@ -2026,7 +2026,7 @@ currentdict /CMap_read_dict undef
2026 } if 2026 } if
2027 /findresource cvx /undefined signalerror 2027 /findresource cvx /undefined signalerror
2028 } loop 2028 } loop
2029} bind executeonly def 2029} bind executeonly odef
2030 2030
2031/buildCIDType0 { % <CIDFontType0-font-resource> buildCIDType0 <font> 2031/buildCIDType0 { % <CIDFontType0-font-resource> buildCIDType0 <font>
2032 dup /BaseFont get findCIDFont exch pop 2032 dup /BaseFont get findCIDFont exch pop
@@ -2211,7 +2211,7 @@ currentdict /CMap_read_dict undef
2211 /Type0 //buildType0 2211 /Type0 //buildType0
2212 /Type1 //buildType1 2212 /Type1 //buildType1
2213 /MMType1 //buildType1 2213 /MMType1 //buildType1
2214 /Type3 //buildType3 2214 /Type3 /buildType3 load
2215 /TrueType //buildTrueType 2215 /TrueType //buildTrueType
2216 /CIDFontType0 //buildCIDType0 2216 /CIDFontType0 //buildCIDType0
2217 /CIDFontType2 //buildCIDType2 2217 /CIDFontType2 //buildCIDType2
diff --git a/Resource/Init/pdf_main.ps b/Resource/Init/pdf_main.ps
index 4d59d9c53..f1dbb0a74 100644
--- a/Resource/Init/pdf_main.ps
+++ b/Resource/Init/pdf_main.ps
@@ -660,7 +660,7 @@ currentdict /runpdfstring .undef
660 } forall 660 } forall
661 pop 661 pop
662 } ifelse 662 } ifelse
663} bind executeonly def 663} bind executeonly odef
664 664
665currentdict /pdf_collection_files .undef 665currentdict /pdf_collection_files .undef
666 666
@@ -2723,7 +2723,7 @@ currentdict /PDF2PS_matrix_key undef
2723 .setglobal 2723 .setglobal
2724 /RepairedAnError exch def 2724 /RepairedAnError exch def
2725 /Repaired exch def 2725 /Repaired exch def
2726} bind executeonly def 2726} bind executeonly odef
2727 2727
2728% Display the contents of a page (including annotations). 2728% Display the contents of a page (including annotations).
2729/showpagecontents { % <pagedict> showpagecontents - 2729/showpagecontents { % <pagedict> showpagecontents -
diff --git a/Resource/Init/pdf_ops.ps b/Resource/Init/pdf_ops.ps
index c45fc519b..8672d617f 100644
--- a/Resource/Init/pdf_ops.ps
+++ b/Resource/Init/pdf_ops.ps
@@ -193,7 +193,7 @@ currentdict /gput_always_allow .undef
193 pdfformaterror 193 pdfformaterror
194 } ifelse 194 } ifelse
195 } if 195 } if
196} bind executeonly def 196} bind executeonly odef
197 197
198% Save PDF gstate 198% Save PDF gstate
199/qstate { % - qstate <qstate> 199/qstate { % - qstate <qstate>
@@ -451,7 +451,7 @@ currentdict /gput_always_allow .undef
451 %% a gsave, so we haven't copied it to /self, if we don't do that here 451 %% a gsave, so we haven't copied it to /self, if we don't do that here
452 %% then transparent annotations cause an invalid access error. 452 %% then transparent annotations cause an invalid access error.
453 currentdict //nodict eq {/self dup load end 5 dict begin def} if 453 currentdict //nodict eq {/self dup load end 5 dict begin def} if
454} bind executeonly def 454} bind executeonly odef
455/AIS { .setalphaisshape } bind executeonly def 455/AIS { .setalphaisshape } bind executeonly def
456/BM { 456/BM {
457 /.setblendmode where { 457 /.setblendmode where {
@@ -1077,7 +1077,7 @@ end readonly def
1077 pdfopdict /v {inside_text_v} bind .forceput 1077 pdfopdict /v {inside_text_v} bind .forceput
1078 pdfopdict /y {inside_text_y} bind .forceput 1078 pdfopdict /y {inside_text_y} bind .forceput
1079 pdfopdict /re {inside_text_re} bind .forceput 1079 pdfopdict /re {inside_text_re} bind .forceput
1080} bind executeonly def 1080} bind executeonly odef
1081 1081
1082/switch_to_normal_marking_ops { 1082/switch_to_normal_marking_ops {
1083 pdfopdict /m {normal_m} bind .forceput 1083 pdfopdict /m {normal_m} bind .forceput
@@ -1086,7 +1086,7 @@ end readonly def
1086 pdfopdict /v {normal_v} bind .forceput 1086 pdfopdict /v {normal_v} bind .forceput
1087 pdfopdict /y {normal_y} bind .forceput 1087 pdfopdict /y {normal_y} bind .forceput
1088 pdfopdict /re {normal_re} bind .forceput 1088 pdfopdict /re {normal_re} bind .forceput
1089} bind executeonly def 1089} bind executeonly odef
1090 1090
1091/BT { 1091/BT {
1092 currentdict /TextSaveMatrix known { 1092 currentdict /TextSaveMatrix known {