henesyinit from p9f47575dc5 years agoHistory
93 lines · 3.2 KB · Text
RawDownload
#!/bin/rc# Tries to determine what type of file you are printing and do the correct# thing with it.# It currently knows about bitmaps, troff intermediate, and ascii files.TMPFILE=/tmp/lp$pid# fn sigexit { rm -f $TMPFILE; }if (! ~ $DEBUG '') flag x +if (~ $LPCLASS *nohead*) NOHEAD=1if (~ $LPCLASS *duplex*) DUPLEX=1cat >$TMPFILEFILETYPE=`{file $TMPFILE}switch ($FILETYPE(2)) {case troff;	switch ($LPCLASS) {	case *Latin1* *post* *opost*;	switch ($FILETYPE(5)) {					case Latin1 post; tcs -s -f utf -t latin1 < $TMPFILE |$LPLIB/process/dpost					case UTF; $LPLIB/process/dpost < $TMPFILE					}	case *imagen*;	switch ($FILETYPE(5)) {			case i300 im300;	$LPLIB/process/dimp -T$FILETYPE(5) < $TMPFILE			case *;			$LPLIB/process/dimp < $TMPFILE			}	case *202*;	$LPLIB/process/d202 < $TMPFILE	case *lino*;	switch ($FILETYPE(5)) {			case *Latin1* *post*;	$LPLIB/process/dpost < $TMPFILE|$LPLIB/process/daps			case *;		echo $FILETYPE(2) -T$FILETYPE(5) output is improper for $LPDEST >[1=2]			}	case *mhcc*;	$LPLIB/process/dpost < $TMPFILE | $LPLIB/process/mhcc	case *;		echo $FILETYPE(2) -T$FILETYPE(5) output is improper for $LPDEST >[1=2]	}case special;	switch ($FILETYPE(4)) {	case '#b';	$LPLIB/process/p9bitpost < $TMPFILE	case *;		echo $FILETYPE file is improper for $LPDEST >[1=2]	}case plan;	# type is really 'plan 9 bitmap'	switch ($LPCLASS) {	case *post*;	$LPLIB/process/p9bitpost < $TMPFILE	}case bitmap;	switch ($LPCLASS) {	case *imagen*;	$LPLIB/process/bimp < $TMPFILE	case *lino*;	$LPLIB/process/bpost < $TMPFILE | $LPLIB/process/daps	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 *lino*;	$LPLIB/process/dvipost -Tlino $TMPFILE | $LPLIB/process/daps	case *post*;	$LPLIB/process/dvipost $TMPFILE	case *202*;	dvit -T202 $TMPFILE | $LPLIB/process/d202	case *imagen*;	$LPLIB/process/dviimp < $TMPFILE	case *mhcc*;	$LPLIB/process/dvipost $TMPFILE | $LPLIB/process/mhcc	case *;		echo $FILETYPE(2) file is improper for $LPDEST >[1=2]	}case postscript;	switch ($LPCLASS) {	case *post*;		$LPLIB/process/post < $TMPFILE	case *aps* *lino*;	$LPLIB/process/daps < $TMPFILE	case *mhcc*;		$LPLIB/process/mhcc < $TMPFILE	case *;			echo $FILETYPE(2) file is improper for $LPDEST >[1=2]	}case imagen;	switch ($LPCLASS) {	case *imagen*;	cat < $TMPFILE	case *;		echo $FILETYPE(2) file is improper for $LPDEST >[1=2]	}case daisy;	switch ($LPDEST) {	case *imagen*;	$LPLIB/process/daisimag < $TMPFILE	case *;		echo $FILETYPE(2) file is improper for $LPDEST >[1=2]	}case English short extended ascii assembler c latin rc sh as;	switch ($LPCLASS) {	case *imagen*;	$LPLIB/process/daisimag < $TMPFILE	case *post*;	$LPLIB/process/ppost < $TMPFILE	case *canon*;	$LPLIB/process/can $* < $TMPFILE	case *lino* *mhcc*; echo you want to send text to $LPDEST^'?' >[1=2]	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]}rv=$statusrm -f $TMPFILEexit $status