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

[GUILT] [PATCH] get rid of "cat: write error: Broken pipe" error message

From
Per Cederqvist <cederp@opera.com>
Date
Mar 13, 2012, 13:39 UTC
Message-ID
<4F5F4E20.6000706@opera.com>

In some circumstances (like running guilt in a M-x shell buffer in Emacs) cat may give the above error message when the reader of the output from cat exits without reading all input from cat. (In other circumstances cat is just silently terminated with SIGPIPE.)

Get rid of the error by removing the useless use of cat in do_get_header and do_get_full_header.

Signed-off-by: Per Cederqvist <cederp@opera.com>
---
  guilt |    8 ++++----
  1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/guilt b/guilt
index d1e17d4..7f6806e 100755
--- a/guilt
+++ b/guilt
@@ -359,7 +359,7 @@ do_get_header()
  	# 4th line skips any empty lines thereafter.
  	# 5th line turns off empty line skip upon seeing a non-empty line.
  	# 6th line terminates execution when we encounter the diff
-	cat "$1" | awk '
+	awk '
  BEGIN{body=0; subj=0}
  /^Subject:/ && (body == 0 && subj == 0){subj=1; print substr($0, 10) 
"\n"; next}
  /^(Subject:|From:|Author:|Date:|commit)/ && (body == 0){next}
@@ -369,7 +369,7 @@ BEGIN{body=0; subj=0}
  /^(diff |---$|--- )/{exit}
  {print $0}
  END{}
-'
+' < "$1"
  }

  # usage: do_get_full_header patchfile
@@ -377,12 +377,12 @@ do_get_full_header()
  {
  	# 2nd line checks for the begining of a patch
  	# 3rd line outputs the line if it didn't get pruned by the above rules
-	cat "$1" | awk '
+	awk '
  BEGIN{}
  /^(diff |---$|--- )/{exit}
  {print $0}
  END{}
-'
+' < "$1"
  }

  # usage: assert_head_check
-- 
1.7.9
Next: Jeff Sipek
Message 1 of 3 in “get rid of "cat: write error: Broken pipe" error message”
  1. Per CederqvistMar 13, 2012
  2. Jeff SipekMar 13, 2012
  3. Jeff SipekMar 13, 2012

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.