From: Paul Eggert <eggert@cs.ucla.edu>
Date: Thu, 8 Jul 2021 17:00:30 +0000 (-0700)
Subject: select: port better to MinGW
X-Git-Tag: v1.0~2783
X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=21fccfa0451ba59fba479e439465da9c360353d3;p=gnulib.git

select: port better to MinGW

Problem reported by Eli Zaretskii in:
https://lists.gnu.org/r/bug-gnulib/2021-07/msg00017.html
* lib/select.c (rpl_select) [_WIN32 && !__CYGWIN__]:
Pass a SOCKET, not a HANDLE, to FD_ISSET.
---

diff --git a/ChangeLog b/ChangeLog
index 2eaf00b591..25d85aa4af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2021-07-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+	select: port better to MinGW
+	Problem reported by Eli Zaretskii in:
+	https://lists.gnu.org/r/bug-gnulib/2021-07/msg00017.html
+	* lib/select.c (rpl_select) [_WIN32 && !__CYGWIN__]:
+	Pass a SOCKET, not a HANDLE, to FD_ISSET.
+
 2021-07-06  Paul Eggert  <eggert@cs.ucla.edu>
 
 	year2038: Add --disable-year2038 option
diff --git a/lib/select.c b/lib/select.c
index 2fe6a18064..eddac4b61f 100644
--- a/lib/select.c
+++ b/lib/select.c
@@ -530,12 +530,13 @@ restart:
       if (h != handle_array[nhandles])
         {
           /* Perform handle->descriptor mapping.  */
-          WSAEventSelect ((SOCKET) h, NULL, 0);
-          if (FD_ISSET (h, &handle_rfds))
+          SOCKET s = (SOCKET) h;
+          WSAEventSelect (s, NULL, 0);
+          if (FD_ISSET (s, &handle_rfds))
             FD_SET (i, rfds);
-          if (FD_ISSET (h, &handle_wfds))
+          if (FD_ISSET (s, &handle_wfds))
             FD_SET (i, wfds);
-          if (FD_ISSET (h, &handle_xfds))
+          if (FD_ISSET (s, &handle_xfds))
             FD_SET (i, xfds);
         }
       else