Hash :
8123b614
Author :
Date :
2017-05-14T14:20:01
windows-stat-inodes: New module. * m4/windows-stat-inodes.m4: New file. * m4/sys_types_h.m4 (gl_SYS_TYPES_H): Set WINDOWS_STAT_INODES. * modules/sys_types (Makefile.am): Substitute WINDOWS_STAT_INODES. * lib/sys_types.in.h [WINDOWS_STAT_INODES]: Override dev_t and ino_t. (_GL_WINDOWS_STAT_INODES): New macro. * lib/stat-w32.c: Set _WIN32_WINNT. Include <string.h>, verify.h. (GetFileInformationByHandleExFunc): New variable. (initialize): Initialize it. (_gl_fstat_by_handle) [_GL_WINDOWS_STAT_INODES]: Initialize st_dev and st_ino appropriately. * lib/stat.c (rpl_stat): Use the directory entry based approach only as a fallback, because it does not provide st_dev and st_ino values. * modules/fstat (Depends-on): Add 'verify'. * modules/windows-stat-inodes: New file. * doc/windows-stat-inodes.texi: New file. * doc/gnulib.texi: Include it. * doc/posix-headers/sys_stat.texi: Mention the new module.
# windows-stat-inodes.m4 serial 1
dnl Copyright (C) 2017 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl Enable inode identification in 'struct stat' on native Windows platforms.
dnl Set WINDOWS_STAT_INODES to
dnl - 0 -> keep the default (dev_t = 32-bit, ino_t = 16-bit),
dnl - 1 -> override types normally (dev_t = 32-bit, ino_t = 64-bit),
dnl - 2 -> override types in an extended way (dev_t = 64-bit, ino_t = 128-bit).
AC_DEFUN([gl_WINDOWS_STAT_INODES],
[
AC_REQUIRE([AC_CANONICAL_HOST])
case "$host_os" in
mingw*) WINDOWS_STAT_INODES=1 ;;
*) WINDOWS_STAT_INODES=0 ;;
esac
])