Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 May 2000 15:39:10 -0400 (EDT)
From:      Charlie Root <root@jestocost.cosc.morrisville.edu>
To:        freebsd-hackers@freebsd.org
Subject:   smb printer trouble
Message-ID:  <200005161939.PAA02325@jestocost.cosc.morrisville.edu>

next in thread | raw e-mail | index | archive | help
I wrote a simple filter to print to an nt print queue through
the smbclinet. It tests to see if the file is postscript or
text, and if it is text it sends a control code to tell the 
printer to do the lf->crlf conversion. 

My problem is that the '\' escapes in the first line get clobbered.
for example, if I print this printcap:

**** begin printcap ****
lp:\
	:sh:\
	:lp=/dev/lpt0:\
	:sd=/var/spool/output/lpd/lp:\
	:lf=/var/log/lpd/lpd.log:

lplaser:\
	:sh:\
	:lp=/dev/null:\
	:if=/root/filters/smb-filter:\
	:sd=/var/spool/output/lpd/lplaser:\
	:lf=/var/log/lpd/lpd.log:
**** end printap ****

the entire entry for "lp" will be on one line, but the "lplaser"
entry will print out like it is supposed to.

I know why it is doing it, however I don't know how to fix it. Any
help will be appreciated (script is below). 

Thanks,
James

**** begin smb-filter ****
#!/bin/sh
####
# Input filter to print to a NT print queue, requires smbclient.
#
# Author: James Halstead, e-mail: JAHalstead@hotmail.com
#
# Read stdin to a temp, make sure to determine the print type, then use
#   smbclient to print to the nt queue.
####

SERVER=<SERVER NAME>
PRINTER=cw<PRINTER NAME>
TEMP=/tmp/smbprint

TEMP=`mktemp -q $TEMP.XXXXXX`

read firstline
first_two=`expr "$firstline" : '\(..\)'`

if [ "$first_two" != "%!" ]; then
  printf "\033&k3G" > $TEMP 
fi

#lets see, copy the firstline to temp, cat the rest to the temp, 
# make one ugly command to print the file to the smb printer then
# rm the temp file.

echo "$firstline" >> $TEMP && cat >> $TEMP &&\
/usr/local/bin/smbclient \\\\$SERVER\\$PRINTER -UGUEST -N\
 -c"print $TEMP" &&\
rm -f $TEMP >/dev/null && exit 0

exit 1
**** end smb-filter ****


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200005161939.PAA02325>