plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

hpost (3275B)


      1 #!/usr/local/plan9/bin/rc
      2 if (! ~ $DEBUG '') flag x +
      3 REVFLAG=''
      4 if (~ $LPCLASS *reverse*) {
      5 	switch ($REVERSE) {
      6 	case '';
      7 		REVFLAG=1
      8 	case 1;
      9 		REVFLAG=''
     10 	}
     11 }
     12 if (! ~ $REVFLAG '')
     13 	postreverse
     14 
     15 if (~ $NOHEAD '') {
     16 	DATE=`{date}
     17 	face='FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     18 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     19 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     20 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     21 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     22 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     23 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     24 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     25 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     26 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     27 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     28 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     29 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     30 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     31 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     32 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     33 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     34 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'
     35 	facedom=`{awk '{ if(match("'$LPMACHID'", $1)) {print $2; exit}}' $PLAN9/face/.machinelist}
     36 	if (~ $#facedom 0) facedom=$LPMACHID
     37 
     38 	facefile=`{awk '/^'$facedom'\/'$LPUSERID' /{print $2}' $PLAN9/face/48x48x4/.dict}
     39 	facedepth=4
     40 
     41 	if (~ $#facefile 0) {
     42 		facefile=`{awk '/^'$facedom'\/'$LPUSERID' /{print $2}' $PLAN9/face/48x48x2/.dict}
     43 		facedepth=2
     44 	}
     45 
     46 	if (~ $#facefile 0) {
     47 		facefile=`{awk '/^'$facedom'\/'$LPUSERID' /{print $2}' $PLAN9/face/48x48x1/.dict}
     48 		facedepth=1
     49 	}
     50 
     51 	if (~ $#facefile 0) {facefile=u/unknown.1; facedepth=1}
     52 	facefile=$PLAN9/face/48x48x$facedepth/$facefile
     53 
     54 	if (! ~ $#facefile 0 1)
     55 		facefile=$facefile(1)
     56 
     57 	if (~ $#facefile 0 || ! test -f $facefile ) {facefile=$PLAN9/face/48x48x2/u/unknown.1; facedepth=2}
     58 	if (test -r $facefile ) {
     59 		switch($facedepth){
     60 		case 1 2
     61 			face=`{cat $facefile |
     62 				sed -e 's/0x//g' -e 's/, *//g' |
     63 				tr 0123456789abcdef fedcba9876543210 };
     64 		case 4
     65 			face=`{iconv -u -c k4 $facefile |
     66 				dd -bs 60 -skip 1 >[2]/dev/null |
     67 				xd -b | sed 's/^[^ ]+ //;s/ //g'  }
     68 		}
     69 	}
     70 }
     71 
     72 # We have to make sure the face information is set before rc sees the HERE file
     73 # so the cat has to be in a separate if statement.  This is an rc bug.
     74 if (~ $NOHEAD '') cat <<EOF
     75 %!PS-Adobe-2.0	div 112 page header - research!pg
     76 /banner {
     77 	/saveobj save def
     78 	erasepage initgraphics
     79 	/#copies 1 def
     80 	/inch {72 mul} bind def
     81 	/pageborder {
     82 		25 747 moveto
     83 		590 747 lineto
     84 		590 25 lineto
     85 		25 25 lineto
     86 		closepath
     87 		2 setlinewidth
     88 		0 setgray
     89 		stroke
     90 	} def
     91 
     92 	/topborder {
     93 		25 773 moveto
     94 		590 773 lineto
     95 		590 747 lineto
     96 		25 747 lineto
     97 		closepath
     98 		2 setlinewidth
     99 		0 setgray
    100 		stroke
    101 	} def
    102 
    103 	/toptext {
    104 		120 756 moveto
    105 		/Courier-Bold findfont 14 scalefont setfont
    106 		($LPUSERID $DATE) show
    107 	} def
    108 
    109 	/prface {
    110 		gsave
    111 		translate rotate scale
    112 		setgray
    113 		48 48 $facedepth [48 0 0 -48 0 48] {<$face>} image
    114 		grestore
    115 	} def
    116 EOF
    117 if (~ $NOHEAD '') switch ($LPCLASS) {
    118 case *hp4simx*;
    119 	echo '
    120 %% set the default papertray to be the lower tray for HP4siMX printers
    121 	statusdict begin defaultpapertray end 1 ne {
    122 		statusdict begin
    123 			1 setdefaultpapertray
    124 		end
    125 	} if'
    126 }
    127 if (~ $NOHEAD '') cat <<EOF
    128 	statusdict /setduplexmode known {statusdict begin false setduplexmode end} if
    129 	statusdict begin /manualfeed false def end
    130 	pageborder
    131 	topborder
    132 	toptext
    133 	0 14 14 0 94 752 prface
    134 	.3 180 180 -90 3.0 inch 10.2 inch prface
    135 	showpage
    136 	saveobj
    137 	restore
    138 } bind def
    139 banner
    140 EOF
    141 
    142 if (~ $REVFLAG '') cat
    143 exit ''