<!-- DO NOT EDIT BY HAND.
Generated by `cargo xtask gen` (xtask/src/main.rs) from docs-src/models/c-api.json
(clang C inventory) joined with the syn-extracted Rust inventory and the curated,
validated map in docs-src/models/parity.model.json. Run `cargo xtask check` to
verify freshness; it fails if this file drifts or a model invariant is violated. -->

# Per-function gap ledger (ncurses C → ncurses-native)

C inventory provenance: Ubuntu clang version 18.1.3 (1ubuntu1) via clang -Xclang -ast-dump=json on installed ncursesw headers; headers: `curses.h` (456 fns, sha256 `bbdf40f38aef`), `term.h` (33 fns, sha256 `26e32c4d77dc`).

Every public ncurses C function whose native status is not `full` is listed here as a
gap, with its kind. `full` functions (no gap) are omitted. This is the machine-checked,
freshness-gated function-level half of the forensic gap ledger; the behavioural,
semantic, byte-level, and C→Rust porting gap classes are in `docs/gap-ledger.md`.

**448 / 481 functions are gaps** (only 33 are `full`). Gap kinds:

- **divergent** (8): measured byte divergence vs the in-repo oracle
- **scaffold** (22): stand-in (byte producer not pinned to its own court)
- **partial** (174): behavioural (some behaviour reconstructed, not all)
- **deferred** (42): no immediate output (effect realised at refresh)
- **n_a** (202): no terminal-output contract (out of byte-output scope)

## divergent — measured byte divergence vs the in-repo oracle (8 functions)

| ncurses fn | group | native counterpart | court(s) | gap note |
|---|---|---|---|---|
| `endwin` | Screen init & teardown (curs_initscr) | `term::TEARDOWN_EPILOGUE` | NCURSES.BYTE.FRAME.FULL | Emits the teardown epilogue; same recorded framing divergence as initscr against the in-repo oracle. |
| `endwin_sp` | Screen init & teardown (curs_initscr) | `term::TEARDOWN_EPILOGUE` | NCURSES.BYTE.FRAME.FULL | Emits the teardown epilogue; same recorded framing divergence as initscr against the in-repo oracle. |
| `exit_curses` | Screen init & teardown (curs_initscr) | `term::TEARDOWN_EPILOGUE` | NCURSES.BYTE.FRAME.FULL | Emits the teardown epilogue; same recorded framing divergence as initscr against the in-repo oracle. |
| `initscr` | Screen init & teardown (curs_initscr) | `term::INIT_PROLOGUE` | NCURSES.BYTE.FRAME.FULL | Emits the init prologue; against the in-repo ncurses 6.4 pty oracle the composite framing diverges (emission order + feature extras), recorded not matched. |
| `newterm` | Screen init & teardown (curs_initscr) | `term::INIT_PROLOGUE` | NCURSES.BYTE.FRAME.FULL | Emits the init prologue; against the in-repo ncurses 6.4 pty oracle the composite framing diverges (emission order + feature extras), recorded not matched. |
| `newterm_sp` | Screen init & teardown (curs_initscr) | `term::INIT_PROLOGUE` | NCURSES.BYTE.FRAME.FULL | Emits the init prologue; against the in-repo ncurses 6.4 pty oracle the composite framing diverges (emission order + feature extras), recorded not matched. |
| `tgetstr` | Terminfo & termcap (curs_terminfo / termcap) | `terminfo::Terminfo::tgetstr` | NCURSES.TERMCAP | Returns the terminfo string for a termcap code; matches 411/414. Diverges on the few codes ncurses' termcap emulation massages/synthesizes (e.g. 'me' -> \E[0m vs raw sgr0; 'ML' margin cap). Recorded in NCURSES.TERMCAP. |
| `tgetstr_sp` | Terminfo & termcap (curs_terminfo / termcap) | `terminfo::Terminfo::tgetstr` | NCURSES.TERMCAP | Returns the terminfo string for a termcap code; matches 411/414. Diverges on the few codes ncurses' termcap emulation massages/synthesizes (e.g. 'me' -> \E[0m vs raw sgr0; 'ML' margin cap). Recorded in NCURSES.TERMCAP. |

## scaffold — stand-in (byte producer not pinned to its own court) (22 functions)

| ncurses fn | group | native counterpart | court(s) | gap note |
|---|---|---|---|---|
| `doupdate_sp` | Refresh & doupdate (curs_refresh) | `screen::single_field_repaint` | — | Same single-shape repaint seed as doupdate; the _sp screen-pointer variant is not modelled. |
| `echochar` | Add character (curs_addch) | `window::Window::addch` | NCURSES.WINDOW.STATE | Add reconstructed in the cell grid; the echo's immediate refresh is the doupdate seed (not separately courted). |
| `inchnstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Char cells reconstructed (via instr); the chtype attribute bits these return are not modelled. |
| `inchstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Char cells reconstructed (via instr); the chtype attribute bits these return are not modelled. |
| `mvcur_sp` | Cursor move & optimizer (curs_move / mvcur) | `cursor::mvcur` | — | Same byte producer; the screen-pointer (_sp) reentrant variant is not modeled. |
| `mvderwin` | Window create & manage (curs_window) | `window::Window::derwin` | NCURSES.WINDOW.GEOMETRY | The derived-window view shift is not modelled; only child geometry via derwin. |
| `mvinchnstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Char cells reconstructed (via instr); the chtype attribute bits these return are not modelled. |
| `mvinchstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Char cells reconstructed (via instr); the chtype attribute bits these return are not modelled. |
| `mvprintw` | printw (curs_printw) | `window::Window::addstr` | — | Formats (C printf, delegated to the caller) then adds the string to the window; the window effect is addstr (courted via WINDOW.STATE). |
| `mvwinchnstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Char cells reconstructed (via instr); the chtype attribute bits these return are not modelled. |
| `mvwinchstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Char cells reconstructed (via instr); the chtype attribute bits these return are not modelled. |
| `mvwprintw` | printw (curs_printw) | `window::Window::addstr` | — | Formats (C printf, delegated to the caller) then adds the string to the window; the window effect is addstr (courted via WINDOW.STATE). |
| `pechochar` | Pads (curs_pad) | `window::Window::addch` | — | Add to the pad then refresh; the add is reconstructed, the echo refresh is the doupdate seed. |
| `pnoutrefresh` | Pads (curs_pad) | `screen::single_field_repaint` | — | Pad-to-screen copy; shares the single-shape repaint seed (general doupdate is a seed). |
| `prefresh` | Pads (curs_pad) | `screen::single_field_repaint` | — | Pad-to-screen copy; shares the single-shape repaint seed (general doupdate is a seed). |
| `printw` | printw (curs_printw) | `window::Window::addstr` | — | Formats (C printf, delegated to the caller) then adds the string to the window; the window effect is addstr (courted via WINDOW.STATE). |
| `vw_printw` | printw (curs_printw) | `window::Window::addstr` | — | Formats (C printf, delegated to the caller) then adds the string to the window; the window effect is addstr (courted via WINDOW.STATE). |
| `vwprintw` | printw (curs_printw) | `window::Window::addstr` | — | Formats (C printf, delegated to the caller) then adds the string to the window; the window effect is addstr (courted via WINDOW.STATE). |
| `wechochar` | Add character (curs_addch) | `window::Window::addch` | NCURSES.WINDOW.STATE | Add reconstructed in the cell grid; the echo's immediate refresh is the doupdate seed (not separately courted). |
| `winchnstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Char cells reconstructed (via instr); the chtype attribute bits these return are not modelled. |
| `winchstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Char cells reconstructed (via instr); the chtype attribute bits these return are not modelled. |
| `wprintw` | printw (curs_printw) | `window::Window::addstr` | — | Formats (C printf, delegated to the caller) then adds the string to the window; the window effect is addstr (courted via WINDOW.STATE). |

## partial — behavioural (some behaviour reconstructed, not all) (174 functions)

| ncurses fn | group | native counterpart | court(s) | gap note |
|---|---|---|---|---|
| `COLOR_PAIR` | Color (curs_color) | `window::color_pair` | NCURSES.COLOR.PAIR | COLOR_PAIR(n) = n<<8; matched to ncurses. |
| `PAIR_NUMBER` | Color (curs_color) | `window::pair_number` | NCURSES.COLOR.PAIR | PAIR_NUMBER(attr) = (attr & A_COLOR) >> 8; matched to ncurses. |
| `addch` | Add character (curs_addch) | `window::Window::addch` | NCURSES.WINDOW.STATE | Writes a printable char/newline into the window cell grid (wrap/clear-to-EOL/clip); state matched to ncurses by winch readback. |
| `addchnstr` | Add chstr (curs_addchstr) | `window::Window::addchstr` | NCURSES.WINDOW.ATTR | Writes a chtype array (char+attr) at the cursor without advancing, clipped at the margin; char+attr matched to ncurses via winch. |
| `addchstr` | Add chstr (curs_addchstr) | `window::Window::addchstr` | NCURSES.WINDOW.ATTR | Writes a chtype array (char+attr) at the cursor without advancing, clipped at the margin; char+attr matched to ncurses via winch. |
| `addnstr` | Add string (curs_addstr) | `window::Window::addstr` | NCURSES.WINDOW.STATE | Adds a byte string into the cell grid via addch; state matched to ncurses by winch readback. The n-variants' length limit is the caller's slice. |
| `addstr` | Add string (curs_addstr) | `window::Window::addstr` | NCURSES.WINDOW.STATE | Adds a byte string into the cell grid via addch; state matched to ncurses by winch readback. The n-variants' length limit is the caller's slice. |
| `alloc_pair` | Color (curs_color) | `color::Palette::alloc_pair` | NCURSES.COLOR.ALLOC | Allocate/return a pair for (fg,bg); matched to ncurses. |
| `alloc_pair_sp` | Color (curs_color) | `color::Palette::alloc_pair` | NCURSES.COLOR.ALLOC | Allocate/return a pair for (fg,bg); matched to ncurses. |
| `attr_get` | Attributes (curs_attr) | `window::Window::attr_get` | NCURSES.WINDOW.ATTR | Returns the active attributes. |
| `attr_off` | Attributes (curs_attr) | `window::Window::attroff` | NCURSES.WINDOW.ATTR | Turns attribute bits off; cell attributes matched to ncurses via winch. |
| `attr_on` | Attributes (curs_attr) | `window::Window::attron` | NCURSES.WINDOW.ATTR | Turns attribute bits on for subsequent writes; cell attributes matched to ncurses A_* via winch. |
| `attr_set` | Attributes (curs_attr) | `window::Window::attrset` | NCURSES.WINDOW.ATTR | Sets the active attributes; cell attributes matched to ncurses via winch. |
| `attroff` | Attributes (curs_attr) | `window::Window::attroff` | NCURSES.WINDOW.ATTR | Turns attribute bits off; cell attributes matched to ncurses via winch. |
| `attron` | Attributes (curs_attr) | `window::Window::attron` | NCURSES.WINDOW.ATTR | Turns attribute bits on for subsequent writes; cell attributes matched to ncurses A_* via winch. |
| `attrset` | Attributes (curs_attr) | `window::Window::attrset` | NCURSES.WINDOW.ATTR | Sets the active attributes; cell attributes matched to ncurses via winch. |
| `border` | Borders & lines (curs_border) | `window::Window::border` | NCURSES.WINDOW.STATE | Draws a border into the cell grid (sides + corners, 0 = ACS default); state matched by winch readback. |
| `box` | Borders & lines (curs_border) | `window::Window::draw_box` | NCURSES.WINDOW.STATE | Border with given side chars and default ACS corners; state matched by winch readback. |
| `can_change_color` | Color (curs_color) | `terminfo::Terminfo::can_change_color` | NCURSES.TERMINFO.LOOKUP, NCURSES.TERMINFO.ECOLOGY | the ccc capability, derived from terminfo (tigetflag, court-matched). |
| `can_change_color_sp` | Color (curs_color) | `terminfo::Terminfo::can_change_color` | NCURSES.TERMINFO.LOOKUP, NCURSES.TERMINFO.ECOLOGY | the ccc capability, derived from terminfo (tigetflag, court-matched). |
| `chgat` | Attributes (curs_attr) | `window::Window::chgat` | NCURSES.WINDOW.ATTR | Changes the attributes of n cells at the cursor (chars unchanged); matched to ncurses via winch. |
| `clear` | Erase (curs_clear) | `screen::clear` | NCURSES.CAP.CLEAR | Emits the clear_screen capability bytes; not the full clear() window-state semantics. |
| `clrtobot` | Erase (curs_clear) | `screen::clr_eos` | NCURSES.CAP.ED | Emits the ed (clr_eos) capability bytes. |
| `clrtoeol` | Erase (curs_clear) | `screen::clr_eol` | NCURSES.CAP.EL | Emits the el (clr_eol) capability bytes. |
| `color_content` | Color (curs_color) | `color::Palette::color_content` | NCURSES.COLOR.CONTENT | Default 8-colour rgb palette (can_change_color false on xterm); matched to ncurses. |
| `color_content_sp` | Color (curs_color) | `color::Palette::color_content` | NCURSES.COLOR.CONTENT | Default 8-colour rgb palette (can_change_color false on xterm); matched to ncurses. |
| `color_set` | Color (curs_color) | `window::Window::color_set` | NCURSES.WINDOW.ATTR | Sets the active colour pair on the cell grid; matched to ncurses via winch colour bits. |
| `delch` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::delch` | NCURSES.WINDOW.STATE | Deletes the char at the cursor, shifting the line left (last col blank); state matched by winch readback. |
| `deleteln` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::deleteln` | NCURSES.WINDOW.STATE | Deletes the cursor line, shifting lower lines up (bottom blank); state matched by winch readback. |
| `derwin` | Window create & manage (curs_window) | `window::Window::derwin` | NCURSES.WINDOW.GEOMETRY | Child window at a parent-relative position; geometry (begyx/paryx) matched by the court. Shared parent cells are not modelled. |
| `doupdate` | Refresh & doupdate (curs_refresh) | `update::Screen::doupdate` | NCURSES.DOUPDATE | Clean-room reproduction of tty_update.c (doupdate/ClrUpdate/TransformLine/PutRange/EmitRange/ClrToEOL/ClrBottom) for the plain-text (A_NORMAL, no color) path, reusing the byte-exact mvcur/mvcur_ovw for cursor motion. Byte-exact vs real ncurses on ALL 19 court scenarios (NCURSES.DOUPDATE): clear+paint, overwrite, multi-line, scattered runs, leading-blank reposition, clr_eol/clr_bol/clr_eos, ich/dch insert/delete shifting, ech and rep run-coalescing, and the mvcur ovw=TRUE GoTo overwrite (OPT-01a closed). Attribute/color SGR (OPT-03), xmc, bce, hardware scroll, and the right-margin wrap corner are out of this increment. |
| `dupwin` | Window create & manage (curs_window) | `window::Window::dupwin` | NCURSES.WINDOW.GEOMETRY | Copies cells, cursor, and geometry; matched by the geometry/state courts. |
| `erase` | Erase (curs_clear) | `window::Window::erase` | NCURSES.WINDOW.STATE | Clears the window cell grid to blanks; emits no immediate bytes and the resulting grid is matched to ncurses by the window-state court. |
| `extended_color_content` | Color (curs_color) | `color::Palette::color_content` | NCURSES.COLOR.CONTENT | Default 8-colour rgb palette (can_change_color false on xterm); matched to ncurses. |
| `extended_color_content_sp` | Color (curs_color) | `color::Palette::color_content` | NCURSES.COLOR.CONTENT | Default 8-colour rgb palette (can_change_color false on xterm); matched to ncurses. |
| `extended_pair_content` | Color (curs_color) | `color::Palette::pair_content` | NCURSES.COLOR.PAIR | Extended (i32) pair (fg,bg); same registry as pair_content, matched to ncurses. |
| `extended_pair_content_sp` | Color (curs_color) | `color::Palette::pair_content` | NCURSES.COLOR.PAIR | Extended (i32) pair (fg,bg); same registry as pair_content, matched to ncurses. |
| `find_pair` | Color (curs_color) | `color::Palette::find_pair` | NCURSES.COLOR.ALLOC | Find an initialized pair for (fg,bg) or -1; matched to ncurses. |
| `find_pair_sp` | Color (curs_color) | `color::Palette::find_pair` | NCURSES.COLOR.ALLOC | Find an initialized pair for (fg,bg) or -1; matched to ncurses. |
| `free_pair` | Color (curs_color) | `color::Palette::free_pair` | NCURSES.COLOR.ALLOC | Release an allocated pair. |
| `free_pair_sp` | Color (curs_color) | `color::Palette::free_pair` | NCURSES.COLOR.ALLOC | Release an allocated pair. |
| `getattrs` | Attributes (curs_attr) | `window::Window::attr_get` | NCURSES.WINDOW.ATTR | Returns the active attributes. |
| `getbegx` | Window create & manage (curs_window) | `window::Window::getbegyx` | NCURSES.WINDOW.GEOMETRY | Window top-left screen position; matched by the geometry court. |
| `getbegy` | Window create & manage (curs_window) | `window::Window::getbegyx` | NCURSES.WINDOW.GEOMETRY | Window top-left screen position; matched by the geometry court. |
| `getch` | Input: characters & strings (curs_getch / getstr / scanw) | `input::KeyMap::decode` | NCURSES.INPUT | The key-decoding half of getch is reconstructed: input::KeyMap::decode maps a buffered byte stream to the KEY_* code sequence ncurses' wgetch returns (longest-match trie traversal), verified against a real ncurses getch loop over a pty for arrows, F1-F12, navigation keys, and mixed text (NCURSES.INPUT). The live raw-mode read loop and the ESCDELAY timer for a lone trailing ESC are the ncurses-terminal crate's job (INP-02/TIM-02). |
| `getcurx` | Window create & manage (curs_window) | `window::Window::getyx` | NCURSES.WINDOW.GEOMETRY | Window cursor position; matched by the geometry/window-state courts. |
| `getcury` | Window create & manage (curs_window) | `window::Window::getyx` | NCURSES.WINDOW.GEOMETRY | Window cursor position; matched by the geometry/window-state courts. |
| `getmaxx` | Window create & manage (curs_window) | `window::Window::getmaxyx` | NCURSES.WINDOW.GEOMETRY | Window size; matched by the geometry court. |
| `getmaxy` | Window create & manage (curs_window) | `window::Window::getmaxyx` | NCURSES.WINDOW.GEOMETRY | Window size; matched by the geometry court. |
| `getparx` | Window create & manage (curs_window) | `window::Window::getparyx` | NCURSES.WINDOW.GEOMETRY | Position relative to the parent window; matched by the geometry court. |
| `getpary` | Window create & manage (curs_window) | `window::Window::getparyx` | NCURSES.WINDOW.GEOMETRY | Position relative to the parent window; matched by the geometry court. |
| `has_colors` | Color (curs_color) | `terminfo::Terminfo::has_colors` | NCURSES.TERMINFO.LOOKUP, NCURSES.TERMINFO.ECOLOGY | colors>0, derived from terminfo (tigetnum colors, court-matched). |
| `has_colors_sp` | Color (curs_color) | `terminfo::Terminfo::has_colors` | NCURSES.TERMINFO.LOOKUP, NCURSES.TERMINFO.ECOLOGY | colors>0, derived from terminfo (tigetnum colors, court-matched). |
| `has_key` | Input: characters & strings (curs_getch / getstr / scanw) | `input::KeyMap::has_key` | NCURSES.KEY.DEFINED | Whether the terminal defines a key code, from its terminfo key caps; matched to ncurses. |
| `has_key_sp` | Input: characters & strings (curs_getch / getstr / scanw) | `input::KeyMap::has_key` | NCURSES.KEY.DEFINED | Whether the terminal defines a key code, from its terminfo key caps; matched to ncurses. |
| `hline` | Borders & lines (curs_border) | `window::Window::hline` | NCURSES.WINDOW.STATE | Draws a horizontal line of n chars (0 = ACS_HLINE), clipped at the right edge; state matched by winch readback. |
| `inch` | Read from window (curs_inch / instr) | `window::Window::inch` | NCURSES.WINDOW.STATE | Reads a cell's character from the window grid; the court reads ncurses back the same way. Attribute/chtype bits are not modelled. |
| `init_extended_pair` | Color (curs_color) | `color::Palette::init_pair` | NCURSES.COLOR.PAIR | Extended (i32) pair registration; same registry as init_pair. |
| `init_extended_pair_sp` | Color (curs_color) | `color::Palette::init_pair` | NCURSES.COLOR.PAIR | Extended (i32) pair registration; same registry as init_pair. |
| `init_pair` | Color (curs_color) | `color::Palette::init_pair` | NCURSES.COLOR.PAIR | Registers a colour pair; pair_content matched to ncurses. |
| `init_pair_sp` | Color (curs_color) | `color::Palette::init_pair` | NCURSES.COLOR.PAIR | Registers a colour pair; pair_content matched to ncurses. |
| `innstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Reads characters from the cursor to end of row; the cells it returns are validated by the window-state court. |
| `insch` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insch` | NCURSES.WINDOW.STATE | Inserts a char at the cursor, shifting the line right (last col lost); state matched by winch readback. |
| `insdelln` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insdelln` | NCURSES.WINDOW.STATE | Inserts/deletes n lines at the cursor row; state matched by winch readback. |
| `insertln` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insertln` | NCURSES.WINDOW.STATE | Inserts a blank line at the cursor row, shifting lower lines down (bottom lost); state matched by winch readback. |
| `insnstr` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insstr` | NCURSES.WINDOW.STATE | Inserts a string at the cursor (line shifts right; cursor stays); state matched by winch readback. The n-variants' limit is the caller's slice. |
| `insstr` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insstr` | NCURSES.WINDOW.STATE | Inserts a string at the cursor (line shifts right; cursor stays); state matched by winch readback. The n-variants' limit is the caller's slice. |
| `instr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Reads characters from the cursor to end of row; the cells it returns are validated by the window-state court. |
| `is_pad` | Pads (curs_pad) | `window::Window::is_pad` | NCURSES.WINDOW.GEOMETRY | Whether the window is a pad; matched by the geometry court. |
| `is_subwin` | Window create & manage (curs_window) | `window::Window::is_subwin` | NCURSES.WINDOW.GEOMETRY | True when the window has a parent; matched by the geometry court. |
| `key_defined` | Input options & key handling (curs_inopts / util) | `input::KeyMap::key_defined` | NCURSES.KEY.DEFINED | The key a sequence is bound to (exact/-1 prefix/0), from the terminfo key caps; matched to ncurses. |
| `key_defined_sp` | Input options & key handling (curs_inopts / util) | `input::KeyMap::key_defined` | NCURSES.KEY.DEFINED | The key a sequence is bound to (exact/-1 prefix/0), from the terminfo key caps; matched to ncurses. |
| `keyname` | Input options & key handling (curs_inopts / util) | `input::keyname` | NCURSES.KEYNAME | Names a key code (printable/control/meta + the KEY_* table); matched to ncurses over -1..600. |
| `keyname_sp` | Input options & key handling (curs_inopts / util) | `input::keyname` | NCURSES.KEYNAME | Names a key code (printable/control/meta + the KEY_* table); matched to ncurses over -1..600. |
| `mouse_trafo` | Mouse (curs_mouse) | `window::Window::mouse_trafo` | NCURSES.MOUSE.TRAFO | Window<->screen coordinate transform with enclosure check; matched to ncurses. |
| `move` | Cursor move & optimizer (curs_move / mvcur) | `window::Window::move_to` | NCURSES.WINDOW.STATE | Sets the window's logical cursor position; emits no bytes and the resulting position is matched to ncurses by the window-state court. |
| `mvaddch` | Add character (curs_addch) | `window::Window::addch` | NCURSES.WINDOW.STATE | Writes a printable char/newline into the window cell grid (wrap/clear-to-EOL/clip); state matched to ncurses by winch readback. |
| `mvaddchnstr` | Add chstr (curs_addchstr) | `window::Window::addchstr` | NCURSES.WINDOW.ATTR | Writes a chtype array (char+attr) at the cursor without advancing, clipped at the margin; char+attr matched to ncurses via winch. |
| `mvaddchstr` | Add chstr (curs_addchstr) | `window::Window::addchstr` | NCURSES.WINDOW.ATTR | Writes a chtype array (char+attr) at the cursor without advancing, clipped at the margin; char+attr matched to ncurses via winch. |
| `mvaddnstr` | Add string (curs_addstr) | `window::Window::addstr` | NCURSES.WINDOW.STATE | Adds a byte string into the cell grid via addch; state matched to ncurses by winch readback. The n-variants' length limit is the caller's slice. |
| `mvaddstr` | Add string (curs_addstr) | `window::Window::addstr` | NCURSES.WINDOW.STATE | Adds a byte string into the cell grid via addch; state matched to ncurses by winch readback. The n-variants' length limit is the caller's slice. |
| `mvchgat` | Attributes (curs_attr) | `window::Window::chgat` | NCURSES.WINDOW.ATTR | Changes the attributes of n cells at the cursor (chars unchanged); matched to ncurses via winch. |
| `mvdelch` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::delch` | NCURSES.WINDOW.STATE | Deletes the char at the cursor, shifting the line left (last col blank); state matched by winch readback. |
| `mvhline` | Borders & lines (curs_border) | `window::Window::hline` | NCURSES.WINDOW.STATE | Draws a horizontal line of n chars (0 = ACS_HLINE), clipped at the right edge; state matched by winch readback. |
| `mvinch` | Read from window (curs_inch / instr) | `window::Window::inch` | NCURSES.WINDOW.STATE | Reads a cell's character from the window grid; the court reads ncurses back the same way. Attribute/chtype bits are not modelled. |
| `mvinnstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Reads characters from the cursor to end of row; the cells it returns are validated by the window-state court. |
| `mvinsch` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insch` | NCURSES.WINDOW.STATE | Inserts a char at the cursor, shifting the line right (last col lost); state matched by winch readback. |
| `mvinsnstr` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insstr` | NCURSES.WINDOW.STATE | Inserts a string at the cursor (line shifts right; cursor stays); state matched by winch readback. The n-variants' limit is the caller's slice. |
| `mvinsstr` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insstr` | NCURSES.WINDOW.STATE | Inserts a string at the cursor (line shifts right; cursor stays); state matched by winch readback. The n-variants' limit is the caller's slice. |
| `mvinstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Reads characters from the cursor to end of row; the cells it returns are validated by the window-state court. |
| `mvvline` | Borders & lines (curs_border) | `window::Window::vline` | NCURSES.WINDOW.STATE | Draws a vertical line of n chars (0 = ACS_VLINE), clipped at the bottom; state matched by winch readback. |
| `mvwaddch` | Add character (curs_addch) | `window::Window::addch` | NCURSES.WINDOW.STATE | Writes a printable char/newline into the window cell grid (wrap/clear-to-EOL/clip); state matched to ncurses by winch readback. |
| `mvwaddchnstr` | Add chstr (curs_addchstr) | `window::Window::addchstr` | NCURSES.WINDOW.ATTR | Writes a chtype array (char+attr) at the cursor without advancing, clipped at the margin; char+attr matched to ncurses via winch. |
| `mvwaddchstr` | Add chstr (curs_addchstr) | `window::Window::addchstr` | NCURSES.WINDOW.ATTR | Writes a chtype array (char+attr) at the cursor without advancing, clipped at the margin; char+attr matched to ncurses via winch. |
| `mvwaddnstr` | Add string (curs_addstr) | `window::Window::addstr` | NCURSES.WINDOW.STATE | Adds a byte string into the cell grid via addch; state matched to ncurses by winch readback. The n-variants' length limit is the caller's slice. |
| `mvwaddstr` | Add string (curs_addstr) | `window::Window::addstr` | NCURSES.WINDOW.STATE | Adds a byte string into the cell grid via addch; state matched to ncurses by winch readback. The n-variants' length limit is the caller's slice. |
| `mvwchgat` | Attributes (curs_attr) | `window::Window::chgat` | NCURSES.WINDOW.ATTR | Changes the attributes of n cells at the cursor (chars unchanged); matched to ncurses via winch. |
| `mvwdelch` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::delch` | NCURSES.WINDOW.STATE | Deletes the char at the cursor, shifting the line left (last col blank); state matched by winch readback. |
| `mvwhline` | Borders & lines (curs_border) | `window::Window::hline` | NCURSES.WINDOW.STATE | Draws a horizontal line of n chars (0 = ACS_HLINE), clipped at the right edge; state matched by winch readback. |
| `mvwin` | Window create & manage (curs_window) | `window::Window::mvwin` | NCURSES.WINDOW.GEOMETRY | Moves the window's top-left corner; geometry matched by the court. |
| `mvwinch` | Read from window (curs_inch / instr) | `window::Window::inch` | NCURSES.WINDOW.STATE | Reads a cell's character from the window grid; the court reads ncurses back the same way. Attribute/chtype bits are not modelled. |
| `mvwinnstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Reads characters from the cursor to end of row; the cells it returns are validated by the window-state court. |
| `mvwinsch` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insch` | NCURSES.WINDOW.STATE | Inserts a char at the cursor, shifting the line right (last col lost); state matched by winch readback. |
| `mvwinsnstr` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insstr` | NCURSES.WINDOW.STATE | Inserts a string at the cursor (line shifts right; cursor stays); state matched by winch readback. The n-variants' limit is the caller's slice. |
| `mvwinsstr` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insstr` | NCURSES.WINDOW.STATE | Inserts a string at the cursor (line shifts right; cursor stays); state matched by winch readback. The n-variants' limit is the caller's slice. |
| `mvwinstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Reads characters from the cursor to end of row; the cells it returns are validated by the window-state court. |
| `mvwvline` | Borders & lines (curs_border) | `window::Window::vline` | NCURSES.WINDOW.STATE | Draws a vertical line of n chars (0 = ACS_VLINE), clipped at the bottom; state matched by winch readback. |
| `newpad` | Pads (curs_pad) | `window::Window::newpad` | NCURSES.WINDOW.GEOMETRY | Creates a pad (a window with no screen association); geometry + is_pad matched by the geometry court. |
| `newpad_sp` | Pads (curs_pad) | `window::Window::newpad` | NCURSES.WINDOW.GEOMETRY | Creates a pad (a window with no screen association); geometry + is_pad matched by the geometry court. |
| `newwin` | Window create & manage (curs_window) | `window::Window::newwin` | NCURSES.WINDOW.GEOMETRY | Creates a blank window of given size at a screen position; geometry matched by the geometry court. |
| `newwin_sp` | Window create & manage (curs_window) | `window::Window::newwin` | NCURSES.WINDOW.GEOMETRY | Same as newwin; the _sp screen-pointer variant is not modelled. |
| `pair_content` | Color (curs_color) | `color::Palette::pair_content` | NCURSES.COLOR.PAIR | Returns a pair's (fg,bg); matched to ncurses (incl. default pair 0 = 7,0). |
| `pair_content_sp` | Color (curs_color) | `color::Palette::pair_content` | NCURSES.COLOR.PAIR | Returns a pair's (fg,bg); matched to ncurses (incl. default pair 0 = 7,0). |
| `refresh` | Refresh & doupdate (curs_refresh) | `update::Screen::doupdate` | NCURSES.DOUPDATE | wrefresh(stdscr) = wnoutrefresh + doupdate; the doupdate plain-text screen-diff is reproduced byte-exact for the courted scenarios (NCURSES.DOUPDATE). The wnoutrefresh window-to-newscr copy and pad/sub-window clipping are modeled by the Window cell grid, not yet courted end-to-end. |
| `restartterm` | Terminfo & termcap (curs_terminfo / termcap) | `terminfo::Terminfo::load` | NCURSES.TERMINFO.ECOLOGY | Re-reads the entry for a term name via the same loader; full restartterm tty/mode restoration is not modeled. |
| `restartterm_sp` | Terminfo & termcap (curs_terminfo / termcap) | `terminfo::Terminfo::load` | NCURSES.TERMINFO.ECOLOGY | Re-reads the entry for a term name via the same loader; full restartterm tty/mode restoration is not modeled. |
| `setupterm` | Terminfo & termcap (curs_terminfo / termcap) | `terminfo::Terminfo::load` | NCURSES.TERMINFO.ECOLOGY | Reconstructs the load-by-$TERM + compiled-entry parse path; matched against ncurses across 9 terminals (incl. the 32-bit-number format). Runtime cur_term/baud/mode setup and use_env cols/lines augmentation are not modeled (non-claim). |
| `slk_label` | Soft labels (curs_slk) | `slk::SoftLabels::label` | NCURSES.SLK | Returns the stored label truncated to the label width; matched to ncurses (80 cols). |
| `slk_label_sp` | Soft labels (curs_slk) | `slk::SoftLabels::label` | NCURSES.SLK | Returns the stored label truncated to the label width; matched to ncurses (80 cols). |
| `slk_set` | Soft labels (curs_slk) | `slk::SoftLabels::set` | NCURSES.SLK | Stores a soft label; slk_label read-back matched to ncurses. |
| `slk_set_sp` | Soft labels (curs_slk) | `slk::SoftLabels::set` | NCURSES.SLK | Stores a soft label; slk_label read-back matched to ncurses. |
| `standend` | Attributes (curs_attr) | `window::Window::standend` | NCURSES.WINDOW.ATTR | Turns all attributes off; matched via winch. |
| `standout` | Attributes (curs_attr) | `window::Window::standout` | NCURSES.WINDOW.ATTR | Turns on A_STANDOUT; matched via winch. |
| `subpad` | Pads (curs_pad) | `window::Window::subpad` | NCURSES.WINDOW.GEOMETRY | Sub-pad at a parent-relative position; geometry matched by the court. |
| `subwin` | Window create & manage (curs_window) | `window::Window::subwin` | NCURSES.WINDOW.GEOMETRY | Child window at a screen-absolute position; geometry matched by the court. Shared parent cells are not modelled. |
| `tgetent` | Terminfo & termcap (curs_terminfo / termcap) | `terminfo::Terminfo::load` | NCURSES.TERMCAP | Loads the entry by name via the database loader; full tgetent buffer/area semantics and termcap-file fallback not modeled. |
| `tgetent_sp` | Terminfo & termcap (curs_terminfo / termcap) | `terminfo::Terminfo::load` | NCURSES.TERMCAP | Loads the entry by name via the database loader; full tgetent buffer/area semantics and termcap-file fallback not modeled. |
| `tiparm` | Terminfo & termcap (curs_terminfo / termcap) | `terminfo::tparm` | NCURSES.TPARM | Shares the tparm evaluator (byte output identical for these caps); tiparm's explicit-typed variadic API is not separately reconstructed/courted. |
| `tiparm_s` | Terminfo & termcap (curs_terminfo / termcap) | `terminfo::tparm` | NCURSES.TPARM | Bounded-buffer variant of tiparm; shares the tparm evaluator (identical bytes for these caps). The explicit buffer-size-limit API is not separately modelled. |
| `vidattr` | Attributes (curs_attr) | `vid::Vid::set` | NCURSES.DOUPDATE | Clean-room reproduction of vidputs/_nc_do_color (the SGR attribute + color-pair transition state machine) in vid::Vid, built on the byte-exact tparm and the color Palette. Verified byte-exact against real ncurses for bold/underline/reverse and the ANSI color pairs, integrated into and courted via doupdate (NCURSES.DOUPDATE). Italic/altcharset/xmc/ncv and use_default_colors are not modeled. |
| `vidattr_sp` | Attributes (curs_attr) | `vid::Vid::set` | NCURSES.DOUPDATE | Clean-room reproduction of vidputs/_nc_do_color (the SGR attribute + color-pair transition state machine) in vid::Vid, built on the byte-exact tparm and the color Palette. Verified byte-exact against real ncurses for bold/underline/reverse and the ANSI color pairs, integrated into and courted via doupdate (NCURSES.DOUPDATE). Italic/altcharset/xmc/ncv and use_default_colors are not modeled. |
| `vidputs` | Attributes (curs_attr) | `vid::Vid::set` | NCURSES.DOUPDATE | Clean-room reproduction of vidputs/_nc_do_color (the SGR attribute + color-pair transition state machine) in vid::Vid, built on the byte-exact tparm and the color Palette. Verified byte-exact against real ncurses for bold/underline/reverse and the ANSI color pairs, integrated into and courted via doupdate (NCURSES.DOUPDATE). Italic/altcharset/xmc/ncv and use_default_colors are not modeled. |
| `vidputs_sp` | Attributes (curs_attr) | `vid::Vid::set` | NCURSES.DOUPDATE | Clean-room reproduction of vidputs/_nc_do_color (the SGR attribute + color-pair transition state machine) in vid::Vid, built on the byte-exact tparm and the color Palette. Verified byte-exact against real ncurses for bold/underline/reverse and the ANSI color pairs, integrated into and courted via doupdate (NCURSES.DOUPDATE). Italic/altcharset/xmc/ncv and use_default_colors are not modeled. |
| `vline` | Borders & lines (curs_border) | `window::Window::vline` | NCURSES.WINDOW.STATE | Draws a vertical line of n chars (0 = ACS_VLINE), clipped at the bottom; state matched by winch readback. |
| `waddch` | Add character (curs_addch) | `window::Window::addch` | NCURSES.WINDOW.STATE | Writes a printable char/newline into the window cell grid (wrap/clear-to-EOL/clip); state matched to ncurses by winch readback. |
| `waddchnstr` | Add chstr (curs_addchstr) | `window::Window::addchstr` | NCURSES.WINDOW.ATTR | Writes a chtype array (char+attr) at the cursor without advancing, clipped at the margin; char+attr matched to ncurses via winch. |
| `waddchstr` | Add chstr (curs_addchstr) | `window::Window::addchstr` | NCURSES.WINDOW.ATTR | Writes a chtype array (char+attr) at the cursor without advancing, clipped at the margin; char+attr matched to ncurses via winch. |
| `waddnstr` | Add string (curs_addstr) | `window::Window::addstr` | NCURSES.WINDOW.STATE | Adds a byte string into the cell grid via addch; state matched to ncurses by winch readback. The n-variants' length limit is the caller's slice. |
| `waddstr` | Add string (curs_addstr) | `window::Window::addstr` | NCURSES.WINDOW.STATE | Adds a byte string into the cell grid via addch; state matched to ncurses by winch readback. The n-variants' length limit is the caller's slice. |
| `wattr_get` | Attributes (curs_attr) | `window::Window::attr_get` | NCURSES.WINDOW.ATTR | Returns the active attributes. |
| `wattr_off` | Attributes (curs_attr) | `window::Window::attroff` | NCURSES.WINDOW.ATTR | Turns attribute bits off; cell attributes matched to ncurses via winch. |
| `wattr_on` | Attributes (curs_attr) | `window::Window::attron` | NCURSES.WINDOW.ATTR | Turns attribute bits on for subsequent writes; cell attributes matched to ncurses A_* via winch. |
| `wattr_set` | Attributes (curs_attr) | `window::Window::attrset` | NCURSES.WINDOW.ATTR | Sets the active attributes; cell attributes matched to ncurses via winch. |
| `wattroff` | Attributes (curs_attr) | `window::Window::attroff` | NCURSES.WINDOW.ATTR | Turns attribute bits off; cell attributes matched to ncurses via winch. |
| `wattron` | Attributes (curs_attr) | `window::Window::attron` | NCURSES.WINDOW.ATTR | Turns attribute bits on for subsequent writes; cell attributes matched to ncurses A_* via winch. |
| `wattrset` | Attributes (curs_attr) | `window::Window::attrset` | NCURSES.WINDOW.ATTR | Sets the active attributes; cell attributes matched to ncurses via winch. |
| `wborder` | Borders & lines (curs_border) | `window::Window::border` | NCURSES.WINDOW.STATE | Draws a border into the cell grid (sides + corners, 0 = ACS default); state matched by winch readback. |
| `wchgat` | Attributes (curs_attr) | `window::Window::chgat` | NCURSES.WINDOW.ATTR | Changes the attributes of n cells at the cursor (chars unchanged); matched to ncurses via winch. |
| `wclear` | Erase (curs_clear) | `screen::clear` | NCURSES.CAP.CLEAR | Same clear_screen bytes; no WINDOW model. |
| `wclrtobot` | Erase (curs_clear) | `screen::clr_eos` | NCURSES.CAP.ED | Same ed bytes; no WINDOW model. |
| `wclrtoeol` | Erase (curs_clear) | `screen::clr_eol` | NCURSES.CAP.EL | Same el bytes; no WINDOW model. |
| `wcolor_set` | Color (curs_color) | `window::Window::color_set` | NCURSES.WINDOW.ATTR | Sets the active colour pair on the cell grid; matched to ncurses via winch colour bits. |
| `wdelch` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::delch` | NCURSES.WINDOW.STATE | Deletes the char at the cursor, shifting the line left (last col blank); state matched by winch readback. |
| `wdeleteln` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::deleteln` | NCURSES.WINDOW.STATE | Deletes the cursor line, shifting lower lines up (bottom blank); state matched by winch readback. |
| `wenclose` | Mouse (curs_mouse) | `window::Window::wenclose` | NCURSES.MOUSE.TRAFO | Whether a screen point is within the window; matched to ncurses. |
| `werase` | Erase (curs_clear) | `window::Window::erase` | NCURSES.WINDOW.STATE | Clears the window cell grid to blanks; emits no immediate bytes and the resulting grid is matched to ncurses by the window-state court. |
| `wgetch` | Input: characters & strings (curs_getch / getstr / scanw) | `input::KeyMap::decode` | NCURSES.INPUT | The key-decoding half of wgetch is reconstructed: input::KeyMap::decode maps a buffered byte stream to the KEY_* code sequence ncurses returns (longest-match trie traversal), courted byte-for-byte against real ncurses (NCURSES.INPUT). The read-timing/raw-mode loop is deferred to the ncurses-terminal crate. |
| `whline` | Borders & lines (curs_border) | `window::Window::hline` | NCURSES.WINDOW.STATE | Draws a horizontal line of n chars (0 = ACS_HLINE), clipped at the right edge; state matched by winch readback. |
| `winch` | Read from window (curs_inch / instr) | `window::Window::inch` | NCURSES.WINDOW.STATE | Reads a cell's character from the window grid; the court reads ncurses back the same way. Attribute/chtype bits are not modelled. |
| `winnstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Reads characters from the cursor to end of row; the cells it returns are validated by the window-state court. |
| `winsch` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insch` | NCURSES.WINDOW.STATE | Inserts a char at the cursor, shifting the line right (last col lost); state matched by winch readback. |
| `winsdelln` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insdelln` | NCURSES.WINDOW.STATE | Inserts/deletes n lines at the cursor row; state matched by winch readback. |
| `winsertln` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insertln` | NCURSES.WINDOW.STATE | Inserts a blank line at the cursor row, shifting lower lines down (bottom lost); state matched by winch readback. |
| `winsnstr` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insstr` | NCURSES.WINDOW.STATE | Inserts a string at the cursor (line shifts right; cursor stays); state matched by winch readback. The n-variants' limit is the caller's slice. |
| `winsstr` | Insert / delete (curs_insch / insstr / deleteln) | `window::Window::insstr` | NCURSES.WINDOW.STATE | Inserts a string at the cursor (line shifts right; cursor stays); state matched by winch readback. The n-variants' limit is the caller's slice. |
| `winstr` | Read from window (curs_inch / instr) | `window::Window::instr` | NCURSES.WINDOW.STATE | Reads characters from the cursor to end of row; the cells it returns are validated by the window-state court. |
| `wmouse_trafo` | Mouse (curs_mouse) | `window::Window::mouse_trafo` | NCURSES.MOUSE.TRAFO | Window<->screen coordinate transform with enclosure check; matched to ncurses. |
| `wmove` | Cursor move & optimizer (curs_move / mvcur) | `window::Window::move_to` | NCURSES.WINDOW.STATE | Sets the window's logical cursor position; emits no bytes and the resulting position is matched to ncurses by the window-state court. |
| `wnoutrefresh` | Refresh & doupdate (curs_refresh) | `update::Screen::doupdate` | NCURSES.DOUPDATE | The newscr assembly feeds the same byte-exact doupdate diff (NCURSES.DOUPDATE). Full WINDOW-to-newscr copy semantics (clipping, leaveok, immedok) are partial. |
| `wrefresh` | Refresh & doupdate (curs_refresh) | `update::Screen::doupdate` | NCURSES.DOUPDATE | wnoutrefresh + doupdate; the doupdate plain-text screen-diff is byte-exact for the courted scenarios (NCURSES.DOUPDATE), reusing the byte-exact mvcur. |
| `wresize` | Window create & manage (curs_window) | `window::Window::wresize` | NCURSES.WINDOW.GEOMETRY | Resizes the window (preserving top-left content); geometry matched by the court. |
| `wstandend` | Attributes (curs_attr) | `window::Window::standend` | NCURSES.WINDOW.ATTR | Turns all attributes off; matched via winch. |
| `wstandout` | Attributes (curs_attr) | `window::Window::standout` | NCURSES.WINDOW.ATTR | Turns on A_STANDOUT; matched via winch. |
| `wvline` | Borders & lines (curs_border) | `window::Window::vline` | NCURSES.WINDOW.STATE | Draws a vertical line of n chars (0 = ACS_VLINE), clipped at the bottom; state matched by winch readback. |

## deferred — no immediate output (effect realised at refresh) (42 functions)

| ncurses fn | group | native counterpart | court(s) | gap note |
|---|---|---|---|---|
| `bkgd` | Background (curs_bkgd) | — | NCURSES.BKGD.NOOUTPUT | Sets a window's background char+attribute in memory; emits no immediate terminal bytes (shown by a later refresh). Proven empty-output. |
| `bkgdset` | Background (curs_bkgd) | — | NCURSES.BKGD.NOOUTPUT | Sets a window's background char+attribute in memory; emits no immediate terminal bytes (shown by a later refresh). Proven empty-output. |
| `clearok` | Erase (curs_clear) | — | NCURSES.ERASE.NOOUTPUT | Sets the force-clear flag and emits nothing; the next refresh emits clear_screen. |
| `copywin` | Overlap (curs_overlay) | — | NCURSES.OVERLAY.NOOUTPUT | Rectangle copy between windows in memory; emits nothing, effect deferred to refresh. |
| `idcok` | Scroll & output options (curs_scroll / outopts) | — | NCURSES.SCROLL.NOOUTPUT | Sets an output-option flag / scroll region, or scrolls window contents in memory; emits no immediate terminal bytes (output at the next refresh). Proven empty-output. |
| `idlok` | Scroll & output options (curs_scroll / outopts) | — | NCURSES.SCROLL.NOOUTPUT | Sets an output-option flag / scroll region, or scrolls window contents in memory; emits no immediate terminal bytes (output at the next refresh). Proven empty-output. |
| `immedok` | Scroll & output options (curs_scroll / outopts) | — | NCURSES.SCROLL.NOOUTPUT | Sets an output-option flag / scroll region, or scrolls window contents in memory; emits no immediate terminal bytes (output at the next refresh). Proven empty-output. |
| `leaveok` | Scroll & output options (curs_scroll / outopts) | — | NCURSES.SCROLL.NOOUTPUT | Sets an output-option flag / scroll region, or scrolls window contents in memory; emits no immediate terminal bytes (output at the next refresh). Proven empty-output. |
| `overlay` | Overlap (curs_overlay) | — | NCURSES.OVERLAY.NOOUTPUT | Copies non-blank cells from one window to another in memory and emits nothing; the result is shown by a later refresh. |
| `overwrite` | Overlap (curs_overlay) | — | NCURSES.OVERLAY.NOOUTPUT | Copies all cells from one window to another in memory and emits nothing; effect deferred to refresh. |
| `redrawwin` | Refresh & doupdate (curs_refresh) | — | NCURSES.REFRESH.NOOUTPUT | Marks a window/line range for full repaint on the next refresh; emits no immediate terminal bytes (proven empty-output). |
| `resize_term` | Resize & threads (resizeterm / threads) | — | NCURSES.RESIZE.NOOUTPUT | Resizes the screen/window structures in memory; emits no immediate terminal bytes (repaint at the next refresh). Proven empty-output. |
| `resize_term_sp` | Resize & threads (resizeterm / threads) | — | NCURSES.RESIZE.NOOUTPUT | Resizes the screen/window structures in memory; emits no immediate terminal bytes (repaint at the next refresh). Proven empty-output. |
| `resizeterm` | Resize & threads (resizeterm / threads) | — | NCURSES.RESIZE.NOOUTPUT | Resizes the screen/window structures in memory; emits no immediate terminal bytes (repaint at the next refresh). Proven empty-output. |
| `resizeterm_sp` | Resize & threads (resizeterm / threads) | — | NCURSES.RESIZE.NOOUTPUT | Resizes the screen/window structures in memory; emits no immediate terminal bytes (repaint at the next refresh). Proven empty-output. |
| `scrl` | Scroll & output options (curs_scroll / outopts) | — | NCURSES.SCROLL.NOOUTPUT | Sets an output-option flag / scroll region, or scrolls window contents in memory; emits no immediate terminal bytes (output at the next refresh). Proven empty-output. |
| `scroll` | Scroll & output options (curs_scroll / outopts) | — | NCURSES.SCROLL.NOOUTPUT | Sets an output-option flag / scroll region, or scrolls window contents in memory; emits no immediate terminal bytes (output at the next refresh). Proven empty-output. |
| `scrollok` | Scroll & output options (curs_scroll / outopts) | — | NCURSES.SCROLL.NOOUTPUT | Sets an output-option flag / scroll region, or scrolls window contents in memory; emits no immediate terminal bytes (output at the next refresh). Proven empty-output. |
| `setscrreg` | Scroll & output options (curs_scroll / outopts) | — | NCURSES.SCROLL.NOOUTPUT | Sets an output-option flag / scroll region, or scrolls window contents in memory; emits no immediate terminal bytes (output at the next refresh). Proven empty-output. |
| `slk_clear` | Soft labels (curs_slk) | — | NCURSES.SLK.NOOUTPUT | Touch/clear/restore/refresh of the label line emit no immediate terminal bytes; the line is rendered at the buffered doupdate (a seed). Proven empty-output. |
| `slk_clear_sp` | Soft labels (curs_slk) | — | NCURSES.SLK.NOOUTPUT | Touch/clear/restore/refresh of the label line emit no immediate terminal bytes; the line is rendered at the buffered doupdate (a seed). Proven empty-output. |
| `slk_noutrefresh` | Soft labels (curs_slk) | — | NCURSES.SLK.NOOUTPUT | Touch/clear/restore/refresh of the label line emit no immediate terminal bytes; the line is rendered at the buffered doupdate (a seed). Proven empty-output. |
| `slk_noutrefresh_sp` | Soft labels (curs_slk) | — | NCURSES.SLK.NOOUTPUT | Touch/clear/restore/refresh of the label line emit no immediate terminal bytes; the line is rendered at the buffered doupdate (a seed). Proven empty-output. |
| `slk_refresh` | Soft labels (curs_slk) | — | NCURSES.SLK.NOOUTPUT | Touch/clear/restore/refresh of the label line emit no immediate terminal bytes; the line is rendered at the buffered doupdate (a seed). Proven empty-output. |
| `slk_refresh_sp` | Soft labels (curs_slk) | — | NCURSES.SLK.NOOUTPUT | Touch/clear/restore/refresh of the label line emit no immediate terminal bytes; the line is rendered at the buffered doupdate (a seed). Proven empty-output. |
| `slk_restore` | Soft labels (curs_slk) | — | NCURSES.SLK.NOOUTPUT | Touch/clear/restore/refresh of the label line emit no immediate terminal bytes; the line is rendered at the buffered doupdate (a seed). Proven empty-output. |
| `slk_restore_sp` | Soft labels (curs_slk) | — | NCURSES.SLK.NOOUTPUT | Touch/clear/restore/refresh of the label line emit no immediate terminal bytes; the line is rendered at the buffered doupdate (a seed). Proven empty-output. |
| `slk_touch` | Soft labels (curs_slk) | — | NCURSES.SLK.NOOUTPUT | Touch/clear/restore/refresh of the label line emit no immediate terminal bytes; the line is rendered at the buffered doupdate (a seed). Proven empty-output. |
| `slk_touch_sp` | Soft labels (curs_slk) | — | NCURSES.SLK.NOOUTPUT | Touch/clear/restore/refresh of the label line emit no immediate terminal bytes; the line is rendered at the buffered doupdate (a seed). Proven empty-output. |
| `syncok` | Touch & sync (curs_touch) | — | NCURSES.TOUCH.NOOUTPUT | Marks window lines dirty/in-sync in memory; emits no immediate terminal bytes (repaint is the next refresh's job). Proven empty-output. |
| `touchline` | Touch & sync (curs_touch) | — | NCURSES.TOUCH.NOOUTPUT | Marks window lines dirty/in-sync in memory; emits no immediate terminal bytes (repaint is the next refresh's job). Proven empty-output. |
| `touchwin` | Touch & sync (curs_touch) | — | NCURSES.TOUCH.NOOUTPUT | Marks window lines dirty/in-sync in memory; emits no immediate terminal bytes (repaint is the next refresh's job). Proven empty-output. |
| `untouchwin` | Touch & sync (curs_touch) | — | NCURSES.TOUCH.NOOUTPUT | Marks window lines dirty/in-sync in memory; emits no immediate terminal bytes (repaint is the next refresh's job). Proven empty-output. |
| `wbkgd` | Background (curs_bkgd) | — | NCURSES.BKGD.NOOUTPUT | Sets a window's background char+attribute in memory; emits no immediate terminal bytes (shown by a later refresh). Proven empty-output. |
| `wbkgdset` | Background (curs_bkgd) | — | NCURSES.BKGD.NOOUTPUT | Sets a window's background char+attribute in memory; emits no immediate terminal bytes (shown by a later refresh). Proven empty-output. |
| `wcursyncup` | Touch & sync (curs_touch) | — | NCURSES.TOUCH.NOOUTPUT | Marks window lines dirty/in-sync in memory; emits no immediate terminal bytes (repaint is the next refresh's job). Proven empty-output. |
| `wredrawln` | Refresh & doupdate (curs_refresh) | — | NCURSES.REFRESH.NOOUTPUT | Marks a window/line range for full repaint on the next refresh; emits no immediate terminal bytes (proven empty-output). |
| `wscrl` | Scroll & output options (curs_scroll / outopts) | — | NCURSES.SCROLL.NOOUTPUT | Sets an output-option flag / scroll region, or scrolls window contents in memory; emits no immediate terminal bytes (output at the next refresh). Proven empty-output. |
| `wsetscrreg` | Scroll & output options (curs_scroll / outopts) | — | NCURSES.SCROLL.NOOUTPUT | Sets an output-option flag / scroll region, or scrolls window contents in memory; emits no immediate terminal bytes (output at the next refresh). Proven empty-output. |
| `wsyncdown` | Touch & sync (curs_touch) | — | NCURSES.TOUCH.NOOUTPUT | Marks window lines dirty/in-sync in memory; emits no immediate terminal bytes (repaint is the next refresh's job). Proven empty-output. |
| `wsyncup` | Touch & sync (curs_touch) | — | NCURSES.TOUCH.NOOUTPUT | Marks window lines dirty/in-sync in memory; emits no immediate terminal bytes (repaint is the next refresh's job). Proven empty-output. |
| `wtouchln` | Touch & sync (curs_touch) | — | NCURSES.TOUCH.NOOUTPUT | Marks window lines dirty/in-sync in memory; emits no immediate terminal bytes (repaint is the next refresh's job). Proven empty-output. |

## n_a — no terminal-output contract (out of byte-output scope) (202 functions)

| ncurses fn | group | native counterpart | court(s) | gap note |
|---|---|---|---|---|
| `_traceattr` | Trace (curs_trace) | — | — | Writes diagnostic trace to the ncurses debug file (when tracing is enabled), not the terminal display; no terminal-output contract. |
| `_traceattr2` | Trace (curs_trace) | — | — | Writes diagnostic trace to the ncurses debug file (when tracing is enabled), not the terminal display; no terminal-output contract. |
| `_tracechar` | Trace (curs_trace) | — | — | Writes diagnostic trace to the ncurses debug file (when tracing is enabled), not the terminal display; no terminal-output contract. |
| `_tracechtype` | Trace (curs_trace) | — | — | Writes diagnostic trace to the ncurses debug file (when tracing is enabled), not the terminal display; no terminal-output contract. |
| `_tracechtype2` | Trace (curs_trace) | — | — | Writes diagnostic trace to the ncurses debug file (when tracing is enabled), not the terminal display; no terminal-output contract. |
| `_tracef` | Trace (curs_trace) | — | — | Writes diagnostic trace to the ncurses debug file (when tracing is enabled), not the terminal display; no terminal-output contract. |
| `assume_default_colors` | Color (curs_color) | — | — | Configures default (-1) colours; library state with no immediate terminal output. |
| `assume_default_colors_sp` | Color (curs_color) | — | — | Configures default (-1) colours; library state with no immediate terminal output. |
| `baudrate` | Terminal queries (curs_termattrs) | — | — | Queries the live terminal's tty/termios state (baud / erase / kill char), not terminfo; no terminal-output contract for a byte reconstruction. |
| `baudrate_sp` | Terminal queries (curs_termattrs) | — | — | Queries the live terminal's tty/termios state (baud / erase / kill char), not terminfo; no terminal-output contract for a byte reconstruction. |
| `cbreak` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `cbreak_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `curses_trace` | Trace (curs_trace) | — | — | Writes diagnostic trace to the ncurses debug file (when tracing is enabled), not the terminal display; no terminal-output contract. |
| `curses_version` | Terminal queries (curs_termattrs) | — | — | Returns the curses library identity/version string; not a terminal capability and no terminal-output contract. |
| `def_prog_mode` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `def_prog_mode_sp` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `def_shell_mode` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `def_shell_mode_sp` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `define_key` | Input options & key handling (curs_inopts / util) | — | — | Key-binding registry management/query (enable/define/look up a key); no terminal-output contract. |
| `define_key_sp` | Input options & key handling (curs_inopts / util) | — | — | Key-binding registry management/query (enable/define/look up a key); no terminal-output contract. |
| `del_curterm` | Terminfo & termcap (curs_terminfo / termcap) | — | — | Manages/frees the global cur_term; ncurses-native uses owned Terminfo values, so there is no global pointer to set/delete/free and no terminal output to emit. |
| `del_curterm_sp` | Terminfo & termcap (curs_terminfo / termcap) | — | — | Manages/frees the global cur_term; ncurses-native uses owned Terminfo values, so there is no global pointer to set/delete/free and no terminal output to emit. |
| `delay_output` | Library config & util (curs_util / extensions) | — | — | Output-timing delay; like tputs padding it emits no bytes on the admitted xterm/normal-baud environment. |
| `delay_output_sp` | Library config & util (curs_util / extensions) | — | — | Output-timing delay; like tputs padding it emits no bytes on the admitted xterm/normal-baud environment. |
| `delscreen` | Screen init & teardown (curs_initscr) | — | — | Global SCREEN management (select/free/pre-allocate); no terminal-output contract in the owned-value model. |
| `delwin` | Window create & manage (curs_window) | — | — | Frees a window; ncurses-native uses owned Window values (dropped normally), so there is nothing to emit. |
| `echo` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `echo_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `erasechar` | Terminal queries (curs_termattrs) | — | — | Queries the live terminal's tty/termios state (baud / erase / kill char), not terminfo; no terminal-output contract for a byte reconstruction. |
| `erasechar_sp` | Terminal queries (curs_termattrs) | — | — | Queries the live terminal's tty/termios state (baud / erase / kill char), not terminfo; no terminal-output contract for a byte reconstruction. |
| `exit_terminfo` | Terminfo & termcap (curs_terminfo / termcap) | — | — | Manages/frees the global cur_term; ncurses-native uses owned Terminfo values, so there is no global pointer to set/delete/free and no terminal output to emit. |
| `extended_slk_color` | Color (curs_color) | — | — | Soft-label colour (extended); label-line attribute state, no immediate terminal output. |
| `extended_slk_color_sp` | Color (curs_color) | — | — | Soft-label colour (extended); label-line attribute state, no immediate terminal output. |
| `filter` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `filter_sp` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `flushinp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `flushinp_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `get_escdelay` | Library config & util (curs_util / extensions) | — | — | Pure query of the ESC-sequence read delay; no terminal-output contract. |
| `get_escdelay_sp` | Library config & util (curs_util / extensions) | — | — | Pure query of the ESC-sequence read delay; no terminal-output contract. |
| `getbkgd` | Background (curs_bkgd) | — | — | Pure query returning a window's background char+attribute; no terminal-output contract. |
| `getmouse` | Mouse (curs_mouse) | — | — | Interactive mouse-event queue (read/push a decoded event); no deterministic terminal-output to reconstruct. |
| `getmouse_sp` | Mouse (curs_mouse) | — | — | Interactive mouse-event queue (read/push a decoded event); no deterministic terminal-output to reconstruct. |
| `getnstr` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `getstr` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `getwin` | Screen dump (curs_scr_dump) | — | — | Serializes/loads a window or screen to/from a file in ncurses' private save format; not terminal-display output (the crate's scope). |
| `getwin_sp` | Screen dump (curs_scr_dump) | — | — | Serializes/loads a window or screen to/from a file in ncurses' private save format; not terminal-display output (the crate's scope). |
| `halfdelay` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `halfdelay_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `has_mouse` | Mouse (curs_mouse) | — | — | Runtime query: whether a mouse is currently enabled/detected (depends on mousemask), not a terminfo-only property. |
| `has_mouse_sp` | Mouse (curs_mouse) | — | — | Runtime query: whether a mouse is currently enabled/detected (depends on mousemask), not a terminfo-only property. |
| `init_color` | Color (curs_color) | — | — | Redefines a colour's rgb; requires can_change_color (false on the admitted xterm), so it is a no-op with no terminal output. |
| `init_color_sp` | Color (curs_color) | — | — | Redefines a colour's rgb; requires can_change_color (false on the admitted xterm), so it is a no-op with no terminal output. |
| `init_extended_color` | Color (curs_color) | — | — | Redefines a colour's rgb; requires can_change_color (false on the admitted xterm), so it is a no-op with no terminal output. |
| `init_extended_color_sp` | Color (curs_color) | — | — | Redefines a colour's rgb; requires can_change_color (false on the admitted xterm), so it is a no-op with no terminal output. |
| `intrflush` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `intrflush_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `is_cbreak` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `is_cbreak_sp` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `is_cleared` | Erase (curs_clear) | — | — | Pure query returning the clearok flag; no terminal-output contract for a byte reconstruction to emit. |
| `is_echo` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `is_echo_sp` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `is_idcok` | Scroll & output options (curs_scroll / outopts) | — | — | Pure query of an output-option flag / scroll region; no terminal-output contract. |
| `is_idlok` | Scroll & output options (curs_scroll / outopts) | — | — | Pure query of an output-option flag / scroll region; no terminal-output contract. |
| `is_immedok` | Scroll & output options (curs_scroll / outopts) | — | — | Pure query of an output-option flag / scroll region; no terminal-output contract. |
| `is_keypad` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `is_leaveok` | Scroll & output options (curs_scroll / outopts) | — | — | Pure query of an output-option flag / scroll region; no terminal-output contract. |
| `is_linetouched` | Touch & sync (curs_touch) | — | — | Pure query of window touch/sync state; no terminal-output contract. |
| `is_nl` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `is_nl_sp` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `is_nodelay` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `is_notimeout` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `is_raw` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `is_raw_sp` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `is_scrollok` | Scroll & output options (curs_scroll / outopts) | — | — | Pure query of an output-option flag / scroll region; no terminal-output contract. |
| `is_syncok` | Touch & sync (curs_touch) | — | — | Pure query of window touch/sync state; no terminal-output contract. |
| `is_term_resized` | Resize & threads (resizeterm / threads) | — | — | Pure query: whether a resize to the given size would change anything; no terminal output. |
| `is_term_resized_sp` | Resize & threads (resizeterm / threads) | — | — | Pure query: whether a resize to the given size would change anything; no terminal output. |
| `is_wintouched` | Touch & sync (curs_touch) | — | — | Pure query of window touch/sync state; no terminal-output contract. |
| `isendwin` | Screen init & teardown (curs_initscr) | — | — | Pure query: whether endwin has been called; no terminal-output contract. |
| `isendwin_sp` | Screen init & teardown (curs_initscr) | — | — | Pure query: whether endwin has been called; no terminal-output contract. |
| `keybound` | Input options & key handling (curs_inopts / util) | — | — | Key-binding registry management/query (enable/define/look up a key); no terminal-output contract. |
| `keybound_sp` | Input options & key handling (curs_inopts / util) | — | — | Key-binding registry management/query (enable/define/look up a key); no terminal-output contract. |
| `keyok` | Input options & key handling (curs_inopts / util) | — | — | Key-binding registry management/query (enable/define/look up a key); no terminal-output contract. |
| `keyok_sp` | Input options & key handling (curs_inopts / util) | — | — | Key-binding registry management/query (enable/define/look up a key); no terminal-output contract. |
| `keypad` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `killchar` | Terminal queries (curs_termattrs) | — | — | Queries the live terminal's tty/termios state (baud / erase / kill char), not terminfo; no terminal-output contract for a byte reconstruction. |
| `killchar_sp` | Terminal queries (curs_termattrs) | — | — | Queries the live terminal's tty/termios state (baud / erase / kill char), not terminfo; no terminal-output contract for a byte reconstruction. |
| `mcprint` | Library config & util (curs_util / extensions) | — | — | Sends data to the printer via print-mode caps; targets a printer device, not the terminal display (xterm has no printer caps). |
| `mcprint_sp` | Library config & util (curs_util / extensions) | — | — | Sends data to the printer via print-mode caps; targets a printer device, not the terminal display (xterm has no printer caps). |
| `meta` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `mouseinterval` | Mouse (curs_mouse) | — | — | Gets/sets the click-resolution interval; runtime config with no terminal output. |
| `mouseinterval_sp` | Mouse (curs_mouse) | — | — | Gets/sets the click-resolution interval; runtime config with no terminal output. |
| `mousemask` | Mouse (curs_mouse) | — | — | Sets the reported mouse-event mask and enables tracking at runtime; the tracking sequence is emitted by a later refresh. |
| `mousemask_sp` | Mouse (curs_mouse) | — | — | Sets the reported mouse-event mask and enables tracking at runtime; the tracking sequence is emitted by a later refresh. |
| `mvgetch` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `mvgetnstr` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `mvgetstr` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `mvscanw` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `mvwgetch` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `mvwgetnstr` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `mvwgetstr` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `mvwscanw` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `napms` | Modes & terminal state (curs_kernel) | — | — | Millisecond sleep; a timing function with no terminal-output contract. |
| `napms_sp` | Modes & terminal state (curs_kernel) | — | — | Millisecond sleep; a timing function with no terminal-output contract. |
| `new_prescr` | Screen init & teardown (curs_initscr) | — | — | Global SCREEN management (select/free/pre-allocate); no terminal-output contract in the owned-value model. |
| `nl` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `nl_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `nocbreak` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `nocbreak_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `nodelay` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `noecho` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `noecho_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `nofilter` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `nofilter_sp` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `nonl` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `nonl_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `noqiflush` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `noqiflush_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `noraw` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `noraw_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `notimeout` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `putwin` | Screen dump (curs_scr_dump) | — | — | Serializes/loads a window or screen to/from a file in ncurses' private save format; not terminal-display output (the crate's scope). |
| `qiflush` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `qiflush_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `raw` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `raw_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `reset_color_pairs` | Color (curs_color) | — | — | Resets the colour-pair table; library state with no terminal output. |
| `reset_color_pairs_sp` | Color (curs_color) | — | — | Resets the colour-pair table; library state with no terminal output. |
| `reset_prog_mode` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `reset_prog_mode_sp` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `reset_shell_mode` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `reset_shell_mode_sp` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `resetty` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `resetty_sp` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `ripoffline` | Modes & terminal state (curs_kernel) | — | — | Reserves screen lines before initscr (a layout config call); no immediate terminal output. |
| `ripoffline_sp` | Modes & terminal state (curs_kernel) | — | — | Reserves screen lines before initscr (a layout config call); no immediate terminal output. |
| `savetty` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `savetty_sp` | Modes & terminal state (curs_kernel) | — | — | Saves/restores the tty's termios modes (tcgetattr/tcsetattr); manages terminal state with no terminal-output bytes to reconstruct. |
| `scanw` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `scr_dump` | Screen dump (curs_scr_dump) | — | — | Serializes/loads a window or screen to/from a file in ncurses' private save format; not terminal-display output (the crate's scope). |
| `scr_init` | Screen dump (curs_scr_dump) | — | — | Serializes/loads a window or screen to/from a file in ncurses' private save format; not terminal-display output (the crate's scope). |
| `scr_init_sp` | Screen dump (curs_scr_dump) | — | — | Serializes/loads a window or screen to/from a file in ncurses' private save format; not terminal-display output (the crate's scope). |
| `scr_restore` | Screen dump (curs_scr_dump) | — | — | Serializes/loads a window or screen to/from a file in ncurses' private save format; not terminal-display output (the crate's scope). |
| `scr_restore_sp` | Screen dump (curs_scr_dump) | — | — | Serializes/loads a window or screen to/from a file in ncurses' private save format; not terminal-display output (the crate's scope). |
| `scr_set` | Screen dump (curs_scr_dump) | — | — | Serializes/loads a window or screen to/from a file in ncurses' private save format; not terminal-display output (the crate's scope). |
| `scr_set_sp` | Screen dump (curs_scr_dump) | — | — | Serializes/loads a window or screen to/from a file in ncurses' private save format; not terminal-display output (the crate's scope). |
| `set_curterm` | Terminfo & termcap (curs_terminfo / termcap) | — | — | Manages/frees the global cur_term; ncurses-native uses owned Terminfo values, so there is no global pointer to set/delete/free and no terminal output to emit. |
| `set_curterm_sp` | Terminfo & termcap (curs_terminfo / termcap) | — | — | Manages/frees the global cur_term; ncurses-native uses owned Terminfo values, so there is no global pointer to set/delete/free and no terminal output to emit. |
| `set_escdelay` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `set_escdelay_sp` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `set_tabsize` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `set_tabsize_sp` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `set_term` | Screen init & teardown (curs_initscr) | — | — | Global SCREEN management (select/free/pre-allocate); no terminal-output contract in the owned-value model. |
| `slk_attr` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_attr_off` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_attr_on` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_attr_set` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_attr_set_sp` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_attr_sp` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_attroff` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_attroff_sp` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_attron` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_attron_sp` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_attrset` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_attrset_sp` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_color` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_color_sp` | Soft labels (curs_slk) | — | — | Soft-label attribute/colour state; no immediate terminal output (applied when the label line is rendered). |
| `slk_init` | Soft labels (curs_slk) | — | — | Selects the soft-label format before initscr; layout config with no terminal output. |
| `slk_init_sp` | Soft labels (curs_slk) | — | — | Selects the soft-label format before initscr; layout config with no terminal output. |
| `start_color` | Color (curs_color) | — | — | Initializes the colour subsystem; no immediate terminal output. |
| `start_color_sp` | Color (curs_color) | — | — | Initializes the colour subsystem; no immediate terminal output. |
| `termattrs` | Terminal queries (curs_termattrs) | — | — | Supported-video-attributes mask computed at the SCREEN(SP) level (0 without a screen); requires the screen model not present in the terminfo-only substrate. |
| `termattrs_sp` | Terminal queries (curs_termattrs) | — | — | Supported-video-attributes mask computed at the SCREEN(SP) level (0 without a screen); requires the screen model not present in the terminfo-only substrate. |
| `timeout` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `tiscan_s` | Terminfo & termcap (curs_terminfo / termcap) | — | — | Scans a format string for its parameter count/types (a safety/introspection helper); produces no terminal output to reconstruct. |
| `trace` | Trace (curs_trace) | — | — | Writes diagnostic trace to the ncurses debug file (when tracing is enabled), not the terminal display; no terminal-output contract. |
| `typeahead` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `typeahead_sp` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |
| `ungetch` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Pushes a character back onto the input queue; no terminal output. |
| `ungetch_sp` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Pushes a character back onto the input queue; no terminal output. |
| `ungetmouse` | Mouse (curs_mouse) | — | — | Interactive mouse-event queue (read/push a decoded event); no deterministic terminal-output to reconstruct. |
| `ungetmouse_sp` | Mouse (curs_mouse) | — | — | Interactive mouse-event queue (read/push a decoded event); no deterministic terminal-output to reconstruct. |
| `use_default_colors` | Color (curs_color) | — | — | Configures default (-1) colours; library state with no immediate terminal output. |
| `use_default_colors_sp` | Color (curs_color) | — | — | Configures default (-1) colours; library state with no immediate terminal output. |
| `use_env` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `use_env_sp` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `use_extended_names` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `use_legacy_coding` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `use_legacy_coding_sp` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `use_screen` | Resize & threads (resizeterm / threads) | — | — | Thread wrapper that runs a callback under a window/screen lock; no terminal-output contract of its own. |
| `use_tioctl` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `use_tioctl_sp` | Library config & util (curs_util / extensions) | — | — | Library configuration setter (use_env/use_tioctl/filter/escdelay/tabsize/extended-names/legacy-coding); changes ncurses behaviour, not terminal-display output. |
| `use_window` | Resize & threads (resizeterm / threads) | — | — | Thread wrapper that runs a callback under a window/screen lock; no terminal-output contract of its own. |
| `vw_scanw` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `vwscanw` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `wgetdelay` | Input options & key handling (curs_inopts / util) | — | — | Pure query of an input mode/flag; no terminal-output contract. |
| `wgetnstr` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `wgetparent` | Window create & manage (curs_window) | — | — | Returns the parent window pointer; a pointer query with no terminal-output contract. |
| `wgetscrreg` | Scroll & output options (curs_scroll / outopts) | — | — | Pure query of an output-option flag / scroll region; no terminal-output contract. |
| `wgetstr` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `wscanw` | Input: characters & strings (curs_getch / getstr / scanw) | — | — | Interactive input: reads terminal input under a read-timing model; no deterministic terminal-output to reconstruct. |
| `wtimeout` | Input options & key handling (curs_inopts / util) | — | — | Input/tty mode or flag (keypad/cbreak/raw/echo/nl/delays/...); sets terminal-input state with no immediate terminal-output to reconstruct. |

