Subject: bug#38289: 27.0.50; C-c C-w not working if signature from gnus-posting-styles applies

From: Eric Abrahamsen <[email-masked]>
Date: Fri, 22 Nov 2019 10:20:08 -0800

Lars Ingebrigtsen <[email-masked]> writes:

> Eric Abrahamsen <[email-masked]> writes:
>
>> How about a Gnus-specific minor-mode to run in message buffers that are
>> expected to be tied to Gnus? Like gnus-message-minor-mode, whatever. The
>> minor mode could do two things:
>
> That does sound cleaner than the current Gnus/Message integration, which
> is based inserting some text in the buffer, and then locally setting a
> bunch of Message variables to disable the default action.
>
> But I'm not sure how it would look in practice.

Well I certainly didn't spend a lot of time thinking about it :)

>> 1. Hook into header completion, so that completing a mail address in
>> any of the To/From/Cc/Bcc fields would run the whole message through
>> gnus-posting-styles again, possibly re-writing other parts of the draft
>> message.
>
> Hm...  I'm not sure I see how that would work.  The posting styles just
> insert a bunch of stuff and can eval whatever.

I'm not sure exactly how it would look either, but I believe that with
some refactoring, we could trigger a change of sending "profile" based
on completions of To/From addresses. Ideally re-using what people have
already got in their posting styles. There are a few external packages
out there that provide for "personas", it's a definite need. I could put
it on the list of things to think about.

>> The beautiful future I'm imagining is that an nnimap server queries its
>> remote server for "special use" mailboxes, so that it knows which of its
>> groups is \Drafts, which is \Sent, etc. Now we save the message as a
>> draft, and the minor mode first checks with the X-Gnus-Server: "can you
>> handle drafts?" The server can! Or it can't, and the message goes into
>> nndraft. Or the message is sent, and if there's no Gcc, the minor mode
>> asks the server, "Can you archive this somewhere?" And hey, maybe the
>> server can.
>>
>> All this confined to a minor-mode, of course.
>
> It sounds a bit abstract -- would it ignore nndrafts if the IMAP server
> has \Drafts?  (Auto-saving over nnimap isn't recommended, really.)

Actually I think this part would be much more straightforward to
implement. We decide on a priority for the various headers -- ie, an
explicit Gcc beats a X-Gnus-Server that can handle sent message, for
drafts maybe X-Draft-From comes into play -- and then just run through
what's in the message buffer. For drafts I think it would be easy enough
to have the auto-save process save the message to nndrafts, while
explicit "C-x C-s", "C-c C-d" and the gnus-quit prompt would check the
server for draft capability and give that priority.

Shall I open a wishlist bug report for this? Or keep it to myself?

Eric