* 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

@ -1,3 +1,11 @@
2005-03-29 Corinna Vinschen <corinna@vinschen.de>
* 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.
2005-03-29 Corinna Vinschen <corinna@vinschen.de>
* fhandler_process.cc: Re-add exename.

View File

@ -2478,7 +2478,7 @@ cygwin_umount (const char *path, unsigned flags)
return res;
}
static bool
bool
is_floppy (const char *dos)
{
char dev[256];

View File

@ -274,6 +274,8 @@ bool fnunmunge (char *, const char *) __attribute__ ((regparm (2)));
int path_prefix_p (const char *path1, const char *path2, int len1) __attribute__ ((regparm (3)));
bool is_floppy (const char *);
/* FIXME: Move to own include file eventually */
#define MAX_ETC_FILES 2

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
{