[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master e55ceca8c7 2/2: Avoid repeated prompts in `M-x shell' if using ~/
From: |
Lars Ingebrigtsen |
Subject: |
master e55ceca8c7 2/2: Avoid repeated prompts in `M-x shell' if using ~/.emacs_bash |
Date: |
Thu, 17 Mar 2022 10:04:51 -0400 (EDT) |
branch: master
commit e55ceca8c787c84ed43e5be3c6dbe3d7aad14f8b
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Avoid repeated prompts in `M-x shell' if using ~/.emacs_bash
* lisp/shell.el (shell): Use `shell-eval-command' to avoid
repeated prompts (bug#9961).
---
lisp/shell.el | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/lisp/shell.el b/lisp/shell.el
index 7d5cb475eb..565ededa1e 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -783,17 +783,26 @@ Make the shell buffer the current buffer, and return it.
(getenv "ESHELL") shell-file-name))
(name (file-name-nondirectory prog))
(startfile (concat "~/.emacs_" name))
- (xargs-name (intern-soft (concat "explicit-" name "-args"))))
+ (xargs-name (intern-soft (concat "explicit-" name "-args")))
+ (start-point (point)))
(unless (file-exists-p startfile)
(setq startfile (locate-user-emacs-file
(concat "init_" name ".sh"))))
(setq-local shell--start-prog (file-name-nondirectory prog))
(apply #'make-comint-in-buffer "shell" buffer prog
- (if (file-exists-p startfile) startfile)
+ nil
(if (and xargs-name (boundp xargs-name))
(symbol-value xargs-name)
'("-i")))
- (shell-mode))))
+ (shell-mode)
+ (when (file-exists-p startfile)
+ ;; Wait until the prompt has appeared.
+ (while (= start-point (point))
+ (sleep-for 0.1))
+ (shell-eval-command
+ (with-temp-buffer
+ (insert-file-contents startfile)
+ (buffer-string)))))))
buffer)
;;; Directory tracking