Gnus development mailing list
 help / color / mirror / Atom feed
From: prj@po.cwru.edu (Paul Jarc)
Subject: Re: new Mail-Followup-To patch...please take a look...
Date: Tue, 23 Oct 2001 12:32:06 -0400	[thread overview]
Message-ID: <m3g08ajp0j.fsf@multivac.cwru.edu> (raw)
In-Reply-To: <87wv1m9y6j.fsf@mclinux.com> (Josh Huber's message of "Tue, 23 Oct 2001 11:24:36 -0400")

Josh Huber <huber@alum.wpi.edu> wrote:
>  	 C-c C-f C-f  move to Followup-To
> +         C-c C-f C-m  move to Mail-Followup-To

Missed a M-x tabify, I guess.

> +      ;; Generate the Mail-Followup-To header if the header is not there...
> +      (if (and (or message-subscribed-regexps
> +		   message-subscribed-addresses
> +		   message-subscribed-address-functions)
> +	       (not (mail-fetch-field "mail-followup-to")))
> +	  (message-generate-headers
> +	   `(("Mail-Followup-To" . ,(message-make-mft))))
> +	;; otherwise, delete the MFT header if the field is empty
> +	(when (equal "" (mail-fetch-field "mail-followup-to"))
> +	  (message-remove-header "Mail-Followup-To")))
>        ;; Let the user do all of the above.
>        (run-hooks 'message-header-hook))

I had hoped that MFT would be enabled by default: existing
configurations would automatically get MFT when sending to any
to-address or to-list address.  (This would mean the 'subscribed
parameter would have to be replaced with a complementary
'not-subscribed parameter, among other things.)  But if that's not
going to be the case, then this chunk might as well be a hook
function.  It'll just be one extra line needed in .gnus to enable MFT.

> +(defun message-mft-helper (recipients regexps)
> +  `(or ,@(apply 'append

Might (cons 'or (apply ...)) be clearer?  See also below.

> +		(mapcar '(lambda (recipient)
> +			   (mapcar '(lambda (regexp)
> +				      (list 'string-match regexp recipient))
> +				   regexps))
> +			recipients))))

'(lambda ...) does not get byte-compiled.  (function (lambda ...))
does, and otherwise means the same thing.

> +    (when (eval (message-mft-helper recipients mft-regexps))
> +      msg-recipients)))

How about:
(save-match-data
  (when (eval (apply 'append '(or)
                     (mapcar
                      (function (lambda (regexp)
                                  (mapcar
                                   (function (lambda (recipient)
                                               `(string-match ,regexp
                                                              ,recipient)))
                                   recipients)))
                      mft-regexps)))
    msg-recipients))

This absorbs (the equivalent of) message-mft-helper into
message-make-mft, doesn't trample match-data, and might evaluate fewer
string-matches on average.  (It checks the first address against each
regexp, then the second address, ..., instead of checking the first
regexp against each address, ....  I'm guessing that when there is a
match, the first address is likely to match, and the first regexp is
not.)


paul



  parent reply	other threads:[~2001-10-23 16:32 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-23 15:24 Josh Huber
2001-10-23 15:42 ` Josh Huber
2001-10-23 16:32 ` Paul Jarc [this message]
2001-10-23 16:54   ` Josh Huber
2001-10-23 17:45     ` Paul Jarc
2001-10-23 18:54       ` Matt Armstrong
2001-10-23 19:53         ` Paul Jarc
2001-10-24  0:34           ` Josh Huber
2001-10-24 11:35         ` Per Abrahamsen
2001-10-24 12:48           ` Josh Huber
2001-10-24 16:31           ` Paul Jarc
2001-10-24 17:08             ` Per Abrahamsen
2001-10-24 17:18               ` Paul Jarc
2001-10-26  6:24           ` Kai Großjohann
2001-10-27 23:23           ` Florian Weimer
2001-10-23 16:56   ` Josh Huber
2001-10-23 17:32     ` Per Abrahamsen
2001-10-23 23:53       ` Josh Huber
2001-10-23 22:40   ` Davide G. M. Salvetti
2001-10-24  1:40     ` Paul Jarc
2001-10-24 12:45       ` Davide G. M. Salvetti
2001-10-24 13:44         ` Samuel Padgett
2001-10-24 15:23           ` Paul Jarc
2001-10-24 15:42             ` Per Abrahamsen
2001-10-24 15:51             ` Samuel Padgett
2001-10-26  6:28     ` Kai Großjohann
2001-10-27  1:19       ` Barry Fishman
2001-10-29 14:49         ` Kai Großjohann
2001-10-27 22:27     ` Florian Weimer
2001-10-24  1:59 ` Josh Huber
2001-10-24 15:02   ` Per Abrahamsen
2001-10-24 16:48     ` Paul Jarc
2001-10-24 17:13       ` Per Abrahamsen
2001-10-25  1:52     ` Josh Huber
2001-10-24 16:13   ` Paul Jarc
2001-10-24 17:19     ` Per Abrahamsen
2001-10-24 17:28       ` Paul Jarc
2001-10-24 17:38         ` Per Abrahamsen
2001-10-25  1:45           ` Josh Huber
2001-10-25 18:48           ` Josh Huber
2001-10-29 21:58             ` Matt Armstrong
2001-10-29 22:19               ` Josh Huber
2001-10-29 22:31                 ` Paul Jarc
2001-10-30  2:47                   ` Josh Huber
2001-10-30  3:11                     ` Paul Jarc
2001-10-30  3:49                   ` Matt Armstrong
2001-10-30 12:55             ` Per Abrahamsen
2001-10-30 15:31               ` Josh Huber
2001-10-31 13:44             ` ShengHuo ZHU
2001-10-31 17:28               ` Matt Armstrong
2001-10-31 17:51                 ` Josh Huber
2001-10-31 18:22                 ` ShengHuo ZHU
2001-10-26  6:34         ` Kai Großjohann
2001-10-26  9:07           ` Per Abrahamsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3g08ajp0j.fsf@multivac.cwru.edu \
    --to=prj@po.cwru.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).