Hi all,

I've attached a patch that changes the default behavior of the news
reader's `news-select-article' command. Right now, when you select an
article in the newsgroup buffer, your current buffer is switched to
the article's buffer, and you lose your view of the group.

This patch changes the default behavior to instead split your Edwin
frame and open the article in the other window, to more closely match
the way the IMAIL summary buffer works.

However, we leave a prefix argument in there so folks can still use
the old behavior if they want. Alternatively, this could be redone to
make the old behavior the default, and you'd need the prefix arg to
get the new behavior.

What do y'all think?
diff --git a/src/edwin/snr.scm b/src/edwin/snr.scm
index 14fce58..51cab4a 100644
--- a/src/edwin/snr.scm
+++ b/src/edwin/snr.scm
@@ -2128,22 +2128,26 @@ This unmarks the article indicated by point and any 
other articles in
                (update-buffer-news-thread-status buffer thread)))))))
 
 (define-command news-select-article
-  "Select a buffer containing the News article indicated by point."
-  ()
-  (lambda ()
-    (select-buffer
-     (let ((buffer (selected-buffer)))
-       (cond ((news-article-buffer? buffer)
-             buffer)
-            ((news-group-buffer? buffer)
-             (call-with-values
-                 (lambda ()
-                   (get-article-buffer buffer (current-news-header) #t))
-               (lambda (buffer new?)
-                 new?
-                 buffer)))
-            (else
-             (editor-error "No article selected.")))))))
+  "Select a buffer in the other window containing the News article at point.
+With prefix arg, select the buffer in the same window."
+  "P"
+  (lambda (same-window?)
+    (let ((proc (if same-window?
+                    select-buffer
+                    select-buffer-other-window)))
+      (proc
+       (let ((buffer (selected-buffer)))
+         (cond ((news-article-buffer? buffer)
+                buffer)
+               ((news-group-buffer? buffer)
+                (call-with-values
+                    (lambda ()
+                      (get-article-buffer buffer (current-news-header) #t))
+                  (lambda (buffer new?)
+                    new?
+                    buffer)))
+               (else
+                (editor-error "No article selected."))))))))
 
 (define-command news-toggle-thread
   "Expand or collapse the current thread."

Subprocess exited abnormally with code 1.
_______________________________________________
MIT-Scheme-devel mailing list
MIT-Scheme-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/mit-scheme-devel

Reply via email to