delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1997/04/04/02:29:37

From: jqb AT netcom DOT com (Jim Balter)
Subject: Re: Opening COM2
4 Apr 1997 02:29:37 -0800 :
Approved: cygnus DOT gnu-win32 AT cygnus DOT com
Distribution: cygnus
Message-ID: <33446DD3.1CF5.cygnus.gnu-win32@netcom.com>
References: <199704032002 DOT PAA00930 AT cfawilson DOT harvard DOT edu>
Mime-Version: 1.0
X-Mailer: Mozilla 4.0b2 (WinNT; I)
Original-To: Bob Wilson <rwilson AT cfawilson DOT harvard DOT edu>
Original-CC: gnu-win32 AT cygnus DOT com
X-Priority: 3 (Normal)
Original-Sender: owner-gnu-win32 AT cygnus DOT com

Bob Wilson wrote:
> 
> I have a program which ran correctly when compiled on a gnu-win32
> package from about a year ago, but is failing when compiled with 17.1
> beta.  The machine is running NT 3.51 and COM2 is connected to a
> microprocessor with only td, rd and ground connected.  The open:
> 
>         if ((comfd = open("com2", O_RDWR | O_TEXT)) <= 0) {
>             fprintf(stderr, "Cmd: Unable to open terminal\n");
>             exit(1);
>         }
> 
> hangs.  It doesn't help to tie the modem control lines high, but if I
> generate a few characters on the rd line, the open completes.  In no
> case is there an error return.
> 
> I have looked for this problem in the FAQ and looked for archives of
> this mailing list, but both searches failed.
> 
> Can anyone help?

Marko Kohtala posted this patch to fix the problem the other day
(I haven't tried it and am not vouching for it):

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);
        }



--
<J Q B>
-
For help on using this list, send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019