From: Nguyen Thai Ngoc Duy Date: Thu, 07 May 2009 01:49:08 GMT Subject: Re: [PATCH 4/4] t4200: avoid passing a non-newline terminated file to sed Message-ID: In-Reply-To: <7vhbzyukyi.fsf@alter.siamese.dyndns.org> 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/  .*//") && > I would replace it again, according to e85fe4d8. -- Duy