Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 May 2000 09:40:42 +0100
From:      "Koster, K.J." <K.J.Koster@kpn.com>
To:        'Charlie Root' <root@jestocost.cosc.morrisville.edu>
Cc:        'FreeBSD Hackers mailing list' <freebsd-hackers@freebsd.org>
Subject:   RE: smb printer trouble
Message-ID:  <59063B5B4D98D311BC0D0001FA7E4522026D753C@l04.research.kpn.com>

next in thread | raw e-mail | index | archive | help
Perhaps there are some invisible spaces after some of the backslashes?

    Kees Jan

==============================================
 You are only young once,
      but you can stay immature all your life


> -----Original Message-----
> From: Charlie Root [mailto:root@jestocost.cosc.morrisville.edu]
> Sent: dinsdag 16 mei 2000 20:39
> To: freebsd-hackers@FreeBSD.ORG
> Subject: smb printer trouble
> 
> 
> 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
> 


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?59063B5B4D98D311BC0D0001FA7E4522026D753C>