File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / readline / posixdir.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 01:01:01 2021 UTC (3 years, 3 months ago) by misho
Branches: readline, MAIN
CVS tags: v8_2p0, v8_1p0, HEAD
readline 8.1

    1: /* posixdir.h -- Posix directory reading includes and defines. */
    2: 
    3: /* Copyright (C) 1987,1991,2012 Free Software Foundation, Inc.
    4: 
    5:    This file is part of GNU Bash, the Bourne Again SHell.
    6: 
    7:    Bash is free software: you can redistribute it and/or modify
    8:    it under the terms of the GNU General Public License as published by
    9:    the Free Software Foundation, either version 3 of the License, or
   10:    (at your option) any later version.
   11: 
   12:    Bash is distributed in the hope that it will be useful,
   13:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   14:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   15:    GNU General Public License for more details.
   16: 
   17:    You should have received a copy of the GNU General Public License
   18:    along with Bash.  If not, see <http://www.gnu.org/licenses/>.
   19: */
   20: 
   21: /* This file should be included instead of <dirent.h> or <sys/dir.h>. */
   22: 
   23: #if !defined (_POSIXDIR_H_)
   24: #define _POSIXDIR_H_
   25: 
   26: #if defined (HAVE_DIRENT_H)
   27: #  include <dirent.h>
   28: #  if defined (HAVE_STRUCT_DIRENT_D_NAMLEN)
   29: #    define D_NAMLEN(d)	((d)->d_namlen)
   30: #  else
   31: #    define D_NAMLEN(d)   (strlen ((d)->d_name))
   32: #  endif /* !HAVE_STRUCT_DIRENT_D_NAMLEN */
   33: #else
   34: #  if defined (HAVE_SYS_NDIR_H)
   35: #    include <sys/ndir.h>
   36: #  endif
   37: #  if defined (HAVE_SYS_DIR_H)
   38: #    include <sys/dir.h>
   39: #  endif
   40: #  if defined (HAVE_NDIR_H)
   41: #    include <ndir.h>
   42: #  endif
   43: #  if !defined (dirent)
   44: #    define dirent direct
   45: #  endif /* !dirent */
   46: #  define D_NAMLEN(d)   ((d)->d_namlen)
   47: #endif /* !HAVE_DIRENT_H */
   48: 
   49: /* The bash code fairly consistently uses d_fileno; make sure it's available */
   50: #if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (HAVE_STRUCT_DIRENT_D_FILENO)
   51: #  define d_fileno d_ino
   52: #endif
   53: 
   54: /* Posix does not require that the d_ino field be present, and some
   55:    systems do not provide it. */
   56: #if !defined (HAVE_STRUCT_DIRENT_D_INO) || defined (BROKEN_DIRENT_D_INO)
   57: #  define REAL_DIR_ENTRY(dp) 1
   58: #else
   59: #  define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)
   60: #endif /* _POSIX_SOURCE */
   61: 
   62: #if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (BROKEN_DIRENT_D_INO)
   63: #  define D_INO_AVAILABLE
   64: #endif
   65: 
   66: /* Signal the rest of the code that it can safely use dirent.d_fileno */
   67: #if defined (D_INO_AVAILABLE) || defined (HAVE_STRUCT_DIRENT_D_FILENO)
   68: #  define D_FILENO_AVAILABLE 1
   69: #endif
   70: 
   71: #endif /* !_POSIXDIR_H_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>