Merge from mainline.

This commit is contained in:
Paul Eggert 2011-02-12 14:40:06 -08:00
commit 6d302144c2
8 changed files with 83 additions and 66 deletions

View file

@ -1,3 +1,21 @@
2011-02-12 Chong Yidong <cyd@stupidchicken.com>
* mail/mail-utils.el (mail-dont-reply-to-names): New variable,
from rmail-dont-reply-to-names. Callers changed.
(mail-dont-reply-to): Rename from mail-dont-reply-to.
(rmail-dont-reply-to): Make it an obsolete alias.
* mail/rmail.el (rmail-default-dont-reply-to-names): Default to
nil, and make obsolete (Bug#7888).
(rmail-dont-reply-to-names): Alias to mail-dont-reply-to-names.
* mail/rmailsum.el (rmail-summary-sort-by-correspondent): Doc fix.
* mail/rmailsort.el (rmail-sort-by-correspondent)
(rmail-select-correspondent): Doc fix. Use mail-dont-reply-to.
* mail/rmail.el (rmail-reply): Use mail-dont-reply-to.
2011-02-12 Thierry Volpiatto <thierry.volpiatto@gmail.com>
* files.el (copy-directory): New argument COPY-CONTENTS for

View file

@ -42,14 +42,10 @@
;;; Quick Installation und Customization:
;; Use
;; To display the bs menu, do
;; M-x bs-show
;; for buffer selection or optional bind a key to main function `bs-show'
;; (global-set-key "\C-x\C-b" 'bs-show) ;; or another key
;;
;; For customization use
;; M-x bs-customize
;; To customize its behavior, do
;; M-x bs-customize
;;; More Commentary:

View file

@ -35,6 +35,17 @@ often correct parser."
:type 'boolean
:group 'mail)
;;;###autoload
(defcustom mail-dont-reply-to-names nil
"Regexp specifying addresses to prune from a reply message.
If this is nil, it is set the first time you compose a reply, to
a value which excludes your own email address.
Matching addresses are excluded from the CC field in replies, and
also the To field, unless this would leave an empty To field."
:type '(choice regexp (const :tag "Your Name" nil))
:group 'mail)
;; Returns t if file FILE is an Rmail file.
;;;###autoload
(defun mail-file-babyl-p (file)
@ -213,36 +224,31 @@ Return a modified address list."
nil 'literal address 2)))
address))))
;; The following piece of ugliness is legacy code. The name was an
;; unfortunate choice --- a flagrant violation of the Emacs Lisp
;; coding conventions. `mail-dont-reply-to' would have been
;; infinitely better. Also, `rmail-dont-reply-to-names' might have
;; been better named `mail-dont-reply-to-names' and sourced from this
;; file instead of in rmail.el. Yuck. -pmr
(defun rmail-dont-reply-to (destinations)
(defun mail-dont-reply-to (destinations)
"Prune addresses from DESTINATIONS, a list of recipient addresses.
All addresses matching `rmail-dont-reply-to-names' are removed from
the comma-separated list. The pruned list is returned."
Remove all addresses matching `mail-dont-reply-to-names' from the
comma-separated list, and return the pruned list."
;; FIXME this (setting a user option the first time a command is used)
;; is somewhat strange. Normally one would never set the option,
;; but instead fall back to the default so long as it was nil.
;; Or just set the default directly in the defcustom.
(if (null rmail-dont-reply-to-names)
(setq rmail-dont-reply-to-names
(concat (if rmail-default-dont-reply-to-names
(concat rmail-default-dont-reply-to-names "\\|")
"")
(if (and user-mail-address
(not (equal user-mail-address user-login-name)))
;; Anchor the login name and email address so
;; that we don't match substrings: if the
;; login name is "foo", we shouldn't match
;; "barfoo@baz.com".
(concat "\\`"
(regexp-quote user-mail-address)
"\\'\\|")
"")
(concat "\\`" (regexp-quote user-login-name) "@"))))
(if (null mail-dont-reply-to-names)
(setq mail-dont-reply-to-names
(concat
;; `rmail-default-dont-reply-to-names' is obsolete.
(if rmail-default-dont-reply-to-names
(concat rmail-default-dont-reply-to-names "\\|")
"")
(if (and user-mail-address
(not (equal user-mail-address user-login-name)))
;; Anchor the login name and email address so that we
;; don't match substrings: if the login name is
;; "foo", we shouldn't match "barfoo@baz.com".
(concat "\\`"
(regexp-quote user-mail-address)
"\\'\\|")
"")
(concat "\\`" (regexp-quote user-login-name) "@"))))
;; Split up DESTINATIONS and match each element separately.
(let ((start-pos 0) (cur-pos 0)
(case-fold-search t))
@ -262,7 +268,7 @@ the comma-separated list. The pruned list is returned."
(setq cur-pos start-pos)))
(let* ((address (substring destinations start-pos cur-pos))
(naked-address (mail-strip-quoted-names address)))
(if (string-match rmail-dont-reply-to-names naked-address)
(if (string-match mail-dont-reply-to-names naked-address)
(setq destinations (concat (substring destinations 0 start-pos)
(and cur-pos (substring destinations
(1+ cur-pos))))
@ -278,6 +284,9 @@ the comma-separated list. The pruned list is returned."
(substring destinations (match-end 0))
destinations))
;; Legacy name
(define-obsolete-function-alias 'rmail-dont-reply-to 'mail-dont-reply-to "24.1")
;;;###autoload
(defun mail-fetch-field (field-name &optional last all list)

View file

@ -191,7 +191,7 @@ please report it with \\[report-emacs-bug].")
:group 'rmail-retrieve
:type '(repeat (directory)))
(declare-function rmail-dont-reply-to "mail-utils" (destinations))
(declare-function mail-dont-reply-to "mail-utils" (destinations))
(declare-function rmail-update-summary "rmailsum" (&rest ignore))
(defun rmail-probe (prog)
@ -283,26 +283,16 @@ Setting this variable has an effect only before reading a mail."
:version "21.1")
;;;###autoload
(defcustom rmail-dont-reply-to-names nil
"A regexp specifying addresses to prune from a reply message.
If this is nil, it is set the first time you compose a reply, to
a value which excludes your own email address, plus whatever is
specified by `rmail-default-dont-reply-to-names'.
Matching addresses are excluded from the CC field in replies, and
also the To field, unless this would leave an empty To field."
:type '(choice regexp (const :tag "Your Name" nil))
:group 'rmail-reply)
(defvaralias 'rmail-dont-reply-to-names 'mail-dont-reply-to-names)
;;;###autoload
(defvar rmail-default-dont-reply-to-names (purecopy "\\`info-")
"Regexp specifying part of the default value of `rmail-dont-reply-to-names'.
This is used when the user does not set `rmail-dont-reply-to-names'
explicitly. (The other part of the default value is the user's
email address and name.) It is useful to set this variable in
the site customization file. The default value is conventionally
used for large mailing lists to broadcast announcements.")
;; Is it really useful to set this site-wide?
(defvar rmail-default-dont-reply-to-names nil
"Regexp specifying part of the default value of `mail-dont-reply-to-names'.
This is used when the user does not set `mail-dont-reply-to-names'
explicitly.")
;;;###autoload
(make-obsolete-variable 'rmail-default-dont-reply-to-names
'mail-dont-reply-to-names "24.1")
;;;###autoload
(defcustom rmail-ignored-headers
@ -3578,15 +3568,14 @@ use \\[mail-yank-original] to yank the original message into it."
;; Remove unwanted names from reply-to, since Mail-Followup-To
;; header causes all the names in it to wind up in reply-to, not
;; in cc. But if what's left is an empty list, use the original.
(let* ((reply-to-list (rmail-dont-reply-to reply-to)))
(let* ((reply-to-list (mail-dont-reply-to reply-to)))
(if (string= reply-to-list "") reply-to reply-to-list))
subject
(rmail-make-in-reply-to-field from date message-id)
(if just-sender
nil
;; mail-strip-quoted-names is NOT necessary for rmail-dont-reply-to
;; to do its job.
(let* ((cc-list (rmail-dont-reply-to
;; `mail-dont-reply-to' doesn't need `mail-strip-quoted-names'.
(let* ((cc-list (mail-dont-reply-to
(mail-strip-quoted-names
(if (null cc) to (concat to ", " cc))))))
(if (string= cc-list "") nil cc-list)))
@ -4359,7 +4348,7 @@ This applies only to the current session.
;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent
;;;;;; rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject
;;;;;; rmail-sort-by-date) "rmailsort" "rmailsort.el" "f297fd33c8f7fa74baf16d2da99acb35")
;;;;;; rmail-sort-by-date) "rmailsort" "rmailsort.el" "ad1c98fe868c0e5804cf945d6c980d0b")
;;; Generated autoloads from rmailsort.el
(autoload 'rmail-sort-by-date "rmailsort" "\
@ -4393,7 +4382,7 @@ If prefix argument REVERSE is non-nil, sorts in reverse order.
Sort messages of current Rmail buffer by other correspondent.
This uses either the \"From\", \"Sender\", \"To\", or
\"Apparently-To\" header, downcased. Uses the first header not
excluded by `rmail-dont-reply-to-names'. If prefix argument
excluded by `mail-dont-reply-to-names'. If prefix argument
REVERSE is non-nil, sorts in reverse order.
\(fn REVERSE)" t nil)
@ -4418,7 +4407,7 @@ If prefix argument REVERSE is non-nil, sorts in reverse order.
;;;### (autoloads (rmail-summary-by-senders rmail-summary-by-topic
;;;;;; rmail-summary-by-regexp rmail-summary-by-recipients rmail-summary-by-labels
;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "adad96c9eb13cae4bae0769f731d8784")
;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "3817e21639db697abe5832d3223ecfc2")
;;; Generated autoloads from rmailsum.el
(autoload 'rmail-summary "rmailsum" "\

View file

@ -87,7 +87,7 @@ If prefix argument REVERSE is non-nil, sorts in reverse order."
"Sort messages of current Rmail buffer by other correspondent.
This uses either the \"From\", \"Sender\", \"To\", or
\"Apparently-To\" header, downcased. Uses the first header not
excluded by `rmail-dont-reply-to-names'. If prefix argument
excluded by `mail-dont-reply-to-names'. If prefix argument
REVERSE is non-nil, sorts in reverse order."
(interactive "P")
(rmail-sort-messages reverse
@ -98,13 +98,12 @@ REVERSE is non-nil, sorts in reverse order."
'("From" "Sender" "To" "Apparently-To"))))))
(defun rmail-select-correspondent (msg fields)
"Find the first header not excluded by `rmail-dont-reply-to-names'.
"Find the first header not excluded by `mail-dont-reply-to-names'.
MSG is a message number. FIELDS is a list of header names."
(let ((ans ""))
(while (and fields (string= ans ""))
(setq ans
;; NB despite the name, this lives in mail-utils.el.
(rmail-dont-reply-to
(mail-dont-reply-to
(mail-strip-quoted-names
(or (rmail-get-header (car fields) msg) ""))))
(setq fields (cdr fields)))

View file

@ -1796,7 +1796,7 @@ If prefix argument REVERSE is non-nil, sorts in reverse order."
"Sort messages of current Rmail summary by other correspondent.
This uses either the \"From\", \"Sender\", \"To\", or
\"Apparently-To\" header, downcased. Uses the first header not
excluded by `rmail-dont-reply-to-names'. If prefix argument
excluded by `mail-dont-reply-to-names'. If prefix argument
REVERSE is non-nil, sorts in reverse order."
(interactive "P")
(rmail-sort-from-summary (function rmail-sort-by-correspondent) reverse))

View file

@ -1,3 +1,10 @@
2011-02-12 Paul Eggert <eggert@cs.ucla.edu>
* md5.c (md5_process_bytes): Use sizeof, not __alignof__.
The difference doesn't matter here, in practice, and sizeof is
more portable to non-GCC compilers. Also, this makes the code
match the already-existing comment.
2011-02-12 Andreas Schwab <schwab@linux-m68k.org>
* process.c (create_process): Reset SIGPIPE handler in the child.

View file

@ -216,7 +216,7 @@ md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx)
size_t add = 128 - left_over > len ? len : 128 - left_over;
/* Only put full words in the buffer. */
add -= add % __alignof__ (md5_uint32);
add -= add % sizeof (md5_uint32);
memcpy (&ctx->buffer[left_over], buffer, add);
ctx->buflen += add;
@ -427,4 +427,3 @@ md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx)
ctx->C = C;
ctx->D = D;
}