https://invisible-island.net/ncurses/man/
curs_extend(3x) Library calls curs_extend(3x)
curses_version, use_extended_names - miscellaneous ncurses extensions
#include <curses.h> const char * curses_version(void); int use_extended_names(bool bf);
These ncurses extensions to the curses library do not fit easily into other functional categories.
curses_version returns a pointer to a string containing the library's name and version number, including its patch level, for example "ncurses 6.5.20240720".
use_extended_names configures whether the library recognizes user- defined or nonstandard terminfo capability names that may be compiled into terminal type descriptions via the curs_terminfo(3x) or curs_termcap(3x) interfaces. Normally these names are available for use, since the essential decision is made through use of tic(1)'s -x option to include such extensions in terminal type descriptions. use_extended_names(FALSE) prevents ncurses from recognizing these capabilities to ensure compatibility with other implementations of curses.
curses_version returns a constant string. use_extended_names returns the previous state of extended capability name recognition, allowing you to save this property and restore it.
The pointer returned by curses_version corresponds to statically allocated memory; do not attempt to free(3) it.
These functions are ncurses extensions, and are not found in SVr4 curses, 4.4BSD curses, or any other previous curses implementation. NetBSD 9 added a curses_version function which intentionally returns a string without version information.
Applications employing ncurses extensions should condition their use on the visibility of the NCURSES_VERSION preprocessor macro.
Thomas Dickey
ncurses offers several other extensions to the X/Open Curses API. curs_getch(3x), curs_inopts(3x), curs_mouse(3x), curs_print(3x), curs_util(3x), default_colors(3x), define_key(3x), keybound(3x), keyok(3x), new_pair(3x), resizeterm(3x), wresize(3x) ncurses 6.5 2025-10-05 curs_extend(3x)