]> git.eshelyaron.com Git - emacs.git/commitdiff
Document that 'make-process' mixes the output streams
authorPhilipp Stephani <phst@google.com>
Wed, 4 Apr 2018 10:14:56 +0000 (12:14 +0200)
committerPhilipp Stephani <phst@google.com>
Sat, 7 Apr 2018 20:15:42 +0000 (22:15 +0200)
* 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.

doc/lispref/processes.texi
src/process.c
test/src/process-tests.el

index af177e053cc00500c2debf026deefefea37ab954..3e26f57798230f7ccf7284fc7612a666482addbb 100644 (file)
@@ -681,7 +681,9 @@ a default sentinel will be used, which can be overridden later.
 @item :stderr @var{stderr}
 Associate @var{stderr} with the standard error of the process.  A
 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
 
 The original argument list, modified with the actual connection
index ed2cab7b51f6db457417400676f7fc2d0b8c8c7e..c357a8bdc3378f67cd9e8565b94d12daba40724c 100644 (file)
@@ -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
 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)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
index 7d355602297c7fe1380012c25e2dbbecb86952c0..849676ea8f0bef967a4ed5b0443bab4a2adccb9e 100644 (file)
               (should-not (process-query-on-exit-flag 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)
 ;; process-tests.el ends here.