[Mew-dist 3031] refile

Mito mit at example.com
1997年 11月 27日 (木) 11:30:55 JST


一度 mew-summary-refile を実行して複数の folder を指定後、も
う一度 refile しなおしても refile 先を削除できません。

こういう仕様じゃないですよね?

例)
 1. o で "+folder1, +folder2" に refile
 2. もう一度 o
 3. mini buffer の "+folder1, +folder2" を "+folder1" に修正
 4. もう一度 o すると mini-buffer には "+folder1, +folder2" 
    と表示される

--- mew-refile.el	1997/11/27 02:11:22	1.1
+++ mew-refile.el	1997/11/27 02:11:40
@@ -637,6 +637,7 @@
 	(if folders 
 	    (progn
 	      (mew-refile-guess-learn buf learn-info)
+              (mew-refile-reset msg)
 	      (mapcar (function (lambda (x) (mew-refile-set msg x))) folders)
 	      (mew-mark-unmark)
 	      (mew-summary-mark-as mew-mark-refile)))

これで folder2 が削除できるようになりました。

ちなみに、私は refile 先の folder を確認したいので、以下のよ
うにして summary に表示させています。

auto refile も安心です。^_^
# folder 

(defun mew-refile-folders (msg)
  (mew-join ","  (cdr (assoc msg mew-summary-buffer-refile))))

(defun mew-summary-remove-refile-folders ()
  (save-excursion
    (let ((buffer-read-only nil)
          (buf (current-buffer))
          sol eol rs re)
      (beginning-of-line)
      (setq sol (point))
      (end-of-line)
      (setq eol (point))
      (setq rs (next-single-property-change sol 'invisible buf eol))
      (setq re (next-single-property-change rs 'invisible buf eol))
      (set-text-properties rs re '(invisible nil))
      (goto-char re)
      (delete-char (- eol re)))))

(defadvice mew-summary-undo-one (before remove-refile-folders activate)
  (mew-summary-remove-refile-folders)
  (set-buffer-modified-p nil))

(defvar mew-refile-position 1)

(defadvice mew-summary-refile (before set-refile-position activate)
  (setq mew-refile-position (point)))

(defadvice mew-summary-refile (after append-refile-folders activate)
  (save-excursion
    (goto-char mew-refile-position)
    (mew-summary-remove-refile-folders)
    (let ((msg (mew-summary-message-number))
          (buffer-read-only nil)
          folders len rs re c)
      (setq folders (concat " " (mew-refile-folders msg)))
      (setq len (string-width folders))
      (if (< len 1) ()
        (end-of-line)
        (setq re (point))
;        (setq rs (if (> re len) (- re len) 1))
        (setq c 0)
        (while (< c len)
          (backward-char)
          (setq c (+ c (char-width (following-char)))))
        (setq rs (point))
        (set-text-properties rs re '(invisible t))
        (goto-char re)
        (insert folders)
        (set-buffer-modified-p nil)))))
-- 
11/27 11:30頃
NECソフトウェア新潟  水戸
mailto:mit at example.com



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