* 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:
Christopher Faylor
2005-05-13 03:21:39 +00:00
parent cf55bf5ee8
commit 66582dd6e7
8 changed files with 72 additions and 26 deletions

View File

@ -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);