From 073efc43a68cbd6852939ccaf644dbb380cdc143 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 25 Jun 2016 21:29:43 +0000 Subject: view: safer and optional quoting for --in-reply-to arg Angle brackets around the --in-reply-to= arg for git send-email has been optional since git v1.5.3.2, so strip them and make the command-line argument easier-to-type. --- lib/PublicInbox/View.pm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 30d8e3e8..38e35bf3 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -455,6 +455,15 @@ sub _parent_headers { $rv; } +sub squote_maybe ($) { + my ($val) = @_; + if ($val =~ m{([^\w@\./,\%\+\-])}) { + $val =~ s/(['!])/'\\$1'/g; # '!' for csh + return "'$val'"; + } + $val; +} + sub mailto_arg_link { my ($hdr) = @_; my %cc; # everyone else @@ -475,7 +484,7 @@ sub mailto_arg_link { my $subj = $hdr->header('Subject') || ''; $subj = "Re: $subj" unless $subj =~ /\bRe:/i; my $mid = $hdr->header_raw('Message-ID'); - push @arg, "--in-reply-to='" . ascii_html($mid) . "'"; + push @arg, '--in-reply-to='.ascii_html(squote_maybe(mid_clean($mid))); my $irt = uri_escape_utf8($mid); delete $cc{$to}; push @arg, '--to=' . ascii_html($to); -- cgit v1.2.3-24-ge0c7