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

# [NAME](#NAME)

**overlay**, **overwrite**, **copywin** - overlay *curses* windows and manipulate them

# [SYNOPSIS](#SYNOPSIS)

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

```
int overlay(const WINDOW *srcwin, WINDOW *dstwin);
int overwrite(const WINDOW *srcwin, WINDOW *dstwin);
int copywin(const WINDOW *srcwin, WINDOW *dstwin, int sminrow,


      int smincol, int dminrow, int dmincol, int dmaxrow,


      int dmaxcol, int overlay);
```

# [DESCRIPTION](#DESCRIPTION)

## [overlay, overwrite](#overlay,_overwrite)

The **overlay** and **overwrite** routines overlay *srcwin* on top of *dstwin*. *scrwin* and *dstwin* are not required to be the same size; only text where the two windows overlap is copied. The difference is that **overlay** is non-destructive (blanks are not copied) whereas **overwrite** is destructive.

## [copywin](#copywin)

The **copywin** routine provides a finer granularity of control over the **overlay** and **overwrite** routines. As in the **prefresh** routine, a rectangle is specified in the destination window, (*dminrow*, *dmincol*) and (*dmaxrow*, *dmaxcol*), and the upper-left-corner coordinates of the source window, (*sminrow*, *smincol*). If the argument *overlay* is **true**, then copying is non-destructive, as in **overlay**.

# [RETURN VALUE](#RETURN_VALUE)

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

In *ncurses*, they return **ERR** if

- either of the window pointers are null, or
- any part of the window would be placed off-screen.

# [NOTES](#NOTES)

**overlay** and **overwrite** may be implemented as macros.

# [PORTABILITY](#PORTABILITY)

X/Open Curses Issue 4 describes these functions. It specifies no error conditions for them. It adds *const* qualifiers to the arguments. It further specifies their behavior in the presence of characters with multibyte renditions (not yet supported in this implementation).

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

# [SEE ALSO](#SEE_ALSO)

[**curses**(3X)](/man/os/ncurses/curses.3X), [**curs\_pad**(3X)](/man/os/ncurses/curs_pad.3X), [**curs\_refresh**(3X)](/man/os/ncurses/curs_refresh.3X)

2025-01-18 ncurses 6.6

---

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