Annotation of embedaddon/readline/posixdir.h, revision 1.1.1.2

1.1       misho       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: 
1.1.1.2 ! misho      49: /* The bash code fairly consistently uses d_fileno; make sure it's available */
1.1       misho      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>