]> git.eshelyaron.com Git - emacs.git/commitdiff
(eshell): Numeric prefix arg means to switch
authorKai Großjohann <kgrossjo@eu.uu.net>
Fri, 26 Jul 2002 20:40:53 +0000 (20:40 +0000)
committerKai Großjohann <kgrossjo@eu.uu.net>
Fri, 26 Jul 2002 20:40:53 +0000 (20:40 +0000)
to the session with that number.  Old behavior still available
with nonumeric prefix args.

lisp/ChangeLog
lisp/eshell/eshell.el

index 8b3dfd460b03bc5b4c4ae100b62c8c032bf5e4e3..d12e77242e34fb4a43e8748e90173ce00020052c 100644 (file)
@@ -1,3 +1,9 @@
+2002-07-26  Kai Gro\e,b_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+       * 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  <jas@extundo.com>
 
        * mail/mail-extr.el (mail-extr-all-top-level-domains): Update names.
index 106a161f8fb7c54659c16e47d16d1daf179c3e9e..4f5b54294c618195ce4550816ed56318f28c16db 100644 (file)
@@ -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,