On Mon, 23 Nov 2009, Junio C Hamano wrote: > Brian Gernhardt <brian@xxxxxxxxxxxxxxxxxxxxx> writes: > > > Recognizing \r in a regex is something GNU sed will do, but other sed > > implementation's won't. (Found with BSD sed on OS X.) So use a > > literal carriage return instead. [...] > > diff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh > > index 32b841d..35dda58 100644 > > --- a/t/gitweb-lib.sh > > +++ b/t/gitweb-lib.sh > > @@ -52,8 +52,8 @@ gitweb_run () { > > rm -f gitweb.log && > > perl -- "$SCRIPT_NAME" \ > > >gitweb.output 2>gitweb.log && > > - sed -e '/^\r$/q' <gitweb.output >gitweb.headers && > > - sed -e '1,/^\r$/d' <gitweb.output >gitweb.body && > > + sed -e '/^ > > $/q' <gitweb.output >gitweb.headers && > > + sed -e '1,/^ > > $/d' <gitweb.output >gitweb.body && > > if grep '^[[]' gitweb.log >/dev/null 2>&1; then false; else > > true; fi > > # gitweb.log is left for debugging If we were to do it this way, I would prefer to set and then use 'cr' or 'crlf' variable (in sed expression). > > I'd actually prefer not having to deal with this issue. How about doing > something like this instead? > > t/gitweb-lib.sh | 14 ++++++++++++-- > 1 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh > index 32b841d..3121950 100644 > --- a/t/gitweb-lib.sh > +++ b/t/gitweb-lib.sh > @@ -52,8 +52,18 @@ gitweb_run () { > rm -f gitweb.log && > perl -- "$SCRIPT_NAME" \ > >gitweb.output 2>gitweb.log && > - sed -e '/^\r$/q' <gitweb.output >gitweb.headers && > - sed -e '1,/^\r$/d' <gitweb.output >gitweb.body && > + perl -w -e ' "perl", or "$PERL", or "$PERL_PATH"? > + open O, ">gitweb.headers"; Well, modern Perl would use here + open my $fh, ">", "gitweb.headers"; But it is not that important here. > + while (<>) { > + print O; > + last if (/^\r$/ || /^$/); > + } > + open O, ">gitweb.body"; > + while (<>) { > + print O; > + } > + close O; > + ' gitweb.output && > if grep '^[[]' gitweb.log >/dev/null 2>&1; then false; else true; fi > > # gitweb.log is left for debugging > This is a good solution. We test Perl script anyway (so Perl is required for running this test), and this way we can do this portably and in one pass (one fork). -- Jakub Narebski Poland -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html