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