* 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:
Christopher Faylor
2006-01-21 02:24:17 +00:00
parent 54abc854d0
commit 868fb2ff69
8 changed files with 77 additions and 76 deletions

View File

@@ -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;