diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-07-21 01:06:30 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-07-21 01:06:30 +0200 |
commit | 4fd1058baf2f44f302bb60503d1bce6b72b5c1e9 (patch) | |
tree | 3935dda672f600ef62f1bc6a69938eb4784de739 /wl | |
parent | 8b00dffa011c266356961e784ffc89c8535a6983 (diff) | |
download | conf-misc-4fd1058baf2f44f302bb60503d1bce6b72b5c1e9.tar conf-misc-4fd1058baf2f44f302bb60503d1bce6b72b5c1e9.zip |
Extended persistent marks
Diffstat (limited to 'wl')
-rw-r--r-- | wl | 64 |
1 files changed, 42 insertions, 22 deletions
@@ -1,4 +1,5 @@ (setq frame-title-format '("" "Wanderlust")) +(setq icon-title-format '("" "Wanderlust")) (setq elmo-imap4-default-server "mail.universe-factory.net" elmo-imap4-default-user "mschiffer@universe-factory.net" @@ -32,46 +33,65 @@ (setq elmo-folder-update-threshold nil) +(column-number-mode t) +(show-paren-mode t) + (defadvice wl-summary-mode (after wl-summary-mode-nobidi) (setq bidi-display-reordering nil)) (ad-activate 'wl-summary-mode) -;; (defun wl-summary-update-persistent-mark (number) -;; (wl-summary-rescan-message number) -;; t) -;; (defun wl-summary-persistent-mark-invalid-p () t) +(defun extended-persistent-mark-string (status) + (let ((flags (elmo-message-status-flags status)) + (cached (elmo-message-status-cached-p status))) + (concat + (cond ((memq 'killed flags) "X") + ((memq 'flag flags) "$") + ((memq 'new flags) "N") + ((memq 'unread flags) "u") + (t " ")) + (if (memq 'answered flags) wl-summary-answered-cached-mark " ") + (if (memq 'forwarded flags) "f" " ")))) +(defun extended-persistent-mark () + (extended-persistent-mark-string wl-status)) -;; (defun extended-persistent-mark () -;; (let ((flags (elmo-message-status-flags wl-status)) -;; (cached (elmo-message-status-cached-p wl-status))) -;; (concat -;; (cond ((memq 'killed flags) "X") -;; ((memq 'flag flags) "$") -;; ((memq 'new flags) "N") -;; ((memq 'unread flags) "u") -;; (t " ")) -;; (if (memq 'answered flags) wl-summary-answered-cached-mark " ") -;; (if (memq 'forwarded flags) "f" " ")))) -(defun extended-persistent-mark () (or wl-persistent-mark " ")) -;;(defun extended-persistent-mark () " ") +(defun wl-summary-update-persistent-mark (&optional number) + "Synch up persistent mark of current line with msgdb's. +Return non-nil if the mark is updated" + (interactive) + (let ((status (wl-summary-message-status number))) + (prog1 + (save-excursion + (move-to-column 9) + (let ((inhibit-read-only t) + (buffer-read-only nil) + (mark (buffer-substring (- (point) 3) (point))) + (new-mark (extended-persistent-mark-string status))) + (prog1 + (unless (string= new-mark mark) + (delete-char -3) + (insert new-mark) + (wl-summary-set-message-modified) + t) + (wl-summary-validate-persistent-mark (point-at-bol) + (point-at-eol))))) + (when wl-summary-highlight + (wl-highlight-summary-current-line number status)) + (set-buffer-modified-p nil)))) (add-to-list 'wl-summary-line-format-spec-alist '(?X (extended-persistent-mark))) (setq wl-summary-line-format "%n%T%X %Y/%M/%D (%W) %h:%m %t%[%25(%c %f%) %] %s") -(defadvice wl-message-buffer-display (before wl-message-buffer-display-unread) +(defadvice wl-message-buffer-display (before wl-message-buffer-display-unread activate) (setq unread t)) -(ad-activate 'wl-message-buffer-display) - (defadvice elmo-folder-unset-flag (before elmo-folder-unset-flag-nounread (folder numbers flag &optional is-local)) (when (eq flag 'unread) (setq flag 'new))) -(defadvice wl-summary-redisplay-internal (around wl-summary-redisplay-internal-unread) +(defadvice wl-summary-redisplay-internal (around wl-summary-redisplay-internal-unread activate) (unwind-protect (progn (ad-activate 'elmo-folder-unset-flag) ad-do-it) (ad-deactivate 'elmo-folder-unset-flag))) -(ad-activate 'wl-summary-redisplay-internal) |