# HG changeset patch # User Chong Yidong # Date 1229352966 0 # Node ID 9c48475923d7bc122d4288887b0c7fffd44f3de4 # Parent 0bc687931a56e3c2050d4a157e4ef30c46196fef (pmail): Call pmail-swap-buffers-maybe. (pmail-search): Call pmail-swap-buffers-maybe. diff -r 0bc687931a56 -r 9c48475923d7 lisp/mail/pmail.el --- a/lisp/mail/pmail.el Mon Dec 15 14:55:32 2008 +0000 +++ b/lisp/mail/pmail.el Mon Dec 15 14:56:06 2008 +0000 @@ -871,7 +871,7 @@ (find-file-noselect file-name)))) ;; Insure that the collection and view buffers are in sync and ;; insure that a message is not being edited. - (setq pmail-buffers-swapped-p nil) + (pmail-swap-buffers-maybe) (if (eq major-mode 'pmail-edit-mode) (error "Exit Pmail Edit mode before getting new mail")) ;; Insure that the Rmail file is in mbox format, the buffer is in @@ -2795,28 +2795,27 @@ (if (< n 0) "Reverse " "") regexp) (set-buffer pmail-buffer) - (pmail-maybe-set-message-counters) - (let ((omin (point-min)) - (omax (point-max)) - (opoint (point)) - win + (let ((orig-message pmail-current-message) + (msg pmail-current-message) (reversep (< n 0)) - (msg pmail-current-message)) + (opoint (if pmail-buffers-swapped-p (point))) + found) + (pmail-swap-buffers-maybe) + (pmail-maybe-set-message-counters) + (widen) (unwind-protect - (progn - (widen) - (while (/= n 0) - ;; Check messages one by one, advancing message number up or down - ;; but searching forward through each message. - (if reversep - (while (and (null win) (> msg 1)) - (setq msg (1- msg) - win (pmail-search-message msg regexp))) - (while (and (null win) (< msg pmail-total-messages)) - (setq msg (1+ msg) - win (pmail-search-message msg regexp)))) - (setq n (+ n (if reversep 1 -1))))) - (if win + (while (/= n 0) + ;; Check messages one by one, advancing message number up or + ;; down but searching forward through each message. + (if reversep + (while (and (null found) (> msg 1)) + (setq msg (1- msg) + found (pmail-search-message msg regexp))) + (while (and (null found) (< msg pmail-total-messages)) + (setq msg (1+ msg) + found (pmail-search-message msg regexp)))) + (setq n (+ n (if reversep 1 -1)))) + (if found (progn (pmail-show-message-maybe msg) ;; Search forward (if this is a normal search) or backward @@ -2834,8 +2833,8 @@ (message "%sPmail search for %s...done" (if reversep "Reverse " "") regexp)) - (goto-char opoint) - (narrow-to-region omin omax) + (pmail-show-message-maybe orig-message) + (if opoint (goto-char opoint)) (ding) (message "Search failed: %s" regexp)))))