[Mew-dist 17679] bug-fix of mew-encode-remove-illegal-fields
Shun-ichi GOTO
gotoh at example.com
2001年 6月 4日 (月) 23:03:35 JST
mew-encode-remove-illegal-fields のバグ修正です。
発症はかなり特殊で、
1. header 領域の最後のヘッダ要素が
2. 例えば
X-Cite-Me: 後
といったように、value が(ASCIIでも漢字でも)1文字である
場合にのみ発生します。
具体例は以下のようなdraft
Subject: test
From: Shun-ichi GOTO <gotoh at example.com>
To: gotoh at example.com
X-Cite-Me: 後
---
test
は、mew-encode-remove-illegal-fields によって
Subject: test
From: Shun-ichi GOTO <gotoh at example.com>
To: gotoh at example.com
---
test
となり、しまいには
----Subject: test
From: Shun-ichi GOTO <gotoh at example.com>
To: gotoh at example.com
Date: Mon, 04 Jun 2001 22:50:06 +0900 (JST)
X-Mailer: Mew version 1.95b125 on Emacs 20.7 / Mule 4.1 (AOI)
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Test
という奇妙キテレツなメッセージを送信してしまいます。
上記条件の場合、
mew-encode-remove-illegal-fields<f> の (mew-encode.el::143 の)
(if (string-match "^[ \t]*$"
(buffer-substring med (1- (point))))
(delete-region beg (point)))
(buffer-substring med (1- (point))) => "" となり
の、(string-match "^[ \t]*$" "") が成立してしまうためです。
ということで、以下のようなパッチを作って回避しました。
Index: mew-encode.el
===================================================================
RCS file: /usr/home/gotoh/Repository/mew-1.95/mew-encode.el,v
retrieving revision 1.1.1.17
diff -u -u -F^.def -r1.1.1.17 mew-encode.el
--- mew-encode.el 2001/06/04 01:15:09 1.1.1.17
+++ mew-encode.el 2001/06/04 14:02:53
@@ -123,12 +123,13 @@ (defun mew-encode-remove-illegal-fields
(save-restriction
(goto-char (mew-header-end))
(if (not (bolp)) (insert "\n"))
- (narrow-to-region (point-min) (1- (mew-header-end)))
+ (narrow-to-region (point-min) (mew-header-end))
(let (beg med)
(mew-elet
;; removing null lines
(goto-char (point-min))
- (while (re-search-forward "^$" nil t)
+ (while (and (re-search-forward "^$" nil t)
+ (not (eobp)))
(delete-char 1))
;; removing fields which don't have value.
(goto-char (point-min))
--- Regards,
Shun-ichi Goto <gotoh at example.com>
R&D Group, TAIYO Corp., Tokyo, JAPAN
Mew-dist メーリングリストの案内