Commit 3a34f57c authored by Juri Linkov's avatar Juri Linkov

* lisp/simple.el (shell-command-width): New defcustom.

(shell-command): Use it.  (Bug#35055)
parent ad652a3b
Pipeline #1273 failed with stage
in 60 minutes
......@@ -1064,6 +1064,11 @@ followed when Emacs writes the relevant history variables to the disk.
*** The variable 'shell-file-name' can be set now as connection-local
variable for remote shells. It still defaults to "/bin/sh".
** Single shell commands
*** 'shell-command-width' defines the number of output columns
for asynchronous shell command.
** Pcomplete
*** The function 'pcomplete-uniquify-list' has been renamed from
......
......@@ -3351,6 +3351,15 @@ is output."
:group 'shell
:version "26.1")
(defcustom shell-command-width nil
"Number of columns available for asynchronous shell command output.
If nil, use the shell default number (usually 80 columns).
If a positive integer, use a fixed width for command output."
:type '(choice (const :tag "Use system limit" nil)
(integer :tag "Fixed width" :value 80))
:group 'shell
:version "27.1")
(defcustom shell-command-dont-erase-buffer nil
"If non-nil, output buffer is not erased between shell commands.
Also, a non-nil value sets the point in the output buffer
......@@ -3614,8 +3623,13 @@ impose the use of a shell (with its need to quote arguments)."
(with-current-buffer buffer
(shell-command--save-pos-or-erase)
(setq default-directory directory)
(setq proc
(start-process-shell-command "Shell" buffer command))
(let ((process-environment
(if (natnump shell-command-width)
(cons (format "COLUMNS=%d" shell-command-width)
process-environment)
process-environment)))
(setq proc
(start-process-shell-command "Shell" buffer command)))
(setq mode-line-process '(":%s"))
(require 'shell) (shell-mode)
(set-process-sentinel proc #'shell-command-sentinel)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment