Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Jul 2010 13:42:12 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        Alex Kozlov <spam@rm-rf.kiev.ua>
Cc:        svn-src-head@freebsd.org, Gabor Kovesdan <gabor@FreeBSD.org>
Subject:   Re: svn commit: r210254 - in head/etc: defaults periodic/security
Message-ID:  <20100721114212.GA30431@stack.nl>
In-Reply-To: <20100720170333.GA51595@ravenloft.kiev.ua>
References:  <20100720170333.GA51595@ravenloft.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
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



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