* net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
authorJim Blandy <jimb@red-bean.com>
Fri, 16 May 1997 08:06:17 +0000 (08:06 +0000)
committerJim Blandy <jimb@red-bean.com>
Fri, 16 May 1997 08:06:17 +0000 (08:06 +0000)
Return #f on end-of-file when scanning table (i.e. when called
with no arguments).  Try to catch errors, when we can.
* posix.c (scm_getgrgid, scm_getpwuid): Same.

libguile/posix.c

index 9a45ed9..1379ef7 100644 (file)
@@ -259,6 +259,11 @@ scm_getpwuid (user)
     {
       SCM_DEFER_INTS;
       SCM_SYSCALL (entry = getpwent ());
+      if (! entry)
+       {
+         SCM_ALLOW_INTS;
+         return SCM_BOOL_F;
+       }
     }
   else if (SCM_INUMP (user))
     {
@@ -324,7 +329,14 @@ scm_getgrgid (name)
   ve = SCM_VELTS (result);
   SCM_DEFER_INTS;
   if (SCM_UNBNDP (name) || (name == SCM_BOOL_F))
-    SCM_SYSCALL (entry = getgrent ());
+    {
+      SCM_SYSCALL (entry = getgrent ());
+      if (! entry)
+       {
+         SCM_ALLOW_INTS;
+         return SCM_BOOL_F;
+       }
+    }
   else if (SCM_INUMP (name))
     SCM_SYSCALL (entry = getgrgid (SCM_INUM (name)));
   else