aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/shell.el24
1 files changed, 15 insertions, 9 deletions
diff --git a/lisp/shell.el b/lisp/shell.el
index 9f07194d305..3d60af3f6d1 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -365,15 +365,21 @@ Otherwise, one argument `-i' is passed to the shell.
365 "/bin/sh")) 365 "/bin/sh"))
366 (name (file-name-nondirectory prog)) 366 (name (file-name-nondirectory prog))
367 (startfile (concat "~/.emacs_" name)) 367 (startfile (concat "~/.emacs_" name))
368 (xargs-name (intern-soft (concat "explicit-" name "-args")))) 368 (xargs-name (intern-soft (concat "explicit-" name "-args")))
369 (set-buffer (apply 'make-comint "shell" prog 369 shell-buffer)
370 (if (file-exists-p startfile) startfile) 370 (save-excursion
371 (if (and xargs-name (boundp xargs-name)) 371 (set-buffer (apply 'make-comint "shell" prog
372 (symbol-value xargs-name) 372 (if (file-exists-p startfile) startfile)
373 '("-i")))) 373 (if (and xargs-name (boundp xargs-name))
374 (shell-mode) 374 (symbol-value xargs-name)
375 (switch-to-buffer (current-buffer))) 375 '("-i"))))
376 (switch-to-buffer "*shell*"))) 376 (setq shell-buffer (current-buffer))
377 (shell-mode))
378 (pop-to-buffer shell-buffer))
379 (pop-to-buffer "*shell*")))
380
381;;; Don't do this when shell.el is loaded, only while dumping.
382;;;###autoload (add-hook 'same-window-buffer-names "*shell*")
377 383
378;;; Directory tracking 384;;; Directory tracking
379;;; =========================================================================== 385;;; ===========================================================================