.BI "size_t wcrtomb(char *" s ", wchar_t " wc ", mbstate_t *" ps );
.fi
.SH DESCRIPTION
-The main case for this function is when \fIs\fP is
-not NULL and \fIwc\fP is not a null wide character (L\(aq\\0\(aq).
+The main case for this function is when
+.I s
+is
+not NULL and
+.I wc
+is not a null wide character (L\(aq\\0\(aq).
In this case, the
.BR wcrtomb ()
function
-converts the wide character \fIwc\fP
+converts the wide character
+.I wc
to its multibyte representation and stores it
at the beginning of the character
-array pointed to by \fIs\fP.
-It updates the shift state \fI*ps\fP, and
+array pointed to by
+.IR s .
+It updates the shift state
+.IR *ps ,
+and
returns the length of said multibyte representation,
that is, the number of bytes
-written at \fIs\fP.
+written at
+.IR s .
.PP
-A different case is when \fIs\fP is not NULL,
-but \fIwc\fP is a null wide character (L\(aq\\0\(aq).
+A different case is when
+.I s
+is not NULL,
+but
+.I wc
+is a null wide character (L\(aq\\0\(aq).
In this
case the
.BR wcrtomb ()
function stores at
the character array pointed to by
-\fIs\fP the shift sequence needed to
-bring \fI*ps\fP back to the initial state,
+.I s
+the shift sequence needed to
+bring
+.I *ps
+back to the initial state,
followed by a \(aq\\0\(aq byte.
-It updates the shift state \fI*ps\fP (i.e., brings
+It updates the shift state
+.I *ps
+(i.e., brings
it into the initial state),
and returns the length of the shift sequence plus
-one, that is, the number of bytes written at \fIs\fP.
+one, that is, the number of bytes written at
+.IR s .
.PP
-A third case is when \fIs\fP is NULL.
-In this case \fIwc\fP is ignored,
+A third case is when
+.I s
+is NULL.
+In this case
+.I wc
+is ignored,
and the function effectively returns
wcrtomb(buf, L\(aq\\0\(aq, ps)
.I buf
is an internal anonymous buffer.
.PP
-In all of the above cases, if \fIps\fP is a NULL pointer, a static anonymous
+In all of the above cases, if
+.I ps
+is a NULL pointer, a static anonymous
state known only to the
.BR wcrtomb ()
function is used instead.
.BR wcrtomb ()
function returns the number of
bytes that have been or would
-have been written to the byte array at \fIs\fP.
-If \fIwc\fP can not be
+have been written to the byte array at
+.IR s .
+If
+.I wc
+can not be
represented as a multibyte sequence (according to the current locale),
.I (size_t)\ \-1
-is returned, and \fIerrno\fP set to \fBEILSEQ\fP.
+is returned, and
+.I errno
+set to
+.BR EILSEQ .
.SH CONFORMING TO
C99.
.SH NOTES
category of the
current locale.
.PP
-Passing NULL as \fIps\fP is not multithread safe.
+Passing NULL as
+.I ps
+is not multithread safe.
.SH SEE ALSO
.BR wcsrtombs (3)