+2001-10-24 Hiroya Murata <lapis-lazuli@pop06.odn.ne.jp>
+
+ * mmimap.el (mmimap-make-mime-entity): Fixed problem to be
+ assigned irregular node-id to nested multipart section.
+ (initialize-instance): Followed above change.
+
2001-10-17 Hiroya Murata <lapis-lazuli@pop06.odn.ne.jp>
* elmo-shimbun.el (elmo-shimbun-get-headers): Don't call
;; Boston, MA 02111-1307, USA.
;;; Commentary:
-;;
+;;
;;; Code:
"Return non-nil when LOCATION may fetch the ENTITY.")
;;; @ Subroutines
-;;
+;;
(defun mmimap-entity-section (node-id)
"Return a section string from NODE-ID"
((numberp node-id)
(number-to-string (1+ node-id)))
((listp node-id)
- (mapconcat
+ (mapconcat
'mmimap-entity-section
(reverse node-id)
"."))))
parent)
"Analyze parsed IMAP4 BODYSTRUCTURE response and make MIME entity.
CLASS, LOCATION, NODE-ID, PARENT are set to the returned entity."
+ (setq node-id (if number (cons number node-id) node-id))
(cond
((listp (car bodystructure)) ; multipart
(let ((num 0)
:new t
:parent parent
:location location
- :node-id (if (eq number 0)
- node-id
- (nconc (list number) node-id))))
+ :node-id node-id))
(while (and (setq curp (car bodystructure))
(listp curp))
(setq children
(list
(mmimap-make-mime-entity curp class
location
- (if (eq number 0)
- node-id
- (nconc (list number) node-id))
+ node-id
num
entity))))
(setq num (+ num 1))
entity))
(t ; singlepart
(let (content-type entity)
- (setq node-id (nconc (list number) node-id))
(setq entity
(luna-make-entity
class
(intern (downcase
(nth 1 bodystructure))))
(mime-decode-parameters
- (nth 2 bodystructure))))
+ (nth 2 bodystructure))))
(mime-entity-set-encoding-internal entity
(and (nth 5 bodystructure)
(downcase
(if (mime-imap-entity-new-internal entity)
entity
(mmimap-make-mime-entity
- (mime-imap-location-bodystructure
+ (mime-imap-location-bodystructure
(mime-entity-location-internal entity))
(luna-class-name entity)
(mime-entity-location-internal entity)
- nil 0 nil)))
+ nil nil nil)))
;;; @ entity
;;
(luna-define-method mime-entity-fetch-field :around
((entity mime-imap-entity) field-name)
- (if (mime-root-entity-p entity)
+ (if (mime-root-entity-p entity)
(or (luna-call-next-method)
(with-temp-buffer
(insert (mime-imap-entity-header-string entity))