summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruen@suse.de>2007-10-29 19:38:24 +0000
committerAndreas Gruenbacher <agruen@suse.de>2007-10-29 19:38:24 +0000
commit3278efea39b8c208c6fb959c648d9627548aa6d6 (patch)
tree18ae06908f23beb8a06712d1ddad78beb05a632b
parent456c3cedca10fe75f822f9d287e5e4e08282efbb (diff)
downloadquilt-3278efea39b8c208c6fb959c648d9627548aa6d6.tar.gz
- quilt/mail.in: Ran into a bash ``Broken pipe'' problem in
quilt_mail_patch_filter() which I cannot explain or cleanly reproduce. Work around it by not using pipes and subshells as extensively here.
-rw-r--r--po/de.po16
-rw-r--r--po/fr.po16
-rw-r--r--po/ja.po16
-rw-r--r--po/quilt.pot16
-rw-r--r--quilt.changes8
-rw-r--r--quilt/mail.in66
6 files changed, 69 insertions, 69 deletions
diff --git a/po/de.po b/po/de.po
index 8cf0e5a..859c0c7 100644
--- a/po/de.po
+++ b/po/de.po
@@ -322,7 +322,7 @@ msgstr ""
"Kann kein Diff mit -p$opt_strip_level erzeugen, bitte -p0 oder -p1 verwenden."
"\\n"
-#: quilt/diff.in:266 quilt/files.in:105 quilt/mail.in:391
+#: quilt/diff.in:266 quilt/files.in:105 quilt/mail.in:373
msgid "Patch %s not applied before patch %s\\n"
msgstr "Patch %s ist nicht vor Patch %s angewandt\\n"
@@ -814,33 +814,33 @@ msgstr ""
"--to, --cc, --bcc\n"
"\tFüre einen Empfänger an die To, Cc, or Bcc-Kopfzeilen an.\n"
-#: quilt/mail.in:257
+#: quilt/mail.in:268
msgid "Could not determine the envelope sender address. Please use --sender."
msgstr ""
"Konnte die Envelope-Adresse nicht feststellen. Bitte verwenden Sie --sender."
-#: quilt/mail.in:421
+#: quilt/mail.in:401
msgid "Unable to extract a subject header from %s\\n"
msgstr "Konnte keine Subject-Kopfzeile aus %s extrahieren\\n"
-#: quilt/mail.in:445
+#: quilt/mail.in:425
msgid "Patches %s have duplicate subject headers.\\n"
msgstr "Die Patches %s haben die selben Subject-Kopfzeilen.\\n"
-#: quilt/mail.in:454
+#: quilt/mail.in:434
#, fuzzy
msgid "File %s does not exist\\n"
msgstr "Patch %s existiert nicht\\n"
-#: quilt/mail.in:515
+#: quilt/mail.in:494
msgid "Introduction has no subject header (saved as %s)\\n"
msgstr "Die Einleitung hat keine Subject-Kopfzeile (gespeichert als %s)\\n"
-#: quilt/mail.in:518
+#: quilt/mail.in:497
msgid "Introduction has no subject header\\n"
msgstr "Die Einleitung hat keine Subject-Kopfzeile\\n"
-#: quilt/mail.in:614
+#: quilt/mail.in:594
msgid "Introduction saved as %s\\n"
msgstr "Einleitung gespeichert als %s\\n"
diff --git a/po/fr.po b/po/fr.po
index 469fb3c..6cae876 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -324,7 +324,7 @@ msgstr ""
"Impossible de crer des patches avec -p%s. Veuillez spcifier -p0 ou -p1 "
"la place\\n"
-#: quilt/diff.in:266 quilt/files.in:105 quilt/mail.in:391
+#: quilt/diff.in:266 quilt/files.in:105 quilt/mail.in:373
msgid "Patch %s not applied before patch %s\\n"
msgstr "Le patch %s n'est pas appliqu avant %s\\n."
@@ -811,33 +811,33 @@ msgstr ""
"\tAjoute un destinataire dans le champ d'en-tte A, Copie ou Copie\n"
"\tcache, respectivement.\n"
-#: quilt/mail.in:257
+#: quilt/mail.in:268
msgid "Could not determine the envelope sender address. Please use --sender."
msgstr "Impossible de dterminer l'adresse d'expditeur. Utilisez --sender."
-#: quilt/mail.in:421
+#: quilt/mail.in:401
msgid "Unable to extract a subject header from %s\\n"
msgstr "Impossible d'extraire une ligne de sujet de %s\\n"
-#: quilt/mail.in:445
+#: quilt/mail.in:425
msgid "Patches %s have duplicate subject headers.\\n"
msgstr "Les patches %s ont des sujets dupliqus.\\n"
-#: quilt/mail.in:454
+#: quilt/mail.in:434
#, fuzzy
msgid "File %s does not exist\\n"
msgstr "Le patch %s n'existe pas\\n"
-#: quilt/mail.in:515
+#: quilt/mail.in:494
msgid "Introduction has no subject header (saved as %s)\\n"
msgstr ""
"L'introduction n'a pas de ligne de sujet (sauvegard en tant que %s)\\n"
-#: quilt/mail.in:518
+#: quilt/mail.in:497
msgid "Introduction has no subject header\\n"
msgstr "L'introduction ne contient pas de ligne de sujet\\n"
-#: quilt/mail.in:614
+#: quilt/mail.in:594
msgid "Introduction saved as %s\\n"
msgstr "Introduction sauvegarde en tant que %s\\n"
diff --git a/po/ja.po b/po/ja.po
index e559ec4..210556a 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -312,7 +312,7 @@ msgstr ""
msgid "Cannot diff patches with -p%s, please specify -p0 or -p1 instead\\n"
msgstr "-p%s でパッチの差分はとれません。-p0か -p1を指定してください\\n"
-#: quilt/diff.in:266 quilt/files.in:105 quilt/mail.in:391
+#: quilt/diff.in:266 quilt/files.in:105 quilt/mail.in:373
msgid "Patch %s not applied before patch %s\\n"
msgstr "パッチ %s は、パッチ %s の前に適用されていません\\n"
@@ -780,34 +780,34 @@ msgstr ""
"--to, --cc, --bcc\n"
"\tToやCC、BCCへの受信者の追加。\n"
-#: quilt/mail.in:257
+#: quilt/mail.in:268
msgid "Could not determine the envelope sender address. Please use --sender."
msgstr ""
"エンベロープの送信者アドレスを確定できませんでした。--senderオプション\n"
"を使用してください。"
-#: quilt/mail.in:421
+#: quilt/mail.in:401
msgid "Unable to extract a subject header from %s\\n"
msgstr "%s から件名を取り出せません。\\n"
-#: quilt/mail.in:445
+#: quilt/mail.in:425
msgid "Patches %s have duplicate subject headers.\\n"
msgstr "パッチ %s の件名が重複しています。\\n"
-#: quilt/mail.in:454
+#: quilt/mail.in:434
#, fuzzy
msgid "File %s does not exist\\n"
msgstr "パッチ %s が存在しません\\n"
-#: quilt/mail.in:515
+#: quilt/mail.in:494
msgid "Introduction has no subject header (saved as %s)\\n"
msgstr "序文に件名がありません(%s として保存されました)\\n"
-#: quilt/mail.in:518
+#: quilt/mail.in:497
msgid "Introduction has no subject header\\n"
msgstr "序文に件名がありません\\n"
-#: quilt/mail.in:614
+#: quilt/mail.in:594
msgid "Introduction saved as %s\\n"
msgstr "序文は %s という名前で保存されました\\n"
diff --git a/po/quilt.pot b/po/quilt.pot
index 2276bca..727dc57 100644
--- a/po/quilt.pot
+++ b/po/quilt.pot
@@ -206,7 +206,7 @@ msgstr ""
msgid "Cannot diff patches with -p%s, please specify -p0 or -p1 instead\\n"
msgstr ""
-#: quilt/diff.in:266 quilt/files.in:105 quilt/mail.in:391
+#: quilt/diff.in:266 quilt/files.in:105 quilt/mail.in:373
msgid "Patch %s not applied before patch %s\\n"
msgstr ""
@@ -528,31 +528,31 @@ msgid ""
"\tAdd the appropriate headers to reply to the specified message.\n"
msgstr ""
-#: quilt/mail.in:257
+#: quilt/mail.in:268
msgid "Could not determine the envelope sender address. Please use --sender."
msgstr ""
-#: quilt/mail.in:421
+#: quilt/mail.in:401
msgid "Unable to extract a subject header from %s\\n"
msgstr ""
-#: quilt/mail.in:445
+#: quilt/mail.in:425
msgid "Patches %s have duplicate subject headers.\\n"
msgstr ""
-#: quilt/mail.in:454
+#: quilt/mail.in:434
msgid "File %s does not exist\\n"
msgstr ""
-#: quilt/mail.in:515
+#: quilt/mail.in:494
msgid "Introduction has no subject header (saved as %s)\\n"
msgstr ""
-#: quilt/mail.in:518
+#: quilt/mail.in:497
msgid "Introduction has no subject header\\n"
msgstr ""
-#: quilt/mail.in:614
+#: quilt/mail.in:594
msgid "Introduction saved as %s\\n"
msgstr ""
diff --git a/quilt.changes b/quilt.changes
index d733f57..923f465 100644
--- a/quilt.changes
+++ b/quilt.changes
@@ -1,4 +1,12 @@
-------------------------------------------------------------------
+Mon Oct 29 20:38:25 CET 2007 - agruen@suse.de
+
+- quilt/mail.in: Ran into a bash ``Broken pipe'' problem in
+ quilt_mail_patch_filter() which I cannot explain or cleanly
+ reproduce. Work around it by not using pipes and subshells as
+ extensively here.
+
+-------------------------------------------------------------------
Thu Oct 25 13:52:34 CEST 2007 - agruen@suse.de
- quilt/mail.in: Make sure that shell meta-characters like * in
diff --git a/quilt/mail.in b/quilt/mail.in
index 953253e..44c1638 100644
--- a/quilt/mail.in
+++ b/quilt/mail.in
@@ -288,60 +288,55 @@ fi
if [ "$(type -t quilt_mail_patch_filter 2> /dev/null)" != function ]
then
quilt_mail_patch_filter() {
- local patch=$(cat)
- local header=$(echo "$patch" | patch_header) body subject
+ local tmpdir=$(gen_tempfile -d)
+ cat > $tmpdir/patch
+ patch_header < $tmpdir/patch > $tmpdir/header
+ local subject
local -a mh
# Does this patch have a Subject: line?
- subject=$(echo "$header" | formail -x Subject:)
+ subject=$(formail -x Subject: < $tmpdir/header)
if [ -n "$subject" ]
then
- body=$(echo "$patch" | awk '
- in_body { print }
- /^$/ { in_body = 1 }
- ')
+ awk '
+ in_body { print }
+ /^$/ { in_body = 1 }
+ ' $tmpdir/patch > $tmpdir/body
fi
# Does this patch have DESC // subject // EDESC?
if [ -z "$subject" ]
then
- local desc=$(echo "$header" | awk '
+ local desc=$(awk '
/^EDESC\>/ { desc = 0 }
desc { print }
/^DESC\>/ { desc = 1 }
- ')
+ ' $tmpdir/header)
if [ -n "$desc" ]
then
subject=$(echo "$desc" | join_lines)
- body=$(echo "$patch" | awk '
- /^DESC/ { desc = 1 }
- ! desc { print }
- /^EDESC/ { desc = 0 }
- ')
+ awk '
+ /^DESC/ { desc = 1 }
+ ! desc { print }
+ /^EDESC/ { desc = 0 }
+ ' $tmpdir/patch > $tmpdir/body
fi
fi
# Is the first paragraph short enough to be used as the subject?
if [ -z "$subject" ]
then
- local para=$(echo "$header" | sed -e $'/^[ \t]*$/q')
+ local para=$(sed -e $'/^[ \t]*$/q' $tmpdir/header)
if [ ${#para} -gt 0 -a ${#para} -lt 150 ]
then
subject=$(echo "$para" | join_lines)
- body="$(echo "$patch" | awk '
- in_body { print }
- /^[ \t]*$/ { in_body = 1 }
- ')"
+ awk '
+ in_body { print }
+ /^[ \t]*$/ { in_body = 1 }
+ ' $tmpdir/patch > $tmpdir/body
fi
fi
- #if ${#mh[@]} -eq 0 ]
- #then
- # # Use the patch name as the subject.
- # mh=( "Replace-Subject: $1" )
- # body=$patch
- #fi
-
if [ -z "$subject" ]
then
return 1
@@ -349,20 +344,17 @@ then
subject=$(echo "$subject" \
| sed -e $'s/^\\(\\(\\[[^]]*\\]\\|fwd:\\|fw:\\|re:\\|aw:\\|tr:\\)[ \t]*\\)*//i')
- mh=( "Replace-Subject: $subject" )
+ echo "Replace-Subject: $subject"
# Add recipients defined by some recognized keywords
- local saved_IFS=$IFS; IFS=$'\n'
- mh=( "${mh[@]}"
- $(echo "$header" \
- | sed -n -e "/\<${LOGNAME:-$(whoami)}@/d" \
- -e 's/^\(To\|Cc\):/Recipient-\1:/ip' \
- -e 's/^\(Signed-off-by\|Acked-by\):/Recipient-Cc:/ip') )
- IFS=$saved_IFS
-
- printf "%s\n" "${mh[@]}"
+ sed -n -e "/\<${LOGNAME:-$(whoami)}@/d" \
+ -e 's/^\(To\|Cc\):/Recipient-\1:/ip' \
+ -e 's/^\(Signed-off-by\|Acked-by\):/Recipient-Cc:/ip' \
+ $tmpdir/header
+
echo
- echo "$body"
+ cat $tmpdir/body
+ rm -rf $tmpdir
}
fi