From d61c88f5753104a8a84fdf3869492168c143a7a9 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Thu, 13 Feb 2020 19:29:01 -0800 Subject: [PATCH] support -done being set in a psuedoheader --- debian/changelog | 6 ++++++ scripts/process | 4 ++-- t/06_mail_handling.t | 18 +++++++++++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index ec4c4c9..263c968 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +debbugs (2.6.1) unstable; urgency=medium + + * Add support for a Done: psuedoheader (closes: #950133) + + -- Don Armstrong Fri, 09 Mar 2018 11:17:10 -0800 + debbugs (2.6.0) unstable; urgency=medium [ Don Armstrong ] diff --git a/scripts/process b/scripts/process index 91b6861..ecc0071 100755 --- a/scripts/process +++ b/scripts/process @@ -240,7 +240,7 @@ for my $phline (@bodylines) push @control_bits,$fv; } else { # Don't lc owner or forwarded - $fv = lc $fv unless $fn =~ /^(?:owner|forwarded|usertags|version|source-version)$/; + $fv = lc $fv unless $fn =~ /^(?:owner|forwarded|usertags|version|source-version|done)$/; $pheader{$fn} = $fv; } print {$debugfh} ">$fn~$fv<\n"; @@ -389,7 +389,7 @@ if ($codeletter eq 'D' || $codeletter eq 'F') } $receivedat= "done\@$gEmailDomain"; $markaswhat= 'done'; - $set_done= $header{'from'}; + $set_done= $pheader{'done'} // $header{'from'}; if ( length( $gListDomain ) > 0 && length( $gDoneList ) > 0 ) { $generalcc= "$gDoneList\@$gListDomain"; push @generalcc, "$gDoneList\@$gListDomain"; diff --git a/t/06_mail_handling.t b/t/06_mail_handling.t index 0e42ed0..2f8f452 100644 --- a/t/06_mail_handling.t +++ b/t/06_mail_handling.t @@ -1,7 +1,7 @@ # -*- mode: cperl;-*- # $Id: 05_mail.t,v 1.1 2005/08/17 21:46:17 don Exp $ -use Test::More tests => 126; +use Test::More tests => 127; use warnings; use strict; @@ -113,6 +113,22 @@ my $status = read_bug(bug=>1); ok($status->{subject} eq 'new title','bug 1 retitled'); ok($status->{severity} eq 'wishlist','bug 1 wishlisted'); +# now check to see if we can close a bug using a psuedoheader done +send_message(to => '1-done@bugs.something', + headers => [To => 'control@bugs.something', + From => 'foo@bugs.something', + Subject => 'Munging a bug', + ], + body => <<'EOF') or fail 'message to control@bugs.something failed'; +Done: Me Developer + +I'm closing this bug for reasons +EOF + +$status = read_bug(bug=>1); +ok($status->{done} eq 'Me Developer '); + + # now we're going to go through and methododically test all of the control commands. my @control_commands = ( -- 2.39.2