* 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.
This commit is contained in:
Christopher Faylor
2005-08-19 16:18:42 +00:00
parent 82ef66c933
commit 358063ace3
6 changed files with 77 additions and 21 deletions

View File

@@ -40,10 +40,13 @@ struct __acl32;
enum dirent_states
{
dirent_ok = 0,
dirent_saw_dot = 1,
dirent_saw_dot_dot = 2,
dirent_saw_eof = 4
dirent_ok = 0x0000,
dirent_saw_dot = 0x0001,
dirent_saw_dot_dot = 0x0002,
dirent_saw_eof = 0x0004,
dirent_isroot = 0x0008,
dirent_saw_cygdrive = 0x0010,
dirent_saw_dev = 0x0020
};
enum conn_state