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