Subject: bug#13506: 24.3.50; loading emacsbug.el ignores customized `send-mail-function'

From: "Drew Adams" <[email-masked]>
Date: Sun, 20 Jan 2013 02:35:10 -0800

I really hate to open this can of worms again.  It took so long for
the fiddling with bug report mailing code to die down over the last
several years.  I thought it was finally fixed so users would not
be bothered with the questions you added over this period.
Alas, apparently not so.
 
I just discovered that if you have customized `send-mail-function' to
`mailclient-send-it', but you load that customization after loading
`emacsbug.el[c]' (for whatever reason), then your user setting is simply
ignored.
 
Emacs goes ahead, in spite of your customization, and runs you through
the gauntlet of questions.  It is apparently mistakenly convinced that
you have not configured mail.  IOW, the interrogation begins again:
 
  Emacs is about to send an email message, but it has not been
  configured for sending email.  To tell Emacs how to send email:
 
  - Type `mail client' to start your default email client and
    pass it the message text.
 
  - Type `smtp' to send mail directly to an "outgoing mail" server.
    (Emacs may prompt you for SMTP settings).
 
  Emacs will record your selection and will use it thereafter.
  To change it later, customize the option `send-mail-function'.
 
Simply loading emacsbug.el should not invalidate a

 (custom-set-variables
  '(send-mail-function (quote mailclient-send-it) t)

in your ~/.emacs or `custom-file' that is evaluated after loading
emacsbug.el.
 
To reproduce, it should be enough to put this in your .emacs:
 
(require 'emacsbug)
(custom-set-variables
 '(send-mail-function (quote mailclient-send-it) t))
 
Reverse the sexp order and there is no problem.

Normally, loading a library, even one with a defcustom, does not override a user
customization setting, even if that setting is evaluated after loading the
library.  Apparently, emacsbug.el invalidates this principle.
 
In GNU Emacs 24.3.50.1 (i386-mingw-nt5.1.2600)
 of 2013-01-18 on ODIEONE
Bzr revision: 111548 [email-masked]
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.7) --no-opt --enable-checking --cflags
 -IC:/Devel/emacs/build/include --ldflags -LC:/Devel/emacs/build/lib'