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

# [NAME](#NAME)

**addwstr**, **waddwstr**, **mvaddwstr**, **mvwaddwstr**, **addnwstr**, **waddnwstr**, **mvaddnwstr**, **mvwaddnwstr** - add a wide-character string to a *curses* window and advance the cursor

# [SYNOPSIS](#SYNOPSIS)

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

```
int addwstr(const wchar_t * wstr);
int waddwstr(WINDOW * win, const wchar_t * wstr);
int mvaddwstr(int y, int x, const wchar_t * wstr);
int mvwaddwstr(WINDOW * win, int y, int x,


      const wchar_t * wstr);
```

```
int addnwstr(const wchar_t * wstr, int n);
int waddnwstr(WINDOW * win, const wchar_t * wstr, int n);
int mvaddnwstr(int y, int x, const wchar_t * wstr, int n);
int mvwaddnwstr(WINDOW * win, int y, int x,


      const wchar_t * wstr, int n);
```

# [DESCRIPTION](#DESCRIPTION)

**waddwstr** writes the characters of the (wide-null-terminated) wide-character string *wstr* to the window *win*, as if by constructing a *cchar\_t* for each *wchar\_t* in *wstr*, then calling [**wadd\_wch**(3X)](/man/os/ncurses/wadd_wch.3X) with the resulting *cchar\_t*. *curses* processes spacing and non-spacing characters in *wstr* one at a time. **waddnwstr** is similar, but writes at most *n* wide characters. If *n* is -1, **waddnwstr** writes the entire wide string. [**ncurses**(3X)](/man/os/ncurses/ncurses.3X) describes the variants of these functions.

# [RETURN VALUE](#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,
- *wstr* is a null pointer,
- (for functions taking a *WINDOW* pointer argument) *win* is a null pointer, or
- an internal [**wadd\_wch**(3X)](/man/os/ncurses/wadd_wch.3X) call returns **ERR**.

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

# [NOTES](#NOTES)

All of these functions except **waddnwstr** may be implemented as macros.

# [PORTABILITY](#PORTABILITY)

X/Open Curses Issue 4 describes these functions.

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

# [HISTORY](#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 *waddwstr* and *waddnwstr* (and the usual variants). These were later additions to SVr4.*x*, not appearing in the first SVr4 (1989).

# [SEE ALSO](#SEE_ALSO)

[**curs\_addstr**(3X)](/man/os/ncurses/curs_addstr.3X) describes comparable functions of the *ncurses* library in its non-wide-character configuration.

[**curses**(3X)](/man/os/ncurses/curses.3X), [**curs\_add\_wch**(3X)](/man/os/ncurses/curs_add_wch.3X), [**curs\_add\_wchstr**(3X)](/man/os/ncurses/curs_add_wchstr.3X)

2025-03-15 ncurses 6.6

---

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