---
name: "insch"
section: "3ncurses"
platform: "linux"
package: "ncurses-doc"
version: "6.5+20250216-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/insch/3ncurses"
---

# insch(3ncurses)

insert a curses character in a window

## NAME

**insch**, **winsch**, **mvinsch**, **mvwinsch** - insert a *curses* character in a window

## SYNOPSIS

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

**int insch(chtype** *ch***);** **int winsch(WINDOW \*** *win***, chtype** *ch***);** **int mvinsch(int** *y***, int** *x***, chtype** *ch***);** **int mvwinsch(WINDOW \*** *win***, int** *y***, int** *x***, chtype** *ch***);**

## DESCRIPTION

**These functions insert the** *curses* **character** *ch* **at the cursor in the specified window** *win* **(or** **stdscr**). **The character previously at the cursor and any to its right move one** **cell to the right;** **the rightmost character on the line is discarded.** **The cursor does not advance.**

## RETURN VALUE

**These functions return** **OK** **on success and** **ERR** **on failure.**

**Functions taking a** *WINDOW* **pointer argument fail if** *win* **is a null pointer.**

**Functions prefixed with “mv” first perform cursor movement and** **fail if the position** (*y*, *x*) **is outside the window boundaries.**

## NOTES

**insch**, **mvinsch**, **and** **mvwinsch** **may be implemented as macros.**

**A terminal's** **insert\_character** (**ich1**) **capability** **is not necessarily employed.**

## PORTABILITY

**X/Open Curses Issue 4 describes these functions.**

**SVr4 describes a successful return value only as** **“an integer value other than** *ERR*”.

## HISTORY

**SVr2 (1984) introduced** *winsch*.

## SEE ALSO

**ins\_wch(3NCURSES) describes comparable functions in the** **wide-character** *curses* **configuration.**

**ncurses(3NCURSES),** **[terminfo(5)](/terminfo/5.md)**
