Fix bug: examination of results from `poll' was ignoring file
authorChris Hanson <org/chris-hanson/cph>
Tue, 3 Apr 2001 17:52:21 +0000 (17:52 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 3 Apr 2001 17:52:21 +0000 (17:52 +0000)
descriptors on which there were error conditions but no input.

v7/src/microcode/uxio.c
v7/src/microcode/version.h

index 649c5b3375e12140e80144325ceff4687d56f4d1..60ecb2934402b11172fc040a712f7f3bf9af0429 100644 (file)
@@ -1,8 +1,8 @@
 /* -*-C-*-
 
-$Id: uxio.c,v 1.45 2000/12/05 21:23:49 cph Exp $
+$Id: uxio.c,v 1.46 2001/04/03 17:51:52 cph Exp $
 
-Copyright (c) 1990-2000 Massachusetts Institute of Technology
+Copyright (c) 1990-2001 Massachusetts Institute of Technology
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -16,7 +16,8 @@ General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+USA.
 */
 
 #include "ux.h"
@@ -446,15 +447,18 @@ DEFUN (UX_select_registry_test, (input_fds, blockp, output_fds, output_nfds),
            (*output_nfds) = nfds;
          if (output_fds != 0)
            {
-             unsigned int i;
-             for (i = 0; (i < n_pfds); i += 1)
-               if ((((pfds [i]) . fd) != (-1))
-                   && ((((pfds [i]) . revents) & POLLIN) != 0))
-                 {
-                   (*output_fds++) = ((pfds [i]) . fd);
-                   if ((--nfds) == 0)
-                     break;
-                 }
+             struct pollfd * scan = pfds;
+             struct pollfd * end = (scan + n_pfds);
+             while (scan < end)
+               {
+                 if (((scan -> fd) != (-1)) && ((scan -> revents) != 0))
+                   {
+                     (*output_fds++) = (scan -> fd);
+                     if ((--nfds) == 0)
+                       break;
+                   }
+                 scan += 1;
+               }
            }
          return (select_input_argument);
        }
index d4fc7e9cbad6574babebdbca84c7bc3aa77fff75..5c485979db8a7e5fcc4cba05daa9aa42c3f17be5 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: version.h,v 11.179 2001/03/08 06:28:34 cph Exp $
+$Id: version.h,v 11.180 2001/04/03 17:52:21 cph Exp $
 
 Copyright (c) 1988-2001 Massachusetts Institute of Technology
 
@@ -16,7 +16,8 @@ General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+USA.
 */
 
 /* This file contains version information for the microcode. */
@@ -24,7 +25,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 /* Scheme system release version */
 
 #ifndef SCHEME_RELEASE
-#define SCHEME_RELEASE         "7.5.15"
+#define SCHEME_RELEASE         "7.5.17"
 #endif
 
 /* Microcode release version */
@@ -33,5 +34,5 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 #define SCHEME_VERSION         14
 #endif
 #ifndef SCHEME_SUBVERSION
-#define SCHEME_SUBVERSION      3
+#define SCHEME_SUBVERSION      4
 #endif