diff options
Diffstat (limited to 'lib/libc/locale/wcrtomb.3')
-rw-r--r-- | lib/libc/locale/wcrtomb.3 | 147 |
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 . |