mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 12:21:25 -08:00
More process-related doc and manual small edits
* doc/lispref/processes.texi (Output from Processes, Filter Functions): Mention waiting-for-user-input-p. (Sentinels, Query Before Exit, System Processes, Transaction Queues): (Network Servers, Datagrams, Network Processes, Network Options) (Network Feature Testing, Serial Ports): Copyedits. (Network): Add encrypted network overview paragraph. Cross-reference the Emacs-GnuTLS manual. Use @acronym. * lisp/net/network-stream.el (open-network-stream): Doc fix. * src/process.c (Fset_process_inherit_coding_system_flag) (Fset_process_query_on_exit_flag): Doc fix (mention return value). (Fmake_network_process): Doc fix.
This commit is contained in:
parent
d666446d7d
commit
016a35dfa7
6 changed files with 146 additions and 98 deletions
|
|
@ -1,3 +1,13 @@
|
|||
2012-04-18 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* processes.texi (Output from Processes, Filter Functions):
|
||||
Mention waiting-for-user-input-p.
|
||||
(Sentinels, Query Before Exit, System Processes, Transaction Queues):
|
||||
(Network Servers, Datagrams, Network Processes, Network Options)
|
||||
(Network Feature Testing, Serial Ports): Copyedits.
|
||||
(Network): Add encrypted network overview paragraph.
|
||||
Cross-reference the Emacs-GnuTLS manual. Use @acronym.
|
||||
|
||||
2012-04-17 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* help.texi (Keys in Documentation): Mention :advertised-binding.
|
||||
|
|
|
|||
|
|
@ -1133,13 +1133,14 @@ subprocess has children that are still live and still producing
|
|||
output, Emacs won't receive that output.
|
||||
|
||||
Output from a subprocess can arrive only while Emacs is waiting: when
|
||||
reading terminal input, in @code{sit-for} and @code{sleep-for}
|
||||
(@pxref{Waiting}), and in @code{accept-process-output} (@pxref{Accepting
|
||||
Output}). This minimizes the problem of timing errors that usually
|
||||
plague parallel programming. For example, you can safely create a
|
||||
process and only then specify its buffer or filter function; no output
|
||||
can arrive before you finish, if the code in between does not call any
|
||||
primitive that waits.
|
||||
reading terminal input (see the function @code{waiting-for-user-input-p}),
|
||||
in @code{sit-for} and @code{sleep-for} (@pxref{Waiting}), and in
|
||||
@code{accept-process-output} (@pxref{Accepting Output}). This
|
||||
minimizes the problem of timing errors that usually plague parallel
|
||||
programming. For example, you can safely create a process and only
|
||||
then specify its buffer or filter function; no output can arrive
|
||||
before you finish, if the code in between does not call any primitive
|
||||
that waits.
|
||||
|
||||
@defvar process-adaptive-read-buffering
|
||||
On some systems, when Emacs reads the output from a subprocess, the
|
||||
|
|
@ -1264,14 +1265,16 @@ there is no filter.
|
|||
|
||||
The filter function can only be called when Emacs is waiting for
|
||||
something, because process output arrives only at such times. Emacs
|
||||
waits when reading terminal input, in @code{sit-for} and
|
||||
@code{sleep-for} (@pxref{Waiting}), and in @code{accept-process-output}
|
||||
(@pxref{Accepting Output}).
|
||||
waits when reading terminal input (see the function
|
||||
@code{waiting-for-user-input-p}), in @code{sit-for} and
|
||||
@code{sleep-for} (@pxref{Waiting}), and in
|
||||
@code{accept-process-output} (@pxref{Accepting Output}).
|
||||
|
||||
A filter function must accept two arguments: the associated process
|
||||
and a string, which is output just received from it. The function is
|
||||
then free to do whatever it chooses with the output.
|
||||
|
||||
@c Note this text is duplicated in the sentinels section.
|
||||
Quitting is normally inhibited within a filter function---otherwise,
|
||||
the effect of typing @kbd{C-g} at command level or to quit a user
|
||||
command would be unpredictable. If you want to permit quitting inside
|
||||
|
|
@ -1506,6 +1509,7 @@ describing the type of event.
|
|||
|
||||
The string describing the event looks like one of the following:
|
||||
|
||||
@c FIXME? Also "killed\n" - see example below?
|
||||
@itemize @bullet
|
||||
@item
|
||||
@code{"finished\n"}.
|
||||
|
|
@ -1522,7 +1526,7 @@ describing the type of event.
|
|||
|
||||
A sentinel runs only while Emacs is waiting (e.g., for terminal
|
||||
input, or for time to elapse, or for process output). This avoids the
|
||||
timing errors that could result from running them at random places in
|
||||
timing errors that could result from running sentinels at random places in
|
||||
the middle of other Lisp programs. A program can wait, so that
|
||||
sentinels will run, by calling @code{sit-for} or @code{sleep-for}
|
||||
(@pxref{Waiting}), or @code{accept-process-output} (@pxref{Accepting
|
||||
|
|
@ -1546,6 +1550,7 @@ should check whether the buffer is still alive. If it tries to insert
|
|||
into a dead buffer, it will get an error. If the buffer is dead,
|
||||
@code{(buffer-name (process-buffer @var{process}))} returns @code{nil}.
|
||||
|
||||
@c Note this text is duplicated in the filter functions section.
|
||||
Quitting is normally inhibited within a sentinel---otherwise, the
|
||||
effect of typing @kbd{C-g} at command level or to quit a user command
|
||||
would be unpredictable. If you want to permit quitting inside a
|
||||
|
|
@ -1556,8 +1561,8 @@ right way to do this is with the macro @code{with-local-quit}.
|
|||
If an error happens during execution of a sentinel, it is caught
|
||||
automatically, so that it doesn't stop the execution of whatever
|
||||
programs was running when the sentinel was started. However, if
|
||||
@code{debug-on-error} is non-@code{nil}, the error-catching is turned
|
||||
off. This makes it possible to use the Lisp debugger to debug the
|
||||
@code{debug-on-error} is non-@code{nil}, errors are not caught.
|
||||
This makes it possible to use the Lisp debugger to debug the
|
||||
sentinel. @xref{Debugger}.
|
||||
|
||||
While a sentinel is running, the process sentinel is temporarily
|
||||
|
|
@ -1565,10 +1570,14 @@ set to @code{nil} so that the sentinel won't run recursively.
|
|||
For this reason it is not possible for a sentinel to specify
|
||||
a new sentinel.
|
||||
|
||||
@ignore
|
||||
In earlier Emacs versions, every sentinel that did regular expression
|
||||
searching or matching had to explicitly save and restore the match data.
|
||||
Now Emacs does this automatically for sentinels; they never need to do
|
||||
it explicitly. @xref{Match Data}.
|
||||
it explicitly.
|
||||
@end ignore
|
||||
Note that Emacs automatically saves and restores the match data
|
||||
while executing sentinels. @xref{Match Data}.
|
||||
|
||||
@defun set-process-sentinel process sentinel
|
||||
This function associates @var{sentinel} with @var{process}. If
|
||||
|
|
@ -1576,7 +1585,7 @@ This function associates @var{sentinel} with @var{process}. If
|
|||
The default behavior when there is no sentinel is to insert a message in
|
||||
the process's buffer when the process status changes.
|
||||
|
||||
Changes in process sentinel take effect immediately---if the sentinel
|
||||
Changes in process sentinels take effect immediately---if the sentinel
|
||||
is slated to be run but has not been called yet, and you specify a new
|
||||
sentinel, the eventual call to the sentinel will use the new one.
|
||||
|
||||
|
|
@ -1604,7 +1613,7 @@ has none.
|
|||
@defun waiting-for-user-input-p
|
||||
While a sentinel or filter function is running, this function returns
|
||||
non-@code{nil} if Emacs was waiting for keyboard input from the user at
|
||||
the time the sentinel or filter function was called, @code{nil} if it
|
||||
the time the sentinel or filter function was called, or @code{nil} if it
|
||||
was not.
|
||||
@end defun
|
||||
|
||||
|
|
@ -1614,7 +1623,7 @@ was not.
|
|||
When Emacs exits, it terminates all its subprocesses by sending them
|
||||
the @code{SIGHUP} signal. Because subprocesses may be doing
|
||||
valuable work, Emacs normally asks the user to confirm that it is ok
|
||||
to terminate them. Each process has a query flag which, if
|
||||
to terminate them. Each process has a query flag, which, if
|
||||
non-@code{nil}, says that Emacs should ask for confirmation before
|
||||
exiting and thus killing that process. The default for the query flag
|
||||
is @code{t}, meaning @emph{do} query.
|
||||
|
|
@ -1633,7 +1642,7 @@ shell process to avoid querying:
|
|||
@smallexample
|
||||
@group
|
||||
(set-process-query-on-exit-flag (get-process "shell") nil)
|
||||
@result{} t
|
||||
@result{} nil
|
||||
@end group
|
||||
@end smallexample
|
||||
@end defun
|
||||
|
|
@ -1645,7 +1654,7 @@ shell process to avoid querying:
|
|||
In addition to accessing and manipulating processes that are
|
||||
subprocesses of the current Emacs session, Emacs Lisp programs can
|
||||
also access other processes running on the same machine. We call
|
||||
these @dfn{system processes}, to distinguish between them and Emacs
|
||||
these @dfn{system processes}, to distinguish them from Emacs
|
||||
subprocesses.
|
||||
|
||||
Emacs provides several primitives for accessing system processes.
|
||||
|
|
@ -1665,7 +1674,7 @@ This function returns an alist of attributes for the process specified
|
|||
by its process ID @var{pid}. Each association in the alist is of the
|
||||
form @code{(@var{key} . @var{value})}, where @var{key} designates the
|
||||
attribute and @var{value} is the value of that attribute. The various
|
||||
attribute @var{key}'s that this function can return are listed below.
|
||||
attribute @var{key}s that this function can return are listed below.
|
||||
Not all platforms support all of these attributes; if an attribute is
|
||||
not supported, its association will not appear in the returned alist.
|
||||
Values that are numbers can be either integer or floating-point,
|
||||
|
|
@ -1826,6 +1835,8 @@ as @code{shell-command}.
|
|||
@section Transaction Queues
|
||||
@cindex transaction queue
|
||||
|
||||
@c That's not very informative. What is a transaction, and when might
|
||||
@c I want to use one?
|
||||
You can use a @dfn{transaction queue} to communicate with a subprocess
|
||||
using transactions. First use @code{tq-create} to create a transaction
|
||||
queue communicating with a specified process. Then you can call
|
||||
|
|
@ -1855,8 +1866,11 @@ text at the end of the entire answer, but nothing before; that's how
|
|||
If the argument @var{delay-question} is non-@code{nil}, delay sending
|
||||
this question until the process has finished replying to any previous
|
||||
questions. This produces more reliable results with some processes.
|
||||
@ignore
|
||||
|
||||
@c Let's not mention it then.
|
||||
The return value of @code{tq-enqueue} itself is not meaningful.
|
||||
@end ignore
|
||||
@end defun
|
||||
|
||||
@defun tq-close queue
|
||||
|
|
@ -1874,10 +1888,11 @@ Transaction queues are implemented by means of a filter function.
|
|||
@cindex UDP
|
||||
|
||||
Emacs Lisp programs can open stream (TCP) and datagram (UDP) network
|
||||
connections to other processes on the same machine or other machines.
|
||||
connections (@pxref{Datagrams}) to other processes on the same machine
|
||||
or other machines.
|
||||
A network connection is handled by Lisp much like a subprocess, and is
|
||||
represented by a process object. However, the process you are
|
||||
communicating with is not a child of the Emacs process, so it has no
|
||||
communicating with is not a child of the Emacs process, has no
|
||||
process @acronym{ID}, and you can't kill it or send it signals. All you
|
||||
can do is send and receive data. @code{delete-process} closes the
|
||||
connection, but does not kill the program at the other end; that
|
||||
|
|
@ -1905,7 +1920,7 @@ network connection or server, @code{serial} for a serial port
|
|||
connection, or @code{real} for a real subprocess.
|
||||
|
||||
The @code{process-status} function returns @code{open},
|
||||
@code{closed}, @code{connect}, and @code{failed} for network
|
||||
@code{closed}, @code{connect}, or @code{failed} for network
|
||||
connections. For a network server, the status is always
|
||||
@code{listen}. None of those values is possible for a real
|
||||
subprocess. @xref{Process Information}.
|
||||
|
|
@ -1915,35 +1930,48 @@ subprocess. @xref{Process Information}.
|
|||
process, being stopped means not accepting new connections. (Up to 5
|
||||
connection requests will be queued for when you resume the server; you
|
||||
can increase this limit, unless it is imposed by the operating
|
||||
system.) For a network stream connection, being stopped means not
|
||||
processing input (any arriving input waits until you resume the
|
||||
connection). For a datagram connection, some number of packets may be
|
||||
queued but input may be lost. You can use the function
|
||||
system---see the @code{:server} keyword of @code{make-network-process},
|
||||
@ref{Network Processes}.) For a network stream connection, being
|
||||
stopped means not processing input (any arriving input waits until you
|
||||
resume the connection). For a datagram connection, some number of
|
||||
packets may be queued but input may be lost. You can use the function
|
||||
@code{process-command} to determine whether a network connection or
|
||||
server is stopped; a non-@code{nil} value means yes.
|
||||
|
||||
@cindex network connection, encrypted
|
||||
@cindex encrypted network connections
|
||||
@cindex TLS network connections
|
||||
@cindex STARTTLS network connections
|
||||
@defun open-network-stream name buffer-or-name host service &rest parameters
|
||||
@cindex @acronym{TLS} network connections
|
||||
@cindex @acronym{STARTTLS} network connections
|
||||
Emacs can create encrypted network connections, using either built-in
|
||||
or external support. The built-in support uses the GnuTLS
|
||||
(``Transport Layer Security'') library; see
|
||||
@uref{http://www.gnu.org/software/gnutls/, the GnuTLS project page}.
|
||||
If your Emacs was compiled with GnuTLS support, the function
|
||||
@code{gnutls-available-p} is defined and returns non-@code{nil}. For
|
||||
more details, @pxref{Top,, Overview, emacs-gnutls, The Emacs-GnuTLS manual}.
|
||||
The external support uses the @file{starttls.el} library, which
|
||||
requires a helper utility such as @command{gnutls-cli} to be installed
|
||||
on the system. The @code{open-network-stream} function can
|
||||
transparently handle the details of creating encrypted connections for
|
||||
you, using whatever support is available.
|
||||
|
||||
@defun open-network-stream name buffer host service &rest parameters
|
||||
This function opens a TCP connection, with optional encryption, and
|
||||
returns a process object that represents the connection.
|
||||
|
||||
The @var{name} argument specifies the name for the process object. It
|
||||
is modified as necessary to make it unique.
|
||||
|
||||
The @var{buffer-or-name} argument is the buffer to associate with the
|
||||
The @var{buffer} argument is the buffer to associate with the
|
||||
connection. Output from the connection is inserted in the buffer,
|
||||
unless you specify a filter function to handle the output. If
|
||||
@var{buffer-or-name} is @code{nil}, it means that the connection is not
|
||||
@var{buffer} is @code{nil}, it means that the connection is not
|
||||
associated with any buffer.
|
||||
|
||||
The arguments @var{host} and @var{service} specify where to connect to;
|
||||
@var{host} is the host name (a string), and @var{service} is the name of
|
||||
a defined network service (a string) or a port number (an integer).
|
||||
|
||||
@c FIXME? Is this too lengthy for the printed manual?
|
||||
The remaining arguments @var{parameters} are keyword/argument pairs
|
||||
that are mainly relevant to encrypted connections:
|
||||
|
||||
|
|
@ -1960,14 +1988,15 @@ The type of connection. Options are:
|
|||
An ordinary, unencrypted connection.
|
||||
@item tls
|
||||
@itemx ssl
|
||||
A TLS (``Transport Layer Security'') connection.
|
||||
A @acronym{TLS} (``Transport Layer Security'') connection.
|
||||
@item nil
|
||||
@itemx network
|
||||
Start with a plain connection, and if parameters @samp{:success}
|
||||
and @samp{:capability-command} are supplied, try to upgrade to an encrypted
|
||||
connection via STARTTLS. If that fails, retain the unencrypted connection.
|
||||
connection via @acronym{STARTTLS}. If that fails, retain the
|
||||
unencrypted connection.
|
||||
@item starttls
|
||||
As for @code{nil}, but if STARTTLS fails drop the connection.
|
||||
As for @code{nil}, but if @acronym{STARTTLS} fails drop the connection.
|
||||
@item shell
|
||||
A shell connection.
|
||||
@end table
|
||||
|
|
@ -1986,22 +2015,22 @@ command @var{capability-command}. The latter defaults to the former.
|
|||
|
||||
@item :starttls-function @var{function}
|
||||
Function of one argument (the response to @var{capability-command}),
|
||||
which returns either @code{nil}, or the command to activate STARTTLS
|
||||
which returns either @code{nil}, or the command to activate @acronym{STARTTLS}
|
||||
if supported.
|
||||
|
||||
@item :success @var{regexp}
|
||||
Regular expression matching a successful STARTTLS negotiation.
|
||||
Regular expression matching a successful @acronym{STARTTLS} negotiation.
|
||||
|
||||
@item :use-starttls-if-possible @var{boolean}
|
||||
If non-@code{nil}, do opportunistic STARTTLS upgrades even if Emacs
|
||||
doesn't have built-in TLS support.
|
||||
If non-@code{nil}, do opportunistic @acronym{STARTTLS} upgrades even if Emacs
|
||||
doesn't have built-in @acronym{TLS} support.
|
||||
|
||||
@item :client-certificate @var{list-or-t}
|
||||
Either a list of the form @code{(@var{key-file} @var{cert-file})},
|
||||
naming the certificate key file and certificate file itself, or
|
||||
@code{t}, meaning to query @code{auth-source} for this information
|
||||
(@pxref{Top,,auth-source, auth, Emacs auth-source Library}).
|
||||
Only used for TLS or STARTTLS.
|
||||
(@pxref{Top,,Overview, auth, The Auth-Source Manual}).
|
||||
Only used for @acronym{TLS} or @acronym{STARTTLS}.
|
||||
|
||||
@item :return-list @var{cons-or-nil}
|
||||
The return value of this function. If omitted or @code{nil}, return a
|
||||
|
|
@ -2025,18 +2054,20 @@ The connection type: @samp{plain} or @samp{tls}.
|
|||
@section Network Servers
|
||||
@cindex network servers
|
||||
|
||||
You create a server by calling @code{make-network-process} with
|
||||
@code{:server t}. The server will listen for connection requests from
|
||||
clients. When it accepts a client connection request, that creates a
|
||||
new network connection, itself a process object, with the following
|
||||
parameters:
|
||||
You create a server by calling @code{make-network-process}
|
||||
(@pxref{Network Processes}) with @code{:server t}. The server will
|
||||
listen for connection requests from clients. When it accepts a client
|
||||
connection request, that creates a new network connection, itself a
|
||||
process object, with the following parameters:
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
The connection's process name is constructed by concatenating the
|
||||
server process's @var{name} with a client identification string. The
|
||||
@c FIXME? What about IPv6? Say briefly what the difference is?
|
||||
client identification string for an IPv4 connection looks like
|
||||
@samp{<@var{a}.@var{b}.@var{c}.@var{d}:@var{p}>}. Otherwise, it is a
|
||||
@samp{<@var{a}.@var{b}.@var{c}.@var{d}:@var{p}>}, which represents an
|
||||
address and port number. Otherwise, it is a
|
||||
unique number in brackets, as in @samp{<@var{nnn}>}. The number
|
||||
is unique for each connection in the Emacs session.
|
||||
|
||||
|
|
@ -2057,7 +2088,7 @@ uses its filter and sentinel; their sole purpose is to initialize
|
|||
connections made to the server.
|
||||
|
||||
@item
|
||||
The connection's process contact info is set according to the client's
|
||||
The connection's process contact information is set according to the client's
|
||||
addressing information (typically an IP address and a port number).
|
||||
This information is associated with the @code{process-contact}
|
||||
keywords @code{:host}, @code{:service}, @code{:remote}.
|
||||
|
|
@ -2074,7 +2105,7 @@ The client process's plist is initialized from the server's plist.
|
|||
@section Datagrams
|
||||
@cindex datagrams
|
||||
|
||||
A datagram connection communicates with individual packets rather
|
||||
A @dfn{datagram} connection communicates with individual packets rather
|
||||
than streams of data. Each call to @code{process-send} sends one
|
||||
datagram packet (@pxref{Input to Processes}), and each datagram
|
||||
received results in one call to the filter function.
|
||||
|
|
@ -2127,7 +2158,8 @@ process object that represents it. The arguments @var{args} are a
|
|||
list of keyword/argument pairs. Omitting a keyword is always
|
||||
equivalent to specifying it with value @code{nil}, except for
|
||||
@code{:coding}, @code{:filter-multibyte}, and @code{:reuseaddr}. Here
|
||||
are the meaningful keywords:
|
||||
are the meaningful keywords (those corresponding to network options
|
||||
are listed in the following section):
|
||||
|
||||
@table @asis
|
||||
@item :name @var{name}
|
||||
|
|
@ -2143,7 +2175,7 @@ connection. Both connections and servers can be of these types.
|
|||
@item :server @var{server-flag}
|
||||
If @var{server-flag} is non-@code{nil}, create a server. Otherwise,
|
||||
create a connection. For a stream type server, @var{server-flag} may
|
||||
be an integer which then specifies the length of the queue of pending
|
||||
be an integer, which then specifies the length of the queue of pending
|
||||
connections to the server. The default queue length is 5.
|
||||
|
||||
@item :host @var{host}
|
||||
|
|
@ -2154,7 +2186,7 @@ specify a valid address for the local host, and only clients
|
|||
connecting to that address will be accepted.
|
||||
|
||||
@item :service @var{service}
|
||||
@var{service} specifies a port number to connect to, or, for a server,
|
||||
@var{service} specifies a port number to connect to; or, for a server,
|
||||
the port number to listen on. It should be a service name that
|
||||
translates to a port number, or an integer specifying the port number
|
||||
directly. For a server, it can also be @code{t}, which means to let
|
||||
|
|
@ -2165,18 +2197,18 @@ the system select an unused port number.
|
|||
communication. @code{nil} means determine the proper address family
|
||||
automatically for the given @var{host} and @var{service}.
|
||||
@code{local} specifies a Unix socket, in which case @var{host} is
|
||||
ignored. @code{ipv4} and @code{ipv6} specify to use IPv4 and IPv6
|
||||
ignored. @code{ipv4} and @code{ipv6} specify to use IPv4 and IPv6,
|
||||
respectively.
|
||||
|
||||
@item :local @var{local-address}
|
||||
For a server process, @var{local-address} is the address to listen on.
|
||||
It overrides @var{family}, @var{host} and @var{service}, and you
|
||||
may as well not specify them.
|
||||
It overrides @var{family}, @var{host} and @var{service}, so you
|
||||
might as well not specify them.
|
||||
|
||||
@item :remote @var{remote-address}
|
||||
For a connection, @var{remote-address} is the address to connect to.
|
||||
It overrides @var{family}, @var{host} and @var{service}, and you
|
||||
may as well not specify them.
|
||||
It overrides @var{family}, @var{host} and @var{service}, so you
|
||||
might as well not specify them.
|
||||
|
||||
For a datagram server, @var{remote-address} specifies the initial
|
||||
setting of the remote datagram address.
|
||||
|
|
@ -2200,7 +2232,7 @@ integers @code{[@var{a} @var{b} @var{c} @var{d} @var{e} @var{f}
|
|||
port number @var{p}.
|
||||
|
||||
@item
|
||||
A local address is represented as a string which specifies the address
|
||||
A local address is represented as a string, which specifies the address
|
||||
in the local address space.
|
||||
|
||||
@item
|
||||
|
|
@ -2222,8 +2254,8 @@ second argument matching @code{"open"} (if successful) or
|
|||
has succeeded or failed.
|
||||
|
||||
@item :stop @var{stopped}
|
||||
Start the network connection or server in the `stopped' state if
|
||||
@var{stopped} is non-@code{nil}.
|
||||
If @var{stopped} is non-@code{nil}, start the network connection or
|
||||
server in the ``stopped'' state.
|
||||
|
||||
@item :buffer @var{buffer}
|
||||
Use @var{buffer} as the process buffer.
|
||||
|
|
@ -2244,6 +2276,11 @@ Initialize the process query flag to @var{query-flag}.
|
|||
@item :filter @var{filter}
|
||||
Initialize the process filter to @var{filter}.
|
||||
|
||||
@item :filter-multibyte @var{multibyte}
|
||||
If @var{multibyte} is non-@code{nil}, strings given to the process
|
||||
filter are multibyte, otherwise they are unibyte. The default is the
|
||||
default value of @code{enable-multibyte-characters}.
|
||||
|
||||
@item :sentinel @var{sentinel}
|
||||
Initialize the process sentinel to @var{sentinel}.
|
||||
|
||||
|
|
@ -2251,7 +2288,7 @@ Initialize the process sentinel to @var{sentinel}.
|
|||
Initialize the log function of a server process to @var{log}. The log
|
||||
function is called each time the server accepts a network connection
|
||||
from a client. The arguments passed to the log function are
|
||||
@var{server}, @var{connection}, and @var{message}, where @var{server}
|
||||
@var{server}, @var{connection}, and @var{message}; where @var{server}
|
||||
is the server process, @var{connection} is the new process for the
|
||||
connection, and @var{message} is a string describing what has
|
||||
happened.
|
||||
|
|
@ -2288,7 +2325,7 @@ Using this option may require special privileges on some systems.
|
|||
@item :broadcast @var{broadcast-flag}
|
||||
If @var{broadcast-flag} is non-@code{nil} for a datagram process, the
|
||||
process will receive datagram packet sent to a broadcast address, and
|
||||
be able to send packets to a broadcast address. Ignored for a stream
|
||||
be able to send packets to a broadcast address. This is ignored for a stream
|
||||
connection.
|
||||
|
||||
@item :dontroute @var{dontroute-flag}
|
||||
|
|
@ -2304,10 +2341,11 @@ If @var{linger-arg} is non-@code{nil}, wait for successful
|
|||
transmission of all queued packets on the connection before it is
|
||||
deleted (see @code{delete-process}). If @var{linger-arg} is an
|
||||
integer, it specifies the maximum time in seconds to wait for queued
|
||||
packets to be sent before closing the connection. Default is
|
||||
@code{nil} which means to discard unsent queued packets when the
|
||||
packets to be sent before closing the connection. The default is
|
||||
@code{nil}, which means to discard unsent queued packets when the
|
||||
process is deleted.
|
||||
|
||||
@c FIXME Where out-of-band data is ...?
|
||||
@item :oobinline @var{oobinline-flag}
|
||||
If @var{oobinline-flag} is non-@code{nil} for a stream connection,
|
||||
receive out-of-band data in the normal data stream. Otherwise, ignore
|
||||
|
|
@ -2316,7 +2354,7 @@ out-of-band data.
|
|||
@item :priority @var{priority}
|
||||
Set the priority for packets sent on this connection to the integer
|
||||
@var{priority}. The interpretation of this number is protocol
|
||||
specific, such as setting the TOS (type of service) field on IP
|
||||
specific; such as setting the TOS (type of service) field on IP
|
||||
packets sent on this connection. It may also have system dependent
|
||||
effects, such as selecting a specific output queue on the network
|
||||
interface.
|
||||
|
|
@ -2324,20 +2362,20 @@ interface.
|
|||
@item :reuseaddr @var{reuseaddr-flag}
|
||||
If @var{reuseaddr-flag} is non-@code{nil} (the default) for a stream
|
||||
server process, allow this server to reuse a specific port number (see
|
||||
@code{:service}) unless another process on this host is already
|
||||
@code{:service}), unless another process on this host is already
|
||||
listening on that port. If @var{reuseaddr-flag} is @code{nil}, there
|
||||
may be a period of time after the last use of that port (by any
|
||||
process on the host), where it is not possible to make a new server on
|
||||
process on the host) where it is not possible to make a new server on
|
||||
that port.
|
||||
@end table
|
||||
|
||||
@defun set-network-process-option process option value &optional no-error
|
||||
This function sets or modifies a network option for network process
|
||||
@var{process}. See @code{make-network-process} for details of options
|
||||
@var{option} and their corresponding values @var{value}. If
|
||||
@var{no-error} is non-@code{nil}, this function returns @code{nil}
|
||||
instead of signaling an error if @var{option} is not a supported
|
||||
option. If the function successfully completes, it returns @code{t}.
|
||||
@var{process}. The accepted options and values are as for
|
||||
@code{make-network-process}. If @var{no-error} is non-@code{nil},
|
||||
this function returns @code{nil} instead of signaling an error if
|
||||
@var{option} is not a supported option. If the function successfully
|
||||
completes, it returns @code{t}.
|
||||
|
||||
The current setting of an option is available via the
|
||||
@code{process-contact} function.
|
||||
|
|
@ -2354,11 +2392,9 @@ The current setting of an option is available via the
|
|||
@end example
|
||||
|
||||
@noindent
|
||||
The result of the first form is @code{t} if it works to specify
|
||||
The result of this form is @code{t} if it works to specify
|
||||
@var{keyword} with value @var{value} in @code{make-network-process}.
|
||||
The result of the second form is @code{t} if @var{keyword} is
|
||||
supported by @code{make-network-process}. Here are some of the
|
||||
@var{keyword}---@var{value} pairs you can test in
|
||||
Here are some of the @var{keyword}---@var{value} pairs you can test in
|
||||
this way.
|
||||
|
||||
@table @code
|
||||
|
|
@ -2382,20 +2418,10 @@ Non-@code{nil} if the system can select the port for a server.
|
|||
@end example
|
||||
|
||||
@noindent
|
||||
Here are some of the options you can test in this way.
|
||||
|
||||
@table @code
|
||||
@item :bindtodevice
|
||||
@itemx :broadcast
|
||||
@itemx :dontroute
|
||||
@itemx :keepalive
|
||||
@itemx :linger
|
||||
@itemx :oobinline
|
||||
@itemx :priority
|
||||
@itemx :reuseaddr
|
||||
That particular network option is supported by
|
||||
@code{make-network-process} and @code{set-network-process-option}.
|
||||
@end table
|
||||
The accepted @var{keyword} values are @code{:bindtodevice}, etc.
|
||||
For the complete list, @pxref{Network Options}. This form returns
|
||||
non-@code{nil} if that particular network option is supported by
|
||||
@code{make-network-process} (or @code{set-network-process-option}).
|
||||
|
||||
@node Misc Network
|
||||
@section Misc Network Facilities
|
||||
|
|
@ -2533,7 +2559,7 @@ Initialize the process query flag to @var{query-flag}. @xref{Query
|
|||
Before Exit}. The flags defaults to @code{nil} if unspecified.
|
||||
|
||||
@item :stop @var{bool}
|
||||
Start process in the @code{stopped} state if @var{bool} is
|
||||
Start process in the ``stopped'' state if @var{bool} is
|
||||
non-@code{nil}. In the stopped state, a serial process does not
|
||||
accept incoming data, but you can send outgoing data. The stopped
|
||||
state is cleared by @code{continue-process} and set by
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
2012-04-18 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* net/network-stream.el (open-network-stream): Doc fix.
|
||||
|
||||
2012-04-17 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* emacs-lisp/tabulated-list.el (tabulated-list-print): Fix typos.
|
||||
|
|
|
|||
|
|
@ -125,9 +125,8 @@ values:
|
|||
certificate. This parameter will only be used when doing TLS
|
||||
or STARTTLS connections.
|
||||
|
||||
If :use-starttls-if-possible is non-nil, do opportunistic
|
||||
STARTTLS upgrades even if Emacs doesn't have built-in TLS
|
||||
functionality.
|
||||
:use-starttls-if-possible is a boolean that says to do opportunistic
|
||||
STARTTLS upgrades even if Emacs doesn't have built-in TLS functionality.
|
||||
|
||||
:nowait is a boolean that says the connection should be made
|
||||
asynchronously, if possible."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
2012-04-18 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* process.c (Fset_process_inherit_coding_system_flag)
|
||||
(Fset_process_query_on_exit_flag): Doc fix (mention return value).
|
||||
(Fmake_network_process): Doc fix.
|
||||
|
||||
2012-04-17 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* xdisp.c (string_buffer_position_lim): Limit starting position to
|
||||
|
|
|
|||
|
|
@ -1070,7 +1070,9 @@ is more appropriate for saving the process buffer.
|
|||
|
||||
Binding the variable `inherit-process-coding-system' to non-nil before
|
||||
starting the process is an alternative way of setting the inherit flag
|
||||
for the process which will run. */)
|
||||
for the process which will run.
|
||||
|
||||
This function returns FLAG. */)
|
||||
(register Lisp_Object process, Lisp_Object flag)
|
||||
{
|
||||
CHECK_PROCESS (process);
|
||||
|
|
@ -1083,7 +1085,8 @@ DEFUN ("set-process-query-on-exit-flag",
|
|||
2, 2, 0,
|
||||
doc: /* Specify if query is needed for PROCESS when Emacs is exited.
|
||||
If the second argument FLAG is non-nil, Emacs will query the user before
|
||||
exiting or killing a buffer if PROCESS is running. */)
|
||||
exiting or killing a buffer if PROCESS is running. This function
|
||||
returns FLAG. */)
|
||||
(register Lisp_Object process, Lisp_Object flag)
|
||||
{
|
||||
CHECK_PROCESS (process);
|
||||
|
|
@ -2794,7 +2797,7 @@ The stopped state is cleared by `continue-process' and set by
|
|||
:filter-multibyte BOOL -- If BOOL is non-nil, strings given to the
|
||||
process filter are multibyte, otherwise they are unibyte.
|
||||
If this keyword is not specified, the strings are multibyte if
|
||||
`default-enable-multibyte-characters' is non-nil.
|
||||
the default value of `enable-multibyte-characters' is non-nil.
|
||||
|
||||
:sentinel SENTINEL -- Install SENTINEL as the process sentinel.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue