xref: /plan9-contrib/sys/src/cmd/postscript/hardcopy/hardcopy.rc (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1*219b2ee8SDavid du Colombier#!/bin/rc
2*219b2ee8SDavid du Colombier# Generate paper output from the data that a PostScript program normally
3*219b2ee8SDavid du Colombier# sends back to a host computer using file output operators.
4*219b2ee8SDavid du Colombier#
5*219b2ee8SDavid du Colombier
6*219b2ee8SDavid du ColombierPOSTLIB=/sys/lib/postscript/prologues
7*219b2ee8SDavid du ColombierPROLOGUE=$POSTLIB/hardcopy.ps
8*219b2ee8SDavid du Colombier
9*219b2ee8SDavid du ColombierOPTIONS=
10*219b2ee8SDavid du ColombierMODE=portrait
11*219b2ee8SDavid du Colombier
12*219b2ee8SDavid du ColombierNONCONFORMING='%!PS'
13*219b2ee8SDavid du ColombierENDPROLOG='%%EndProlog'
14*219b2ee8SDavid du ColombierBEGINSETUP='%%BeginSetup'
15*219b2ee8SDavid du ColombierENDSETUP='%%EndSetup'
16*219b2ee8SDavid du ColombierTRAILER='%%Trailer'
17*219b2ee8SDavid du Colombier
18*219b2ee8SDavid du ColombierSETUP=HardcopySetup
19*219b2ee8SDavid du ColombierDONE='(%stdout)(w) file -1 write'
20*219b2ee8SDavid du Colombier
21*219b2ee8SDavid du Colombierwhile (! ~ $#* 0 && ~ $1 -*) {
22*219b2ee8SDavid du Colombier	switch ($1) {
23*219b2ee8SDavid du Colombier	case -c;  shift; OPTIONS=$OPTIONS' /#copies '$1' store'
24*219b2ee8SDavid du Colombier	case -c*; OPTIONS=$OPTIONS' /#copies `{echo $1 | sed s/-c//}' store'
25*219b2ee8SDavid du Colombier
26*219b2ee8SDavid du Colombier	case -f;  shift; OPTIONS=$OPTIONS' /font '/$1' def'
27*219b2ee8SDavid du Colombier	case -f*; OPTIONS=$OPTIONS' /font '/`{echo $1 | sed s/-f//}' def'
28*219b2ee8SDavid du Colombier
29*219b2ee8SDavid du Colombier	case -p;  shift; MODE=$1
30*219b2ee8SDavid du Colombier	case -p*; MODE=`{echo $1 | sed s/-p//}
31*219b2ee8SDavid du Colombier
32*219b2ee8SDavid du Colombier	case -m;  shift; OPTIONS=$OPTIONS' /magnification '$1' def'
33*219b2ee8SDavid du Colombier	case -m*; OPTIONS=$OPTIONS' /magnification '`{echo $1 | sed s/-m//}' def'
34*219b2ee8SDavid du Colombier
35*219b2ee8SDavid du Colombier	case -s;  shift; OPTIONS=$OPTIONS' /pointsize '$1' def'
36*219b2ee8SDavid du Colombier	case -s*; OPTIONS=$OPTIONS' /pointsize '`{echo $1 | sed s/-s//}' def'
37*219b2ee8SDavid du Colombier
38*219b2ee8SDavid du Colombier	case -x;  shift; OPTIONS=$OPTIONS' /xoffset '$1' def'
39*219b2ee8SDavid du Colombier	case -x*; OPTIONS=$OPTIONS' /xoffset '`{echo $1 | sed s/-x//}' def'
40*219b2ee8SDavid du Colombier
41*219b2ee8SDavid du Colombier	case -y;  shift; OPTIONS=$OPTIONS' /yoffset '$1' def'
42*219b2ee8SDavid du Colombier	case -y*; OPTIONS=$OPTIONS' /yoffset '`{echo $1 | sed s/-y//}' def'
43*219b2ee8SDavid du Colombier
44*219b2ee8SDavid du Colombier	case -L;  shift; PROLOGUE=$1
45*219b2ee8SDavid du Colombier	case -L*; PROLOGUE=`{echo $1 | sed s/-L//}
46*219b2ee8SDavid du Colombier
47*219b2ee8SDavid du Colombier	case --;
48*219b2ee8SDavid du Colombier
49*219b2ee8SDavid du Colombier	case -*;  echo '$0: illegal option $1' >&2; exit 1
50*219b2ee8SDavid du Colombier	}
51*219b2ee8SDavid du Colombier	shift
52*219b2ee8SDavid du Colombier}
53*219b2ee8SDavid du Colombier
54*219b2ee8SDavid du Colombierswitch ($MODE) {
55*219b2ee8SDavid du Colombier	case l*; OPTIONS=$OPTIONS' /landscape true def'
56*219b2ee8SDavid du Colombier	case *;  OPTIONS=$OPTIONS' /landscape false def'
57*219b2ee8SDavid du Colombier}
58*219b2ee8SDavid du Colombier
59*219b2ee8SDavid du Colombierecho $NONCONFORMING
60*219b2ee8SDavid du Colombiercat $PROLOGUE
61*219b2ee8SDavid du Colombierecho $ENDPROLOG
62*219b2ee8SDavid du Colombierecho $BEGINSETUP
63*219b2ee8SDavid du Colombierecho $OPTIONS
64*219b2ee8SDavid du Colombierecho $SETUP
65*219b2ee8SDavid du Colombierecho $ENDSETUP
66*219b2ee8SDavid du Colombier
67*219b2ee8SDavid du Colombiercat $*
68*219b2ee8SDavid du Colombier
69*219b2ee8SDavid du Colombierecho $TRAILER
70*219b2ee8SDavid du Colombierecho $DONE
71