mirror of
https://git.freebsd.org/src.git
synced 2026-01-11 19:57:22 +00:00
libc: Rename fscandir{,_b}() to fdscandir{,_b}().
This seems to fit the pattern better (e.g. fdopendir()).
I've added weak references to ease the transition, but since it's only
been a few days, we can remove them (and the ObsoleteFiles entries for
the manual pages) before we branch stable/15.
Fixes: deeebfdeca
Sponsored by: Klara, Inc.
Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D50980
This commit is contained in:
parent
b47a6c93e2
commit
0a5b763d98
9 changed files with 47 additions and 35 deletions
|
|
@ -51,6 +51,10 @@
|
|||
# xargs -n1 | sort | uniq -d;
|
||||
# done
|
||||
|
||||
# 20250623: fscandir() renamed to fdscandir()
|
||||
OLD_FILES+=usr/share/man/man3/fscandir.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/fscandir_b.3.gz
|
||||
|
||||
# 20250615: don't install man page for absent function
|
||||
OLD_FILES+=usr/share/man/man9/vm_map_simplify_entry.9.gz
|
||||
|
||||
|
|
|
|||
|
|
@ -130,11 +130,11 @@ int scandir_b(const char *, struct dirent ***,
|
|||
#endif
|
||||
#endif
|
||||
#if __BSD_VISIBLE
|
||||
int fscandir(int, struct dirent ***,
|
||||
int fdscandir(int, struct dirent ***,
|
||||
int (*)(const struct dirent *), int (*)(const struct dirent **,
|
||||
const struct dirent **));
|
||||
#ifdef __BLOCKS__
|
||||
int fscandir_b(int, struct dirent ***,
|
||||
int fdscandir_b(int, struct dirent ***,
|
||||
int (^)(const struct dirent *),
|
||||
int (^)(const struct dirent **, const struct dirent **));
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -499,8 +499,8 @@ MLINKS+=rand48.3 _rand48.3 \
|
|||
MLINKS+=rtld_get_var.3 \
|
||||
rtld_set_var.3
|
||||
MLINKS+=scandir.3 alphasort.3 \
|
||||
scandir.3 fscandir.3 \
|
||||
scandir.3 fscandir_b.3 \
|
||||
scandir.3 fdscandir.3 \
|
||||
scandir.3 fdscandir_b.3 \
|
||||
scandir.3 scandir_b.3 \
|
||||
scandir.3 scandirat.3 \
|
||||
scandir.3 scandirat_b.3 \
|
||||
|
|
|
|||
|
|
@ -460,6 +460,8 @@ FBSD_1.8 {
|
|||
execvpe;
|
||||
fscandir;
|
||||
fscandir_b;
|
||||
fdscandir;
|
||||
fdscandir_b;
|
||||
fts_open_b;
|
||||
glob_b;
|
||||
psiginfo;
|
||||
|
|
|
|||
|
|
@ -30,11 +30,11 @@
|
|||
.Os
|
||||
.Sh NAME
|
||||
.Nm scandir ,
|
||||
.Nm fscandir ,
|
||||
.Nm fdscandir ,
|
||||
.Nm scandirat ,
|
||||
.Nm scandir_b ,
|
||||
.Nm fscandir_b ,
|
||||
.Nm fscandirat_b ,
|
||||
.Nm fdscandir_b ,
|
||||
.Nm fdscandirat_b ,
|
||||
.Nm alphasort ,
|
||||
.Nm versionsort
|
||||
.Nd scan a directory
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
.Fa "int \*(lp*compar\*(rp\*(lpconst struct dirent **, const struct dirent **\*(rp"
|
||||
.Fc
|
||||
.Ft int
|
||||
.Fo fscandir
|
||||
.Fo fdscandir
|
||||
.Fa "int dirfd"
|
||||
.Fa "struct dirent ***namelist"
|
||||
.Fa "int \*(lp*select\*(rp\*(lpconst struct dirent *\*(rp"
|
||||
|
|
@ -72,7 +72,7 @@
|
|||
.Fa "int \*(lp^compar\*(rp\*(lpconst struct dirent **, const struct dirent **\*(rp"
|
||||
.Fc
|
||||
.Ft int
|
||||
.Fo fscandir_b
|
||||
.Fo fdscandir_b
|
||||
.Fa "int dirfd"
|
||||
.Fa "struct dirent ***namelist"
|
||||
.Fa "int \*(lp^select\*(rp\*(lpconst struct dirent *\*(rp"
|
||||
|
|
@ -144,7 +144,7 @@ The memory allocated for the array can be deallocated with
|
|||
by freeing each pointer in the array and then the array itself.
|
||||
.Pp
|
||||
The
|
||||
.Fn fscandir
|
||||
.Fn fdscandir
|
||||
function is similar to
|
||||
.Fn scandir ,
|
||||
but takes a file descriptor referencing a directory instead of a path.
|
||||
|
|
@ -185,12 +185,12 @@ for additional details.
|
|||
.Pp
|
||||
The
|
||||
.Fn scandir_b ,
|
||||
.Fn fscandir_b ,
|
||||
.Fn fdscandir_b ,
|
||||
and
|
||||
.Fn scandirat_b
|
||||
functions behave in the same way as
|
||||
.Fn scandir ,
|
||||
.Fn fscandir ,
|
||||
.Fn fdscandir ,
|
||||
and
|
||||
.Fn scandirat ,
|
||||
respectively,
|
||||
|
|
@ -201,10 +201,10 @@ rather than
|
|||
.Sh DIAGNOSTICS
|
||||
The
|
||||
.Fn scandir ,
|
||||
.Fn fscandir ,
|
||||
.Fn fdscandir ,
|
||||
.Fn scandirat ,
|
||||
.Fn scandir_b ,
|
||||
.Fn fscandir_b ,
|
||||
.Fn fdscandir_b ,
|
||||
and
|
||||
.Fn scandirat_b
|
||||
functions return the number of directory entries found on succes.
|
||||
|
|
@ -236,9 +236,9 @@ and
|
|||
.Fn versionsort
|
||||
functions are GNU extensions and conform to no standard.
|
||||
The
|
||||
.Fn fscandir ,
|
||||
.Fn fdscandir ,
|
||||
.Fn scandir_b ,
|
||||
.Fn fscandir_b ,
|
||||
.Fn fdscandir_b ,
|
||||
and
|
||||
.Fn scandirat_b
|
||||
functions are
|
||||
|
|
@ -262,8 +262,8 @@ and
|
|||
functions were added in
|
||||
.Fx 13.2 .
|
||||
The
|
||||
.Fn fscandir ,
|
||||
.Fn fscandir_b ,
|
||||
.Fn fdscandir ,
|
||||
.Fn fdscandir_b ,
|
||||
and
|
||||
.Fn scandirat_b
|
||||
functions were added in
|
||||
|
|
|
|||
|
|
@ -159,10 +159,10 @@ scandir(const char *dirname, struct dirent ***namelist,
|
|||
|
||||
int
|
||||
#ifdef I_AM_SCANDIR_B
|
||||
fscandir_b(int dirfd, struct dirent ***namelist, select_block select,
|
||||
fdscandir_b(int dirfd, struct dirent ***namelist, select_block select,
|
||||
dcomp_block dcomp)
|
||||
#else
|
||||
fscandir(int dirfd, struct dirent ***namelist,
|
||||
fdscandir(int dirfd, struct dirent ***namelist,
|
||||
int (*select)(const struct dirent *), int (*dcomp)(const struct dirent **,
|
||||
const struct dirent **))
|
||||
#endif
|
||||
|
|
@ -203,9 +203,9 @@ scandirat(int dirfd, const char *dirname, struct dirent ***namelist,
|
|||
return (-1);
|
||||
ret =
|
||||
#ifdef I_AM_SCANDIR_B
|
||||
fscandir_b
|
||||
fdscandir_b
|
||||
#else
|
||||
fscandir
|
||||
fdscandir
|
||||
#endif
|
||||
(fd, namelist, select, dcomp);
|
||||
serrno = errno;
|
||||
|
|
@ -242,3 +242,9 @@ scandir_thunk_cmp(const void *p1, const void *p2, void *thunk)
|
|||
return (dc((const struct dirent **)p1, (const struct dirent **)p2));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef I_AM_SCANDIR_B
|
||||
__weak_reference(fdscandir_b, fscandir_b);
|
||||
#else
|
||||
__weak_reference(fdscandir, fscandir);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -57,19 +57,19 @@ ATF_TC_BODY(scandir_b_test, tc)
|
|||
free(namelist);
|
||||
}
|
||||
|
||||
ATF_TC(fscandir_b_test);
|
||||
ATF_TC_HEAD(fscandir_b_test, tc)
|
||||
ATF_TC(fdscandir_b_test);
|
||||
ATF_TC_HEAD(fdscandir_b_test, tc)
|
||||
{
|
||||
atf_tc_set_md_var(tc, "descr", "Test fscandir_b()");
|
||||
atf_tc_set_md_var(tc, "descr", "Test fdscandir_b()");
|
||||
}
|
||||
ATF_TC_BODY(fscandir_b_test, tc)
|
||||
ATF_TC_BODY(fdscandir_b_test, tc)
|
||||
{
|
||||
struct dirent **namelist = NULL;
|
||||
int fd, i, ret;
|
||||
|
||||
scandir_blocks_prepare(tc);
|
||||
ATF_REQUIRE((fd = open("dir", O_DIRECTORY | O_RDONLY)) >= 0);
|
||||
ret = fscandir_b(fd, &namelist,
|
||||
ret = fdscandir_b(fd, &namelist,
|
||||
^(const struct dirent *ent) {
|
||||
return (strcmp(ent->d_name, "skip") != 0);
|
||||
},
|
||||
|
|
@ -112,7 +112,7 @@ ATF_TC_BODY(scandirat_b_test, tc)
|
|||
ATF_TP_ADD_TCS(tp)
|
||||
{
|
||||
ATF_TP_ADD_TC(tp, scandir_b_test);
|
||||
ATF_TP_ADD_TC(tp, fscandir_b_test);
|
||||
ATF_TP_ADD_TC(tp, fdscandir_b_test);
|
||||
ATF_TP_ADD_TC(tp, scandirat_b_test);
|
||||
return (atf_no_error());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,19 +63,19 @@ ATF_TC_BODY(scandir_test, tc)
|
|||
free(namelist);
|
||||
}
|
||||
|
||||
ATF_TC(fscandir_test);
|
||||
ATF_TC_HEAD(fscandir_test, tc)
|
||||
ATF_TC(fdscandir_test);
|
||||
ATF_TC_HEAD(fdscandir_test, tc)
|
||||
{
|
||||
atf_tc_set_md_var(tc, "descr", "Test fscandir()");
|
||||
atf_tc_set_md_var(tc, "descr", "Test fdscandir()");
|
||||
}
|
||||
ATF_TC_BODY(fscandir_test, tc)
|
||||
ATF_TC_BODY(fdscandir_test, tc)
|
||||
{
|
||||
struct dirent **namelist = NULL;
|
||||
int fd, i, ret;
|
||||
|
||||
scandir_prepare(tc);
|
||||
ATF_REQUIRE((fd = open("dir", O_DIRECTORY | O_RDONLY)) >= 0);
|
||||
ret = fscandir(fd, &namelist, scandir_select, scandir_compare);
|
||||
ret = fdscandir(fd, &namelist, scandir_select, scandir_compare);
|
||||
scandir_verify(tc, ret, namelist);
|
||||
for (i = 0; i < ret; i++)
|
||||
free(namelist[i]);
|
||||
|
|
@ -127,7 +127,7 @@ ATF_TC_BODY(scandir_none, tc)
|
|||
ATF_TP_ADD_TCS(tp)
|
||||
{
|
||||
ATF_TP_ADD_TC(tp, scandir_test);
|
||||
ATF_TP_ADD_TC(tp, fscandir_test);
|
||||
ATF_TP_ADD_TC(tp, fdscandir_test);
|
||||
ATF_TP_ADD_TC(tp, scandirat_test);
|
||||
ATF_TP_ADD_TC(tp, scandir_none);
|
||||
return (atf_no_error());
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ vscandir(struct inodetree *tree, const char *path, struct dirent ***dirp,
|
|||
*dirp = NULL;
|
||||
return (0);
|
||||
}
|
||||
if ((ret = fscandir(fd, dirp, selectf, comparf)) < 0)
|
||||
if ((ret = fdscandir(fd, dirp, selectf, comparf)) < 0)
|
||||
goto fail;
|
||||
RB_INSERT(inodetree, tree, ino);
|
||||
close(fd);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue