From f6633d1a384b23a15d95593fbffeeb957b35c6ae Mon Sep 17 00:00:00 2001 From: yamaoka Date: Mon, 4 Mar 2002 22:32:08 +0000 Subject: [PATCH] Synch with Oort Gnus. --- lisp/ChangeLog | 24 ++++++++++++++++++++++++ lisp/message.el | 31 +++++++++++++++++++++++++++++++ lisp/mm-view.el | 13 +++++++++---- lisp/smime.el | 38 +++++++++++++++++++++++--------------- 4 files changed, 87 insertions(+), 19 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f10253c..2fcb956 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,27 @@ +2002-03-04 Katsumi Yamaoka + + * smime.el (smime-make-temp-file): Don't quote + `temporary-file-directory'. + +2002-03-04 Simon Josefsson + + * smime.el (smime-sign-region): Rename argument keyfiles to + keyfile. You only sign something with one key. + (smime-sign-buffer): Better completing-read prompt. + (smime-decrypt-buffer): Ditto. + + * smime.el (smime-make-temp-file): Make it work under XEmacs. + + * mm-view.el (mm-view-pkcs7-decrypt): Better prompt for + completing-read. + (mm-view-pkcs7-decrypt): CRLF->LF. + +2002-03-04 Paul Jarc + + * message.el (message-hierarchical-addresses): New variable. + (message-get-reply-headers): Use it. + From Ted Zlatanov + 2002-03-03 ShengHuo ZHU * message.el (message-mode): If buffer-file-name, don't set auto diff --git a/lisp/message.el b/lisp/message.el index fc3c8c7..0b159ed 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -1271,6 +1271,19 @@ The first matched address (not primary one) is used in the From field." :type '(choice (const :tag "Always use primary" nil) regexp)) +(defcustom message-hierarchical-addresses nil + "A list of hierarchical mail address definitions. + +Inside each entry, the first address is the \"top\" address, and +subsequent addresses are subaddresses; this is used to indicate that +mail sent to the first address will automatically be delivered to the +subaddresses. So if the first address appears in the recipient list +for a message, the subaddresses will be removed (if present) before +the mail is sent. All addresses in this structure should be +downcased." + :group 'message-headers + :type '(repeat (repeat string))) + (defcustom message-mail-user-agent nil "Like `mail-user-agent'. Except if it is nil, use Gnus native MUA; if it is t, use @@ -5294,6 +5307,24 @@ responses here are directed to other addresses."))) (let ((s recipients)) (while s (setq recipients (delq (assoc (car (pop s)) s) recipients)))) + + ;; Remove hierarchical lists that are contained within each other, + ;; if message-hierarchical-addresses is defined. + (when message-hierarchical-addresses + (let ((plain-addrs (mapcar 'car recipients)) + subaddrs recip) + (while plain-addrs + (setq subaddrs (assoc (car plain-addrs) + message-hierarchical-addresses) + plain-addrs (cdr plain-addrs)) + (when subaddrs + (setq subaddrs (cdr subaddrs)) + (while subaddrs + (setq recip (assoc (car subaddrs) recipients) + subaddrs (cdr subaddrs)) + (if recip + (setq recipients (delq recip recipients)))))))) + ;; Build the header alist. Allow the user to be asked whether ;; or not to reply to all recipients in a wide reply. (setq follow-to (list (cons 'To (cdr (pop recipients))))) diff --git a/lisp/mm-view.el b/lisp/mm-view.el index cc90410..f40257c 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -601,10 +601,15 @@ will not be substituted.") (if (= (length smime-keys) 1) (cadar smime-keys) (smime-get-key-by-email - (completing-read "Decrypt this part with which key? " - smime-keys nil nil - (and (listp (car-safe smime-keys)) - (caar smime-keys))))))) + (completing-read + (concat "Decipher using which key? " + (if smime-keys (concat "(default " (caar smime-keys) ") ") + "")) + smime-keys nil nil nil nil (car-safe (car-safe smime-keys)))))) + (goto-char (point-min)) + (while (search-forward "\r\n" nil t) + (replace-match "\n")) + (goto-char (point-min))) (provide 'mm-view) diff --git a/lisp/smime.el b/lisp/smime.el index eb10aa7..1d3e832 100644 --- a/lisp/smime.el +++ b/lisp/smime.el @@ -201,7 +201,9 @@ If nil, use system defaults." (lambda (prefix &optional dir-flag) ;; Simple implementation (expand-file-name (make-temp-name prefix) - temporary-file-directory))))) + (if (fboundp 'temp-directory) + (temp-directory) + temporary-file-directory)))))) ;; Password dialog function @@ -232,15 +234,17 @@ If nil, use system defaults." ;; Sign+encrypt region -(defun smime-sign-region (b e keyfiles) - "Sign region with certified key in KEYFILES. +(defun smime-sign-region (b e keyfile) + "Sign region with certified key in KEYFILE. If signing fails, the buffer is not modified. Region is assumed to -have proper MIME tags. KEYFILES is expected to contain a PEM encoded -private key and certificate as its car, and a list of additional certificates -to include in its caar." +have proper MIME tags. KEYFILE is expected to contain a PEM encoded +private key and certificate as its car, and a list of additional +certificates to include in its caar. If no additional certificates is +included, KEYFILE may be the file containing the PEM encoded private +key and certificate itself." (smime-new-details-buffer) - (let ((keyfile (car keyfiles)) - (certfiles (and (cdr keyfiles) (cadr keyfiles))) + (let ((keyfile (or (car-safe keyfile) keyfile)) + (certfiles (and (cdr-safe keyfile) (cadr keyfile))) (buffer (generate-new-buffer (generate-new-buffer-name " *smime*"))) (passphrase (smime-ask-passphrase)) (tmpfile (smime-make-temp-file "smime"))) @@ -307,11 +311,13 @@ KEYFILE should contain a PEM encoded key and certificate." (smime-sign-region (point-min) (point-max) (if keyfile - (list keyfile (smime-get-certfiles keyfile smime-keys)) + keyfile (smime-get-key-by-email - (completing-read "Sign using which signature? " smime-keys nil nil - (and (listp (car-safe smime-keys)) - (cdr smime-keys)))))))) + (completing-read + (concat "Sign using which signature? " + (if smime-keys (concat "(default " (caar smime-keys) ") ") + "")) + smime-keys nil nil nil nil (car-safe (car-safe smime-keys)))))))) (defun smime-encrypt-buffer (&optional certfiles buffer) "S/MIME encrypt BUFFER for recipients specified in CERTFILES. @@ -428,9 +434,11 @@ in the buffer specified by `smime-details-buffer'." (expand-file-name (or keyfile (smime-get-key-by-email - (completing-read "Decrypt with which key? " smime-keys nil nil - (and (listp (car-safe smime-keys)) - (caar smime-keys))))))))) + (completing-read + (concat "Decipher using which key? " + (if smime-keys (concat "(default " (caar smime-keys) ") ") + "")) + smime-keys nil nil nil nil (car-safe (car-safe smime-keys))))))))) ;; Various operations -- 1.7.10.4