| #!/usr/local/plan9/bin/rc |
| if (~ $DEBUG 1) flag x + |
| # convert Tex dvi to PostScript |
| PATCH='%!PS-Adobe-2.0' |
| switch ($LPCLASS) { |
| case *hp4simx*; |
| PATCH=$PATCH' |
| %% set the default papertray to be the lower tray for HP4siMX printers |
| statusdict begin defaultpapertray end 1 ne { |
| statusdict begin |
| 1 setdefaultpapertray |
| end |
| } if' |
| } |
| for (i in `{echo $IBIN|awk -F, '{ n=split($0, a, ","); for (i=1;i<=n;i++) print a[i]; }'}) { |
| switch ($i) { |
| case man manual manualfeed; |
| PATCH=$PATCH' |
| %%BeginFeature: *Select ManualFeed |
| [{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if { |
| << /ManualFeed true >> setpagedevice |
| } {statusdict begin /manualfeed true def end} ifelse |
| } stopped cleartomark |
| %%EndFeature' |
| case simplex; |
| DUPLEX=0 |
| case [0-9]; |
| switch ($LPCLASS) { |
| case *post2*; |
| switch ($i) { |
| case 0; PATCH=$PATCH' |
| systemdict/languagelevel known {languagelevel 2 eq {true (0) startjob dup not |
| {/exitserver errordict/invalidaccess get exec}if}{false}ifelse}{false}ifelse |
| { |
| currentpagedevice/InputAttributes get {0 get} stopped |
| {pop pop} {2 dict dup /InputAttributes 1 dict dup |
| /Priority[0] put put dup /TraySwitch false put setpagedevice} ifelse |
| false (0) startjob pop |
| } if' |
| case 1; PATCH=$PATCH' |
| systemdict/languagelevel known {languagelevel 2 eq {true (0) startjob dup not |
| {/exitserver errordict/invalidaccess get exec}if}{false}ifelse}{false}ifelse |
| { |
| currentpagedevice/InputAttributes get {1 get} stopped |
| {pop pop} {2 dict dup /InputAttributes 1 dict dup |
| /Priority[1] put put dup /TraySwitch false put setpagedevice} ifelse |
| false (0) startjob pop |
| } if' |
| } |
| case *; PATCH=$PATCH' |
| statusdict begin $i setpapertray end' |
| } |
| case 11x17 ledger; PATCH=$PATCH' |
| statusdict begin '$i'tray end' |
| } |
| } |
| if (! ~ $#DUPLEX 0) { |
| switch ($DUPLEX) { |
| case 0; |
| DUPLEX=false |
| case 1; |
| DUPLEX=true |
| } |
| PATCH=$PATCH' |
| %%BeginFeature: *Set DuplexMode |
| [{ systemdict /languagelevel known {languagelevel 1 gt product (HP LaserJet 4Si) ne and} if { |
| << /Duplex '$DUPLEX' >> setpagedevice |
| } {statusdict /setduplexmode known {statusdict begin '$DUPLEX' setduplexmode end} if} ifelse |
| } stopped cleartomark |
| %%EndFeature' |
| } |
| if (! ~ $#LAND 0 && ~ $LAND 1) |
| LAND='-tlandscape' |
| if (~ $LPCLASS *reverse*) { |
| switch ($REVERSE) { |
| case ''; |
| REVFLAG=1 |
| case 1; |
| REVFLAG='' |
| } |
| } |
| switch ($LPCLASS) { |
| case *post100*; |
| DPI='-Z -D100' |
| case *600dpi*; |
| DPI='-Z -D600' |
| case *1200dpi*; |
| DPI='-Z -D1200' |
| case *; |
| DPI='' |
| } |
| if (! ~ $COPIES '' -c*) COPIES=-c^$COPIES |
| if (! ~ $OLIST '' '='*) OLIST=`{echo $OLIST | sed 's/-o/=/' | sed 's/-/:/g' } |
| switch ($REVFLAG) { |
| case 1; |
| echo $PATCH |
| switch ($OLIST) { |
| case ''; |
| eval dvips -q -f $DPI -r $LAND $COPIES $1 |
| case *; |
| DVIFILE=/tmp/dv$pid.dvi |
| dviselect -s $OLIST $1 > $DVIFILE |
| eval dvips -q -f $DPI -r $LAND $COPIES $DVIFILE |
| rm -f $DVIFILE |
| } |
| $LPLIB/process/hpost </dev/null |
| case ''; |
| $LPLIB/process/hpost </dev/null |
| echo $PATCH |
| switch ($OLIST) { |
| case ''; |
| eval dvips -q -f $DPI $LAND $COPIES $1 |
| case *; |
| DVIFILE=/tmp/dv$pid.dvi |
| dviselect -s $OLIST $1 > $DVIFILE |
| eval dvips -q -f $DPI $LAND $COPIES $DVIFILE |
| rm -f $DVIFILE |
| } |
| } |
| exit |