]> granicus.if.org Git - sudo/commitdiff
now use groovy gnu autoconf macro AC_HEADER_DIRENT
authorTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 28 Mar 1995 02:09:15 +0000 (02:09 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 28 Mar 1995 02:09:15 +0000 (02:09 +0000)
parse.c

diff --git a/parse.c b/parse.c
index d372401b73d8a5a9425439720e73fe238a79d7cf..623776c88312408280bb1d922ee1e941c0577bc2 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -59,11 +59,22 @@ static char rcsid[] = "$Id$";
 #include <netinet/in.h>
 #include <netdb.h>
 #include <sys/stat.h>
-#ifdef HAVE_DIRENT_H
-#include <dirent.h>
+#if HAVE_DIRENT_H
+# include <dirent.h>
+# define NAMLEN(dirent) strlen((dirent)->d_name)
 #else
-#include <sys/dir.h>
-#endif /* HAVE_DIRENT_H */
+# define dirent direct
+# define NAMLEN(dirent) (dirent)->d_namlen
+# if HAVE_SYS_NDIR_H
+#  include <sys/ndir.h>
+# endif
+# if HAVE_SYS_DIR_H
+#  include <sys/dir.h>
+# endif
+# if HAVE_NDIR_H
+#  include <ndir.h>
+# endif
+#endif
 
 #include "sudo.h"
 #include "options.h"
@@ -147,11 +158,7 @@ char *cmnd, *path;
     int plen;
     struct stat cst, pst;
     DIR *dirp;
-#ifdef HAVE_DIRENT_H
     struct dirent *dent;
-#else
-    struct direct *dent;
-#endif /* HAVE_DIRENT_H */
     char buf[MAXCOMMANDLENGTH+1];
 
     if (stat(cmnd, &cst) < 0)
@@ -171,7 +178,7 @@ char *cmnd, *path;
 
     while ((dent = readdir(dirp)) != NULL) {
        strcpy(buf, path);
-       strcat(buf, dent->d_name);
+       strcat(buf, NAMLEN(dent));
        if (stat(buf, &pst) < 0)
            continue;
        if (cst.st_dev == pst.st_dev && cst.st_ino == pst.st_ino)