From d429a873fa0b6c1c071c486ba18e5dc7a73a1bb3 Mon Sep 17 00:00:00 2001 From: panne Date: Sat, 6 Nov 2004 16:34:25 +0000 Subject: [PATCH] [project @ 2004-11-06 16:34:25 by panne] 'd->d_name' (where d is of type 'struct dirent*') should always return a pointer to the directory entry's name, regardless if dirent is defined as struct dirent { ... ; char d_name[...]; } or struct dirent { ... ; char* d_name; } No need for autoconf trickery here. --- aclocal.m4 | 37 ------------------------------------- configure.ac | 1 - include/HsBase.h | 4 ---- 3 files changed, 42 deletions(-) diff --git a/aclocal.m4 b/aclocal.m4 index e29f68e..4112b00 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -210,40 +210,3 @@ char **argv; dnl the cross value is somewhat bogus. AC_DEFINE_UNQUOTED([READDIR_ERRNO_EOF], [$fptools_cv_readdir_eof_errno], [readdir() sets errno to this upon EOF]) ]) - -dnl @synopsis FP_DIRENT_FLAT_LAYOUT -dnl -dnl Check whether 'struct dirent' (in dirent.h) has d_name defined -dnl as being the final field in a struct, or a pointer to somewhere -dnl else. The former is the standardly thing to do, but mingw defns -dnl have for the longest time gone for the latter. They no longer do, -dnl hence the need to configure test for this. -dnl -dnl -AC_DEFUN(FP_DIRENT_FLAT_LAYOUT, -[AC_CACHE_CHECK([if struct dirent layout is flat], fptools_cv_dirent_flat_layout, -[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include -#include -#include -int -main(argc, argv) -int argc; -char **argv; -{ - struct dirent de; - /* - * Check whether d_name is defined as - * struct dirent { .... ; char d_name[..]; } - * or - * struct dirent { .... ; char* d_name; } - * - * Returns 0 if the former. - */ - memset(&de,0,sizeof(struct dirent)); - return ((int)de.d_name == 0); -}]])],[fptools_cv_dirent_flat_layout=yes],[fptools_cv_dirent_flat_layout=no],[fptools_cv_dirent_flat_layout=yes])]) -dnl the cross value is somewhat bogus. -if test "$fptools_cv_dirent_flat_layout" = yes; then -AC_DEFINE([STRUCT_DIRENT_FLAT_LAYOUT], [1], [Define to 1 if struct dirent is a flat structure]) -fi -]) diff --git a/configure.ac b/configure.ac index 558f28f..d38d579 100644 --- a/configure.ac +++ b/configure.ac @@ -59,6 +59,5 @@ FP_CHECK_CONSTS([E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EADV EAFNOSUPPORT EAGAIN # Check for idiosyncracies in some mingw impls of directory handling. FP_READDIR_EOF_ERRNO -FP_DIRENT_FLAT_LAYOUT AC_OUTPUT diff --git a/include/HsBase.h b/include/HsBase.h index 74f20f7..289f9b5 100644 --- a/include/HsBase.h +++ b/include/HsBase.h @@ -494,11 +494,7 @@ INLINE mode_t __hscore_S_IXUSR() { return S_IXUSR; } INLINE HsAddr __hscore_d_name( struct dirent* d ) { -#if defined(STRUCT_DIRENT_FLAT_LAYOUT) - return (HsAddr)(&d->d_name); -#else return (HsAddr)(d->d_name); -#endif } INLINE HsInt -- 1.7.10.4