Importing pgnus-0.70
[elisp/gnus.git-] / lisp / mml.el
index 6a52d78..100a40d 100644 (file)
@@ -1,5 +1,5 @@
 ;;; mml.el --- A package for parsing and validating MML documents
 ;;; mml.el --- A package for parsing and validating MML documents
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998,99 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; This file is part of GNU Emacs.
 
 (defun mml-insert-mime-headers (cont type charset encoding)
   (let (parameters disposition description)
 
 (defun mml-insert-mime-headers (cont type charset encoding)
   (let (parameters disposition description)
+    (setq parameters
+         (mml-parameter-string
+          cont '(name access-type expiration size permission)))
     (when (or charset
     (when (or charset
-             (setq parameters
-                   (mml-parameter-string
-                    cont '(name access-type expiration size permission)))
+             parameters
              (not (equal type "text/plain")))
       (when (consp charset)
        (error
              (not (equal type "text/plain")))
       (when (consp charset)
        (error
       (when parameters
        (insert parameters))
       (insert "\n"))
       (when parameters
        (insert parameters))
       (insert "\n"))
+    (setq parameters
+         (mml-parameter-string
+          cont '(filename creation-date modification-date read-date)))
     (when (or (setq disposition (cdr (assq 'disposition cont)))
     (when (or (setq disposition (cdr (assq 'disposition cont)))
-             (setq parameters
-                   (mml-parameter-string
-                    cont '(filename creation-date modification-date
-                                    read-date))))
+             parameters)
       (insert "Content-Disposition: " (or disposition "inline"))
       (when parameters
        (insert parameters))
       (insert "Content-Disposition: " (or disposition "inline"))
       (when parameters
        (insert parameters))
        value type)
     (while (setq type (pop types))
       (when (setq value (cdr (assq type cont)))
        value type)
     (while (setq type (pop types))
       (when (setq value (cdr (assq type cont)))
+       ;; Strip directory component from the filename parameter. 
+       (when (eq type 'filename)
+         (setq value (file-name-nondirectory value)))
        (setq string (concat string ";\n "
                             (mail-header-encode-parameter
                              (symbol-name type) value)))))
        (setq string (concat string ";\n "
                             (mail-header-encode-parameter
                              (symbol-name type) value)))))