comparison conf/doc/ja-mhl.rf @ 0:bce86c4163a3

Initial revision
author kono
date Mon, 18 Apr 2005 23:46:02 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:bce86c4163a3
1 .\" @(MHWARNING)
2 .\" written by MH-plus project
3 .SC MHL 1
4 .NA
5 mhl \- MH メッセージを整形する
6 .SY
7 @(MHETCPATH)/mhl
8 \%[\-bell] \%[\-nobell]
9 \%[\-clear] \%[\-noclear]
10 \%[\-folder\ +folder]
11 \%[\-form\ formfile]
12 \%[\-length\ lines] \%[\-width\ columns]
13 \%[\-moreproc\ program] \%[\-nomoreproc]
14 \%[files\ ...]
15 \%[\-help]
16 .DE
17 \fImhl\fR はメッセージを整形表示するプログラムです。
18 これは \fImore\fR\0(1) (デフォルトの \fIshowproc\fR\0)
19 の置換えとして設計されています。
20 \fImore\fR 同様、
21 引数(あるいは標準入力)として指定されたメッセージそれぞれを出力します。
22 もし、複数のメッセージが指定された場合、
23 それぞれの出力前にプロンプトが出、
24 <RETURN> または <EOT> で出力を開始します。
25 <RETURN> の場合は(適切な場合は)画面を消去し、
26 <EOT> (通常は CTRL\-D) の場合は画面消去はしません。
27 <INTERRUPT> (通常は CTRL\-C) はそのメッセージの出力をやめて、
28 次のメッセージ(あるのなら)のプロンプトを出します。
29 <QUIT> (通常 CTRL-\\) はプログラムを終了します(コアダンプはしません)。
30
31 `\-bell' オプションを付けると、
32 \fImhl\fR はそれぞれのページの最後でベルを鳴らします。
33 一方、`\-clear' オプションを付けると、
34 \fImhl\fR はそれぞれのページの最後で画面を消去します
35 (または、それぞれのメッセージの後で改ページを出力します)。
36 これらのオプションは両方とも(そしてその逆の意味のものも)
37 プロファイル・エントリ \fImoreproc\fR が空と定義されていて、
38 \fImhl\fR が端末に出力している時にだけ効果があります。
39 \fImoreproc\fR エントリが空でなく何か定義されていて、
40 \fImhl\fR の出力が端末の場合は、
41 \fImhl\fR は、\fImoreproc\fR を端末と \fImhl\fR の間に置き、
42 これらのオプションを無視します。
43 さらに、
44 `\-clear' オプションが指定され、\fImhl\fR の出力が端末の場合、
45 \fImhl\fR は画面消去の方法を見つけるために、
46 ユーザーの端末のタイプを決めようと、環境変数 \fB$TERM\fR と \fB$TERMCAP\fR
47 を見ます。
48 もし `\-clear' オプションが指定され、\fImhl\fR の出力が端末でない場合
49 (例えば、パイプやファイルの場合)、
50 \fImhl\fR はそれぞれのメッセージの後に改ページを送ります。
51
52 デフォルトの \fImoreproc\fR やプロファイル・エントリを置き換えるためには
53 `\-moreproc\ program' オプションが使えます。
54 \fImhl\fR をハードコピー端末で起動すると、
55 決して \fImoreproc\fR を開始させる事はない点に注意して下さい。
56
57 `\-length\ length' と `\-width\ width' オプションはそれぞれ画面の長さと
58 幅を設定します。
59 デフォルトは \fB$TERMCAP\fR が指し示す値で、
60 分からなければ、それぞれ 40 と 80 が使われます。
61
62 \fImhl\fR のデフォルトのフォーマット・ファイルは \fImhl.format\fR で
63 (これは最初にユーザーの \fIMH\fR ディレクトリの中を探し、次に
64 \fI@(MHETCPATH)\fR ディレクトリの中を探します)、
65 これは `\-form\ formatfile' オプションで変更可能です。
66
67 最後に、
68 `\-folder\ +folder' オプションは \fIMH\fR フォルダ名を設定します。
69 これは後述の \*(lqmessagename:\*(rq 行に使われます。
70 デフォルトは、環境変数 \fB$mhfolder\fR が使われ、
71 \fIshow\fR、\fInext\fR、そして \fIprev\fR はこの値を適切に初期化します。
72
73 \fImhl\fR は次の二段階で処理します。
74 1) フォーマット・ファイルを読んで解釈し、
75 そして、2) それぞれのメッセージ(ファイル)を処理します。
76 第一段階では、
77 フォーマットの内部表現が構造リストとして作られます。
78 第二段階では、
79 このリストがそれぞれのメッセージに使われ、
80 フォーマット・ファイルの指定する形式に従って出力します。
81
82 \*(lqmhl.format\*(rq フォーム・ファイルは、画面消去、画面サイズ、
83 行の折り返し、通過するテキスト、コンポーネントの順序、
84 そしてコンポーネントの形式などを制御する情報を含んでいます。
85 さらに、無視すべきコンポーネントのリスト、特別なコンポーネントの組合せが
86 機能を追加するために定義されます。
87 出力メッセージはフォーマット・ファイルで指定された順序で出力されます。
88
89 mhl.format のそれぞれの行は以下の形式のどれかです。
90
91 ;comment
92 :cleartext
93 variable[,variable...]
94 component:[variable,...]
95
96 `;' で始まる行は注釈で、無視されます。
97 `:' で始まる行は生のテキストで、そのまま出力されます。
98 `:' だけからなる行は空行が出力されます。
99 \*(lqcomponent:\*(rq で始まる行は指定のコンポーネントの形式を定義します。
100 そして、最後に残った行は全体の環境を定義します。
101
102 例えば、次の行は
103
104 .ti +.5i
105 width=80,length=40,clearscreen,overflowtext="***",overflowoffset=5
106
107 画面の大きさを幅 80、長さ 40に設定し、
108 画面はそれぞれのページを表示する前に消去されるべきである事を表し、
109 行があふれた場合の字下げは 5 で、
110 その場合は \*(lq***\*(rq というテキストで示す事を示しています。
111
112 以下に挙げるのは現在使える変数とその引数の全てです。
113 もし、これらがコンポーネントに続いていた場合は、
114 それはそのコンポーネントにだけ適応され、
115 そうでない場合は、全体に対して適応されます。
116 全ての形式は実際に出力が始まる前に解析されますので、
117 フォーマットの最後に全体に影響する変数を書いた場合でも
118 (例えば、bell、clearscreen、width、length)、
119 それは最初からメッセージ全体に適応されます。
120
121 .nf
122 .in +.5i
123 .ta \w'noclearscreen 'u +\w'integer/G 'u
124 \fI変数\fR \fI型\fR \fI意味\fR
125 width 整数 画面の幅、またはコンポーネントの幅
126 length 整数 画面の長さ、またはコンポーネントの長さ
127 offset 整数 \*(lqcomponent: \*(rq に対する字下げ量
128 overflowtext 文字列 あふれた行の最初に使われるテキスト
129 overflowoffset 整数 あふれた行の字下げ量
130 compwidth 整数 コンポーネントの最初の行が出力された後の
131 テキストに対する字下げ量
132 uppercase フラグ このコンポーネントのテキストは大文字で出力
133 nouppercase フラグ 大文字にしない
134 clearscreen フラグ/G それぞれのページの前に画面を消す
135 noclearscreen フラグ/G 画面消去しない
136 bell フラグ/G それぞれのページの最後でベルを鳴らす
137 nobell フラグ/G ベルを鳴らさない
138 component 文字列/L このコンポーネントに対する
139 \*(lqcomponent\*(rq の代わりに使われる名前
140 nocomponent フラグ このコンポーネントは \*(lqcomponent: \*(rq を
141 出力しない
142 center フラグ コンポーネントを行の真中に出力
143 (一行のコンポーネントでのみ働く)
144 nocenter フラグ 真中に寄せない
145 leftadjust フラグ それぞれの行で行頭のスペースを取り除く
146 noleftadjust フラグ leftadjust しない
147 compress フラグ テキスト中の改行をスペースに置き換える
148 nocompress フラグ compress しない
149 split フラグ 複数の行を一行にまとめない
150 nosplit フラグ 複数の行を一行にまとめる
151 newline フラグ コンポーネントの最後に改行を書く
152 (デフォルト)
153 nonewline フラグ コンポーネントの最後に改行を書かない
154 formatfield 文字列 このコンポーネントに対する
155 フォーマット文字列 (後述)
156 @BEGIN: MIME_HEADERS
157 decode フラグ 非ASCII文字のMIME表現をデコードする
158 @END: MIME_HEADERS
159 addrfield フラグ アドレスを含む行
160 datefield フラグ 日付を含む行
161 .re
162 .in -.5i
163 .fi
164
165 整数値と文字列値の変数の値を指定するには、
166 それらの名前の後ろにイコール記号と値を書けばいいです。
167 整数値の変数は 10進数の値を置き、
168 文字列値の変数はダブルクォートで囲まれた任意のテキストを置きます。
169 上記の表で型に \*(lq/G\*(rq または \*(lq/L\*(rq が付いているものは、
170 その値は(それぞれ)全体に対する指定、またはそのコンポーネントだけに対する指定
171 が出来るものです。
172
173 以下の
174
175 ignores=component,...
176
177 という形式の行は、
178 出力されない(無視する)コンポーネントのリストを指定します。
179
180 コンポーネント \*(lqMessageName\*(rq (大文字小文字は区別しない)は
181 指定された、または環境で見つかったフォルダ名と、
182 実際のメッセージ名(ファイル名)が出力されます。
183 形式は \fIshow\fR に `\-header' オプションをつけた時に出力されるものと
184 同じです。
185
186 コンポーネント \*(lqExtras\*(rq は明示的に指定されていないコンポーネントで、
187 無視するコンポーネントのリストにも入っていない
188 全てのコンポーネントを出力します。
189 もし、このコンポーネントが指定されてない場合は、
190 明示的に指定されてないコンポーネントは無視されるので、
191 無視するコンポーネントのリストは必要ありません。
192
193 もし \*(lqnocomponent\*(rq が指定されてない場合、
194 コンポーネント名はフォーマット・ファイルに書かれている通りに出力されます。
195
196 デフォルトのフォーマットは次の通りです。
197
198 .nf
199 .in +.5i
200 .ne 15
201 .eo
202 .so @(MHETCPATH)/mhl.format
203 .ec
204 .in -.5i
205 .fi
206
207 変数 \*(lqformatfield\*(rq はフォーマット文字列を指定します
208 (\fImh\-format\fR\0(5) を参照)。
209 フラグ値 \*(lqaddrfield\*(rq と \*(lqdatefield\*(rq
210 (これらは相互排他的です)は、
211 \fImhl\fR にフォーマット文字列中のエスケープの解釈で、
212 それぞれアドレスか日付かを指定します。
213
214 デフォルトでは、
215 \fImhl\fR はアドレスや日付を含む行
216 (これらの行のリストは \fImh\-mail\fR\0(5) を参照)
217 には何の整形もしません。
218 \fImhl\fR はアドレスや日付に対してフォーマット文字列を適応させようとすると、
219 その解析をしなければならないので、この結果、速い処理が可能になります。
220 もし望むなら、
221 \fImhl\fR にアドレスまたは日付(両方ではない)に対してデフォルトのフォーマット
222 文字列を与える事が出来ます。
223 これをするためには、全体に対して効くように、
224 addrfield または datefield フラグを適切な formatfield 変数値と共に指定して
225 下さい。
226 .Fi
227 ^@(MHETCPATH)/mhl.format~^メッセージのテンプレート
228 ^あるいは <mh\-dir>/mhl.format~^が標準のテンプレートに代わる
229 ^$HOME/\&.mh\(ruprofile~^ユーザーのプロファイル
230 .Pr
231 ^moreproc:~^対話的フロントエンドとして使われるプログラム
232 .Sa
233 show(1), ap(8), dp(8)
234 .De
235 `\-bell'
236 .Ds
237 `\-noclear'
238 .Ds
239 `\-length 40'
240 .Ds
241 `\-width 80'
242 .Co
243 無し。
244 .Bu
245 `bell' と `clear' の情報をフロントエンドに伝える方法があるべきでしょう。
246
247 \fIMH\fR を BERK オプション付で構築したホストでは、
248 アドレス解釈は不可能です。
249
250 \*(lqnonewline\*(rq オプションは \*(lqcompress\*(rq や \*(lqsplit\*(rq と
251 一緒に使うと良くないです。
252 .En