emacs-diffs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]