2010年1月29日

Re: [質問] wしたときのフォルダ名を、Fccフィールドに自動で挿入するには?

伊藤です。

> ;; set foldername in Fcc filed automatically in summary buffer
> ;; That is effective in imap and mh folder
> (setq wl-draft-config-alist
> '(((string-match "\\(%inbox\\|\\\+\\)" wl-draft-parent-folder)
> ("Fcc" . (if (stringp wl-draft-parent-folder)
> (substring wl-draft-parent-folder (string-match "\\(%\\|\\\+\\)" wl-draft-parent-folder))

> '"%inbox")))))
>
> Summry bufferでは、望み通りにの動作になりました。
> もっとスマートな記述があると思うのですが...?

スマートな方法があるかどうかは知りませんが、wl-draft.el を見る限り
wl-draft-parent-folder は常に string になるようなので、
後段の stringp は不要です。
蛇足ですが、本当に string ではなかった場合は最初の string-match の前にチェックしないと
エラーになるはずです。

(setq wl-draft-config-alist
'(((string-match "\\(%inbox\\|\\\+\\)" wl-draft-parent-folder)
("Fcc" . (substring wl-draft-parent-folder
(string-match "\\(%\\|\\\+\\)"
wl-draft-parent-folder))))))


> しかし、Folder bufferでは、この場合、Fcc: %inboxが設定されて
> しまうので、以下のような関数を、見よう見まねで作りました。
>
> (defun wl-folder-name-in-folder-buffer (&optional arg)
> ; (interactive )
> (let ((fld-name (wl-folder-get-entity-from-buffer))
> entity beg end indent opened err)
> ; (message "%s" fld-name)
> (format "%s" fld-name)
> ))
>
> (setq wl-fcc 'wl-folder-name-in-folder-buffer)

wl-folder-name-in-folder-buffer() は draft バッファから実行されるので、
自力で Folder バッファに current buffer を変更しないと期待通りの動作には
ならないと思います。


その辺をごちゃごちゃと対応させるよりは Folder バッファからでも Summary
バッファからと同じように wl-draft-parent-folder がセットされるようにするのが
楽なような気もします。

(eval-after-load "wl-folder"
'(progn
(defun wl-folder-write (folder)
"Write a new draft from Folder."
(interactive (list (wl-folder-get-entity-from-buffer)))
(wl-draft (list (cons 'To "")) nil nil nil nil folder)
(run-hooks 'wl-mail-setup-hook)
(mail-position-on-field "To"))
(define-key wl-folder-mode-map "w" 'wl-folder-write)))

--
伊藤 和博(Kazuhiro Ito)


投稿者 xml-rpc : 2010年1月29日 08:55
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/92756
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。