* path.cc (fillout_mntent): Append backslash to drive-only paths before
calling fs_info::update. * path.h (fs_info::clear): Simplify. (fs_info::fs_info): Add constructor.
This commit is contained in:
parent
fcc5fef0b0
commit
decbb5d387
@ -1,3 +1,10 @@
|
|||||||
|
2007-08-19 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* path.cc (fillout_mntent): Append backslash to drive-only paths before
|
||||||
|
calling fs_info::update.
|
||||||
|
* path.h (fs_info::clear): Simplify.
|
||||||
|
(fs_info::fs_info): Add constructor.
|
||||||
|
|
||||||
2007-08-17 Corinna Vinschen <corinna@vinschen.de>
|
2007-08-17 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* spawn.cc (spawn_guts): Fix typo in comment.
|
* spawn.cc (spawn_guts): Fix typo in comment.
|
||||||
|
@ -2596,6 +2596,7 @@ static mntent *
|
|||||||
fillout_mntent (const char *native_path, const char *posix_path, unsigned flags)
|
fillout_mntent (const char *native_path, const char *posix_path, unsigned flags)
|
||||||
{
|
{
|
||||||
struct mntent& ret=_my_tls.locals.mntbuf;
|
struct mntent& ret=_my_tls.locals.mntbuf;
|
||||||
|
bool append_bs = false;
|
||||||
|
|
||||||
/* Remove drivenum from list if we see a x: style path */
|
/* Remove drivenum from list if we see a x: style path */
|
||||||
if (strlen (native_path) == 2 && native_path[1] == ':')
|
if (strlen (native_path) == 2 && native_path[1] == ':')
|
||||||
@ -2603,6 +2604,7 @@ fillout_mntent (const char *native_path, const char *posix_path, unsigned flags)
|
|||||||
int drivenum = cyg_tolower (native_path[0]) - 'a';
|
int drivenum = cyg_tolower (native_path[0]) - 'a';
|
||||||
if (drivenum >= 0 && drivenum <= 31)
|
if (drivenum >= 0 && drivenum <= 31)
|
||||||
_my_tls.locals.available_drives &= ~(1 << drivenum);
|
_my_tls.locals.available_drives &= ~(1 << drivenum);
|
||||||
|
append_bs = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Pass back pointers to mount_table strings reserved for use by
|
/* Pass back pointers to mount_table strings reserved for use by
|
||||||
@ -2625,6 +2627,8 @@ fillout_mntent (const char *native_path, const char *posix_path, unsigned flags)
|
|||||||
size_t size = (strlen (native_path) + 10) * sizeof (WCHAR);
|
size_t size = (strlen (native_path) + 10) * sizeof (WCHAR);
|
||||||
RtlInitEmptyUnicodeString (&unat, (PWSTR) alloca (size), size);
|
RtlInitEmptyUnicodeString (&unat, (PWSTR) alloca (size), size);
|
||||||
get_nt_native_path (native_path, unat);
|
get_nt_native_path (native_path, unat);
|
||||||
|
if (append_bs)
|
||||||
|
RtlAppendUnicodeToString (&unat, L"\\");
|
||||||
mntinfo.update (&unat, true); /* this pulls from a cache, usually. */
|
mntinfo.update (&unat, true); /* this pulls from a cache, usually. */
|
||||||
|
|
||||||
if (mntinfo.is_samba())
|
if (mntinfo.is_samba())
|
||||||
|
@ -110,20 +110,9 @@ struct fs_info
|
|||||||
unsigned is_cdrom : 1;
|
unsigned is_cdrom : 1;
|
||||||
} status;
|
} status;
|
||||||
public:
|
public:
|
||||||
void clear ()
|
void clear () { memset (this, 0 , sizeof *this); }
|
||||||
{
|
fs_info () { clear (); }
|
||||||
flags () = 0;
|
|
||||||
is_remote_drive (false);
|
|
||||||
has_buggy_open (false);
|
|
||||||
has_acls (false);
|
|
||||||
hasgood_inode (false);
|
|
||||||
is_fat (false);
|
|
||||||
is_ntfs (false);
|
|
||||||
is_samba (false);
|
|
||||||
is_nfs (false);
|
|
||||||
is_netapp (false);
|
|
||||||
is_cdrom (false);
|
|
||||||
}
|
|
||||||
inline DWORD& flags () {return status.flags;};
|
inline DWORD& flags () {return status.flags;};
|
||||||
|
|
||||||
IMPLEMENT_STATUS_FLAG (bool, is_remote_drive)
|
IMPLEMENT_STATUS_FLAG (bool, is_remote_drive)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user