Mention that processes start in default-directory (Bug#18515)

* doc/lispref/processes.texi (Synchronous Processes):
(Asynchronous Processes):
* lisp/subr.el (start-process):
* src/callproc.c (call-process): Mention that the subprocess starts in
`default-directory' when local, suggest `start-file-process' and
`process-file' otherwise.
This commit is contained in:
Noam Postavsky 2017-04-01 23:15:46 -04:00
parent 856ec9ffa1
commit c7ed57eaef
3 changed files with 21 additions and 3 deletions

View file

@ -300,8 +300,11 @@ system, much like text written into a file. @xref{Coding Systems}.
@defun call-process program &optional infile destination display &rest args @defun call-process program &optional infile destination display &rest args
This function calls @var{program} and waits for it to finish. This function calls @var{program} and waits for it to finish.
The current working directory of the subprocess is The current working directory of the subprocess is set to the current
@code{default-directory}. buffer's value of @code{default-directory} if that is local (as
determined by @code{unhandled-file-name-directory}), or "~" otherwise.
If you want to run a process in a remote directory use
@code{process-file}.
The standard input for the new process comes from file @var{infile} if The standard input for the new process comes from file @var{infile} if
@var{infile} is not @code{nil}, and from the null device otherwise. @var{infile} is not @code{nil}, and from the null device otherwise.
@ -677,6 +680,12 @@ created with @code{make-pipe-process}, described below.
The original argument list, modified with the actual connection The original argument list, modified with the actual connection
information, is available via the @code{process-contact} function. information, is available via the @code{process-contact} function.
The current working directory of the subprocess is set to the current
buffer's value of @code{default-directory} if that is local (as
determined by `unhandled-file-name-directory'), or "~" otherwise. If
you want to run a process in a remote direcotry use
@code{start-file-process}.
@end defun @end defun
@defun make-pipe-process &rest args @defun make-pipe-process &rest args

View file

@ -1970,7 +1970,12 @@ arguments PROGRAM-ARGS are strings to give program as arguments.
If you want to separate standard output from standard error, use If you want to separate standard output from standard error, use
`make-process' or invoke the command through a shell and redirect `make-process' or invoke the command through a shell and redirect
one of them using the shell syntax." one of them using the shell syntax.
The process runs in `default-directory' if that is local (as
determined by `unhandled-file-name-directory'), or \"~\"
otherwise. If you want to run a process in a remote directory
use `start-file-process'."
(unless (fboundp 'make-process) (unless (fboundp 'make-process)
(error "Emacs was compiled without subprocess support")) (error "Emacs was compiled without subprocess support"))
(apply #'make-process (apply #'make-process

View file

@ -240,6 +240,10 @@ Otherwise it waits for PROGRAM to terminate
and returns a numeric exit status or a signal description string. and returns a numeric exit status or a signal description string.
If you quit, the process is killed with SIGINT, or SIGKILL if you quit again. If you quit, the process is killed with SIGINT, or SIGKILL if you quit again.
The process runs in `default-directory' if that is local (as
determined by `unhandled-file-name-directory'), or "~" otherwise. If
you want to run a process in a remote directory use `process-file'.
usage: (call-process PROGRAM &optional INFILE DESTINATION DISPLAY &rest ARGS) */) usage: (call-process PROGRAM &optional INFILE DESTINATION DISPLAY &rest ARGS) */)
(ptrdiff_t nargs, Lisp_Object *args) (ptrdiff_t nargs, Lisp_Object *args)
{ {