On Tue, Jul 20, 2010 at 08:03:33PM +0300, Alex Kozlov wrote:
> On Tue, Jul 20, 2010 at 05:25:05PM +0300, Alex Kozlov wrote:
> > > > +                               echo ${name}: ${one}
> > > 
> > > This handles pathnames with spaces incorrectly. Consider reading lines
> > > with
> > >   IFS= read -r line
> > > This also collapses the nested case statements to one, for
> > > 'Information for'*, Mismatched*, '' and /*.
> > > 
> > > The variables in the echo commands should be quoted to avoid word
> > > splitting and pathname generation.
> > It's makes parser stateful and overly complex, I will think about most
> > simple way to do this. Fortunately, at the moment very few, if any, ports
> > have files with space in names.
> It's seems I was wrong, We have more that 10k files with spaces in ports.
> What do think about this solution?

> Index: etc/periodic/security/460.chkportsum
> @@ -26,8 +26,10 @@
>                       ;;
>                       Mismatched|'') ;;
>                       *)
> -                     if [ -n ${name} ]; then
> -                             echo ${name}: ${one}
> +                     if [ -n "${name}" ]; then
> +                             #handle filenames with spaces
> +                             file="${one} ${two} ${three}"
> +                             echo "${name}: ${file%% fails the original MD5 
> checksum}"
>                       fi
>                       ;;
>               esac

This works but collapses sequences of multiple spaces (or even tabs) to
a single space.

-- 
Jilles Tjoelker
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to