* 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> | 2001-12-05  Christopher Faylor  <cgf@redhat.com> | ||||||
|  |  | ||||||
| 	* dir.cc (opendir): Detect error return from build_fhandler_from_name. | 	* 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. */ | 	  /* devn should not be a device.  If it is, then stop parsing now. */ | ||||||
| 	  if (devn != FH_BAD) | 	  if (devn != FH_BAD) | ||||||
| 	    { | 	    { | ||||||
|  | 	      if (devn != FH_CYGDRIVE) | ||||||
|  | 		{ | ||||||
|  | 		  fileattr = 0; | ||||||
| 		  if (component) | 		  if (component) | ||||||
| 		    { | 		    { | ||||||
| 		      error = ENOTDIR; | 		      error = ENOTDIR; | ||||||
| 		      return; | 		      return; | ||||||
| 		    } | 		    } | ||||||
| 	      if (devn != FH_CYGDRIVE) | 		} | ||||||
| 		fileattr = 0; | 	      else if (!component) | ||||||
| 	      else |  | ||||||
| 		fileattr = !unit ? FILE_ATTRIBUTE_DIRECTORY | 		fileattr = !unit ? FILE_ATTRIBUTE_DIRECTORY | ||||||
| 				 : GetFileAttributes (full_path); | 				 : GetFileAttributes (full_path); | ||||||
| 	      goto out;		/* Found a device.  Stop parsing. */ | 	      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'; | 	  dst[0] = '\0'; | ||||||
| 	  if (mount_table->cygdrive_len > 1) | 	  if (mount_table->cygdrive_len > 1) | ||||||
| 	    devn = FH_CYGDRIVE; | 	    devn = FH_CYGDRIVE; | ||||||
| 	  goto out; |  | ||||||
| 	} | 	} | ||||||
|       else if (cygdrive_win32_path (pathbuf, dst, unit)) |       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; |       *flags = mi->flags; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |   if (devn != FH_CYGDRIVE) | ||||||
|     win32_device_name (src_path, dst, devn, unit); |     win32_device_name (src_path, dst, devn, unit); | ||||||
|  |  | ||||||
|  out: |  out: | ||||||
| @@ -3287,11 +3289,12 @@ cygwin_conv_to_win32_path (const char *path, char *win32_path) | |||||||
|   path_conv p (path, PC_SYM_FOLLOW); |   path_conv p (path, PC_SYM_FOLLOW); | ||||||
|   if (p.error) |   if (p.error) | ||||||
|     { |     { | ||||||
|  |       win32_path[0] = '\0'; | ||||||
|       set_errno (p.error); |       set_errno (p.error); | ||||||
|       return -1; |       return -1; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   strcpy (win32_path, p.get_win32 ()); |   strcpy (win32_path, p); | ||||||
|   return 0; |   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); |   path_conv p (path, PC_SYM_FOLLOW | PC_FULL); | ||||||
|   if (p.error) |   if (p.error) | ||||||
|     { |     { | ||||||
|  |       win32_path[0] = '\0'; | ||||||
|       set_errno (p.error); |       set_errno (p.error); | ||||||
|       return -1; |       return -1; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   strcpy (win32_path, p.get_win32 ()); |   strcpy (win32_path, p); | ||||||
|   return 0; |   return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -18,6 +18,7 @@ details. */ | |||||||
| #include <limits.h> | #include <limits.h> | ||||||
| #include <wingdi.h> | #include <wingdi.h> | ||||||
| #include <winuser.h> | #include <winuser.h> | ||||||
|  | #include <unistd.h> | ||||||
| #include "cygerrno.h" | #include "cygerrno.h" | ||||||
| #include "perprocess.h" | #include "perprocess.h" | ||||||
| #include "security.h" | #include "security.h" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user