summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2003-05-30 15:01:33 +0000
committerChristopher Faylor <me@cgf.cx>2003-05-30 15:01:33 +0000
commitcbe537543738595591484dacafcafabcad673005 (patch)
tree324fcd5794051570e36748a9b9acb1b2208e47ce /winsup/cygwin/path.cc
parent1698ff392ad8abc4320ddd9dd13609e5cef94030 (diff)
downloadcygnal-cbe537543738595591484dacafcafabcad673005.tar.gz
cygnal-cbe537543738595591484dacafcafabcad673005.tar.bz2
cygnal-cbe537543738595591484dacafcafabcad673005.zip
* cygheap.cc (init_cheap): Temporarily remove inline that newer gcc's have
problems with. * path.cc (path_conv::check): Rework has_acls logic slightly. Uncouple exec tests away from filesystem tests.
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r--winsup/cygwin/path.cc22
1 files changed, 11 insertions, 11 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index d3d560fc1..ae3f6e7ed 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -782,32 +782,32 @@ out:
if (!fs.update (path))
{
fs.root_dir[0] = '\0';
- set_has_acls (false);
- set_has_buggy_open (false);
+ set_has_acls (false); // already implied but...
+ set_has_buggy_open (false); // ditto
}
else
{
set_isdisk ();
debug_printf ("root_dir(%s), this->path(%s), set_has_acls(%d)",
fs.root_dir, this->path, fs.flags & FS_PERSISTENT_ACLS);
- if (!allow_smbntsec && fs.is_remote_drive)
+ if (!(fs.flags & FS_PERSISTENT_ACLS) || (!allow_smbntsec && fs.is_remote_drive))
set_has_acls (false);
else
{
- set_has_acls (fs.flags & FS_PERSISTENT_ACLS);
- if (exec_state () != dont_know_if_executable)
- /* ok */;
- else if (isdir ())
- set_exec (1);
- else if (issymlink () || issocket ()
- || allow_ntsec && wincap.has_security ())
+ set_has_acls (true);
+ if (allow_ntsec && wincap.has_security ())
set_exec (0);
-
}
/* Known file systems with buggy open calls. Further explanation
in fhandler.cc (fhandler_disk_file::open). */
set_has_buggy_open (strcmp (fs.name, "SUNWNFS") == 0);
}
+ if (exec_state () != dont_know_if_executable)
+ /* ok */;
+ else if (isdir ())
+ set_exec (1);
+ else if (issymlink () || issocket ())
+ set_exec (0);
}
if (issocket ())
devn = FH_SOCKET;