legacy_coding(3X) Library calls legacy_coding(3X)

use_legacy_coding - override curses locale encoding checks

#include <curses.h>
int use_legacy_coding(int level);

use_legacy_coding is an extension to the curses library. It allows the caller to change the result of unctrl(3X), suppressing isprint(3)-based checks within the library that would normally cause nonprinting characters to be rendered in visible form. The alteration affects only eight-bit characters.

The level parameter controls the result.

The library functions normally, rendering nonprinting characters as described in unctrl(3X),
the library ignores isprint for codes in the range 160-255.
the library ignores isprint for codes in the range 128-255. It also modifies the output of unctrl(3X), showing codes in the range 128-159 as is.

If the screen has not been initialized, or the level parameter is out of range, use_legacy_coding returns ERR. Otherwise, it returns the previous level: 0, 1, or 2.

use_legacy_coding is specific to ncurses. It was not supported on Version 7, BSD or System V implementations. Applications employing ncurses extensions should condition their use on the visibility of the NCURSES_VERSION preprocessor macro.

Thomas Dickey (to support lynx(1)'s font-switching feature).


2024-04-20 ncurses 6.5