emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug#40248: 27.0.90; Failure open .authinfo.gpg from Gnus


From: Robert Pluim
Subject: Re: bug#40248: 27.0.90; Failure open .authinfo.gpg from Gnus
Date: Tue, 31 Mar 2020 18:13:10 +0200

>>>>> On Tue, 31 Mar 2020 13:09:14 +0200, Robert Pluim <address@hidden> said:

>>>>> On Tue, 31 Mar 2020 12:31:04 +0200, Andreas Schwab <address@hidden> said:
    Andreas> On Mär 31 2020, Robert Pluim wrote:
    >>> My reading of set_network_socket_coding_system is that having a plist
    >>> in make-network-process with :coding nil overrides a non-nil
    >>> coding-system-for-{read-write}, which I donʼt think we want.

    Andreas> You are right, make-network-process and make-serial-process handle 
that
    Andreas> differently than make-process and make-pipe-process.  I think this 
is a
    Andreas> bug, they should all handle :coding nil the same (same as absence).

    Robert> I think I agree with that. Basically this, initially (and the same 
for
    Robert> make-serial-process)

Now that Iʼve actually tested it, the change looks like this, making
make-network-process and make-serial process behave the same as
make-process and make-pipe-process. Iʼve looked at all uses of those
two functions in Emacs' sources, and none of them depend on the change
in semantics, in fact only a couple of them actually pass a :coding
keyword.

Having said all that, this does go back a looooong way (2002 at
least), so maybe we want to let sleeping dogs lie.

diff --git a/src/process.c b/src/process.c
index e18a5aa538..2db45b18b2 100644
--- a/src/process.c
+++ b/src/process.c
@@ -3205,14 +3206,12 @@ DEFUN ("make-serial-process", Fmake_serial_process, 
Smake_serial_process,
                       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);
     }
@@ -3226,7 +3225,7 @@ DEFUN ("make-serial-process", Fmake_serial_process, 
Smake_serial_process,
   val = Qnil;
   if (!NILP (tem))
     {
-      val = XCAR (XCDR (tem));
+      val = tem;
       if (CONSP (val))
        val = XCDR (val);
     }
@@ -3261,16 +3260,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);
     }
@@ -3304,7 +3301,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);
     }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]