diff options
author | Christopher Faylor <me@cgf.cx> | 2001-05-31 05:25:46 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-05-31 05:25:46 +0000 |
commit | ecfb6f11bcfe614f890d7f9f5e6633b2178c45a4 (patch) | |
tree | fdc2f7012c9ff19d85b00b710af5ae84e7a3fe84 /winsup/cygwin/fhandler.h | |
parent | b70261ef60e95d7d3db2b4246f2f7da932643d33 (diff) | |
download | cygnal-ecfb6f11bcfe614f890d7f9f5e6633b2178c45a4.tar.gz cygnal-ecfb6f11bcfe614f890d7f9f5e6633b2178c45a4.tar.bz2 cygnal-ecfb6f11bcfe614f890d7f9f5e6633b2178c45a4.zip |
* path.cc (chdir): Always send unsigned chars to isspace since newlib's isspace
doesn't deal well with "negative" chars.
* fhandler.cc (fhandler_disk_file::open): Propagate remote status of file
garnered from path_conv. Move #! checking to fstat.
(fhandler_disk_file::fstat): Reorganize st_mode setting to eliminate
duplication. Move check for #! here from fhandler::open.
* fhandler.h (fhandler_base::isremote): New method.
(fhandler_base::set_isremote): Ditto.
(fhandler_base::set_execable_p): Also record "don't care if executable state".
(fhandler_base::dont_care_if_execable): New method.
* path.cc (path_conv::check): Clear new flags. Appropriately set vol_flags,
drive_type, and is_remote_drive.
* path.h: Add new flags and methods for manipulating them.
* syscalls.cc (_unlink): Use isremote() to determine if a path is remote rather
than calling GetDriveType.
(stat_worker): Ditto.
* security.cc (get_file_attribute): Or attribute with result of NTReadEA to be
consistent with get_nt_attribute.
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r-- | winsup/cygwin/fhandler.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index aed8bfe6e..6f193c385 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -71,6 +71,8 @@ enum FH_FFIXUP = 0x02000000, /* Set if need to fixup after fork. */ FH_LOCAL = 0x04000000, /* File is unix domain socket */ FH_FIFO = 0x08000000, /* File is FIFO */ + FH_ISREMOTE= 0x10000000, /* File is on a remote drive */ + FH_DCEXEC = 0x20000000, /* Don't care if this is executable */ FH_HASACLS = 0x40000000, /* True if fs of file has ACLS */ /* Device flags */ @@ -241,8 +243,10 @@ public: void set_execable_p (executable_states val) { FHCONDSETF (val == is_executable, EXECABL); + FHCONDSETF (val == dont_care_if_executable, DCEXEC); } void set_execable_p () { FHSETF (EXECABL); } + int dont_care_if_execable () { return FHISSETF (DCEXEC); } int get_append_p () { return FHISSETF (APPEND); } void set_append_p (int val) { FHCONDSETF (val, APPEND); } @@ -264,6 +268,9 @@ public: int has_acls () { return FHISSETF (HASACLS); } void set_has_acls (int val) { FHCONDSETF (val, HASACLS); } + int isremote () { return FHISSETF (ISREMOTE); } + void set_isremote (int val) { FHCONDSETF (val, ISREMOTE); } + int no_free_names () { return FHISSETF (NOFRNAME); } void set_no_free_names (int val) { FHCONDSETF (val, NOFRNAME); } void set_no_free_names () { FHSETF (NOFRNAME); } |