* mu4e: replace `mu4e-user-mail-address-regexp' and `mu4e-my-mail-addresses' with `mu4e-user-mail-address-list'

This commit is contained in:
djcb 2012-10-19 16:01:55 +03:00
parent f0be196209
commit 6ccbd45b85
6 changed files with 59 additions and 36 deletions

View File

@ -319,12 +319,12 @@ display may be different)."
being the From: prefix, the cdr element the To: prefix.")
(defsubst mu4e~headers-from-or-to (msg)
"When the from address for message MSG matches
`mu4e-user-mail-address-regexp', show the To address; otherwise
show the from address; prefixed with the appropriate
"When the from address for message MSG is one of the the user's addresses,
(as per `mu4e-user-mail-address-list'), show the To address;
otherwise ; show the from address; prefixed with the appropriate
`mu4e-headers-from-or-to-prefix'."
(let ((addr (cdr-safe (car-safe (mu4e-message-field msg :from)))))
(if (and addr (string-match mu4e-user-mail-address-regexp addr))
(if (mu4e-user-mail-address-p addr)
(concat (cdr mu4e-headers-from-or-to-prefix)
(mu4e~headers-contact-str (mu4e-message-field msg :to)))
(concat (car mu4e-headers-from-or-to-prefix)

View File

@ -376,8 +376,8 @@ or (:error ) sexp, which are handled my `mu4e-update-func' and
(defun mu4e~proc-index (path my-addresses)
"Update the message database for filesystem PATH, which should
point to some maildir directory structure. MY-ADDRESSES is a
list of my email addresses (see e.g. `mu4e-my-email-addresses')."
point to some maildir directory structure. MY-ADDRESSES is a list
of 'my' email addresses (see `mu4e-user-mail-address-list')."
(let ((addrs
(when my-addresses
(mapconcat 'identity my-addresses ","))))

View File

@ -62,6 +62,14 @@ hour and minute fields will be nil if not given."
(string-to-number (match-string 2 s))
nil nil nil)
(mu4e-error "Not a standard mu4e time string: %s" s)))
(defun mu4e-user-mail-address-p (addr)
"If ADDR is one of user's e-mail addresses (as per
`mu4e-user-mail-address-list') return t, otherwise return nil."
(when (and addr mu4e-user-mail-address-list
(find addr mu4e-user-mail-address-list :test 'string=))
t))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -627,7 +635,6 @@ FUNC (if non-nil) afterwards."
(apply 'encode-time
(mu4e-parse-time-string mu4e-compose-complete-only-after)))))))))
(defun mu4e~stop ()
"Stop the mu4e session."
(when mu4e~update-timer
@ -705,7 +712,7 @@ password."
;; there may be an error, give the user up to 5 seconds to check
(when maybe-error
(sit-for 5))
(mu4e~proc-index mu4e-maildir mu4e-my-email-addresses)
(mu4e~proc-index mu4e-maildir mu4e-user-mail-address-list)
(when (buffer-live-p buf)
(kill-buffer buf)))))
(process-put proc 'x-interactive interactive)

View File

@ -81,25 +81,41 @@ the arguments may be `nil'."
:group 'mu4e
:safe 'stringp)
(defcustom mu4e-user-mail-address-regexp "$^"
"Regular expression matching the user's mail address(es). This is
used to distinguish ourselves from others, e.g. when replying and
in :from-or-to headers. By default, match nothing."
:type 'regexp
:group 'mu4e
:safe 'stringp)
;; (defcustom mu4e-user-mail-address-regexp "$^"
;; "Regular expression matching the user's mail address(es). This is
;; used to distinguish ourselves from others, e.g. when replying and
;; in :from-or-to headers. By default, match nothing."
;; :type 'regexp
;; :group 'mu4e
;; :safe 'stringp)
;; (defcustom mu4e-my-email-addresses `(,user-mail-address)
;; "List of e-mail addresses to consider 'my email addresses',
;; ie. addresses whose presence in an email imply that it is a
;; personal message. This is used when indexing messages."
;; :type '(repeat (string :tag "Address"))
;; :group 'mu4e)
(defcustom mu4e-user-mail-address-list `(,user-mail-address)
"List of e-mail addresses to consider 'my email addresses',
ie. addresses whose presence in an email imply that it is a
personal message. This is used when indexing messages."
:type '(repeat (string :tag "Address"))
:group 'mu4e)
;; don't use the older vars anymore
(make-obsolete-variable 'mu4e-user-mail-address-regexp
'mu4e-user-mail-address-list "0.9.9.x")
(make-obsolete-variable 'mu4e-my-email-addresses
'mu4e-user-mail-address-list "0.9.9.x")
(defcustom mu4e-use-fancy-chars nil
"Whether to use fancy (non-ascii) characters."
:type 'boolean
:group 'mu4e)
(defcustom mu4e-my-email-addresses `(,user-mail-address)
"List of e-mail addresses to consider 'my email addresses',
ie. addresses whose presence in an email imply that it is a
personal message. This is used when indexing messages."
:type '(repeat (string :tag "Address"))
:group 'mu4e)
(defvar mu4e-date-format-long "%c"
"Date format to use in the message view, in the format of

View File

@ -167,7 +167,7 @@ plist."
(:from-or-to
(let* ((from (mu4e-message-field msg :from))
(from (and from (cdar from))))
(if (and from (string-match mu4e-user-mail-address-regexp from))
(if (mu4e-user-mail-address-p from)
(mu4e~view-construct-contacts-header msg :to)
(mu4e~view-construct-contacts-header msg :from))))
;; date

View File

@ -10,7 +10,7 @@
@documentencoding UTF-8
@c %**end of header
@include version.texi
@include ../texi/version.texi
@copying
Copyright @copyright{} 2012 Dirk-Jan C. Binnema
@ -27,7 +27,7 @@ Documentation License.''
@titlepage
@title @t{mu4e} - an e-mail client for emacs
@subtitle{version @value{mu4e-version}}
@subtitle{version @value{mu-version}}
@author Dirk-Jan C. Binnema
@c The following two commands start the copyright page.
@ -721,8 +721,8 @@ compact way to convey the most important information: it shows @t{From:}
it shows @t{To:} (prefixed by @t{To}@footnote{You can customize this by
changing the variable @code{mu4e-headers-from-or-to-prefix} (a cons cell)}, as
in the example above). To determine whether a message was sent by you,
@t{mu4e} uses the variable @code{mu4e-user-mail-address-regexp}, a regular
expression matching all your e-mail addresses.
@t{mu4e} uses the variable @code{mu4e-user-mail-address-list}, a list of
your e-mail addresses.
@item The letters in the 'Flags' field correspond to the following: D=@emph{draft},
F=@emph{flagged} (i.e., 'starred'), N=@emph{new}, P=@emph{passed} (i.e.,
forwarded), R=@emph{replied}, S=@emph{seen}, T=@emph{trashed},
@ -1296,9 +1296,10 @@ this:
only consider addresses that were seen in @emph{personal} messages -- that is,
messages in which one of my e-mail addresses was seen in one of the address
fields. This is to exclude mailing list posts. You can define what is
considered 'my e-mail address' using @code{mu4e-my-email-addresses}, a list
of e-mail address (defaults to @code{user-mail-address}, and when indexing
from the command line, the @t{--my-address} parameter for @t{mu index}.
considered 'my e-mail address' using @code{mu4e-user-mail-address-list}, a
list of e-mail address (defaults to @code{user-mail-address}, and when
indexing from the command line, the @t{--my-address} parameter for @t{mu
index}.
@item @code{mu4e-compose-complete-only-after} - only consider e-mail
addresses last seen after some date. Parameter is a string, parseable by
@code{org-parse-time-string}. This excludes old e-mail addresses. The default
@ -1854,7 +1855,7 @@ message. An example should clarify this:
"mu-discuss@@googlegroups.com")
"/mu")
;; messages sent directly to me go to /archive
;; also `mu4e-user-mail-address-regexp' can be used
;; also `mu4e-user-mail-address-p' can be used
((mu4e-message-contact-field-matches msg :to "me@@example.com")
"/private")
;; messages with football or soccer in the subject go to /football
@ -2168,6 +2169,8 @@ shortcuts (@code{mu4e-maildir-shortcuts}), or the full set of available
maildirs.
@item @code{mu4e-running-p}: return @code{t} if the @t{mu4e} process is
running, @code{nil} otherwise.
@item @code{(mu4e-user-mail-address-p addr)}: return @code{t} if @var{addr} is
one of the user's e-mail addresses (as per @code{mu4e-user-mail-address-list}).
@item @code{mu4e-log} logs to the @t{mu4e} debugging log if it is enabled;
see @code{mu4e-toggle-logging}.
@item @code{mu4e-message}, @code{mu4e-warning}, @code{mu4e-error} are the
@ -2517,11 +2520,8 @@ customize.
("/work" . ?w)
("/sent" . ?s)))
;; a regular expression that matches all email addresses used by
;; the user; this allows us to correctly determine if user
;; is the sender / direct recipient of some message
(setq mu4e-user-mail-address-regexp
"foo@@bar\.com\\|cuux@@example\.com")
;; a list of user's e-mail addresses
(setq mu4e-user-mail-address-list '("foo@@bar.com" "cuux@@example.com")
;; when you want to use some external command for text->html
;; conversion, e.g. the 'html2text' program
@ -3127,6 +3127,6 @@ lines. @t{mu} itself keeps a log as well, you can find this it in
@node GNU Free Documentation License
@appendix GNU Free Documentation License
@include fdl.texi
@include ../texi/fdl.texi
@bye