X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/8c74a125c85da08e34dceedb271b71b5f09ce690..a859d1cc237eca05a8db2ccde69db9da1dc9e39c:/src/sysselect.h
diff --git a/src/sysselect.h b/src/sysselect.h
index 24bdf469ce..db6438ed1f 100644
--- a/src/sysselect.h
+++ b/src/sysselect.h
@@ -1,5 +1,5 @@
/* sysselect.h - System-dependent definitions for the select function.
- Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2001-2014 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -16,6 +16,9 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see . */
+#ifndef SYSSELECT_H
+#define SYSSELECT_H 1
+
#ifndef DOS_NT
#include
#endif
@@ -25,15 +28,12 @@ along with GNU Emacs. If not, see . */
definitions in w32.h are incompatible with the below. */
#ifndef WINDOWSNT
#ifdef FD_SET
-#ifdef FD_SETSIZE
-#define MAXDESC FD_SETSIZE
-#else
-#define MAXDESC 64
+#ifndef FD_SETSIZE
+#define FD_SETSIZE 64
#endif
-#define SELECT_TYPE fd_set
#else /* no FD_SET */
-#define MAXDESC 32
-#define SELECT_TYPE int
+#define FD_SETSIZE 32
+typedef int fd_set;
/* Define the macros to access a single-int bitmap of descriptors. */
#define FD_SET(n, p) (*(p) |= (1 << (n)))
@@ -50,3 +50,42 @@ along with GNU Emacs. If not, see . */
#ifdef MSDOS
#define pselect sys_select
#endif
+
+#ifndef WINDOWSNT
+INLINE_HEADER_BEGIN
+
+/* Check for out-of-range errors if ENABLE_CHECKING is defined. */
+
+INLINE void
+fd_CLR (int fd, fd_set *set)
+{
+ eassume (0 <= fd && fd < FD_SETSIZE);
+ FD_CLR (fd, set);
+}
+
+INLINE bool
+fd_ISSET (int fd, fd_set *set)
+{
+ eassume (0 <= fd && fd < FD_SETSIZE);
+ return FD_ISSET (fd, set) != 0;
+}
+
+INLINE void
+fd_SET (int fd, fd_set *set)
+{
+ eassume (0 <= fd && fd < FD_SETSIZE);
+ FD_SET (fd, set);
+}
+
+#undef FD_CLR
+#undef FD_ISSET
+#undef FD_SET
+#define FD_CLR(fd, set) fd_CLR (fd, set)
+#define FD_ISSET(fd, set) fd_ISSET (fd, set)
+#define FD_SET(fd, set) fd_SET (fd, set)
+
+INLINE_HEADER_END
+
+#endif /* !WINDOWSNT */
+
+#endif