* backupfile.c, dirfd.h, fts.c, getcwd.c, glob.c, glob_.h:
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 11 Jul 2006 06:02:51 +0000 (06:02 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 11 Jul 2006 06:02:51 +0000 (06:02 +0000)
Ignore the obsolescent !HAVE_DIRENT_H case.  Consolidate NAMLEN
macros into the GNU _D_EXACT_NAMLEN.
* savedir.c:  Likewise.
(savedirstream): Use _D_EXACT_NAMLEN in preference to strlen.

* backupfile.m4, d-ino.m4, d-type.m4, dirfd.m4, fts.m4, getcwd.m4:
* savedir.m4:
Ignore the obsolescent !HAVE_DIRENT_H case.  Consolidate NAMLEN
macros into the GNU _D_EXACT_NAMLEN.

17 files changed:
lib/ChangeLog
lib/backupfile.c
lib/dirfd.h
lib/fts.c
lib/getcwd.c
lib/glob.c
lib/glob_.h
lib/savedir.c
m4/ChangeLog
m4/backupfile.m4
m4/d-ino.m4
m4/d-type.m4
m4/dirfd.m4
m4/fts.m4
m4/getcwd.m4
m4/glob.m4
m4/savedir.m4

index 031f345..790a291 100644 (file)
@@ -1,3 +1,11 @@
+2006-07-10  Derek R. Price  <derek@ximbiot.com>
+
+       * backupfile.c, dirfd.h, fts.c, getcwd.c, glob.c, glob_.h:
+       Ignore the obsolescent !HAVE_DIRENT_H case.  Consolidate NAMLEN
+       macros into the GNU _D_EXACT_NAMLEN.
+       * savedir.c:  Likewise.
+       (savedirstream): Use _D_EXACT_NAMLEN in preference to strlen.
+
 2006-07-09  Jim Meyering  <jim@meyering.net>
 
        * argp-pv.c: Remove a doubled word in a comment.
index 13c4715..c24325d 100644 (file)
 
 #include <unistd.h>
 
-#if HAVE_DIRENT_H
-# include <dirent.h>
-# define NLENGTH(direct) strlen ((direct)->d_name)
-#else
-# define dirent direct
-# define NLENGTH(direct) ((size_t) (direct)->d_namlen)
-# include <ndir.h>
+#include <dirent.h>
+#ifndef _D_EXACT_NAMLEN
+# define _D_EXACT_NAMLEN(dp) strlen ((dp)->d_name)
 #endif
-
 #if D_INO_IN_DIRENT
 # define REAL_DIR_ENTRY(dp) ((dp)->d_ino != 0)
 #else
@@ -211,7 +206,7 @@ numbered_backup (char **buffer, size_t buffer_size, size_t filelen)
       size_t versionlen;
       size_t new_buflen;
 
-      if (! REAL_DIR_ENTRY (dp) || NLENGTH (dp) < baselen + 4)
+      if (! REAL_DIR_ENTRY (dp) || _D_EXACT_NAMLEN (dp) < baselen + 4)
        continue;
 
       if (memcmp (buf + base_offset, dp->d_name, baselen + 2) != 0)
index 601332c..05b7777 100644 (file)
 
 #include <sys/types.h>
 
-#if HAVE_DIRENT_H
-# include <dirent.h>
-#else
-# define dirent direct
-# include <ndir.h>
-#endif
+#include <dirent.h>
 
 #ifndef HAVE_DECL_DIRFD
 "this configure-time declaration test was not run"
index 0938b9c..73ee360 100644 (file)
--- a/lib/fts.c
+++ b/lib/fts.c
@@ -75,17 +75,9 @@ static char sccsid[] = "@(#)fts.c    8.6 (Berkeley) 8/14/94";
 # include "lstat.h"
 #endif
 
-#if HAVE_DIRENT_H || _LIBC
-# include <dirent.h>
-# ifdef _D_EXACT_NAMLEN
-#  define NAMLEN(dirent) _D_EXACT_NAMLEN (dirent)
-# else
-#  define NAMLEN(dirent) strlen ((dirent)->d_name)
-# endif
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# include <ndir.h>
+#include <dirent.h>
+#ifndef _D_EXACT_NAMLEN
+# define _D_EXACT_NAMLEN(dirent) strlen ((dirent)->d_name)
 #endif
 
 #ifdef _LIBC
@@ -829,11 +821,13 @@ fts_build (register FTS *sp, int type)
                if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name))
                        continue;
 
-               if ((p = fts_alloc(sp, dp->d_name, NAMLEN (dp))) == NULL)
+               if ((p = fts_alloc (sp, dp->d_name,
+                                   _D_EXACT_NAMLEN (dp))) == NULL)
                        goto mem1;
-               if (NAMLEN (dp) >= maxlen) {/* include space for NUL */
+               if (_D_EXACT_NAMLEN (dp) >= maxlen) {
+                       /* include space for NUL */
                        oldaddr = sp->fts_path;
-                       if (! fts_palloc(sp, NAMLEN (dp) + len + 1)) {
+                       if (! fts_palloc(sp, _D_EXACT_NAMLEN (dp) + len + 1)) {
                                /*
                                 * No more memory.  Save
                                 * errno, free up the current structure and the
@@ -858,7 +852,7 @@ mem1:                               saved_errno = errno;
                        maxlen = sp->fts_pathlen - len;
                }
 
-               new_len = len + NAMLEN (dp);
+               new_len = len + _D_EXACT_NAMLEN (dp);
                if (new_len < len) {
                        /*
                         * In the unlikely even that we would end up
index a67dc0c..614ded1 100644 (file)
 # define __set_errno(val) (errno = (val))
 #endif
 
-#if HAVE_DIRENT_H || _LIBC
-# include <dirent.h>
-#else
-# define dirent direct
-# define _D_EXACT_NAMLEN(d) (d)->d_namlen
-# include <ndir.h>
-#endif
+#include <dirent.h>
 #ifndef _D_EXACT_NAMLEN
 # define _D_EXACT_NAMLEN(d) strlen ((d)->d_name)
 #endif
index c1613f4..a2b0d89 100644 (file)
 # define __set_errno(val) errno = (val)
 #endif
 
-#if defined HAVE_DIRENT_H || defined __GNU_LIBRARY__
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# include <ndir.h>
-#endif
+#include <dirent.h>
 
 
 /* In GNU systems, <dirent.h> defines this macro for us.  */
-#ifdef _D_NAMLEN
-# undef NAMLEN
-# define NAMLEN(d) _D_NAMLEN(d)
+#ifndef _D_EXACT_NAMLEN
+# define _D_EXACT_NAMLEN(dirent) strlen ((dirent)->d_name)
 #endif
 
 /* When used in the GNU libc the symbol _DIRENT_HAVE_D_TYPE is available
 
 /* If the system has the `struct dirent64' type we use it internally.  */
 #if defined _LIBC && !defined COMPILE_GLOB64
-# if defined HAVE_DIRENT_H || defined __GNU_LIBRARY__
-#  define CONVERT_D_NAMLEN(d64, d32)
-# else
-#  define CONVERT_D_NAMLEN(d64, d32) \
-  (d64)->d_namlen = (d32)->d_namlen;
-# endif
-
 # if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__
 #  define CONVERT_D_INO(d64, d32)
 # else
 
 # define CONVERT_DIRENT_DIRENT64(d64, d32) \
   memcpy ((d64)->d_name, (d32)->d_name, NAMLEN (d32) + 1);                   \
-  CONVERT_D_NAMLEN (d64, d32)                                                \
   CONVERT_D_INO (d64, d32)                                                   \
   CONVERT_D_TYPE (d64, d32)
 #endif
index fcf6f0d..91b7a45 100644 (file)
 #endif
 
 
-#ifndef HAVE_DIRENT_H
-# define dirent direct
-#endif
-
 #define glob rpl_glob
 #define globfree rpl_globfree
 #define glob_pattern_p rpl_glob_pattern_p
index c685470..4b07024 100644 (file)
 
 #include <errno.h>
 
-#if HAVE_DIRENT_H
-# include <dirent.h>
-#else
-# define dirent direct
-# include <ndir.h>
+#include <dirent.h>
+#ifndef _D_EXACT_NAMLEN
+# define _D_EXACT_NAMLEN(dp)   strlen ((dp)->d_name)
 #endif
 
 #include <stddef.h>
@@ -81,7 +79,7 @@ savedirstream (DIR *dirp)
       entry = dp->d_name;
       if (entry[entry[0] != '.' ? 0 : entry[1] != '.' ? 1 : 2] != '\0')
        {
-         size_t entry_size = strlen (entry) + 1;
+         size_t entry_size = _D_EXACT_NAMLEN (dp) + 1;
          if (used + entry_size < used)
            xalloc_die ();
          if (allocated <= used + entry_size)
index ef2c60e..d59d50e 100644 (file)
@@ -1,3 +1,11 @@
+2006-07-10  Derek R. Price  <derek@ximbiot.com>
+       and Paul Eggert  <eggert@cs.ucla.edu>
+
+       * backupfile.m4, d-ino.m4, d-type.m4, dirfd.m4, fts.m4, getcwd.m4:
+       * savedir.m4:
+       Ignore the obsolescent !HAVE_DIRENT_H case.  Consolidate NAMLEN
+       macros into the GNU _D_EXACT_NAMLEN.
+
 2006-07-10  Paul Eggert  <eggert@cs.ucla.edu>
 
        * stdint.m4 (gl_STDINT_H): Like yesterday's change to
index 04b2556..6e08f72 100644 (file)
@@ -1,4 +1,4 @@
-# backupfile.m4 serial 10
+# backupfile.m4 serial 11
 dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -10,7 +10,6 @@ AC_DEFUN([gl_BACKUPFILE],
   AC_LIBOBJ([backupfile])
 
   dnl Prerequisites of lib/backupfile.c.
-  AC_CHECK_HEADERS_ONCE([dirent.h])
   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
   AC_REQUIRE([gl_AC_DOS])
   AC_REQUIRE([AC_SYS_LONG_FILE_NAMES])
index c86f7bb..d87b4db 100644 (file)
@@ -13,18 +13,12 @@ dnl
 # with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO],
-  [AC_CHECK_HEADERS_ONCE([dirent.h])dnl
-   AC_CACHE_CHECK([for d_ino member in directory struct],
+  [AC_CACHE_CHECK([for d_ino member in directory struct],
                  jm_cv_struct_dirent_d_ino,
      [AC_TRY_LINK(dnl
        [
 #include <sys/types.h>
-#ifdef HAVE_DIRENT_H
-# include <dirent.h>
-#else
-# define dirent direct
-# include <ndir.h>
-#endif
+#include <dirent.h>
        ],
        [struct dirent dp; dp.d_ino = 0;],
 
index f4be1ce..7675dd2 100644 (file)
@@ -13,18 +13,12 @@ dnl
 # with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE],
-  [AC_CHECK_HEADERS_ONCE([dirent.h])dnl
-   AC_CACHE_CHECK([for d_type member in directory struct],
+  [AC_CACHE_CHECK([for d_type member in directory struct],
                  jm_cv_struct_dirent_d_type,
      [AC_TRY_LINK(dnl
        [
 #include <sys/types.h>
-#ifdef HAVE_DIRENT_H
-# include <dirent.h>
-#else
-# define dirent direct
-# include <ndir.h>
-#endif
+#include <dirent.h>
        ],
        [struct dirent dp; dp.d_type = 0;],
 
index 9e26d52..c377b87 100644 (file)
@@ -1,4 +1,4 @@
-#serial 12   -*- Autoconf -*-
+#serial 13   -*- Autoconf -*-
 
 dnl Find out how to get the file descriptor associated with an open DIR*.
 
@@ -17,22 +17,16 @@ AC_DEFUN([gl_FUNC_DIRFD],
   dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
   AC_REQUIRE([AC_PROG_CPP])
   AC_REQUIRE([AC_PROG_EGREP])
-  AC_CHECK_HEADERS_ONCE([dirent.h])dnl
-
-  dirfd_headers='
-#if HAVE_DIRENT_H
-# include <dirent.h>
-#else
-# define dirent direct
-# include <ndir.h>
-#endif
-'
   AC_CHECK_FUNCS(dirfd)
-  AC_CHECK_DECLS([dirfd], , , $dirfd_headers)
+  AC_CHECK_DECLS([dirfd], , ,
+    [#include <sys/types.h>
+     #include <dirent.h>])
 
   AC_CACHE_CHECK([whether dirfd is a macro],
     gl_cv_func_dirfd_macro,
-    [AC_EGREP_CPP([dirent_header_defines_dirfd], [$dirfd_headers
+    [AC_EGREP_CPP([dirent_header_defines_dirfd], [
+#include <sys/types.h>
+#include <dirent.h>
 #ifdef dirfd
  dirent_header_defines_dirfd
 #endif],
@@ -53,8 +47,8 @@ AC_DEFUN([gl_FUNC_DIRFD],
 
          CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
          AC_TRY_COMPILE(
-           [$dirfd_headers
-           ],
+           [#include <sys/types.h>
+            #include <dirent.h>],
            [DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;],
            dir_fd_found=yes
          )
index f9f5f6b..2e56094 100644 (file)
--- a/m4/fts.m4
+++ b/m4/fts.m4
@@ -1,4 +1,4 @@
-#serial 7
+#serial 9
 dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -29,5 +29,5 @@ AC_DEFUN([gl_FUNC_FTS_CORE],
   dnl Prerequisites of lib/fts.c.
 
   # Checks for header files.
-  AC_CHECK_HEADERS_ONCE([dirent.h sys/param.h])dnl
+  AC_CHECK_HEADERS_ONCE([sys/param.h])dnl
 ])
index 730ed42..2a19a08 100644 (file)
@@ -61,7 +61,6 @@ AC_DEFUN([gl_FUNC_GETCWD],
 AC_DEFUN([gl_PREREQ_GETCWD],
 [
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-  AC_CHECK_HEADERS_ONCE([dirent.h])dnl
   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
   :
 ])
index 5d80e05..fd1fb3b 100644 (file)
@@ -1,4 +1,4 @@
-# glob.m4 serial 4
+# glob.m4 serial 5
 dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -74,7 +74,6 @@ if (glob ("conf*-globtest", 0, NULL, &found) == GLOB_NOMATCH) return 1;]]),
 AC_DEFUN([gl_PREREQ_GLOB],
 [ AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])dnl
   AC_REQUIRE([AC_GNU_SOURCE])dnl
-  AC_CHECK_HEADERS_ONCE([dirent.h])dnl
   AC_CHECK_HEADERS_ONCE([sys/cdefs.h unistd.h])dnl
   AC_CHECK_FUNCS_ONCE([getlogin_r getpwnam_r])dnl
   :])
index e207123..b6968eb 100644 (file)
@@ -1,4 +1,4 @@
-# savedir.m4 serial 7
+# savedir.m4 serial 8
 dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -8,7 +8,4 @@ AC_DEFUN([gl_SAVEDIR],
 [
   AC_LIBSOURCES([savedir.c, savedir.h])
   AC_LIBOBJ([savedir])
-
-  dnl Prerequisites of lib/savedir.c.
-  AC_CHECK_HEADERS_ONCE([dirent.h])dnl
 ])