freebsd-ports/print/ghostscript7/files/patch-lib:gs_setpd.ps
Hiroki Sato 045633a1b8 Resurrect print/ghostscript7*. Ghostscript 7.x is incompatible with 8.x
and 9.x in terms of CJK character support and they are still in demand.
While I am here, the following changes have been added:

- Add LICENSE.
- Use OPTIONS_DEFINE for ghostscript drivers.
- Add MAKE_JOBS_SAFE=yes.

Discussed with:	bapt
2013-04-29 20:12:16 +00:00

98 lines
3.1 KiB
PostScript

--- lib/gs_setpd.ps.orig Sat Apr 12 16:02:38 2003
+++ lib/gs_setpd.ps Sat Jan 22 13:15:05 2005
@@ -324,21 +324,42 @@
} bind
.dicttomark readonly def
-% Define the keys used in input attribute matching.
-/.inputattrkeys [
- /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet
- % 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
+ % 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.
@@ -367,7 +388,13 @@
/PageSize false % obsolete alias for .MediaSize
/InputAttributes false
.inputattrkeys
- { dup /PageSize eq
+ % M. Sweet, Easy Software Products:
+ %
+ % Treat LeadingEdge like PageSize so that a common Ghostscript driver
+ % doesn't need the NOMEDIAATTRS definition.
+ %
+ % { dup /PageSize eq
+ { dup dup /PageSize eq exch /LeadingEdge eq or
{ pop }
{ { 2 index /InputAttributes .knownget { null eq } { true } ifelse } }
ifelse
@@ -442,11 +469,22 @@
% 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.
0 { % Set errorinfo and signal a configurationerror.
+ 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 load /configurationerror signalerror
+ } ifelse
} bind
1 { % Roll back the failed request to its previous status.
DEBUG { (Rolling back.) = pstack flush } if