This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: A patch for _opening com1


> Hi Marko, you wrote:
> : +      if (GetFileType (h) != FILE_TYPE_DISK)
> : +	{
> : +	  /* It is not a disk file, can not be a symlink */

> If I remember right, there's also FILE_TYPE_REMOTE, which also holds disk
> files and possibly symlinks.

You are right. This FILE_TYPE_REMOVE is a flag bit in the return value
and the Win32 Programmer's Reference fails to tell so. I found it
mentioned in machintosh porting reference and in the WINBASE.H header
file though...

So the patch should be like

diff -up b17.1/winsup/path.cc\~ b17.1/winsup/path.cc
--- b17.1/winsup/path.cc~	Wed Dec  4 05:23:01 1996
+++ b17.1/winsup/path.cc	Tue Apr  1 17:14:21 1997
@@ -1056,7 +1056,14 @@ symlink_check (const char *path, char *b
       char cookie_buf[sizeof (SYMLINK_COOKIE) - 1];
       DWORD done;
 
-      if (! ReadFile (h, cookie_buf, sizeof (cookie_buf), &done, 0))
+      if ((GetFileType (h) & ~FILE_TYPE_REMOVE) != FILE_TYPE_DISK)
+	{
+	  /* It is not a disk file, can not be a symlink */
+	  *syml = 0;
+	  *exec = 0;
+	  res = 0;
+	}
+      else if (! ReadFile (h, cookie_buf, sizeof (cookie_buf), &done, 0))
 	{
 	  set_errno (EIO);
 	}


-- 
---
Marko Kohtala - Marko.Kohtala@ntc.nokia.com, Marko.Kohtala@hut.fi
-
For help on using this list, send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]