[Mew-dist 592] Re: mew-my-refile.el
Yasuharu Yamada
yasuharu at example.com
1997年 3月 5日 (水) 20:07:02 JST
少し前に mew-my-refile.el に関する質問をした
山田康晴@法政大学です。
問題が解決した(と思う)ので report します。
もとの質問はこのようなものでした。
yasuharu> この機能を使うと /tmp にディレクトリがバンバン作成されて
yasuharu> しまうのですが(使うたびに1つ作成される)、後に見ると
yasuharu> このディレクトリが残ってしまっています。
yasuharu> これは仕方のないことなのでしょうか?
yasuharu> あまり気持ちいいものではないので。
これに対し、
dezawa> ls /tmp
dezawa> aaaa01356~ dezawaa00190/ dezawaa16869/ orikaa18129/ work1/
dezawa> aaaa01361~ dezawaa00366/ dezawaa17684/ orikaa18313/
dezawa> baaa19091~ dezawaa13410/
dezawa> こんなのが出来てますがこれ関係ありそうですか?
botan> 確認したところ私の環境でも出来ました。
botan> SUN OS 5.4 or 5.5 です。
など賛同意見も戴きました。
この解決方法として
michiyo> Q(大文字) できちんと Mew 終了させれば、mew-clean-up が実行さ
michiyo> れて、/tmp にディレクトリが残ることが無いはずですが......
yasuharu> 私は CTRL+x CTRL+c で mule ごと終了していますが、
michiyo> これが原因のような気がします。
と戴きましたが、やはり私の所では CTRL+x CTRL+c ではゴミが残りませんでした。
そこでいろいろとテストした結果、どうも 「mule + mew ウィンドを残したまま
X を終了する」または「mule + mew の強制終了(fvwmのDestroy等)」を行なうと
ゴミが残ります。これが原因だったようです。
#良く考えれば当たり前のことですよね
私の不手際により mew-my-refile.el の作者である 工藤@Pacifitech さんに
多大な御迷惑をかけたことを心よりお詫び致します。
#皆さんもメンドくさがらずに window をすべて終了してから
# X を終了するよう心がけましょう。
最後に mew-1.55 用 mew-my-refile パッチをつけておきます。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
\ / 法政大学工学研究科電気工学専攻 尾川研究室
ー○ ○ー 山田 康晴 (yasuharu yamada)
∧ e-mail : yasuharu at example.com
⊂⊃ http://www.ogw.ei.hosei.ac.jp/~yasuharu/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
-------------- next part --------------
diff -c Makefile.org Makefile
*** Makefile.org Fri Feb 28 15:00:42 1997
--- Makefile Wed Mar 5 19:09:53 1997
***************
*** 33,39 ****
MEW = mew.elc
! TARGETS = mew-attach.elc mew-charset.elc mew-decode.elc mew-demo.elc mew-draft.elc mew-encode.elc mew-fib.elc mew-header.elc mew-message.elc mew-pgp.elc mew-pick.elc mew-refile.elc mew-scan.elc mew-summary.elc mew-syntax.elc mew-ext.elc mew-virtual.elc
LDPATH = lp.el
RM = rm -f
--- 33,39 ----
MEW = mew.elc
! TARGETS = mew-attach.elc mew-charset.elc mew-decode.elc mew-demo.elc mew-draft.elc mew-encode.elc mew-fib.elc mew-header.elc mew-message.elc mew-pgp.elc mew-pick.elc mew-refile.elc mew-scan.elc mew-summary.elc mew-syntax.elc mew-ext.elc mew-virtual.elc mew-my-refile.elc
LDPATH = lp.el
RM = rm -f
diff -c -N ../mew-1.55.org/mew-my-refile.el ../mew-1.55/mew-my-refile.el
*** ../mew-1.55.org/mew-my-refile.el
--- ../mew-1.55/mew-my-refile.el Wed Mar 5 19:09:53 1997
***************
*** 0 ****
--- 1,144 ----
+ ;; mew-my-refile.el
+ ;; $Header: /d/salt/sd7g/home/kudou/elisp/mew-my-refile.el,v 1.3 1997/01/07 06:59:57 kudou Exp $
+
+ (defconst mew-summary-my-refile "mew-my-refile.el version 0.02")
+
+ (require 'mew)
+
+ (defvar mew-my-refile-alist '()
+ "alist which consists of mail pattern and folder name")
+
+ (defun mew-summary-my-refile ()
+ (interactive)
+ (let ((a mew-my-refile-alist)
+ prompt folder)
+ (while (not (null a))
+ (progn
+ (setq prompt (car (car a)))
+ (setq folder (cdr (car a)))
+ (mew-summary-my-refile-x prompt folder)
+ (setq a (cdr a))))))
+
+ (defun mew-summary-my-refile-x (prompt &optional folder)
+ (interactive)
+ (progn
+ (mew-summary-search-mark-x prompt)
+ (mew-summary-mark-refile-x folder)))
+
+ (defun mew-summary-mark-refile-x (folder)
+ (interactive)
+ (let ((regex (concat mew-summary-message-regex
+ (regexp-quote (char-to-string mew-mark-hop))))
+ (mew-summary-buffer-disp-msg nil)
+ )
+ (save-excursion
+ (goto-char (point-min))
+ (if (not (re-search-forward regex nil t))
+ (message "No marked messages")
+ (beginning-of-line)
+ (let ((mew-summary-refile-last-destination nil)
+ (mew-analysis nil))
+ (if (if (null folder)
+ (setq folder (mew-decide-folder))
+ folder)
+ (while (re-search-forward regex nil t)
+ (let ((buffer-read-only nil));; mew-summary-unmark
+ (delete-backward-char 1)
+ (insert " "))
+ (mew-summary-refile-mark folder)
+ (forward-line 1))
+ ))
+ )
+ ))
+ )
+
+ (defun mew-summary-search-mark-x (prompt)
+ (interactive)
+ (if (equal (point-min) (point-max))
+ (message "No messages in this buffer.")
+ (let ((folder (buffer-name))
+ (pattern nil)
+ (first nil)
+ (last nil)
+ (range nil))
+ (setq pattern (mew-pick-input-pattern-x prompt))
+ (message "Picking messages in %s ..." folder)
+ (goto-char (point-min))
+ (setq first (mew-summary-message-number))
+ (goto-char (point-max))
+ (forward-line -1)
+ (setq last (mew-summary-message-number))
+ (setq range (mew-summary-pick folder pattern (concat first "-" last)))
+ (message "Picking messages in %s ... done" folder)
+ (if (null range)
+ ()
+ (message "Marking messages ... ")
+ (goto-char (point-min))
+ (while (not (eobp))
+ (if (and (null (mew-summary-marked-p))
+ (mew-member-del (mew-summary-message-number) range))
+ (mew-summary-mark mew-mark-hop))
+ (forward-line))
+ (message "Marking messages ... done")
+ )
+ )))
+
+ (defun mew-pick-input-pattern-x (&optional prompt)
+ (mew-pick-macro-expand
+ (mew-pick-input-pattern-raw-x prompt)))
+
+ (defun mew-pick-input-pattern-raw-x (&optional prompt)
+ (let ((pat nil))
+ (if (string= prompt "")
+ (setq pat (read-from-minibuffer
+ (format "Pattern%s (%s) : "
+ (if prompt prompt "")
+ mew-prog-pick-default-arg)
+ "-" mew-pick-map nil))
+ (setq pat prompt))
+ (setq pat (downcase pat))
+ (cond
+ ((string-match " " pat)
+ (mapcar (function mew-summary-search-blace)
+ (mew-header-delete-nullstring-list
+ (mew-header-split pat 32))));; 32 is " "
+ (t
+ (if (or (string= pat "") (string= pat "-"))
+ (setq pat mew-prog-pick-default-arg))
+ (cond
+ ((mew-member pat mew-prog-pick-arglogic-unary)
+ (cons pat (mew-pick-input-pattern-raw (format " for %s" pat))))
+ ((mew-member pat mew-prog-pick-arglogic-binary)
+ (mew-pick-input-logic pat))
+ ((mew-member pat mew-prog-pick-argdate)
+ (cons pat (mew-pick-input-value (format "Date for %s" pat)
+ mew-prog-pick-argdatealist)))
+ ((assoc pat mew-pick-macro-alist)
+ (let* ((assoc (assoc pat mew-pick-macro-alist))
+ (args (nth 1 assoc)) arg n datep res)
+ (setq res (list pat))
+ (while args
+ (setq arg (car args))
+ (setq args (cdr args))
+ (setq n (and (string-match "[0-9]+" arg) (mew-match 0 arg)))
+ (setq datep (string-match "d" arg))
+ (setq res
+ (nconc
+ (mew-pick-input-value
+ (cond ((and n datep)
+ (format "Date arg %s for %s" n pat))
+ (n
+ (format "Arg %s for %s" n pat))
+ (datep
+ (format "Date for %s" pat))
+ (t
+ (format "Value for %s" pat)))
+ (and datep mew-prog-pick-argdatealist))
+ res)))
+ (nreverse res)))
+ (t (cons pat (mew-pick-input-value (format "Value for %s" pat))))
+ )
+ )
+ )))
+
+ (provide 'mew-my-refile)
diff -c mew-summary.el.org mew-summary.el
*** mew-summary.el.org Mon Mar 3 03:17:56 1997
--- mew-summary.el Wed Mar 5 19:10:56 1997
***************
*** 72,77 ****
--- 72,78 ----
(define-key mew-summary-mode-map "mr" 'mew-summary-mark-regexp)
(define-key mew-summary-mode-map "ma" 'mew-summary-mark-all)
(define-key mew-summary-mode-map "mu" 'mew-summary-mark-undo-all)
+ (define-key mew-summary-mode-map "my" 'mew-summary-my-refile)
(define-key mew-summary-mode-map "\C-c\C-s" 'mew-summary-isearch-forward)
(define-key mew-summary-mode-map "\C-c\C-r" 'mew-summary-isearch-backward)
(define-key mew-summary-mode-map "\C-c\C-o"
diff -c mew.el.org mew.el
*** mew.el.org Tue Mar 4 11:51:19 1997
--- mew.el Wed Mar 5 19:09:52 1997
***************
*** 1929,1932 ****
--- 1929,1933 ----
(require 'mew-refile)
(require 'mew-ext)
(require 'mew-fib)
+ (require 'mew-my-refile)
Mew-dist メーリングリストの案内