diff options
author | Christopher Faylor <me@cgf.cx> | 2005-08-19 20:18:42 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-08-19 20:18:42 +0400 |
commit | 358063ace374e05025d124a17a0167b818b666ea (patch) | |
tree | 141d05fd45248dc6e1ebe017100900c8bf7cc2e6 /winsup/cygwin/fhandler_process.cc | |
parent | 82ef66c933bb3d90a8a27a0c6c18a9b9bfe3d8bc (diff) |
* fhandler.h (dirent_states): Add dirent_isroot, dirent_saw_cygdrive,
dirent_saw_dev.
* dir.cc (opendir): Don't zero __flags here. Push that responsibility to
opendir methods.
(seekdir): Preserve dirent_isrrot in __flags.
(rewinddir): Ditto.
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Set dirent_isroot
appropriately.
(fhandler_disk_file::readdir): Fill in "cygdrive" and "dev" if it is the root
dir and they are missing.
* fhandler_process.cc (fhandler_process::opendir): Set __flags here.
* fhandler_virtual.cc (fhandler_virtual::opendir): Set __flags here.
Diffstat (limited to 'winsup/cygwin/fhandler_process.cc')
-rw-r--r-- | winsup/cygwin/fhandler_process.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler_process.cc b/winsup/cygwin/fhandler_process.cc index 127c91e51..7cc53302f 100644 --- a/winsup/cygwin/fhandler_process.cc +++ b/winsup/cygwin/fhandler_process.cc @@ -200,8 +200,12 @@ DIR * fhandler_process::opendir () { DIR *dir = fhandler_virtual::opendir (); - if (dir && fileid == PROCESS_FD) - fill_filebuf (); + if (dir) + { + if (fileid == PROCESS_FD) + fill_filebuf (); + dir->__flags = 0; + } return dir; } |