* path.cc (is_floppy): Make externally available.

* path.h (is_floppy): Declare.
	* syscalls.cc (sync): Check for floppies on A: and B: in guid case.
	Don't call setmntent in non-guid case but evaluate drive bit mask
	locally.
This commit is contained in:
Corinna Vinschen
2005-03-29 17:42:50 +00:00
parent 72a90d496d
commit db27ea4125
4 changed files with 26 additions and 4 deletions

View File

@@ -954,6 +954,15 @@ sync ()
else
debug_printf ("Try volume %s", vol);
/* Check pvol for being a floppy on A: or B:. Skip them. */
if (strncasematch (pvol, "A:", 2)
|| strncasematch (pvol, "B:", 2))
{
pvol[2] = '\0';
if (is_floppy (pvol))
continue;
}
/* Eliminate trailing backslash. */
vol[strlen (vol) - 1] = '\0';
sync_worker (vol);
@@ -964,10 +973,13 @@ sync ()
}
else if (wincap.is_winnt ()) /* 9x has no concept for opening volumes */
{
extern FILE *setmntent (const char *, const char *);
setmntent ("", "");
DWORD drives = _my_tls.locals.available_drives;
DWORD drives = GetLogicalDrives ();
DWORD mask = 1;
/* Skip floppies on A: and B: as in setmntent. */
if ((drives & 1) && is_floppy ("A:"))
drives &= ~1;
if ((drives & 2) && is_floppy ("B:"))
drives &= ~2;
strcpy (vol, "\\\\.\\A:");
do
{