aboutsummaryrefslogtreecommitdiff
path: root/lp/process/generic
diff options
context:
space:
mode:
Diffstat (limited to 'lp/process/generic')
-rwxr-xr-xlp/process/generic108
1 files changed, 108 insertions, 0 deletions
diff --git a/lp/process/generic b/lp/process/generic
new file mode 100755
index 00000000..3b793d2f
--- /dev/null
+++ b/lp/process/generic
@@ -0,0 +1,108 @@
+#!/usr/local/plan9/bin/rc
+# Tries to determine what type of file you are printing and do the correct
+# thing with it.
+# It currently knows about images, troff intermediate, and ascii files.
+TMPFILE=/tmp/lp$pid
+fn sigexit { rm -f $TMPFILE; }
+if (! ~ $DEBUG '') flag x +
+if (~ $LPCLASS *nohead*) NOHEAD=1
+if (~ $LPCLASS *duplex*) DUPLEX=1
+cat >$TMPFILE
+FILETYPE=`{file $TMPFILE}
+switch ($FILETYPE(2)) {
+case troff;
+ switch ($LPCLASS) {
+ case *Latin1* *post* *opost*; switch ($FILETYPE(5)) {
+ # Latin1 is for compatibility with old research UNIX systems, doesn't work on Plan 9
+ case Latin1 post; tcs -s -f utf -t latin1 < $TMPFILE |$LPLIB/process/dpost
+
+ case UTF; $LPLIB/process/tr2post < $TMPFILE
+ }
+
+ case *; echo $FILETYPE(2) -T$FILETYPE(5) output is improper for $LPDEST >[1=2]
+ }
+case special;
+ switch ($FILETYPE(4)) {
+ case '#b'; switch ($LPCLASS) {
+ case *post*; $LPLIB/process/p9bitpost < $TMPFILE
+ }
+
+ case *; echo $FILETYPE file is improper for $LPDEST >[1=2]
+ }
+case Compressed plan old; # type is really 'Compressed image' or 'plan 9 image'
+ # or 'old plan 9 image'
+ switch ($LPCLASS) {
+ case *post*; $LPLIB/process/p9bitpost < $TMPFILE
+ }
+case jpeg;
+ switch ($LPCLASS) {
+ case *post*; $LPLIB/process/jpgpost < $TMPFILE
+ }
+
+case GIF;
+ switch ($LPCLASS) {
+ case *post*; $LPLIB/process/gifpost < $TMPFILE
+ }
+
+case ccitt-g31;
+ switch ($LPCLASS) {
+ case *post*; $LPLIB/process/g3post < $TMPFILE
+ }
+
+# bitmap for research UNIX compatibility, does not work on Plan 9.
+case bitmap;
+ switch ($LPCLASS) {
+ case *post*; $LPLIB/process/bpost < $TMPFILE
+ case *mhcc*; $LPLIB/process/bpost < $TMPFILE | $LPLIB/process/mhcc
+ case *; echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
+ }
+case tex;
+ mv $TMPFILE $TMPFILE.dvi
+ TMPFILE=$TMPFILE.dvi
+ switch ($LPCLASS) {
+ case *post*; $LPLIB/process/dvipost $TMPFILE
+ case *; echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
+ }
+case postscript;
+ switch ($LPCLASS) {
+ case *post*; $LPLIB/process/post < $TMPFILE
+ case *; echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
+ }
+case HPJCL;
+ switch ($LPCLASS) {
+ case *HPJCL*; $LPLIB/process/noproc < $TMPFILE
+ case *; echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
+ }
+case daisy;
+ switch ($LPDEST) {
+ case *; echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
+ }
+case English short extended alef limbo [Aa]scii ASCII assembler c latin rc sh as mail email message/rfc822;
+ switch ($LPCLASS) {
+ case *post*; $LPLIB/process/ppost < $TMPFILE
+ case *canon*; $LPLIB/process/can $* < $TMPFILE
+ case *; echo Unrecognized class of line printer for $LPDEST >[1=2]
+ }
+
+case tiff;
+ switch ($LPCLASS) {
+ case *post*; $LPLIB/process/tiffpost $TMPFILE
+ case *; echo Unrecognized class of line printer for $LPDEST >[1=2]
+ }
+case PDF;
+ switch ($LPCLASS) {
+ case *post*; $LPLIB/process/pdfpost $TMPFILE
+ case *; echo Unrecognized class of line printer for $LPDEST >[1=2]
+ }
+case empty;
+ echo file is empty >[1=2]
+case cannot;
+ echo cannot open file >[1=2]
+case *;
+ echo $FILETYPE(2) file is improper for $LPDEST >[1=2]
+}
+wait
+rv=$status
+rm -f $TMPFILE
+#exit $status
+exit