Synch with Oort Gnus.
authoryamaoka <yamaoka>
Mon, 4 Mar 2002 22:32:08 +0000 (22:32 +0000)
committeryamaoka <yamaoka>
Mon, 4 Mar 2002 22:32:08 +0000 (22:32 +0000)
lisp/ChangeLog
lisp/message.el
lisp/mm-view.el
lisp/smime.el

index f10253c..2fcb956 100644 (file)
@@ -1,3 +1,27 @@
+2002-03-04  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * smime.el (smime-make-temp-file): Don't quote
+       `temporary-file-directory'.
+
+2002-03-04  Simon Josefsson  <jas@extundo.com>
+
+       * 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  <prj@po.cwru.edu>
+
+       * message.el (message-hierarchical-addresses): New variable.
+       (message-get-reply-headers): Use it.
+       From Ted Zlatanov <teodor.zlatanov@divine.com>
+
 2002-03-03  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * message.el (message-mode): If buffer-file-name, don't set auto
index fc3c8c7..0b159ed 100644 (file)
@@ -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)))))
index cc90410..f40257c 100644 (file)
@@ -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)
 
index eb10aa7..1d3e832 100644 (file)
@@ -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