Home | History | Annotate | Download | only in gen
History log of /src/lib/libc/gen/readdir.c
RevisionDateAuthorComments
 1.27  10-Sep-2024  riastradh readdir(3): Preserve errno on end-of-directory.

PR pkg/57145: gmake: *** INTERNAL: readdir: Operation not supported.
Stop.
 1.26  25-Jun-2012  abs branches: 1.26.34; 1.26.42; 1.26.44;
Update old-style definitions to ANSI, remove a couple of register
definitions along the way. Fixed gcc 4.1 build (thank you vax)
 1.25  16-Sep-2010  yamt branches: 1.25.6;
- remove a wrong _DIAGASSERT
- update comments
- whitespace
 1.24  04-May-2008  tonnerre branches: 1.24.8;
Fix a bug in the implementation of seekdir(). If the first entry in
a block has been unlinked, seekdir() may overshoot by one entry.
Thus, _readdir_unlinked() must not skip deleted entries when being
called from seekdir().
Christos agreed.
 1.23  17-May-2006  christos branches: 1.23.18;
PR/24324: Arne H Juul: Re-implement seekdir/telldir using a pointer of
locations per directory instead of a global hash table to avoid memory
leak issues, and incorrect results.
 1.22  24-Jan-2006  christos rename __func to _func_unlocked, and add their prototypes in extern.h
instead of exposing them in dirent.h. More locking consistency fixes.
 1.21  24-Jan-2006  christos PR/32609: Tanaka Akira: seekdir blocks if pthread is linked
Do locking consistently to avoid recursive locks (like the bug reported in
this pr), and to avoid leaking locks on errors.
 1.20  13-Sep-2005  christos compat core reorg.
 1.19  19-Aug-2005  christos 64 bit inode changes
 1.18  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.17  28-May-2003  kleink Need <string.h> for memcpy().
 1.16  28-May-2003  christos add mutex locking for directories and readdir_r(3). Influenced by FreeBSD.
 1.15  22-Jan-2000  mycroft Delint.
Remove trailing ; from uses of __weak_alias(). The macro inserts this if
needed.
 1.14  20-Sep-1999  lukem back out the #ifdef _DIAGNOSTIC argument checks; too many people complained.
_DIAGASSERT() is still retained.
 1.13  16-Sep-1999  lukem * use _DIAGASSERT() to check pointer arguments against NULL and file
descriptors against -1 (as appropriate).
* add actual checks which to detect stuff that would trigger_DIAGASSERT(),
and attempt to return a sane error condition.
* knf some code
* remove some `register' decls.

the first two items result in the addition of code similar to the
following in various functions:

_DIAGASSERT(path != NULL)
#ifdef _DIAGNOSTIC
if (path == NULL) {
errno = EFAULT;
return (-1);
}
#endif
 1.12  13-Nov-1998  christos delint
 1.11  27-Feb-1998  perry trivial changes to quiet lint.
 1.10  03-Feb-1998  perry remove obsolete register declarations
 1.9  10-Oct-1997  fvdl Fix another getdents() botch. I must've had a Makefile without
warnings on.
 1.8  10-Oct-1997  fvdl Use getdents(). Read NFS directories in one go (just as union dirs, but
without removing double entries). This makes sure that we get a
consistent snapshot of the directory, and protects against any
'bad cookie' errors.
 1.7  21-Jul-1997  jtc If port provides __weak_alias(), provide an Standard C and POSIX pure
identifier namespace by renaming non standard functions and variables
such that they have a leading underscore. The library will use those
names internally. Weak aliases are used to provide the original names
to the API.

This is only the first part of this change. It is most of the functions
which are implemented in C for all NetBSD ports. Subsequent changes are
to add the same support to the remaining C files, to assembly files, and
to the automagically generated assembly source used for system calls.
When all of the above is done, ports with weak alias support should add
a definition for __weak_alias to <sys/cdefs.h>.
 1.6  13-Jul-1997  christos Fix RCSID's
 1.5  25-Feb-1995  cgd branches: 1.5.4;
clean up Id's on files previously imported...
 1.4  28-Dec-1994  mycroft branches: 1.4.2;
Mostly sync with CSRG.
 1.3  19-Oct-1994  cgd beware cast type.
 1.2  27-Jul-1994  jtc branches: 1.2.2;
Add RCS Id's
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.3  02-Feb-1998  perry import lite-2
 1.1.1.2  27-Jul-1994  jtc opendir() & friends from 4.4lite.
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.2.2.2  27-Jul-1994  jtc Add RCS Id's
 1.2.2.1  27-Jul-1994  jtc file readdir.c was added on branch netbsd-1-0 on 1994-07-27 14:39:49 +0000
 1.4.2.2  02-May-1995  jtc #include "namespace.h"
 1.4.2.1  26-Apr-1995  jtc #include "namespace.h"
Added __weak_reference defns.
 1.5.4.1  16-Sep-1996  jtc snapshot namespace cleanup
 1.23.18.1  18-May-2008  yamt sync with head.
 1.24.8.2  04-May-2008  tonnerre Fix a bug in the implementation of seekdir(). If the first entry in
a block has been unlinked, seekdir() may overshoot by one entry.
Thus, _readdir_unlinked() must not skip deleted entries when being
called from seekdir().
Christos agreed.
 1.24.8.1  04-May-2008  tonnerre file readdir.c was added on branch christos-time_t on 2008-05-04 18:53:27 +0000
 1.25.6.1  30-Oct-2012  yamt sync with head
 1.26.44.1  02-Aug-2025  perseant Sync with HEAD
 1.26.42.1  09-Oct-2024  martin Pull up following revision(s) (requested by riastradh in ticket #935):

lib/libc/gen/readdir.c: revision 1.27

readdir(3): Preserve errno on end-of-directory.

PR pkg/57145: gmake: *** INTERNAL: readdir: Operation not supported.
Stop.
 1.26.34.1  11-Oct-2024  martin Pull up following revision(s) (requested by riastradh in ticket #1898):

lib/libc/gen/readdir.c: revision 1.27

readdir(3): Preserve errno on end-of-directory.

PR pkg/57145: gmake: *** INTERNAL: readdir: Operation not supported.
Stop.

RSS XML Feed