summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2024-05-03 02:17:10 +0200
committerAlejandro Colomar <alx@kernel.org>2024-05-03 15:52:36 +0200
commite1df3f21a5ca67e74090bd6302a40dcc25553ea4 (patch)
tree545a757a149151eb908392f2f3b188967688a21a
parentd852ab52477a609a254863c7b79b98847bfc2d53 (diff)
mbsinit.3, mbstate_t.3type: Split page into one for the type and one for the function
Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--man/man3/mbsinit.356
-rw-r--r--man/man3type/mbstate_t.3type84
2 files changed, 90 insertions, 50 deletions
diff --git a/man/man3/mbsinit.3 b/man/man3/mbsinit.3
index 3ace32b69..689e2bfa9 100644
--- a/man/man3/mbsinit.3
+++ b/man/man3/mbsinit.3
@@ -1,5 +1,6 @@
'\" t
-.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
+.\" Copyright, Bruno Haible <haible@clisp.cons.org>
+.\" Copyright 2024, Alejandro Colomar <alx@kernel.org>
.\"
.\" SPDX-License-Identifier: GPL-2.0-or-later
.\"
@@ -11,7 +12,9 @@
.\"
.TH mbsinit 3 (date) "Linux man-pages (unreleased)"
.SH NAME
-mbsinit \- test for initial shift state
+mbsinit
+\-
+test for initial shift state
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
@@ -22,54 +25,6 @@ Standard C library
.BI "int mbsinit(const mbstate_t *" ps );
.fi
.SH DESCRIPTION
-Character conversion between the multibyte representation and the wide
-character representation uses conversion state, of type
-.IR mbstate_t .
-Conversion of a string uses a finite-state machine; when it is interrupted
-after the complete conversion of a number of characters, it may need to
-save a state for processing the remaining characters.
-Such a conversion
-state is needed for the sake of encodings such as ISO/IEC\~2022 and UTF-7.
-.P
-The initial state is the state at the beginning of conversion of a string.
-There are two kinds of state: the one used by multibyte to wide character
-conversion functions, such as
-.BR mbsrtowcs (3),
-and the one used by wide
-character to multibyte conversion functions, such as
-.BR wcsrtombs (3),
-but they both fit in a
-.IR mbstate_t ,
-and they both have the same
-representation for an initial state.
-.P
-For 8-bit encodings, all states are equivalent to the initial state.
-For multibyte encodings like UTF-8, EUC-*, BIG5, or SJIS, the wide character
-to multibyte conversion functions never produce non-initial states, but the
-multibyte to wide-character conversion functions like
-.BR mbrtowc (3)
-do
-produce non-initial states when interrupted in the middle of a character.
-.P
-One possible way to create an
-.I mbstate_t
-in initial state is to set it to zero:
-.P
-.in +4n
-.EX
-mbstate_t state;
-memset(&state, 0, sizeof(state));
-.EE
-.in
-.P
-On Linux, the following works as well, but might generate compiler warnings:
-.P
-.in +4n
-.EX
-mbstate_t state = { 0 };
-.EE
-.in
-.P
The function
.BR mbsinit ()
tests whether
@@ -110,6 +65,7 @@ depends on the
category of the
current locale.
.SH SEE ALSO
+.BR mbstate_t (3type),
.BR mbrlen (3),
.BR mbrtowc (3),
.BR mbsrtowcs (3),
diff --git a/man/man3type/mbstate_t.3type b/man/man3type/mbstate_t.3type
new file mode 100644
index 000000000..fc78c627e
--- /dev/null
+++ b/man/man3type/mbstate_t.3type
@@ -0,0 +1,84 @@
+.\" Copyright, Bruno Haible <haible@clisp.cons.org>
+.\" Copyright 2024, Alejandro Colomar <alx@kernel.org>
+.\"
+.\" SPDX-License-Identifier: GPL-2.0-or-later
+.\"
+.\" 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 mbstate_t 3type (date) "Linux man-pages (unreleased)"
+.SH NAME
+mbstate_t
+\-
+multi-byte-character conversion state
+.SH LIBRARY
+Standard C library
+.RI ( libc )
+.SH SYNOPSIS
+.nf
+.B #include <wchar.h>
+.P
+.BR typedef " /* ... */ " mbstate_t;
+.fi
+.SH DESCRIPTION
+Character conversion between the multibyte representation and the wide
+character representation uses conversion state, of type
+.IR mbstate_t .
+Conversion of a string uses a finite-state machine; when it is interrupted
+after the complete conversion of a number of characters, it may need to
+save a state for processing the remaining characters.
+Such a conversion
+state is needed for the sake of encodings such as ISO/IEC\~2022 and UTF-7.
+.P
+The initial state is the state at the beginning of conversion of a string.
+There are two kinds of state: the one used by multibyte to wide character
+conversion functions, such as
+.BR mbsrtowcs (3),
+and the one used by wide
+character to multibyte conversion functions, such as
+.BR wcsrtombs (3),
+but they both fit in a
+.IR mbstate_t ,
+and they both have the same
+representation for an initial state.
+.P
+For 8-bit encodings, all states are equivalent to the initial state.
+For multibyte encodings like UTF-8, EUC-*, BIG5, or SJIS, the wide character
+to multibyte conversion functions never produce non-initial states, but the
+multibyte to wide-character conversion functions like
+.BR mbrtowc (3)
+do
+produce non-initial states when interrupted in the middle of a character.
+.P
+One possible way to create an
+.I mbstate_t
+in initial state is to set it to zero:
+.P
+.in +4n
+.EX
+mbstate_t state;
+memset(&state, 0, sizeof(state));
+.EE
+.in
+.P
+On Linux, the following works as well, but might generate compiler warnings:
+.P
+.in +4n
+.EX
+mbstate_t state = { 0 };
+.EE
+.in
+.SH STANDARDS
+C11, POSIX.1-2008.
+.SH HISTORY
+C99, POSIX.1-2001.
+.SH SEE ALSO
+.BR mbrlen (3),
+.BR mbrtowc (3),
+.BR mbsinit (3),
+.BR mbsrtowcs (3),
+.BR wcrtomb (3),
+.BR wcsrtombs (3)