I know it is happening because of the ``read firstline'' command. It is
using the standard shell way
of continuing a line using the '\' char and applying that to the input. That
explains why only the first
line is effected.

Actually, if there is a way that I can read only the first two chars from
the standard input that would
solve the problem for nearly all the cases. I only need the first two chars
to do my test, then I can leave the rest up to cat. It would be even better
if sombody could tell me a way to push chars back on to the stdin stream
that way I can completly avoid making a temporary file.

Thanks,
James ([EMAIL PROTECTED])

----- Original Message -----
From: "Koster, K.J." <[EMAIL PROTECTED]>
To: "'Charlie Root'" <[EMAIL PROTECTED]>
Cc: "'FreeBSD Hackers mailing list'" <[EMAIL PROTECTED]>
Sent: Wednesday, May 17, 2000 4:40 AM
Subject: RE: smb printer trouble


> 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:[EMAIL PROTECTED]]
> > Sent: dinsdag 16 mei 2000 20:39
> > To: [EMAIL PROTECTED]
> > Subject: smb printer trouble
> >
> > **** begin smb-filter ****
> > #!/bin/sh
> > ####
> > # Input filter to print to a NT print queue, requires smbclient.
> > #
> > # Author: James Halstead, e-mail: [EMAIL PROTECTED]
> > #
> > # 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 [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to