Skip to contentSkip to conversation

get rid of "cat: write error: Broken pipe" error message

PATCH In review Per Cederqvist 2 participants 3 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 get rid of "cat: write error: Broken pipe" error message

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.

---
 guilt |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
guilt +1 -1
index d1e17d4..7f6806e 100755
@@ -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

Signature · 1 line
1.7.9
#1 lore raw

Looks good!

Thanks,

Jeff.

Quoted 54 lines · Per Cederqvist

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.

---
 guilt |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
guilt +1 -1
index d1e17d4..7f6806e 100755
@@ -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}

guilt +3 -3
@@ -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
Signature · 1 line
1.7.9
Signature · 1 line
Si hoc legere scis nimium eruditionis habes.
#2 lore raw
In reply to Per Cederqvist
Quoted 7 lines · Per Cederqvist

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.

FWIW, your patch got mangled pretty badly. I fixed it up and applied it.

Thanks,

Jeff.

Quoted 46 lines
---
 guilt |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
guilt +1 -1
index d1e17d4..7f6806e 100755
@@ -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}

guilt +3 -3
@@ -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
Signature · 1 line
1.7.9
Signature · 3 lines
The obvious mathematical breakthrough would be development of an easy way to
factor large prime numbers.
		- Bill Gates, The Road Ahead, pg. 265