[Mew-dist 1230] Use Petname with Cite Label
Ryuichi MATSUMOTO
ryuichi at example.com
1997年 7月 11日 (金) 20:59:08 JST
まつもと@NEC情報システムズです。
私の周りで、IMのPetnameFileの機能をMew上で引用するときに使えない
のはもったいないという意見が多かったので、引用ラベルのFromを置き
換えるべくパッチを作ってみました。
#他にもこんなこと考えた人はいませんか?
ところで拙作パッチの機能チェック中に、C-cC-t(Cite without Label)
が機能しない(Wrong type argument: markerp, nil)ことに気付いたん
ですが、他の方のところでは出ていませんか?
とりあえず拙作のパッチを添付しますので、よろしかったら使ってみて、
バグとかあったらお教え下さい(_o_)。
以下に使い方など…。
(1) Petnameファイルを作る(Exp. ~/.im/Petname)。
Kazu at example.com "山本和彦"
ryuichi at example.com "わたし"
(2) ~/.im/ConfigにPetnameFileのエントリを作る。
PetnameFile=~/.im/Petname
(3) ~/.emacsに、
(setq mew-cite-with-petname t)
を加える。デフォルトではnilになっています。
これで、Petnameファイルで指定された名前がlabelに使われるようにな
ります。例えば、上記の例の場合、山本さんからのメールへのReplyに
は、
"Tue, 01 Jul 1997 13:49:55 +0900" に
山本和彦 さんから届いた
『[Mew-dist 1136] Mew 1.85 & IM 40 beta release』 によると…
こんな感じになり、私が発信したメールに対しては、
"Thu, 10 Jul 1997 18:19:07 +0900" に
わたし さんから届いた
『[Mew-dist 1223] Re: mew-summary-reply-with-citation』 によると…
こんな感じになります。
#如何ですか?
--
まつもとりゅういち@NEC情報システムズ
mailto:ryuichi at example.com
-------------- next part --------------
--- mew-1.85.orig/mew.el Thu Jul 10 16:21:12 1997
+++ mew-1.85/mew.el Fri Jul 11 12:00:48 1997
@@ -231,6 +231,9 @@
(defvar mew-cite-format "From: %s\nSubject: %s\nDate: %s\n\n"
"*Format for the citation label.")
+(defvar mew-cite-with-petname nil
+ "Use petname in citation label.")
+
;;;
;;; Summary and Draft glue
;;;
@@ -460,6 +463,7 @@
(defvar mew-inbox-folder nil)
(defvar mew-draft-folder nil)
(defvar mew-trash-folder nil)
+(defvar mew-petname-file nil)
(defvar mew-draft-mime-folder nil
"A directory where attachments are contained.")
(defvar mew-config-alist
@@ -467,8 +471,10 @@
("NewsPath" . mew-news-path)
("InboxFolder" . mew-inbox-folder)
("DraftFolder" . mew-draft-folder)
- ("TrashFolder" . mew-trash-folder))
+ ("TrashFolder" . mew-trash-folder)
+ ("PetnameFile" . mew-petname-file))
)
+
(setplist 'mew-current-state
(list
--- mew-1.85.orig/mew-draft.el Tue Jul 1 09:53:55 1997
+++ mew-1.85/mew-draft.el Fri Jul 11 11:59:59 1997
@@ -633,9 +633,42 @@
(insert-string cite)
))
+(defun mew-cite-strings-with-petname (lst mew-cite-fields)
+ (let ((i 0)
+ (l mew-cite-fields)
+ (temp-buffer (get-buffer-create "*Mew cite with Petname*"))
+ (work))
+ (catch 'loop
+ (while (car l)
+ (if (string-equal "From:" (car l))
+ (throw 'loop i)
+ )
+ (setq i (1+ i))
+ (setq l (cdr l))
+ )
+ )
+ (setq work (mew-header-extract-addr (nth i lst)))
+ (save-excursion
+ (set-buffer temp-buffer)
+ (erase-buffer)
+ (insert-file-contents mew-petname-file)
+ (goto-char (point-min))
+ (if (not (eq (search-forward work (point-max) t) nil))
+ (setq work (read (get-buffer "*Mew cite with Petname*")))
+ (setq work (nth i lst))
+ )
+ (setcar (nthcdr i lst) work)
+ (kill-buffer temp-buffer)
+ )
+ )
+ lst)
+
(defun mew-cite-strings ()
(let ((fields (mapcar (function mew-header-get-value) mew-cite-fields)))
(setq fields (mapcar (function (lambda (x) (if (null x) "" x))) fields))
+ (if (eq mew-cite-with-petname t)
+ (setq fields (mew-cite-strings-with-petname fields mew-cite-fields))
+ )
(apply (function format) mew-cite-format fields)
))
-------------- next part --------------
--- im-40.orig/impath.in Tue Jul 1 10:09:18 1997
+++ im-40/impath.in Fri Jul 11 12:08:51 1997
@@ -104,6 +104,7 @@
print "InboxFolder=" . inbox_folder() . "\n";
print "DraftFolder=" . draft_folder() . "\n";
print "TrashFolder=" . trash_folder() . "\n";
+ print "PetnameFile=" . petname_file() . "\n";
}
##
--- im-40.orig/IM.in/Config.pm.in Tue Jul 1 00:16:02 1997
+++ im-40/IM.in/Config.pm.in Fri Jul 11 12:15:44 1997
@@ -35,6 +35,7 @@
home_dir conf_dir
mail_dir mail_path news_dir news_path
inbox_folder draft_folder trash_folder
+ petname_file
preserve_dot
aliases_file context_file
address addresses_regex
@@ -134,6 +135,7 @@
'inboxfolder;f;+inbox;InboxFolder' => 'Inbox folder',
'draftfolder;f;+draft;DraftFolder' => 'Draft folder',
'trashfolder;f;+trash;TrashFolder' => 'Trash folder',
+ 'petnamefile;s;Petname;PetnameFile' => 'Petname file',
'preservedot;b;off;PreserveDot' => 'Not substitute "." with "/"',
'contextfile;s;Context;ContextFile' => 'Context file',
'address;s;;Address' => 'Email addresses',
@@ -612,6 +614,10 @@
sub trash_folder {
return $TrashFolder;
+}
+
+sub petname_file {
+ return $PetnameFile;
}
sub preserve_dot {
Mew-dist メーリングリストの案内