[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 メーリングリストの案内