Throughout, remove __d_u.__d_data fields from DIR structure.

* include/sys/dirent.h (dirent): Remvoe old_d_ino.
(DIR): Make __d_dirhash a 64 bit value.  Remove __d_data and __d_u.  Add
__flags.
* dir.cc (opendir_states): New enum.
(opendir): Clear new DIR __flags field.
(readdir): Fill in '.' and '..' entries if we hit EOF and we haven't seen them
already.  Nuke setting of old_d_ino.
(rewinddir): Reset DIR __flags field.
(seekdir64): Ditto.
* fhandler_disk_file.cc (fhandler_cygdrive::fhandler_cygdrive): Remove special
handling of "." and ".." since they are now handled automatically.
This commit is contained in:
Christopher Faylor
2003-09-08 04:04:19 +00:00
parent d31c5928dd
commit 0c7b55727a
6 changed files with 93 additions and 57 deletions

View File

@@ -77,9 +77,9 @@ fhandler_virtual::opendir (path_conv& pc)
fd = this;
fd->set_nohandle (true);
dir->__d_dirent->d_fd = fd;
dir->__d_u.__d_data.__fh = this;
dir->__fh = this;
dir->__d_cookie = __DIRENT_COOKIE;
dir->__d_u.__d_data.__handle = INVALID_HANDLE_VALUE;
dir->__handle = INVALID_HANDLE_VALUE;
dir->__d_position = 0;
dir->__d_dirhash = get_namehash ();