I will try to reply to all the question in different posts 
Thomas Dickey <dickey@saltmine.radix.net> wrote:
Xiaodan Tang <> xtang@ottawa.com> > wrote:
Thomas Dickey <> dickey@saltmine.radix.net> > wrote:
The current QNX porting of ncurses is free (with src) on:
ftp://ftp.qnx.com/usr/free/qnx4/os/libs/ncurses-4.2-> *
It is ncurses 4.2 patch 980245 (plus some QNX extantion).
Maybe it’s a time to do a port again…
If we could get the mouse code integrated this time, it would be simpler
for both of us to maintain. I didn’t add the patch before, because it
modified the arrangement of the xterm code, which will involve retesting
on both sides.
(The fact that Thomas showing up in this group increased
that presure > 
well, if people are asking questions, I try to answer them. It really sounds
as if he’s using the 1.9.8a version (I saw something like that on QNX’s ftp
site a few months ago, though I may be looking at the wrong place).
The first port of ncurses to QNX is 1.9.8a, and there still
a lot people using it 
The most troubled
“mouse code” is to handle a “qnxm” terminal.
That terminal don’t generate “mouse key”, so that the library
have to “query” mouse event. Basically it setup so that every
time a mouse event happened, it will notify the application. (a mouse
event proxy in QNX word).
The “extantion” of QNX port is a “user callback” function.
This is done because ncurses application also want to be
notified by other resource. For example, geting data from
network. Now since socket is “selectable”, this is good,
but lot of QNX application are “Receive()ing” from pids
which is not “selectable”. Thus the user callback.
Basically the ncurses library do not using “select()” or
“pull()”, but really do a “Receive()”. It receives everything,
a mouse event, a key event, timer expired notification,
or if it is something it don’t understand, the message
will pass to “user callback”. An additional function
(set_qnx_callback()) is add to allow user setup/cancel their
own callback function.
I don’t think QNX port have anything to do with “echochar()”.
As Thomas point out, this might be a bug but not feature.
Now, on Neutrino, things going to be better. First we don’t
support qnxm terminal anymore. Second it is multi-threaded.
(Thomas, we will have a “Free QNX” called Realtime Platform
for downloading, very soon 
So next port, I am going to drop the mouse support on
“qnxm” terminal (is any body still using it? I doubt).
Thomas, is the current 5.1 thread safe ?
-xiaodan