.fi
.SH DESCRIPTION
The main case for this function is when
-.IR s
+.IR s
is not NULL and
.I pwc
is
to the initial state and returns 0.
.PP
If the
-.IR n
+.IR n
bytes starting at
.I s
do not contain a complete multibyte
are undefined.
.PP
A different case is when
-.IR s
+.IR s
is not NULL but
.I pwc
is NULL.
.I s
is NULL.
In this case,
-.IR pwc
+.IR pwc
and
.I n
are
.BR mbrtowc ()
function is used instead.
Otherwise,
-.IR *ps
+.IR *ps
must be a valid
.I mbstate_t
object.
An
-.IR mbstate_t
+.IR mbstate_t
object
.I a
can be initialized to the initial state
if an invalid multibyte sequence was
encountered.
It returns
-.I "(size_t)\ \-2"
+.I "(size_t)\ \-2"
if it couldn't parse a complete multibyte
character, meaning that
.I n