From c4e7da3bbefa16d0bc77cd1e5a77e748a54177ce Mon Sep 17 00:00:00 2001 From: Reinhard Kotucha Date: Tue, 4 Sep 2018 22:33:58 +0000 Subject: Upgrade gs-9.23 -> gs-9.24 git-svn-id: svn://tug.org/texlive/trunk@48582 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/tlgs/Resource/Init/pdf_font.ps | 154 +++++++++++++++------------- 1 file changed, 83 insertions(+), 71 deletions(-) (limited to 'Master/tlpkg/tlgs/Resource/Init/pdf_font.ps') diff --git a/Master/tlpkg/tlgs/Resource/Init/pdf_font.ps b/Master/tlpkg/tlgs/Resource/Init/pdf_font.ps index a9511570ec2..feaf0d036ac 100644 --- a/Master/tlpkg/tlgs/Resource/Init/pdf_font.ps +++ b/Master/tlpkg/tlgs/Resource/Init/pdf_font.ps @@ -68,7 +68,7 @@ pdfdict begin { 3 copy put pop 1 add } ifelse } forall pop -} bdef +} bind executeonly def /good_encoding_names << /MacRomanEncoding 0 /MacExpertEncoding 0 /WinAnsiEncoding 0 @@ -130,7 +130,7 @@ pdfdict begin ( Output may be incorrect.\n) pdfformaterror } ifelse - } bdef + } bind executeonly def currentdict /good_encoding_names undef currentdict /known_symbolic_fonts undef @@ -146,7 +146,7 @@ currentdict /known_symbolic_fonts undef } if } if pop -} bind def +} bind executeonly def % Define a font using it's FontName as the key. % Adjust a font according to the Encoding and Widths in the font resource. @@ -166,7 +166,7 @@ currentdict /known_symbolic_fonts undef /Helvetica findfont }if } if -} bind def +} bind executeonly def % Get the (possibly modified) encoding of a font. /getfontencoding { % getfontencoding @@ -213,7 +213,7 @@ currentdict /known_symbolic_fonts undef } ifelse } ifelse } ifelse -} bdef +} bind executeonly def % Returns true if the current glyph is in the Differences array at % the specified index value. This is needed because the Widths @@ -240,7 +240,7 @@ currentdict /known_symbolic_fonts undef % stack: true false index glyphname % or : false index glyphname at_index pop pop pop -} bdef +} bind executeonly def /unique_name { % unique_name % @@ -262,7 +262,7 @@ currentdict /known_symbolic_fonts undef pop } for exch pop cvn % /root0 -} bdef +} bind executeonly def % Get the metrics of a font, if specified. /getfontmetrics { % getfontmetrics @@ -397,7 +397,7 @@ currentdict /known_symbolic_fonts undef } { //null //null } ifelse -} bdef +} bind executeonly def currentdict /unique_name undef currentdict /match_in_diff undef @@ -408,20 +408,20 @@ currentdict /match_in_diff undef pop dup userdict exch /.lastToUnicode exch put exch pop - } bdef + } bind executeonly def /CIDSystemInfo { ( **** Warning: ToUnicode CMap has invalid syntax near CIDSystemInfo.\n) pdfformatwarning /CIDSystemInfo - } bdef % A work around a bug in Altona.Page_3.2002-09-27.pdf - a slash is missed. + } bind executeonly def % A work around a bug in Altona.Page_3.2002-09-27.pdf - a slash is missed. /CMapName { ( **** Warning: ToUnicode CMap has no CMapName.\n\ See the comment to revision 6201 in gs/doc/ps2pdf.htm#Problems .\n) pdfformatwarning /CMap1 % arbitrary, PDF defineresource tolerates non-unique names - } bdef % A work around incorrect ToUnicode CMap generated by GS before rev. 6201. + } bind executeonly def % A work around incorrect ToUnicode CMap generated by GS before rev. 6201. % Split large ranges into smaller chunks to stay withing the limits % of various PS% objects and speed up operand stack manipulation, @@ -448,7 +448,7 @@ currentdict /match_in_diff undef mark } ifelse } loop - } bdef + } bind executeonly def currentdict end readonly def /string2number % string2number @@ -457,7 +457,7 @@ currentdict end readonly def 3 2 roll 256 mul add exch % v+n*256 () } for pop % N -} bind def +} bind executeonly def /copy&def % copy&def - { @@ -474,7 +474,7 @@ currentdict end readonly def setglobal } if def -} bind def +} bind executeonly def /.convert_ToUnicode-into-g2u % .convert_ToUnicode-into-g2u - { @@ -578,14 +578,14 @@ currentdict end readonly def CMAPDEBUG { (.convert_ToUnicode-into-g2u end) = } if -} bind def +} bind executeonly def /.DoToUnicode? { /IgnoreToUnicode where {/IgnoreToUnicode get not} {//true} ifelse -} bind def +} bind executeonly def /.processToUnicode % .processToUnicode - { @@ -718,7 +718,7 @@ currentdict end readonly def {pop pop pop} ifelse -} bind def +} bind executeonly def currentdict /.DoToUnicode? .forceundef @@ -768,7 +768,7 @@ setglobal 4 2 roll .growput } ifelse } ifelse -} bind def +} bind executeonly def % Add original font to cache to prevent adjustfont to accumulate changes. /pdfaddcachedfont { % pdfaddcachedfont @@ -776,7 +776,7 @@ setglobal dup gcheck { //.pdforigfontcache_g } {.pdforigfontcache_l} ifelse 4 2 roll % font d name font put % font -} bind def +} bind executeonly def /.remove_font_name_prefix { % .remove_font_name_prefix dup .namestring (+) search { @@ -792,7 +792,7 @@ setglobal } { pop } ifelse -} bind def +} bind executeonly def % Find a font (except for embedded ones), and adjust its encoding if necessary. /.pdfdfndict mark @@ -965,18 +965,18 @@ setglobal } ifelse } ifelse exch pop -} bdef +} bind executeonly def % ---------------- Type 1 fonts ---------------- % /buildType1 % buildType1 { dup /BaseFont get pdffindfont - } bdef + } bind executeonly def % Read an embedded Type 1 font. /readfontfilter { % readfontfilter 0 () /SubFileDecode filter -} bdef +} bind executeonly def % Adobe Acrobat doesn't skip space characters after eexec /eexec_pdf_param_dict mark @@ -1051,12 +1051,12 @@ setglobal } ifelse } if prev_definefont - } bdef + } bind executeonly def /undef_proc_warning { /Repaired //true store % flag that we have warnings UndefProcList exch 2 copy .knownget { 1 add } { 1 } ifelse put - } bdef + } bind executeonly def /missing-type1-procs 6 dict begin /-| { string currentfile exch readstring pop /-| //undef_proc_warning exec } executeonly bdef @@ -1080,7 +1080,7 @@ setglobal currentfile flushfile % Skip the trailer after return from eexec, bug 690701. { currentdict end //missing-type1-procs eq { exit } if } loop { stop } if - } bdef + } bind executeonly def /readonly-op-dict << /stringtype 0 @@ -1094,7 +1094,7 @@ setglobal ( **** Warning: Type 1 font applies operator readonly to an invalid object type.\n) pdfformatwarning } if - } bdef + } bind executeonly def /prev_get /get load def @@ -1110,14 +1110,14 @@ setglobal prev_get } ifelse } ifelse - } bdef + } bind executeonly def /prev_begin /begin load def /begin { dup //systemdict eq { pop 0 dict } if prev_begin - } bdef + } bind executeonly def { /undef_proc_warning /missing-type1-procs /readonly-op-dict } { currentdict exch undef } forall @@ -1152,7 +1152,7 @@ currentdict /eexec_pdf_param_dict .undef PDFfile file-position setfileposition count stack-count sub { pop } repeat topFontDict end end - } bdef + } bind executeonly def % ---------------- Type 3 fonts ---------------- % @@ -1241,7 +1241,7 @@ currentdict /eexec_pdf_param_dict .undef } bdef dup currentdict Encoding .processToUnicode currentdict end .completefont exch pop -} bdef +} bind executeonly def /.adjustcharwidth { % .adjustcharwidth % Enforce the metrics, in glyph space, to the values found in the PDF Font object % - force wy == 0 (assumed, and not stored in the PDF font) @@ -1258,7 +1258,7 @@ currentdict /eexec_pdf_param_dict .undef exch pop Widths CharCode FirstChar sub get exch } if end } if -} bdef +} bind executeonly def % ---------------- TrueType fonts ---------------- % @@ -1318,7 +1318,7 @@ currentdict /eexec_pdf_param_dict .undef } { pdffindfont } ifelse -} bdef +} bind executeonly def % Read an embedded TrueType font. /readtruetype { % readtruetype @@ -1328,6 +1328,18 @@ currentdict /eexec_pdf_param_dict .undef % Stack: filepos fontres stream 1 index /CIDSystemInfo oknown { 1 index /CIDSystemInfo get dup type /packedarraytype eq {exec}if + dup /Registry known not { + ( **** Warning: a CIDFont's CIDSystemInfo is missing the required Registry entry\n) pdfformatwarning + dup /Registry (Adobe) put + } if + dup /Ordering known not { + ( **** Warning: a CIDFont's CIDSystemInfo is missing the required Ordering entry\n) pdfformatwarning + dup /Ordering (Identity) put + } if + dup /Supplement known not { + ( **** Warning: a CIDFont's CIDSystemInfo is missing the required Supplement entry\n) pdfformatwarning + dup /Supplement 0 put + } if 3 1 roll 1 index /Subtype knownoget { /CIDFontType2 ne { @@ -1371,7 +1383,7 @@ currentdict /eexec_pdf_param_dict .undef PDFfile 3 -1 roll setfileposition % Ignore both the Encoding and the Widths. exch pop -} bdef +} bind executeonly def % ---------------- Type 0 fonts ---------------- % @@ -1413,7 +1425,7 @@ currentdict /eexec_pdf_param_dict .undef end % CMap end % CIDInit ProcSet exch .setglobal -} bdef +} bind executeonly def /CMap_read_dict 3 dict begin /defineresource % defineresource @@ -1421,20 +1433,20 @@ currentdict /eexec_pdf_param_dict .undef pop /.last_CMap_def 1 index store exch pop - } bdef + } bind executeonly def /CIDSystemInfo { ( **** Error: CMap has invalid syntax near CIDSystemInfo.\n) pdfformaterror ( Output may be incorrect.\n) pdfformaterror /CIDSystemInfo - } bdef % A work around a bug in Altona.Page_3.2002-09-27.pdf - a slash is missed. + } bind executeonly def % A work around a bug in Altona.Page_3.2002-09-27.pdf - a slash is missed. /CMapName { ( **** Error: CMap has no CMapName.\n\ See the comment to revision 6201 in gs/doc/ps2pdf.htm#Problems .\n) pdfformaterror ( Output may be incorrect.\n) pdfformaterror /CMap1 % arbitrary, PDF defineresource tolerates non-unique names - } bdef % A work around incorrect ToUnicode CMap generated by GS before rev. 6201. + } bind executeonly def % A work around incorrect ToUnicode CMap generated by GS before rev. 6201. currentdict end readonly def % Read an embedded stream that we *hope* is a PostScript CMap. According @@ -1451,7 +1463,7 @@ currentdict end readonly def currentdict end dup /CMapName get exch /CMap defineresource end -} bdef +} bind executeonly def % Read embedded CMap stream. % if the parameter is null, it indicates there is no WMode, and we @@ -1475,7 +1487,7 @@ currentdict end readonly def { currentdict end //CMap_read_dict eq { exit } if } loop dup /.last_CMap_def undef /CMap defineresource -} bdef +} bind executeonly def currentdict /CMap_read_dict undef @@ -1536,7 +1548,7 @@ currentdict /CMap_read_dict undef pop } ifelse } if exch pop -} bdef +} bind executeonly def % ---------------- CIDFontType0/2 fonts ---------------- % @@ -1589,7 +1601,7 @@ currentdict /CMap_read_dict undef dup /CDevProc 1 index /CIDWProc load /exec load 3 packedarray cvx put exch pop -} bdef +} bind executeonly def /.pdfMakeInternalMTXArray { % .pdfConvertInternalW % convert /W or /W2 to internal expression @@ -1645,10 +1657,10 @@ currentdict /CMap_read_dict undef [ { putMTXEntry Mi1 type get exec i Msize ge { exit } if } loop ] end -} def +} executeonly def -/.pdfMakeInternalW { dup length 0 gt { oforce_recursive 1 .pdfMakeInternalMTXArray } if } def -/.pdfMakeInternalW2 { dup length 0 gt { oforce_recursive 3 .pdfMakeInternalMTXArray } if } def +/.pdfMakeInternalW { dup length 0 gt { oforce_recursive 1 .pdfMakeInternalMTXArray } if } executeonly def +/.pdfMakeInternalW2 { dup length 0 gt { oforce_recursive 3 .pdfMakeInternalMTXArray } if } executeonly def /.pdfGetMTXByCID { % % .pdfGetMTXByCID @@ -1668,7 +1680,7 @@ currentdict /CMap_read_dict undef { exit } if } forall dup type /arraytype eq { exch pop //true } { pop //false } ifelse -} def +} executeonly def % Apply the [D]W[2] metrics to a character before displaying. /CIDWProc { % @@ -1776,7 +1788,7 @@ currentdict /CMap_read_dict undef 11 -1 roll pop % Stack: end % recover currentdict -} def +} executeonly def % tailmatch ==>
 true
 %                            ==>  false
@@ -1789,7 +1801,7 @@ currentdict /CMap_read_dict undef
   } {
     pop //false
   } ifelse
-} bind def
+} bind executeonly def
 
 /makeboldfont {
   16 dict begin
@@ -1830,7 +1842,7 @@ currentdict /CMap_read_dict undef
    currentdict
   end
   dup /CIDFontName get exch /CIDFont defineresource
-} bind def
+} bind executeonly def
 
 %   findCIDFont  
 %   CIDFont-resource is not modified.
@@ -2014,15 +2026,15 @@ currentdict /CMap_read_dict undef
     } if
     /findresource cvx /undefined signalerror
   } loop
-} bdef
+} bind executeonly def
 
 /buildCIDType0 {	%  buildCIDType0 
   dup /BaseFont get findCIDFont exch pop
-} bdef
+} bind executeonly def
 
 /buildCIDType2 {	%  buildCIDType2 
   dup /BaseFont get findCIDFont exch pop
-} bdef
+} bind executeonly def
 
 /processCIDToGIDMap { %   processCIDToGIDMap  
   1 index /CIDToGIDMap knownoget {
@@ -2055,7 +2067,7 @@ currentdict /CMap_read_dict undef
     } ifelse
     3 2 roll PDFfile exch setfileposition
   } if
-} bdef
+} bind executeonly def
 
 % Adjust a CIDFontType0 DW[2] in the font resource.
 /adjustCIDType0 {		%   adjustfont 
@@ -2067,7 +2079,7 @@ currentdict /CMap_read_dict undef
     addCIDmetrics
     dup /CIDFontName get exch /CIDFont defineresource
   } ifelse
-} bind def
+} bind executeonly def
 
 % Adjust a CIDFontType2 DW[2] and CIDToGIDMap in the font resource.
 /adjustCIDType2 {		%   adjustfont 
@@ -2082,7 +2094,7 @@ currentdict /CMap_read_dict undef
     } if
     dup /CIDFontName get exch /CIDFont defineresource
   } ifelse
-} bind def
+} bind executeonly def
 
 % ---------------- Other embedded fonts ---------------- %
 
@@ -2108,7 +2120,7 @@ currentdict /CMap_read_dict undef
   closefile closefile pop
   PDFfile 3 -1 roll setfileposition
   pop pop
-} bdef
+} bind executeonly def
 
 % Read an embedded CFF CIDFont.
 /readCIDFontType0C {  %   readCIDFontType0C 
@@ -2126,7 +2138,7 @@ currentdict /CMap_read_dict undef
                 % Use the FontName, rather than the BaseFont, here.
   dup /FontDescriptor oget /FontName oget /CIDFont findresource
   addCIDmetrics dup /CIDFontName get exch /CIDFont defineresource
-} bdef
+} bind executeonly def
 
 % Read an embedded OpenType font.
 /readOTTOfont {		%   readOTTOfont 
@@ -2184,7 +2196,7 @@ currentdict /CMap_read_dict undef
   closefile closefile pop pop     % font res pos
   PDFfile exch setfileposition    % font res
   pop                             % font
-} bdef
+} bind executeonly def
 
 % ---------------- Font lookup ---------------- %
 
@@ -2216,10 +2228,10 @@ currentdict /CMap_read_dict undef
 % Bind a proc and define n names
 % /name ... /name {proc} n bndef -
 /bndef
-  { exch bind exch
+  { exch bind executeonly exch
     { dup 3 1 roll def } repeat
     pop
-  } bdef
+  } bind executeonly def
 
 %  run-fonttypeproc 
 /run-fonttypeproc {
@@ -2232,7 +2244,7 @@ currentdict /CMap_read_dict undef
     2 copy /Subtype exch put
   } if
   //fonttypeprocs exch get exec
-} bdef
+} bind executeonly def
 
 % Prototype for all procedures:    foo 
 /font_tag_dict 13 dict begin
@@ -2241,19 +2253,19 @@ currentdict /CMap_read_dict undef
   /no_stream
     { pop pop
       run-fonttypeproc
-    } bdef
+    } bind executeonly def
 
   /bad_stream
     { (   **** Error: Error reading font stream, attempting to load the font using its name\n)
       pdfformaterror
       (               Output may be incorrect.\n) pdfformaterror
       //no_stream exec
-    } bdef
+    } bind executeonly def
 
   <8001>          % PFB
     { dup /PFB //true put
       exch pop readtype1
-    } bdef
+    } bind executeonly def
 
   (%!PS) (%!Fo)   % Type1
     { exch pop readtype1
@@ -2276,7 +2288,7 @@ currentdict /CMap_read_dict undef
   (OTTO)
     { exch pop
       readOTTOfont
-    } bdef
+    } bind executeonly def
 
 currentdict end readonly def
 currentdict /bndef undef
@@ -2311,7 +2323,7 @@ currentdict /bndef undef
     16#7FFFFFFF and
     xor                   % object_number CRC
     xor                   % final hashed value
-}bind def
+}bind executeonly def
 
 % Either patch or create a new XUID based on the existing
 % XUID or UniqueID and incorporating the PDF object number
@@ -2344,7 +2356,7 @@ currentdict /bndef undef
       .completefont
     } ifelse
   } ifelse
-} bind def
+} bind executeonly def
 
 /resourcefont                   %  resourcefont 
 {
@@ -2489,7 +2501,7 @@ currentdict /bndef undef
     dup 3 1 roll /PSFont exch put
   } ifelse
   dup checkGlyphNames2Unicode
-} bdef
+} bind executeonly def
 
 currentdict /font_tag_dict .undef
 currentdict /fonttypeprocs .undef
@@ -2499,7 +2511,7 @@ drawopdict begin
   /d0 {
     currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors
     .adjustcharwidth setcharwidth
-  } bdef
+  } bind executeonly def
   /d1 {
     2 copy                           % ... llx lly urx ury | urx ury
     0 ne exch 0 ne                   % ... llx lly urx ury | ury!=0 urx!=0
@@ -2511,7 +2523,7 @@ drawopdict begin
     } {
       6 -2 roll .adjustcharwidth 6 2 roll setcachedevice
     } ifelse
-  } bdef
+  } bind executeonly def
   /Tf {
     1 index Page /Font rget {
       dup type /dicttype eq {
@@ -2550,7 +2562,7 @@ drawopdict begin
         Tf
       } ifelse
     } ifelse
-  } bdef
+  } bind executeonly def
 end
 
 end			% pdfdict
-- 
cgit v1.2.3