From f3810c7281c1e3dca7df0b3e013c73c25bb98954 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 22 Sep 2005 15:52:02 +0000 Subject: * fhandler.h (fhandler_base::fstat_helper): Declare with additional file attributes argument. * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Use file attributes evaluated from NtQueryFileInformation or FileInformationByHandle in call to fstat_helper. Set pc.fileattr from just evaluated file attributes here. (fhandler_base::fstat_by_name): Use file attributes evaluated from FindFileFirst or default attribute in call to fstat_helper. Set pc.fileattr from just evaluated file attributes here. (fhandler_base::fstat_helper): Use file attributes given as argument, not file attributes stored in this fhandler, since this information is potentially wrong. Add comment to explain this. * path.h (has_attribute): New global inline function. (path_conv::set_attributes): New method to change fileattr. --- winsup/cygwin/path.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'winsup/cygwin/path.h') diff --git a/winsup/cygwin/path.h b/winsup/cygwin/path.h index 14c23ebe5..de37ff2ac 100644 --- a/winsup/cygwin/path.h +++ b/winsup/cygwin/path.h @@ -14,6 +14,13 @@ details. */ #include #include +inline bool +has_attribute (DWORD attributes, DWORD attribs_to_test) +{ + return attributes != INVALID_FILE_ATTRIBUTES + && (attributes & attribs_to_test); +} + enum executable_states { is_executable, @@ -161,6 +168,7 @@ class path_conv bool isro () const {return !!(path_flags & PATH_RO);} bool exists () const {return fileattr != INVALID_FILE_ATTRIBUTES;} bool has_attribute (DWORD x) const {return exists () && (fileattr & x);} + void set_attributes (DWORD x) {fileattr = x;} int isdir () const {return has_attribute (FILE_ATTRIBUTE_DIRECTORY);} executable_states exec_state () { -- cgit v1.2.3