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