At Tue, 26 Jan 2010 16:30:35 +0000, Eric S Fraga wrote: > > […] > > To your list, I would also add: > > * show number of total+unread messages in a thread in the summary > window when thread is collapsed. This would be particularly > useful for nntp folders with large (mostly rubbish) volume. > > Thunderbird may or may not do this but I'm not about to spend time on > TB... ;-) OK, done! Inspired by x/y/z format in summary. Use %u in your wl-summary-line-format. This code may or may not be intolerably slow. While I am at it, I also have some code that inserts a > or >> (inspired by gmail) in the summary line if you are, respectively, a recipient, or the *only* recipient of a message. Use %E in wl-summary-line-format. (Ron Isaacson supplied the original version, which inserted a * if the message was to/cc you.) If there is agreement that these are useful and are not taking up valuable % strings in wl-summary-line-format-spec-alist I can create patches. Probably I should use another character for %E because that is what Ron Isaacson originally used. best, Erik Hetzner
(defun egh:wl-thread-entity-get-new/unread/all-children-nums (entity) (let ((new-count 0) (unread-count 0) (all-count 0) children msgs-stack (msgs (list (car entity)))) (while msgs (setq msgs (cdr msgs)) (setq children (wl-thread-entity-get-children entity)) (if (null children) (while (and (null msgs) msgs-stack) (setq msgs (wl-pop msgs-stack))) (mapcar (lambda (num) (let ((flags (elmo-message-flags wl-summary-buffer-elmo-folder num))) (if (member 'unread flags) (setq unread-count (+ unread-count 1))) (if (member 'new flags) (setq new-count (+ new-count 1))) (setq all-count (+ all-count 1)))) children) (wl-push msgs msgs-stack) (setq msgs children)) (setq entity (wl-thread-get-entity (car msgs)))) (list new-count unread-count all-count))) (setq wl-summary-line-format-spec-alist (put-alist '?u '((if wl-thr-children-number (concat "+" (mapconcat (lambda (n) (number-to-string n)) (egh:wl-thread-entity-get-new/unread/all-children-nums (wl-thread-get-entity (elmo-message-entity-number wl-message-entity))) "/") ":") "")) wl-summary-line-format-spec-alist)) ;; Ron Isaacson supplied the original version. (defun egh:wl-summary-line-to-me () (let ((all-addresses (mapcar (lambda (a) (downcase (wl-address-header-extract-address a))) (append (elmo-message-entity-field wl-message-entity 'to t) (elmo-message-entity-field wl-message-entity 'cc t)))) (to-me nil)) (if (eq 1 (length all-addresses)) (if (member (car all-addresses) wl-user-mail-address-list) ">>" " ") ; » (progn (while (and all-addresses (not to-me)) (setq to-me (member (car all-addresses) wl-user-mail-address-list)) (setq all-addresses (cdr all-addresses))) (if to-me " >" " "))))) (setq wl-summary-line-format-spec-alist (put-alist '?E '((egh:wl-summary-line-to-me)) wl-summary-line-format-spec-alist))
Attachment:
pgpanARfM14HU.pgp
Description: PGP signature