[project @ 2004-11-06 16:34:25 by panne]
authorpanne <unknown>
Sat, 6 Nov 2004 16:34:25 +0000 (16:34 +0000)
committerpanne <unknown>
Sat, 6 Nov 2004 16:34:25 +0000 (16:34 +0000)
'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
configure.ac
include/HsBase.h

index e29f68e..4112b00 100644 (file)
@@ -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 <dirent.h>
-#include <stdio.h>
-#include <string.h>
-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
-])
index 558f28f..d38d579 100644 (file)
@@ -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
index 74f20f7..289f9b5 100644 (file)
@@ -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