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