3
.\" Escape single quotes in literal strings from groff's Unicode transform.
10
.TH LUIT 1 __vendorversion__
12
luit \- Locale and ISO\ 2022 support for Unicode terminals
26
is a filter that can be run between an arbitrary application and a
27
UTF-8 terminal emulator. It will convert application output from the
28
locale's encoding into UTF-8, and convert terminal input from UTF-8
29
into the locale's encoding.
31
An application may also request switching to a different output
32
encoding using ISO\ 2022 and ISO\ 6429 escape sequences. Use of this
33
feature is discouraged: multilingual applications should be modified
34
to directly generate UTF-8 instead.
37
is usually invoked transparently by the terminal emulator. For
38
information about running
40
from the command line, see EXAMPLES below.
44
Display some summary help and quit.
47
List the supported charsets and encodings, then quit.
50
Print luit's version and quit.
56
Function as a simple converter from standard input to standard output.
59
In startup, establish a handshake between parent and child processes.
60
This is needed for some systems, e.g., FreeBSD.
63
Exit as soon as the child dies. This may cause
65
to lose data at the end of the child's output.
68
Set the child's name (as passed in argv[0]).
70
.BI \-encoding " encoding"
75
rather than the current locale's encoding.
78
Disable interpretation of single shifts in application output.
81
Disable interpretation of locking shifts in application output.
84
Disable interpretation of character set selection sequences in
88
Disable interpretation of all sequences and pass all sequences in
89
application output to the terminal unchanged. This may lead to
93
Generate seven-bit characters for keyboard input.
96
Disable generation of single-shifts for keyboard input.
99
Use GL codes after a single shift for keyboard input. By default, GR
100
codes are generated after a single shift when generating eight-bit
104
Generate locking shifts (SO/SI) for keyboard input.
107
Set the initial assignment of GL. The argument should be one of
113
The default depends on the locale, but is usually
117
Set the initial assignment of GR. The default depends on the locale,
120
except for EUC locales, where it is
124
Set the charset initially selected in G0. The default depends on
125
the locale, but is usually
129
Set the charset initially selected in G1. The default depends on the
133
Set the charset initially selected in G2. The default depends on the
137
Set the charset initially selected in G3. The default depends on the
140
.BI \-ilog " filename"
143
all the bytes received from the child.
145
.BI \-olog " filename"
148
all the bytes sent to the terminal emulator.
150
.BI \-alias " filename"
151
the locale alias file
153
(default: __locale_alias__).
158
The most typical use of
160
is to adapt an instance of
162
to the locale's encoding. Current versions of
166
automatically when it is needed. If you are using an older release of
168
or a different terminal emulator, you may invoke
172
$ xterm \-u8 \-e luit
174
If you are running in a UTF-8 locale but need to access a remote
175
machine that doesn't support UTF-8,
177
can adapt the remote output to your terminal:
179
$ LC_ALL=fr_FR luit ssh legacy-machine
182
is also useful with applications that hard-wire an encoding that is
183
different from the one normally used on the system or want to use
184
legacy escape sequences for multilingual output. In particular,
187
that do not speak UTF-8 well can use
189
for multilingual output:
191
$ luit -encoding 'ISO 8859-1' emacs -nw
196
M-x set-terminal-coding-system RET iso-2022-8bit-ss2 RET
201
The file mapping locales to locale encodings.
203
On systems with SVR4 (\*(``Unix-98\*('') ptys (Linux version 2.2 and later,
206
should be run as the invoking user.
208
On systems without SVR4 (\*(``Unix-98\*('') ptys (notably BSD variants),
211
as an ordinary user will leave the tty world-writable; this is a
212
security hole, and luit will generate a warning (but still accept to
213
run). A possible solution is to make
217
should drop privileges sufficiently early to make this safe. However,
218
the startup code has not been exhaustively audited, and the author
219
takes no responsibility for any resulting security issues.
222
will refuse to run if it is installed setuid and cannot safely drop
225
None of this complexity should be necessary. Stateless UTF-8
226
throughout the system is the way to go.
228
Charsets with a non-trivial intermediary byte are not yet supported.
230
Selecting alternate sets of control characters is not supported and
233
xterm(__appmansuffix__), unicode(__miscmansuffix__), utf-8(__miscmansuffix__), charsets(__miscmansuffix__).
236
.I Character Code Structure and Extension Techniques (ISO\ 2022, ECMA-35).
238
.I Control Functions for Coded Character Sets (ISO\ 6429, ECMA-48).
243
included in this X.Org Foundation release
244
was originally written by Juliusz Chroboczek <jch@freedesktop.org>
245
for the XFree86 Project and includes additional contributions from
246
Thomas E. Dickey required for newer releases of xterm(__appmansuffix__).