LUIT

Section: XFree86 (1)
Updated: Version
索引 xjman
 

名前

luit - Unicode 端末のためのロケールおよび ISO2022 対応

 

書式

luit [ options ] [ -- ] [ program [ args ] ]

 

説明

luit は任意のアプリケーションと UTF-8 対応端末エミュレートとの間で 実行して使うフィルタである。 luit はアプリケーションの出力をロケールのエンコーディングから UTF-8 に 変換し、端末の入力を UTF-8 からロケールのエンコーディングに変換する。

アプリケーションは ISO 2022 および ISO 6429 のエスケープシーケンス を使って、出力のエンコーディングを別のものに変更することもできる。 ただしこの機能の利用は推奨しない。 マルチリンガル対応のアプリケーションは、 luit の変換機能に頼るのではなく、直接 UTF-8 を出力するように修正されるべき である。

 

オプション

-h
ヘルプを簡単に表示して終了する。
-list
対応している文字集合を一覧表示して終了する。
-v
詳細表示モードで動作する。
-c
標準入力から標準出力へ出力する単純なコンバータとして動作する。
-argv0 name
子プロセスの名前を設定する(argv[0] として渡される)。
+oss
アプリケーションの出力に含まれるシングルシフトの解釈を行わない。
+ols
アプリケーションの出力に含まれるロッキングシフトの解釈を行わない。
+osl
アプリケーションの出力に含まれる文字集合選択シーケンスの解釈を行わない。
+ot
全てのシーケンスの解釈を行わず、アプリケーションの出力に含まれる全ての シーケンスを変更せずにそのまま端末に送る。 このオプションを使うと画面が面白いことになるかもしれない。
-k7
キーボード入力のために 7 ビット文字を生成する。
+kss
キーボード入力のためにシングルシフトを生成する。
-kls
キーボード入力のためにロッキングシフト(SO/SI)を生成する。
-gl gn
GL の初期割り当てを設定する。 引き数は g0, g1, g2, g3 のいずれかでなければならない。 デフォルト値はロケールによって異なるが、普通は g0 である。
-gr gk
GR の初期割り当てを設定する。 デフォルト値はロケールによって異なるが、普通は EUC ロケール以外では g2 であり、EUC ロケールでは g1 である。
-g0 charset
初期状態で G0 で選択されている文字集合を設定する。 デフォルト値はロケールによって異なるが、普通は ASCII である。
-g1 charset
初期状態で G1 で選択されている文字集合を設定する。 デフォルト値はロケールによって異なる。
-g2 charset
初期状態で G2 で選択されている文字集合を設定する。 デフォルト値はロケールによって異なる。
-g3 charset
初期状態で G3 で選択されている文字集合を設定する。 デフォルト値はロケールによって異なる。
-ilog filename
子プロセスから受け取った全てのバイトデータを filename ファイルにログとして残す。
-olog filename
端末エミュレータに送った全てのバイトデータを filename ファイルにログとして残す。
--
オプションの終わりを示す。

 

使用例

luit の最も一般的な使い方は、UTF-8 モードの XTerm をロケールのエンコーディングに合わせて動作させることである。 ほとんどのロケールでは、この使い方ならオプションは不要である:

$ xterm -u8 -e luit

luit は、システムで普通に使われるものと異なるエンコーディングが組み込まれて いるアプリケーションと組み合わせて使うこともできる。 こういったアプリケーションを使うためには、 luit の ISO 2022 ステートを直接操作する必要がある:

$ xterm -u8 -e luit -g2 'CP 1252'

-v フラグを使うと luit の初期ステートを調べることができる。

将来的には XTerm は必要に応じて自動的に luit を呼び出すようになる予定である。

 

ファイル

/usr/X11R6/lib/X11/fonts/encodings/encodings.dir
システム全体でのエンコーディング情報を置いたディレクトリ。

/usr/X11R6/lib/X11/locale/locale.alias
ロケールとロケールのエンコーディングの対応を表すファイル。

 

セキュリティ

SVR4 (``Unix-98'') pty を使うシステム(Linux 2.2 以降、SVR4) では、 luit はコマンドを起動したユーザの権限で動作させるべきである。

SVR4 (``Unix-98'') pty を持たないシステム(特に BSD 系の OS)では、 luit を通常ユーザの権限で動作させると、tty が誰でも書き込みできる状態のまま になる。 これはセキュリティホールになるので、luit は警告を表示する(しかし、 それでも実行はされる)。 考えられる解決する方法のひとつは、 luit を root に setuid して動作させることである。 そうすると luit は pty の設定を直した上で、十分早く特権を捨てるはずである。 しかし起動処理のコードはまだ徹底的に検証されているわけではないので、 作者としてはセキュリティ関係の問題が起きても責任は取れない。

luit は、setuid してインストールされており、かつシステムが POSIX の保存ID機能を持っていない場合には、実行できないようになっている。

 

バグ

こういった複雑なものはまったく必要ないはずである。 システム全体でステートレスな UTF-8 が使えるようになるのが 目指すべき姿である。

中間的にできるバイトデータが自明でない文字集合にはまだ対応していない。

複数の制御文字集合を選べるようにする機能にはまだ対応していない。 今後も対応する予定はない。

 

関連項目

xterm(1), unicode(7), utf-8(7), charsets(7). Character Code Structure and Extension Techniques (ISO 2022, ECMA-35). Control Functions for Coded Character Sets (ISO 6429, ECMA-48).

 

作者

luit は XFree86 プロジェクトのために Juliusz Chroboczek <jch@xfree86.org> が作成した。


 

Index

名前
書式
説明
オプション
使用例
ファイル
セキュリティ
バグ
関連項目
作者

jman



Time: 07:00:42 GMT, January 12, 2009