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
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- 使用例
-
- ファイル
-
- セキュリティ
-
- バグ
-
- 関連項目
-
- 作者
-
Time: 07:00:42 GMT, January 12, 2009