From: Junio C Hamano Date: Thu, 07 May 2009 02:29:36 GMT Subject: Re: [PATCH 4/4] t4200: avoid passing a non-newline terminated file to sed Message-ID: <7v4ovxtzlb.fsf@alter.siamese.dyndns.org> In-Reply-To: Brandon Casey writes: > Nguyen Thai Ngoc Duy wrote: >> On Thu, May 7, 2009 at 4:48 AM, Junio C Hamano wrote: >>> Brandon Casey writes: >>> >>>> Some versions of sed exit non-zero if the file they are supplied is not >>>> newline terminated. Solaris's /usr/xpg4/bin/sed is one such sed. So >>>> rework this test to avoid doing so. >>> I think up to your 3/4 is reasonable, but this is not enough for POSIX >>> conformance (it is Ok if it is just aiming to fix "Solaris quirk"). POSIX >>> sed is only required to work on text files, but .git/MERGE_RR is not a >>> text file (it is a sequence of NUL terminated records). >>> >>> I think something like this may work better. Can somebody test? >>> >>>> - sha1=$(sed -e "s/ .*//" .git/MERGE_RR) && >>>> + sha1=$({ cat .git/MERGE_RR; echo; } | sed -e "s/ .*//") && >>> sha1=$(tr "\\000" "\\012" <./git/MERGE_RR | sed -e "s/ .*//") && > > The line referenced above will actually be deleted unless someone chimes > in and says it is needed. I've already removed it; thanks.