• KO Myung-Hun's avatar
    opendir, closedir, dirfd, fdopendir: port to OS/2 kLIBC · 7524d610
    KO Myung-Hun authored
    * lib/closedir.c (closedir): Unregister fd if closedir() succeeds.
    * lib/dirent.in.h (_gl_register_dirp_fd, _gl_unregister_dirp_fd):
    Declare on kLIBC.
    * lib/dirfd.c (struct dirp_fd_list): New. Structures to keep track of
    fd associated with dirp.
    (_gl_register_dirp_fd): New. Register fd associated with dirp to
    dirp_fd_list.
    (_gl_unregister_dirp_fd): New. Unregister fd with closing it.
    (dirfd): Implemented for kLIBC.
    * lib/fdopendir.c (fdopendir): Implemented for kLIBC.
    * lib/opendir.c (opendir): New. Register fd and dirp pair if open()
    succeeds.
    * m4/closedir.m4 (gl_FUNC_CLOSEDIR): Replace if OS/2.
    * m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise.
    (REPLACE_DIRFD): Define to 1 if replaced.
    * m4/opendir.m4 (gl_FUNC_OPENDIR): Likewise.
    * modules/closedir (Depends-on): Add dirfd.
    * modules/dirfd (Depends-on): Add 'test $REPLACE_DIRFD = 1' to errno
    condition.
    (configure.ac): Add dirfd to LIBOBJS if $REPLACE_DIRFD = 1 as well.
    * modules/opendir (Depends-on): Add dirfd.
    7524d610