/usr/share/ghostscript/9.22/Resource/Init/gs_dps1.ps is in libgs9-common 9.22~dfsg+1-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | % 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.
%
% Initialization file for most of the Display PostScript functions
% that are also included in Level 2.
level2dict begin
% ------ Virtual memory ------ %
/currentshared /.currentglobal load def
/scheck /.gcheck load def
%****** FOLLOWING IS WRONG ******
/shareddict currentdict /globaldict .knownget not { 20 dict } if def
% Global and LocalFontDirectory must remain in systemdict
% even if we temporarily exit Level 2 mode.
end % level2dict
systemdict begin
/SharedFontDirectory .FontDirectory .gcheck
{ .currentglobal //false .setglobal
/LocalFontDirectory .FontDirectory dup maxlength dict copy
.forcedef % LocalFontDirectory is local, systemdict is global
.setglobal .FontDirectory
}
{ /LocalFontDirectory .FontDirectory
.forcedef % LocalFontDirectory is local, systemdict is global
50 dict
}
ifelse def
end % systemdict
level2dict begin
% setshared must rebind FontDirectory to the appropriate one of
% Local or SharedFontDirectory.
/.setglobal % <bool> .setglobal -
{ dup .setglobal
//systemdict /FontDirectory .currentglobal
{ //SharedFontDirectory }
{ /LocalFontDirectory .systemvar } % can't embed ref to local VM
ifelse .forceput pop % LocalFontDirectory is local, systemdict is global
} .bind odef
% Don't just copy (load) the definition of .setglobal:
% it gets redefined for LL3.
/setshared { /.setglobal .systemvar exec } odef
.currentglobal setshared
% See below for changes in save and restore.
% ------ Fonts ------ %
/selectfont % <fontname> <size> selectfont -
{
{ 1 .argindex findfont
1 index dup type /arraytype eq { makefont } { scalefont } ifelse
setfont pop pop
} stopped { /selectfont .systemvar $error /errorname get signalerror } if
} odef
% undefinefont has to take local/global VM into account.
/undefinefont % <fontname> undefinefont -
{ .FontDirectory 1 .argindex .forceundef % FontDirectory is readonly
.currentglobal
{ % Current mode is global; delete from local directory too.
//systemdict /LocalFontDirectory .knownget
{ 1 index .forceundef } % LocalFontDirectory is readonly
if
}
{ % Current mode is local; if there was a shadowed global
% definition, copy it into the local directory.
//systemdict /SharedFontDirectory .knownget
{ 1 index .knownget
{ .FontDirectory 2 index 3 -1 roll { put } systemdict /superexec known {//superexec}{1183615869 internaldict /superexec get exec} ifelse } % readonly
if
}
if
}
ifelse pop
} odef
% If we load a font into global VM within an inner save, the restore
% will delete it from FontDirectory but not from SharedFontDirectory.
% We have to handle this by making restore copy missing entries from
% SharedFontDirectory to FontDirectory. Since this could slow down restore
% considerably, we define a new operator .forcecopynew for this purpose.
% Furthermore, if FAKEFONTS is in effect, we want global real fonts to
% override fake local ones. We handle this by brute force.
/restore % <save> restore -
{ dup //restore
/LocalFontDirectory .systemvar
FAKEFONTS
{ mark
% We want to delete a fake font from the local directory
% iff the global directory now has no definition for it,
% or a non-fake definition.
1 index dup
{ % Stack: lfd mark lfd key ... lfd key value
length 1 gt
{ % This is a real local definition; don't do anything.
pop
}
{ % This is a fake local definition, check for global.
//SharedFontDirectory 1 index .knownget
{ % A global definition exists, check for fake.
length 1 eq { pop } { 1 index } ifelse
}
{ % No global definition, delete the local one.
1 index
}
ifelse
}
ifelse
} forall
pop counttomark 2 idiv { .forceundef } repeat pop % readonly
}
if
//SharedFontDirectory exch .forcecopynew pop
.currentglobal .setglobal % Rebind FontDirectory according to current VM.
pop
} .bind odef
end % level2dict
|