diff options
Diffstat (limited to 'man3/mbrlen.3')
-rw-r--r-- | man3/mbrlen.3 | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/man3/mbrlen.3 b/man3/mbrlen.3 new file mode 100644 index 000000000..ca9ecc0c1 --- /dev/null +++ b/man3/mbrlen.3 @@ -0,0 +1,56 @@ +.\" Copyright (c) Bruno Haible <haible@clisp.cons.org> +.\" +.\" This is free documentation; you can redistribute it and/or +.\" modify it under the terms of the GNU General Public License as +.\" published by the Free Software Foundation; either version 2 of +.\" the License, or (at your option) any later version. +.\" +.\" References consulted: +.\" GNU glibc-2 source code and manual +.\" Dinkumware C library reference http://www.dinkumware.com/ +.\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html +.\" ISO/IEC 9899:1999 +.\" +.TH MBRLEN 3 1999-07-25 "GNU" "Linux Programmer's Manual" +.SH NAME +mbrlen \- determine number of bytes in next multibyte character +.SH SYNOPSIS +.nf +.B #include <wchar.h> +.sp +.BI "size_t mbrlen(const char *" s ", size_t " n ", mbstate_t *" ps ); +.fi +.SH DESCRIPTION +The \fBmbrlen\fP function inspects at most \fIn\fP bytes of the multibyte +string starting at \fIs\fP and extracts the next complete multibyte character. +It updates the shift state \fI*ps\fP. If the multibyte character is not the +null wide character, it returns the number of bytes that were consumed from +\fIs\fP. If the multibyte character is the null wide character, it resets the +shift state \fI*ps\fP to the initial state and returns 0. +.PP +If the \fIn\fP bytes starting at \fIs\fP do not contain a complete multibyte +character, \fBmbrlen\fP returns \fI(size_t)(-2)\fP. This can happen even if +\fIn\fP >= \fIMB_CUR_MAX\fP, if the multibyte string contains redundant shift +sequences. +.PP +If the multibyte string starting at \fIs\fP contains an invalid multibyte +sequence before the next complete character, \fBmbrlen\fP returns +\fI(size_t)(-1)\fP and sets \fBerrno\fP to \fBEILSEQ\fP. In this case, +the effects on \fI*ps\fP are undefined. +.PP +If \fIps\fP is a NULL pointer, a static anonymous state only known to the +mbrlen function is used instead. +.SH "RETURN VALUE" +The \fBmbrlen\fP function returns the number of bytes parsed from the multibyte +sequence starting at \fIs\fP, if a non-null wide character was recognized. +It returns 0, if a null wide character was recognized. It returns (size_t)(-1) +and sets \fBerrno\fP to \fBEILSEQ\fP, if an invalid multibyte sequence was +encountered. It returns (size_t)(-2) if it couldn't parse a complete multibyte +character, meaning that \fIn\fP should be increased. +.SH "CONFORMING TO" +ISO/ANSI C, UNIX98 +.SH "SEE ALSO" +.BR mbrtowc (3) +.SH NOTES +The behaviour of \fBmbrlen\fP depends on the LC_CTYPE category of the +current locale. |