]> git.donarmstrong.com Git - debbugs.git/commitdiff
Do not escape From and use .eml when returning a single message
authorDon Armstrong <don@donarmstrong.com>
Sun, 10 Apr 2022 13:35:19 +0000 (06:35 -0700)
committerDon Armstrong <don@donarmstrong.com>
Sun, 10 Apr 2022 13:35:19 +0000 (06:35 -0700)
 - Address issue with MUAs which don't look at the mime type and instead assume
   mime based on extension, like thunderbird. Closes #1009181

cgi/bugreport.cgi
debian/changelog

index 9969abbef09614263ed58c1aed6290dd9653b894..87f688e368fbf167b784ccedba4e1cba2c8bb319 100755 (executable)
@@ -250,7 +250,8 @@ my @log;
 if ( $mbox ) {
      binmode(STDOUT,":raw");
      my $date = strftime "%a %b %d %T %Y", localtime;
 if ( $mbox ) {
      binmode(STDOUT,":raw");
      my $date = strftime "%a %b %d %T %Y", localtime;
-     if (@records > 1) {
+     my $multiple_messages = @records > 1;
+     if ($multiple_messages) {
         print $q->header(-type => "application/mbox",
                          -cache_control => 'public, max-age=600',
                          -etag => $etag,
         print $q->header(-type => "application/mbox",
                          -cache_control => 'public, max-age=600',
                          -etag => $etag,
@@ -262,10 +263,10 @@ if ( $mbox ) {
          print $q->header(-type => "message/rfc822",
                           -cache_control => 'public, max-age=86400',
                           -etag => $etag,
          print $q->header(-type => "message/rfc822",
                           -cache_control => 'public, max-age=86400',
                           -etag => $etag,
-                          content_disposition => qq(attachment; filename="bug_${ref}_message_${msg_num}.mbox"),
+                          content_disposition => qq(attachment; filename="bug_${ref}_message_${msg_num}.eml"),
                          );
      }
                          );
      }
-     if ($mbox_status_message and @records > 1) {
+     if ($mbox_status_message and $multiple_messages) {
          my $status_message='';
          my @status_fields = (retitle   => 'subject',
                               package   => 'package',
          my $status_message='';
          my @status_fields = (retitle   => 'subject',
                               package   => 'package',
@@ -309,7 +310,7 @@ END
          next if not $boring and not $record->{type} eq $wanted_type and not $record_wanted_anyway and @records > 1;
          $seen_message_ids{$msg_id} = 1 if defined $msg_id;
           # skip spam messages if we're outputting more than one message
          next if not $boring and not $record->{type} eq $wanted_type and not $record_wanted_anyway and @records > 1;
          $seen_message_ids{$msg_id} = 1 if defined $msg_id;
           # skip spam messages if we're outputting more than one message
-          next if @records > 1 and $bug->is_spam($msg_id);
+          next if $multiple_messages and $bug->is_spam($msg_id);
       my @lines;
       if ($record->{inner_file}) {
           push @lines, scalar $record->{fh}->getline;
       my @lines;
       if ($record->{inner_file}) {
           push @lines, scalar $record->{fh}->getline;
@@ -326,12 +327,13 @@ END
               unshift @lines, "From unknown $date";
        }
       print $lines[0]."\n";
               unshift @lines, "From unknown $date";
        }
       print $lines[0]."\n";
-         print map { s/^(>*From )/>$1/; $_."\n" } @lines[ 1 .. $#lines ];
+         print map { s/^(>*From )/>$1/ if $multiple_messages;
+                      $_."\n" } @lines[ 1 .. $#lines ];
       if ($record->{inner_file}) {
           my $fh = $record->{fh};
           local $/;
           while (<$fh>) {
       if ($record->{inner_file}) {
           my $fh = $record->{fh};
           local $/;
           while (<$fh>) {
-              s/^(>*From )/>$1/gm;
+              s/^(>*From )/>$1/gm if $multiple_messages;
               print $_;
           }
       }
               print $_;
           }
       }
index ef98f3cfbeaf9e8bb64bbb1aa0a2b506ab5165fa..60dfa6c721688d6b8c7226eb9a7c506008f773b9 100644 (file)
@@ -4,6 +4,8 @@ debbugs (3.0.0~alpha.1) unstable; urgency=medium
     faster.
   * Add support for a Done: psuedoheader (closes: #950133)
   * Fix unescaped From (closes: #983847)
     faster.
   * Add support for a Done: psuedoheader (closes: #950133)
   * Fix unescaped From (closes: #983847)
+  * Actually return message/rfc822 when there is a single message instead
+    of mbox (closes: #1009181)
 
  -- Don Armstrong <don@debian.org>  Fri, 09 Mar 2018 11:17:10 -0800
 
 
  -- Don Armstrong <don@debian.org>  Fri, 09 Mar 2018 11:17:10 -0800