henesyinit from p9fce6d0435 years agoHistory
92 lines · 3.1 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$pidfn 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)) {					# 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					} 	# for Linotronics compatibility, does not work outside Bell Labs		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]			} 	# for sending jobs to our Comp Center printers, does not work outside Bell Labs.	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 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 *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 *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 daisy;	switch ($LPDEST) {	case *;		echo $FILETYPE(2) file is improper for $LPDEST >[1=2]	}case English short extended alef [Aa]scii assembler c latin rc sh as;	switch ($LPCLASS) {	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