curs\_extend(3X) Library calls curs\_extend(3X)

# [NAME](#NAME)

**curses\_version**, **use\_extended\_names** - miscellaneous *ncurses* extensions

# [SYNOPSIS](#SYNOPSIS)

```
#include <curses.h>
```

```
const char * curses_version(void);
int use_extended_names(bool bf);
```

# [DESCRIPTION](#DESCRIPTION)

These *ncurses* extensions to the *curses* library do not fit easily into other functional categories.

## [curses\_version](#curses_version)

**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](#use_extended_names)

**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)](/man/os/ncurses/curs_terminfo.3X) or [**curs\_termcap**(3X)](/man/os/ncurses/curs_termcap.3X) interfaces. Normally these names are available for use, since the essential decision is made through use of [**tic**(1)](/man/os/ncurses/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*.

# [RETURN VALUE](#RETURN_VALUE)

**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.

# [NOTES](#NOTES)

The pointer returned by **curses\_version** corresponds to statically allocated memory; do not attempt to [*free*(3)](/man/os/ncurses/free.3) it.

# [EXTENSIONS](#EXTENSIONS)

These functions are *ncurses* extensions, and are not found in SVr4 *curses*, 4.4BSD *curses*, or any other previous *curses* implementation.

# [PORTABILITY](#PORTABILITY)

Applications employing *ncurses* extensions should condition their use on the visibility of the **NCURSES\_VERSION** preprocessor macro.

NetBSD 9 (2020) added a *curses\_version* function that intentionally returns a string devoid of version information.

# [AUTHORS](#AUTHORS)

Thomas Dickey

# [SEE ALSO](#SEE_ALSO)

*ncurses* offers several other extensions to the X/Open Curses API.

[**curs\_getch**(3X)](/man/os/ncurses/curs_getch.3X), [**curs\_inopts**(3X)](/man/os/ncurses/curs_inopts.3X), [**curs\_mouse**(3X)](/man/os/ncurses/curs_mouse.3X), [**curs\_print**(3X)](/man/os/ncurses/curs_print.3X), [**curs\_util**(3X)](/man/os/ncurses/curs_util.3X), [**default\_colors**(3X)](/man/os/ncurses/default_colors.3X), [**define\_key**(3X)](/man/os/ncurses/define_key.3X), [**keybound**(3X)](/man/os/ncurses/keybound.3X), [**keyok**(3X)](/man/os/ncurses/keyok.3X), [**new\_pair**(3X)](/man/os/ncurses/new_pair.3X), [**resizeterm**(3X)](/man/os/ncurses/resizeterm.3X), [**wresize**(3X)](/man/os/ncurses/wresize.3X)

2026-09-19 ncurses 6.6

---

Document: curses_version(3x) from ncurses 6.6.20260926-r0 (Chainguard OS)
Source: https://github.com/ThomasDickey/ncurses-snapshots
