summaryrefslogtreecommitdiffstats
path: root/lib/libc/locale
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2002-10-03 14:07:26 +0000
committertjr <tjr@FreeBSD.org>2002-10-03 14:07:26 +0000
commit89d813cf15ed36fd8137d12075f4e1bc3a4ccfb5 (patch)
treead599ee77426176ceff979428aa812f484bb498a /lib/libc/locale
parent761c7aa0fc095dc34c4b0a2549737453d5d4c05b (diff)
downloadFreeBSD-src-89d813cf15ed36fd8137d12075f4e1bc3a4ccfb5.zip
FreeBSD-src-89d813cf15ed36fd8137d12075f4e1bc3a4ccfb5.tar.gz
Add an example.
Diffstat (limited to 'lib/libc/locale')
-rw-r--r--lib/libc/locale/mbrlen.323
1 files changed, 22 insertions, 1 deletions
diff --git a/lib/libc/locale/mbrlen.3 b/lib/libc/locale/mbrlen.3
index 0775b2f..f500e85 100644
--- a/lib/libc/locale/mbrlen.3
+++ b/lib/libc/locale/mbrlen.3
@@ -23,7 +23,7 @@
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
-.Dd August 16, 2002
+.Dd October 4, 2002
.Dt MBRLEN 3
.Os
.Sh NAME
@@ -91,6 +91,27 @@ The byte sequence pointed to by
.Fa s
is an invalid multibyte sequence.
.El
+.Sh EXAMPLES
+A function which calculates the number of characters in a multibyte
+character string:
+.Bd -literal -offset indent
+size_t
+nchars(const char *s)
+{
+ size_t charlen, chars;
+ mbstate_t mbs;
+
+ chars = 0;
+ memset(&mbs, 0, sizeof(mbs));
+ while ((charlen = mbrlen(s, MB_CUR_MAX, &mbs)) != 0 &&
+ charlen != (size_t)-1 && charlen != (size_t)-2) {
+ s += charlen;
+ chars++;
+ }
+
+ return (chars);
+}
+.Ed
.Sh ERRORS
The
.Fn mbrlen
OpenPOWER on IntegriCloud