X-Spam-Check-By: sourceware.org Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Subject: Re: _kbhit Date: Fri, 10 Feb 2006 18:58:21 -0500 Message-ID: <6CA15ADD82E5724F88CB53D50E61C9AE9ECE5E@cgcmail.cgc.cpmc.columbia.edu> From: "Michiel De Hoon" To: Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id k1ANwW8n024665 > On Sun, Feb 05, 2006 at 01:17:33PM -0500, Michiel De Hoon wrote: > >For one of my software projects, I need the _kbhit function to check the > >console for keyboard input. While this function is present in msvcrt.dll, it > >is missing from cygwin1.dll, so I started writing this function myself (I'm > >hoping to contribute it to Cygwin if it works well). > > I really appreciate the sentiment of submitting code but _kbhit is not a > linux function (or POSIX, POSIX, POSIX...) so it > really isn't a candidate for inclusion in the Cygwin DLL. > > cgf > Even though _kbhit is not a POSIX function, I think a valid argument can be made to include it in Cygwin anyway. First, some Cygwin programs will need this function to be able to interact with the Windows OS. Second, as the Cygwin DLL is a replacement for msvcrt (and msvcrt.dll and cygwin1.dll cannot be used together), developers may expect to find the same functionality in cygwin1.dll as in msvcrt.dll. Whereas it is possible for each developer to add needed functions missing in cygwin1.dll to their own source code, it will lead to ugly #ifdef __CYGWIN__ statements and complicate porting Windows programs to Cygwin (which is what I am effectively doing). Finally, coding the _kbhit function is not entirely straightforward: simply doing a select() on file descriptor 0 is inconsistent with _kbhit in msvcrt if stdin is redirected. So, .... if I was able to convince you, I'd be happy to submit a patch. If not, ... well for my own project a kbhit() function based on select() is sufficient, so that'll work for me at least. --Michiel. Michiel de Hoon Center for Computational Biology and Bioinformatics Columbia University 1150 St Nicholas Avenue New York, NY 10032 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/