Synch to No Gnus 200507280205.
authoryamaoka <yamaoka>
Thu, 28 Jul 2005 02:05:41 +0000 (02:05 +0000)
committeryamaoka <yamaoka>
Thu, 28 Jul 2005 02:05:41 +0000 (02:05 +0000)
lisp/ChangeLog
lisp/rfc2231.el

index 6c6a3ad..ee79573 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-28  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * rfc2231.el (rfc2231-parse-string): Take care that not only a
+       segmented parameter but also other parameters might be there.
+
 2005-07-27  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * mm-decode.el (mm-display-external): Delete temp file, directory
index c4522ef..33ab116 100644 (file)
@@ -1,6 +1,6 @@
 ;;; rfc2231.el --- Functions for decoding rfc2231 headers
 
-;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -52,7 +52,7 @@ The list will be on the form
          (prev-value "")
          display-name mailbox c display-string parameters
          attribute value type subtype number encoded
-         prev-attribute)
+         prev-attribute prev-encoded)
       (ietf-drums-init (mail-header-remove-whitespace
                        (mail-header-remove-comments string)))
       (let ((table (copy-syntax-table ietf-drums-syntax-table)))
@@ -106,9 +106,14 @@ The list will be on the form
            ;; See if we have any previous continuations.
            (when (and prev-attribute
                       (not (eq prev-attribute attribute)))
-             (push (cons prev-attribute prev-value) parameters)
+             (push (cons prev-attribute
+                         (if prev-encoded
+                             (rfc2231-decode-encoded-string prev-value)
+                           prev-value))
+                   parameters)
              (setq prev-attribute nil
-                   prev-value ""))
+                   prev-value ""
+                   prev-encoded nil))
            (unless (eq c ?=)
              (error "Invalid header: %s" string))
            (forward-char 1)
@@ -127,7 +132,8 @@ The list will be on the form
              (error "Invalid header: %s" string)))
            (if number
                (setq prev-attribute attribute
-                     prev-value (concat prev-value value))
+                     prev-value (concat prev-value value)
+                     prev-encoded encoded)
              (push (cons attribute
                          (if encoded
                              (rfc2231-decode-encoded-string value)
@@ -137,7 +143,7 @@ The list will be on the form
        ;; Take care of any final continuations.
        (when prev-attribute
          (push (cons prev-attribute
-                     (if encoded
+                     (if prev-encoded
                          (rfc2231-decode-encoded-string prev-value)
                        prev-value))
                parameters))