From: Kai Großjohann Date: Fri, 26 Jul 2002 20:40:53 +0000 (+0000) Subject: (eshell): Numeric prefix arg means to switch X-Git-Tag: ttn-vms-21-2-B4~13847 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=818001cc232d6800b41aa6804330351601af7acc;p=emacs.git (eshell): Numeric prefix arg means to switch to the session with that number. Old behavior still available with nonumeric prefix args. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8b3dfd460b0..d12e77242e3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2002-07-26 Kai Gro,b_(Bjohann + + * eshell/eshell.el (eshell): Numeric prefix arg means to switch + to the session with that number. Old behavior still available + with nonumeric prefix args. + 2002-07-08 Simon Josefsson * mail/mail-extr.el (mail-extr-all-top-level-domains): Update names. diff --git a/lisp/eshell/eshell.el b/lisp/eshell/eshell.el index 106a161f8fb..4f5b54294c6 100644 --- a/lisp/eshell/eshell.el +++ b/lisp/eshell/eshell.el @@ -352,13 +352,20 @@ the tasks accomplished by such tools." The buffer used for Eshell sessions is determined by the value of `eshell-buffer-name'. If there is already an Eshell session active in that buffer, Emacs will simply switch to it. Otherwise, a new session -will begin. A new session is always created if the prefix -argument ARG is specified. Returns the buffer selected (or created)." +will begin. A numeric prefix arg (as in `C-u 42 M-x eshell RET') +switches to the session with that number, creating it if necessary. A +nonnumeric prefix arg means to create a new session. Returns the +buffer selected (or created)." (interactive "P") (assert eshell-buffer-name) - (let ((buf (if arg - (generate-new-buffer eshell-buffer-name) - (get-buffer-create eshell-buffer-name)))) + (let ((buf (cond ((numberp arg) + (get-buffer-create (format "%s<%d>" + eshell-buffer-name + arg))) + (arg + (generate-new-buffer eshell-buffer-name)) + (t + (get-buffer-create eshell-buffer-name))))) ;; Simply calling `pop-to-buffer' will not mimic the way that ;; shell-mode buffers appear, since they always reuse the same ;; window that that command was invoked from. To achieve this,