1#!/bin/rc 2if (~ $DEBUG 1) flag x + 3# convert Tex dvi to PostScript 4PATCH='%!PS-Adobe-2.0' 5switch ($LPCLASS) { 6case *hp4simx*; 7 PATCH=$PATCH' 8%% set the default papertray to be the lower tray for HP4siMX printers 9 statusdict begin defaultpapertray end 1 ne { 10 statusdict begin 11 1 setdefaultpapertray 12 end 13 } if' 14} 15for (i in `{echo $IBIN|awk -F, '{ n=split($0, a, ","); for (i=1;i<=n;i++) print a[i]; }'}) { 16 switch ($i) { 17 case man manual manualfeed; 18 PATCH=$PATCH' 19%%BeginFeature: *Select ManualFeed 20[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if { 21 << /ManualFeed true >> setpagedevice 22 } {statusdict begin /manualfeed true def end} ifelse 23 } stopped cleartomark 24%%EndFeature' 25 case simplex; 26 DUPLEX=0 27 case [0-9]; 28 switch ($LPCLASS) { 29 case *post2*; 30 switch ($i) { 31 case 0; PATCH=$PATCH' 32systemdict/languagelevel known {languagelevel 2 eq {true (0) startjob dup not 33{/exitserver errordict/invalidaccess get exec}if}{false}ifelse}{false}ifelse 34{ 35 currentpagedevice/InputAttributes get {0 get} stopped 36 {pop pop} {2 dict dup /InputAttributes 1 dict dup 37 /Priority[0] put put dup /TraySwitch false put setpagedevice} ifelse 38 false (0) startjob pop 39} if' 40 case 1; PATCH=$PATCH' 41systemdict/languagelevel known {languagelevel 2 eq {true (0) startjob dup not 42{/exitserver errordict/invalidaccess get exec}if}{false}ifelse}{false}ifelse 43{ 44 currentpagedevice/InputAttributes get {1 get} stopped 45 {pop pop} {2 dict dup /InputAttributes 1 dict dup 46 /Priority[1] put put dup /TraySwitch false put setpagedevice} ifelse 47 false (0) startjob pop 48} if' 49 } 50 case *; PATCH=$PATCH' 51statusdict begin $i setpapertray end' 52 } 53 case 11x17 ledger; PATCH=$PATCH' 54statusdict begin '$i'tray end' 55 } 56} 57if (! ~ $#DUPLEX 0) { 58 switch ($DUPLEX) { 59 case 0; 60 DUPLEX=false 61 case 1; 62 DUPLEX=true 63 } 64 PATCH=$PATCH' 65%%BeginFeature: *Set DuplexMode 66[{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if { 67 << /Duplex '$DUPLEX' >> setpagedevice 68 } {statusdict /setduplexmode known {statusdict begin '$DUPLEX' setduplexmode end} if} ifelse 69 } stopped cleartomark 70%%EndFeature' 71} 72if (! ~ $#LAND 0 && ~ $LAND 1) 73 LAND='-tlandscape' 74if (~ $LPCLASS *reverse*) { 75 switch ($REVERSE) { 76 case ''; 77 REVFLAG=1 78 case 1; 79 REVFLAG='' 80 } 81} 82switch ($LPCLASS) { 83case *post100*; 84 DPI='-Z -D100' 85case *600dpi*; 86 DPI='-Z -D600' 87case *1200dpi*; 88 DPI='-Z -D1200' 89case *; 90 DPI='' 91} 92if (! ~ $COPIES '' -c*) COPIES=-c^$COPIES 93if (! ~ $OLIST '' '='*) OLIST=`{echo $OLIST | sed 's/-o/=/' | sed 's/-/:/g' } 94switch ($REVFLAG) { 95case 1; 96 echo $PATCH 97 switch ($OLIST) { 98 case ''; 99 eval dvips -q -f $DPI -r $LAND $COPIES $1 100 case *; 101 DVIFILE=/tmp/dv$pid.dvi 102 dviselect -s $OLIST $1 > $DVIFILE 103 eval dvips -q -f $DPI -r $LAND $COPIES $DVIFILE 104 rm -f $DVIFILE 105 } 106 $LPLIB/process/hpost </dev/null 107case ''; 108 $LPLIB/process/hpost </dev/null 109 echo $PATCH 110 switch ($OLIST) { 111 case ''; 112 eval dvips -q -f $DPI $LAND $COPIES $1 113 case *; 114 DVIFILE=/tmp/dv$pid.dvi 115 dviselect -s $OLIST $1 > $DVIFILE 116 eval dvips -q -f $DPI $LAND $COPIES $DVIFILE 117 rm -f $DVIFILE 118 } 119} 120exit 121