---
name: "curs_overlay"
section: "3x"
platform: "macos"
package: "ncurses"
version: "79"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/curs_overlay/3x"
---

# curs\_overlay(3x)

overlay and manipulate overlapped curses windows

## NAME

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

## 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

### 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

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

Routines that return an integer return **ERR** upon failure, and **OK** (SVr4 only specifies "an integer value other than **ERR**") upon successful completion.

X/Open defines no error conditions. In this implementation, **copywin**, **overlay** and **overwrite** return an error if either of the window pointers are null, or if some part of the window would be placed off-screen.

## NOTES

Note that **overlay** and **overwrite** may be macros.

## PORTABILITY

The XSI Curses standard, Issue 4 describes these functions (adding the const qualifiers). It further specifies their behavior in the presence of characters with multibyte renditions (not yet supported in this implementation).

## SEE ALSO

**curses**(3X), **curs\_pad**(3X), **curs\_refresh**(3X)
