#!/bin/rc
# convert Tex dvi to PostScript
PATCH='%!PS-Adobe-2.0'
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'
statusdict begin /manualfeed true def end'
       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) {
       if (~ $DUPLEX 1 )
               PATCH=$PATCH'
statusdict /setduplexmode known {statusdict begin true setduplexmode end} if';
       if (~ $DUPLEX 0 )
               PATCH=$PATCH'
statusdict /setduplexmode known {statusdict begin false setduplexmode end} if';
}
if (! ~ $#LAND 0 && ~ $LAND 1)
       LAND='-L'
if (~ $LPCLASS *reverse*) {
       switch ($REVERSE) {
       case '';
               REVFLAG=1
       case 1;
               REVFLAG=''
       }
}
switch ($LPCLASS) {
case *lino*;
       TOPT='-Tlino'
case *600dpi*;
       TOPT='-Tljfour'
case *100dpi*;
       TOPT='-Tgnot'
case *1200dpi*;
       TOPT='-Txante'
case *;
       TOPT=''
}
if (! ~ $COPIES '' -c*) COPIES=-c^$COPIES
if (! ~ $OLIST '' '='*) OLIST=`{echo $OLIST | sed 's/-o/=/' | sed 's/-/:/g' }
if (! ~ $NPAG '' -I*) {
       NPAG=-I$NPAG
       if (~ $REVFLAG 1) {
               echo 'page reversal turned off with -n option' >[1=2]
               REVFLAG=''
       }
}
switch ($REVFLAG) {
case 1;
       echo $PATCH
       switch ($OLIST) {
       case '';
               eval dvips -r $LAND $TOPT $COPIES $NPAG $1
       case *;
               DVIFILE=/tmp/dv$pid.dvi
               dviselect -s $OLIST $1 > $DVIFILE
               eval dvips -r $LAND $TOPT $COPIES $NPAG $DVIFILE
               rm -f $DVIFILE
       }
       $LPLIB/process/hpost </dev/null
case '';
       $LPLIB/process/hpost </dev/null
       echo $PATCH
       switch ($OLIST) {
       case '';
               eval dvips -r0 $LAND $TOPT $COPIES $NPAG $1
       case *;
               DVIFILE=/tmp/dv$pid.dvi
               dviselect -s $OLIST $1 > $DVIFILE
               eval dvips -r0 $LAND $TOPT $COPIES $NPAG $DVIFILE
               rm -f $DVIFILE
       }
}
exit