Commit 8df23a82 authored by Philipp Stephani's avatar Philipp Stephani

Document that 'make-process' mixes the output streams

* doc/lispref/processes.texi (Asynchronous Processes):
* src/process.c (Fmake_process): Document that standard error is mixed
with standard output if STDERR is nil.

* test/src/process-tests.el (make-process/mix-stderr): New unit test.
parent 55525480
...@@ -681,7 +681,9 @@ a default sentinel will be used, which can be overridden later. ...@@ -681,7 +681,9 @@ a default sentinel will be used, which can be overridden later.
@item :stderr @var{stderr} @item :stderr @var{stderr}
Associate @var{stderr} with the standard error of the process. A Associate @var{stderr} with the standard error of the process. A
non-@code{nil} value should be either a buffer or a pipe process non-@code{nil} value should be either a buffer or a pipe process
created with @code{make-pipe-process}, described below. created with @code{make-pipe-process}, described below. If
@var{stderr} is @code{nil}, standard error is mixed with standard
output, and both are sent to @var{buffer} or @var{filter}.
@end table @end table
The original argument list, modified with the actual connection The original argument list, modified with the actual connection
......
...@@ -1657,7 +1657,8 @@ to use a pty, or nil to use the default specified through ...@@ -1657,7 +1657,8 @@ to use a pty, or nil to use the default specified through
:stderr STDERR -- STDERR is either a buffer or a pipe process attached :stderr STDERR -- STDERR is either a buffer or a pipe process attached
to the standard error of subprocess. Specifying this implies to the standard error of subprocess. Specifying this implies
`:connection-type' is set to `pipe'. `:connection-type' is set to `pipe'. If STDERR is nil, standard error
is mixed with standard output and sent to BUFFER or FILTER.
usage: (make-process &rest ARGS) */) usage: (make-process &rest ARGS) */)
(ptrdiff_t nargs, Lisp_Object *args) (ptrdiff_t nargs, Lisp_Object *args)
......
...@@ -181,5 +181,23 @@ ...@@ -181,5 +181,23 @@
(should-not (process-query-on-exit-flag process)))) (should-not (process-query-on-exit-flag process))))
(kill-process process))))) (kill-process process)))))
(ert-deftest make-process/mix-stderr ()
"Check that ‘make-process’ mixes the output streams if STDERR is nil."
(skip-unless (executable-find shell-file-name))
(with-temp-buffer
(let ((process (make-process
:name "mix-stderr"
:command (list shell-file-name shell-command-switch
"echo stdout && echo stderr >&2")
:buffer (current-buffer)
:sentinel #'ignore
:noquery t
:connection-type 'pipe)))
(while (process-live-p process)
(accept-process-output process))
(should (eq (process-status process) 'exit))
(should (eq (process-exit-status process) 0))
(should (equal (buffer-string) "stdout\nstderr\n")))))
(provide 'process-tests) (provide 'process-tests)
;; process-tests.el ends here. ;; process-tests.el ends here.
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