mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-04 11:40:22 +00:00
3a8d0cc825
* admin/merge-gnulib (GNULIB_MODULES): Add d-type. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. * m4/d-type.m4: New file, copied from gnulib. * src/dired.c (DT_UNKNOWN, DT_DIR, DT_LINK) [!HAVE_STRUCT_DIRENT_D_TYPE]: New constants. (dirent_type): New function. (file_name_completion): Use it, to avoid unnecessary calls to stat-like functions on GNU/Linux and other platforms with d_type. (file_name_completion_stat): Just follow the link; there is no need to try first with AT_SYMLINK_NOFOLLOW since the directory entry was already checked to exist.
33 lines
983 B
Plaintext
33 lines
983 B
Plaintext
# serial 12
|
|
|
|
dnl From Jim Meyering.
|
|
dnl
|
|
dnl Check whether struct dirent has a member named d_type.
|
|
dnl
|
|
|
|
# Copyright (C) 1997, 1999-2004, 2006, 2009-2017 Free Software Foundation, Inc.
|
|
#
|
|
# This file is free software; the Free Software Foundation
|
|
# gives unlimited permission to copy and/or distribute it,
|
|
# with or without modifications, as long as this notice is preserved.
|
|
|
|
AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE],
|
|
[AC_CACHE_CHECK([for d_type member in directory struct],
|
|
[gl_cv_struct_dirent_d_type],
|
|
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <sys/types.h>
|
|
#include <dirent.h>
|
|
]],
|
|
[[struct dirent dp; dp.d_type = 0;]])],
|
|
[gl_cv_struct_dirent_d_type=yes],
|
|
[gl_cv_struct_dirent_d_type=no])
|
|
]
|
|
)
|
|
if test $gl_cv_struct_dirent_d_type = yes; then
|
|
AC_DEFINE([HAVE_STRUCT_DIRENT_D_TYPE], [1],
|
|
[Define if there is a member named d_type in the struct describing
|
|
directory headers.])
|
|
fi
|
|
]
|
|
)
|