changeset 68112:604ac165c0ad

(mh-rescan-folder): Try to keep cursor at current message, even if cur sequence is no longer present (closes SF #1207247).
author Bill Wohler <wohler@newt.com>
date Tue, 10 Jan 2006 01:56:32 +0000
parents 3f3efc6d4bd7
children 92cb4eaf9123
files lisp/mh-e/ChangeLog lisp/mh-e/mh-e.el
diffstat 2 files changed, 10 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mh-e/ChangeLog	Tue Jan 10 01:53:05 2006 +0000
+++ b/lisp/mh-e/ChangeLog	Tue Jan 10 01:56:32 2006 +0000
@@ -1,5 +1,9 @@
 2006-01-09  Bill Wohler  <wohler@newt.com>
 
+	* mh-e.el (mh-rescan-folder): Try to keep cursor at current
+	message, even if cur sequence is no longer present (closes SF
+	#1207247).
+
 	* mh-comp.el: Use ";; Shush compiler." comment consistently per
 	Mark's suggestion.
 	(mh-letter-mode): Derive from mail-mode and delete code copied
--- a/lisp/mh-e/mh-e.el	Tue Jan 10 01:53:05 2006 +0000
+++ b/lisp/mh-e/mh-e.el	Tue Jan 10 01:56:32 2006 +0000
@@ -1208,8 +1208,13 @@
                                         mh-interpret-number-as-range-flag)
                        nil)))
   (setq mh-next-direction 'forward)
-  (let ((threaded-flag (memq 'unthread mh-view-ops)))
+  (let ((threaded-flag (memq 'unthread mh-view-ops))
+        (msg-num (mh-get-msg-num nil)))
     (mh-scan-folder mh-current-folder (or range "all") dont-exec-pending)
+    ;; If there isn't a cur sequence, mh-scan-folder goes to the first message.
+    ;; Try to stay where we were.
+    (if (null (car (mh-seq-to-msgs 'cur)))
+        (mh-goto-msg msg-num t t))
     (cond (threaded-flag (mh-toggle-threads))
           (mh-index-data (mh-index-insert-folder-headers)))))
 
@@ -1293,7 +1298,6 @@
   (if (not (mh-outstanding-commands-p))
       (mh-set-folder-modified-p nil)))
 
-
 (defun mh-folder-line-matches-show-buffer-p ()
   "Return t if the message under point in folder-mode is in the show buffer.
 Return nil in any other circumstance (no message under point, no
@@ -1474,7 +1478,6 @@
       (setq mh-previous-window-config config)))
   nil)
 
-
 (defun mh-update-sequences ()
   "Flush MH-E's state out to MH.
 
@@ -2262,7 +2265,6 @@
       (mh-remove-sequence-notation msg nil t))
     (clrhash mh-sequence-notation-history)))
 
-
 (defun mh-goto-cur-msg (&optional minimal-changes-flag)
   "Position the cursor at the current message.
 When optional argument MINIMAL-CHANGES-FLAG is non-nil, the