git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] t/gitweb-lib: Split HTTP response with non-GNU sed

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 23, 2009, 18:27 UTC
Message-ID
<7vocmtyu3v.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1258997622-62403-1-git-send-email-brian@gernhardtsoftware.com>
Brian Gernhardt <brian@gernhardtsoftware.com> 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.

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 '
+		open O, ">gitweb.headers";
+		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
Previous: Brian GernhardtNext: Brian Gernhardt
Message 2 of 4 in “t/gitweb-lib: Split HTTP response with non-GNU sed”
  1. t/gitweb-lib: Split HTTP response with non-GNU sedBrian Gernhardt, Nov 23, 2009
  2. Junio C HamanoNov 23, 2009
  3. Brian GernhardtNov 23, 2009
  4. Jakub NarebskiNov 24, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.