% Copyright (C) 2001-2019 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., 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 % that are also included in Level 2. level2dict begin % ------ Virtual memory ------ % /currentshared /.currentglobal load def /scheck {.gcheck} bind odef %****** 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 currentdict /LocalFontDirectory .FontDirectory dup maxlength dict copy .forceput % LocalFontDirectory is local, systemdict is global .setglobal .FontDirectory } executeonly { currentdict /LocalFontDirectory .FontDirectory .forceput % LocalFontDirectory is local, systemdict is global 50 dict }executeonly 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 executeonly 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 } executeonly % 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 .forceput } % 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 } executeonly repeat pop % readonly } if //SharedFontDirectory exch .forcecopynew pop .currentglobal .setglobal % Rebind FontDirectory according to current VM. pop } .bind odef end % level2dict
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
FAPIcidfmap | File | 1.45 KB | 0644 |
|
FAPIconfig | File | 815 B | 0644 |
|
FAPIfontmap | File | 1.43 KB | 0644 |
|
FCOfontmap-PCLPS2 | File | 2.79 KB | 0644 |
|
Fontmap | File | 109 B | 0644 |
|
Fontmap.GS | File | 12.63 KB | 0644 |
|
cidfmap | File | 2.11 KB | 0644 |
|
gs_agl.ps | File | 212.91 KB | 0644 |
|
gs_btokn.ps | File | 12.17 KB | 0644 |
|
gs_cet.ps | File | 4.85 KB | 0644 |
|
gs_cff.ps | File | 6.8 KB | 0644 |
|
gs_cidcm.ps | File | 16.43 KB | 0644 |
|
gs_ciddc.ps | File | 8.31 KB | 0644 |
|
gs_cidfm.ps | File | 7.15 KB | 0644 |
|
gs_cidfn.ps | File | 14.21 KB | 0644 |
|
gs_cidtt.ps | File | 5.71 KB | 0644 |
|
gs_cmap.ps | File | 18.01 KB | 0644 |
|
gs_cspace.ps | File | 3.96 KB | 0644 |
|
gs_dbt_e.ps | File | 2.08 KB | 0644 |
|
gs_diskn.ps | File | 6.71 KB | 0644 |
|
gs_dps1.ps | File | 4.64 KB | 0644 |
|
gs_dps2.ps | File | 8.56 KB | 0644 |
|
gs_dscp.ps | File | 3.85 KB | 0644 |
|
gs_epsf.ps | File | 9.2 KB | 0644 |
|
gs_fapi.ps | File | 15.26 KB | 0644 |
|
gs_fntem.ps | File | 11.04 KB | 0644 |
|
gs_fonts.ps | File | 45.73 KB | 0644 |
|
gs_frsd.ps | File | 3.08 KB | 0644 |
|
gs_icc.ps | File | 3.03 KB | 0644 |
|
gs_il1_e.ps | File | 2.66 KB | 0644 |
|
gs_img.ps | File | 23.44 KB | 0644 |
|
gs_init.ps | File | 89.44 KB | 0644 |
|
gs_lev2.ps | File | 42.79 KB | 0644 |
|
gs_ll3.ps | File | 19.13 KB | 0644 |
|
gs_mex_e.ps | File | 3.75 KB | 0644 |
|
gs_mgl_e.ps | File | 2.13 KB | 0644 |
|
gs_mro_e.ps | File | 2.45 KB | 0644 |
|
gs_pdf_e.ps | File | 1.52 KB | 0644 |
|
gs_pdfwr.ps | File | 31.69 KB | 0644 |
|
gs_res.ps | File | 41.42 KB | 0644 |
|
gs_resmp.ps | File | 21.95 KB | 0644 |
|
gs_setpd.ps | File | 37.54 KB | 0644 |
|
gs_statd.ps | File | 17.43 KB | 0644 |
|
gs_std_e.ps | File | 3.07 KB | 0644 |
|
gs_sym_e.ps | File | 3.03 KB | 0644 |
|
gs_trap.ps | File | 2.88 KB | 0644 |
|
gs_ttf.ps | File | 63.24 KB | 0644 |
|
gs_typ32.ps | File | 4.45 KB | 0644 |
|
gs_typ42.ps | File | 2.05 KB | 0644 |
|
gs_type1.ps | File | 12.25 KB | 0644 |
|
gs_wan_e.ps | File | 1.53 KB | 0644 |
|
pdf_base.ps | File | 51.31 KB | 0644 |
|
pdf_draw.ps | File | 169.33 KB | 0644 |
|
pdf_font.ps | File | 89.57 KB | 0644 |
|
pdf_main.ps | File | 124.35 KB | 0644 |
|
pdf_ops.ps | File | 72 KB | 0644 |
|
pdf_rbld.ps | File | 18.97 KB | 0644 |
|
pdf_sec.ps | File | 24.22 KB | 0644 |
|
xlatmap | File | 1.73 KB | 0644 |
|