GNU bug report logs -
#63378
A single X-Debbugs-CC header must be used
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Thu, 11 May 2023 09:18:46 -0400
with message-id <87y1lvngzt.fsf <at> gmail.com>
and subject line Re: bug#63378: [PATCH] teams: Fix script to produce a single X-Debbugs-Cc header.
has caused the debbugs.gnu.org bug report #63378,
regarding A single X-Debbugs-CC header must be used
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
63378: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63378
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hi,
After some tests, it appears that a single X-Debbugs-CC header must be
used, otherwise the last one is the one that prevails. This matches my
reading of the 'process' script of the GNU Debbugs instance [0], and
thus must conform to the same email rules outlined in RFC5322 for the To
or CC fields (only one such header must be used); multiple values can be
separated by a comma. [1]
--8<---------------cut here---------------start------------->8---
my %header;
for my $hdr (@headerlines) {
$hdr = decode_rfc1522($hdr);
$_ = $hdr;
s/\n\s/ /g;
&finish if m/^x-loop: (\S+)$/i && $1 eq "$gMaintainerEmail";
my $ins = !m/^subject:/i && !m/^reply-to:/i && !m/^return-path:/i
&& !m/^From / && !m/^X-Debbugs-/i && !m/^cc:/i && !m/^to:/i;
$fwd .= $hdr."\n" if $ins;
# print DEBUG ">$_<\n";
if (s/^(\S+):\s*//) {
my $v = lc $1;
print DEBUG ">$v=$_<\n";
## There may be multiple To: or Cc: headers (see bug#5996).
if ( ($v eq 'to' || $v eq 'cc') &&
defined $header{$v} && length($header{$v}) ) {
$header{$v} = $header{$v} . ', ' . $_ if length($_);
} else {
$header{$v} = $_;
}
} else {
print DEBUG "!>$_<\n";
}
}
$header{'message-id'} = '' if not defined $header{'message-id'};
--8<---------------cut here---------------end--------------->8---
Only 'to' or 'cc' multiple headers are coalesced into one; otherwise the
$header specific key (for a given header) is overridden to the last
value encountered at line '$header{$v} = $_;', IIUC.
Our teams.scm script should be adjusted to produce a single X-Debbugs-CC
header with comma-separated values.
[0] https://gitlab.com/npostavs/debbugs/-/blob/gnu-reconstruction/scripts/process#L171
[1] https://datatracker.ietf.org/doc/rfc5322/, 3.6 Field Definitions
--
Thanks,
Maxim
[Message part 3 (message/rfc822, inline)]
Hi Arun,
Arun Isaac <arunisaac <at> systemreboot.net> writes:
> Hi Maxim,
>
> Thank you for the updated patch! :-) It LGTM. Please push.
>
>> OK! I opted for simplicity and double-quoted all the names.
>
> Fair enough. Though a check is only one condition away! ;-)
>
> (if (string-contains? (person-name member) ",")
> (string-append "\"" (person-name member) "\"")
> (person-name member))
It's string-contains without ?, apparently. Let's try this (and save a
few bytes per submission :-)):
--8<---------------cut here---------------start------------->8---
modified etc/teams.scm.in
@@ -618,7 +618,11 @@ (define (sort-members members)
(define (member->string member)
"Return the 'email <name>' string representation of MEMBER."
- (format #false "\"~a\" <~a>" (person-name member) (person-email member)))
+ (let* ((name (person-name member))
+ (quoted-name/maybe (if (string-contains name ",")
+ (string-append "\"" name "\"")
+ name)))
+ (format #false "~a <~a>" quoted-name/maybe (person-email member))))
(define* (list-members team #:optional port (prefix ""))
"Print the members of the given TEAM."
--8<---------------cut here---------------end--------------->8---
The change is now installed; thanks for the review!
--
Thanks,
Maxim
This bug report was last modified 2 years and 89 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.