* 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.
This commit is contained in:
Christopher Faylor
2001-05-31 05:25:46 +00:00
parent b70261ef60
commit ecfb6f11bc
8 changed files with 90 additions and 61 deletions

View File

@ -1199,7 +1199,9 @@ get_file_attribute (int use_ntsec, const char *file,
if (!attribute)
return 0;
int oatt = *attribute;
res = NTReadEA (file, ".UNIXATTR", (char *) attribute, sizeof (*attribute));
*attribute |= oatt;
/* symlinks are everything for everyone!*/
if ((*attribute & S_IFLNK) == S_IFLNK)
@ -1523,8 +1525,7 @@ set_file_attribute (int use_ntsec, const char *file,
if (!use_ntsec || !allow_ntsec)
{
if (!NTWriteEA (file, ".UNIXATTR",
(char *) &attribute, sizeof (attribute)))
if (!NTWriteEA (file, ".UNIXATTR", (char *) &attribute, sizeof (attribute)))
{
__seterrno ();
return -1;