.\"***************************************************************************
-.\" Copyright 2019-2022,2023 Thomas E. Dickey *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey *
.\" Copyright 1998-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addstr.3x,v 1.34 2023/09/30 21:38:11 tom Exp $
-.TH curs_addstr 3X 2023-09-30 "ncurses 6.4" "Library calls"
-.ie \n(.g .ds `` \(lq
-.el .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el .ds '' ''
+.\" $Id: curs_addstr.3x,v 1.47 2024/05/25 20:45:40 tom Exp $
+.TH curs_addstr 3X 2024-05-25 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
add a string to a \fIcurses\fR window and advance the cursor
.SH SYNOPSIS
.nf
-\fB#include <curses.h>\fP
+\fB#include <curses.h>
.PP
-\fBint addstr(const char *\fIstr\fB);\fR
-.br
-\fBint addnstr(const char *\fIstr\fB, int \fIn\fB);\fR
-.br
-\fBint waddstr(WINDOW *\fIwin\fB, const char *\fIstr\fB);\fR
-.br
-\fBint waddnstr(WINDOW *\fIwin\fB, const char *\fIstr\fB, int \fIn\fB);\fR
-.sp
-\fBint mvaddstr(int \fIy\fB, int \fIx\fB, const char *\fIstr\fB);\fR
-.br
-\fBint mvaddnstr(int \fIy\fB, int \fIx\fB, const char *\fIstr\fB, int \fIn\fB);\fR
-.br
-\fBint mvwaddstr(WINDOW *\fIwin\fB, int \fIy\fB, int \fIx\fB, const char *\fIstr\fB);\fR
-.br
-\fBint mvwaddnstr(WINDOW *\fIwin\fB, int \fIy\fB, int \fIx\fB, const char *\fIstr, int \fIn\fB);\fR
+\fBint addstr(const char *\fIstr\fP);
+\fBint mvaddstr(int \fIy\fP, int \fIx\fP, const char *\fIstr\fP);
+\fBint mvwaddstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const char *\fIstr\fP);
+\fBint waddstr(WINDOW *\fIwin\fP, const char *\fIstr\fP);
+.PP
+\fBint addnstr(const char *\fIstr\fP, int \fIn\fP);
+\fBint mvaddnstr(int \fIy\fP, int \fIx\fP, const char *\fIstr\fP, int \fIn\fP);
+\fBint mvwaddnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const char *\fIstr\fP, int \fIn\fP);
+\fBint waddnstr(WINDOW *\fIwin\fP, const char *\fIstr\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
-These functions write the (null-terminated) character string
-\fIstr\fP on the given window.
-It is similar to calling \fBwaddch\fP once for each byte in the string.
+.B waddstr
+writes the characters of the (null-terminated) string
+.I str
+to the window
+.IR win .
+Its process is similar to calling \fB\%waddch\fP(3X) for each
+.I char
+in
+.IR str .
+Control characters are processed as in \fB\%waddch\fP(3X).
.PP
-The \fImv\fP functions perform cursor movement once, before writing any
-characters.
-Thereafter, the cursor is advanced as a side-effect of writing to the window.
+.B waddnstr
+writes at most
+.I n
+characters,
+or until a terminating null character occurs in
+.IR str .
+If
+.I n
+is \-1,
+.B
+.B waddnstr
+writes the entire string.
.PP
-The four functions with \fIn\fP as the last argument
-write at most \fIn\fP bytes,
-or until a terminating null is reached.
-If \fIn\fP is \-1, then the entire string will be added.
+\fB\%ncurses\fP(3X) describes the variants of these functions.
.SH RETURN VALUE
-All functions return the integer \fBERR\fP upon failure and \fBOK\fP on success.
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
.PP
-X/Open does not define any error conditions.
-This implementation returns an error
+In
+.IR \%ncurses ","
+they return
+.B ERR
+if
.bP
-if the window pointer is null or
+.I win
+is
+.BR NULL ","
.bP
-if the string pointer is null or
+.I str
+is
+.BR NULL ","
+or
.bP
-if the corresponding calls to \fBwaddch\fP return an error.
-.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
-If an error is returned by the \fBwmove\fP,
-no characters are added to the window.
+an internal \fB\%waddch\fP(3X) call returns
+.BR ERR "."
.PP
-If an error is returned by \fBwaddch\fP
-(e.g.,
-because the window is not large enough,
-or an illegal byte sequence was detected)
-only part of the string may be added.
-Aside from that,
-there is a special case in \fBwaddch\fP where an error may be
-returned after successfully writing a character to the lower-right corner
-of a window when \fBscrollok\fP(3X) is disabled.
+Functions prefixed with \*(``mv\*('' first perform cursor movement and
+fail if the position
+.RI ( y ,
+.IR x )
+is outside the window boundaries.
.SH NOTES
All of these functions except \fBwaddnstr\fP may be macros.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
.SH SEE ALSO
+\fB\%curs_addwstr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its wide-character configuration
+.RI ( \%ncursesw ).
+.PP
\fB\%curses\fP(3X),
-\fB\%curs_addch\fP(3X)
+\fB\%curs_addch\fP(3X),
+\fB\%curs_addchstr\fP(3X)