Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: From: "Parker, Ron" To: cygwin AT cygwin DOT com Subject: .*Console.* Functions vs. tty Date: Mon, 29 Oct 2001 12:29:32 -0600 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="iso-8859-1" I am working on a program that offers a choice of user interfaces at run time, similar to what xemacs does. This application is designed to be portable at least between cygwin, Linux, and native Windows. One of the UI's uses the standard console interfaces. However, when the code runs under cygwin with "tty" enabled, I cannot get the console screen buffer information. This is not dependent upon it being a cygwin compiled application. It "malfunctions" if compiled by gcc for cygwin, gcc for MinGW, or MSVC. I have narrowed the problem down to a simple portion of code, which will exhibit the same behavior as my application. The GetConsoleScreenBufferInfo function fails with error 6, ERROR_INVALID_HANDLE. How can I work around this without forcing the user to use "notty"? #include int main() { int retval = 0; CONSOLE_SCREEN_BUFFER_INFO csbi; HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE); AllocConsole(); if (output == INVALID_HANDLE_VALUE) { printf("GetStdHandle failed: %ld\n", GetLastError()); retval = 1; } else if (!GetConsoleScreenBufferInfo(output, &csbi)) { printf("GetConsoleScreenBufferInfo failed: %ld\n", GetLastError()); retval = 2; } else printf("Success."); return retval; } -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/