[mew-dist 21687] Re: edit Subject: when displayed in summary

Yu Ooasa you at example.com
2002年 9月 13日 (金) 14:41:18 JST


おおあさです

弓岡さんの mlsubj.el に倣って追加修正してみました。

元の mew-scan-form-mlsubj だと
Subject: [foobar 12345] [ANNOUNCE] ほげほげ
のような場合、[ANNOUNCE] を食っちゃうので shortest match? にしました。

mew-scan-form-bracket は、X-Mail-Count とかがない ML にどうしても対応
させたい用です。自分の参加してるところでは、現 pgsql-jp がこのタイプ
です。

scan.sbr と同等のことをやりたい方は各々御自分で対応されているでしょう
が、lisp の基礎くらいしか判らない自分には弓岡さんの elisp はありがた
かったです。ありがとうございました。

以下、パッチです。
--
Yu Ooasa  E-mail: you at example.com
-------------- next part --------------
--- mlsubj.el.orig	Fri Sep 13 14:16:58 2002
+++ mlsubj.el	Fri Sep 13 14:19:33 2002
@@ -5,11 +5,11 @@
   '("Folder:" "Filename:" "Subject:" "Date:" "From:" "To:"
     "Content-Type:" "Message-Id:" "X-Mew-UIDL:"
     "In-Reply-To:" "References:"
-    "X-Ml-Name:" "X-Mail-Count:" "X-ML-COUNT:" "X-Seqno:"
+    "X-Ml-Name:" "X-Mail-Count:" "X-ML-COUNT:" "X-Seqno:" "X-Sequence:"
     ))
 
 (setq mew-scan-fields-alias
-  '("FLD" "NUM" "SUBJ" "DATE" "FROM" "TO" "CT" "ID" "UID" "IRT" "REF" "MLNAME" "MAILCOUNT" "MLCOUNT" "SEQNO"))
+  '("FLD" "NUM" "SUBJ" "DATE" "FROM" "TO" "CT" "ID" "UID" "IRT" "REF" "MLNAME" "MAILCOUNT" "MLCOUNT" "SEQNO" "SEQUENCE"))
 
 
 (setq mew-scan-form-list-list-type 'regex); 'regex 'recursive 'string.
@@ -46,6 +59,18 @@
   (let ((seqno (MEW-SEQNO)))
     seqno))
 
+(defun mew-scan-form-sequence ()
+  (let ((sequence (MEW-SEQUENCE)))
+    (if (string-match ".+ \\([0-9]+\\)$" sequence)
+	(substring sequence (match-beginning 1))
+      "")))
+
+(defun mew-scan-form-bracket ()
+  (let ((bracket (MEW-SUBJ)))
+    (if (string-match "^\\[.*?[:, ]+\\([0-9]+\\)\\]" bracket)
+	(substring bracket (match-beginning 1) (match-end 1))
+      "")))
+
 (defun mew-scan-form-mlname ()
   (let ((mlname (MEW-MLNAME)))
     mlname))
@@ -56,7 +81,7 @@
   ;; (mew-keyval).
   (let ((mlsubj (MEW-SUBJ)))
     (if (string= mlsubj "") (setq mlsubj mew-error-no-subject))
-    (if (string-match "\\(\\[.*\\][ \t\n]*\\)\\(.*\\)$" 
+    (if (string-match "\\(\\[.*?\\][ \t\n]*\\)\\(.*\\)$" 
 		      (mew-replace-white-space mlsubj))
 	(substring (mew-replace-white-space mlsubj)
 		   (match-beginning 2) (match-end 2))


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