MH−SEQUENCE(5) — NEWS-OS Programmer’s Manual
名称
mh−sequence − MH メッセージシステムのシーケンス仕様
形式
ほとんどの MH コマンド
解説
ほとんどの MH コマンドは ‘msg’ 又は ‘msgs’ の仕様を受け付け、その場合 ‘msg’ は 1 つのメッセージを ‘msgs’ なら それ以上のメッセージを示します。 メッセージの指定には、数字 (例 1, 10, 234) もしくは以下の “予約済” メッセージ名称 のうちの 1 つのどちらでも使用可能です。
名称解説
firstフォルダ内の最初のメッセージ
lastフォルダ内の最後のメッセージ
cur最も最近アクセスされたメッセージ
prev “cur” より数値が先行するメッセージ
next “cur” より数値が後行するメッセージ
‘msg’ 引数を受け入れるコマンドでは、 デフォルトは “cur” です。 短縮形では “.” が “cur” に 相当します。
例: フォルダに 5, 10, 94, 177, 325と番号をふられた5つのメッセージが ある場合は、“first” が 5、 “last” が 325です。 また “cur” が 94ならば、 “prev” は 10、そして “next” は177となります。
‘msgs’ というワードは 1 つ、又はそれ以上の メッセージを指定出来ることを示しています。 これは、1 つのメッセージ指定、あるいは スペースで分けられた複数のメッセージ指定 から構成されます。上記で定義されている メッセージ名称かメッセージ域の どちらかで、メッセージ指定は構成されます。
メッセージ域は “name1−name2” 又は “name:n” として指定され、 その場合 ‘name’ ‘name1’ そして ‘name2’ は メッセージ名称、‘n’ は整数です。
“name1−name2” は ‘name1’ から ‘name2’ までの現在の全ての メッセージを包括的に指定します。 メッセージ名称 “all” がメッセージ域
“first−last” の短縮形となります。
“name:n” は ‘n’ メッセージ までを指定します。 これらのメッセージは ‘name’ がメッセージ番号、 又は 予約済名称の “first” “cur”、 又は “next” の 1 つならば‘name’で始り、 ‘name’ が “prev” 又は “last” ならば ‘name’ で終ります。
‘n’ の解釈は、先行するプラス又は マイナス記号を伴った ‘n’に 無効にされます。 ‘+n’ は常時、‘name’ で始る ‘n’ メッセージ までを意味し、
‘−n’ は常時、‘name’ で終る ‘n’ メッセージ までを意味します。
‘msgs’ 引数を受け入れるコマンドでは、 デフォルトは “cur” 又は “all” ですが、各コマンド次第です (詳しくは個々のマニュアルページを 参照して下さい)。 同一のメッセージを繰り返して指定すると、 単一のメッセージ指定と同様の働きとなります。
上記の “予約済” (予め定義された) メッセージ名称に加えて、 MH はユーザ定義のシーケンス名称も サポートします。 ユーザ定義のシーケンスは、メッセージ群を 意味のある名称と結合 させることによって、MH ユーザが 同一フォルダ内のメッセージ群を 扱う際に非常に有力なものとなってくれます。
メッセージシーケンスを示す名称は、 ゼロが後に続く英字一文字又はそれ以上の 英数字から構成された名称を使用しますが、上記の 予約済名称からは使用出来ません。 シーケンスを定義した後は、 MH が ‘msg’ 又は ‘msgs’ 引数を 与えられ得るところならばどこでも使用 出来ます。
メッセージ域の中にユーザ定義のシーケンスを 受け入れる形式のものがあります。 “name:n” は使用可能で、 ユーザ定義のシーケンス‘name’の要素である 最初の ‘n’ メッセージ (又は ‘−n’ の最後の ‘n’ メッセージ) までを指定します。
“name:next” と “name:prev” もまた使用可能で、 ユーザ定義シーケンスの ‘name’ の 要素である次メッセージ又は前メッセージ (現在のメッセージに対して)を 指定します。 “name:first” と “name:last” は それぞれ “name:1” と “name:−1” に相当します。 “name:cur” は使用出来ません (かわりに “cur” だけ使って下さい)。 こうしたメッセージ域のシンタックスは、 後になって変更されるでしょう。
ユーザ定義シーケンス名称は、 各フォルダ固有のものです。
pick と mark コマンドを 使って定義されます。
シーケンスには public シーケンスと private シーケンスの二つがあります。 Public シーケンスはそのフォルダを読める MH ならアクセスは可能で フォルダ内の .mh_sequence_ に 保持されます。 Private シーケンスはその シーケンスを定義した MH ユーザにのみ アクセス出来るもので、ユーザの MH コンテキストファイルに保持されます。 デフォルトでは、 シーケンスが定義されているフォルダに MH ユーザが書き込み可能ならば、
pick と mark で public シーケンス を作成します。 そうでなければ、private シーケンスが作成されます。 markでは これは ‘−public’ ’−private’ でオーバーライドできます。
MH はユーザ定義シーケンスの要素 ではない全てのメッセージを選択する機能を 提供します。 このためには、 ユーザは MH プロフィールファイルで “Sequence−Negation” エントリを定義 しなければなりません。 値はどんな文字列でも結構です。 この文字列は、 存在するユーザ定義のシーケンス名称の前に に使われます。 これは指定されたシーケンス名称の要素ではないメッセージにをしめします。 例えば、プロフィールエントリが、
Sequence−Negation: not
ならばその後はいつでも MH コマンドは ‘msg’ 又は ‘msgs’ 引数として “notfoo” を 与えられ、シーケンス “foo” の要素ではないすべての メッセージに置き換えます。
明らかに、ユーザは “Sequence−Negation” のプロフィール エントリの値で始る名称のシーケンスの 定義には気を付けなければいけません。
MH は MH に最後に与えられた ‘msgs’ 又は ‘msg’ 引数を記憶することが出来ます。 “Previous−Sequence” エントリは MH プロフィール内で定義しなければなりません。 値は 1 つのシーケンス名称又は複数のスペースで 分けられたシーケンス名称にしなければなりません。 このエントリを定義すれば、 MH コマンドの終了時に このエントリーの値でしていされたシーケンスをコマンドで指定されたメッセージに 定義します。 ですから、
Previous−Sequence: pseq
のプロフィールエントリは、‘msg’ 又は ‘msgs’ 引数を受け入れる MH コマンドに対してならば全て、 終了時、メッセージとして “pseq” を 定義するよう指示します。
注: “Previous−Sequence” 機構を 使用する際に、実行ペナルティが生じる ことがあります。 これが行なわれると、 全ての MH プログラムは実行の度に フォルダの .mh_ シーケンスファイルに シーケンス情報を書き込まなければなりません。
“Previous−Sequence” プロフィールエントリが無い場合は、 pick と mark だけで .mh_ シーケンス ファイルに書き込むことになります。
最後に、これまでユーザが未見のメッセージを 示したいユーザには inc と show の双方がこの作業をサポートする “Unseen−Sequence” プロフィールエントリを実行 します。 .mh_ プロフィール内のこのエントリは、 1 つ、又はそれ以上のスペースで分けられた シーケンス名称として定義しなければなりません。 プロフィールに “Unseen−Sequence” のための値が あれば、フォルダ内に新しいメッセージが 置かれる度に新しいメッセージもまた このエントリの値で名付けられたシーケンスに加えられる ことになります。 ですから、
Unseen−Sequence: unseen
のプロフィールエントリは、シーケンス “unseen” に新しいメッセージを加えるよう inc に 指示します。 ただし、プロフィール内の “Previous−Sequence” エントリの場合と違って、シーケンスは inc によって ゼロには なりません。
同様に、show (又は next 又は prev) がメッセージを表示する度に、 そのメッセージはプロフィール内の “Unseen−Sequence” エントリによって 名付けられたシーケンスから全て削除されてしまいます。
関連ファイル
^$HOME/.mh_profile ~^ユーザプロフィール
^<mh−dir>/context ~^ユーザコンテキスト
^<folder>/.mh_sequences ~^ <folder> のためのパブリックシーケンス
プロフィール構成要素
^Sequence−Negation:~^シーケンスではないメッセージを指定する
^Previous−Sequence:~^与えられた最後のメッセージ仕様
^Unseen−Sequence:~^ユーザ未見のメッセージ
関連事項
mh(1), mark(1), pick(1), mh-profile(5)
デフォルト
なし
コンテキスト
全部
バグ
ユーザ定義シーケンスは、スペースで分けられた 一連のメッセージ仕様として .mh_sequences ファイル に格納されます。 ユーザ定義シーケンスにあまりに多くの個人的 メッセージ仕様がある場合、ファイル内のその行が 長過ぎて MH に扱えなくなることがあります。 このときエラーメッセージ “.mh_sequence is poorly formatted. ” が表示されます。 エラーメッセージを取り除くためには、自分でファイルを 編集しなければならなくなります。
これは “Previous−Sequence” エントリを MH プロフィールで定義したとき、フォルダに番号付けの 差のあるメッセージが多い場合に起ります。 ラージフォルダにする必要にせまられたときには、 “folder −pack” を頻繁に使って差を 出来るだけ小さくしてください。
NEWS-OSRelease 4.2.1R