Help and Forums
Notes on the NcDialog API and ncurses v:6.5 (updated 25 Jul 2025)
The NcDialog API, upon which most of the applications on this site are based,
relies upon the
ncursesw (new curses, wide character) v:6.x
development package for terminal applications, and is fully functional with v:6.4 and v:6.5 ncurses.
- The ncurses package (maintained by Thomas Dickey), is quite stable and reliable on many platforms.
The Wayland compositor, however, is still a work-in-progress.
-
The Wayland developers have the almost impossible task of replacing the venerable X11 Window System with a software platform that has
actually been designed, rather that simply emerging from the primordial ooze as X had done over the decades. Your author does not
envy them their task.
- The most obvious effect Wayland has had on ncurses is in the area of keyboard keycode definitions. The keycodes assigned to the
raw escape sequences transmitted from the keyboard controller have been updated several times, and each time it breaks the keycode
definition sequence of the ncurses package. The most recent Wayland update, however, presents the keycodes in a logical numeric progression,
so it is hoped that the sequence is now stable.
- A new NcDialog API keymap has been generated to match the latest Wayland keycode modifications. Note that the NcDialog package includes
the Keymap utility which may be used to generate a keycode map in case the default key map is not synchronized with the target system.
-
The gString class has undergone a major upgrade for v:0.0.37. gString is an integral part of the NcDialog API package, and is an
essential component of most packages available on this site. In previous versions, the gString character buffers were of fixed size,
defined as “PATH_MAX” i.e. 4096 bytes. While this is more than enough space for most projects, we have found it
somewhat limiting in some circumstances, such as clipboard copy-and-paste operations.
For this reason, the three gString-class buffers, byte (UTF-8), character (wchar_t), and column-width buffers are now dynamically
allocated and are resized as necessary to accomodate text data up to one megabyte. The initial allocation is still 4096 bytes; so
if the additional space is not required, the gString update should be fully transparent except for the buffer size constant
definitions as shown:
#define gsMAXBYTES (4096) becomes #define gsDFLTBYTES
#define gsMAXCHARS (1024) becomes #define gsALLOCMIN
To minimize changes to your existing code, if the additional gString functionality is not needed, the following definitions may be
added to your application header file below the gString declaration: #include “gString.hpp”
#define gsMAXBYTES (gsDFLTBYTES)
#define gsMAXCHARS (gsALLOCMIN)
Please refer to the gString-class documentation for further details.
-
Also, a change in the GNU C++ compiler has required a small update to the gString class. The file “cstdint” was formerly brought
in through the “cstdlib” file, but gString.hpp now includes “cstdint” explicitly.
-
The WaylandCB class and the Wayclip demonstration app which are part of the NcDialog API distribution package have also been updated.
Recently, the “wl-clipboard” utilities written by Sergey Bugaev have been significantly improved, so our clipboard interface
has been updated to take advantage of these improvements.
— (The WaylandCB package is also available as a separate download.)
-
Our FileMangler file-management application has also been updated. FileMangler has been very stable for over five years, but
it seems like a good time to release v:0.0.40, an update which includes:
- Enhancements to Tree-view Mode for speed and stability.
- Display of metadata for additional media filetypes: wma, bmp. eml, etc.
- Enhanced display of both Perl and HTML source files.
- The Pinwheel and Progbar widgets have now been integrated into the NcDialog API library, so the development code
for these items has been removed from the FileMangler source.
- Implement a quick-view for the Microsoft Word filetypes: 1997, 2000, 2002,2003, 2007.
Frankly we were surprised to learn that many Windoze folks are still using these obsolete binary formats.
- Provide additional information for filesystems on external devices.
- Bug Fix: The FileMangler connection to the Wayland system clipboard was being lost when switching between Single-Window
and Dual-Window modes. This was not a FileMangler problem, but a bug in the underlying NcDialog API library.
- Various minor bug fixes.
- Documentation update.
- See FileMangler's “VERSION_HISTORY” file for additional information.