Mercurial > emacs
diff lisp/eshell/eshell.el @ 46705:9f4f7bee7b8d
(eshell): Numeric prefix arg means to switch
to the session with that number. Old behavior still available
with nonumeric prefix args.
| author | Kai Gro?johann <kgrossjo@eu.uu.net> |
|---|---|
| date | Fri, 26 Jul 2002 20:40:53 +0000 |
| parents | 358616bbe6a1 |
| children | dfc70cb4fd02 d7ddb3e565de |
line wrap: on
line diff
--- a/lisp/eshell/eshell.el Fri Jul 26 15:39:12 2002 +0000 +++ b/lisp/eshell/eshell.el Fri Jul 26 20:40:53 2002 +0000 @@ -352,13 +352,20 @@ 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,
