This is the mail archive of the cygwin 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]
Other format: [Raw text]

Re: When is WinXP not WinXP?? - not *really* OT

On Wed, Oct 13, 2004 at 04:45:46PM +0000, Daniel Miller wrote:
>Daniel Miller <> wrote in
>> Daniel Miller <> wrote in
>> Xns958070E64AD1Adancarddupercom@">news:Xns958070E64AD1Adancarddupercom@ 
>> I propose that this is *not* really off-topic, since the problems that
>> I'm experiencing do not occur in cmd.exe, nor in 4NT, only in Bash. 
>> So it's something Bash is doing in its environment that is breaking
>> StdOut, at least relative to whatever Win32 looks at.
>> BTW, I did not install Cygwin on the Home machine by copying from the
>> other machine, I installed it using setup.exe, downloaded from Cygwin.
>> Also, in response to Dave Korn's previous message, GetLastError() is 
>> returning error 6 (The handle is Invalid)...
>A further note is that handles returned by GetStdHandle() always have 
>GENERIC_READ and GENERIC_WRITE access, "unless SetStdHandle function was 
>used to set a standard handle to be some handle with a lesser access." 
>(per MSDN).  Certainly  I didn't use SetStdHandle for *any* purpose, 
>which is why the utility works under other shells.  Does Bash use 
>SetStdHandle or some equivalent to change the console environment??

Why does it matter?  If that was the case, are you asking if we will
change cygwin to help get your application working?  If so, the answer
is "no".

You've found your problem.  Don't use STD_OUTPUT_HANDLE for this purpose.
Use STD_INPUT_HANDLE instead.  Problem solved.


>//  repeating the offending code snippet:
>   /* get the standard handles */
>   hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
>   PERR(hStdOut != INVALID_HANDLE_VALUE, "GetStdHandle");
>   //  get screen information.
>   //  If this call fails, assume we are re-directing output.
>   bSuccess = GetConsoleScreenBufferInfo(hStdOut, &sinfo) ;
>   // PERR(bSuccess, "GetConsoleScreenBufferInfo");
>   if (bSuccess == false) {
>      fprintf(stderr, "gcsbi error: %s\n", get_system_message()) ;
>      exit(1) ;
>      redirected = 1 ;
>      return ; 
>   }
>Unsubscribe info:
>Problem reports:

Unsubscribe info:
Problem reports:

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