Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mh-profile(n) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mh(1)

environ(5)

sendmail(8)

 

名称

.mh_profile − MH メッセージシステムのユーザカスタマイズ

形式

すべての MH コマンド

解説

MH のユーザは、それぞれの ホームディレクトリに .mh_profile というファイルを持つ必要があります。 このファイルは、大部分もしくはすべての MH プログラムファミリーに よって使用される 1組のユーザパラメータを含んでいます。 このファイルの各行は、次のフォーマットになります。
 
    profile−component: value
 
使用できるプロファイルコンポーネントの例が、次に示してあります。 このうち ‘Path:’ だけが必須で、その他はオプションです。 いくつかのものについては、存在しない場合にはデフォルト値になります。 以下に用いられている注釈、(プロファイル, デフォルト)は、 その情報がユーザの MH プロファイルに保存されているのか、 MH コンテクストに保存されているのかということと、 デフォルト値が何であるかということを示しています。
 

Path: Mail
ディレクトリ “Mail” に MH の処理内容を置きます。 (プロファイル, デフォルト:なし)
 

context: context
MH コンテクストファイルの所在を宣言します。 後述の 歴史 の部分を見てください。 (プロファイル, デフォルト:<mh−dir>/context)
 

Current−Folder: inbox
現在オープンしているフォルダのトラックを確保します。 (コンテクスト, デフォルト:+inbox)
 

Previous−Sequence: pseq
MH プログラムに ‘msgs’ や ‘msg’ 引数として与えられる シーケンスの名前を指定します。 もし、シーケンスが存在しない場合や、空の場合には、 シーケンスは定義されません。 そうでなければ、与えられた各名前について、 シーケンスは最初 0 であり、 その後各メッセージがシーケンスに付け加えられます。 (プロファイル, デフォルト:なし)
 

Sequence−Negation: not
文字列を定義します。 それがシーケンス名の前に付けられた場合、 そのシーケンスは無効になります。 しかし、“notseen” はシーケンス “seen” に含まれない すべてのメッセージを意味します。 (プロファイル, デフォルト:なし)
 

Unseen−Sequence: unseen
最近 inc によって取り込まれたメッセージとして 定義されたシーケンスを指定します。 show は、メッセージが読まれるとこのシーケンスからメッセージ を取り除きます。 もし、存在しない場合や、空の場合には、シーケンスは定義されません。 そうでなければ、与えられた各名前について、シーケンスは最初 0 であり、 各メッセージはシーケンスに付け加えられます。 (プロファイル, デフォルト:なし)
 

mh−sequences: .mh_sequences
各フォルダ中のファイルの名前で、パブリックシーケンスを定義します。 パブリックシーケンスの使用を禁止するには、 空白になっている値の部分を取り去ることです。 (プロファイル, デフォルト:.mh_sequences)
 

atr−seq−folder: 172 178−181 212
指定されたフォルダの seq と呼ばれる 個人シーケンスのトラックを確保します。 (コンテキスト, デフォルト:なし)
 

Editor: /usr/ucb/ex
comp(1)、dist(1)、forw(1)、repl(1) で 使用されるエディタを定義します。 (プロファイル, デフォルト:/usr/ucb/vi)
 

Msg−Protect: 644
メッセージファイルのプロテクションビットをオクタルで定義します。 オクタル数についての説明は、chmod(1) を参照してください。 (プロファイル, デフォルト:0644)
 

Folder−Protect: 711
フォルダディレクトリのプロテクションビットを定義します。 (プロファイル, デフォルト:0711)
 

program: default switches
デフォルトスイッチを、mh プログラム program が呼び出されたときに、 いつでも使えるようにセットします。 例えば、次のようなコンポーネントを追加しておくと、 メッセージの返信時に、Editor: プロファイルコンポーネントを 書き換えることができます。
repl: −editor /bin/ed
(プロファイル, デフォルト:なし)
 

lasteditor−next: nexteditor
“lasteditor” を使った後、 デフォルトのエディタに “nexteditor” を指定します。 これによって、comp、dist、forw、 repl の “What now?” の時点で効果が現れます。 “lasteditor” でドラフトを編集した後に、 デフォルトのエディタは “nexteditor” にセットされます。 “What now?” に対して、 ユーザが引数なしで “edit” とタイプした場合、 “nexteditor” が使われます。 (プロファイル, デフォルト:なし)
 

bboards: system
どの BBoard に興味があるかを、bbc に知らせます。
 

Folder−Stack: folders
folder コマンドのためのフォルダスタックの内容。 (コンテキスト, デフォルト:なし)
 

mhe:
この指定をすると、inc は他の作業の他に MHE 記録 ファイル(auditfile)を作成するようになります。 MHE は、Brian Reid によって作成された、 MH 用の Emacs フロントエンドです。 初期のバージョンには mh.6 がのせられていました。 (プロファイル, デフォルト:なし)
 

Alternate−Mailboxes: mh@uci−750a, bug-mh∗
どのアドレスが本当に自分のものかということを repl や scan に 知らせます。この方法によって、repl は返信にどのアドレスが入るか、 scan はメッセージが本当にあなたから発信されたものかどうか ということを認識しています。 アドレスはコンマで区切られなければなりません。 さらに、リストされるホスト名はあなたの指定した メールボックスの “正式な” ホスト名にすべきです。 というのは、ホストのローカルなニックネームは正式なサイト名に 置き換えられないからです。 各アドレスにおいて、ホストが指定されていなければ、 どのホストもあなたであるとみなされます。 さらに、アスタリスク(‘∗’)は、メールボックスとホストの末尾に ワイルドカードマッチングを表すために用いられます。 (プロファイル, デフォルト:使用者のユーザID)
 

Aliasfile: aliases
ali, whom, and send に対するデフォルトの別名ファイルを 指定します。これは ‘−alias file’ スイッチの代わりに使うことができます。 (プロファイル, デフォルト:なし)
 

Draft−Folder: drafts
comp、dist、forw、repl に 対してデフォルトのドラフトフォルダを指定します。 (プロファイル, デフォルト:なし)
 

digest−issue−list: 1
forw に対して、ダイジェスト list へ送られる 最後のボリュームの最後の項目を知らせます。 (コンテクスト, デフォルト:なし)
 

digest−volume−list: 1
forw に対して、ダイジェスト list へ送られる 最後のボリュームを知らせます。 (コンテキスト, デフォルト:なし)
 

MailDrop: .mail
ユーザのメールドロップがデフォルトと違うとき、 メールドロップを inc に知らせます。 指定があれば、環境変数 $MAILDROP が優先されます。 (プロファイル, デフォルト:/usr/spool/mail/$USER)
 

Signature: RAND MH System (agent: Marshall Rose)
send に対して、ユーザのメールサインを知らせます。 指定があれば環境変数 $SIGNATURE が優先されます。 MH が UCI オプション付きでコンフィギュレーションされているホストでは、 もし $SIGNATURE がセットされていなくて、 このプロファイルエントリが存在しなければ、 $HOME/.signature が検索されます。 (プロファイル, デフォルト:なし)
 

Sendcode: J
MHはメールを送信する際に 8bit コードを 7bit MAIL
コードに変換します。
指定の方法は以下のとおりです。
J各言語環境でのデフォルトのメールコードに変換します。
JBB日本語環境で漢字に切り替える場合 ESC $ B,
ASCII に切り替える場合 ESC ( B を使用します。
JBJ日本語環境で漢字に切り替える場合 ESC $ B,
ASCII に切り替える場合 ESC ( J を使用します。
J@B日本語環境で漢字に切り替える場合 ESC $ @,
ASCII に切り替える場合 ESC ( B を使用します。
J@J日本語環境で漢字に切り替える場合 ESC $ @,
ASCII に切り替える場合 ESC ( J を使用します。
S日本語環境で EUC コードを SJIS コードに変換します。
E日本語環境で SJIS コードを EUC コードに変換します。
U変換しません。
(プロファイル, デフォルト:J)

 Receivecode: J
受信したメールのコードを指定します。
Jメールコード判別し、環境変数 ‘LANG’ で指定した
内部コードに変換します。
Sメールの 8bit コードを SJIS コードとみなします。
Eメールの 8bit コードを EUC コードとみなします。
U変換しません。
(プロファイル, デフォルト:J)

 
次にあげるプロファイルの要素は、MH プログラム 群が more(1) などの他のプログラムを呼び出す時に必ず使われるものです。 .mh_profile では、ユーザの必要に応じて、 交替プログラムの選択ができます。
 

^fileproc:~^/usr/new/mh/refile
^incproc:~^/usr/new/mh/inc
^installproc:~^/usr/new/lib/mh/install−mh
^lproc:~^/usr/ucb/more
^mailproc:~^/usr/new/mh/mhmail
^mhlproc:~^/usr/new/lib/mh/mhl
^moreproc:~^/usr/ucb/more
^mshproc:~^/usr/new/mh/msh
^packproc:~^/usr/new/mh/packf
^postproc:~^/usr/new/lib/mh/post
^rmmproc:~^none
^rmfproc:~^/usr/new/mh/rmf
^sendproc:~^/usr/new/mh/send
^showproc:~^/usr/ucb/more
^whatnowproc:~^/usr/new/mh/whatnow
^whomproc:~^/usr/new/mh/whom

 
環境変数 $MH を定義しておき、 ユーザが呼び出した MH プログラムが .mh_profile 以外 のプロファイルを読めるように指定できます。 $MH の値が絶対指定でない場合には (すなわち / で始まらない場合)、 カレントワーキングディレクトリからの指定とみなされます。 これは、MH において、 非絶対パス名がユーザの MH ディレクトリからの相対と解釈されない、 ごく例外的なものの 1つです。
 
同様に、もし環境変数 $MHCONTEXT を定義した場合には、 通常とは別のコンテクストを指定することが可能です (MH プロファイルでの指定と同様)。 $MHCONTEXT の値が絶対指定でなければ、 MH ディレクトリからの指定とみなされます。
 
MH プログラムは、他にも次のような環境変数をサポートしています。
 

$MAILDROP :inc にデフォルトのメールドロップを知らせます。
これは “MailDrop” プロファイルエントリより優先されます。
 

$SIGNATURE :send と post にメールサインを知らせます。
これは “Signature” プロファイルエントリより優先されます。
 

$HOME :すべての MH プログラムに ホームディレクトリを知らせます。
 

$SHELL :bbl に実行するデフォルトのシェルを知らせます。
 

$TERM :MH に端末タイプを知らせます。
 
環境変数 $TERMCAP も検索されます。 特に、これらは端末のクリアの仕方と、 端末のカラム幅を scan と mhl に知らせます。 さらに mhl に端末画面の行数を知らせます。
 

$editalt :交替メッセージ。
dist と repl での編集中にセットされます。 このため、メッセージを分類したり、返事を書いたりしながら、 それを読むことができます。 また、メッセージの入っているカレントワーキングディレクトリと フォルダが同じ UNIX ファイルシステムにあれば、 そのメッセージはカレントディレクトリ中の “@” という リンクを通しても利用できます。
 

$mhdraft :作業中のドラフトへのパス。
これは、 comp、dist、forw、repl によってセットされ、 whatnowproc に対して、どのファイルが “What now?” と 尋ねられているかを知らせます。 また適当であれば、dist、forw、 repl が $mhfolder をセットします。 さらに、dist と repl は $mhaltmsg をセットし、 whatnowproc に対して、 そのドラフトに関連している交替メッセージ(配布される、もしくは 返信されるメッセージ)について知らせます。 そして、dist は $mhdist をセットし、 whatnowproc に対して、メッセージの再配布が行われていることを知らせます。 また $mheditor は、whatnowproc に対して ユーザの選択したエディタを知らせるためにセットします (‘−noedit’ によって無効にされなければ)。 同様に、$mhuse は comp によってセットされます。 最後に、注釈が必要になれば、$mhmessages が dist、 forw、repl によってセットされます ($mhannotate と $mhinplace に沿って)。
“What now?” インターフェースを形成するために環境変数を通して渡される あらゆる情報が、MH ユーザに対してごく自然に見える点は驚くべきことです。 これらは全て、MH ユーザが標準シェルを含む すべてのプログラムを $whatnowproc として選択できるようにするためです。 その結果、引数リストを通して情報を渡すことはできません。
WHATNOW オプションをセットして MH のコンフィギュレーションを したとき(これを確認するには、 MH コマンドに ‘−help’ をタイプします)、 この環境変数がセットされていれば、refile、send、show、 whom コマンドに ‘msgs’ 引数が与えられていない時には、 $mhdraft での指定をデフォルトのファイルに用います。 これは、デフォルトの whatnowproc によって供給される、 デフォルトの動作を得るのに役立ちます。
 

$mhfolder :交替メッセージを含むフォルダ。
これは編集をしている間に、dist と repl によってセットされます。 このため、ユーザはメッセージを配布したり、返事を出したりしながら、 カレントフォルダ中の他のメッセージを読むことができます。 環境変数 $mhfolder も mhl で使えるように show、 prev、next によってセットされます。
 

$MHBBRC :
環境変数 $MHBBRC を定義すれば、 bbc によって読まれる BBoard 情報ファイルを .bbrc 以外にも指定することができます。 $MHBBRC の値が絶対指定でなければ(すなわち、/ で始まらないとき)、 カレントワーキングディレクトリからの相対指定とみなされます。
 

$MHFD :
OVERHEAD オプションをセットして MH をコンフィギュレーションをした時 (‘−help’ を付けて MH コマンド起動することにより知ることができます)、 この環境変数がセットされていれば、 MH はリードオンリーでオープンされる MH プロファイルのファイルディスクリプタの数とみなします。 同様に、環境変数 $MHCONTEXTFD がセットされていれば、リードオンリー でオープンされる MH コンテクストのファイルディスクリプタの数となります。 このような MH の特徴は経験によるもので、 MH の起動時にスピード改良の可能性を検討します。これらの環境変数は、 この特徴が発揮できるよう必ずセットし、空にならないようにしなければならないと いうことに注意してください。 しかし、MH のコンフィギュレーションで OVERHEAD ができる ようになっていれば、MH プログラムが他の MH プログラムを呼ぶときに、 この骨子が使われます。 これらのファイルディスクリプタは、MH プログラムの実行中だけ限られたもの ではないので、子プロセス もこれを利用することができます。 この方法は信頼性が高いもので、かなり実行能力を高めることができます。

関連ファイル

^$HOME/.mh_profile~^ユーザプロファイル
^もしくは $MH~^標準プロファイルの代わり
^<mh−dir>/context~^ユーザコンテクスト
^もしくは $CONTEXT~^標準コンテクスト
^<folder>/.mh_sequences~^<folder> のためのパブリックシーケンス

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

すべて

関連事項

mh(1), environ(5), sendmail(8)

コンテクスト

すべて

歴史

MH の古いバージョンでは、 書き込み可能なフォルダのカレントメッセージ数は、 フォルダ自身の中の “cur” と呼ばれるファイルに保存されていました。 mh.3 では .mh_profile は、 その書き込み可能かどうかに関係なく、 すべてのフォルダのカレントメッセージ数を含んでいました。
 
mh.4 以降のすべてのバージョンでは、 .mh_profile は MH プログラムが 更新をしない静的な情報を含んでいるだけでした。 コンテクストについての改良は、 ユーザの MH ディレクトリに保存される context ファイル について行なわれました。 それは(これだけというわけではありませんが)、 “Current−Folder” エントリと、 すべての個人シーケンス情報について行なわれました。 パブリックシーケンス情報は、各フォルダの .mh_sequences と 呼ばれるファイルに保存されます。
 
mh.4 バージョンより前のリリースで使用していたフォーマットから、 mh.4 で使用できるフォーマットに変換するためには、 install−mh が ‘−compat’ スイッチ付きで呼び出されなければなりません。 これは、一般的には、MH のコンフィギュレーションで、 “COMPAT” オプション付きで MH システムを生成しているときに、 自動的に行われます。
 
“context” エントリを指定することによって(小文字で)、 .mh_profile は、 コンテクストファイルのパスを変更することができます。 エントリが絶対指定でなければ(つまり、/ から始まらない場合)、 ユーザの MH ディレクトリからの相対指定として解釈されます。 その結果、異なるコンテクストファイルを使うことにより、 個人シーケンスを事実上1セット以上持つことができます。

バグ

シェルにおけるクォーティングの習慣は、 .mh_profile では使用できません。 各トークンは空白によって区切られます。
 
どんな種類の引数がオプションとしてプロファイルに置かれるべきか、 といった疑問が生じます。 これに明解に答えるためには、 すべての MH プログラムのコマンド行の意味を 思い出さなければなりません。 相反するスイッチ(例えば、‘−header’と‘−noheader’)が コマンド行に1回以上出てくると、最後のスイッチが効力を持ちます。 ファイル名やフォルダといったメッセージシーケンスのような引数は、 常に入力行に記憶されており、それに続く同じ形式の 引数によって取って代られることはありません。 しかしながら、プロファイルには1つだけスイッチ(およびその引数)を 指定するのが確実です。
 
MH プログラムがスイッチではない同じ引数とともに、 繰り返し起動されるようなことがあれば、 この問題の解決方法にはいくつかの手段が有ります。 1つ目にあげる方法は、ユーザが選択した MH プログラム用に、 $HOME/bin ディレクトリの中に(ソフト)リンクを新たに作ることです。 このリンクに違う名称を付けることにより、 プロファイルに新しいエントリを作ることができ、 さらに、MH コマンドに対するデフォルトの交替セットを使うことができます。 同様に、入力行のスイッチの交替セットを持った、 ユーザが選択した MH プログラムから呼び出される小さな シェルスクリプトを作ることができます (リンクと交替プロファイルエントリを使えば、 この解決法よりもさらに良い結果が得られます)。
 
最後に、csh のユーザは、次のような形のコマンドで 別名を作ることができます。
 

alias cmd ’cmd arg1 arg2 ...’
 
この方法を使えば、ユーザはシェルに長いタイプ入力を避けることができる上、 確実に MH コマンドを与えることができます (MH コマンドが他のコマンドを呼び出し、 プロファイルが読み込まれるすべての場合に、 別名の効果は初期コマンド入力には届かずに無視されるということの意味を、 思い出してください)。

NEWS-OSRelease 4.1C

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