[Mew-dist 04598] [Q] How to edit draft Subject?

OZAWA Sakuro crouton at example.com
1998年 5月 9日 (土) 03:06:27 JST


小澤さく@塩尻Internetといいます.
毎晩Mewを便利に使っております.

どちらかというとELispに関する質問になってしまいますが:

返信時のSubjectを好みに整形したいと思い,ちょっとhookを書いてみたので
すが,思ったとおりになりません.

やりたいことは以下のとおりです.
・"\\[[^]]+[0-9]+\\]"(メーリングリストのメール通番)を除去
・"Re^[0-9]+:\\s "("Re^2:"のパターン)を"RE: "に
・"Re\\[[0-9]+\\]:\\s "("Re:[2]"のパターン)を"RE: "に
・"\\(R[eE]: \\)+"(Re: RE: の繰り返し)を単一の"RE: "に

要するに,メーリングリストの通番を除去し,変なRE:を正規化したいのです.
(Re: でなくて RE: にしている理由は想像にお委せします)

で,試行錯誤の末こんなモノを書いてみたのですが,Re: RE: の繰り返しをま
とめられません.どう書いたらよいのでしょう? また,もっと賢い書き方が
あるのでしょうか?

------------------------( C U T   H E R E )---------------------------
(add-hook 'mew-draft-mode-hook
	  (function
	   (lambda ()
	     (save-excursion
	       (let ((eol))
		 (beginning-of-buffer)
		 (re-search-forward "^Subject: ")
		 (push-mark (point) t)
		 (end-of-line)
		 (setq eol (point))
		 (exchange-point-and-mark)
		 (while (re-search-forward
			 "\\[[^]]+[0-9]+\\]\\s *" eol t)
		   (replace-match ""))
		 (exchange-point-and-mark)
		 (while (re-search-forward
			 "R[eE]:\\(\\^[0-9]+\\|\\[[0-9]+\\]\\)*\\s *" eol t)
		   (replace-match "RE: " t nil))
		 (exchange-point-and-mark)
		 (while (re-search-forward
			 "\\(R[eE]:\\s \\)+" eol t)
		   (replace-match "RE: " t nil))
		 (pop-mark))))))
------------------------( C U T   H E R E )---------------------------

-- 
小澤索郎 - DCI Certified Judge Level II -
<mailto:crouton at example.com>
<http://www.shiojiri.ne.jp/%7Ecrouton/>



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