(defvar TT:mew-highlight-mark-style-folder 'default) (defvar TT:mew-highlight-mark-color-folder "DodgerBlue") (defvar TT:mew-highlight-mark-face-folder 'TT:mew-highlight-mark-face-folder) (copy-face TT:mew-highlight-mark-style-folder TT:mew-highlight-mark-face-folder) (set-face-foreground TT:mew-highlight-mark-face-folder TT:mew-highlight-mark-color-folder) (defun TT:mew-refile-folders (msg) (mew-join "," (cdr (assoc msg mew-summary-buffer-refile)))) (defun TT: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) (TT:mew-summary-remove-refile-folders) (set-buffer-modified-p nil)) (defvar TT:mew-refile-position 1) (defadvice mew-summary-refile (before set-refile-position activate) (setq TT:mew-refile-position (point))) (defadvice mew-summary-refile (after append-refile-folders activate) (save-excursion (goto-char TT:mew-refile-position) (TT:mew-summary-remove-refile-folders) (let ((msg (mew-summary-message-number)) (buffer-read-only nil) folders len rs re c) (setq folders (concat " " (TT: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) (put-text-property re (save-excursion (end-of-line) (point)) 'face TT:mew-highlight-mark-face-folder) (set-buffer-modified-p nil)))))