Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ scan(1) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

inc(1)

pick(1)

show(1)

mh−format(5)

sendmail(8)

SCAN(1)  —  NEWS-OS Programmer’s Manual

名称

scan − メッセージごとに1行の scan リストを作成する

形式

scan ­[+folder] ­[msgs] ­[−clear] ­[−noclear] ­[−form formatfile] ­[−format string] ­[−header] ­[−noheader] ­[−width columns] ­[−reverse] ­[−noreverse] ­[−file filename] ­[−cnv] ­[−nocnv] ­[−help]

解説

scan は、指定されたメッセージ群に対してメッセージごとに 1行ずつのリストを作成します。 scan が出力する各行は、メッセージの番号(名前)、および日付、 “From:” フィールド、“Subject” フィールド、 場所が許す限り若干のメッセージの本文を含みます。 例えば、
 

15+07/05Dcrockernned  <<Last week I asked some of
16 -07/05dcrockermessage id format  <<I recommend
1807/06ObrienRe: Exit status from mkdir
1907/07Obrien“scan” listing format in MH

 
メッセージ 15 の ‘+’ は、それがカレントメッセージであることを示します。 メッセージ 16 の ‘−’ は、返信が出されたことを示します。 返信が出されたというのは、repl コマンドに ‘−annotate’スイッチを使って 作成された “Replied:” コンポーネントがあることからわかります。
 
scan が出力する行のサブジェクト(題目)の後ろに 十分な場所が余っていて、本文の内容が十分短い場合には、 余った部分は << >> で囲まれた本文のテキストで埋められます。 scan は、指定されたメッセージを一つ一つ実際に読み、 それを解析し、必要なフィールドを取り出します。 メッセージの解析中、メッセージにフォーマットエラーがあると、 適切なエラーメッセージが出されます。
 
‘−cnv’ スイッチが指定されると scan は MAIL コードを環境変数 ‘LANG’ で指定される内部コードに変換した後に表示します。 ‘−nocnv’ が指定されると変換はしません。
 
‘−header’ スイッチは、scan コマンドがリストする前に ヘッドラインを作ります。一般に、フォルダ名および現在の日付と 時間が出力されます(詳しくは 歴史 を参照してください)。
 
‘−clear’ スイッチが使われ、scan の 出力がターミナルへ向けられている場合には、 scan は環境変数 $TERM と $TERMCAP とを調べ、 ユーザのターミナルタイプを特定します。 これは、scan の終了前にスクリーンを消せるように、 スクリーン消去の方法を知る必要があるからです。 ‘−clear’ スイッチが使われ、scan の 出力がターミナルに向けられていない場合(即ち、パイプあるいはファイル)、 scan は終了する前にフォームフィードを送ります。
 
例えば、コマンド:
 

(scan −clear −header; show all −show pr −f) | lpr
 
は、カレントフォルダの scan リストを作成し、 それからフォームフィードが続き、それから フォルダ内のすべてのメッセージについて フォーマットされたリストが続きます。 ‘−show pr −f’ が省略される場合、 メッセージは 1行のヘッダと 2行の空行を区切りにして、繋がれます。
 
scan が “Date:” フィールドを持たないメッセージに出会うと、 scan リストを空欄で残さず、 代わりにメッセージを最後に書き込んだ日付でその欄を埋め、 その後ろに ‘∗’ を付けます。
 
scan で使用される出力フォーマットを変更するため、 ‘−format string’ あるいは ‘−format file’ スイッチが使われます。 これにより、scan リストの個々のフィールドが 簡単に引き出せるようになります。 string は単なるフォーマット文字列で、formatfile も 単なるフォーマットファイルです。 詳しくは、mh−format(5) を参照してください。
 
標準の mh−format (5) エスケープの他に、scan は 次のようなコンポーネントエスケープも識別します:

^エスケープリターン値 解説
^body文字列 本文の冒頭部分(圧縮されている)
^folder文字列 カレントフォールダ名

 
メッセージ中に日付ヘッダがない場合、{date} を操作する関数エスケープ は、そのメッセージファイルが最後に修正された日付を返します。 さらに、scan はリスティングを開始する前に、 MH のコンテクストを更新するので、 長い scan リストを中断させた場合も、コンテクストは新しくなっています。 MH の純粋主義者はこのような考えかたを嫌っています。

関連ファイル

^$HOME/.mh_profile~^ユーザプロファイル

プロファイルコンポーネント

^Path:~^ユーザの MHディレクトリ
^Alternate−Mailboxes:~^ユーザのメールボックス
^Current−Folder:~^デフォルトのカレントフォルダ

関連事項

inc(1), pick(1), show(1), mh−format(5), sendmail(8)

デフォルト値

^‘+folder’~^カレントフォルダ
^‘msg’~^全部のメッセージ
^‘−format’~^上記に説明したデフォルト値
^‘−noheader’
^‘−width’~^端末の幅
^‘−cnv’

コンテクスト

フォルダが与えられた場合、それがカレントフォルダになります。

歴史

フォーマット文字列メカニズムを使用するようになる前、 ‘−header’ スイッチはリストの各欄が何であるかを示す ヘッダを生成するのに使われていました。 フォーマット文字列はこのようなことが起こるのを防ぎます。

バグ

‘−format’ スイッチに対する引数は、 scan コマンドを起動させるシェルによって1つのトークンとして 解釈されなければなりません。 したがって、ユーザは一般的にこのスイッチに対する引数を ダブルクォートで囲みます。
各コンポーネントエスケープの値は、 コンポーネント名が一致したもののうち scan が最初に出会った メッセージヘッダの内容になります。 残りの同じコンポーネント名のヘッダは全て無視されます。 ‘−reverse’ はメッセージを逆順に scan リストします。 これはバグです。 ‘−file filename’ スイッチは  packf で処理されたようなメールの scanリストをとります。 この表示にはそのファイルに含まれるメッセージがでます。 このファイルのより選択的な処理には msh を使うべきです。 このオプションが指定されると ‘−reverse’ は無視されます。

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026