---
name: "legacy_coding"
section: "3x"
platform: "linux"
package: "ncurses"
version: "6.6-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/legacy_coding/3x"
---

# legacy\_coding(3x)

override curses locale encoding checks

## NAME

**use\_legacy\_coding** - override *curses* locale encoding checks

## SYNOPSIS

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

**int use\_legacy\_coding(int** *level***);**

## DESCRIPTION

**use\_legacy\_coding**, **an** *ncurses* **extension to the** *curses* **library,** **permits customiztion of unctrl(3X) behavior,** **suppressing** *isprint***(3)-based checks within the library that** **would normally cause nonprinting characters to be rendered in visible** **form.** **The alteration affects only byte-wide characters with the most** **significant bit set.**

**The** *level* **parameter controls the result.**

- **0**

  **The library functions normally,** **rendering nonprinting characters as described in unctrl(3X),**

- **1**

  **the library ignores** *isprint* **for codes in the range 160-255.**

- **2**

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

## RETURN VALUE

**If the** *curses* **screen has not been initialized,** **or the** *level* **parameter is out of range,** **use\_legacy\_coding** **returns** **ERR**. **Otherwise,** **it returns the previous level.**

## EXTENSIONS

**use\_legacy\_coding** **is an** *ncurses* **extension.**

## PORTABILITY

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

## HISTORY

*ncurses* **5.6 (2006) introduced** *use\_legacy\_coding* **to support** *lynx***(1)'s font-switching feature.**

## AUTHORS

**Thomas Dickey**

## SEE ALSO

**unctrl(3X)**
