[mew-dist 18008] scan.sbr
Koyama Mituru
mkoya at example.com
2001年 7月 10日 (火) 22:56:05 JST
小山です。
2.0pre1の導入に成功しました。
1.94.2で使っていたscan.sbr perlルーチンのかわりをelispで書くのが
一番私にとって大変でしたので、ご報告します。
メーリングリストなどのサマリーのサブジェクトを整形するものです。
番号だけ残してメーリングリストの名前を削除します。
関数に処理対象がリストされていて見苦しいです。でも、私にはこれが
限界です。
----
小山満 mkoya at example.com
(setq mew-scan-form '(type (5 date) " " (5 time) " " (19 from) " " (0 mysubj)))
(defun mew-scan-form-mysubj ()
"A function to return Subject:. Unnecessary white spaces are removed."
;; The beginning white spaces have been removed in mew-scan-header
;; (mew-keyval).
(let ((subj (MEW-SUBJ)))
(if (string= subj "") (setq subj mew-error-no-subject))
(mew-scan-form-mysubj-folder
(if mew-decode-broken
subj
;; already well-formatted
(mew-replace-white-space subj)))
))
(defun mew-scan-form-mysubj-folder (subj)
(cond
((string= folder "+memo")
(mew-scan-form-mysubj-replace
"\\[memo:\\([0-9]+\\)\\]" "[\\1]" subj))
((string= folder "+linux")
(mew-scan-form-mysubj-replace
"\\[linux-users:\\([0-9]+\\)\\]" "[\\1]" subj))
((string= folder "+Mew")
(mew-scan-form-mysubj-replace
"\\[mew-dist \\([0-9]+\\)\\]" "[\\1]" subj))
((string= folder "+cnet")
(mew-scan-form-mysubj-replace
"\\[CNET:\\([0-9-]+\\)\\]" "[\\1]" subj))
(t subj)
)
)
(defun mew-scan-form-mysubj-replace (key rep subj)
(while (string-match key subj)
(setq subj (replace-match rep nil t subj))
)
subj
)
Mew-dist メーリングリストの案内