* 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:
		| @@ -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. | ||||
|   | ||||
| @@ -2478,7 +2478,7 @@ cygwin_umount (const char *path, unsigned flags) | ||||
|   return res; | ||||
| } | ||||
|  | ||||
| static bool | ||||
| bool | ||||
| is_floppy (const char *dos) | ||||
| { | ||||
|   char dev[256]; | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|         { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user