aboutsummaryrefslogtreecommitdiff
path: root/lp/process/hpost
diff options
context:
space:
mode:
Diffstat (limited to 'lp/process/hpost')
-rwxr-xr-xlp/process/hpost143
1 files changed, 143 insertions, 0 deletions
diff --git a/lp/process/hpost b/lp/process/hpost
new file mode 100755
index 00000000..169cb2ac
--- /dev/null
+++ b/lp/process/hpost
@@ -0,0 +1,143 @@
+#!/usr/local/plan9/bin/rc
+if (! ~ $DEBUG '') flag x +
+REVFLAG=''
+if (~ $LPCLASS *reverse*) {
+ switch ($REVERSE) {
+ case '';
+ REVFLAG=1
+ case 1;
+ REVFLAG=''
+ }
+}
+if (! ~ $REVFLAG '')
+ postreverse
+
+if (~ $NOHEAD '') {
+ DATE=`{date}
+ face='FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'
+ facedom=`{awk '{ if(match("'$LPMACHID'", $1)) {print $2; exit}}' $PLAN9/face/.machinelist}
+ if (~ $#facedom 0) facedom=$LPMACHID
+
+ facefile=`{awk '/^'$facedom'\/'$LPUSERID' /{print $2}' $PLAN9/face/48x48x4/.dict}
+ facedepth=4
+
+ if (~ $#facefile 0) {
+ facefile=`{awk '/^'$facedom'\/'$LPUSERID' /{print $2}' $PLAN9/face/48x48x2/.dict}
+ facedepth=2
+ }
+
+ if (~ $#facefile 0) {
+ facefile=`{awk '/^'$facedom'\/'$LPUSERID' /{print $2}' $PLAN9/face/48x48x1/.dict}
+ facedepth=1
+ }
+
+ if (~ $#facefile 0) {facefile=u/unknown.1; facedepth=1}
+ facefile=$PLAN9/face/48x48x$facedepth/$facefile
+
+ if (! ~ $#facefile 0 1)
+ facefile=$facefile(1)
+
+ if (~ $#facefile 0 || ! test -f $facefile ) {facefile=$PLAN9/face/48x48x2/u/unknown.1; facedepth=2}
+ if (test -r $facefile ) {
+ switch($facedepth){
+ case 1 2
+ face=`{cat $facefile |
+ sed -e 's/0x//g' -e 's/, *//g' |
+ tr 0123456789abcdef fedcba9876543210 };
+ case 4
+ face=`{iconv -u -c k4 $facefile |
+ dd -bs 60 -skip 1 >[2]/dev/null |
+ xd -b | sed 's/^[^ ]+ //;s/ //g' }
+ }
+ }
+}
+
+# We have to make sure the face information is set before rc sees the HERE file
+# so the cat has to be in a separate if statement. This is an rc bug.
+if (~ $NOHEAD '') cat <<EOF
+%!PS-Adobe-2.0 div 112 page header - research!pg
+/banner {
+ /saveobj save def
+ erasepage initgraphics
+ /#copies 1 def
+ /inch {72 mul} bind def
+ /pageborder {
+ 25 747 moveto
+ 590 747 lineto
+ 590 25 lineto
+ 25 25 lineto
+ closepath
+ 2 setlinewidth
+ 0 setgray
+ stroke
+ } def
+
+ /topborder {
+ 25 773 moveto
+ 590 773 lineto
+ 590 747 lineto
+ 25 747 lineto
+ closepath
+ 2 setlinewidth
+ 0 setgray
+ stroke
+ } def
+
+ /toptext {
+ 120 756 moveto
+ /Courier-Bold findfont 14 scalefont setfont
+ ($LPUSERID $DATE) show
+ } def
+
+ /prface {
+ gsave
+ translate rotate scale
+ setgray
+ 48 48 $facedepth [48 0 0 -48 0 48] {<$face>} image
+ grestore
+ } def
+EOF
+if (~ $NOHEAD '') switch ($LPCLASS) {
+case *hp4simx*;
+ echo '
+%% set the default papertray to be the lower tray for HP4siMX printers
+ statusdict begin defaultpapertray end 1 ne {
+ statusdict begin
+ 1 setdefaultpapertray
+ end
+ } if'
+}
+if (~ $NOHEAD '') cat <<EOF
+ statusdict /setduplexmode known {statusdict begin false setduplexmode end} if
+ statusdict begin /manualfeed false def end
+ pageborder
+ topborder
+ toptext
+ 0 14 14 0 94 752 prface
+ .3 180 180 -90 3.0 inch 10.2 inch prface
+ showpage
+ saveobj
+ restore
+} bind def
+banner
+EOF
+
+if (~ $REVFLAG '') cat
+exit ''