rigordo959 / tsWxGTUI_PyVx_Repository

The TeamSTARS "tsWxGTUI_PyVx" Toolkit is designed to be a foundation for developing, operating and troubleshooting those Python Curses based application programs embedded in local and remote 32-/64-bit computer systems used to monitor and control mission critical equipment.
13 stars 1 forks source link

tsLibGUI/tsWxGraphicalTextUserInterface requires use of configuration control switch USE_256_COLOR_PAIR_LIMIT to support xterm-88color and xterm-256color consoles. #52

Open rigordo959 opened 8 years ago

rigordo959 commented 8 years ago

tsLibGUI/tsWxGraphicalTextUserInterface requires use of configuration control switch USE_256_COLOR_PAIR_LIMIT to support xterm-88color and xterm-256color consoles.

Undocumented "Curses" / "nCurses" 256 color pair limitation constrains support for xterm-88color and xterm-256color consoles.

Workaround provides addition of configuration control switch USE_256_COLOR_PAIR_LIMIT to "tsWxGlobals.py" file and support for xterm-88color and xterm-256color consoles which is equivalent to that for xterm-16color type console. The latter provides the automatic mapping of the 68x68 standard "wxPython" foreground/background color name combinations into the available 16x16 "Curses" / "nCurses" 256 color name pairs.

Without xterm-16color console type support, use of the 68x68 standard "wxPython" foreground/background color combinations, included in a 71-color palette, will produce both the incorrect color and such unwanted display attributes as underlines, blinking etc.

rigordo959 commented 8 years ago

This is a "Heads-Up" :+1:

On 8 August 2015 ncurses 6.0 was released by the GNU Project of the Free Software Foundation with the following announcement:

"These notes are for ncurses 6.0, released August 8, 2015.

This release is designed to be source-compatible with ncurses 5.0 through 5.9; providing a new application binary interface (ABI). Although the source can still be configured to support the ncurses 5 ABI, the intent of the release is to provide extensions which are generally useful, but binary-incompatible with ncurses 5:

Extend the cchar_t structure to allow more than 16 colors to be encoded.

Modify the encoding of mouse state to make room for a 5th mouse button. That allows one to use ncurses with a wheel mouse with xterm or similar X terminal emulators.

There are, of course, numerous other improvements, including

fixes made based on the Clang and Coverity static analyzers.

memory leak fixes using Valgrind

The release notes mention some bug-fixes, but are focused on new features and improvements to existing features log since ncurses 5.9 release.

While the intent of the release is to provide a new stable ABI, there are other development activities which are summarized below.

The original release plan, e.g., for "5.10" was to improve the MinGW port. Ultimately that was completed (wide-character support, mouse, etc), but was deferred to focus on termcap support and performance issues. Also, pinpointing the problems with Console2 took a while.

A review of termcap compatibility in 2011 led to several minor fixes in the library and improvements to utilities. To do this properly, a review of the various extent termcap implementations was needed.

The termcap library checker (tctest) (not part of ncurses) was one result. A followup review of performance using ncurses-examples in 2014 led to additional improvements.

Output buffering provided a further, but worthwhile distraction. A bug report in 2012 regarding the use of signal handlers in ncurses) pointed out a problem with the use of unsafe functions for handling SIGTSTP. Other signals could be addressed with workarounds; repairing SIGTSTP required a different approach. The solution required changing internal behavior of the library: how it handles output buffering.

Now ncurses buffers its own output, independently of the standard output. A few applications relied upon the library's direct reuse of the standard output buffering; however that is unspecified behavior and has never been a recommended practice. Identifying these applications as well as refining the change to permit low-level applications to work consistently took time.

Since the introduction of the experimental support for 256 colors early in 2005 (released in ncurses 5.5), there has been increased user interest. Almost all packagers continue providing the ncurses ABI 5 which cannot support 256 colors.

Symbol versioning, or the lack of it in ncurses, is the main reason why packagers would be reluctant to add a new ncurses ABI.

This release provides the new ABI along with script-generated lists of versioned symbols which can be used for both ABI 5 and 6 (with distinct names to keep the two separate). This took time to development, as reported in Symbol versioning in ncurses."

As of 2 November 2015, ncurses 6.0 has not yet been announced by any Operating System manufacturer or by the Python Software Foundation.