summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2001-11-03 18:49:27 +0000
committerJim Meyering <jim@meyering.net>2001-11-03 18:49:27 +0000
commit414aaabeca01e64bacafa472ed63cf8155027ebf (patch)
tree2614d0979444ca1a8e448b5858f7aa6d5e015c64
parent77b9c499221bd687e579759b7a1450f81e683ad1 (diff)
downloadgnulib-414aaabeca01e64bacafa472ed63cf8155027ebf.tar.gz
(UTILS_FUNC_DIRFD): Rework so dirfd.c doesn't have to
know the name of the variable in the macro definition.
-rw-r--r--m4/dirfd.m442
1 files changed, 21 insertions, 21 deletions
diff --git a/m4/dirfd.m4 b/m4/dirfd.m4
index 9b6fb457ed..7f52bf3018 100644
--- a/m4/dirfd.m4
+++ b/m4/dirfd.m4
@@ -31,38 +31,38 @@ AC_DEFUN([UTILS_FUNC_DIRFD],
AC_REPLACE_FUNCS([dirfd])
AC_CACHE_CHECK(
[how to get the file descriptor associated with an open DIR*],
- ac_cv_sys_dir_to_fd,
+ ac_cv_sys_dir_fd_member_name,
[
dirfd_save_DEFS=$DEFS
- for ac_expr in \
- \
- 'dir_p->d_fd' \
- \
- 'dir_p->dd_fd' \
- \
- '# systems for which the info is not available' \
- -1 \
- ; do
+ for ac_expr in d_fd dd_fd; do
- # Skip each embedded comment.
- case "$ac_expr" in '#'*) continue;; esac
-
- DEFS="$DEFS -DDIR_TO_FD=$ac_expr"
+ DEFS="$DEFS -DDIR_FD_MEMBER_NAME=$ac_expr"
AC_TRY_COMPILE(
[$dirfd_headers
],
- [DIR *dir_p = opendir("."); (void) ($ac_expr);],
- dir_fd_done=yes
+ [DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;],
+ dir_fd_found=yes
)
DEFS=$dirfd_save_DEFS
- test "$dir_fd_done" = yes && break
+ test "$dir_fd_found" = yes && break
done
+ test "$dir_fd_found" = yes || ac_expr=-1
- ac_cv_sys_dir_to_fd=$ac_expr
+ ac_cv_sys_dir_fd_member_name=$ac_expr
]
)
- AC_DEFINE_UNQUOTED(DIR_TO_FD,
- $ac_cv_sys_dir_to_fd,
- [the file descriptor associated with `dir_p'])
+ if test $ac_cv_have_decl_dirfd = -1; then
+ AC_DEFINE_UNQUOTED(DIR_FD_MEMBER_NAME,
+ $ac_cv_sys_dir_fd_member_name,
+ [the name of the file descriptor member of DIR])
+ fi
+ AH_VERBATIM(DIR_TO_FD,
+ [#ifdef DIR_FD_MEMBER_NAME
+ # define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME)
+ #else
+ # define DIR_TO_FD(Dir_p) -1
+ #endif
+ ]
+ )
fi
])