]> git.eshelyaron.com Git - emacs.git/commitdiff
Support program switches in 'comint-run' command
authorPhil Sainty <psainty@orcon.net.nz>
Thu, 11 Jul 2019 15:33:12 +0000 (17:33 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 11 Jul 2019 16:27:12 +0000 (18:27 +0200)
* etc/NEWS:
* doc/emacs/misc.texi: Describe new behaviour (bug#33037).
* lisp/comint.el (comint-run): Add optional SWITCHES argument.
With prefix argument C-u, prompt for SWITCHES.

doc/emacs/misc.texi
etc/NEWS
lisp/comint.el

index cfc50d33b5f112a618f52c1eab7ca1f137b60ce9..9339626cc4537cf9c009cea7f4f0a450d5768ddc 100644 (file)
@@ -1099,7 +1099,8 @@ the directory tracking feature, and a few user commands.
 @findex comint-run
   You can use @kbd{M-x comint-run} to execute any program of your choice
 in a subprocess using unmodified Comint mode---without the
-specializations of Shell mode.
+specializations of Shell mode.  To pass arguments to the program, use
+@kbd{C-u M-x comint-run}.
 
 @node Shell Prompts
 @subsection Shell Prompts
index 532babd0fa6af20eea80fc9780f41b2e6c0bc7da..89111b1b7def551bb705e80b145d511cb4e615af 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -754,6 +754,10 @@ better emulate 'M-.' in both Bash and zsh, since the former counts
 from the beginning of the arguments, while the latter counts from the
 end.
 
++++
+*** 'comint-run' can now accept a list of switches to pass to the program.
+'C-u M-x comint-run' will prompt for the switches interactively.
+
 ** SQL
 
 *** SQL Indent Minor Mode
index 55e64865a2760c9e86c141c41b8c8380c8305b56..049e9e71a79979112b3993b6a7e67cba5a264652 100644 (file)
@@ -760,16 +760,24 @@ Returns the (possibly newly created) process buffer."
   (apply #'make-comint-in-buffer name nil program startfile switches))
 
 ;;;###autoload
-(defun comint-run (program)
-  "Run PROGRAM in a Comint buffer and switch to it.
+(defun comint-run (program &optional switches)
+  "Run PROGRAM in a Comint buffer and switch to that buffer.
+
+If SWITCHES are supplied, they are passed to PROGRAM.  With prefix argument
+\\[universal-argument] prompt for SWITCHES as well as PROGRAM.
+
 The buffer name is made by surrounding the file name of PROGRAM with `*'s.
 The file name is used to make a symbol name, such as `comint-sh-hook', and any
 hooks on this symbol are run in the buffer.
+
 See `make-comint' and `comint-exec'."
   (declare (interactive-only make-comint))
-  (interactive "sRun program: ")
+  (interactive
+   (list (read-string "Run program: ")
+         (and (consp current-prefix-arg)
+              (split-string-and-unquote (read-string "Switches: ")))))
   (let ((name (file-name-nondirectory program)))
-    (switch-to-buffer (make-comint name program))
+    (switch-to-buffer (apply #'make-comint name program nil switches))
     (run-hooks (intern-soft (concat "comint-" name "-hook")))))
 
 (defun comint-exec (buffer name command startfile switches)