The Subject in an email can be split on two lines.
In such case, the second line (starting with a space) can be
joined to the first one.

It is handled differently when parsing stdin or a file.

Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
---
 scripts/checkpatches.sh | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/scripts/checkpatches.sh b/scripts/checkpatches.sh
index 619ac21..2f67d24 100755
--- a/scripts/checkpatches.sh
+++ b/scripts/checkpatches.sh
@@ -101,13 +101,16 @@ check () { # <patch> <commit> <title>

 if [ -n "$1" ] ; then
        for patch in "$@" ; do
-               subject=$(sed -n 's,^Subject: ,,p' "$patch")
+               # Subject can be on 2 lines
+               subject=$(sed '/^Subject: */!d;s///;N;s,\n[[:space:]]\+, 
,;s,\n.*,,;q' "$patch")
                check "$patch" '' "$subject"
        done
 elif [ ! -t 0 ] ; then # stdin
        subject=$(while read header value ; do
                if [ "$header" = 'Subject:' ] ; then
-                       echo $value
+                       IFS= read next
+                       continuation=$(echo "$next" | sed -n 's,^[[:space:]]\+, 
,p')
+                       echo $value$continuation
                        break
                fi
        done)
-- 
2.7.0

Reply via email to