This should make things a little more robust in terms of user input; before, even the program got it wrong by outputting a line with only "GIT:", which was left in place as a header, because there would be no following space character. Also, I cleaned up get_patch_subject(). Signed-off-by: Michael Witten <mfwitten@xxxxxxxxx> --- git-send-email.perl | 23 ++++++++++++----------- 1 files changed, 12 insertions(+), 11 deletions(-) diff --git a/git-send-email.perl b/git-send-email.perl index 63d6063..098c620 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -505,15 +505,16 @@ if (@files) { } sub get_patch_subject($) { - my $fn = shift; - open (my $fh, '<', $fn); - while (my $line = <$fh>) { - next unless ($line =~ /^Subject: (.*)$/); - close $fh; - return "GIT: $1\n"; + + my $patch = shift; + open (my $fh, '<', $patch); + + while (<$fh>) { + next unless (/^Subject: (.*)$/); + return $1; } - close $fh; - die "No subject line in $fn ?"; + + die "'Subject:' line expected in '$patch'"; } if ($compose) { @@ -532,7 +533,7 @@ if ($compose) { print C <<EOT; From $tpl_sender # This line is ignored. -GIT: Lines beginning in "GIT: " will be removed. +GIT: Lines beginning in "GIT:" will be removed. GIT: Consider including an overall diffstat or table of contents GIT: for the patch you are writing. GIT: @@ -543,7 +544,7 @@ In-Reply-To: $tpl_reply_to EOT for my $f (@files) { - print C get_patch_subject($f); + print C "GIT: ", get_patch_subject($f), "\n"; } close(C); @@ -565,7 +566,7 @@ EOT my $in_body = 0; my $summary_empty = 1; while(<C>) { - next if m/^GIT: /; + next if m/^GIT:/; if ($in_body) { $summary_empty = 0 unless (/^\n$/); } elsif (/^\n$/) { -- 1.6.2.2.448.g61445.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html