History
Luit was written by Juliusz Chroboczek for the XFree86 Project in
2001-2002. There were improvements and fixes by several people, in
particular Tomohiro Kubota's extensions for CJK encodings.
There was no maintainer for some time; I adopted it in 2006 to
ensure that it continued to support xterm (details are listed in
the luit.log.html file within the source).
Besides the maintenance issue that attracted my attention in 2005
(untested changes to compiled-in file locations by Xorg hackers),
Luit has had from the outset a technical issue: its associated
font-encoding library.
Juliusz Chroboczek used the font-encoding library to work around
performance issues with direct use of iconv. This solution has
proven to be a drawback:
the font-encoding library is little used (other than by luit),
and also lacks a maintainer. the font-encoding library does
not provide the full range of encodings that iconv does. the
Xorg configure scripting and other dependencies surrounding
the library have been subject to uncontrolled growth.
I solved the problem by implementing an efficient conversion using
iconv. Luit still supports the font-encoding library if it is found
by the configure script. If you choose, luit can easily be built
using iconv.
However, as of luit 2.0, the font-encoding library has been
deprecated:
Luit includes all of the relevant functionality for using the
".enc" files which are distributed separately. You may have
these files as a separate package, e.g., "xfonts-encodings",
or as part of "xfonts-x11-fonts-misc", "x11-font-encodings" or
even "encodings". If you have trouble finding the package, look
for a specific file such as adobe-standard.enc. The encoding
files are rarely packaged with luit, and oddly enough are never
made a package dependency. The only other use that I am aware
of for the files is for the defunct xprint program.
To see which ".enc" files luit may use, run
luit -list-fontenc
Here is sample output. The old version of luit can use only
about a third of these encodings, i.e.,
big5.eten-0, big5hkscs-0, dec-special, gb18030.2000-0,
gb18030.2000-1, gb2312.1980-0, gbk-0, ibm-cp437, ibm-cp850,
ibm-cp852, ibm-cp866, iso8859-11, iso8859-13, iso8859-16,
jisx0201.1976-0, jisx0208.1990-0, jisx0212.1990-0,
ksc5601.1987-0, microsoft-cp1250, microsoft-cp1251,
microsoft-cp1252, tcvn-0
With luit 2.0, the -encoding option permits you to use the
remaining files (as well as any you may have customized):
adobe-dingbats, adobe-standard, adobe-symbol, armscii-8,
ascii-0, big5-0, big5.cp950-0, cns11643-1, cns11643-2,
cns11643-3, gb18030-0, iso8859-6.16, iso8859-6.8x,
jisx0208.1983-0, ksc5601.1992-3, ksx1001.1997-0, ksx1001.1998-0,
ksx1001.1998-3, ksxjohab-1, microsoft-ansi, microsoft-cp1253,
microsoft-cp1254, microsoft-cp1255, microsoft-cp1256,
microsoft-cp1257, microsoft-cp1258, microsoft-win3.1,
mulearabic-0, mulearabic-1, mulearabic-2, mulelao-1,
sun.unicode.india-0, suneu-greek, tis620-0, tis620-2,
tis620.2529-1, tis620.2533-0, tis620.2533-1, viscii1.1-1
Some of the ".enc" files are unused by the old luit because
the font-encoding library has built-in tables of the ISO-8859-x
encodings and a few others. With luit 2.0, you can make a list
of the built-in tables as well as change luit's preference when
looking in the font-encoding files, built-in tables and iconv
tables. Luit 2.0 can use the data from iconv directly without
relying upon external ".enc" files. The ".enc" files (and
built-in tables) are preferred for performance reasons. Existing
users of luit would complain about the loss of 1- or 2-tenths
of a second for startup with CJK encodings. Really.
Normally luit uses your locale settings to determine the
corresponding character encoding. Use --list-iconv to see the
available choices, e.g.,
luit -list-iconv
Here is sample output on a suitably configured system. Your
system may have fewer (locale support generally has been made
more difficult to configure in systems geared toward novice
developers such as Ubuntu). But the portable iconv implementation
does support a wide range of encodings, and you may find
additional encodings using
iconv -l
On the Debian system where I am writing this, that gives a list
of 1168 encodings.
1.1.1:
This release includes portability fixes for various platforms,
changes to resolve issues found static analysis and compiler warnings,
and build configuration cleanups.
1.1.0:
This release includes these changes from Thomas Dickey's luit-20100601:
* add -alias option to allow override of locale.alias pathname.
* improve fix waitForInput as suggested in Freedesktop #26383.
* fix warnings from clang --analyze
As well as many of the same build time & janitorial cleanups found in
the other recent X.Org module releases.
* Define _XOPEN_SOURCE to 500 on linux
* strdup() is only exposed by glibc headers if _XOPEN_SOURCE is defined
to a value >= 500.
* Replace malloc/strcpy pairs with strdup
* Man page typo fixes
* Fix sparse warnings: non-ANSI function declaration (missing void)
* Fix many sparse warnings of Using plain integer as NULL pointer
* Change luit_CFLAGS to AM_CFLAGS to make automake-1.10 happier
* Fix typo in luit.man
* Match luit locale.alias location to libX11 default
Luit expects to find the locale.alias file in ${libdir}/X11/locale.
However, libX11 installs the locale files in ${datadir}/X11/locale,
by default.
This package provides luit, a filter to convert the output of arbitrary
applications from a given locale's encoding into UTF-8 and terminal
input from UTF-8 into the given locale's encoding.
This is from the modular X.org X11 project.