delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
From: | Martin Ambuhl <mambuhl AT earthlink DOT net> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: Function kbhit()? |
Date: | Tue, 20 Jul 2004 03:42:09 -0400 |
Lines: | 60 |
Message-ID: | <2m40mjFhp3nlU1@uni-berlin.de> |
References: | <2m3hjoFibqajU1 AT uni-berlin DOT de> <7494-Tue20Jul2004073651+0300-eliz AT gnu DOT org> <2m3odtFhufc2U1 AT uni-berlin DOT de> |
Mime-Version: | 1.0 |
X-Trace: | news.uni-berlin.de PuXQKh4vCs0U4DS1lgobPAaCAXGG7wVK8a7JAvyqs81HZUmPjf |
User-Agent: | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040616 |
X-Accept-Language: | en-us, en, de, fr, ru, zh, ja |
In-Reply-To: | <2m3odtFhufc2U1@uni-berlin.de> |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
Errors-To: | nobody AT delorie DOT com |
X-Mailing-List: | djgpp AT delorie DOT com |
X-Unsubscribes-To: | listserv AT delorie DOT com |
Fausto Arinos de A. Barbuto wrote: > "Eli Zaretskii" <eliz AT gnu DOT org> wrote in message > news:7494-Tue20Jul2004073651+0300-eliz AT gnu DOT org... > >>>From: "Fausto Arinos de A. Barbuto" <fbarbuto2002 DOT no AT w1 DOT ca DOT vip DOT scd DOT yahoo DOT com> >>>Newsgroups: comp.os.msdos.djgpp >>>Date: Mon, 19 Jul 2004 21:24:39 -0600 >>> >>> I am porting an old C code to GCC. It works very well with Borland C 3.1 >>> and although it compiles and runs with gcc, it doesn't work as intended. >>> After much tinkering with the code, I found out that the problem is in a >>> statement that contains the kbhit() function. GCC didn't complain about >>> it during compilation though, hence I assume that kbhit() exists in GCC >>> -- it is I who can't use it properly. Any hints? Your help will be very much >>> appreciated. > > >>Yes, DJGPP does have kbhit. But without seeing the code and knowing >>what exactly do you mean by ``doesn't work as intended'' it is hard >>to tell what is wrong. > > > Thanks for replying, Eli. The piece of code where kbhit() is being used is a > short function, as shown below: > > void check_event(int *key) > { > while (kbhit()) getch(); > *key = bioskey(0); > } > > Called at this program segment: > > [...] > check_event(&cmd); > p = toupper(cmd); > if (p == 'R') > return; > if (p == 'A') { > build_amort(v); > display_amort(); > factor_header(); > aflg = 0; > fflg = 1; > return; > } > [...] > > It should then (in theory) capture a keyboard hit, make it uppercase > and then decide what to do with the result. > > Now giving the code a closer look, it is quite possible that the error > is due to the function bioskey(). Maybe. > *Maybe* it's because when !kbhit(), you don't call getch() but you do store a value into *key. This meaningless value is then supplied to toupper() and assigned to p.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |