diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2008-12-19 12:15:33 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2008-12-19 12:15:33 +0000 |
commit | 292c99741d563765d5c09e70aa60bb6f0968c498 (patch) | |
tree | dfa7037131e89bd546a5283f32faf724f33b19c1 /winsup/cygwin/path.cc | |
parent | ca19de342d1a98a26f38d2702264309f82a5c22d (diff) | |
download | newlib-292c99741d563765d5c09e70aa60bb6f0968c498.zip newlib-292c99741d563765d5c09e70aa60bb6f0968c498.tar.gz newlib-292c99741d563765d5c09e70aa60bb6f0968c498.tar.bz2 |
* path.cc (path_conv::check): Handle incoming DOS paths non-POSIXy,
always case-insensitive, always ignoring ACLs.
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r-- | winsup/cygwin/path.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 22deb54..3b726c0 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -1042,7 +1042,11 @@ is_virtual_symlink: { fileattr = sym.fileattr; path_flags = sym.pflags; - if (cygwin_shared->obcaseinsensitive || fs.caseinsensitive ()) + /* If the OS is caseinsensitive or the FS is caseinsensitive or + the incoming path was given in DOS notation, don't handle + path casesensitive. */ + if (cygwin_shared->obcaseinsensitive || fs.caseinsensitive () + || is_msdos) path_flags |= PATH_NOPOSIX; caseinsensitive = (path_flags & PATH_NOPOSIX) ? OBJ_CASE_INSENSITIVE : 0; @@ -1214,6 +1218,10 @@ out: /* FS has been checked already for existing files. */ if (exists () || fs.update (get_nt_native_path (), NULL)) { + /* Incoming DOS paths are treated like DOS paths in native + Windows applications. No ACLs, just default settings. */ + if (is_msdos) + fs.has_acls (false); debug_printf ("this->path(%s), has_acls(%d)", path, fs.has_acls ()); if (fs.has_acls ()) set_exec (0); /* We really don't know if this is executable or not here |