From 2290ef4084d0fbe31ed055e3d5ae9448e44066f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Thu, 6 Aug 1998 19:17:01 +0200 Subject: [PATCH] readdir_r() now works on AIX. Rev: src/modules/files/efuns.c:1.59 --- src/modules/files/efuns.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/modules/files/efuns.c b/src/modules/files/efuns.c index 0aa177340b..9c6a1dbda8 100644 --- a/src/modules/files/efuns.c +++ b/src/modules/files/efuns.c @@ -22,7 +22,7 @@ #include "file_machine.h" #include "file.h" -RCSID("$Id: efuns.c,v 1.58 1998/07/15 23:26:56 hubbe Exp $"); +RCSID("$Id: efuns.c,v 1.59 1998/08/06 17:17:01 grubba Exp $"); #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> @@ -495,6 +495,7 @@ void f_get_dir(INT32 args) (unsigned int)d); #endif /* READDIR_DEBUG */ if (err == -1) { + /* Solaris readdir_r returns -1, and sets errno. */ err = errno; } #ifdef READDIR_DEBUG @@ -502,8 +503,10 @@ void f_get_dir(INT32 args) path, err); #endif /* READDIR_DEBUG */ /* Solaris readdir_r seems to set errno to ENOENT sometimes. + * + * AIX readdir_r seems to set errno to EBADF at end of dir. */ - if (err == ENOENT) { + if ((err == ENOENT) || (err == EBADF)) { err = 0; } break; -- GitLab