]> Sergey Matveev's repositories - public-inbox.git/commitdiff
git-send-email-reply: Append subject
authorStavros Ntentos <stdedos@gmail.com>
Fri, 26 Mar 2021 16:31:46 +0000 (18:31 +0200)
committerEric Wong <e@80x24.org>
Fri, 26 Mar 2021 21:20:38 +0000 (21:20 +0000)
I keep copy-pasting the addresses provided,
I keep writing my plaintext reply in a file,
and I keep forgetting to add a subject
(because I am "just" writing a plaintext file)

Teach `git-send-email-reply` to append a `--subject` line.

[ew: avoid URI-encoded subject on command-line, adjust t/reply.t]

Signed-off-by: Stavros Ntentos <133706+stdedos@users.noreply.github.com>
lib/PublicInbox/Reply.pm
t/reply.t

index 8226fdc3c755e9cecb7cc66ee2fb4eae1fc23026..2a1066d2b47f89b37f14a6b2784c8c8de26c6cbb 100644 (file)
@@ -74,6 +74,7 @@ sub mailto_arg_link {
        my $obfs = $ibx->{obfuscate};
        my $subj = $hdr->header('Subject') || '';
        $subj = "Re: $subj" unless $subj =~ /\bRe:/i;
+       my $subj_raw = $subj;
        my $mid = $hdr->header_raw('Message-ID');
        push @arg, '--in-reply-to='.squote_maybe(mid_clean($mid));
        my $irt = mid_href($mid);
@@ -103,6 +104,8 @@ sub mailto_arg_link {
                }
        }
 
+       push @arg, "--subject=".squote_maybe($subj_raw);
+
        # I'm not sure if address obfuscation and mailto: links can
        # be made compatible; and address obfuscation is misguided,
        # anyways.
index 0b8e1f38f720b6c2e9d631df4c71878d80f2acbf..1e89973e0730c92d346b51f2c66cfda1c4245f32 100644 (file)
--- a/t/reply.t
+++ b/t/reply.t
@@ -36,7 +36,8 @@ my $exp = [
     '--in-reply-to=blah@example.com',
     '--to=from@example.com',
     '--cc=cc@example.com',
-    '--cc=to@example.com'
+    '--cc=to@example.com',
+    "--subject='Re: hihi'"
 ];
 
 is_deeply($arg, $exp, 'default reply is to :all');
@@ -44,7 +45,8 @@ $ibx->{replyto} = ':all';
 ($arg, $link) = PublicInbox::Reply::mailto_arg_link($ibx, $hdr);
 is_deeply($arg, $exp, '":all" also works');
 
-$exp = [ '--in-reply-to=blah@example.com', '--to=primary@example.com' ];
+$exp = [ '--in-reply-to=blah@example.com', '--to=primary@example.com',
+       "--subject='Re: hihi'" ];
 $ibx->{replyto} = ':list';
 ($arg, $link) = PublicInbox::Reply::mailto_arg_link($ibx, $hdr);
 is_deeply($arg, $exp, '":list" works for centralized lists');
@@ -53,7 +55,8 @@ $exp = [
         '--in-reply-to=blah@example.com',
         '--to=primary@example.com',
         '--cc=cc@example.com',
-        '--cc=to@example.com'
+        '--cc=to@example.com',
+       "--subject='Re: hihi'"
 ];
 $ibx->{replyto} = ':list,Cc,To';
 ($arg, $link) = PublicInbox::Reply::mailto_arg_link($ibx, $hdr);
@@ -61,7 +64,9 @@ is_deeply($arg, $exp, '":list,Cc,To" works for kinda centralized lists');
 
 $ibx->{replyto} = 'new@example.com';
 ($arg, $link) = PublicInbox::Reply::mailto_arg_link($ibx, $hdr);
-$exp = [ '--in-reply-to=blah@example.com', '--to=new@example.com' ];
+$exp = [ '--in-reply-to=blah@example.com', '--to=new@example.com',
+       "--subject='Re: hihi'"
+];
 is_deeply($arg, $exp, 'explicit address works, too');
 
 $ibx->{replyto} = ':all';
@@ -71,7 +76,8 @@ $exp = [
     '--in-reply-to=blah@example.com',
     '--to=from@example$(echo .)com',
     '--cc=cc@example$(echo .)com',
-    '--cc=to@example$(echo .)com'
+    '--cc=to@example$(echo .)com',
+    "--subject='Re: hihi'"
 ];
 is_deeply($arg, $exp, 'address obfuscation works');
 is($link, '', 'no mailto: link given');