bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#19068: Mail file vars aren't derived from customized message-directo


From: Kelly Dean
Subject: bug#19068: Mail file vars aren't derived from customized message-directory
Date: Sun, 16 Nov 2014 11:27:23 +0000

Delete your ~/Mail directory (uppercase ⌜M⌝).
Make a ~/mail directory (lowercase ⌜m⌝).

Put in your init file just:
(require 'message)
(setq message-directory "~/mail/")

Start Emacs 24.4.
Notice that message-auto-save-directory is now ⌜~/⌝.
The default value of message-auto-save-directory is
  (if (file-writable-p message-directory)
      (file-name-as-directory (expand-file-name "drafts" message-directory))
    "~/")
but that fails to work as intended, because message-directory still has its 
default value of ⌜~/Mail/⌝, because message.el hasn't been loaded yet.

The docstring for message-directory says ⌜Directory from which all other mail 
file variables are derived⌝, which is misleading because it implies that if you 
customize that variable, all other mail file variables will be changed to match 
your customization.

You could avoid the problem by ensuring that the setq comes not only before the 
require of message, but also before the require of anything else that might 
require message, but that defeats the point of require (which is supposed to 
avoid the brittleness of load).

Fixing this requires either the other vars to be changed into functions that 
dynamically derive pathnames from message-directory, or something like a 
set-message-directory function to be made as a replacement for the 
message-directory var, to update all the other vars when it's called.

Also,
grep -r "~/Mail/" emacs-24.4/lisp/ | grep 'el:'
gives 19 hits, all of which are inappropriate if ~/Mail isn't supposed to be 
hardcoded. If ~/Mail is supposed to be hardcoded, then the message-directory 
variable should be removed, to avoid misleading users.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]