[comp.sources.d] Printing through UUCP

friedl@mtndew.Tustin.CA.US (Stephen J. Friedl) (12/24/90)

Greg Woods posts the source to an lp interface script to let one printer
server multiple machines, but a bug caught my eye.  This appears in all the
lp interfaces I've seen, so this is by no means picking on Greg.

	PRINTER=`basename $0`
	TITLE=$3
	COPIES=$4
	OPTIONS=$5
	shift; shift; shift; shift; shift

	files="$*"

	for F in $files
	do
		FILES="$FILES !$F"
	done

The problem with this is that filenames with spaces in them can't get
printed because the assignment of "$*" to "$files" causes the notion of
the separate args to be lost.  The right way to do this is:

	PRINTER=`basename $0`
	TITLE=$3
	COPIES=$4
	OPTIONS=$5
	shift 5;

	for F in "$@"			# <-- this expands things right
	do
		FILES="$FILES !$F"
	done

Now you can print a file with spaces in them.

     Steve

-- 
Stephen J. Friedl, KA8CMY  /  3B2-kind-of-guy  /  Tustin, CA / 3B2-kind-of-guy
+1 714 544 6561  / friedl@mtndew.Tustin.CA.US  / {uunet,attmail}!mtndew!friedl

Why not add Hollerith fields to printf()?