diff options
author | Reinhard Kotucha <reinhard.kotucha@web.de> | 2018-03-22 23:42:32 +0000 |
---|---|---|
committer | Reinhard Kotucha <reinhard.kotucha@web.de> | 2018-03-22 23:42:32 +0000 |
commit | 101b320cbf2e4ab4c4a98ab5e7985b881f566a2a (patch) | |
tree | c2eaae7f757759f7e0b54a2904e66a1b481291be /Master/tlpkg/tlgs/Resource/Init | |
parent | b8c3630840af3e208cb60e260adc4c9622a0bd6a (diff) |
Upgrade gs-9.22 -> gs-9.23
git-svn-id: svn://tug.org/texlive/trunk@47081 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlgs/Resource/Init')
55 files changed, 1060 insertions, 488 deletions
diff --git a/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2 b/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2 index 9011451e2c8..b94b0327420 100644 --- a/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2 +++ b/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2 @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps b/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps index 6b9e1468f4c..61329dc326f 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % $Id: gs_agl.ps 10822 2010-02-27 20:24:13Z alexcher $ diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps b/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps index a2f08b748b2..c7fdcba82ac 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Initialization file for binary tokens. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps b/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps index c5e72602a45..20c35a5f690 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Loader for CFF (compressed) fonts, including OpenType CFFs. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps b/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps index d2a767f7625..0201ea8902b 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Extending Font resource category with CIDFont-CMap fonts. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps b/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps index 612d44a5b09..54c68766606 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Define SubstCID, Decoding and CIDDecoding resource categories and related procsets. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps b/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps index 9011634ef95..16ef97f0b5c 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Redefine CIDFont category with cidfmap . diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps b/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps index d70d1895c8d..74f1446bcd5 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % ProcSet for implementing CIDFont and CIDMap resources. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps b/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps index 7e83cfdc6d3..a8aa10c98e0 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Redefine CIDFont category with an emulation with True Type fonts. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps b/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps index a9143efcb85..63c023b6753 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % ProcSet for implementing CMap resources. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps b/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps index deb282df7ba..c612ea9acf4 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % basic colorspace mechanism @@ -64,8 +64,10 @@ end % colorspacedict % % - initgraphics - % -% The internal routine gs_initgraphics doesn't (re)set the color space, -% so we must redefine the operation to do it here. +% Although the internal routine gs_initgraphics resets the color space, +% it does not reset the color space we store in the 'interpreter' +% graphics state (so that we can hand it back in currentcolorspace). +% So we need to do that in the PostScript world. % % /initgraphics diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps b/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps index abd5e13a4b2..54692f447d3 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Define the Dingbats encoding vector. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_diskf.ps b/Master/tlpkg/tlgs/Resource/Init/gs_diskf.ps deleted file mode 100644 index 3cd10f65076..00000000000 --- a/Master/tlpkg/tlgs/Resource/Init/gs_diskf.ps +++ /dev/null @@ -1,223 +0,0 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. -% All Rights Reserved. -% -% This software is provided AS-IS with no warranty, either express or -% implied. -% -% This software is distributed under license and may not be copied, -% modified or distributed except as expressly authorized under the terms -% of the license contained in the file LICENSE in this distribution. -% -% Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. -% - -% Support for converting Type 1 fonts without eexec encryption to -% Type 4 fonts that load individual character outlines on demand. - -% If DISKFONTS is true, we load individual CharStrings as they are needed. -% (This is intended primarily for machines with very small memories.) -% Initially, the character definition is the file position of the definition; -% this gets replaced with the actual CharString. -% Note that if we are loading characters lazily, CharStrings is writable. - -% _Cstring must be long enough to hold the longest CharString for -% a character defined using seac. This is lenIV + 4 * 5 (for the operands -% of sbw, assuming div is not used) + 2 (for sbw) + 3 * 5 (for the operands -% of seac other than the character codes) + 2 * 2 (for the character codes) -% + 2 (for seac), i.e., lenIV + 43. - -/_Cstring 60 string def - -% When we initially load the font, we call -% <index|charname> <length> <readproc> cskip_C -% to skip over each character definition and return the file position instead. -% This substitutes for the procedure -% <index|charname> <length> string currentfile exch read[hex]string pop -% [encrypt] -% What we actually store in the CharString is fileposition * 1000 + length, -% negated if the string is stored in binary form. - -/cskip_C - { exch dup 1000 ge 3 index type /nametype ne or - { % This is a Subrs string, or the string is so long we can't represent - % its length. Load it now. - exch exec - } - { % Record the position and length, and skip the string. - dup currentfile fileposition 1000 mul add - 2 index 3 get /readstring cvx eq { neg } if - 3 1 roll - dup _Cstring length idiv - { currentfile _Cstring 3 index 3 get exec pop pop - } repeat - _Cstring length mod _Cstring exch 0 exch getinterval - currentfile exch 3 -1 roll 3 get exec pop pop - } - ifelse - } bind def - -% Load a CharString from the file. The font is the top entry -% on the dictionary stack. -/load_C % <charname> <fileposandlength> load_C - - { dup abs 1000 idiv FontFile exch setfileposition - CharStrings 3 1 roll - .currentglobal CharStrings .gcheck .setglobal exch - dup 0 lt - { neg 1000 mod string FontFile exch readstring } - { 1000 mod string FontFile exch readhexstring } - ifelse pop - exch .setglobal -% If the CharStrings aren't encrypted on the file, encrypt now. - Private /-| get 0 get - dup type /nametype ne - { dup length 5 sub 5 exch getinterval exec } - { pop } - ifelse dup 4 1 roll put -% If the character is defined with seac, load its components now. - mark exch seac_C - counttomark - { StandardEncoding exch get dup CharStrings exch get - dup type /integertype eq { load_C } { pop pop } ifelse - } repeat - pop % the mark - } bind def - -/seac_C % <charstring> seac_C <achar> <bchar> ..or nothing.. - { dup length _Cstring length le - { 4330 exch _Cstring .type1decrypt exch pop - dup dup length 2 sub 2 getinterval <0c06> eq % seac - { dup length - Private /lenIV known { Private /lenIV get } { 4 } ifelse - exch 1 index sub getinterval -% Parse the string just enough to extract the seac information. -% We assume that the only possible operators are hsbw, sbw, and seac, -% and that there are no 5-byte numbers. - mark 0 3 -1 roll - { exch - { { dup 32 lt - { pop 0 } - { dup 247 lt - { 139 sub 0 } - { dup 251 lt - { 247 sub 256 mul 108 add 1 1 } - { 251 sub -256 mul -108 add -1 1 } - ifelse - } - ifelse - } - ifelse - } % 0 - { mul add 0 } % 1 - } - exch get exec - } - forall pop - counttomark 1 add 2 roll cleartomark % pop all but achar bchar - } - { pop % not seac - } - ifelse - } - { pop % punt - } - ifelse - } bind def - -% Define replacement procedures for loading fonts. -% If DISKFONTS is true and the body of the font is not encrypted with eexec: -% - Prevent the CharStrings from being made read-only. -% - Substitute a different CharString-reading procedure. -% (eexec disables this because the implicit 'systemdict begin' hides -% the redefinitions that make the scheme work.) -% We assume that: -% - The magic procedures (-|, -!, |-, and |) are defined with -% executeonly or readonly; -% - The contents of the reading procedures are as defined in bdftops.ps; -% - The font includes the code -% <font> /CharStrings <CharStrings> readonly put -/.loadfontdict 6 dict def mark - /begin % push this dict after systemdict - { dup begin - //systemdict eq { //.loadfontdict begin } if - } bind - /end % match begin - { currentdict end - //.loadfontdict eq currentdict //systemdict eq and { end } if - } bind - /dict % leave room for FontFile, BuildChar, BuildGlyph - { 3 add dict - } bind - /executeonly % for reading procedures - { readonly - } - /noaccess % for Subrs strings and Private dictionary - { readonly - } - /readonly % for procedures and CharStrings dictionary - { % We want to take the following non-standard actions here: - % - If the operand is the CharStrings dictionary, do nothing; - % - If the operand is a number (a file position replacing the - % actual CharString), do nothing; - % - If the operand is either of the reading procedures (-| or -!), - % substitute a different one. - dup type /dicttype eq % CharStrings or Private - count 2 gt and - { 1 index /CharStrings ne { readonly } if } - { dup type /arraytype eq % procedure or data array - { dup length 5 ge 1 index xcheck and - { dup 0 get /string eq - 1 index 1 get /currentfile eq and - 1 index 2 get /exch eq and - 1 index 3 get dup /readstring eq exch /readhexstring eq or and - 1 index 4 get /pop eq and - { /cskip_C cvx 2 packedarray cvx - } - { readonly - } - ifelse - } - { readonly - } - ifelse - } - { dup type /stringtype eq % must be a Subr string - { readonly } - if - } - ifelse - } - ifelse - } bind - /definefont % to insert BuildChar/Glyph and change FontType - { dup /FontType get 1 eq - { dup /FontType 4 put - dup /BuildChar /build_C load put - dup /BuildGlyph /build_C load put - } - if definefont - } bind -counttomark 2 idiv { .loadfontdict 3 1 roll put } repeat pop -.loadfontdict readonly pop - -% Define the BuildChar and BuildGlyph procedures for modified fonts. -% A single procedure serves for both. -/build_C % <font> <code|name> build_C - - { 1 index begin - dup dup type /integertype eq { Encoding exch get } if - % Stack: font code|name name - dup CharStrings exch .knownget not - { 2 copy eq { exch pop /.notdef exch } if - QUIET not - { (Substituting .notdef for ) print = flush } - { pop } - ifelse - /.notdef CharStrings /.notdef get - } if - % Stack: font code|name name charstring - dup type /integertype eq - { load_C end build_C } - { end .type1execchar } - ifelse - } bind def diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps b/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps index bb47655b2fd..5540715dcff 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Initialization file for %disk device modifications diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps b/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps index 76fbd288b4c..8e7e241d612 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % gs_dpnxt.ps diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps b/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps index 7eb0a14401d..3ebd0a33172 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Initialization file for Display PostScript functions. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps b/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps index a4d6dda2a5c..1182f53e61e 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Initialization file for most of the Display PostScript functions diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps b/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps index cca4ba6fdbd..64faeda37e0 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Initialization file for basic Display PostScript functions diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps b/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps index 5be220c5f2f..d1a668b9d8a 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Postscript interface routines to DSC parser diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps b/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps index 1ed7e1cbb2e..e4037d9b53c 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Allow the interpreter to encapsulate EPS files, to recognize MS-DOS diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps b/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps index c78b1b9fccc..deb6b3e19e1 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Redefine Font and CIDFont categories with FAPI-handeled fonts. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps b/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps index 5775a36a684..0f7c3153a7b 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % A procset for Postscript font emulation diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps b/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps index 1f4c9eda288..38f0f6ca26f 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Font initialization and management code. @@ -47,12 +47,6 @@ end def { /FontDirectory .systemvar } .bind odef -% If DISKFONTS is true, we load individual CharStrings as they are needed. -% (This is intended primarily for machines with very small memories.) -% In this case, we define another dictionary, parallel to FontDirectory, -% that retains an open file for every font loaded. -/FontFileDirectory 10 dict def - % Define a temporary string for local use, since using =string % interferes with some PostScript programs. /.fonttempstring 8192 string def @@ -497,12 +491,6 @@ buildfontdict 3 /.buildfont3 cvx put exec { - - DISKFONTS { - FontFileDirectory 2 index known { - dup /FontFile FontFileDirectory 4 index get .growput - } if - } if systemdict /ProvideUnicode .knownget not { //false } if { /FontEmulationProcs /ProcSet findresource /ProvideUnicodeDecoding get exec @@ -1071,13 +1059,6 @@ $error /SubstituteFont { } put if pop //false exit } if % Stack: fontname fontfilename fontfile - DISKFONTS - { .currentglobal //true .setglobal - 2 index (r) file - FontFileDirectory exch 5 index exch .growput - .setglobal - } - if QUIET not { (Loading ) print 2 index =only ( font from ) print 1 index print (... ) print flush diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps b/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps index e815169c6a0..49ea61062b1 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Implementation of ReusableStreamDecode filter. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps b/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps index 8f42ea69731..4ff59c6ef7d 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % We need LanguageLevel 2 or higher in order to have setuserparams and diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps b/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps index 8014b8fb544..99933c8a1e1 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Define the ISO Latin-1 encoding vector. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_img.ps b/Master/tlpkg/tlgs/Resource/Init/gs_img.ps index e1cd6279323..273c18b10dd 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_img.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_img.ps @@ -1,4 +1,4 @@ -% (C) 2002 Artifex, Inc. All rights reserved. +% Copyright (C) 2002-2018 Artifex, Inc. All rights reserved. % % This software is provided AS-IS with no warranty, either express or % implied. @@ -10,8 +10,8 @@ % For more information about licensing, please refer to % http://www.ghostscript.com/licensing/. For information on % commercial licensing, go to http://www.artifex.com/licensing/ or -% contact Artifex Software, Inc., 101 Lucas Valley Road #110, -% San Rafael, CA 94903, U.S.A., +1(415)492-9861. +% contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861. % image, colorimage, and imagemask implementation diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_init.ps b/Master/tlpkg/tlgs/Resource/Init/gs_init.ps index 0596e5e28c4..6c8da532ca0 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_init.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_init.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Initialization file for the interpreter. @@ -29,7 +29,7 @@ % Interpreter library version number % NOTE: the interpreter code requires that the first non-comment token % in this file be an integer, and that it match the compiled-in version! -922 +923 % Check the interpreter revision. dup revision ne @@ -113,6 +113,7 @@ PDFSTEP { /PDFDEBUG //true def } if currentdict /PDFSTOPONERROR known /PDFSTOPONERROR exch def currentdict /PDFSTOPONWARNING known {/PDFSTOPONWARNING true def /PDFSTOPONERROR true def}{/PDFSTOPONWARNING false def} ifelse currentdict /PDFNOCIDFALLBACK known /PDFNOCIDFALLBACK exch def +/.bind /bind load def /VMDEBUG INITDEBUG {{print mark @@ -133,12 +134,18 @@ currentdict /PDFNOCIDFALLBACK known /PDFNOCIDFALLBACK exch def {{pop }} ifelse - def + .bind def + +%% This was a debugging switch removed in 9.22, no other software +%% should have had any regard for it, and even if testing its value +%% should have checked its existence first. However pstotext, an +%% ancient and no longer maintained piece of softare, did check +%% its value unconditionally. So we retain this key in the dictionary +%% purely for backward compatibility. +/NOBIND false def currentdict /BATCH known /BATCH exch def currentdict /DELAYBIND known /DELAYBIND exch def -currentdict /REALLYDELAYBIND known {/REALLYDELAYBIND true def /DELAYBIND true def}{/REALLYDELAYBIND false def}ifelse -currentdict /DISKFONTS known /DISKFONTS exch def currentdict /DOINTERPOLATE .knownget { { -1 } { 0 } ifelse /InterpolateControl exch def } if currentdict /ESTACKPRINT known /ESTACKPRINT exch def currentdict /FAKEFONTS known /FAKEFONTS exch def @@ -146,7 +153,6 @@ currentdict /FIXEDMEDIA known /FIXEDMEDIA exch def currentdict /FIXEDRESOLUTION known /FIXEDRESOLUTION exch def currentdict /LOCALFONTS known /LOCALFONTS exch def currentdict /JOBSERVER known /JOBSERVER exch def -/.bind /bind load def currentdict /NOCACHE known /NOCACHE exch def currentdict /NOCCFONTS known /NOCCFONTS exch def currentdict /NOCIE known /NOCIE exch def @@ -302,7 +308,16 @@ QUIET not { printgreeting flush } if % If we're delaying binding, remember everything that needs to be bound later. DELAYBIND - { .currentglobal //false .setglobal +{ + SAFER { + (\n *** WARNING - you have selected SAFER, indicating you want Ghostscript\n) print + ( to execute in a safer environment, but at the same time\n) print + ( have selected DELAYBIND. Unless you use this option with\n) print + ( care \(and specifically, remember to call .bindnow\) it is\n) print + ( possible that malicious code may be able to evade the\n) print + ( limited security offered by the SAFER option.\n) print + } if + .currentglobal //false .setglobal systemdict /.delaybind 2000 array .forceput .setglobal userdict /.delaycount 0 put @@ -317,7 +332,7 @@ DELAYBIND } ifelse } .bind def - } if +} if %**************** BACKWARD COMPATIBILITY **************** /hwsizedict mark /HWSize //null .dicttomark readonly def @@ -2154,7 +2169,7 @@ SAFER { .setsafeglobal } if /.type1execchar /.type2execchar /.type42execchar /.setweightvector /.getuseciecolor /processcolors /.includecolorspace /.execn /.instopped /.stop /.stopped /.setcolorrendering /.setdevicecolorrendering /.buildcolorrendering1 /.builddevicecolorrendering1 /.TransformPQR_scale_WB0 /.TransformPQR_scale_WB1 /.TransformPQR_scale_WB2 /.currentoverprintmode /.copydevice2 -/.devicename /.doneshowpage /flushpage /.getbitsrect /.getdevice /.getdefaultdevice /.getdeviceparams /.gethardwareparams +/.devicename /.doneshowpage /.getbitsrect /.getdevice /.getdefaultdevice /.getdeviceparams /.gethardwareparams /makewordimagedevice /.outputpage /.putdeviceparams /.setdevice /.currentshowpagecount /.setpagedevice /.currentpagedevice /.knownundef /.setmaxlength /.rectappend /.initialize_dsc_parser /.parse_dsc_comments /.fillCIDMap /.fillIdentityCIDMap /.buildcmap /.filenamelistseparator /.libfile /.getfilename @@ -2172,6 +2187,15 @@ SAFER { .setsafeglobal } if /.systemvmSFD /.settrapparams /.currentsystemparams /.currentuserparams /.getsystemparam /.getuserparam /.setsystemparams /.setuserparams /.checkpassword /.locale_to_utf8 /.currentglobal /.gcheck /.imagepath +% Used by a free user in the Library of Congress. Apparently this is used to +% draw a partial page, which is then filled in by the results of a barcode +% scanner and SQL database lookup. Its not clear to us exactly why this needs to be +% done as a partial page, but its easiest to restore the operator, and it seems like +% its a reasonably safe operator to restore, for the *very* few devices on which +% it will have any effect. Currently this uses the 'sync_outptu' device method +% to transfer the partial page, in future we may use a spec_op instead. +%/flushpage + % Used by our own test suite files %/.fileposition %image-qa.ps %/.makeoperator /.setCPSImode % gs_cet.ps @@ -2208,7 +2232,7 @@ SAFER { .setsafeglobal } if /.abortpdf14devicefilter /.pdfinkpath /.pdfFormName /.setstrokeconstantalpha /.setfillconstantalpha /.setalphaisshape /.currentalphaisshape /.settextspacing /.currenttextspacing /.settextleading /.currenttextleading /.settextrise /.currenttextrise -/.setwordspacing /.currentwordspacing /.settexthscaling /.currenttexthscaling +/.setwordspacing /.currentwordspacing /.settexthscaling /.currenttexthscaling /.setPDFfontsize /.currentPDFfontsize % Used by our own test suite files %/.pushpdf14devicefilter % transparency-example.ps @@ -2243,6 +2267,7 @@ SAFER { .setsafeglobal } if //systemdict /.forcecopynew .forceundef % remove temptation //systemdict /.forcedef .forceundef % ditto //systemdict /.forceput .forceundef % ditto + //systemdict /.undef .forceundef % ditto //systemdict /.forceundef .forceundef % ditto currentuserparams /IdiomRecognition known { 1 dict dup /IdiomRecognition 4 -1 roll put setuserparams @@ -2366,18 +2391,6 @@ DELAYBIND not { systemdict /.forceundef .undef % ditto } if -DELAYBIND REALLYDELAYBIND not and { -(\n *** WARNING - the DELAYBIND command has been deprecated, and will be\n) print -( removed in the next version. For now you can restore\n) print -( the behaviour by using -dREALLYDEALYBIND but if you\n) print -( require continued use of this command you should contact\n) print -( the Ghostscript developers. Commercial customers of\n) print -( Artifex should email their support contact, free users\n) print -( are encouraged to talk to us on the #ghostscript IRC\n) print -( channel on irc.freenode.net.\n\n) print -/DELAYBIND /undefined signalerror -} if - % Move superexec to internaldict if superexec is defined. systemdict /superexec .knownget { 1183615869 internaldict /superexec 3 -1 roll put @@ -2385,9 +2398,24 @@ systemdict /superexec .knownget { } if %% Can't remove this one until the last minute :-) +DELAYBIND not { systemdict /.undef .undef +} if +WRITESYSTEMDICT { + SAFER { + (\n *** WARNING - you have selected SAFER, indicating you want Ghostscript\n) print + ( to execute in a safer environment, but at the same time\n) print + ( have selected WRITESYSTEMDICT. Unless you use this option with\n) print + ( care and specifically, remember to execute code like:\n) print + ( "systemdict readonly pop"\n) print + ( it is possible that malicious code may be able to evade the\n) print + ( limited security offered by the SAFER option.\n) print + }if +} +{ + systemdict readonly pop +} ifelse -WRITESYSTEMDICT not { systemdict readonly pop } if (END GC) VMDEBUG % The Adobe AGM_Core used by Illustrator 9 has some code that breaks diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps b/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps index c24f3d6bf0f..c448fc42378 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Emulate the Level 2 dictionary-based image operator in Level 1, diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps b/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps index 93037388f8f..72c11edb4a1 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Initialization file for Level 2 functions. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps b/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps index e2bffba377e..5aa56a36833 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Initialization file for PostScript LanguageLevel 3 functions. @@ -35,24 +35,58 @@ languagelevel dup 2 .max .setlanguagelevel % where IdiomRecognition may not be defined. /.bind_ { % <proc> .bind <proc'> //.bind currentuserparams /IdiomRecognition - .knownget not { //false } if { - (*) { - /IdiomSet findresource - //false exch { - % Stack: proc //false dummykey [template substitute] - exch pop dup 1 get exch 0 get - % Stack: proc //false substitute template + .knownget not { //false } if + { + //false + /IdiomSet .findcategory .Instances + { + exch pop % pop the IdiomSet identifying key. Stack /proc /false [-dict- status size] + 0 get % get resource instance, a dictionary. Stack : /proc false -dict- + { + exch pop % pop the instance identifying key + % Stack: proc //false [template substitute] + dup 1 get exch 0 get % Stack: proc //false substitute template 3 index .eqproc { - 2 index gcheck 1 index gcheck not and { - pop - } { - 3 -1 roll pop exch not exit - } ifelse + % Stack: proc //false substitute + 3 -1 roll pop exch not % Stack: substitute true } { - pop + pop % Stack: proc //false } ifelse - } forall { exit } if - } //.bindscratch /IdiomSet resourceforall + } forall + dup {exit} if % Stack proc <bool> + } forall + + not % Not matched in global resources + currentglobal not and % must not match local resources if currentglobal is true + { + //false + .LocalInstances + { + exch pop % pop IdiomSet identifying key. Stack /proc /false [-dict- status size] + 0 get % get resource instance, a dictionary Stack : /proc false -dict- + { + exch pop % pop instance identifier key + % Stack: proc //false [template substitute] + dup 1 get exch 0 get % Stack: proc //false substitute template + 3 index .eqproc { + % Stack: proc //false substitute + 2 index gcheck % Stack: proc //false substitute _global?_ + 1 index gcheck not and % Stack: proc //false substitute _global?_ _global?_ + { % must not match if candidate in global VM and substitute in local + pop % Stack: proc //false + } { + % Stack: proc //false substitute + 3 -1 roll pop exch not % Stack: substitute true + }ifelse + } { + pop % Stack: proc //false + } ifelse + } forall + dup {exit} if + } forall + pop % Stack: proc/substitute + } if + end % .findcategory makes the category dictionary the current dict, so we must pop it from dict stack } if } def /.bind /.bind_ load odef % note that .bind_ will get bound @@ -489,6 +523,13 @@ end currentdict end /Category defineresource pop } forall +(*) { + dup type /nametype eq not { + cvn + } if + /IdiomSet findresource pop +} 256 string /IdiomSet resourceforall + /languagelevel 3 def % When running in LanguageLevel 3 mode, this interpreter is supposed to be % compatible with Adobe version 3010. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps b/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps index 7b080eaa6e9..2812cb8d4ad 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Define the MacExpert encoding vector. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps b/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps index 64cadd18ce8..4086fb04904 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % $Id: gs_mgl_e.ps 8954 2008-08-08 04:22:38Z ray $ diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps b/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps index a90df4e9440..17a194d2e1f 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % $Id: gs_mro_e.ps 8954 2008-08-08 04:22:38Z ray $ diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps b/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps index be596585939..a285e491a50 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Define the PDFDoc encoding vector. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps b/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps index b49eec43f9b..3da5306223e 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % PDF writer additions to systemdict. @@ -101,6 +101,7 @@ languagelevel 2 .setlanguagelevel /TransferFunctionInfo /Preserve /UseFlateCompression //true /UsePrologue //false + /PassThroughJPEGImages //true .dicttomark readonly def /.distillersettings mark @@ -829,6 +830,7 @@ currentdict /.pdf_hook_DSC_Creator undef /MaxSubsetPct { } /SubsetFonts { } /DSCEncodingToUnicode { } + /PassThroughJPEGImages { } /PSDocOptions { } /PSPageOptions { } .dicttomark readonly def diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_res.ps b/Master/tlpkg/tlgs/Resource/Init/gs_res.ps index db2ff269868..d1e10c939d8 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_res.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_res.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Initialization file for Level 2 resource machinery. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps b/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps index 96bc67da16c..7cacaf8a4cd 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % A procset to redefine a resource category with a resource map. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps b/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps index 6c4a221b315..0fc72300f39 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % The current implementation of setpagedevice has the following limitations: diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps b/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps index dbcf05199c9..64c6463d103 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % This file provides statusdict, serverdict, and assorted LaserWriter diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps b/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps index 19200503fda..aef9036eaca 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Define the standard encoding vector. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps b/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps index 5a7c0ccb2f7..4c2eb95db6d 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Define the Symbol encoding vector. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps b/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps index 71aec983f4b..236b85e0083 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % PostScript LanguageLevel 3 in-RIP trapping support. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps b/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps index 8cb5b390c57..05943c5d716 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Support code for direct use of TrueType fonts. @@ -1350,10 +1350,10 @@ mark glyphencoding length 0 eq { /have_post //false def cmapsub 0 4 getinterval <00030001> eq { - PDFDEBUG { (No post but have cmap 3.1, so use ISOLatin1Encoding) = } if + TTFDEBUG { (No post but have cmap 3.1, so use ISOLatin1Encoding) = } if /glyphencoding ISOLatin1Encoding dup length array copy def } { - PDFDEBUG { (No encoding info, use .GS_extended_SymbolEncoding) = } if + TTFDEBUG { (No encoding info, use .GS_extended_SymbolEncoding) = } if /glyphencoding /.GS_extended_SymbolEncoding findencoding dup length array copy def } ifelse } { diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_typ32.ps b/Master/tlpkg/tlgs/Resource/Init/gs_typ32.ps index 1ed1a2c0eeb..747196f48c8 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_typ32.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_typ32.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Initialization file for Type 32 fonts. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps b/Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps index fc4f3fad94a..0374a3c3372 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Type 42 font support code. diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_type1.ps b/Master/tlpkg/tlgs/Resource/Init/gs_type1.ps index dbd9bf38a44..efdae48b284 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_type1.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_type1.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Type 1 font support code. @@ -157,7 +157,7 @@ ifelse /.loadfontfile % <file> .loadfontfile - { mark exch - DISKFONTS { .loadfontdict begin } if + % In order to load fonts reliably, we should push systemdict % here. However, Ed Taft says that Adobe implementations % push userdict and nothing else! @@ -171,9 +171,9 @@ ifelse currentpacking { //false setpacking .loadfont1 //true setpacking } { .loadfont1 } - ifelse end + ifelse + end { stop } if - DISKFONTS { end } if cleartomark } bind def % container for CloseSource flag (default //true to prevent buildup of file handles) diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_wan_e.ps b/Master/tlpkg/tlgs/Resource/Init/gs_wan_e.ps index 96320334e88..226cb47959e 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_wan_e.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_wan_e.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Define the WinAnsi encoding vector. diff --git a/Master/tlpkg/tlgs/Resource/Init/pdf_base.ps b/Master/tlpkg/tlgs/Resource/Init/pdf_base.ps index f2ae2dec3ef..0218bab0a1e 100644 --- a/Master/tlpkg/tlgs/Resource/Init/pdf_base.ps +++ b/Master/tlpkg/tlgs/Resource/Init/pdf_base.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % pdf_base.ps @@ -447,25 +447,50 @@ currentdict /token_nofail_dict .undef { oforce } forall } bind def -/oforce_recursive { % <any> oforce_recursive <any> +%% Safe recursion maintain a dicitonary in which we record all the object numbers +%% of objects which we resolve. Whenever it resolves a new one, it checks all the +%% existing ones to see if its already present, in which case we assume recursion +%% has taken place. Whenever this procedure calls itself it copies the existing +%% dictionary, and throws it away afterwards. This means that we won't falsely +%% detect recursion if two elements at the same level indirect to the same +%% object. +/safe_recursive { % <<recursion dict>> <any> oforce_recursive <recursion dict> <any> dup type dup /arraytype eq exch /packedarraytype eq or { dup rcheck { % protect tint transform functions, etc. + dup length 3 eq { + dup 2 get /resolveR eq { + dup 0 get % <recursion dict> {x y resolveR} x + dup % <recursion dict> {x y resolveR} x x + 3 index exch known { + ( **** Error: detected circular reference in object number ) pdfformaterror pdfstring cvs pdfformaterror + (\n) pdfformaterror + pop //null + } { + dup 3 index % <recursion dict> {x y resolveR} x x <recursion dict> + 3 1 roll put % <recursion dict> {x y resolveR} + } ifelse + } if + } if oforce % but dereference {1 0 R} dup type dup /arraytype eq exch /packedarraytype eq or { - [ exch { oforce_recursive } forall ] + [ exch 2 index <<>> copy exch { safe_recursive exch } forall pop] } { dup type /dicttype eq { - << exch { oforce_recursive exch oforce exch } forall >> + << exch 2 index <<>> copy exch { 3 -1 roll exch safe_recursive 3 -1 roll oforce 3 1 roll exch } forall pop>> } if } ifelse } if } { dup type /dicttype eq { - << exch { oforce_recursive exch oforce exch } forall >> + << exch 2 index <<>> copy exch { 3 -1 roll exch safe_recursive 3 -1 roll oforce 3 1 roll exch } forall pop>> } if } ifelse } bind def +/oforce_recursive { + << >> exch safe_recursive exch pop +} bind def + % A null value in a dictionary is equivalent to an omitted key; % we must check for this specially. /knownoget { % <dict> <key> knownoget <value> true diff --git a/Master/tlpkg/tlgs/Resource/Init/pdf_draw.ps b/Master/tlpkg/tlgs/Resource/Init/pdf_draw.ps index 68a56a3674b..e8ca213bbae 100644 --- a/Master/tlpkg/tlgs/Resource/Init/pdf_draw.ps +++ b/Master/tlpkg/tlgs/Resource/Init/pdf_draw.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % pdf_draw.ps @@ -279,9 +279,30 @@ pdfdict begin mark exch { oforce 1 index /SpotFunction eq { - dup type /nametype eq - { //spotfunctions exch get } { resolvefnproc } - ifelse + dup type /arraytype eq { + %% check all the names in the array in turn, stop when we find + %% the first one we recognise. + { + //spotfunctions exch .knownget { + exit + } if + } forall + dup type /nametype eq { + %% If we didn't find any that we recognise, then use + %% the default halftone's spot function + .setdefaulthalftone currenthalftone dup /SpotFunction .knownget { + exch pop + }{ + /GraySpotFunction .knownget not { + //spotfunctions /Round get + } if + }ifelse + } if + }{ + dup type /nametype eq + { //spotfunctions exch get } { resolvefnproc } + ifelse + } ifelse } { 1 index /TransferFunction eq { resolveidfnproc @@ -2936,6 +2957,35 @@ end { 0 setgray true} ifelse } bdef +% Set an annotation color. +% If the /C array is empty we don't want to draw the annotation +% +/annotsetinteriorcolor { % <annot> annotsetcolor bool + /IC knownoget { + dup length 4 eq { + aload pop setcmykcolor true + }{ + dup length 3 eq { + aload pop setrgbcolor true + }{ + dup length 1 eq { + aload pop setgray true + } { + dup length 0 eq { + pop + false + }{ + ( **** Error: invalid color specified for annotation /C entry) + pdfformaterror false + ( Output may be incorrect.\n) pdfformaterror + } ifelse + } ifelse + } ifelse + } ifelse + } + { 0 setgray true} ifelse +} bdef + % Draw the border. Currently, we ignore requests for beveling, and we % don't round the corners of rectangles. /strokeborder { % <annot> <width> <dash> strokeborder - @@ -2971,7 +3021,7 @@ end //true } ifelse % <annot> [border] <bad?> } ifelse { - ( **** Error: Invalids annotation border object, border has not been drawn.\n) + ( **** Error: Invalid annotation border object, border has not been drawn.\n) pdfformaterror ( Output may be incorrect.\n) pdfformaterror pop { 0 0 0 } @@ -3001,6 +3051,63 @@ end grestore } bdef +% stroke the path of an annotation border. +/strokeborderpath { % <annot> strokeborderpath - + gsave + dup /BS known 1 index /Border known or { + dup /BS knownoget { + dup type /dicttype ne % <annot> <border> <bad?> + } { + dup /Border oget + dup type /arraytype eq { + dup length 3 lt + } { + //true + } ifelse % <annot> [border] <bad?> + } ifelse { + ( **** Error: Invalid annotation border object, border has not been drawn.\n) + pdfformaterror + ( Output may be incorrect.\n) pdfformaterror + pop { 0 0 0 } + } if + dup type /dicttype eq { + dup /W knownoget not { 1 } if + % Per PDF1.6 Reference table 8.13, /W in the border style dictionary is + % expressed in points (an absolute unit), so compensate here for any + % scaling of the PostScript user space done due to /UserUnit. + % Scaling due to -dPDFFitPage is not undone, to keep the correct border width + % compared to the size of the surrounding marks. + //systemdict /NoUserUnit .knownget not { //false } if not + //systemdict /PDFFitPage known not and { % UserUnit is ignored if -dPDFFitPage + Page /UserUnit knownoget { div } if + } if + {} 2 index /S knownoget { + /D eq { 2 index /D knownoget not { {3} } if exch pop } if + } if + 3 index /CA knownoget {.setopacityalpha} if + 3 -1 roll pop 2 index annotsetcolor {0 setdash setlinewidth stroke} if + } { + dup 2 get + exch dup length 3 gt { 3 get } { pop {} } ifelse + 3 index /CA knownoget {.setopacityalpha} if + 2 index annotsetcolor {0 setdash setlinewidth stroke} if + } ifelse + } { + 3 index /CA knownoget {.setopacityalpha} if + 1 {} 2 index annotsetcolor {0 setdash setlinewidth stroke} if + } ifelse + pop + grestore +} bdef + +/fillborderpath { % <annot> fillborderpath - + gsave + dup /ca knownoget {.setopacityalpha} if + annotsetinteriorcolor + {fill} if + grestore +}bdef + % % The PDF annotation F (flags) integer is bit encoded. % Bit 1 (LSB) Invisible: 1 --> Do not display if no handler. @@ -3307,6 +3414,33 @@ currentdict /set_bc_color undef % Draw an annotation. /drawannottypes 20 dict begin + /startannottransparency { + PDFusingtransparency { + dup /BM known { + dup /BM get + << exch /BM exch >> + } { + << >> + }ifelse + %% We should be able to use the Rect to create the group, but it seems + %% Acrobat ignores this, or at least doesn't clip the annotation to it :-( +% 1 index /Rect known { +% 1 index annotrect exch % llx lly h w +% 3 index add exch % x y urx h +% 2 index add +% }{ + clippath pathbbox newpath +% } ifelse + .begintransparencygroup + } if + }bdef + + /endannottransparency { + PDFusingtransparency { + .endtransparencygroup + } if + }bdef + % x0 y0 x1 y1 x2 y2 x3 y3 -> x0 y0 x1-x0 y1-y0 x2-x0 y2-y0 /quadpoints2basis { 8 { oforce 8 1 roll } repeat @@ -3350,7 +3484,421 @@ currentdict /set_bc_color undef 4 2 roll % x0 y0 x1-x0 y1-y0 x2-x0 y2-y0 } bdef + /Square { + dup /AP oknown { + //true + }{ + gsave + //startannottransparency exec + dup + annotsetinteriorcolor + { + gsave + dup /ca knownoget {.setopacityalpha} if + dup annotrect rectfill + grestore + dup /CA knownoget {.setopacityalpha} if + drawborder + //false + }{ + pop + } ifelse + //endannottransparency exec + grestore + }ifelse + } bdef + +%% Width Height drawellipse - +/drawellipse { + %% Don Lancaster's code for drawing an ellipse + 0.55228475 0.00045 sub % improved magic value + 3 1 roll % magic width height + 2 div exch 2 div % magic y-radius x-radius + dup 3 index mul % magic y-radius x-radius x-magic + 2 index % magic y-radius x-radius x-magic y-radius + 5 -1 roll mul % magic y-radius x-radius x-magic y-magic + + 2 index neg 0 moveto % xrad neg 0 moveto + 2 index neg 1 index 3 index neg 6 index 0 8 index curveto % xrad neg ymag xmag neg yrad 0 yrad curveto + 1 index 4 index 4 index 3 index 1 index 0 curveto % xmag yrad xrad ymag xrad 0 curveto + 2 index 1 index neg 3 index 6 index neg 0 1 index curveto % xrad ymag neg xmag yrad neg 0 yrad neg curveto + % Stack: yrad xrad xmag ymag + exch neg 4 1 roll 3 -1 roll neg 3 1 roll exch neg exch + neg 1 index 0 curveto % xmag neg yrad neg xrad neg ymag neg 0 curveto +}bdef + + /Circle { + dup /AP oknown { + //true + }{ + gsave + //startannottransparency exec + dup annotrect 4 2 roll exch 3 index 2 div add exch 2 index 2 div add + translate //drawellipse exec + dup + fillborderpath + strokeborderpath + //endannottransparency exec + grestore + //false + } ifelse + } bdef + + /Polygon { + dup /AP oknown { + //true + }{ + gsave + //startannottransparency exec + dup /Vertices knownoget { + dup length 2 div 1 sub cvi 0 1 3 -1 roll + { + 2 mul dup + 2 index exch 2 getinterval aload pop + 3 -1 roll 0 eq { + moveto + }{ + lineto + } ifelse + } + for + pop + closepath + //true + } { + ( **** Error: Invalid Vertices for Polygon, annotation has not been drawn.\n) + pdfformaterror + ( Output may be incorrect.\n) pdfformaterror + //false + } ifelse + + 1 index annotsetinteriorcolor { + //true + }{ + //false + }ifelse + and + + { + gsave + dup /ca knownoget {.setopacityalpha} if + fill + grestore + dup /CA knownoget {.setopacityalpha} if + strokeborderpath + } if + //endannottransparency exec + //false + grestore + } ifelse + } bdef + + /LineEnd_dict 10 dict begin + %% Stack contains <annot> + %% CTM rotated so line segment is vertical, translated so line endpoint at 0,0 + + /Square { + dup + /BS knownoget { + /W knownoget { + }{ + 1 + }ifelse + }{ + 1 + }ifelse + dup 2.5 mul + gsave + dup neg 1 index neg exch moveto + dup neg 1 index lineto + dup 1 index exch lineto + dup neg lineto + closepath + 1 index /CA knownoget {.setopacityalpha} if + 1 index fillborderpath + grestore + 3 mul + dup neg 1 index neg exch moveto + dup neg 1 index lineto + dup 1 index exch lineto + dup neg lineto + closepath + strokeborderpath + } bdef + /Circle { + dup + /BS knownoget { + /W knownoget { + }{ + 1 + }ifelse + }{ + 1 + }ifelse + dup + gsave + 2.5 mul dup + 0 moveto + 0 0 3 -1 roll 0 360 arc + 1 index /CA knownoget {.setopacityalpha} if + 1 index fillborderpath + grestore + 3 mul dup + 0 moveto + 0 0 3 -1 roll 0 360 arc + strokeborderpath + } bdef + /Diamond { + dup + /BS knownoget { + /W knownoget { + }{ + 1 + }ifelse + }{ + 1 + }ifelse + dup 2.5 mul + gsave + dup neg 0 exch moveto + dup neg 0 lineto + dup 0 exch lineto + 0 lineto + closepath + 1 index /CA knownoget {.setopacityalpha} if + 1 index fillborderpath + grestore + 3 mul + dup neg 0 exch moveto + dup neg 0 lineto + dup 0 exch lineto + 0 lineto + closepath + strokeborderpath + } bdef + /OpenArrow { + dup + gsave + /BS knownoget { + /W knownoget { + }{ + 1 + }ifelse + }{ + 1 + }ifelse + 0 setlinejoin + dup 6 mul neg 1 index 4 mul neg moveto dup 1.2 div neg 0 lineto + dup 6 mul neg exch 4 mul lineto + strokeborderpath + grestore + } bdef + /ClosedArrow { + dup + gsave + /BS knownoget { + /W knownoget { + }{ + 1 + }ifelse + }{ + 1 + }ifelse + dup + gsave + 0 setlinejoin + dup 6 mul neg 1 index 4 mul neg moveto dup 1.2 div neg 0 lineto + dup 6 mul neg exch 4 mul lineto closepath + 1 index strokeborderpath + grestore + dup 1.3 mul neg 0 translate + dup 2 div sub + dup 8.4 mul neg 1 index 5.9 mul neg moveto dup 1.2 div neg 0 lineto + dup 8.4 mul neg exch 5.9 mul lineto closepath + dup /CA knownoget {.setopacityalpha} if + fillborderpath + grestore + } bdef + /None {} bdef + /Butt { + dup + /BS knownoget { + /W knownoget { + }{ + 1 + }ifelse + }{ + 1 + }ifelse + 3 mul dup neg 0 exch moveto 0 exch lineto + strokeborderpath + } bdef + /ROpenArrow { + gsave + dup + /BS knownoget { + /W knownoget { + }{ + 1 + }ifelse + }{ + 1 + }ifelse + 180 rotate + 0 setlinejoin + dup 6 mul neg 1 index 4 mul neg moveto dup 1.2 div neg 0 lineto + dup 6 mul neg exch 4 mul lineto + strokeborderpath + grestore + } bdef + /RClosedArrow { + gsave + dup + /BS knownoget { + /W knownoget { + }{ + 1 + }ifelse + }{ + 1 + }ifelse + 180 rotate + dup + gsave + 0 setlinejoin + dup 6 mul neg 1 index 4 mul neg moveto dup 1.2 div neg 0 lineto + dup 6 mul neg exch 4 mul lineto closepath + 1 index strokeborderpath + grestore + dup 1.3 mul neg 0 translate + dup 2 div sub + dup 8.4 mul neg 1 index 5.9 mul neg moveto dup 1.2 div neg 0 lineto + dup 8.4 mul neg exch 5.9 mul lineto closepath + dup /CA knownoget {.setopacityalpha} if + fillborderpath + grestore + } bdef + /Slash { + gsave + dup + /BS knownoget { + /W knownoget { + }{ + 1 + }ifelse + }{ + 1 + }ifelse + 330 rotate + 3 mul dup neg 0 exch moveto 0 exch lineto + strokeborderpath + grestore + } bdef + + currentdict end readonly def + + /Line { + dup /AP oknown { + //true + } { + gsave + //startannottransparency exec + dup /L knownoget { + 1 index /LE knownoget { + gsave + 1 index aload pop % x1 y1 x2 y2 + 3 -1 roll sub % x1 x2 dy + 3 1 roll exch sub % dy dx + 2 copy translate + atan + rotate + dup 0 get dup //LineEnd_dict exch known not {pop /None} if //LineEnd_dict exch get 3 index exch exec + grestore + gsave + 1 index aload pop % x1 y1 x2 y2 + 3 -1 roll sub % x1 x2 dy + 3 1 roll exch sub % dy dx + 2 copy translate + atan 180 add + rotate + 1 get dup //LineEnd_dict exch known not {pop /None} if //LineEnd_dict exch get 3 index exch exec + grestore + }if + aload pop 4 2 roll + moveto lineto + strokeborderpath + }{ + ( **** Error: Invalid L array for Line, annotation has not been drawn.\n) + pdfformaterror + ( Output may be incorrect.\n) pdfformaterror + pop + } ifelse + //endannottransparency exec + //false + grestore + } ifelse + } bdef + + /PolyLine { + dup /AP oknown { + //true + }{ + gsave + //startannottransparency exec + dup /Vertices knownoget { + 1 index /LE knownoget { + gsave + 1 index 0 4 getinterval aload pop + 4 2 roll + 2 copy translate 4 2 roll + 3 -1 roll sub % x1 x2 dy + 3 1 roll exch sub % dy dx + atan + rotate + dup 0 get dup //LineEnd_dict exch known not {pop /None} if //LineEnd_dict exch get 3 index exch exec + grestore + + gsave + 1 index dup length 4 sub 4 getinterval aload pop + 2 copy translate + 3 -1 roll sub % x1 x2 dy + 3 1 roll exch sub % dy dx + atan + rotate + 1 get dup //LineEnd_dict exch known not {pop /None} if //LineEnd_dict exch get 3 index exch exec + grestore + } if + dup length 2 div 1 sub cvi 0 1 3 -1 roll + { + 2 mul dup + 2 index exch 2 getinterval aload pop + 3 -1 roll 0 eq { + moveto + }{ + lineto + } ifelse + } + for + pop + //true + } { + ( **** Error: Invalid Vertices for Polygon, annotation has not been drawn.\n) + pdfformaterror + ( Output may be incorrect.\n) pdfformaterror + //false + } ifelse + + { + strokeborderpath + } if + //endannottransparency exec + //false + grestore + } ifelse + } bdef + /Link { % <annot> -> <false> + //startannottransparency exec dup drawborder dup calc_annot_scale 2 copy mul 0 ne {3 -1 roll drawwidget //false} @@ -3359,6 +3907,7 @@ currentdict /set_bc_color undef ( **** Error: ignoring annotation with scale factor of 0\n) pdfformaterror ( Output may be incorrect.\n) pdfformaterror }ifelse + //endannottransparency exec } bdef /Ink { % <annot> -> <annot> <true> @@ -3366,6 +3915,7 @@ currentdict /set_bc_color undef dup /AP oknown { //true } { + //startannottransparency exec 1 setlinewidth 1 setlinecap 1 setlinejoin @@ -3373,15 +3923,32 @@ currentdict /set_bc_color undef dup calc_annot_scale 2 copy mul 0 ne { - 3 index annotrect pop pop translate scale - /InkList knownoget { + dup /InkList knownoget { { oforce mark exch { oforce } forall .pdfinkpath stroke } forall - } if + pop + } { + /Path knownoget { + oforce + dup length 1 sub 0 1 3 -1 roll { + dup 0 eq { + 1 index exch get aload pop moveto + } { + 1 index exch get dup length 2 eq { + aload pop lineto + }{ + aload pop curveto + } ifelse + }ifelse + } for + pop dup + strokeborderpath + } if + }ifelse } { pop pop @@ -3390,6 +3957,7 @@ currentdict /set_bc_color undef } ifelse } if + //endannottransparency exec //false } ifelse } bdef @@ -3533,6 +4101,7 @@ currentdict /set_bc_color undef dup /AP oknown { //true } { + //startannottransparency exec dup annotsetcolor { dup calc_annot_scale 2 copy mul 0 ne @@ -3581,6 +4150,7 @@ currentdict /set_bc_color undef } ifelse } if + //endannottransparency exec //false } ifelse } bdef @@ -3589,6 +4159,7 @@ currentdict /set_bc_color undef dup /AP oknown { //true } { + //startannottransparency exec dup calc_annot_scale 2 copy mul 0 ne { @@ -3621,6 +4192,7 @@ currentdict /set_bc_color undef ( Output may be incorrect.\n) pdfformaterror } ifelse + //endannottransparency exec //false } ifelse } bdef @@ -3640,6 +4212,7 @@ currentdict /set_bc_color undef { gsave + //startannottransparency exec dup annotrect rectclip dup /CA knownoget { @@ -3748,6 +4321,9 @@ currentdict /set_bc_color undef %% Get the Contents string, if we don't have one, we're done %% 2 index /Contents knownoget { + PDFusingtransparency { + .begintransparencytextgroup + } if %% Check for UTF16-BE, we probably don't work properly with this yet. %% dup 0 get 254 eq 1 index 1 get 255 eq and @@ -3794,8 +4370,12 @@ currentdict /set_bc_color undef } for pop }ifelse + PDFusingtransparency { + .endtransparencytextgroup + } if } if pop pop + //endannottransparency exec //false grestore } @@ -3830,6 +4410,9 @@ currentdict /set_bc_color undef % (text) y h -> - /text { + PDFusingtransparency { + .begintransparencytextgroup + } if /Times-Bold findfont exch scalefont setfont % (text) y gsave 0 0 moveto @@ -3839,6 +4422,9 @@ currentdict /set_bc_color undef 95 add exch moveto gsave 1 -1 rmoveto 0.75 setgray dup show grestore show + PDFusingtransparency { + .endtransparencytextgroup + } if } bdef /red <ef4023> readonly def @@ -3912,6 +4498,7 @@ currentdict /set_bc_color undef dup /AP oknown { //true } { + //startannottransparency exec dup calc_annot_scale 2 copy mul 0 ne { @@ -3934,6 +4521,7 @@ currentdict /set_bc_color undef ( Output may be incorrect.\n) pdfformaterror } ifelse + //endannottransparency exec //false } ifelse } bdef @@ -3945,6 +4533,7 @@ currentdict /set_bc_color undef //true }{ gsave + //startannottransparency exec newpath 0.05 setlinewidth dup /Parent .knownget { @@ -3981,10 +4570,16 @@ currentdict /set_bc_color undef dup /Contents .knownget { gsave + PDFusingtransparency { + .begintransparencytextgroup + } if 0 setgray /Helvetica findfont 9 scalefont setfont 2 index aload pop 3 1 roll pop pop 30 sub exch 5 add exch moveto show + PDFusingtransparency { + .endtransparencytextgroup + } if grestore } if exch @@ -3994,15 +4589,22 @@ currentdict /set_bc_color undef exch /T .knownget { gsave + PDFusingtransparency { + .begintransparencytextgroup + } if 0 setgray /Helvetica findfont 9 scalefont setfont dup stringwidth pop 2 index aload pop pop exch pop exch sub exch sub 2 div 2 index aload pop 3 1 roll pop pop 11 sub 3 1 roll add exch moveto show + PDFusingtransparency { + .endtransparencytextgroup + } if grestore } if grestore + //endannottransparency exec //false } ifelse } { @@ -4013,7 +4615,22 @@ currentdict /set_bc_color undef }ifelse } bdef + /Redact { + %% Redact annotations are part of a process, a Redact annotation is only present + %% until the content is removed, before that the content should be present and + %% I beleive we should print it. So take no action for Redact annotations if they + %% have no appearance. + dup /AP oknown { + //true + } { + //false + } ifelse + } bdef + +currentdict /startannottransparency undef +currentdict /endannottransparency undef currentdict /quadpoints2basis undef +currentdict /drawellipse undef currentdict end readonly def /.PDFDrawAnnotType? diff --git a/Master/tlpkg/tlgs/Resource/Init/pdf_font.ps b/Master/tlpkg/tlgs/Resource/Init/pdf_font.ps index 02a3b0f6602..a9511570ec2 100644 --- a/Master/tlpkg/tlgs/Resource/Init/pdf_font.ps +++ b/Master/tlpkg/tlgs/Resource/Init/pdf_font.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % PDF font operations. @@ -524,13 +524,11 @@ currentdict end readonly def 0 4 index 2 mul 3 index length 1 sub { % e [] i offset key_size value_size (keys) (values) j 2 index 1 index 6 index getinterval string2number % e [] i offset key_size value_size (keys) (values) j keyL - 6 index add CMAPDEBUG { ( keyL=) print dup =string cvs print } if 3 index 2 index 7 index add 7 index getinterval string2number % e [] i offset key_size value_size (keys) (values) j keyL keyH - 7 index add CMAPDEBUG { ( keyH=) print dup = } if diff --git a/Master/tlpkg/tlgs/Resource/Init/pdf_main.ps b/Master/tlpkg/tlgs/Resource/Init/pdf_main.ps index a16f5806734..1e3fae2e589 100644 --- a/Master/tlpkg/tlgs/Resource/Init/pdf_main.ps +++ b/Master/tlpkg/tlgs/Resource/Init/pdf_main.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % pdf_main.ps @@ -649,7 +649,6 @@ pdfdict begin PDFfile fileposition /dictlevelcount 0 def /TrailerSizeError false def - /ICCProfileNError false def /TrailerSize 0 def { @@ -1008,14 +1007,47 @@ currentdict /xref-char-dict undef /Outlines knownoget { /NO_PDFMARK_OUTLINES where {pop NO_PDFMARK_OUTLINES not}{true}ifelse { - /First knownoget { + dup /First known { + 100 dict exch %% dictionary for detecting circular references + /First get dup type /packedarraytype eq { %% << >> {} or << >> + dup 0 get dup %% << >> {} object_num object_num + 3 index 3 1 roll %% << >> {} << >> object_num object_num + put + oforce + } if + dup type /dicttype eq { - { dup writeoutline /Next knownoget not { exit } if - dup type /dicttype eq not {exit} if + { + dup + /Next known { + dup /Next get %% << >> <</Next...>> {} or << >> + dup type /packedarraytype eq { + dup 0 get %% << >> <</Next....>> {} object_num + dup 4 index exch known { + (\n **** ERROR: Circular reference detected in Outlines,\n) pdfformaterror + ( terminating Outline processing.\n) pdfformaterror + ( Output may be incorrect.\n) pdfformaterror + %% << >> <</Next....>> {} object_num + pop pop dup /Next undef %% << >> <<.....>> + writeoutline exit + } if + %% << >> <</Next....>> {} object_num + dup 3 index 3 1 roll put %% << >> <</Next....>> {} + oforce + } if + exch writeoutline %% << >> </Next object> + dup type /dicttype eq not + {pop exit} if + } { + writeoutline exit + }ifelse } loop + pop } - {pop} ifelse - }if + {pop pop} ifelse + }{ + pop + }ifelse } { pop }ifelse @@ -1275,6 +1307,7 @@ currentdict /xref-char-dict undef /RepairedAnError //false def /StreamRunAborted //false def /NeedAppearances //false def + /ICCProfileNError false def currentglobal //true .setglobal globaldict begin /UndefProcList 0 dict def end .setglobal @@ -2661,7 +2694,7 @@ currentdict /PDF2PS_matrix_key undef /showpagecontents { % <pagedict> showpagecontents - dup % Save the pagedict for the Annotations count 1 sub /pdfemptycount exch store - gsave % preserve gstate for Annotations later + /pdfemptycount where pop /annot_gstate gstate currentgstate put % preserve gstate for Annots later /Contents knownoget not { 0 array } if dup type /arraytype ne { 1 array astore } if { oforce dup type /dicttype eq { @@ -2681,7 +2714,7 @@ currentdict /PDF2PS_matrix_key undef } { pop } ifelse - grestore + annot_gstate setgstate % restore the gstate for Annots % Draw the annotations //systemdict /ShowAnnots .knownget not { //true } if { /Annots knownoget { @@ -2881,6 +2914,9 @@ currentdict /PDF2PS_matrix_key undef 4 dict exch resourceusestransparency { pop pop //true exit } if } if } if % If AP dict known + dup /BM knownoget { + //true exit + } if dup /CA knownoget { 1 le { pop pop //true exit diff --git a/Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps b/Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps index fabef68a90a..589d0d5d927 100644 --- a/Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps +++ b/Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Definitions for most of the PDF operators. @@ -291,8 +291,75 @@ currentdict /gput_always_allow .undef /RG {/DeviceRGB .setstrokecolorspace .setstrokecolor} bdef /k {/DeviceCMYK .setfillcolorspace .setfillcolor} bdef /K {/DeviceCMYK .setstrokecolorspace .setstrokecolor} bdef -/cs {dup dup type /nametype ne { 0 get } if //CSdict exch get exec exch .setfillcolorspace exec .setfillcolor} bdef -/CS {dup dup type /nametype ne { 0 get } if //CSdict exch get exec exch .setstrokecolorspace exec .setstrokecolor} bdef +/cs {dup dup type /nametype ne { 0 get } if + dup /ICCBased eq { + 1 index 1 get /OrigN .knownget not {1 index 1 get /N get} if mark + 4 2 roll + //CSdict exch get exec exch .setfillcolorspace exec {.setfillcolor} stopped + { + (error) == flush + cleartomark + [//null /DeviceGray //null /DeviceRGB /DeviceCMYK] exch + {get} stopped + { + ( **** Error: Unable to set an ICCBased colour space, and cannot set an alternate from the number of components.\n) print + /setcolorspace cvx /undefined signalerror + } + { + dup //null eq { + ( **** Error: Unable to set an ICCBased colour space, and cannot set an alternate from the number of components.\n) print + /setcolorspace cvx /undefined signalerror + }{ + ICCProfileNError flush not { + ( **** Warning : Error setting an ICCBased colour space, using /N to set an alternate device space.\n) print + ( Output may be incorrect.\n) print + } if + setcolorspace + /ICCProfileNError where {/ICCProfileNError true put} if + } ifelse + }ifelse + }{ + cleartomark pop + } + ifelse + } { + //CSdict exch get exec exch .setfillcolorspace exec .setfillcolor + } ifelse +} bdef +/CS {dup dup type /nametype ne { 0 get } if + dup /ICCBased eq { + 1 index 1 get /OrigN .knownget not {1 index 1 get /N get} if mark + 4 2 roll + //CSdict exch get exec exch .setstrokecolorspace exec {.setstrokecolor} stopped + { + cleartomark + [//null /DeviceGray //null /DeviceRGB /DeviceCMYK] exch + {get} stopped + { + ( **** Error: Unable to set an ICCBased colour space, and cannot set an alternate from the number of components.\n) print + /setcolorspace cvx /undefined signalerror + } + { + dup //null eq { + ( **** Error: Unable to set an ICCBased colour space, and cannot set an alternate from the number of components.\n) print + /setcolorspace cvx /undefined signalerror + }{ + ICCProfileNError flush not { + ( **** Warning : Error setting an ICCBased colour space, using /N to set an alternate device space.\n) print + ( Output may be incorrect.\n) print + } if + setcolorspace + /ICCProfileNError where {/ICCProfileNError true put} if + } ifelse + }ifelse + }{ + cleartomark pop + } + ifelse + } { + //CSdict exch get exec exch .setstrokecolorspace exec .setstrokecolor + } ifelse +} bdef /sc {.setfillcolor} bdef /SC {.setstrokecolor} bdef /sc* {.setfillcolor} bdef @@ -409,19 +476,15 @@ currentdict /gput_always_allow .undef % Establish a given color (and color space) as current. /.settransparencyparams { % <alpha> <smask> .settransparencyparams - PDFusingtransparency { - /.begintransparencygroup where { - pop .currentalphaisshape - { - 1 .setopacityalpha exch .setshapealpha 1 - } { - 1 .setshapealpha exch .setopacityalpha 0 - } ifelse - % Set the soft mask by rendering the XObject. Doing this every time - % is obviously very inefficient; we'll improve it later. - .settransparencymask + .currentalphaisshape + { + 1 .setopacityalpha exch .setshapealpha 1 } { - pop pop + 1 .setshapealpha exch .setopacityalpha 0 } ifelse + % Set the soft mask by rendering the XObject. Doing this every time + % is obviously very inefficient; we'll improve it later. + .settransparencymask } { pop pop } ifelse @@ -1153,10 +1216,8 @@ end readonly def } bdef /Tf { % <font> <scale> Tf - + dup .setPDFfontsize dup 0 eq { - (\n **** Error: Invalid 0.0 font scale given for Tf\n) - pdfformaterror - ( Output may be incorrect.\n) pdfformaterror pop 0.00000001 % handle invalid scale by using a really small value } if 1 index type /dicttype ne { @@ -1721,8 +1782,10 @@ end readonly def % NB: We don't need clippath when filling or stroking /tf { + .currentPDFfontsize 0 eq not { //true /TextFillStateNeeded gput settextfillstate //true TextTransSetup currentpoint fill TextTransTeardown moveto + } if } bdef /tn { currentpoint newpath moveto } bdef % Obsolete, never used. % For stroking characters, temporarily restore the graphics CTM so that @@ -1735,9 +1798,11 @@ end readonly def settextfillstate //true TextTransSetup currentpoint fill TextTransTeardown moveto } { - setstrokestate //true TextTransSetup - currentpoint //Tmatrix currentmatrix TextSaveMatrix setmatrix .swapcolors stroke TextTransTeardown .swapcolors - setmatrix moveto + .currentPDFfontsize 0 eq not { + setstrokestate //true TextTransSetup + currentpoint //Tmatrix currentmatrix TextSaveMatrix setmatrix .swapcolors stroke TextTransTeardown .swapcolors + setmatrix moveto + } if } ifelse //true /TextFillStateNeeded gput } bdef diff --git a/Master/tlpkg/tlgs/Resource/Init/pdf_rbld.ps b/Master/tlpkg/tlgs/Resource/Init/pdf_rbld.ps index 673a8db8ad2..d5e2b11b51c 100644 --- a/Master/tlpkg/tlgs/Resource/Init/pdf_rbld.ps +++ b/Master/tlpkg/tlgs/Resource/Init/pdf_rbld.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % pdf_rbld.ps - Rebuilding of broken PDF files (xref errors) diff --git a/Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps b/Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps index 3889ae70292..fe21c8f2b54 100644 --- a/Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps +++ b/Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2012 Artifex Software, Inc. +% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -9,8 +9,8 @@ % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact -% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, -% CA 94903, U.S.A., +1(415)492-9861, for further information. +% Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, +% CA 94945, U.S.A., +1(415)492-9861, for further information. % % Copyright (C) 1996-1998 Geoffrey Keating. % Copyright (C) 2001-2008 Artifex Software, Inc. |