(mm-w3m-cid-retrieve-1): Check carefully whether handle is multipart when
authorKatsumi Yamaoka <yamaoka@jpl.org>
Mon, 6 Mar 2006 06:53:12 +0000 (06:53 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Mon, 6 Mar 2006 06:53:12 +0000 (06:53 +0000)
 calling it recursively.
(mm-w3m-cid-retrieve): Display warning if retrieving fails.

lisp/ChangeLog
lisp/mm-view.el

index 97b0d35..bc5bd47 100644 (file)
@@ -1,3 +1,9 @@
+2006-03-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * mm-view.el (mm-w3m-cid-retrieve-1): Check carefully whether
+       handle is multipart when calling it recursively.
+       (mm-w3m-cid-retrieve): Display warning if retrieving fails.
+
 2006-03-03  Daniel Pittman <daniel@rimspace.net>
 
        * nnimap.el (nnimap-request-update-info-internal): Optimize.
index f1cfc74..36870af 100644 (file)
 
 (defun mm-w3m-cid-retrieve-1 (url handle)
   (dolist (elem handle)
-    (when (listp elem)
-      (if (equal url (mm-handle-id elem))
-         (progn
-           (mm-insert-part elem)
-           (throw 'found-handle (mm-handle-media-type elem))))
-      (if (equal "multipart" (mm-handle-media-supertype elem))
-         (mm-w3m-cid-retrieve-1 url elem)))))
+    (when (consp elem)
+      (when (equal url (mm-handle-id elem))
+       (mm-insert-part elem)
+       (throw 'found-handle (mm-handle-media-type elem)))
+      (when (and (stringp (car elem))
+                (equal "multipart" (mm-handle-media-supertype elem)))
+       (mm-w3m-cid-retrieve-1 url elem)))))
 
 (defun mm-w3m-cid-retrieve (url &rest args)
   "Insert a content pointed by URL if it has the cid: scheme."
   (when (string-match "\\`cid:" url)
-    (catch 'found-handle
-      (mm-w3m-cid-retrieve-1 (concat "<" (substring url (match-end 0)) ">")
-                            (with-current-buffer w3m-current-buffer
-                              gnus-article-mime-handles)))))
+    (or (catch 'found-handle
+         (mm-w3m-cid-retrieve-1
+          (setq url (concat "<" (substring url (match-end 0)) ">"))
+          (with-current-buffer w3m-current-buffer
+            gnus-article-mime-handles)))
+       (prog1
+           nil
+         (message "Failed to find \"Content-ID: %s\"" url)))))
 
 (defun mm-inline-text-html-render-with-w3m (handle)
   "Render a text/html part using emacs-w3m."