bug-ncurses
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: getch() waits even nodelay is set


From: Thomas Dickey
Subject: Re: getch() waits even nodelay is set
Date: Sat, 20 Jul 2002 09:32:48 -0400
User-agent: Mutt/1.2.5i

On Fri, Jul 19, 2002 at 11:53:34PM -0400, Fangtu Qiu wrote:
> Hi, Thomas,
> 
> The problem appears after I upgraded my linux to RedHat 7.3 from RedHat 
> 7.2. If you only have 7.2, you may not be able to see the problem.

I generally do re-installs (upgrades aren't reliable enough for my tastes).
If 7.4 doesn't come along shortly, I'll probably look into 7.3 in a month
or so.  (I've a 6.2 and 7.2, for testing).
 
> The following code will wait if compiled with g++. It won't wait if 
> compiled by gcc.

g++ is a different case - its support for stdio and termio is philosophically
opposed to allowing mixes of C and C++ code.  So natural combinations fail to
work because someone decides that because the standard does not assert that the
facilities _must_ work together, then they're free to implement things in a way
that prevents them from doing so.

Usually (this isn't an faq, comes up 1-2 times a year) the problem surfaces
when someone tries mixing stream I/O with stdio.
 
However...

It's not clear where the problem lies.  Some more information might help
guess.  I don't think it's purely the compiler - I just now tweaked things
to make all of ncurses build with g++ using the gcc 3.1 distribution. That
(running on Slackware 7.1 with glibc 2.1.3) doesn't hang.  (I modified the
config.status after running configure - autoconf 2.52's check for libstdc
blew up - and also added an extern-C ifdef to nc_alloc.h).  iirc, Redhat
7.2 uses one of the 2.96 series.  Does 7.3 also?

> =====  cut here =====
> 
> #include <curses.h>
> 
> int main()
> {
>         WINDOW * pwin = initscr();
>         nodelay(pwin, TRUE);
>         getch();
>         endwin();
> }
> 
> ===== cut here =====
> 
> Regards,
> 
> Fangtu Qiu
> 
> 
> On Fri, 19 Jul 2002, Thomas E. Dickey wrote:
> 
> > On Fri, 19 Jul 2002, Fangtu Qiu wrote:
> > 
> > > Bug description:
> > >
> > > The getch() function waits for the input when nodelay is set.
> > >
> > > Bug or new behaviour? Or I missed something?
> > 
> > I'm not sure what you are seeing - I use nodelay in several of the test
> > programs.  (Will check later, in case it's a Redhat bug - I have a 7.2
> > for testing those).
> > 
> > > Platform tested: RedHat linux 7.3
> > >
> > > ncurses version: 5.2-26 from RedHat 7.3 (getch WAITS when nodelay is set)
> > > ncurses version: 5.2-28 from RawHide (getch WAITS when nodelay is set)
> > > ncurses version: 5.2-20020713 from ftp://dickey.his.com (getch WAITS when
> > > nodelay is set)
> > >
> > > ncurses version: 5.2-12 from RedHat 7.2 (getch doesn't wait when nodelay
> > > is set)
> > >
> > > -Fangtu
> > >
> > >
> > >
> > > _______________________________________________
> > > Bug-ncurses mailing list
> > > address@hidden
> > > http://mail.gnu.org/mailman/listinfo/bug-ncurses
> > >
> > 
> > 

-- 
Thomas E. Dickey <address@hidden>
http://invisible-island.net
ftp://invisible-island.net



reply via email to

[Prev in Thread] Current Thread [Next in Thread]