X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=wl%2Fwl-folder.el;h=a8f764d4f18ad037f9b418963f969b167ce18e3c;hb=f0e53b20ad8af3c3bedc5334ff61ae4c3d087435;hp=c4223fa5da46c57fbdfcdea98f4a4da75920e5bd;hpb=8b003dd16e3d4a1f0d29b5fcd0f57a2ee294f967;p=elisp%2Fwanderlust.git diff --git a/wl/wl-folder.el b/wl/wl-folder.el index c4223fa..a8f764d 100644 --- a/wl/wl-folder.el +++ b/wl/wl-folder.el @@ -123,14 +123,12 @@ 'wl-folder-prev-unread) (define-key wl-folder-mode-map [(shift button5)] 'wl-folder-next-unread)) - (if wl-on-nemacs - (defun wl-folder-setup-mouse ()) - (defun wl-folder-setup-mouse () - (define-key wl-folder-mode-map [mouse-2] 'wl-folder-click) - (define-key wl-folder-mode-map [mouse-4] 'wl-folder-prev-entity) - (define-key wl-folder-mode-map [mouse-5] 'wl-folder-next-entity) - (define-key wl-folder-mode-map [S-mouse-4] 'wl-folder-prev-unread) - (define-key wl-folder-mode-map [S-mouse-5] 'wl-folder-next-unread)))) + (defun wl-folder-setup-mouse () + (define-key wl-folder-mode-map [mouse-2] 'wl-folder-click) + (define-key wl-folder-mode-map [mouse-4] 'wl-folder-prev-entity) + (define-key wl-folder-mode-map [mouse-5] 'wl-folder-next-entity) + (define-key wl-folder-mode-map [S-mouse-4] 'wl-folder-prev-unread) + (define-key wl-folder-mode-map [S-mouse-5] 'wl-folder-next-unread))) (if wl-folder-mode-map nil @@ -147,6 +145,7 @@ (define-key wl-folder-mode-map "w" 'wl-draft) (define-key wl-folder-mode-map "W" 'wl-folder-write-current-folder) (define-key wl-folder-mode-map "\C-c\C-o" 'wl-jump-to-draft-buffer) + (define-key wl-folder-mode-map "\C-c\C-a" 'wl-addrmgr) (define-key wl-folder-mode-map "rS" 'wl-folder-sync-region) (define-key wl-folder-mode-map "S" 'wl-folder-sync-current-entity) (define-key wl-folder-mode-map "rs" 'wl-folder-check-region) @@ -173,8 +172,7 @@ (define-key wl-folder-mode-map "<" 'beginning-of-buffer) (define-key wl-folder-mode-map ">" 'end-of-buffer) ;; wl-fldmgr - (unless wl-on-nemacs - (define-key wl-folder-mode-map "m" 'wl-fldmgr-mode-map)) + (define-key wl-folder-mode-map "m" 'wl-fldmgr-mode-map) (define-key wl-folder-mode-map "*" 'wl-fldmgr-make-multi) (define-key wl-folder-mode-map "+" 'wl-fldmgr-make-group) (define-key wl-folder-mode-map "|" 'wl-fldmgr-make-filter) @@ -651,18 +649,13 @@ Optional argument ARG is repeart count." ; (wl-highlight-folder-current-line) ))) ((setq fld-name (wl-folder-entity-name)) - (if wl-on-nemacs - (progn - (wl-folder-set-current-entity-id - (wl-folder-get-entity-from-buffer)) - (setq fld-name (wl-folder-get-realname fld-name))) - (wl-folder-set-current-entity-id - (get-text-property (point) 'wl-folder-entity-id)) - (setq fld-name (wl-folder-get-folder-name-by-id - wl-folder-buffer-cur-entity-id))) + (wl-folder-set-current-entity-id + (get-text-property (point) 'wl-folder-entity-id)) + (setq fld-name (wl-folder-get-folder-name-by-id + wl-folder-buffer-cur-entity-id)) (let ((summary-buf (wl-summary-get-buffer-create fld-name arg)) error-selecting) - (if wl-stay-folder-window + (if (or wl-stay-folder-window wl-summary-use-frame) (wl-folder-select-buffer summary-buf) (if (and summary-buf (get-buffer-window summary-buf)) @@ -818,6 +811,8 @@ Optional argument ARG is repeart count." (not (elmo-folder-exists-p folder))) (wl-folder-create-subr folder) (signal (car err) (cdr err)))))) + (new (elmo-diff-new nums)) + (nums (cons (elmo-diff-unread nums) (elmo-diff-all nums))) unread unsync nomif) (if (and (eq wl-folder-notify-deleted 'sync) (car nums) @@ -832,14 +827,15 @@ Optional argument ARG is repeart count." (setq unread (or ;; If server diff, All unreads are ; treated as unsync. (if (elmo-folder-use-flag-p folder) - 0) + (car nums)) (elmo-folder-get-info-unread folder) (wl-summary-count-unread (elmo-msgdb-mark-load (elmo-folder-msgdb-path folder))))) (setq unread (min unread (- (or (cdr nums) 0) (or (car nums) 0)))) + (when new (setq unread (- unread new))) (wl-folder-entity-hashtb-set wl-folder-entity-hashtb entity - (list (car nums) + (list (or new (car nums)) unread (cdr nums)) (get-buffer wl-folder-buffer-name))) @@ -847,7 +843,7 @@ Optional argument ARG is repeart count." (sit-for 0) (list (if wl-folder-notify-deleted (car nums) - (max (or (car nums) 0))) unread (cdr nums)))) + (or new (max (or (car nums) 0)))) unread (cdr nums)))) (defun wl-folder-check-entity-async (entity &optional auto) (let ((elmo-nntp-groups-async t) @@ -998,6 +994,7 @@ If current line is group folder, check all sub entries." (let ((wl-summary-buffer-name (concat wl-summary-buffer-name (symbol-name this-command))) + (wl-summary-use-frame nil) (wl-summary-always-sticky-folder-list nil)) (save-window-excursion (save-excursion @@ -1048,6 +1045,7 @@ If current line is group folder, check all subfolders." (let ((wl-summary-buffer-name (concat wl-summary-buffer-name (symbol-name this-command))) + (wl-summary-use-frame nil) (wl-summary-always-sticky-folder-list nil)) (wl-summary-goto-folder-subr entity (wl-summary-get-sync-range folder) @@ -1426,6 +1424,8 @@ Entering Folder mode calls the value of `wl-folder-mode-hook'." (use-local-map wl-folder-mode-map) (setq buffer-read-only t) (setq inhibit-read-only nil) + (make-local-variable 'truncate-partial-width-windows) + (setq truncate-partial-width-windows nil) (setq truncate-lines t) (setq wl-folder-buffer-cur-entity-id nil wl-folder-buffer-cur-path nil @@ -1469,14 +1469,24 @@ Entering Folder mode calls the value of `wl-folder-mode-hook'." (switch-to-buffer (get-buffer-create wl-folder-buffer-name))) (set-buffer wl-folder-buffer-name) (wl-folder-mode) - (sit-for 0) - (wl-folder-init) + ;; Initialization. + (setq wl-folder-entity-id 0) + (wl-folder-entity-assign-id wl-folder-entity) + (setq wl-folder-entity-hashtb + (wl-folder-create-entity-hashtb wl-folder-entity)) + (setq wl-folder-elmo-folder-hashtb (elmo-make-hash wl-folder-entity-id)) + (setq wl-folder-group-alist + (wl-folder-create-group-alist wl-folder-entity)) + (setq wl-folder-newsgroups-hashtb + (wl-folder-create-newsgroups-hashtb wl-folder-entity)) + (wl-folder-init-info-hashtb) (let ((inhibit-read-only t) (buffer-read-only nil)) (erase-buffer) (setcdr (assoc (car wl-folder-entity) wl-folder-group-alist) t) (save-excursion (wl-folder-insert-entity " " wl-folder-entity))) + (sit-for 0) (set-buffer-modified-p nil) (setq initialize t)) initialize)) @@ -1984,28 +1994,16 @@ Entering Folder mode calls the value of `wl-folder-mode-hook'." (defvar wl-folder-init-function 'wl-local-folder-init) (defun wl-folder-init () - "Call `wl-folder-init-function' function." + "Return top-level folder entity." (interactive) - (funcall wl-folder-init-function)) + (if wl-use-acap + (wl-acap-init) + (funcall wl-folder-init-function))) (defun wl-local-folder-init () "Initialize local folder." (message "Initializing folder...") - (save-excursion - (set-buffer wl-folder-buffer-name) - (let ((entity (wl-folder-create-folder-entity)) - (inhibit-read-only t)) - (setq wl-folder-entity entity) - (setq wl-folder-entity-id 0) - (wl-folder-entity-assign-id wl-folder-entity) - (setq wl-folder-entity-hashtb - (wl-folder-create-entity-hashtb entity)) - (setq wl-folder-elmo-folder-hashtb (elmo-make-hash wl-folder-entity-id)) - (setq wl-folder-group-alist - (wl-folder-create-group-alist entity)) - (setq wl-folder-newsgroups-hashtb - (wl-folder-create-newsgroups-hashtb wl-folder-entity)) - (wl-folder-init-info-hashtb))) + (setq wl-folder-entity (wl-folder-create-folder-entity)) (message "Initializing folder...done")) (defun wl-folder-get-realname (petname) @@ -2202,7 +2200,7 @@ Use `wl-subscribed-mailing-list'." (setq id (wl-folder-get-entity-id entity))) (wl-folder-set-current-entity-id id)) (setq summary-buf (wl-summary-get-buffer-create fld-name sticky)) - (if wl-stay-folder-window + (if (or wl-stay-folder-window wl-summary-use-frame) (wl-folder-select-buffer summary-buf) (if (and summary-buf (get-buffer-window summary-buf)) @@ -2668,6 +2666,7 @@ Use `wl-subscribed-mailing-list'." (let ((wl-summary-buffer-name (concat wl-summary-buffer-name (symbol-name this-command))) + (wl-summary-use-frame nil) (wl-summary-always-sticky-folder-list nil)) (wl-summary-goto-folder-subr entity (wl-summary-get-sync-range