Gnus development mailing list
 help / color / mirror / Atom feed
From: "Garreau\, Alexandre" <galex-713@galex-713.eu>
To: ding@gnus.org
Subject: message-simplify-subject too coupled with reply (and not extensible)
Date: Sun, 28 Oct 2018 20:23:24 +0100	[thread overview]
Message-ID: <87zhux7u4z.fsf@portable.galex-713.eu> (raw)

After having discovered `message-strip-subject-trailing-was', I searched
for how it was used and if there were similar functions, and there were,
all in `message-simplify-subject-functions', quite interesting one.

One critic is, their standard caller, `message-simplify-subject', work
only for the 4 default functions (stopping users from adding their own
custom functions in addition or replacement of the default ones (for
instance I’d like a function to remove the inner “was”s but not the
outer one)), instead of recursively applying them all to the said
subject (after all their have the same call semantics: one argument: the
subject!).

But the main problem is, as this function call manually each of these
four functions, in the special case of `message-strip-subject-re', it
removes excedentary “Re:”… and add a new one!  so in the end,
`message-reply' doesn’t do that: that fills terribly wrong.
`message-reply' should add a “Re:” (that’s the least expectable from it,
it’s confusing it is not it that does it), and
`message-simplify-subject' should do what its name says, so that to be
really useful: simplify subject, not prepare it for another different
function (namely, `message-reply')!

I wanted to see this function used in `org-email-link-description', but
it’s impossible because of this oddity (otherwise the message could be
falsely seen as a reply while it isn’t one).  If it was possible, the
subject cited in org links could be *semantically* shorter (rather than
blindly arbitrarily cut in the middle), and benefit from user
customizations and extensions.

May I propose the following implementation:

#+BEGIN_SRC emacs-lisp
  (defun message-simplify-subject (subject &optional functions)
    "Return simplified SUBJECT."
    (let ((functions (or functions message-simplify-subject-functions)))
      (if functions
          (let ((fun (car functions))
                (other-funs (cdr functions)))
            (message-simplify-subject (funcall fun subject) other-funs))
        subject)))
#+END_SRC

Then, `message-reply' should replace “(message-simplify-subject
subject)” with “(concat "Re: " (message-simplify-subject subject))”, and
also, `message-strip-list-identifiers should get a “unless (equal
gnus-list-identifiers "")” around the body of its outer `let' (not
mandatory, but otherwise `message-strip-list-identifiers' might remove a
“Re:”, what `message-strip-subject-re' should do, even if it wasn’t
asked by the user by being put in `message-simplify-subject-functions').

May I also suggest, for consistency, to rename
`message-strip-list-identifiers' to
`message-strip-subject-list-identifiers'.  I guess it isn’t used
elsewhere than in message.el.

It is also shorter, in total.



             reply	other threads:[~2018-10-28 19:23 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-28 19:23 Garreau, Alexandre [this message]
2018-10-29  2:16 ` Eric Abrahamsen
2018-10-29 10:49   ` Garreau, Alexandre
2018-10-29 17:17     ` Eric Abrahamsen
2018-10-30  2:47       ` Garreau, Alexandre
2018-10-30  4:57       ` `gnus-bug' bug? [Was: Re: message-simplify-subject too coupled with reply (and not extensible)] Garreau, Alexandre
2018-10-30 21:33         ` `gnus-bug' bug? [ Eric Abrahamsen
2018-11-01  4:17           ` `gnus-bug' bug? Garreau, Alexandre
2018-10-30 12:28   ` Two successive patches about the same function [Was: Re: message-simplify-subject too coupled with reply (and not extensible)] Garreau, Alexandre
2018-10-30 21:35     ` Two successive patches about the same function [ Eric 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=87zhux7u4z.fsf@portable.galex-713.eu \
    --to=galex-713@galex-713.eu \
    --cc=ding@gnus.org \
    /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).