URI: 
       tdvipost - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tdvipost (3139B)
       ---
            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