curs_addstr(3X)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1

✨ curs_addstr(3X) ✨

okay bestie so this is a page from the Library calls section of the manual, and it's literally just "put a string in a window and let the cursor vibe forward" πŸ’–


🌸 NAME 🌸

addstr, waddstr, mvaddstr, mvwaddstr, addnstr, waddnstr, mvaddnstr, mvwaddnstr β€” add a string to a curses window and advance the cursor. yes queen, that's the whole job πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <curses.h>

int addstr(const char * str);
int waddstr(WINDOW * win, const char * str);
int mvaddstr(int y, int x, const char * str);
int mvwaddstr(WINDOW * win, int y, int x, const char * str);

int addnstr(const char * str, int n);
int waddnstr(WINDOW * win, const char * str, int n);
int mvaddnstr(int y, int x, const char * str, int n);
int mvwaddnstr(WINDOW * win, int y, int x, const char * str, int n);

πŸ’œ DESCRIPTION πŸ’œ

so waddstr writes the characters of the (null-terminated) string str to the window win, as if by calling waddch(3X) for each char in str. it's giving "one character at a time but make it a whole sentence" ✨

waddnstr is similar, but writes at most n characters. and here's the lil trick: if n is -1, waddnstr writes the entire string. no cap, -1 means "bestie, just do the whole thing" πŸ’…

ncurses(3X) describes the variants of these functions.


πŸ‘‘ RETURN VALUE πŸ‘‘

These functions return OK on success and ERR on failure. simple as that 🫢

In ncurses, these functions fail if

  • the curses screen has not been initialized,
  • str is a null pointer,
  • (for functions taking a WINDOW pointer argument) win is a null pointer, or
  • an internal waddch(3X) call returns ERR.

Functions prefixed with β€œmv” first perform cursor movement and fail if the position (y, x) is outside the window boundaries. so like, if you try to move somewhere that doesn't exist, she's not going, periodt 😭


πŸŽ€ NOTES πŸŽ€

All of these functions except waddnstr may be implemented as macros. iykyk β€” that means no taking their address, bestie πŸ™ˆ


🌈 PORTABILITY 🌈

X/Open Curses Issue 4 describes these functions. It specifies no error conditions for them. so like, zero error lore in the spec, iconic of them honestly πŸ’€

SVr4 describes a successful return value only as β€œan integer value other than ERR”.


⭐ HISTORY ⭐

4BSD (1980) introduced waddstr along with its variants, the latter defined as macros. vintage πŸ’…

SVr3.1 (1987) added waddnstr (and its variants) redefining waddstr as a macro wrapping it. glow-up era ✨


πŸ“ SEE ALSO πŸ“

curs_addwstr(3X) describes comparable functions of the ncurses library in its wide-character configuration (ncursesw). she's the wide-char sister, obsessed 🌸

curses(3X), curs_addch(3X), curs_addchstr(3X)


okay that's the whole page bestie, go forth and waddstr responsibly 🫢✨

this was ncurses 6.6, dated 2025-10-20, filed under curs_addstr(3X) β€” mwah, bye, love u πŸ’–πŸ§šπŸ’œ

πŸ“¦ where this page comes from