Subject: bug#1975: closed (Re: bug#1975: Reusing dead shell buffers)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 30 Nov 2012 08:09:02 +0000

Your bug report

#1975: Reusing dead shell buffers

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
1975: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=1975
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#1975: Reusing dead shell buffers
From: Chong Yidong <[email-masked]>
To: Lars Magne Ingebrigtsen <[email-masked]>
Cc: [email-masked], "Jose E. Marchesi" <[email-masked]>
Date: Fri, 30 Nov 2012 16:06:33 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Lars Magne Ingebrigtsen <[email-masked]> writes:

> Currently `C-u M-x shell' defaults to "*shell*", which seems pretty
> nonsensical.  Surely if the user wanted to use that buffer, then she
> would have just typed `M-x shell'.
>
> So perhaps `C-u M-x shell' should just default to the current buffer
> instead?

Agreed.  Implemented in trunk.

Subject: Reusing dead shell buffers
From: [email-masked]
To: [email-masked]
Date: Sun, 11 Jan 2009 21:19:21 +0100
List-Id: "Emacs development discussions." <emacs-devel.gnu.org>

Severity: wishlist

[ resent from
  http://lists.gnu.org/archive/html/emacs-devel/2009-01/msg00295.html ]

Hi.

Just a tiny patch for shell.

The patch assumes that the person launching M-xshell while in a
shell-mode buffer with a terminated process really wants to launch a
shell process in the current buffer instead to switch to "*shell*".

The semantics of C-uM-xshell are not changed by the patch.

Index: shell.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/shell.el,v
retrieving revision 1.165
diff -u -r1.165 shell.el
--- shell.el	5 Jan 2009 03:19:45 -0000	1.165
+++ shell.el	11 Jan 2009 19:46:35 -0000
@@ -555,6 +555,9 @@
 		      (read-file-name
 		       "Default directory: " default-directory default-directory
 		       t nil 'file-directory-p))))))))
+  ;; If the current buffer is a dead shell buffer, use it.
+  (if (and (not buffer) (eq major-mode 'shell-mode))
+      (setq buffer (current-buffer)))
   (setq buffer (get-buffer-create (or buffer "*shell*")))
   ;; Pop to buffer, so that the buffer's window will be correctly set
   ;; when we call comint (so that comint sets the COLUMNS env var properly).