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

# add\_wchnstr(3x)

add a curses complex character string to a window

Part of [curs\_add\_wchstr(3x)](/curs_add_wchstr/3x.md).

## NAME

**add\_wchstr**, **wadd\_wchstr**, **mvadd\_wchstr**, **mvwadd\_wchstr**, **add\_wchnstr**, **wadd\_wchnstr**, **mvadd\_wchnstr**, **mvwadd\_wchnstr** - add a *curses* complex character string to a window

## SYNOPSIS

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

**int add\_wchstr(const cchar\_t \*** *wchstr***);** **int wadd\_wchstr(WINDOW \***  *win***, const cchar\_t \*** *wchstr***);** **int mvadd\_wchstr(int** *y***, int** *x***, const cchar\_t \*** *wchstr***);** **int mvwadd\_wchstr(WINDOW \*** *win***, int** *y***, int** *x***, const cchar\_t \*** *wchstr***);**

**int add\_wchnstr(const cchar\_t \*** *wchstr***, int** *n***);** **int wadd\_wchnstr(WINDOW \***  *win***, const cchar\_t \*** *wchstr***, int** *n***);** **int mvadd\_wchnstr(int** *y***, int** *x***, const cchar\_t \*** *wchstr***, int** *n***);** **int mvwadd\_wchnstr(WINDOW \*** *win***, int** *y***, int** *x***,**\
       **const cchar\_t \*** *wchstr***, int** *n***);**

## DESCRIPTION

**wadd\_wchstr** **copies the string of complex characters** *wchstr* **to the window** *win*. **A null complex character terminates the string.** **If a complex character does not completely fit at the end of the line,** *curses* **fills its remaining cells with the window's background character;** **see bkgrnd(3X).** **wadd\_wchnstr** **does the same,** **but copies at most** *n* **characters,** **or as many as possible if** *n* **is** **-1**. **ncurses(3X) describes the variants of these functions.**

**Because these functions do not call wadd\_wch(3X) internally,** **they are faster than waddwstr(3X) and waddnwstr(3X).** **On the other hand,** **they**

- •

  **do not treat the backspace,** **carriage return,** **or line feed characters specially;**

- •

  **do not represent unprintable characters with wunctrl(3X);**

- •

  **do not update the cursor position to follow the last character written;** **and**

- •

  **truncate the string at the window's right margin,** **rather than wrapping it to the next line and potentially scrolling.**

## RETURN VALUE

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

**In** *ncurses*, **these functions fail if**

- •

  **the** *curses* **screen has not been initialized,**

- •

  *wchstr* **is a null pointer,** **or**

- •

  **(for functions taking a** *WINDOW* **pointer argument)** *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

**All of these functions except** **wadd\_wchnstr** **may be implemented as macros.**

## PORTABILITY

**X/Open Curses Issue 4 describes these functions.** **It specifies no error conditions for them.**

## HISTORY

**X/Open Curses Issue 4 (1995) initially specified these functions.** **The System V Interface Definition Version 4** **of the same year** **specified functions named** *waddwchstr* **and** *waddwchnstr* **(and the usual variants).** **These were later additions to** SVr4.*x*, **not appearing in the first SVr4 (1989).** **They differed from X/Open's later** *wadd\_wchstr* **and** *wadd\_wchnstr* **in that they each took an argument of type** *wchar\_t* **instead of** *cchar\_t*.

## SEE ALSO

**curs\_addchstr(3X) describes comparable functions of the** *ncurses* **library in its non-wide-character configuration.**

**curses(3X),** **curs\_addwstr(3X),** **curs\_add\_wch(3X)**
