Manpages - vis.3bsd
(See
for include usage.)
The
function copies into
a string which represents the character
If
needs no encoding, it is copied in unaltered. The string is null terminated, and a pointer to the end of the string is returned. The maximum length of any encoding is four bytes (not including the trailing
thus, when encoding a set of characters into a buffer, the size of the buffer should be four times the number of bytes encoded, plus one for the trailing
The flag parameter is used for altering the default range of characters considered for encoding and for altering the visual representation. The additional character,
is only used when selecting the
encoding format (explained below).
The
and
functions copy into
a visual representation of the string
The
and
functions encode characters from
up to the first
The
and
functions encode exactly
characters from
(this is useful for encoding a block of data that may contain
Both forms
terminate
The size of
must be four times the number of bytes encoded from
(plus one for the
Both forms return the number of characters in
(not including the trailing
The
function allocates space dynamically to hold the string. The
versions of the functions also take an additional argument
that indicates the length of the
buffer. If
is not large enough to fit the converted string then the
and
functions return -1 and set
to
The
function takes an additional argument,
that is used to pass in and out a multibyte conversion error flag. This is useful when processing single characters at a time when it is possible that the locale may be set to something other than the locale of the characters in the input data.
The functions
and
correspond to
and
but have an additional argument
pointing to a
terminated list of characters. These characters will be copied encoded or backslash-escaped into
These functions are useful e.g. to remove the special meaning of certain characters to shells.
The encoding is a unique, invertible representation composed entirely of graphic characters; it can be decoded back into the original form using the
or
functions.
There are two parameters that can be controlled: the range of characters that are encoded (applies only to
and
and the type of representation used. By default, all non-graphic characters, except space, tab, and newline are encoded (see
The following flags alter this:
Also encode double quotes
Also encode the magic characters
and
recognized by
Also encode the meta characters used by shells (in addition to the glob characters):
and
Also encode space.
Also encode tab.
Also encode newline.
Synonym for
Synonym for
Only encode
characters. Unsafe means control characters which may cause common terminals to perform unexpected functions. Currently this form allows space, tab, newline, backspace, bell, and return — in addition to all graphic characters — unencoded.
(The above flags have no effect for
and
When using these functions, place all graphic characters to be encoded in an array pointed to by
In general, the backslash character should be included in this array, see the warning on the use of the
flag below).
There are six forms of encoding. All forms use the backslash character
to introduce a special sequence; two backslashes are used to represent a real backslash, except
that uses
or
that uses
These are the visual formats:
Use an
to represent meta characters (characters with the 8th bit set), and use caret
to represent control characters (see
The following formats are used:
Represents the control character
Spans characters
through
and
(as
Represents character
with the 8th bit set. Spans characters
through
Represents control character
with the 8th bit set. Spans characters
through
and
(as
Represents
space.
Represents Meta-space.
Use C-style backslash sequences to represent standard non-printable characters. The following sequences are used to represent the indicated characters:
When using this format, the
parameter is looked at to determine if a
character can be encoded as
instead of
If
is an octal digit, the latter representation is used to avoid ambiguity.
Non-printable characters without C-style backslash sequences use the default representation.
Use a three digit octal sequence. The form is
where
represents an octal digit.
Same as
except that non-printable characters without C-style backslash sequences use a three digit octal sequence.
Use URI encoding as described in RFC 1738. The form is
where
represents a lower case hexadecimal digit.
Use MIME Quoted-Printable encoding as described in RFC 2045, only don’t break lines and don’t handle CRLF. The form is
where
represents an upper case hexadecimal digit.
There is one additional flag,
which inhibits the doubling of backslashes and the backslash before the default format (that is, control characters are represented by
and meta characters as
With this flag set, the encoding is ambiguous and non-invertible.
These functions support multibyte character input. The encoding conversion is influenced by the setting of the
environment variable which defines the set of characters that can be copied without encoding.
If
is set, processing is done assuming the C locale and overriding any other environment settings.
When 8-bit data is present in the input,
must be set to the correct locale or to the C locale. If the locales of the data and the conversion are mismatched, multibyte character recognition may fail and encoding will be performed byte-by-byte instead.
As noted above,
must be four times the number of bytes processed from
But note that each multibyte character can be up to
bytes so in terms of multibyte characters,
must be four times
times the number of characters processed from
Specify the locale of the input data. Set to C if the input data locale is unknown.
The functions
and
will return
and the functions
and
will return -1 when the
destination buffer size is not enough to perform the conversion while setting
to:
The destination buffer size is not large enough to perform the conversion.
The
and
functions first appeared in
The
and
functions appeared in
The buffer size limited versions of the functions
and
appeared in
and
Multibyte character support was added in
and