summaryrefslogtreecommitdiff
path: root/lib/libc/locale/wcrtomb.3
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/locale/wcrtomb.3')
-rw-r--r--lib/libc/locale/wcrtomb.3147
1 files changed, 147 insertions, 0 deletions
diff --git a/lib/libc/locale/wcrtomb.3 b/lib/libc/locale/wcrtomb.3
new file mode 100644
index 00000000000..d1845fdbd25
--- /dev/null
+++ b/lib/libc/locale/wcrtomb.3
@@ -0,0 +1,147 @@
+.\" $OpenBSD: wcrtomb.3,v 1.1 2005/05/11 18:44:12 espie Exp $
+.\" $NetBSD: wcrtomb.3,v 1.4 2003/09/08 17:54:31 wiz Exp $
+.\"
+.\" Copyright (c)2002 Citrus Project,
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd February 4, 2002
+.Dt WCRTOMB 3
+.Os
+.\" ----------------------------------------------------------------------
+.Sh NAME
+.Nm wcrtomb
+.Nd converts a wide character to a multibyte character (restartable)
+.\" ----------------------------------------------------------------------
+.Sh SYNOPSIS
+.Fd #include <wchar.h>
+.Ft size_t
+.Fn wcrtomb "const char * restrict s" "wchar_t wc" "mbstate_t * restrict ps"
+.\" ----------------------------------------------------------------------
+.Sh DESCRIPTION
+.Fn wcrtomb
+converts the wide character given by
+.Fa wc
+to the corresponding multibyte character, and stores it in the array
+pointed to by
+.Fa s
+unless
+.Fa s
+is a null pointer.
+This function will modify the first at most
+.Dv MB_CUR_MAX
+bytes of the array pointed by
+.Fa s .
+.Pp
+The behaviour of
+.Fn wcrtomb
+is affected by the
+.Dv LC_CTYPE
+category of the current locale.
+.Pp
+These are the special cases:
+.Bl -tag -width 012345678901
+.It "wc == 0"
+For state-dependent encodings,
+.Fn wcrtomb
+stores a null byte preceded by a special byte sequence (if any)
+to return to an initial state to the array pointed by
+.Fa s ,
+and the state object pointed by
+.Fa ps
+also returned to a initial state.
+.It "s == NULL"
+.Fn wcrtomb
+just places
+.Fa ps
+into a initial state.
+It is equivalent to the following call:
+.Bd -literal -offset indent
+wcrtomb(buf, L'\\0', ps);
+.Ed
+.Pp
+Here,
+.Fa buf
+is a dummy buffer.
+In this case,
+.Fa wc
+is ignored.
+.It "ps == NULL"
+.Fn mbrtowc
+uses its own internal state object to keep the conversion state,
+instead of
+.Fa ps
+mentioned in this manual page.
+.Pp
+Calling any other functions in
+.Em libc
+never change the internal
+state of
+.Fn mbrtowc ,
+which is initialized at startup time of the program.
+.El
+.\" ----------------------------------------------------------------------
+.Sh RETURN VALUES
+.Fn wcrtomb
+returns:
+.Bl -tag -width 012345678901
+.It "positive"
+The number of bytes (including any shift sequences)
+which are stored in the array.
+.It "(size_t)-1"
+.Fa wc
+is not a valid wide character.
+In this case,
+.Fn wcrtomb
+also sets
+.Va errno
+to indicate error.
+.El
+.\" ----------------------------------------------------------------------
+.Sh ERRORS
+.Fn wcrtomb
+may cause an error in the following cases:
+.Bl -tag -width Er
+.It Bq Er EILSEQ
+.Fa wc
+is not a valid wide character.
+.It Bq Er EINVAL
+.Fa ps
+points to an invalid or uninitialized mbstate_t object.
+.El
+.\" ----------------------------------------------------------------------
+.Sh SEE ALSO
+.Xr setlocale 3 ,
+.Xr wctomb 3
+.\" ----------------------------------------------------------------------
+.Sh STANDARDS
+The
+.Fn wcrtomb
+function conforms to
+.\" .St -isoC-amd1 .
+ISO/IEC 9899/AMD1:1995
+.Pq Dq ISO C90, Amendment 1 .
+The restrict qualifier is added at
+.\" .St -isoC99 .
+ISO/IEC 9899/1999
+.Pq Dq ISO C99 .