[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: curses: create panel from stdscr?
In article <20171107211717.GB711%internode.on.net@localhost>,
Brett Lymn <blymn%internode.on.net@localhost> wrote:
>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.
Even if we become bug compatible, we should keep a mode (via environment
or program setting) that warns when we are asked to do something
unspecified or different than the standard, or even behaves the way the
Main Index |
Thread Index |