diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2009-12-03 18:51:32 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2009-12-03 18:51:32 +0000 |
commit | f00c449ba1e11bda4b50d39b9ab60dfc9c889b05 (patch) | |
tree | a97f103db67f3d494808b32eaedbc2af5b86600b | |
parent | 627e0a14e8718945668b246f18053df0f82ed383 (diff) | |
download | emacs-f00c449ba1e11bda4b50d39b9ab60dfc9c889b05.tar.gz emacs-f00c449ba1e11bda4b50d39b9ab60dfc9c889b05.tar.bz2 emacs-f00c449ba1e11bda4b50d39b9ab60dfc9c889b05.zip |
(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.
-rw-r--r-- | src/ChangeLog | 8 | ||||
-rw-r--r-- | src/process.c | 20 |
2 files changed, 25 insertions, 3 deletions
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 <monnier@iro.umontreal.ca> + + * 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 <mituharu@math.s.chiba-u.ac.jp> * 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 <http://www.gnu.org/licenses/>. */ 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 @@ -3302,6 +3307,10 @@ usage: (make-network-process &rest ARGS) */) 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); |