NAME
SYNOPSIS
#include
DESCRIPTION
REQUEST VALUES
ICONV_GET_TRANSLITERATE
ICONV_GET_DISCARD_NON_IDENTICAL
ICONV_SET_DISCARD_NON_IDENTICAL
ICONV_GET_DISCARD_ILSEQ
RETURN VALUE
ERRORS
CONFORMING TO
SEE ALSO
-->

NAME

iconvctl - control iconv behavior

SYNOPSIS

#include

int iconvctl (iconv_t cd , int request, void * argument);

DESCRIPTION

The argument cd must be a conversion descriptor created using the function iconv_open.

iconvctl queries or adjusts the behavior of the iconv function, when invoked with the specified conversion descrip- tor, depending on the request value.

REQUEST VALUES

The following are permissible values for the request parameter.

ICONV_TRIVIALP argument should be an int * which will receive 1 if the conversion is trivial, or 0 otherwise.

ICONV_GET_TRANSLITERATE

argument should be an int * which will receive 1 if transliteration is enabled in the conver-
sion, or 0 otherwise.

ICONV_SET_TRANSLITERATE

argument should be a const int *, pointing to an int value. A non-zero value is used to
enable transliteration in the conversion. A zero value disables it.

ICONV_GET_DISCARD_INVALID

argument should be an int * which will receive 1 if "discard invalid multibyte sequence from
the input and continue" is enabled in the conversion, or 0 otherwise.

ICONV_SET_DISCARD_INVALID
argument should be a const int *, pointing to an int value. A non-zero value is used to
enable "discard invalid multibyte sequence from the input and continue" in the conversion.
A zero value disables it.

ICONV_GET_DISCARD_NON_IDENTICAL

argument should be an int * which will receive 1 if "discard character that cannot be repre-
sented in the target character set and continue" is enabled in the conversion, or 0 other-
wise.

ICONV_SET_DISCARD_NON_IDENTICAL

argument should be a const int *, pointing to an int value. A non-zero value is used to
enable "discard character that cannot be represented in the target character set and con-
tinue" in the conversion. A zero value disables it.

ICONV_GET_DISCARD_ILSEQ

argument should be an int * which will receive 1 if both "discard" behaviours are enabled in
the conversion, or 0 otherwise.

ICONV_SET_DISCARD_ILSEQ

argument should be a const int *, pointing to an int value. A non-zero value is used to
enable both "discard" behaviours in the conversion. A zero value disables them.

ICONV_GET_FROM_SURFACE

argument should be an unsigned int * which will receive the from-side (input side) surface
of the conversion.

ICONV_SET_FROM_SURFACE

argument should be a const unsigned int *, pointing to an unsigned int value. This value is installed as the from-side (input side) surface of the conversion. The value is a bit mask. Zero denotes no surface. The value ICONV_SURFACE_EBCDIC_ZOS_UNIX has an effect on EBCDIC encodings: The EBCDIC newline 0x15 will get mapped to LF instead of NEL.

ICONV_GET_TO_SURFACE

argument should be an unsigned int * which will receive the to-side (output side) surface of
the conversion.

ICONV_SET_TO_SURFACE

argument should be a const unsigned int *, pointing to an unsigned int value. This value is installed as the to-side (output side) surface of the conversion. The value is a bit mask. Zero denotes no surface. The value ICONV_SURFACE_EBCDIC_ZOS_UNIX has an


effect on EBCDIC encodings: LF, instead of NEL, will get mapped to the EBCDIC new-
line 0x15.


RETURN VALUE

The iconvctl function returns 0 if it succeeds. In case of error, it sets errno and returns -1.

ERRORS

The following errors can occur, among others:

EINVAL The request is invalid.

CONFORMING TO

This function is implemented only in GNU libiconv and not in other iconv implementations. It is not backed by a standard. You can test for its presence through (_LIBICONV_VERSION >= 0x0108).

SEE ALSO

iconv_open(3) iconv(3)