名前
xdeview - バイナリファイル用の高性能デコーダ
書式
xdeview [Xt options] [-- [-f] [-b] [-o] [-d] [-v] [-s] [-t]] [file(s) or directories]
説明
xdeview は強力なエンコード/デコードエンジンへのグラフィカルインタフェースであ る。 このプログラムは電子メールや usenet 経由で受け取ったエンコードされた ファイルを処理するものだが、標準の uudecode(1) コマンドよりも高機能である。また、逆の動作を行うことも可能であり、ユー ザが持つバイナリファイルをエンコードして自動的にメールで送信することや ニュースへ投稿することができる。 xdeview がサポートしているデコード方法は uuencoding, xxencoding, Base64, BinHex であり、分割ファイルを処理することや複数ファイルを同時に処理することが できる。これにより、デコード作業が非常に簡単になる。ユーザは普通、デコー ドの準備をするためにファイルを手で編集する必要はない。 このような作業にはグラフィカルなフロントエンドを特に必要としないなら、 uudeview(1) と uuenview(1) を参照すること。
このプログラムは起動されると、与えられた全てのファイルをスキャンしてエ ンコードされたデータを探す。与えたファイルのいずれかがディレクトリなら ば、再帰的なディレクトリ移動が行われる。 ファイルをコマンドラインで指定する必要はない。後でプログラム中でファイ ルを選択することもできる。最初のスキャンが終わった後、うまくデコードで きそうなファイルリストがユーザに示される。ユーザはこの一覧からデコード するファイルを個別に選ぶ。
オプション
オプションをコマンドラインで設定する必要は特にない。オプションはプログ ラム中でも設定できるからである。オプションの前には -- を置かなければ ならず、そうでない場合には表示オプションと間違われるかもしれないので注 意すること。
-d | このプログラムを desperate モードにする。このモードでは、不完全なファ イルもデコードの候補となる。この機能が有効なのは 50 パートに分かれた投 稿の最後の部分が欠けているような場合であるが、無理にデコードしたファイ ルは大抵の場合は単に壊れていて利用できないだろう。不完全なファイルがど の程度使えるかはファイルの種類による。 |
-f | 高速モードでファイルをスキャンする。 xdeview は各入力ファイルに多くとも 1 ファイルしか含まれていないものと想定する。 これは普通、ニューススプール内にあるファイルでは正しい。このオプション を指定すると、複数の記事に分けられた入力ファイルのデコードは 中断される 。また、一部の正当性チェックも無効になるので、誤りがあるファイルもおそ らくデコードの候補として示される。デコードの時にエラーメッセージを受け 取ることもあるし、単に不正なファイルが得られることもある。このような問 題に遭いたくないのならば、 -f オプションは使わないこと。 |
-o | デコード時に既存のファイルを上書きすることを許可する。デフォルトでは、 上書きするか、別の名前を付けるか、そのファイルを飛ばすかの問い合わせが ユーザに対して行われる。 |
-v | 詳細表示を無効にする。通常、このプログラムは入力ファイルを読み込む際に 何らかのステータスメッセージを表示する。これは問題が起きたときには非常 に訳に立つ。このようなメッセージが鬱陶しい場合に使うこと。 |
-p パス | |
デコードしたファイルを書き込むディレクトリを設定する。これは有効なパス 名でなければならず、そうでない場合はファイルをデコードしようとした時に エラーとなる。デフォルト値はカレントの作業ディレクトリである。 | |
-b1 | このオプションは、サブジェクトからパート番号を取り出すという xdeview のポリシーを変更する。このオプションが必要となるのは稀であるが、 例えば複数に分割して投稿が行われた時のように、パート番号が 括弧 () や ブラケット [] 内に書かれている場合だけは必要となる。 デフォルトでは、 xdeview はまず 括弧 () 内にある数字を使う。しかし、この番号が全体のファイル数 を示しており、パート番号はブラケット [] に書かれている場合には、このパ ラメータを使って xdeview に他の数字を最初に読み込ませるようにすること。このオプションは、1 種類 の括弧しか含まないファイルや、どちらの種類の括弧も含まないファイルの展 開には影響を与えない。必要ならば、このオプションは -b[] のように使うこともできる。 |
-s | 「賢さを取り除く(minus smartness)」と読むこと。このオプションは、サブ ジェクト行からのパート番号の自動検出を無効にする。 xdeview がサブジェクト行の正しい展開に失敗してパート番号の推定時にエラーを出力 し、パートの順番が狂う場合にはこのオプションを試すとよい。このオプショ ンを使うと、パートは必ず順番通りに繋げられる(したがって、入力ファイル ではパートを正しい順番に並べなければならない)。 注意: この場合でも、きちんとした MIME ファイルに含まれている正しいパート番号は評価される。 |
-t | プレーンテキストのメッセージを使う。通常、uudeview はデコードの際には エンコードされたデータだけを表示する。このオプションを設定すると、 MIME メッセージに入っているテキストパートやエンコードされていないデータもデ コード対象して示す。プレーンテキストのメッセージにはファイル名が付けら れていないことが多いので、これらには 4 桁の数字を順に使ったユニークな 名前が付けられる。 |
メインメニュー
xdeview のメインウィンドウは 6 つの主な要素からなる。この一番上にあるのは メニューバー である。 真ん中にあるのは ファイルリスト である。これはエンコードされたデータ内で検出され、デコードしようとして いるファイル全てのリストである。ファイルリストの左にあるのが ステータスリスト である。これは各ファイルの状態を示す。このリストは普通、全てのファイル について "OK" となる。というのも、普通はエラーとなったファイルは表示さ れないからである。 右側にあるのは、良く使われる機能を呼び出すショートカットボタンを集めた ものである。ウィンドウの一番下にあるのは Save Path エントリのフィールドとステータスバーである。これらの要素については後で 個別に説明する。
メニューバー
File メニュー | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
Options | |||||||||||||||||||||||||||||||||||
プログラムの動作を変えるための各種オプションを設定する。ほとんどのオプ
ションは設定後に読み込んだファイルにしか適用されない点に注意すること。
| |||||||||||||||||||||||||||||||||||
Actions | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
Help |
| ||||||||||||||||||||||||||||||||||
ファイルリスト
ファイルリストは、エンコードされたデータのスキャンの際に見つかったファ イルが全て表示されるリストボックスである。これらのファイルはいつでもデ コード、プレビュー等の好きな処理をすることができる。このリストはリスト の右のスクロールバーを使ってスクロールさせることができる。
ファイルを 1 つずつ選ぶなら単にクリックすればよい。複数のファイルを選 ぶには、 CTRL キーを押しながらファイルをクリックする。
ステータスリスト
ステータスリストは ファイルリスト 中の対応するファイルの状態を示す。通常はここには "OK" が表示される。そ れ以外の場合には、ファイルがうまくデコードできなかった理由を説明するエ ラーメッセージが表示される。状態としては以下のものがある:
OK | ファイル中の全てのパートが見つかり、簡単に調べた限りではエンコードされ たデータは正しいと思われる。ファイルのデコード時にだけ起こる何らかの問 題があるかもしれないが、普通は全く問題ない。 |
Incomplete | |
このファイルには欠けているパートが 1 つ以上ある。このファイルをデコー ドしても出力データは壊れており、普通は使用できない。 | |
No Begin | |
ファイルの開始部分がない。デコードされたファイルはほぼ確実に壊れており、 利用できない。 | |
No End | ファイルの終了部分が見つからない。これは普通、ファイルの末尾のパートが 欠けていることを示す。デコードされたファイルがどの程度使えるかは、ファ イルの種類による。 |
Error | 以前にファイルをデコードしようとして失敗した。 |
ショートカットボタン
ウィンドウの右側にあるボタンはメニュー要素へのショートカットである。内 容については、前述のメインメニューの要素の説明を読むこと。
保存パス
これはデコードされたファイルが書き出されるパスである。
ステータス
プログラムの現在の処理内容やユーザに求めている入力に関する簡単なメッセー ジ。
エンコーディングメニュー
ファイルをエンコードする時("File" メニューの "Encode")には、大きなダイ アログボックスが開き、そのファイルに対してオプションを色々設定すること ができる。複数のファイルをエンコード対象として選んだ場合には、一番上の ステータス行に残りのファイル数が表示される。ダイアログそのものは全ての ファイルが処理されるまで消えない。
Filename | |
現在のエンコード対象ファイル。このフィールドを編集することはできない。 | |
Send As | |
ファイルを送る時に使う名前。デフォルトではファイル名からディレクトリ情 報を全て取り除いたものになる。 | |
Use Subject | |
メール送信やニュース投稿のとき、このテキストをサブジェクトとして使う。 ファイル名とパート番号は自動的に追加されるので、この行は空にしても良い。 | |
Lines per File | |
エンコードしたデータのパートごとの行数を設定する。大きいファイルは自動 的に複数のパートに分割される。ニュースグループにファイルを投稿する場合 や、メール受信者のメーラが大きなファイルを処理できない場合に使用するこ と。分割のサイズとしては 1000 行が良いだろう。"0" 行はファイル分割を行 わないという指定である。 | |
... Encoding | |
使用するエンコーディング方法を選択する。どれが最も良いか分からなければ、 筆者が書いた "デコーディング入門(Introduction to Decoding)" という記事 を見れば手がかりが得られるかもしれない。 | |
File In (Path) | |
エンコードしたファイルを置く場所を設定する。エンコードしたものは元のファ イルとベース名は同じであるが、拡張子 .001, .002 が付けられる(拡張子は "Lines per File" の設定から決まる必要なパート数によって決まる)。 | |
Email To | |
コンマで区切った電子メールアドレスのリストを与える。お使いのシステムで 電子メール送信が許可されていない場合には、このオプションは無効になって いるかもしれない。 | |
Post To | |
ファイルを投稿するニュースグループをコンマで区切ったリストを入力するこ とができる。お使いのシステムでニュース投稿がサポートされていない場合に は、このオプションは無効になっているかもしれない。 | |
NNTP Server | |
このフィールドは一部のシステムでしか現われない。つまり、ニュースのホス トが必要であるが、コンパイル時に何も設定されていない場合である。この フィールドがある場合、ニュース投稿を行うためには正しいホスト名を入力し なければならない。ニュースを投稿するつもりが特になければ、この設定は気 にしなくてもよい。 | |
OK | 選択されたアクションをこのファイルに対して実行し、次のファイルに移動す る。 |
OK to All | |
対象となっているそれぞれのファイルに対して現在の設定を使用する(別のファ イルについての問い合わせを行わない)。したがって、全てのファイルが一度 に処理される。 | |
Next | ファイルをエンコードせず、次のファイルに移動する(申し訳ないが、前に戻 るためのボタンはない)。 |
Cancel | エンコードをキャンセルし、メインメニューに戻る。 |
設定ファイル
ホームディレクトリに .xdeviewrc ファイルがあれば、これはプログラムの初期化時に Tcl インタプリタに読み 込まれる。このファイルは正しい Tcl プログラムでなければならないが、こ れを使ってオプションをデフォルトで設定することができる。Tcl を知らない 人のために変数設定の文法を以下に示す:
set 変数名 値
以下の変数(オプション)を設定することができる(オプションの動作について は、前の説明を参照すること):
OptionFast | |
1 を設定すると高速スキャンモードが使われる。 | |
OptionBracket | |
1 を設定すると、ブラケットの処理方法が変わる。 | |
OptionOverwrite | |
1 を設定すると、問い合わせなしでもファイルの上書きが許可されたことにな る。 | |
OptionDesperate | |
1 を設定すると、desperate モードに切り替わる。 | |
OptionVerbose | |
1 を設定すると、進行状況メッセージが出力される。 | |
SaveFilePath | |
これはデフォルトの保存パス(ファイルがデコードさせる先)を示す文字列変数 である。 | |
EncodeMaxLines | |
エンコードの際のファイルごとの最大の行数。"0" を指定すると無制限になる。 | |
EncodeEncoding | |
デフォルトで使うエンコード方法。"0" が uuencode エンコーディング、"1" が xxencode エンコーディング、"2" が Base64 エンコーディングである。 | |
NNTPServer | |
使用する NNTP サーバのアドレス(一部のシステムだけで必要)。環境変数 NNTPSERVER で設定することもできる(こちらの方が好ましい)。 | |
実行時のメッセージ
詳細表示モードを有効にしてあれば、進行状況メッセージが Runtime Messages という名前の独立したウィンドウが現われる。スキャニングの段階で生成され たメッセージを理解できれば、これはプログラムの進行を追跡する時には非常 に役立つし、ファイルのデコードに失敗した理由を調べるために使うことがで きる。プログラムを動かすだけならこのセクションを理解する必要はない。
最初に「読み込み中」のメッセージが表示される。これは文字列 "Loaded" で 始まる。それぞれの行には次の要素が表すはずである:
入力ファイル | |
最初の要素は、パートの読み込みが行われる入力ファイルである。1 つのファ イル内でたくさんのパートが検出されることもある。 | |
サブジェクト行 | |
シングルクォートで括った形で、サブジェクト行が完全に複製される。 | |
識別子 | |
このプログラムは、スレッドのためのユニークな識別子をサブジェクト行から 決め、同じファイルに属すると思われる記事をまとめるために使う。このアル ゴリズムの結果は、括弧で括って表示される。 | |
ファイル名 | |
ファイル名がサブジェクト行やファイル内で見つかったかどうか(例えば、 begin 行や Content-Type 情報の一部として見つかることがある)。 | |
パート番号 | |
パート番号。これはサブジェクト行パート番号から求めるか、あるいは正しい MIME 形式のメッセージ場合には「パート」情報から求める。 | |
Begin/End | |
"begin" トークンまたは "end" トークンが検出された場合、ここに表示され る。 | |
エンコーディング型 | |
このパート内でエンコードされたデータが検出された場合、"UUdata", "Base64", "XXdata", "Binhex" のいずれかがここに表示される。 | |
スキャンが終わった後にはこれ以外のメッセージが出力される。記事のグルー プそれぞれに対して 1 つの行が出力される。この行の内容は例で見る方が分 かりやすいだろう。以下に例を示す: | |
Found mailfile.gz State 16 UUData Parts begin 1 2 3 4 5 end 6 OK | |
この行はファイル mailfile.gz が見つかったことを示す。ファイルは uuencode されており("UUData")、6 つ のパートからなる。また、"begin" トークンが最初のパートで見つかり、 "end" トークンが 6 番目のパートで見つかった。全て揃っているように見え るので、このファイルには "OK" のタグが付けられる。 State には以下に示す各種ビットが設定される。ビットの値は OR を取ることができ る。 | |
1 | 欠けているパートがある |
2 | Begin が無い |
4 | End が無い |
8 | エンコードされているデータが見つからない |
16 | ファイルは問題なしと思われる |
32 | ファイルのデコード時にエラーが起きた |
64 | ファイルがうまくデコードできた |
注意
xdeview が実行できず "command not found" といった表示がされるが、ファイルその ものは確かにある場合には、 xdeview の最初の部分を見て、メインファイル uuwish への参照が正しいかどうかを確認すること。
関連項目
uudeview(1), uuenview(1), uudecode(1), uuencode(1),
ウェブ上にある uudeview のホームページ:
http://www.uni-frankfurt.de/~fp/uudeview/
バグ
バグを見つけたと思ったら、入力ファイル(できれば単に入れるだけでなく、 元のファイルに圧縮とエンコードを施すこと)とプログラムのメッセージのリ スト(詳細表示モード)を fp@informatik.uni-frankfurt.de 宛に送ること。