* include/cygwin/version.h: Bump API minor number to 151.
* dir.cc (__opendir_with_d_ino): New function. (opendir): Set flag if we should be calculating inodes. (readdir_worker): Calculate d_ino by calling stat if the user has asked for it. (seekdir64): Maintain all persistent flag settings. * fhandler.h (dirent_states): Add dirent_set_d_ino. * fhandler_disk_file.cc (fhandler_disk_file::opendir): Reflect changes to dirent structure. * fhandler_virtual.cc (fhandler_virtual::opendir): Ditto. * include/sys/dirent.h (struct dirent): Coalesce two similar structures. Remove all threads of the apparently highly confusing references to inodes. Add support for calculating a real inode if __USE_EXPENSIVE_CYGWIN_D_INO is defined.
This commit is contained in:
@@ -71,18 +71,18 @@ fhandler_virtual::opendir ()
|
||||
else
|
||||
{
|
||||
strcpy (dir->__d_dirname, get_name ());
|
||||
dir->__d_dirent->d_version = __DIRENT_VERSION;
|
||||
dir->__d_dirent->__d_version = __DIRENT_VERSION;
|
||||
cygheap_fdnew fd;
|
||||
if (fd >= 0)
|
||||
{
|
||||
fd = this;
|
||||
fd->nohandle (true);
|
||||
dir->__d_dirent->d_fd = fd;
|
||||
dir->__d_fd = fd;
|
||||
dir->__fh = this;
|
||||
dir->__d_cookie = __DIRENT_COOKIE;
|
||||
dir->__handle = INVALID_HANDLE_VALUE;
|
||||
dir->__d_position = 0;
|
||||
dir->__d_dirhash = get_namehash ();
|
||||
// dir->__d_dirhash = get_namehash ();
|
||||
dir->__flags = dirent_saw_dot | dirent_saw_dot_dot;
|
||||
res = dir;
|
||||
res->__flags = 0;
|
||||
|
Reference in New Issue
Block a user