2001-07-18 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
authorShengHuo ZHU <zsh@cs.rochester.edu>
Wed, 18 Jul 2001 18:35:19 +0000 (18:35 +0000)
committerShengHuo ZHU <zsh@cs.rochester.edu>
Wed, 18 Jul 2001 18:35:19 +0000 (18:35 +0000)
* mml.el (mml-content-type-parameters): New.
(mml-content-disposition-parameters): New.
(mml-insert-mime-headers): Use them.
(mml-parse-1): Accept charset.

lisp/ChangeLog
lisp/mml.el

index 05792a4..d42fa0f 100644 (file)
@@ -1,3 +1,10 @@
+2001-07-18 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * mml.el (mml-content-type-parameters): New.
+       (mml-content-disposition-parameters): New.
+       (mml-insert-mime-headers): Use them.
+       (mml-parse-1): Accept charset.
+
 2001-07-17 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * gnus-group.el (gnus-group-select-group): Doc fix.
index ad1c450..d8346cc 100644 (file)
   (autoload 'message-fetch-field "message")
   (autoload 'message-posting-charset "message"))
 
+(defcustom mml-content-type-parameters 
+  '(name access-type expiration size permission format)
+  "*A list of acceptable parameters in MML tag.
+These parameters are generated in Content-Type header if exists."
+  :type '(repeat (symbol :tag "Parameter"))
+  :group 'message)
+
+(defcustom mml-content-disposition-parameters 
+  '(filename creation-date modification-date read-date)
+  "*A list of acceptable parameters in MML tag.
+These parameters are generated in Content-Disposition header if exists."
+  :type '(repeat (symbol :tag "Parameter"))
+  :group 'message)
+
 (defvar mml-generate-multipart-alist nil
   "*Alist of multipart generation functions.
 Each entry has the form (NAME . FUNCTION), where
@@ -121,8 +135,13 @@ one charsets.")
        (setq raw (cdr (assq 'raw tag))
              point (point)
              contents (mml-read-part (eq 'mml (car tag)))
-             charsets (if raw nil
-                        (mm-find-mime-charset-region point (point))))
+             charsets (cond
+                        (raw nil)
+                        ((assq 'charset tag)
+                         (list
+                          (intern (downcase (cdr (assq 'charset tag))))))
+                        (t
+                         (mm-find-mime-charset-region point (point)))))
        (when (and (not raw) (memq nil charsets))
          (if (or (memq 'unknown-encoding mml-confirmation-set)
                   (message-options-get 'unknown-encoding)
@@ -478,7 +497,7 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
   (let (parameters disposition description)
     (setq parameters
          (mml-parameter-string
-          cont '(name access-type expiration size permission)))
+          cont mml-content-type-parameters))
     (when (or charset
              parameters
              (not (equal type mml-generate-default-type)))
@@ -491,17 +510,17 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
                      "charset" (symbol-name charset))))
       (when parameters
        (mml-insert-parameter-string
-        cont '(name access-type expiration size permission)))
+        cont mml-content-type-parameters))
       (insert "\n"))
     (setq parameters
          (mml-parameter-string
-          cont '(filename creation-date modification-date read-date)))
+          cont mml-content-disposition-parameters))
     (when (or (setq disposition (cdr (assq 'disposition cont)))
              parameters)
       (insert "Content-Disposition: " (or disposition "inline"))
       (when parameters
        (mml-insert-parameter-string
-        cont '(filename creation-date modification-date read-date)))
+        cont mml-content-disposition-parameters))
       (insert "\n"))
     (unless (eq encoding '7bit)
       (insert (format "Content-Transfer-Encoding: %s\n" encoding)))