rsc | 6174642 | 2005-08-31 02:15:26 +0000 | [diff] [blame] | 1 | #!/usr/local/plan9/bin/rc |
| 2 | if (~ $DEBUG 1) flag x + |
| 3 | # convert Tex dvi to PostScript |
| 4 | PATCH='%!PS-Adobe-2.0' |
| 5 | switch ($LPCLASS) { |
| 6 | case *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 | } |
| 15 | for (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' |
| 32 | systemdict/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' |
| 41 | systemdict/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' |
| 51 | statusdict begin $i setpapertray end' |
| 52 | } |
| 53 | case 11x17 ledger; PATCH=$PATCH' |
| 54 | statusdict begin '$i'tray end' |
| 55 | } |
| 56 | } |
| 57 | if (! ~ $#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 | } |
| 72 | if (! ~ $#LAND 0 && ~ $LAND 1) |
| 73 | LAND='-tlandscape' |
| 74 | if (~ $LPCLASS *reverse*) { |
| 75 | switch ($REVERSE) { |
| 76 | case ''; |
| 77 | REVFLAG=1 |
| 78 | case 1; |
| 79 | REVFLAG='' |
| 80 | } |
| 81 | } |
| 82 | switch ($LPCLASS) { |
| 83 | case *post100*; |
| 84 | DPI='-Z -D100' |
| 85 | case *600dpi*; |
| 86 | DPI='-Z -D600' |
| 87 | case *1200dpi*; |
| 88 | DPI='-Z -D1200' |
| 89 | case *; |
| 90 | DPI='' |
| 91 | } |
| 92 | if (! ~ $COPIES '' -c*) COPIES=-c^$COPIES |
| 93 | if (! ~ $OLIST '' '='*) OLIST=`{echo $OLIST | sed 's/-o/=/' | sed 's/-/:/g' } |
| 94 | switch ($REVFLAG) { |
| 95 | case 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 |
| 107 | case ''; |
| 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 | } |
| 120 | exit |