* cygtls.cc (_cygtls::remove): Eliminate compiler warning.
* dir.cc (mkdir): Check path for writability. (rmdir): Ditto. Remove check for special directories. * path.cc (path_conv::check): Set PATH_RO for virtual devices. Set error if read-only and asked for writability. * path.h (pathconv_arg): Add PC_WRITABLE. (path_types): Add PATH_RO. (path_conv::isro): Add (currently unused) check for read-only filesystem. Return "ENOSHARE" when we know a share doesn't exist. * include/sys/mount.h: Add MOUNT_RO flag. * autoload.cc (WNetGetResourceInformationA): Import. * fhandler_netdrive.cc (fhandler_netdrive::exists): Detect actual existence of remote system rather than always assuming that it exists.
This commit is contained in:
@ -17,19 +17,20 @@ extern "C" {
|
||||
|
||||
enum
|
||||
{
|
||||
MOUNT_SYMLINK = 0x001, /* "mount point" is a symlink */
|
||||
MOUNT_BINARY = 0x002, /* "binary" format read/writes */
|
||||
MOUNT_SYSTEM = 0x008, /* mount point came from system table */
|
||||
MOUNT_EXEC = 0x010, /* Any file in the mounted directory gets 'x' bit */
|
||||
MOUNT_CYGDRIVE = 0x020, /* mount point refers to cygdrive device mount */
|
||||
MOUNT_CYGWIN_EXEC = 0x040, /* file or directory is or contains a cygwin
|
||||
MOUNT_SYMLINK = 0x0001, /* "mount point" is a symlink */
|
||||
MOUNT_BINARY = 0x0002, /* "binary" format read/writes */
|
||||
MOUNT_SYSTEM = 0x0008, /* mount point came from system table */
|
||||
MOUNT_EXEC = 0x0010, /* Any file in the mounted directory gets 'x' bit */
|
||||
MOUNT_CYGDRIVE = 0x0020, /* mount point refers to cygdrive device mount */
|
||||
MOUNT_CYGWIN_EXEC = 0x0040, /* file or directory is or contains a cygwin
|
||||
executable */
|
||||
MOUNT_MIXED = 0x080, /* reads are text, writes are binary
|
||||
MOUNT_MIXED = 0x0080, /* reads are text, writes are binary
|
||||
not yet implemented */
|
||||
MOUNT_NOTEXEC = 0x100, /* don't check files for executable magic */
|
||||
MOUNT_DEVFS = 0x200, /* /device "filesystem" */
|
||||
MOUNT_PROC = 0x400, /* /proc "filesystem" */
|
||||
MOUNT_ENC = 0x800 /* encode special characters */
|
||||
MOUNT_NOTEXEC = 0x0100, /* don't check files for executable magic */
|
||||
MOUNT_DEVFS = 0x0200, /* /device "filesystem" */
|
||||
MOUNT_PROC = 0x0400, /* /proc "filesystem" */
|
||||
MOUNT_ENC = 0x0800, /* encode special characters */
|
||||
MOUNT_RO = 0x1000 /* read-only "filesystem" */
|
||||
};
|
||||
|
||||
int mount (const char *, const char *, unsigned __flags);
|
||||
|
Reference in New Issue
Block a user