* gnus-art.el (gnus-article-setup-buffer): Go to summary buffer first to test
authorKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 12 May 2006 06:18:16 +0000 (06:18 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 12 May 2006 06:18:16 +0000 (06:18 +0000)
 gnus-single-article-buffer which may be buffer-local.

* gnus-sum.el (gnus-summary-setup-buffer): Make gnus-single-article-buffer
 buffer-local and nil in ephemeral group;
 make gnus-article-buffer, gnus-article-current, and
 gnus-original-article-buffer always buffer-local.
(gnus-summary-exit): Kill article buffer belonging to ephemeral group.
(gnus-handle-ephemeral-exit): Don't move to next summary line.

lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-sum.el

index 90cef8a..0f12978 100644 (file)
@@ -1,3 +1,16 @@
+2006-05-12  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus-art.el (gnus-article-setup-buffer): Go to summary buffer
+       first to test gnus-single-article-buffer which may be buffer-local.
+
+       * gnus-sum.el (gnus-summary-setup-buffer): Make
+       gnus-single-article-buffer buffer-local and nil in ephemeral
+       group; make gnus-article-buffer, gnus-article-current, and
+       gnus-original-article-buffer always buffer-local.
+       (gnus-summary-exit): Kill article buffer belonging to ephemeral
+       group.
+       (gnus-handle-ephemeral-exit): Don't move to next summary line.
+
 2006-05-08  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * nnml.el (nnml-request-compact-group): Compressed files might not
index 173f96d..6f1e0e7 100644 (file)
@@ -3996,10 +3996,9 @@ commands:
     (setq gnus-article-buffer name)
     (setq gnus-original-article-buffer original)
     (setq gnus-article-mime-handle-alist nil)
-    ;; This might be a variable local to the summary buffer.
-    (unless gnus-single-article-buffer
-      (save-excursion
-       (set-buffer gnus-summary-buffer)
+    (with-current-buffer gnus-summary-buffer
+      ;; This might be a variable local to the summary buffer.
+      (unless gnus-single-article-buffer
        (setq gnus-article-buffer name)
        (setq gnus-original-article-buffer original)
        (gnus-set-global-variables)))
index 5b2bb85..05864bf 100644 (file)
@@ -3352,10 +3352,11 @@ display only a single character."
       (gnus-summary-mode group)
       (when gnus-carpal
        (gnus-carpal-setup-buffer 'summary))
-      (unless gnus-single-article-buffer
-       (make-local-variable 'gnus-article-buffer)
-       (make-local-variable 'gnus-article-current)
-       (make-local-variable 'gnus-original-article-buffer))
+      (when (gnus-group-quit-config group)
+       (set (make-local-variable 'gnus-single-article-buffer) nil))
+      (make-local-variable 'gnus-article-buffer)
+      (make-local-variable 'gnus-article-current)
+      (make-local-variable 'gnus-original-article-buffer)
       (setq gnus-newsgroup-name group)
       ;; Set any local variables in the group parameters.
       (gnus-summary-set-local-parameters gnus-newsgroup-name)
@@ -6843,6 +6844,7 @@ If FORCE (the prefix), also save the .newsrc file(s)."
     (gnus-run-hooks 'gnus-summary-prepare-exit-hook)
     ;; If we have several article buffers, we kill them at exit.
     (unless gnus-single-article-buffer
+      (gnus-kill-buffer gnus-article-buffer)
       (gnus-kill-buffer gnus-original-article-buffer)
       (setq gnus-article-current nil))
     (when gnus-use-cache
@@ -6981,19 +6983,11 @@ The state which existed when entering the ephemeral is reset."
             (gnus-set-global-variables))))
     (if (or (eq (cdr quit-config) 'article)
            (eq (cdr quit-config) 'pick))
-       (progn
-         ;; The current article may be from the ephemeral group
-         ;; thus it is best that we reload this article
-         ;;
-         ;; If we're exiting from a large digest, this can be
-         ;; extremely slow.  So, it's better not to reload it. -- jh.
-         ;;(gnus-summary-show-article)
-         (if (and (boundp 'gnus-pick-mode) (symbol-value 'gnus-pick-mode))
-             (gnus-configure-windows 'pick 'force)
-           (gnus-configure-windows (cdr quit-config) 'force)))
+       (if (and (boundp 'gnus-pick-mode) (symbol-value 'gnus-pick-mode))
+           (gnus-configure-windows 'pick 'force)
+         (gnus-configure-windows (cdr quit-config) 'force))
       (gnus-configure-windows (cdr quit-config) 'force))
     (when (eq major-mode 'gnus-summary-mode)
-      (gnus-summary-next-subject 1 nil t)
       (gnus-summary-recenter)
       (gnus-summary-position-point))))