tech-userlevel archive

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

Re: curses: create panel from stdscr?



On Mon, Nov 06, 2017 at 07:09:06PM +0300, Valery Ushakov wrote:
> 
> It's intended to be compatible with Extended Terminal Interface (ETI).
> When I wrote it I looked at Solaris and SCO documentation from early
> 90s.  E.g.  calling top_panel() on a hidden panel behaves differently.
> ETI says it's an error, ncurses shows the panel.  There may be other
> differences as well.
> 

There is actually a book that defines the ETI, I have it at home
somewhere.  The bits I implemented used that book as a reference.
Unfortunately, ncurses does a lot of things that are not as per the
specification.  I did try to report them upstream but there seemed to be
a lack of interest in fixing things - I guess more due to breaking
things than anything else.  This does leave us in the invidious position
of our correctness being interpreted as bugs because we don't do what
ncurses does....it is a constant, losing, battle.

> 
> Panels basically just add Z-order to curses windows.  What would be
> meaningful operations on a panel that corresponds to stdscr?  It must
> always be visible, it must always be at the bottom, it cannot be
> moved, etc, etc.  What's worse is that it will probably introduce
> consistency problems into the API.
> 

Yes, even though we are correct and it makes no real sense to allow a
panel on stdscr we probably should do it otherwise we will be forever
closing bug reports and also parts of pkgsrc will require ncurses simply
because the native curses "does not work".

It is wrong and a pain but ncurses has the larger market share so
whatever we do different is considered a but so we may as well just suck
it up and make our libpanel have the same brokenness.

-- 
Brett Lymn
Let go, or be dragged - Zen proverb.


Home | Main Index | Thread Index | Old Index