@cpp.js/package-iconv 1.0.0-beta.22 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +1 -1
  3. package/charset.xcframework/ios-arm64_arm64e/libcharset.a +0 -0
  4. package/charset.xcframework/ios-arm64_arm64e_x86_64-simulator/libcharset.a +0 -0
  5. package/cppjs.build.js +1 -0
  6. package/dist/prebuilt/Android-x86_64/include/iconv.h +243 -0
  7. package/dist/prebuilt/Android-x86_64/include/libcharset.h +45 -0
  8. package/dist/prebuilt/Android-x86_64/include/localcharset.h +137 -0
  9. package/dist/prebuilt/Android-x86_64/lib/libcharset.la +41 -0
  10. package/dist/prebuilt/Android-x86_64/lib/libcharset.so +0 -0
  11. package/dist/prebuilt/Android-x86_64/lib/libiconv.la +41 -0
  12. package/dist/prebuilt/Android-x86_64/lib/libiconv.so +0 -0
  13. package/dist/prebuilt/Android-x86_64/share/doc/iconv.1.html +217 -0
  14. package/dist/prebuilt/Android-x86_64/share/doc/iconv.3.html +255 -0
  15. package/dist/prebuilt/Android-x86_64/share/doc/iconv_close.3.html +89 -0
  16. package/dist/prebuilt/Android-x86_64/share/doc/iconv_open.3.html +352 -0
  17. package/dist/prebuilt/Android-x86_64/share/doc/iconv_open_into.3.html +132 -0
  18. package/dist/prebuilt/Android-x86_64/share/doc/iconvctl.3.html +244 -0
  19. package/dist/prebuilt/Android-x86_64/share/man/man1/iconv.1 +112 -0
  20. package/dist/prebuilt/Android-x86_64/share/man/man3/iconv.3 +129 -0
  21. package/dist/prebuilt/Android-x86_64/share/man/man3/iconv_close.3 +31 -0
  22. package/dist/prebuilt/Android-x86_64/share/man/man3/iconv_open.3 +260 -0
  23. package/dist/prebuilt/Android-x86_64/share/man/man3/iconv_open_into.3 +47 -0
  24. package/dist/prebuilt/Android-x86_64/share/man/man3/iconvctl.3 +112 -0
  25. package/dist/prebuilt/iOS-iphoneos/lib/libcharset.a +0 -0
  26. package/dist/prebuilt/iOS-iphoneos/lib/libiconv.a +0 -0
  27. package/dist/prebuilt/iOS-iphonesimulator/lib/libcharset.a +0 -0
  28. package/dist/prebuilt/iOS-iphonesimulator/lib/libiconv.a +0 -0
  29. package/iconv.xcframework/ios-arm64_arm64e/libiconv.a +0 -0
  30. package/iconv.xcframework/ios-arm64_arm64e_x86_64-simulator/libiconv.a +0 -0
  31. package/package.json +2 -2
@@ -0,0 +1,244 @@
1
+ <!-- Creator : groff version 1.22.3 -->
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
3
+ "http://www.w3.org/TR/html4/loose.dtd">
4
+ <html>
5
+ <head>
6
+ <meta name="generator" content="groff -Thtml, see www.gnu.org">
7
+ <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
8
+ <meta name="Content-Style" content="text/css">
9
+ <style type="text/css">
10
+ p { margin-top: 0; margin-bottom: 0; vertical-align: top }
11
+ pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
12
+ table { margin-top: 0; margin-bottom: 0; vertical-align: top }
13
+ h1 { text-align: center }
14
+ </style>
15
+ <title>ICONVCTL</title>
16
+
17
+ </head>
18
+ <body>
19
+
20
+ <h1 align="center">ICONVCTL</h1>
21
+
22
+ <a href="#NAME">NAME</a><br>
23
+ <a href="#SYNOPSIS">SYNOPSIS</a><br>
24
+ <a href="#DESCRIPTION">DESCRIPTION</a><br>
25
+ <a href="#REQUEST VALUES">REQUEST VALUES</a><br>
26
+ <a href="#RETURN VALUE">RETURN VALUE</a><br>
27
+ <a href="#ERRORS">ERRORS</a><br>
28
+ <a href="#CONFORMING TO">CONFORMING TO</a><br>
29
+ <a href="#SEE ALSO">SEE ALSO</a><br>
30
+
31
+ <hr>
32
+
33
+
34
+ <h2>NAME
35
+ <a name="NAME"></a>
36
+ </h2>
37
+
38
+
39
+ <p style="margin-left:11%; margin-top: 1em">iconvctl
40
+ &minus; control iconv behavior</p>
41
+
42
+ <h2>SYNOPSIS
43
+ <a name="SYNOPSIS"></a>
44
+ </h2>
45
+
46
+
47
+ <p style="margin-left:11%; margin-top: 1em"><b>#include
48
+ &lt;iconv.h&gt;</b></p>
49
+
50
+ <p style="margin-left:11%; margin-top: 1em"><b>int iconvctl
51
+ (iconv_t</b> <i>cd</i> <b>, int</b> <i>request</i><b>, void
52
+ *</b> <i>argument</i><b>);</b></p>
53
+
54
+ <h2>DESCRIPTION
55
+ <a name="DESCRIPTION"></a>
56
+ </h2>
57
+
58
+
59
+ <p style="margin-left:11%; margin-top: 1em">The argument
60
+ <i>cd</i> must be a conversion descriptor created using the
61
+ function <b>iconv_open</b>.</p>
62
+
63
+
64
+ <p style="margin-left:11%; margin-top: 1em"><b>iconvctl</b>
65
+ queries or adjusts the behavior of the <b>iconv</b>
66
+ function, when invoked with the specified conversion
67
+ descriptor, depending on the request value.</p>
68
+
69
+ <h2>REQUEST VALUES
70
+ <a name="REQUEST VALUES"></a>
71
+ </h2>
72
+
73
+
74
+ <p style="margin-left:11%; margin-top: 1em">The following
75
+ are permissible values for the <i>request</i> parameter.
76
+ <b><br>
77
+ ICONV_TRIVIALP</b></p>
78
+
79
+ <p style="margin-left:22%;"><i>argument</i> should be an
80
+ <b>int *</b> which will receive 1 if the conversion is
81
+ trivial, or 0 otherwise.</p>
82
+
83
+
84
+ <p style="margin-left:11%;"><b>ICONV_GET_TRANSLITERATE</b></p>
85
+
86
+ <p style="margin-left:22%;"><i>argument</i> should be an
87
+ <b>int *</b> which will receive 1 if transliteration is
88
+ enabled in the conversion, or 0 otherwise.</p>
89
+
90
+
91
+ <p style="margin-left:11%;"><b>ICONV_SET_TRANSLITERATE</b></p>
92
+
93
+ <p style="margin-left:22%;"><i>argument</i> should be a
94
+ <b>const int *</b>, pointing to an <b>int</b> value. A
95
+ non-zero value is used to enable transliteration in the
96
+ conversion. A zero value disables it.</p>
97
+
98
+
99
+ <p style="margin-left:11%;"><b>ICONV_GET_DISCARD_INVALID</b></p>
100
+
101
+ <p style="margin-left:22%;"><i>argument</i> should be an
102
+ <b>int *</b> which will receive 1 if &quot;discard invalid
103
+ multibyte sequence from the input and continue&quot; is
104
+ enabled in the conversion, or 0 otherwise.</p>
105
+
106
+
107
+ <p style="margin-left:11%;"><b>ICONV_SET_DISCARD_INVALID</b></p>
108
+
109
+ <p style="margin-left:22%;"><i>argument</i> should be a
110
+ <b>const int *</b>, pointing to an <b>int</b> value. A
111
+ non-zero value is used to enable &quot;discard invalid
112
+ multibyte sequence from the input and continue&quot; in the
113
+ conversion. A zero value disables it.</p>
114
+
115
+
116
+ <p style="margin-left:11%;"><b>ICONV_GET_DISCARD_NON_IDENTICAL</b></p>
117
+
118
+ <p style="margin-left:22%;"><i>argument</i> should be an
119
+ <b>int *</b> which will receive 1 if &quot;discard character
120
+ that cannot be represented in the target character set and
121
+ continue&quot; is enabled in the conversion, or 0
122
+ otherwise.</p>
123
+
124
+
125
+ <p style="margin-left:11%;"><b>ICONV_SET_DISCARD_NON_IDENTICAL</b></p>
126
+
127
+ <p style="margin-left:22%;"><i>argument</i> should be a
128
+ <b>const int *</b>, pointing to an <b>int</b> value. A
129
+ non-zero value is used to enable &quot;discard character
130
+ that cannot be represented in the target character set and
131
+ continue&quot; in the conversion. A zero value disables
132
+ it.</p>
133
+
134
+
135
+ <p style="margin-left:11%;"><b>ICONV_GET_DISCARD_ILSEQ</b></p>
136
+
137
+ <p style="margin-left:22%;"><i>argument</i> should be an
138
+ <b>int *</b> which will receive 1 if both
139
+ &quot;discard&quot; behaviours are enabled in the
140
+ conversion, or 0 otherwise.</p>
141
+
142
+
143
+ <p style="margin-left:11%;"><b>ICONV_SET_DISCARD_ILSEQ</b></p>
144
+
145
+ <p style="margin-left:22%;"><i>argument</i> should be a
146
+ <b>const int *</b>, pointing to an <b>int</b> value. A
147
+ non-zero value is used to enable both &quot;discard&quot;
148
+ behaviours in the conversion. A zero value disables
149
+ them.</p>
150
+
151
+
152
+ <p style="margin-left:11%;"><b>ICONV_GET_FROM_SURFACE</b></p>
153
+
154
+ <p style="margin-left:22%;"><i>argument</i> should be an
155
+ <b>unsigned int *</b> which will receive the from-side
156
+ (input side) surface of the conversion.</p>
157
+
158
+
159
+ <p style="margin-left:11%;"><b>ICONV_SET_FROM_SURFACE</b></p>
160
+
161
+ <p style="margin-left:22%;"><i>argument</i> should be a
162
+ <b>const unsigned int *</b>, pointing to an <b>unsigned
163
+ int</b> value. This value is installed as the from-side
164
+ (input side) surface of the conversion. The value is a bit
165
+ mask. Zero denotes no surface. The value
166
+ <b>ICONV_SURFACE_EBCDIC_ZOS_UNIX</b> has an effect on EBCDIC
167
+ encodings: The EBCDIC newline 0x15 will get mapped to LF
168
+ instead of NEL.</p>
169
+
170
+
171
+ <p style="margin-left:11%;"><b>ICONV_GET_TO_SURFACE</b></p>
172
+
173
+ <p style="margin-left:22%;"><i>argument</i> should be an
174
+ <b>unsigned int *</b> which will receive the to-side (output
175
+ side) surface of the conversion.</p>
176
+
177
+
178
+ <p style="margin-left:11%;"><b>ICONV_SET_TO_SURFACE</b></p>
179
+
180
+ <p style="margin-left:22%;"><i>argument</i> should be a
181
+ <b>const unsigned int *</b>, pointing to an <b>unsigned
182
+ int</b> value. This value is installed as the to-side
183
+ (output side) surface of the conversion. The value is a bit
184
+ mask. Zero denotes no surface. The value
185
+ <b>ICONV_SURFACE_EBCDIC_ZOS_UNIX</b> has an effect on EBCDIC
186
+ encodings: LF, instead of NEL, will get mapped to the EBCDIC
187
+ newline 0x15.</p>
188
+
189
+ <h2>RETURN VALUE
190
+ <a name="RETURN VALUE"></a>
191
+ </h2>
192
+
193
+
194
+ <p style="margin-left:11%; margin-top: 1em">The
195
+ <b>iconvctl</b> function returns 0 if it succeeds. In case
196
+ of error, it sets <b>errno</b> and returns &minus;1.</p>
197
+
198
+ <h2>ERRORS
199
+ <a name="ERRORS"></a>
200
+ </h2>
201
+
202
+
203
+ <p style="margin-left:11%; margin-top: 1em">The following
204
+ errors can occur, among others:</p>
205
+
206
+ <table width="100%" border="0" rules="none" frame="void"
207
+ cellspacing="0" cellpadding="0">
208
+ <tr valign="top" align="left">
209
+ <td width="11%"></td>
210
+ <td width="9%">
211
+
212
+
213
+ <p><b>EINVAL</b></p></td>
214
+ <td width="2%"></td>
215
+ <td width="35%">
216
+
217
+
218
+ <p>The request is invalid.</p></td>
219
+ <td width="43%">
220
+ </td></tr>
221
+ </table>
222
+
223
+ <h2>CONFORMING TO
224
+ <a name="CONFORMING TO"></a>
225
+ </h2>
226
+
227
+
228
+ <p style="margin-left:11%; margin-top: 1em">This function
229
+ is implemented only in GNU libiconv and not in other
230
+ <b>iconv</b> implementations. It is not backed by a
231
+ standard. You can test for its presence through
232
+ <b>(_LIBICONV_VERSION &gt;= 0x0108)</b>.</p>
233
+
234
+ <h2>SEE ALSO
235
+ <a name="SEE ALSO"></a>
236
+ </h2>
237
+
238
+
239
+
240
+ <p style="margin-left:11%; margin-top: 1em"><b>iconv_open</b>(3)
241
+ <b>iconv</b>(3)</p>
242
+ <hr>
243
+ </body>
244
+ </html>
@@ -0,0 +1,112 @@
1
+ .\" Copyright (c) Free Software Foundation, Inc.
2
+ .\"
3
+ .\" This is free documentation; you can redistribute it and/or
4
+ .\" modify it under the terms of the GNU General Public License as
5
+ .\" published by the Free Software Foundation; either version 3 of
6
+ .\" the License, or (at your option) any later version.
7
+ .\"
8
+ .\" References consulted:
9
+ .\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html
10
+ .\" POSIX 2001 draft6
11
+ .\"
12
+ .TH ICONV 1 "December 15, 2024" "GNU"
13
+ .SH NAME
14
+ iconv \- character set conversion
15
+ .SH SYNOPSIS
16
+ .nf
17
+ iconv [\fIOPTION\fP...] [\fB\-f\fP \fIencoding\fP] [\fB\-t\fP \fIencoding\fP] [\fIinputfile\fP ...]
18
+ iconv \fB\-l\fP
19
+ .fi
20
+ .SH DESCRIPTION
21
+ The \fBiconv\fP program converts text from one encoding to another encoding.
22
+ More precisely, it converts \fBfrom\fP the encoding given for the \fB\-f\fP
23
+ option \fBto\fP the encoding given for the \fB\-t\fP option. Either of these
24
+ encodings defaults to the encoding of the current locale. All the
25
+ \fIinputfile\fPs are read and converted in turn; if no \fIinputfile\fP is
26
+ given, the standard input is used. The converted text is printed to standard
27
+ output.
28
+ .PP
29
+ The encodings permitted are system dependent. For the libiconv implementation,
30
+ they are listed in the iconv_open(3) manual page.
31
+ .PP
32
+ Options controlling the input and output format:
33
+ .TP
34
+ \fB\-f\fP \fIencoding\fP, \fB\-\-from\-code=\fP\fIencoding\fP
35
+ Specifies the encoding of the input.
36
+ .TP
37
+ \fB\-t\fP \fIencoding\fP, \fB\-\-to\-code=\fP\fIencoding\fP
38
+ Specifies the encoding of the output.
39
+ .PP
40
+ Options controlling conversion problems:
41
+ .TP
42
+ \fB\-c\fP
43
+ When this option is given, characters that cannot be converted are silently
44
+ discarded, instead of leading to a conversion error.
45
+ .TP
46
+ \fB\-\-unicode\-subst=\fP\fIformatstring\fP
47
+ When this option is given, Unicode characters that cannot be represented in
48
+ the target encoding are replaced with a placeholder string that is constructed
49
+ from the given \fIformatstring\fP, applied to the Unicode code point. The
50
+ \fIformatstring\fP must be a format string in the same format as for the
51
+ .I printf
52
+ command or the
53
+ .I printf()
54
+ function, taking either no argument or exactly one unsigned integer argument.
55
+ .TP
56
+ \fB\-\-byte\-subst=\fP\fIformatstring\fP
57
+ When this option is given, bytes in the input that are not valid in the source
58
+ encoding are replaced with a placeholder string that is constructed from the
59
+ given \fIformatstring\fP, applied to the byte's value. The \fIformatstring\fP
60
+ must be a format string in the same format as for the
61
+ .I printf
62
+ command or the
63
+ .I printf()
64
+ function, taking either no argument or exactly one unsigned integer argument.
65
+ .TP
66
+ \fB\-\-widechar\-subst=\fP\fIformatstring\fP
67
+ When this option is given, wide characters in the input that are not valid in
68
+ the source encoding are replaced with a placeholder string that is constructed
69
+ from the given \fIformatstring\fP, applied to the byte's value. The
70
+ \fIformatstring\fP must be a format string in the same format as for the
71
+ .I printf
72
+ command or the
73
+ .I printf()
74
+ function, taking either no argument or exactly one unsigned integer argument.
75
+ .PP
76
+ Options controlling error output:
77
+ .TP
78
+ \fB\-s\fP, \fB\-\-silent\fP
79
+ When this option is given, error messages about invalid or unconvertible
80
+ characters are omitted, but the actual converted text is unaffected.
81
+ .PP
82
+ The \fBiconv \-l\fP or \fBiconv \-\-list\fP command lists the names of the
83
+ supported encodings, in a system dependent format. For the libiconv
84
+ implementation, the names are printed in upper case, separated by whitespace,
85
+ and alias names of an encoding are listed on the same line as the encoding
86
+ itself.
87
+ .SH ENVIRONMENT
88
+ Conversion from/to EBCDIC encodings can be modified in a specific way:
89
+ If the environment variable \fBICONV_EBCDIC_ZOS_UNIX\fP is set to a non-empty
90
+ value, the EBCDIC newline 0x15 will get mapped to LF instead of NEL.
91
+ .SH EXAMPLES
92
+ .TP
93
+ \fBiconv \-f ISO\-8859\-1 \-t UTF\-8\fP
94
+ converts input from the old West-European encoding ISO\-8859\-1 to Unicode.
95
+ .PP
96
+ .nf
97
+ \fBiconv \-f KOI8\-R \-\-byte\-subst="<0x%x>"\fP
98
+ \fB \-\-unicode\-subst="<U+%04X>"\fP
99
+ .fi
100
+ .RS
101
+ converts input from the old Russian encoding KOI8\-R to the locale encoding,
102
+ substituting an angle bracket notation with hexadecimal numbers for invalid
103
+ bytes and for valid but unconvertible characters.
104
+ .RE
105
+ .TP
106
+ \fBiconv \-\-list\fP
107
+ lists the supported encodings.
108
+ .SH "CONFORMING TO"
109
+ POSIX:2024
110
+ .SH "SEE ALSO"
111
+ .BR iconv_open (3),
112
+ .BR locale (7)
@@ -0,0 +1,129 @@
1
+ .\" Copyright (c) Free Software Foundation, Inc.
2
+ .\"
3
+ .\" This is free documentation; you can redistribute it and/or
4
+ .\" modify it under the terms of the GNU General Public License as
5
+ .\" published by the Free Software Foundation; either version 3 of
6
+ .\" the License, or (at your option) any later version.
7
+ .\"
8
+ .\" References consulted:
9
+ .\" GNU glibc-2 source code and manual
10
+ .\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html
11
+ .\"
12
+ .TH ICONV 3 "December 15, 2024" "GNU"
13
+ .SH NAME
14
+ iconv \- perform character set conversion
15
+ .SH SYNOPSIS
16
+ .nf
17
+ .B #include <iconv.h>
18
+ .sp
19
+ .BI "size_t iconv (iconv_t " cd ,
20
+ .BI " const char* * " inbuf ", size_t * "inbytesleft ,
21
+ .BI " char* * " outbuf ", size_t * "outbytesleft );
22
+ .fi
23
+ .SH DESCRIPTION
24
+ The argument \fIcd\fP must be a conversion descriptor created using the
25
+ function \fBiconv_open\fP.
26
+ .PP
27
+ The main case is when \fIinbuf\fP is not NULL and \fI*inbuf\fP is not NULL.
28
+ In this case, the \fBiconv\fP function converts the multibyte sequence
29
+ starting at \fI*inbuf\fP to a multibyte sequence starting at \fI*outbuf\fP.
30
+ At most \fI*inbytesleft\fP bytes, starting at \fI*inbuf\fP, will be read.
31
+ At most \fI*outbytesleft\fP bytes, starting at \fI*outbuf\fP, will be written.
32
+ .PP
33
+ The \fBiconv\fP function converts one multibyte character at a time, and for
34
+ each character conversion it increments \fI*inbuf\fP and decrements
35
+ \fI*inbytesleft\fP by the number of converted input bytes, it increments
36
+ \fI*outbuf\fP and decrements \fI*outbytesleft\fP by the number of converted
37
+ output bytes, and it updates the conversion state contained in \fIcd\fP.
38
+ If the character encoding of the input is stateful, the \fBiconv\fP function
39
+ can also convert a sequence of input bytes to an update of the conversion state
40
+ without producing any output bytes; such input is called a \fIshift sequence\fP.
41
+ The conversion can stop for five reasons:
42
+ .PP
43
+ 1. An invalid multibyte sequence is encountered in the input. In this case
44
+ it sets \fBerrno\fP to \fBEILSEQ\fP and returns (size_t)(\-1). \fI*inbuf\fP
45
+ is left pointing to the beginning of the invalid multibyte sequence.
46
+ .PP
47
+ 2. A multibyte sequence is encountered that is valid but that cannot be
48
+ translated to the character encoding of the output.
49
+ This condition depends on the implementation and on the conversion
50
+ descriptor.
51
+ In the GNU C library and GNU libiconv, if \fIcd\fP was created without the
52
+ suffix \fB//TRANSLIT\fP or \fB//IGNORE\fP or \fB//NON_IDENTICAL_DISCARD\fP,
53
+ the conversion is strict: lossy conversions produce this condition.
54
+ If the suffix \fB//TRANSLIT\fP was specified, transliteration can avoid this
55
+ condition in some cases.
56
+ In the musl C library, this condition cannot occur because a conversion to
57
+ \fB\[aq]*\[aq]\fP is used as a fallback.
58
+ In the FreeBSD, NetBSD, and Solaris implementations of \fBiconv\fP, this
59
+ condition cannot occur either, because a conversion to \fB\[aq]?\[aq]\fP is
60
+ used as a fallback.
61
+ When this condition is met, the \fBiconv\fP function sets \fBerrno\fP to
62
+ \fBEILSEQ\fP and returns (size_t)(\-1).
63
+ \fI*inbuf\fP is left pointing to the beginning of the unconvertible multibyte
64
+ sequence.
65
+ .PP
66
+ 3. The input byte sequence has been entirely converted, i.e. \fI*inbytesleft\fP
67
+ has gone down to 0. In this case \fBiconv\fP returns the number of
68
+ non-reversible conversions performed during this call.
69
+ .PP
70
+ 4. An incomplete multibyte sequence is encountered in the input, and the
71
+ input byte sequence terminates after it. In this case it sets \fBerrno\fP to
72
+ \fBEINVAL\fP and returns (size_t)(\-1). \fI*inbuf\fP is left pointing to the
73
+ beginning of the incomplete multibyte sequence.
74
+ .PP
75
+ 5. The output buffer has no more room for the next converted character. In
76
+ this case it sets \fBerrno\fP to \fBE2BIG\fP and returns (size_t)(\-1).
77
+ .PP
78
+ A different case is when \fIinbuf\fP is NULL or \fI*inbuf\fP is NULL, but
79
+ \fIoutbuf\fP is not NULL and \fI*outbuf\fP is not NULL. In this case, the
80
+ \fBiconv\fP function attempts to set \fIcd\fP's conversion state to the
81
+ initial state and store a corresponding shift sequence at \fI*outbuf\fP.
82
+ At most \fI*outbytesleft\fP bytes, starting at \fI*outbuf\fP, will be written.
83
+ If the output buffer has no more room for this reset sequence, it sets
84
+ \fBerrno\fP to \fBE2BIG\fP and returns (size_t)(\-1). Otherwise it increments
85
+ \fI*outbuf\fP and decrements \fI*outbytesleft\fP by the number of bytes
86
+ written.
87
+ .PP
88
+ A third case is when \fIinbuf\fP is NULL or \fI*inbuf\fP is NULL, and
89
+ \fIoutbuf\fP is NULL or \fI*outbuf\fP is NULL. In this case, the \fBiconv\fP
90
+ function sets \fIcd\fP's conversion state to the initial state.
91
+ .SH "RETURN VALUE"
92
+ The \fBiconv\fP function returns the number of characters converted in a
93
+ non-reversible way during this call; reversible conversions are not counted.
94
+ In case of error, it sets \fBerrno\fP and returns (size_t)(\-1).
95
+ .SH ERRORS
96
+ The following errors can occur, among others:
97
+ .TP
98
+ .B E2BIG
99
+ There is not sufficient room at \fI*outbuf\fP.
100
+ .TP
101
+ .B EILSEQ
102
+ An invalid multibyte sequence has been encountered in the input.
103
+ .TP
104
+ .B EINVAL
105
+ An incomplete multibyte sequence has been encountered in the input.
106
+ .SH "CONFORMING TO"
107
+ POSIX:2024
108
+ .SH NOTES
109
+ In each series of calls to the \fBiconv\fP function,
110
+ the last should be one with \fIinbuf\fP or \fI*inbuf\fP equal to NULL,
111
+ in order to complete the conversion of any partially converted input.
112
+
113
+ Although \fIinbuf\fP and \fIoutbuf\fP are typed as
114
+ \fBconst char **\fP and \fBchar **\fP, respectively,
115
+ this does not mean that the objects they point can be interpreted
116
+ as C strings or as arrays of characters:
117
+ the interpretation of character byte sequences is
118
+ handled internally by the conversion functions.
119
+ In some encodings, a zero byte may be a valid part of a multibyte character.
120
+
121
+ The caller of the \fBiconv\fP function
122
+ must ensure that the pointers passed to the function are suitable
123
+ for accessing characters in the appropriate character set.
124
+ For the encodings \fBUCS-2-INTERNAL\fP, \fBUCS-4-INTERNAL\fP, and \fBwchar_t\fP,
125
+ this includes ensuring correct alignment.
126
+ .SH "SEE ALSO"
127
+ .BR iconv_open (3),
128
+ .BR iconvctl (3),
129
+ .BR iconv_close (3)
@@ -0,0 +1,31 @@
1
+ .\" Copyright (c) Free Software Foundation, Inc.
2
+ .\"
3
+ .\" This is free documentation; you can redistribute it and/or
4
+ .\" modify it under the terms of the GNU General Public License as
5
+ .\" published by the Free Software Foundation; either version 3 of
6
+ .\" the License, or (at your option) any later version.
7
+ .\"
8
+ .\" References consulted:
9
+ .\" GNU glibc-2 source code and manual
10
+ .\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html
11
+ .\"
12
+ .TH ICONV_CLOSE 3 "December 15, 2024" "GNU"
13
+ .SH NAME
14
+ iconv_close \- deallocate descriptor for character set conversion
15
+ .SH SYNOPSIS
16
+ .nf
17
+ .B #include <iconv.h>
18
+ .sp
19
+ .BI "int iconv_close (iconv_t " cd );
20
+ .fi
21
+ .SH DESCRIPTION
22
+ The \fBiconv_close\fP function deallocates a conversion descriptor \fIcd\fP
23
+ previously allocated using \fBiconv_open\fP.
24
+ .SH "RETURN VALUE"
25
+ When successful, the \fBiconv_close\fP function returns 0. In case of error,
26
+ it sets \fBerrno\fP and returns \-1.
27
+ .SH "CONFORMING TO"
28
+ POSIX:2024
29
+ .SH "SEE ALSO"
30
+ .BR iconv_open (3)
31
+ .BR iconv (3)