Revision: miles@gnu.org--gnu-2005/gnus--devo--0--patch-151
[gnus] / lisp / mml.el
index 3ccac95..4e21e81 100644 (file)
@@ -17,8 +17,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
   (autoload 'message-fetch-field "message")
   (autoload 'message-mark-active-p "message")
   (autoload 'fill-flowed-encode "flow-fill")
-  (autoload 'message-posting-charset "message")
-  (autoload 'x-dnd-get-local-file-name "x-dnd"))
+  (autoload 'message-posting-charset "message"))
+
+(eval-when-compile
+  (autoload 'dnd-get-local-file-name "dnd"))
 
 (defcustom mml-content-type-parameters
   '(name access-type expiration size permission format)
@@ -158,6 +160,8 @@ one charsets.")
        ;; included in the message
        (let* (secure-mode
               (taginfo (mml-read-tag))
+              (keyfile (cdr (assq 'keyfile taginfo)))
+              (certfile (cdr (assq 'certfile taginfo)))
               (recipients (cdr (assq 'recipients taginfo)))
               (sender (cdr (assq 'sender taginfo)))
               (location (cdr (assq 'tag-location taginfo)))
@@ -181,6 +185,10 @@ one charsets.")
                 (setq tags (list "sign" method "encrypt" method))))
          (eval `(mml-insert-tag ,secure-mode
                                 ,@tags
+                                ,(if keyfile "keyfile")
+                                ,keyfile
+                                ,(if certfile "certfile")
+                                ,certfile
                                 ,(if recipients "recipients")
                                 ,recipients
                                 ,(if sender "sender")
@@ -908,11 +916,11 @@ See Info node `(emacs-mime)Composing'.
               (> (prefix-numeric-value arg) 0)))
     (add-minor-mode 'mml-mode " MML" mml-mode-map)
     (easy-menu-add mml-menu mml-mode-map)
-    (when (boundp 'x-dnd-protocol-alist)
-      (set (make-local-variable 'x-dnd-protocol-alist)
-          '(("^file:///" . mml-x-dnd-attach-file)
-            ("^file://"  . x-dnd-open-file)
-            ("^file:"    . mml-x-dnd-attach-file))))
+    (when (boundp 'dnd-protocol-alist)
+      (set (make-local-variable 'dnd-protocol-alist)
+          '(("^file:///" . mml-dnd-attach-file)
+            ("^file://"  . dnd-open-file)
+            ("^file:"    . mml-dnd-attach-file))))
     (run-hooks 'mml-mode-hook)))
 
 ;;;
@@ -1028,9 +1036,9 @@ description of the attachment."
                        'disposition (or disposition "attachment")
                        'description description))
 
-(defun mml-x-dnd-attach-file (uri action)
+(defun mml-dnd-attach-file (uri action)
   "Attach a drag and drop file."
-  (let ((file (x-dnd-get-local-file-name uri t)))
+  (let ((file (dnd-get-local-file-name uri t)))
     (when (and file (file-regular-p file))
       (let* ((type (mml-minibuffer-read-type file))
            (description (mml-minibuffer-read-description))
@@ -1161,7 +1169,8 @@ If RAW, don't highlight the article."
       (goto-char (point-min))))
   (if (and (boundp 'gnus-buffer-configuration)
           (assq 'mml-preview gnus-buffer-configuration))
-      (gnus-configure-windows 'mml-preview)
+      (let ((gnus-message-buffer (current-buffer)))
+       (gnus-configure-windows 'mml-preview))
     (pop-to-buffer mml-preview-buffer)))
 
 (defun mml-validate ()