nrelease - fix/improve livecd
[dragonfly.git] / lib / libc / iconv / iconvctl.3
CommitLineData
0d5acd74
JM
1.\" Copyright (c) 2009 Gabor Kovesdan <gabor@FreeBSD.org>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\" notice, this list of conditions and the following disclaimer in the
11.\" documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" Portions of this text are reprinted and reproduced in electronic form
26.\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
27.\" Portable Operating System Interface (POSIX), The Open Group Base
28.\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
29.\" Electrical and Electronics Engineers, Inc and The Open Group. In the
30.\" event of any discrepancy between this version and the original IEEE and
31.\" The Open Group Standard, the original IEEE and The Open Group Standard is
32.\" the referee document. The original Standard can be obtained online at
33.\" http://www.opengroup.org/unix/online.html.
34.\"
35.\" $FreeBSD: head/lib/libc/iconv/iconvctl.3 233577 2012-03-27 20:50:14Z joel $
36.\"
9d944071 37.Dd January 9, 2014
0d5acd74
JM
38.Dt ICONVCTL 3
39.Os
40.Sh NAME
41.Nm iconvctl
42.Nd controlling and diagnostical facility for
43.Xr iconv 3
44.Sh LIBRARY
45.Lb libc
46.Sh SYNOPSIS
47.In iconv.h
48.Ft int
49.Fn iconvctl "iconv_t cd" "int request" "void *argument"
50.Sh DESCRIPTION
51The
52.Fn iconvctl
53function can retrieve or set specific conversion
54setting from the
55.Fa cd
56conversion descriptor.
57The
58.Fa request
59parameter specifies the operation to accomplish and
60.Fa argument
61is an operation-specific argument.
62.Pp
63The possible operations are the following:
64.Bl -tag -width indent
4ca2ad27 65.It Dv ICONV_TRIVIALP
0d5acd74
JM
66In this case
67.Fa argument
68is an
69.Ft int *
70variable, which is set to 1 if the encoding is trivial one, i.e.
71the input and output encodings are the same.
72Otherwise, the variable will be 0.
4ca2ad27 73.It Dv ICONV_GET_TRANSLITERATE
0d5acd74
JM
74Determines if transliteration is enabled.
75The answer is stored in
76.Fa argument ,
77which is of
78.Ft int * .
79It will be set to 1 if this feature is enabled or set to 0 otherwise.
4ca2ad27 80.It Dv ICONV_SET_TRANSLITERATE
0d5acd74
JM
81Enables transliteration if
82.Fa argument ,
83which is of
84.Ft int *
85set to 1 or disables it if
86.Fa argument
87is set to 0.
4ca2ad27 88.It Dv ICONV_GET_DISCARD_ILSEQ
0d5acd74
JM
89Determines if illegal sequences are discarded or not.
90The answer is stored in
91.Fa argument ,
92which is of
93.Ft int * .
94It will be set to 1 if this feature is enabled or set to 0 otherwise.
4ca2ad27 95.It Dv ICONV_SET_DISCARD_ILSEQ
0d5acd74
JM
96Sets whether illegal sequences are discarded or not.
97.Fa argument ,
98which is of
99.Ft int *
100set to 1 or disables it if
101.Fa argument
102is set to 0.
4ca2ad27 103.It Dv ICONV_SET_HOOKS
0d5acd74
JM
104Sets callback functions, which will be called back after successful
105conversions.
106The callback functions are stored in a
107.Ft struct iconv_hooks
108variable, which is passed to
109.Nm
110via
111.Fa argument
112by its address.
4ca2ad27 113.It Dv ICONV_GET_ILSEQ_INVALID
9d944071
JM
114Determines if a character in the input buffer that is valid,
115but for which an identical character does not exist in the target
116codeset returns
117.Er EILSEQ
118or not.
119The answer is stored in
120.Fa argument ,
121which is of
122.Ft int * .
123It will be set to 1 if this feature is enabled or set to 0 otherwise.
4ca2ad27 124.It Dv ICONV_SET_ILSEQ_INVALID
9d944071
JM
125Sets whether a character in the input buffer that is valid,
126but for which an identical character does not exist in the target
127codeset returns
128.Er EILSEQ
129or not.
130If
131.Fa argument ,
132which is of
133.Ft int *
134is set to 1 it will be enabled,
135and if
136.Fa argument
137is set to 0 it will be disabled.
0d5acd74
JM
138.El
139.\" XXX: fallbacks are unimplemented and trying to set them will always
140.\" return EOPNOTSUPP but definitions are provided for source-level
141.\" compatibility.
4ca2ad27 142.\".It Dv ICONV_SET_FALLBACKS
0d5acd74
JM
143.\"Sets callback functions, which will be called back after failed
144.\"conversions.
145.\"The callback functions are stored in a
146.\".Ft struct iconv_fallbacks
147.\"variable, which is passed to
148.\".Nm
149.\"via
150.\".Fa argument
151.\"by its address.
152.Sh RETURN VALUES
153Upon successful completion
154.Fn iconvctl ,
155returns 0.
156Otherwise, \-1 is returned and errno is set to
157specify the kind of error.
158.Sh ERRORS
159The
160.Fn iconvctl
161function may cause an error in the following cases:
162.Bl -tag -width Er
163.It Bq Er EINVAL
164Unknown or unimplemented operation.
165.It Bq Er EBADF
166The conversion descriptor specified by
167.Fa cd
168is invalid.
169.El
170.Sh SEE ALSO
171.Xr iconv 1 ,
172.Xr iconv 3
173.Sh STANDARDS
174The
175.Nm
176facility is a non-standard extension, which appeared in
177the GNU implementation and was adopted in
d118ff3c 178.Fx 9.0
0d5acd74
JM
179for compatibility's sake.
180.Sh AUTHORS
181This manual page was written by
d118ff3c 182.An Gabor Kovesdan Aq Mt gabor@FreeBSD.org .
0d5acd74
JM
183.Sh BUGS
184Transliteration is enabled in this implementation by default, so it
185is impossible by design to turn it off.
186Accordingly, trying to turn it off will always fail and \-1 will be
187returned.
188Getting the transliteration state will always succeed and indicate
189that it is turned on, though.