[Mew-dist 12324] mew-decode.el hack for phantom-body support

Ninomiya Hideyuki nin at example.com
2000年 2月 10日 (木) 15:44:51 JST


こんにちは	二宮@お四国 です

mew-decode.el で Message/External-Body の phantom body の header 部を
 decode するというのをやっていたのですが、取り合えず decode 出来るよう
になったので、基本方針これで良いのか ? どなたか助言を頂ければと思い
ます。
part 1 が decode 結果の mew-decode-syntax で
part 2 がパッチです。

mew-decode-syntax  の構造を変える為、Message/External-body を扱う場合に
副作用が有り(reedit とかでまずい)ますが、、どの辺をこの新構造に対応させ
れば問題無くなるかについても御教授頂ければ、幸いです。
# 取り合えず decode する事しか考えてなかった f^^;;
mew-encode.el , mew-syntax.el 辺りは変えないとまずいんでしょうねー
これからその辺見てみます。

# decode , encode 終ったら、mew-ext.el 本体だ....
---
ICQ UIN:57442553                        二宮 秀幸@愛媛 鬼北 広見町
PGP-Fingerprint:6C59 EC08 5B23 6490 44D0  7CD3 DA40 219F 7114 8553
PGP-Public-Key:  http://user.shikoku.ne.jp/~nin/pgp/public-key.txt
mailto:nin at example.com http://user.shikoku.ne.jp/~nin/index.html
-------------- next part --------------
`mew-decode-syntax' is a variable declared in Lisp.
  -- loaded from "mew-blvs"

Value:
[message 1 947 nil ("Message/Rfc822") nil "external-test" nil nil
	 [multi 948 1276 nil
		("Multipart/Mixed" ("boundary" "**")) "7bit" nil nil nil
		[single 1139 1226 nil
			("Message/External-Body"
			 ("access-type" "url")
			 ("url" "http://***:")) "7bit" nil nil nil
			[phantom 1226 1226 nil
				 ("Application/Octet-Stream")
				 nil nil nil nil]]]]
-------------- next part --------------
Index: mew-decode.el
===================================================================
RCS file: /tmp/am/pd/CVSROOT/mew/mew-decode.el,v
retrieving revision 0.0
retrieving revision 0.2.2.5
diff -u -r0.0 -r0.2.2.5
--- mew-decode.el	2000/02/04 06:40:12	0.0
+++ mew-decode.el	2000/02/10 06:13:14	0.2.2.5
@@ -480,15 +480,23 @@
 	    (narrow-to-region (point) (point-max))
 	    (setq syntax (mew-decode-message syntax cnt))))
 	 ((equal mew-ct-ext ct)
-	  (let* ((at (mew-syntax-get-param ctl "access-type"))
-		 (func (mew-ext-include-get-func at)))
-	    (if (not (and func (fboundp func)))
-		()
-	      (save-excursion
-		(goto-char (point-max)) ;; phantom body
-		(funcall func ctl))
-	      (delete-region begin (point))
-	      (setq syntax (mew-decode-singlepart cnt)))))
+	  (save-restriction
+	    (narrow-to-region (point) (point-max))
+	    (let* ((at (mew-syntax-get-param ctl "access-type"))
+		   (phantom (mew-decode-mime-header dct))
+		   (pct (mew-syntax-get-value
+			 (mew-syntax-get-ct phantom) 'cap))
+		   (func (mew-ext-include-get-func at)))
+	      ;; the beginning of the phantom body
+	      ;; ct may be changed to default-type by at
+	      ;; need this point unknown pct or pct=nil
+	      ;;  then pct=mew-pct-any-default
+	      (mew-syntax-set-key phantom 'phantom)
+	      (mew-syntax-set-end phantom (point-max))
+	      (setq syntax (mew-syntax-cat syntax phantom))
+	      (if (not (and func (fboundp func)))
+		  ()
+		(funcall func ctl)))))
 	 ((equal mew-ct-sts ct)
 	  ;; do nothing
 	  )


Mew-dist メーリングリストの案内