リプライでエラー

Yoshiki Hayashi yoshiki @ xemacs.org
2000年 3月 20日 (月) 22:21:51 JST


Yoshiki Hayashi <yoshiki @ xemacs.org> writes:

> もし問題が無ければ、その message を私宛に送っていただけない
> でしょうか? 駄目な場合は、その message と全く同じ構造のもの
> で、問題が再現するようならその message を送っていただけませ
> んか?

小玉さんに message を送って頂いたので、原因が判明しました。
multipart/mixed の最後の part が multipart/digest の場合のあ
つかいに問題がありました。
# multipart の entity は普通は button が表示されないので
# preview buffer には表示されません。

以下のように対処したので試してみてください。
root entity に対しては (point-max) を即座に返すようにしたの
で、Wanderlust での reply では error は絶対に発生しなくなっ
たと思います。
# 逆に bug が見つかりにくくなったとも言う。(^^;;

-------------- next part --------------
--- mime-view.el~	Sat Mar 18 00:52:22 2000
+++ mime-view.el	Mon Mar 20 20:55:06 2000
@@ -1525,6 +1525,7 @@
 	(if header-exists
 	    (delete-region (goto-char (point-min))
 			   (re-search-forward "^$"))
+	  (goto-char (point-min))
 	  (insert "\n"))
 	(goto-char (point-min))
 	(let ((current-entity
@@ -1730,20 +1731,34 @@
   (let ((entity (get-text-property point 'mime-view-entity))
 	(start (previous-single-property-change (1+ point) 'mime-view-entity
 						nil (point-min)))
-	(end point)
-	done)
-    (while (and (mime-entity-children entity)
-		(not done))
-      (if (not (mime-view-body-is-visible
-		(get-text-property point 'mime-view-situation)))
-	  (setq done t)
-	;; If the part is shown, search the last part.
-	(let ((child (car (last (mime-entity-children entity)))))
-	  (while (not (eq (get-text-property point 'mime-view-entity) child))
-	    (setq point (next-single-property-change point 'mime-view-entity)))
-	  (setq entity child))))
-    (setq end (next-single-property-change point 'mime-view-entity
-						 nil (point-max)))
+	end done)
+    (if (not (mime-entity-node-id entity))
+	(setq end (point-max))
+      (while (and (mime-entity-children entity)
+		  (not done))
+	(if (not (mime-view-body-is-visible
+		  (get-text-property point 'mime-view-situation)))
+	    (setq done t)
+	  ;; If the part is shown, search the last part.
+	  (let* ((child (car (last (mime-entity-children entity))))
+		 (node-id (mime-entity-node-id child))
+		 (tmp-node-id (mime-entity-node-id
+				 (get-text-property point
+						    'mime-view-entity))))
+	    (while (or (< (length tmp-node-id)
+			  (length node-id))
+		       (not (eq (nthcdr (- (length tmp-node-id)
+					   (length node-id))
+					tmp-node-id)
+				node-id)))
+	      (setq point
+		    (next-single-property-change point 'mime-view-entity)
+		    tmp-node-id (mime-entity-node-id
+				 (get-text-property point
+						    'mime-view-entity))))
+	    (setq entity child))))
+      (setq end (next-single-property-change
+		 point 'mime-view-entity nil (point-max))))
     (cons start end)))
 
 (defun mime-preview-toggle-header (&optional show)
-------------- next part --------------

-- 
Yoshiki Hayashi


More information about the Emacs-mime-ja mailing list