* path.cc (path_conv::check): Don't complain if /dev/x/foo when x doesn't
exist. (mount_info::conv_to_win32_path): Keep translating when a /cygdrive is found. Don't attempt to translate to a device name when devn == FH_CYGDRIVE. (cygwin_conv_to_win32_path): Set buffer to empty on error. (cygwin_conv_to_full_win32_path): Ditto. * window.cc: Include unistd.h to verify definitions.
This commit is contained in:
		| @@ -1,3 +1,15 @@ | ||||
| 2001-12-06  Christopher Faylor  <cgf@redhat.com> | ||||
|  | ||||
| 	* path.cc (path_conv::check): Don't complain if /dev/x/foo when x | ||||
| 	doesn't exist. | ||||
| 	(mount_info::conv_to_win32_path): Keep translating when a /cygdrive is | ||||
| 	found.  Don't attempt to translate to a device name when devn == | ||||
| 	FH_CYGDRIVE. | ||||
| 	(cygwin_conv_to_win32_path): Set buffer to empty on error. | ||||
| 	(cygwin_conv_to_full_win32_path): Ditto. | ||||
|  | ||||
| 	* window.cc: Include unistd.h to verify definitions. | ||||
|  | ||||
| 2001-12-05  Christopher Faylor  <cgf@redhat.com> | ||||
|  | ||||
| 	* dir.cc (opendir): Detect error return from build_fhandler_from_name. | ||||
|   | ||||
| @@ -482,14 +482,16 @@ path_conv::check (const char *src, unsigned opt, | ||||
| 	  /* devn should not be a device.  If it is, then stop parsing now. */ | ||||
| 	  if (devn != FH_BAD) | ||||
| 	    { | ||||
| 	      if (devn != FH_CYGDRIVE) | ||||
| 		{ | ||||
| 		  fileattr = 0; | ||||
| 		  if (component) | ||||
| 		    { | ||||
| 		      error = ENOTDIR; | ||||
| 		      return; | ||||
| 		    } | ||||
| 	      if (devn != FH_CYGDRIVE) | ||||
| 		fileattr = 0; | ||||
| 	      else | ||||
| 		} | ||||
| 	      else if (!component) | ||||
| 		fileattr = !unit ? FILE_ATTRIBUTE_DIRECTORY | ||||
| 				 : GetFileAttributes (full_path); | ||||
| 	      goto out;		/* Found a device.  Stop parsing. */ | ||||
| @@ -1389,7 +1391,6 @@ mount_info::conv_to_win32_path (const char *src_path, char *dst, | ||||
| 	  dst[0] = '\0'; | ||||
| 	  if (mount_table->cygdrive_len > 1) | ||||
| 	    devn = FH_CYGDRIVE; | ||||
| 	  goto out; | ||||
| 	} | ||||
|       else if (cygdrive_win32_path (pathbuf, dst, unit)) | ||||
| 	{ | ||||
| @@ -1466,6 +1467,7 @@ mount_info::conv_to_win32_path (const char *src_path, char *dst, | ||||
|       *flags = mi->flags; | ||||
|     } | ||||
|  | ||||
|   if (devn != FH_CYGDRIVE) | ||||
|     win32_device_name (src_path, dst, devn, unit); | ||||
|  | ||||
|  out: | ||||
| @@ -3287,11 +3289,12 @@ cygwin_conv_to_win32_path (const char *path, char *win32_path) | ||||
|   path_conv p (path, PC_SYM_FOLLOW); | ||||
|   if (p.error) | ||||
|     { | ||||
|       win32_path[0] = '\0'; | ||||
|       set_errno (p.error); | ||||
|       return -1; | ||||
|     } | ||||
|  | ||||
|   strcpy (win32_path, p.get_win32 ()); | ||||
|   strcpy (win32_path, p); | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| @@ -3301,11 +3304,12 @@ cygwin_conv_to_full_win32_path (const char *path, char *win32_path) | ||||
|   path_conv p (path, PC_SYM_FOLLOW | PC_FULL); | ||||
|   if (p.error) | ||||
|     { | ||||
|       win32_path[0] = '\0'; | ||||
|       set_errno (p.error); | ||||
|       return -1; | ||||
|     } | ||||
|  | ||||
|   strcpy (win32_path, p.get_win32 ()); | ||||
|   strcpy (win32_path, p); | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -18,6 +18,7 @@ details. */ | ||||
| #include <limits.h> | ||||
| #include <wingdi.h> | ||||
| #include <winuser.h> | ||||
| #include <unistd.h> | ||||
| #include "cygerrno.h" | ||||
| #include "perprocess.h" | ||||
| #include "security.h" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user