[comp.emacs] Gnu 18.51 Question re: rmail-primary-inbox-list

dzzr@beta.UUCP (Douglas J Roberts) (05/25/88)

After building Gnu 18.51, I noticed that rmail-primary-inbox-list was
bound to nil. Previously, in version 18.49 it was bound to
("/usr/spool/mail/$USER" "~/mbox"). 

The comment at the top of rmail.el says:
; these variables now declared in loaddefs or paths.el

paths.el does not contain rmail-primary-inbox-list, and loaddefs.el
has the following:

(defconst rmail-primary-inbox-list  nil "\
List of files which are inboxes for user's primary mail file ~/RMAIL.
`nil' means the default, which is ("~/mbox" "/usr/spool/mail/$USER")
(the second name varies depending on the operating system).")

which doesn't make a whole lot of sense to me. 

Can anybody explain?

===============================================================
Douglas Roberts
Los Alamos National Laboratory
(505)667-4569
dzzr@lanl.gov
===============================================================

jr@PEBBLES.BBN.COM (John Robinson) (05/25/88)

> (defconst rmail-primary-inbox-list  nil "\
> List of files which are inboxes for user's primary mail file ~/RMAIL.
> `nil' means the default, which is ("~/mbox" "/usr/spool/mail/$USER")
> (the second name varies depending on the operating system).")
> 
> which doesn't make a whole lot of sense to me. 
> 
> Can anybody explain?

The code that does this follows.  It constructs the default if the
variable rmail-primary-inbox-list is nil when (rmail) first runs.  If
you are reading this message in emacs, put your cursor at the end of
this form, hit ^X^E (assuming this is still bound to
(eval-last-sexp)), and see what the result is.  Actually, back up two
right-parens into the form to evaluate the second arg of the (setq);
or else just look at the value of rmail-inbox-list (assuming you have
already run rmail).

      ;; Provide default set of inboxes for primary mail file ~/RMAIL.
      (and (null rmail-inbox-list)
	   (null file-name-arg)
	   (setq rmail-inbox-list
		 (or rmail-primary-inbox-list
		     (list "~/mbox"
			   (concat rmail-spool-directory
				   (if (getenv "LOGNAME")
				       "$LOGNAME" "$USER"))))))

I don't know why rmail doesn't use the standard defaulting mechanism
for rmail-primary-inbox-list (i.e., the function (setq-default)).

This code depends on the additional variable rmail-spool-directory,
which is set in paths.el:

(defconst rmail-spool-directory
  (if (memq system-type '(hpux usg-unix-v))
      "/usr/mail/"
    "/usr/spool/mail/")
  "Name of directory used by system mailer for delivering new mail.
Its name should end with a slash.")