EN JA
XDEVIEW(1)
XDEVIEW(1) FreeBSD General Commands Manual XDEVIEW(1)

名前

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 メニュー
Load ...
エンコードされたファイルをロードする。これらのファイルはスキャンされ、エンコードされたデータとファイルが検索される。これらのファイルはファイルリストに追加される。ディレクトリを検索することもでき、この場合にはそのディレクトリへの再帰的な移動が行われる。
Encode
ファイル(複数可)をエンコードする。エンコードしたファイルはディスクに格納することや電子メールで送ること、ニュースグループに投稿することができる。これらについては後述する。
Helpers
xdeview は、Execute"ボタンが押されたときに適切なデフォルト動作を行うために .mailcap と .mime.types から情報を読み込む。このダイアログでは、これらのファイルの位置を設定することができる。
Save Setup
現在のオプションやファイルの入出力の対象パスをホームディレクトリの .xdeviewrc ファイルに保存する。このファイルは起動時に自動的に読み込まれるので、保存された設定は次回以降のセクションでデフォルトで設定される。このリソースファイルは実際には Tcl のスクリプトであり、好きなエディタで編集することができる。
Quit
プログラムを終了する。
Options
プログラムの動作を変えるための各種オプションを設定する。ほとんどのオプションは設定後に読み込んだファイルにしか適用されない点に注意すること。
Fast Scanning
高速スキャンモードを設定する。このプログラムは、各入力ファイルに多くとも 1 ファイルしか含まれていないものと想定する(普通、ニューススプール内にあるファイルでは正しい)。各ファイルについて内容を全部読む必要がないのでスキャニングエンジンの動作は高速になるが、エンコードされたデータが見つかった後にはスキャンが終了する。

高速モードでは、デコーダは安全のためのオプションをいくつか無効にしなければならない。したがって、ファイルに何らかの問題がある場合でも、これを検出できるのは最終的にデコードを行う時だけとなる。

Automatic Overwrite
出力先ディレクトリに既に存在する名前のファイルをデコードするとき、ファイルを上書きするかどうかユーザに問い合わせが行われる。このオプションを有効にすると、出力ファイルは問い合わせなしで上書きされる。
Desperate Mode
ユーザに示されるファイルは通常、全てのパートを検出できたものだけである。 desparate モードを有効にすると、ユーザは他のファイルも見ることができる。この際には問題点の適切な説明がステータスリストに表示される。desparate モードでは、デコーダは MIME メッセージ外部にある短い Base64 形式ファイルも検出しようとする。この機能は通常は無効である。というのも、無理に Base64 エンコーディングを見つけようとすると、エンコードされたデータを誤って検出し、不正なファイルができてしまうかもしれないからである。
Verbose Mode
入力ファイルのスキャン時に追加メッセージが表示されるテキストボックスを別ウィンドウで開く。このようなメッセージは、ファイルがうまくデコードできない場合に問題点を見つける際に非常に役立つ。
Alternate Bracket Policy
デコーダがサブジェクト行からパート番号を取り出そうとする際に使うヒューリスティクスを変える。このアルゴリズムでは通常、ブレース () 内の数字をブラケット [] 内の数字より優先させる。両方の種類の括弧があり、衝突するような使い方をされている場合(例えば、パート番号とシリーズ番号が両方ともある場合)には、括弧の使い方を明示的に決めなければならないかもしれない。このオプションが false (デフォルト値)ならば「パート番号」はブレース () から取り出され、true ならばブラケット [] から取り出される。
Dumb Mode
サブジェクト行の展開によるパート番号の自動検出を無効にする。 xdeview が正しいパート番号の取得に失敗した場合に用いること。このオプションを設定すると、パートを正しい順番で並べて入力ファイルにしなければならない。また、この方法では欠けているパートは検出されない。
Handle Text Files
xdeview は通常、デコードの際にはエンコードされたデータだけを表示する。このオプションを設定すると、 MIME メッセージに入っているテキストパートやエンコードされていないデータもデコード対象して示される。プレーンテキストのメッセージにはファイル名が付けられていないことが多いので、これらには 4 桁の数字を順に使ったユニークな名前が付けられる。
Auto Info
ファイルリスト中のファイルをクリックすると情報ウィンドウを開くようにする。
Actions
Decode
選択されたファイル(複数可)をデコードする。
Rename
選択されたファイル(複数可)の名前を変える。これは例えば、ファイル名が既存のファイルと重なる場合や、名前がシステムの制限に合わない場合に使う。
Decode All
現在ファイルリストに表示されているファイルを全てデコードする。
Info
現在選択されているファイルの利用可能な情報を表示する(複数のファイルが選択されている場合には、最初のファイルの情報だけが表示される)。表示される情報は、ファイルの 0 番目のパート(利用可能ならば)またはエンコードされたデータの開始部分までにある最初のパートのヘッダである。
Execute
外部プログラムを実行nし、現在選択されているファイルを与える。外部プログラムは、まずメッセージの Content-Type を(可能ならば)参照し、次にファイルの拡張子をチェックして決める。ユーザの .mailcap または .mime.types ファイルから適切な情報が読み込まれる(ただし、.mailcap ファイル内の情報の扱いは現在のところ不十分である)。マッチする MIME 型が見つからない場合には、ユーザが任意のコマンドを入力できるダイアログボックスが表示される。
List Text File
これは、テキストファイルがネット上をエンコードされた形で送られるという滅多にない場合のためのものである。これを使うのは、ユーザが対象のファイルが確かにテキストファイルであることが分かっている場合だけである。それ以外の場合には、画面上にゴミが読み込まれることになる。
Help
About
作者からの簡単なメッセージである。
License
xdeview を配布する際のライセンスである GPL を表示する。ちゃんと読まないと、作者の弁護士を相手にすることになるだろう。

ファイルリスト

ファイルリストは、エンコードされたデータのスキャンの際に見つかったファイルが全て表示されるリストボックスである。これらのファイルはいつでもデコード、プレビュー等の好きな処理をすることができる。このリストはリストの右のスクロールバーを使ってスクロールさせることができる。

ファイルを 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 宛に送ること。
 
June 1996