diff -u lib/gs_init.ps.orig lib/gs_init.ps --- lib/gs_init.ps.orig 2006-02-21 22:29:07.000000000 +0100 +++ lib/gs_init.ps 2006-05-17 22:31:11.000000000 +0200 @@ -152,6 +152,7 @@ currentdict /NOFONTPATH known /NOFONTPATH exch def currentdict /NOGC known /NOGC exch def currentdict /NOINTERPOLATE .knownget { /INTERPOLATE exch not def } if +currentdict /NOMEDIAATTRS known /NOMEDIAATTRS exch def currentdict /NOOUTERSAVE known /NOOUTERSAVE exch def currentdict /NOPAGEPROMPT known /NOPAGEPROMPT exch def currentdict /NOPAUSE known /NOPAUSE exch def diff -u lib/gs_setpd.ps.orig lib/gs_setpd.ps --- lib/gs_setpd.ps.orig 2005-12-28 20:56:24.000000000 +0100 +++ lib/gs_setpd.ps 2006-05-17 22:33:54.000000000 +0200 @@ -375,21 +375,42 @@ } bind .dicttomark readonly def -% Define the keys used in input attribute matching. -/.inputattrkeys [ - /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet /ManualFeed - % The following are documented in Adobe's supplement for v2017. - /LeadingEdge /MediaClass -] readonly def -% Define other keys used in media selection. -/.inputselectionkeys [ - /MediaPosition /Orientation -] readonly def - -% Define the keys used in output attribute matching. -/.outputattrkeys [ - /OutputType -] readonly def +% M. Sweet, Easy Software Products: +% +% Define NOMEDIAATTRS to turn off the default (but unimplementable) media +% selection policies for setpagedevice. This is used by CUPS to support +% the standard Adobe media attributes. +NOMEDIAATTRS { + % Define only PageSize for input attribute matching. + /.inputattrkeys [ + /PageSize + ] readonly def + % Define no other keys used in media selection. + /.inputselectionkeys [ + /noInputSelectionsKeys + ] readonly def + + % Define no keys used in output attribute matching. + /.outputattrkeys [ + /noOutputAttrKeys + ] readonly def +} { + % Define the keys used in input attribute matching. + /.inputattrkeys [ + /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet /ManualFeed + % The following are documented in Adobe's supplement for v2017. + /LeadingEdge /MediaClass + ] readonly def + % Define other keys used in media selection. + /.inputselectionkeys [ + /MediaPosition /Orientation + ] readonly def + + % Define the keys used in output attribute matching. + /.outputattrkeys [ + /OutputType + ] readonly def +} ifelse % Define all the parameters that should always be copied to the merged % dictionary. @@ -499,11 +526,23 @@ % They are expected to consume the top 2 operands. % NOTE: we currently treat all values other than 0, 1, or 7 (for PageSize) % the same as 0, i.e., we signal an error. +% +% M. Sweet, Easy Software Products: +% +% Define NOMEDIAATTRS to turn off the default (but unimplementable) media +% selection policies for setpagedevice. This is used by CUPS to support +% the standard Adobe media attributes. + SETPDDEBUG { (Rolling back.) = pstack flush } if 0 { % Set errorinfo and signal a configurationerror. - pop dup 4 index exch get 2 array astore - $error /errorinfo 3 -1 roll put - cleartomark + NOMEDIAATTRS { + % NOMEDIAATTRS means that the default policy is 7... + pop 2 index exch 7 put + } { + pop dup 4 index exch get 2 array astore + $error /errorinfo 3 -1 roll put + cleartomark /setpagedevice .systemvar /configurationerror signalerror + } ifelse } bind 1 { % Roll back the failed request to its previous status. SETPDDEBUG { (Rolling back.) = pstack flush } if