From: Stefan Monnier Date: Thu, 3 Dec 2009 18:51:32 +0000 (+0000) Subject: (Qseqpacket): New symbol. X-Git-Tag: emacs-pretest-23.1.90~98 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f00c449ba1e11bda4b50d39b9ab60dfc9c889b05;p=emacs.git (Qseqpacket): New symbol. (HAVE_SEQPACKET): New macro. (Fmake_network_process): Accept new :type `seqpacket'. (init_process): Add `seqpacket' feature when applicable. (syms_of_process): Initialize Qseqpacket. --- diff --git a/src/ChangeLog b/src/ChangeLog index bfd3e833d16..383d13cbc07 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2009-12-03 Stefan Monnier + + * process.c (Qseqpacket): New symbol. + (HAVE_SEQPACKET): New macro. + (Fmake_network_process): Accept new :type `seqpacket'. + (init_process): Add `seqpacket' feature when applicable. + (syms_of_process): Initialize Qseqpacket. + 2009-12-01 YAMAMOTO Mitsuharu * font.c (font_load_for_lface, font_open_by_name): Don't store name diff --git a/src/process.c b/src/process.c index 90f2a9aa6bb..61cf86e4eb3 100644 --- a/src/process.c +++ b/src/process.c @@ -127,7 +127,7 @@ along with GNU Emacs. If not, see . */ Lisp_Object Qprocessp; Lisp_Object Qrun, Qstop, Qsignal; Lisp_Object Qopen, Qclosed, Qconnect, Qfailed, Qlisten; -Lisp_Object Qlocal, Qipv4, Qdatagram; +Lisp_Object Qlocal, Qipv4, Qdatagram, Qseqpacket; Lisp_Object Qreal, Qnetwork, Qserial; #ifdef AF_INET6 Lisp_Object Qipv6; @@ -253,6 +253,10 @@ int update_tick; #endif /* DATAGRAM_SOCKETS */ #endif /* BROKEN_DATAGRAM_SOCKETS */ +#if defined HAVE_LOCAL_SOCKETS && defined DATAGRAM_SOCKETS +# define HAVE_SEQPACKET +#endif + #if !defined (ADAPTIVE_READ_BUFFERING) && !defined (NO_ADAPTIVE_READ_BUFFERING) #ifdef EMACS_HAS_USECS #define ADAPTIVE_READ_BUFFERING @@ -3123,7 +3127,8 @@ compiled with getaddrinfo, a port number can also be specified as a string, e.g. "80", as well as an integer. This is not portable.) :type TYPE -- TYPE is the type of connection. The default (nil) is a -stream type connection, `datagram' creates a datagram type connection. +stream type connection, `datagram' creates a datagram type connection, +`seqpacket' creates a reliable datagram connection. :family FAMILY -- FAMILY is the address (and protocol) family for the service specified by HOST and SERVICE. The default (nil) is to use @@ -3301,6 +3306,10 @@ usage: (make-network-process &rest ARGS) */) #ifdef DATAGRAM_SOCKETS else if (EQ (tem, Qdatagram)) socktype = SOCK_DGRAM; +#endif +#ifdef HAVE_SEQPACKET + else if (EQ (tem, Qseqpacket)) + socktype = SOCK_SEQPACKET; #endif else error ("Unsupported connection type"); @@ -6859,7 +6868,7 @@ exec_sentinel (proc, reason) record_unwind_protect (exec_sentinel_unwind, Fcons (proc, sentinel)); /* Inhibit quit so that random quits don't screw up a running filter. */ specbind (Qinhibit_quit, Qt); - specbind (Qlast_nonmenu_event, Qt); + specbind (Qlast_nonmenu_event, Qt); /* Why? --Stef */ /* In case we get recursively called, and we already saved the match data nonrecursively, @@ -7330,6 +7339,9 @@ init_process () #ifdef DATAGRAM_SOCKETS ADD_SUBFEATURE (QCtype, Qdatagram); #endif +#ifdef HAVE_SEQPACKET + ADD_SUBFEATURE (QCtype, Qseqpacket); +#endif #ifdef HAVE_LOCAL_SOCKETS ADD_SUBFEATURE (QCfamily, Qlocal); #endif @@ -7403,6 +7415,8 @@ syms_of_process () #endif Qdatagram = intern_c_string ("datagram"); staticpro (&Qdatagram); + Qseqpacket = intern_c_string ("seqpacket"); + staticpro (&Qseqpacket); QCport = intern_c_string (":port"); staticpro (&QCport);