diff options
author | Jim Meyering <jim@meyering.net> | 2001-11-03 18:49:27 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2001-11-03 18:49:27 +0000 |
commit | 414aaabeca01e64bacafa472ed63cf8155027ebf (patch) | |
tree | 2614d0979444ca1a8e448b5858f7aa6d5e015c64 | |
parent | 77b9c499221bd687e579759b7a1450f81e683ad1 (diff) | |
download | gnulib-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.m4 | 42 |
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 ]) |