summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Pluim <rpluim@gmail.com>2020-04-02 17:52:01 +0200
committerRobert Pluim <rpluim@gmail.com>2020-04-03 14:45:49 +0200
commitd08e81ce5a19a0394c2efbdfeb4ebb246d609635 (patch)
tree765bef42ad5bf8278eebb654571f87cbfb4b352f /src
parent463f635171683ae3b6907f156305f12fc58ca68e (diff)
Make make-{network,serial}-process handle :coding nil consistently
The handling of :coding nil was different between make-{network,serial}-process and make-{pipe}process. Now they all handle :coding nil as if :coding had not been specified. * process.c (Fmake_serial_process) (set_network_socket_coding_system): Use plist-get to check if :coding has been specified instead of plist-member, to ensure that ":coding nil" does not override coding-system-for-{read,write}. * network-stream-tests.el (check-network-process-coding-system-bind) (check-network-process-coding-system-no-override) (check-network-process-coding-system-override): New tests. * etc/NEWS: Describe change in make-network-process and make-serial-process :coding behavior.
Diffstat (limited to 'src')
-rw-r--r--src/process.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/process.c b/src/process.c
index 07881d6c5d3..e6d18fbaad2 100644
--- a/src/process.c
+++ b/src/process.c
@@ -3188,14 +3188,12 @@ usage: (make-serial-process &rest ARGS) */)
BUF_ZV_BYTE (XBUFFER (buffer)));
}
- tem = Fplist_member (contact, QCcoding);
- if (!NILP (tem) && (!CONSP (tem) || !CONSP (XCDR (tem))))
- tem = Qnil;
+ tem = Fplist_get (contact, QCcoding);
val = Qnil;
if (!NILP (tem))
{
- val = XCAR (XCDR (tem));
+ val = tem;
if (CONSP (val))
val = XCAR (val);
}
@@ -3209,7 +3207,7 @@ usage: (make-serial-process &rest ARGS) */)
val = Qnil;
if (!NILP (tem))
{
- val = XCAR (XCDR (tem));
+ val = tem;
if (CONSP (val))
val = XCDR (val);
}
@@ -3244,16 +3242,14 @@ set_network_socket_coding_system (Lisp_Object proc, Lisp_Object host,
Lisp_Object coding_systems = Qt;
Lisp_Object val;
- tem = Fplist_member (contact, QCcoding);
- if (!NILP (tem) && (!CONSP (tem) || !CONSP (XCDR (tem))))
- tem = Qnil; /* No error message (too late!). */
+ tem = Fplist_get (contact, QCcoding);
/* Setup coding systems for communicating with the network stream. */
/* Qt denotes we have not yet called Ffind_operation_coding_system. */
if (!NILP (tem))
{
- val = XCAR (XCDR (tem));
+ val = tem;
if (CONSP (val))
val = XCAR (val);
}
@@ -3287,7 +3283,7 @@ set_network_socket_coding_system (Lisp_Object proc, Lisp_Object host,
if (!NILP (tem))
{
- val = XCAR (XCDR (tem));
+ val = tem;
if (CONSP (val))
val = XCDR (val);
}