:
#	@(#) f450 23.2 91/08/29 
#
#	Copyright (C) 1988-1991 The Santa Cruz Operation, Inc.
#		All Rights Reserved.
#	The information in this file is provided for the exclusive use of
#	the licensees of The Santa Cruz Operation, Inc.  Such users have the
#	right to use, modify, and incorporate this code into other products
#	for purposes authorized by the license agreement provided they include
#	this notice and the associated copyright notice with any such product.
#	The information in this file is provided "AS IS" without warranty.
#
#ident	"@(#)lp:model/f450	1.3.1.2"
# lp interface for DASI 450 terminal
#
#	All output is passed through the /usr/bin/450 filter
#  or the /usr/lib/etx filter (if processed already by 450 driving
#  table or filter)
#  If the filter is not executable, then this interface will disable
#  the lp printer which it was called to service.
#

x="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

#Set up some global variables.
: ${SPOOLDIR:=/usr/spool/lp}
: ${LOCALPATH:=${SPOOLDIR}/bin}

#Set up the default filter.
if [  -x "${LOCALPATH}/lp.cat" ]
then
	LPCAT="${LOCALPATH}/lp.cat 0"
else
	LPCAT="cat"
fi

#If we are not using a filter, use the default one.
if [ -z "${FILTER}" ]
then
	FILTER="${LPCAT}"
fi

if [ -x "${LOCALPATH}/drain.output" ]
then
	DRAIN="${LOCALPATH}/drain.output 1"
else
	DRAIN=
fi

if [ ! -x /usr/bin/450 ]
then
	disable -r"can't execute /usr/bin/450 filter" `basename $0`
	exit 1
fi
optf=""
optp=""
for i in $5
do
	case "$i" in
	-12 | 12) # use 12 pitch
		optp=-12
		;;
	-e | e) # use etx filter.
		if [ ! -x /usr/lib/etx ]
		then
		   disable -r"can't execute /usr/lib/etx filter" `basename $0`
		   exit 1
		else
		   optf=-e
		fi
	esac
done
if [ X$optf = X-e ]
then
	filter="/usr/lib/etx"
else
	filter="/usr/bin/450 -f"
fi
(
if [ X$optp = X-12 ]
then
	echo "\00334\033\037\013"
else
	echo "\00334\033\037\015"
fi
tabs -T450
) | /usr/lib/etx
(
echo "\014\c"
echo "$x\n$x\n$x\n$x\n"
banner "$2"
echo "\n"
user=`grep "^$2:" /etc/passwd | line | cut -d: -f5`
if [ -n "$user" ]
then
	echo "User: $user\n"
else
	echo "\n"
fi
echo "Request id: $1    Printer: `basename $0`\n"
date
echo "\n"
if [ -n "$3" ]
then
	banner $3
fi
echo "\014\c"
) | /usr/bin/450 -f
errcode=$?
if [ $errcode -ne 0 ]
then
	disable -r"error code $errcode from etx or 450 filter" `basename $0`
fi
(
copies=$4
shift; shift; shift; shift; shift
files="$*"
i=1
while [ $i -le $copies ]
do
	for file in $files
	do
		0<${file} eval ${FILTER} 2>&1
		echo "\014\c"
	done
	i=`expr $i + 1`
done
) | $filter
errcode=$?
if [ $errcode -ne 0 ]
then
	disable -r"error code $errcode from etx or 450 filter" `basename $0`
fi
(
echo "$x\n$x\n$x\n$x\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
echo "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n$x\n$x\n$x\n$x"
echo "$x\n$x\n$x\n$x\n"
) | /usr/bin/450 -f
errcode=$?
if [ $errcode -ne 0 ]
then
	disable -r"error code $errcode from etx or 450 filter" `basename $0`
fi

#Draining characters might be necessary.
${DRAIN}

exit 0
