<English version of this document>

多符号化方式対応拡張w3mの設定


初期化の流れ

素のw3m (以下w3mと表記し、 実行ファイルの名前も同じものと仮定します) では

の順に各種の設定が読み込まれ、 後で指定したものが前のものを上書きします。

多符号化方式対応の亜種 (以下w3mmeeと表記し、 実行ファイルの名前も同じものと仮定します) の場合は、 符号化方式の自動判別の範囲、 使用端末で使える符号化方式、 符号化方式の変換方法、 各言語に対応したメッセージ、 etc. を指定するために少し(?)複雑な手順を踏むことになります。

まず環境変数「W3MLANG」 (設定されていなければ「LANG」) の値を読み、 アルファベットをすべて小文字に変換後、 それが

言語コード+"_"(アンダースコア)+国コード+"."(ピリオド)+符号化方式コード
という形をしているものとみなして、 それぞれのコードに分解します。 例えば値が「ja_JP.UTF-8」だとすると という値を得ます。

上で得られた文字列から

  1. $LIB_DIR/w3mconfig
  2. $LIB_DIR/w3mconfig.言語コード
  3. $LIB_DIR/w3mconfig_国コード
  4. $LIB_DIR/w3mconfig.符号化方式コード
  5. $LIB_DIR/w3mconfig.言語コード_国コード
  6. $LIB_DIR/w3mconfig.言語コード.符号化方式コード
  7. $LIB_DIR/w3mconfig_国コード.符号化方式コード
  8. $LIB_DIR/w3mconfig.言語コード_国コード.符号化方式コード
というファイル群を (もしあれば) この順に読み込み、 w3mと同じ形式の設定ファイルとして解釈します。

さらに

  1. $LIB_DIR/w3mmessages
  2. $LIB_DIR/w3mmessages.言語コード
  3. $LIB_DIR/w3mmessages_国コード
  4. $LIB_DIR/w3mmessages.符号化方式コード
  5. $LIB_DIR/w3mmessages.言語コード_国コード
  6. $LIB_DIR/w3mmessages.言語コード.符号化方式コード
  7. $LIB_DIR/w3mmessages_国コード.符号化方式コード
  8. $LIB_DIR/w3mmessages.言語コード_国コード.符号化方式コード
というファイル群を (もしあれば) この順に読み込み、 オプション設定パネルの説明文を再設定します。 ただしコメントの設定に関係する行は
オプション名+"="(等号)+説明文
という形をしたもののみで、 他の行は無視されます。 また等号の前後・行頭・行末の空白文字は取り除かれます。

さらに

$HOME/.w3mmee/config

各ユーザ用のオプション設定ファイル、 形式は$LIB_DIR/w3mconfig*達と同じ、

$HOME/.w3mmee/messages

各ユーザ用のオプション設定パネルの説明文設定ファイル、 形式は$LIB_DIR/w3mmessages*達と同じ、

を読み込み解釈します。


localeのcodeset名とMIMEのcharset名の対応

この節の内容はw3mmeeがgettextを使うようにビルドされている場合のみ有効です。

gettext()の戻り値が非US-ASCII文字を含む場合、 そのような文字の符号化方式は内部用のものに変換する必要があります。 gettext()は現localeのcodeset名に基いて出力の符号化方式を決めますが、 w3mmeeはMIMEのcharset名を使っています。 不幸にしてある符号化方式のlocaleシステムにおけるcodeset名とMIMEのcharset名は同じとは限らないので、 w3mmeeはそれらの対応表を必要とします。

w3mmeeには既にそのような対応表が組み込まれていますが、 組み込みのものでは不十分なこともあり得ます。 そのような場合以下の2つのファイル

  1. $LIB_DIR/locale2mime
  2. $HOME/.w3mmee/locale2mime
によって、 追加の対応表をw3mmeeに与えることができます。 これらのファイルの各行は
MIMEのcharset名+"="(等号)+言語指定[+","(コンマ)+…]
という形をしていなければなりません。 "="や","の前後には空白があっても構いません。 言語指定は
言語コード+"_"+国コード+"."+codeset名
という形の文字列で、 言語コード、 "_"+国コード、 または"."+codeset名、 のうち1個または2個が省略されていても構いません。


文字符号化に関する設定項目

以下は多符号化方式対応拡張により増えたオプションのうち、 文字の符号化に関するものの一覧です。

mylang 文字列

言語を指定します。 今のところは、 符号化方式の自動判別の範囲を限定するためだけに使われています。

例えば

mylang cjk
と指定すると、 charset指定のない文書の符号化方式を の中から自動判別しようと試みます。

符号化方式のコンマ区切の列を指定することもできます。 この場合、 それらの符号化方式が自動判別の候補として使われます。

mylang_charset 文字列

自動判別に失敗した場合に想定する符号化方式を指定します。

tty_charset 文字列

端末の符号化方式を指定します。 端末への出力時以外に、 formへの入力の符号化方式もこのオプションの値で指定されるものと一致するものとして扱われます。

tty_initial_charset 文字列

このオプションは使用しないことを推奨します。 かわりに tty_initial_input_charsettty_initial_output_charset を使って下さい。

tty_initial_input_charset 文字列

tty_charsetで指定する符号化方式がISO 2022の部分集合の場合、 端末からの入力ストリームの中間バッファの初期状態をこのオプションで指定する符号化方式のものに変更できます。

tty_initial_output_charset 文字列

tty_charsetで指定する符号化方式がISO 2022の部分集合の場合、 端末への出力ストリームの中間バッファの初期状態をこのオプションで指定する符号化方式のものに変更できます。

tty_input_converters 文字列

html文書のフォームへの入力の符号化方式・文字セットを入力時にどのように変換するかを指定します。

多符号化方式対応拡張 に使われる サポートライブラリ についての詳しい知識があり、 かつ特殊な使い方をするのでない限り、 指定しないほうが無難です。

tty_output_converters 文字列

端末への出力時の符号化方式・文字セットの変換のしかたを指定します。

多符号化方式対応拡張 に使われる サポートライブラリ についての詳しい知識があり、 かつ特殊な使い方をするのでない限り、 指定しないほうが無難です。

tty_fallback_converters 文字列

端末がそのままでは表示できず、 代替文字列も指定されていない文字に適用される変換を指定します。

多符号化方式対応拡張 に使われる サポートライブラリ についての詳しい知識があり、 かつ特殊な使い方をするのでない限り、 指定しないほうが無難です。

input_charset 文字列

charset指定の無い文書の符号化方式を指定します。 このオプションが指定されると、 自動判別は行われません。

input_converters 文字列

ネットワークやローカルファイルからの入力時の符号化方式の変換の仕方を指定します。

多符号化方式対応拡張 に使われる サポートライブラリ についての詳しい知識があり、 かつ特殊な使い方をするのでない限り、 指定しないほうが無難です。

output_charset 文字列

charset指定も無く、 自動判別にも失敗した場合に想定する符号化方式を指定します。

html文書に入力フォームがある場合に、 アクションに対する引数はその文書の符号化方式に変換後に渡されるので、 その場合はこのオプションの設定の影響を受けます。 今のところ、 これ以外の用途はありません。

output_converters 文字列

ネットワークやローカルファイルへの出力時の符号化方式の変換の仕方を指定します。

多符号化方式対応拡張 に使われる サポートライブラリ についての詳しい知識があり、 かつ特殊な使い方をするのでない限り、 指定しないほうが無難です。

search_converters 文字列

正規表現サーチ時の符号化方式の変換の仕方を指定します。

多符号化方式対応拡張 に使われる サポートライブラリ に含まれているユーティリティのマニュアルページ中の 「Conversion specifiers」 という節を見てみて下さい。

process_charset 文字列

ブックマーク登録スクリプトへの引数等、 他のプロセスに渡す文字列の符号化方式を指定します。

「文字列」は以下のような2通りの形式の指定のどちらかを空白で区切って並べたものです:

<sep1>+正規表現+<sep2>+<charset>
または
<charset>
空白で区切られたトークンの最初の文字が非alphanumericならば最初の形式として扱われ、 それ以外の場合は2番目の形式としてみなされます。 最初の形式において、 もし<sep1>が「(」、「{」、「[」、「<」、または「^」ならば、 <sep2>はそれぞれれ「)」、「}」、「]」、「>」、または「$」でなければなりません。 <sep1>と<sep2>は、 「^」と「$」の対の場合のみ正規表現の一部として扱われます。 第2の形式は
「^.*$」+<charset>
の省略形です。

プロセス名が与えられると、 正規表現との照合が順に試され、 最初に照合に成功した表現に対応する<charset>が採用されます。

tty_character_conversion 文字範囲 代替文字列

端末が受け付けない文字を指定します。 代替文字列が指定されていないか、 「NLLL」(カギカッコは除く、すべて大文字)という文字列の場合、 その文字そのものが出力されます。 代替文字列が「REJECT」(カギカッコは除く、すべて大文字)以外の文字列の場合、 その文字列が出力されます。 これ以外の場合、 tty_character_replacement で代替文字列のデフォルトが指定されていればその文字列が出力されます。 これも指定されていない場合は「?」(クエスチョンマーク)が出力されます。

このオプションは複数設定可です。 文字範囲に包含関係がある場合、 範囲の狭いほうが採用されます。 包含関係が無くかつ重複する場合、 重複部分だけ後で指定したもので上書きされます。

tty_character_replacement 文字列

端末が受け付けない文字の代替文字列のデフォルトを指定します。

view_buf 文字列

マウスを使わないバッファ (configureでマウスサポートを外したバイナリの場合も含む) での表示中のドキュメントを表わすメッセージ用のフォーマット文字列を指定します。

view_buf_with_mouse 文字列

マウスを使うバッファでの表示中のドキュメントを表わすメッセージ用のフォーマット文字列を指定します。

omitted 文字列

長いURIの途中を省略して表示する場合の、 省略した部分の代替文字列を指定します。

ul_marks 文字列

<ul>の各項目の先頭に現われる文字列群を、 ","(コンマ)で区切って指定します。

ul_type_disc 文字列

<ul>のtype属性をdiscにした場合の、 各項目の先頭に現われる文字列を指定します。

ul_type_circle 文字列

<ul>のtype属性をcircleにした場合の、 各項目の先頭に現われる文字列を指定します。

ul_type_square 文字列

<ul>のtype属性をsquareにした場合の、 各項目の先頭に現われる文字列を指定します。

small_img_alt 文字列

小さい画像用の代替テキストを指定します。

hr_rule 文字列

<hr>に使われる文字を指定します。

menu_frame 文字列

メニューの枠に使う文字を、 左上隅から出発して、 左から右、 上から下の順に、 ","(コンマ)で区切って指定します。

rule 文字列

テーブルの枠や境界に使う文字を指定します。 中心、 左端、 上端、 左上隅、 右端、 縦棒、 右上隅、 下端、 左下隅、 水平線、 右下隅の順に、 ","(コンマ)で区切って指定します。

rule_bold 文字列

テーブルの枠や境界を太くする時に使う文字を指定します。 中心、 左端、 上端、 左上隅、 右端、 縦棒、 右上隅、 下端、 左下隅、 水平線、 右下隅の順に、 ","(コンマ)で区切って指定します。

message_about_config_save 文字列

オプション設定パネルに、 「OK」ボタンを押して終了した場合に結果を$HOME/.w3mmee/configに保存するかどうか、 を指定する項目が増えています。 その項目の説明文を指定します。

charset_cname 文字列

非標準なcharset名の標準名を指定します。 指定の仕方は

標準名+"="(等号)+charset名のリスト
で、 「charset名のリスト」はcharset名を","(コンマ)で区切って並べたものです。 等号やコンマの前後に空白を入れてはいけません。 またcharset文字中のアルファベットの大文字・小文字は区別されません。

例えば「charset=SHIFT-JIS」などという指定のあるページが存在しますが、 これを「charset=Shift_JIS」と指定してあるのと同等に表示するためには、

charset_cname shift_jis=shift-jis
という指定を設定ファイルのどこかに追加します。

このオプションは複数指定が可能で、 等号の左辺の重複したものがある場合は、 後の指定が前の指定を上書きします。

unicode_width 文字列

Unicode中の文字を端末に表示した時の幅の表の名前を指定します。 指定可能なものは以下のとおりです (アルファベットの大文字・小文字の違いは無視されます)。

xterm
xterm-147に組込まれているものと同じ幅になります。 それ以降の版のxtermでは違っているかも知れません。
EastAsianWidth_AmbiguousToNarrow、eaw_a2n
UAX #11に準じますが、 Ambiguousとされている文字の幅を1とした表です。
EastAsianWidth_AmbiguousToWide、eaw_a2w
UAX #11に準じますが、 Ambiguousとされている文字の幅を2とした表です。

prefer_charset 真偽値

metaタグで指定された符号化方式が自動認識されたものと違っている時に、 再レンダリングを行うかどうかを指定します。


文字符号化に関係無い設定項目

文字の符号化とはまったく関係無いけれども、 パッチがオリジナルに採用されなかったり、 須藤が移植をサボっていたり、 等の理由でw3mmeeのみが認識するオプションの一覧です。

accept_encoding  <encoding name> <media type> <argv[0]> <path to command>

HTTPヘッダフィール"content-encoding"の値<encoding name>, MIMEタイプ <media type>, および<encoding name>で示される符号化方式で符号化された内容を復号するフィルタプログラムを結びつけます。 このオプションが正しく機能するようにするためには、 さらに$HOME/.mime.types

<media type> 拡張子
のような行を付け加えて、 <media type>と適当なファイル拡張子を結びつける必要があります。

このオプションは複数指定可で、 おなじ<encoding name>を持つオプションが2つ以上指定された場合、 最後の指定が採用されます。

language_extension 文字列

ファイルの言語を表わす拡張子のコンマ区切りのリストを指定します。

複数の拡張子を持つファイルのcontent typeを推測するとき、 このオプションにリストされた拡張子は判断の材料から除外されます。

search_across_lines 真偽値

正規表現の検索時に行を跨ぐ検索を行うかどうかを指定します。

concurrent 数値

文書をロードするためのプロセス数の最大値を指定します。

concurrent_per_server 数値

文書をロードするためのプロセス数のサーバ毎の最大値を指定します。

follow_redirection 数値

何回までリダイレクトに従うかを指定します。

request_header 文字列

HTTPリクエストヘッダに加えるヘッダを指定します。 以下のヘッダ

Host, Pragma, Cache-Control, Content-Length

は常にw3mmeeが値を決め、 オプションによる指定は無視されます。 以下のヘッダ

UserArgent, Accept, Accept-Encoding, Accept-Language

のオプションによる指定が無い場合、 w3mmeeが他の情報から適切な値を与えます。 以下のヘッダ

Content-Type, Referer

は、 他に与えるべき適当な値が無いときにのみ、 オプションにより指定した値が与えられます。 以下のヘッダ

Cookie, Cookie2

はコンパイル時の設定やコマンドライン、 あるいはオプション設定パネルで、 w3mmeeがcookieを扱わないようになっている時のみこのオプションによる値が採用され、 それ以外はオプションの指定を無視し、 w3mmeeが値を決めます。

このオプションは複数指定可で、 おなじヘッダ名に対する指定が2つ以上指定された場合、 最後の指定が採用されます。

http_version 文字列

HTTPリクエストのバージョンを指定します。 指定可能な値は"1.1"または"1.0"(ただし2重引用符を除く)です. 他の値が指定された場合警告無しに無視され、 バージョンとしては"1.1"が使われます。

anchor_num_style 文字列

文書のレンダリング結果をダンプする際のアンカーの表示の仕方を指定します。 この文字列と文書中のリンク一覧中の番号がsprintfに渡されます。 従ってこの文字列中にはsprintf用の変換指定子「%d」が丁度1個含まれていなければなりません。

img_num_style 文字列

文書のレンダリング結果をダンプする際のイメージの表示の仕方を指定します。 この文字列と文書中のリンク一覧中の番号がsprintfに渡されます。 従ってこの文字列中にはsprintf用の変換指定子「%d」が丁度1個含まれていなければなりません。

label_withinpage_style 文字列

文書のレンダリング結果をダンプする際の、 同一文書内のラベルへのリンクに付加する行番号と桁の表示の仕方を指定します。 この文字列と行番号と桁がsprintfに渡されます。 従ってこの文字列中にはsprintf用の変換指定子「%d」が丁度2個含まれていなければなりません。

link_num_url 文字列

文書のレンダリング結果をダンプする際に、 その文書のURIがこの文字列であるものとして扱われます。

scroll_amount 数値

カーソル移動コマンドの結果カーソルが画面外に移動してしまう場合、 「数値」行または桁だけ画面がスクロールします。

mailcap_entry 文字列

優先度最大のmailcapエントリを指定します。 外部ビューワを一時的に変更するために使われることを想定したオプションです。

このタイプのオプションは複数回現れても構いません。

browsecap <文字列>

browsecapファイルのコンマ区切りのリストを指定します。

browsecap_entry 文字列

優先度最大のbrowsecapエントリを指定します。 外部ブラウザを一時的に変更するために使われることを想定したオプションです。

このタイプのオプションは複数回現れても構いません。

wrap_line 真偽値

Plain text中の画面の幅に納まらない行を、 折り返して表示するかどうかを指定します。

wrap_line_when_dump 真偽値

Plain text中の画面の幅に納まらない行を、 ダンプ時も折り返して表示するかどうかを指定します。 このオプションが真値に設定されると、 オプションwrap_lineも真値に設定されます。

line_truncated 文字

画面の幅に納まらない行が、 切り詰めて表示されていることを示す文字を指定します。

line_continued 文字

画面の幅に納まらない行が、 折り返して表示されていることを示す文字を指定します。

preload_image 真偽値

実際に表示する前に画像をロードしておくかどうかを指定します。

img_valign 位置

インライン画像の縦方向のアラインメントのデフォルトを指定します。 「位置」は D ("default"を表わします)、 T ("top"を表わします)、 M ("middle"を表わします)、 または B ("bottom"を表わします)、 のいずれかでなければなりません。 DB とほとんど同じですが、 小さな画像に対して少々違いが出ます。

table_valign 位置

テーブル中の縦方向のアラインメントのデフォルトを指定します。 「位置」は T ("top"を表わします)、 M ("middle"を表わします)、 または B ("bottom"を表わします)、 のいずれかでなければなりません。

when_redirected 振舞い

GETでもHEADでもないメソッドのHTTPリクエストが、 HTTPレスポンスコード301または302によってリダイレクトされたときの振舞いを指定します。 「振舞い」は

0
常に元のメソッドでリダイレクトに従う、
1
常にGETメソッドでリダイレクトに従う、
2
常にリダイレクトを無視する、
3
実行時に問い合わせる、
のいずれかでなければなりません。

frame_color 色

フレームの境界の色を指定します。

auto_pixel_per_char 真偽値

文字幅を自動設定してよいかどうかを指定します。

auto_pixel_per_line 真偽値

一行の高さを自動設定してよいかどうかを指定します。

try_extensions 文字列

ファイル拡張子のコンマ区切りのリストを指定します。 w3mmeeはローカルファイルのオープンに失敗した時、 ここにリストした拡張子をファイル名に追加して再度オープンを試みます。

拡張子として「*」(アステリスク)が指定されると、 その場所にファイルの符号化方式に対応する拡張子のコンマ区切のリストが展開されます (デフォルトでは「.Z,.bz2,.gz」、 accept_encodingオプションの項を見て下さい).

edit_remote_source 真偽値

リモートページのキャッシュされたソースを編集可能にするかどうかを指定します。

remove_traling_spaces 真偽値

レンダリング結果の各行の行末の空白を削除するかどうかを指定します。

target_frame 文字列

フレームの名前のコンマ区切のリストを指定します。 リスト中の各項目を順番にレンダリング中のフレームセット中のフレームの名前の中から検索し、 最初に見つかったフレームの左上隅のバッファをカレントバッファにします。

select_implies_accept 真偽値

このオプションの値が真の場合、 永続的バッファ選択メニュー中で選択されているバッファが自動的にカレントバッファになります。

search_form_text 真偽値

正規表現検索時に、 「form」要素のコントロールの内容も検索対象にするかどうかを指定します。

menu_y_preference 位置

沢山の項目を含むポップアプメニューの縦方向の位置の決め方を指定します。 位置は以下のもの中の1つでなければなりません。

C
選択された項目を可能な限りカーソル位置に表示するように調整します。
A
可能な限りメニュー全体が表示されるように調整します。

template_frame_color 色

$RC_DIR/template中で定義されたフレーム境界の色を指定します。

menu_buffer_name_color 色

メニューバッファタイトル行の色を指定します。

buffername 文字列

画面の(ほとんど)一番下に表示されるタイトル行のフォーマットを指定します。 「%」+「1文字」は以下のとおり置換されます:

%A
非同期ロードが未了であることを示す指示子
%B
バッファ名
%I

(「[」と「]」で囲まれた)バッファに関する色々な情報を示す文字達:

F
バッファは(lessのそれのような)「foreverモード」である、
S
このバッファのソースはHTTPSで得られたもの、
I
このバッファはロード未了のインライン画像を含んでいる。

%L
カーソル位置のリンクのURI、
%N
カーソル位置(とあと少し)に関する情報(行番号、桁位置、等々)
%P
バッファが表示されているフレームの座標、
%U
バッファのカレントURI
%+上でリストされていない文字
文字そのもの。

select_menu_title 文字列

バッファ選択メニューの各項目のタイトル用のフォーマットを指定します。 形式はbuffernameオプションと同じです。

mouse_double_click_interval 数値

マウスボタンのクリック間隔が「数値」ミリ秒以内だと、 ダブルクリックとみなされます。

auto_raise 真偽値

バッファが表示可能になったら自動的にカレントバッファにするかどうかを指定します。

force_coursor_origin <boolean>

フレームセットの表示時に、 カーソルを画面左上のバッファに移動するかどうかを指定します。

save_file_name_template 文字列

ダウンロードファイルの名前の雛型を定義します。 ファイル名を生成する際、 「%F」および「%s」は推定されたファイル名に、 「%X」は推定されたファイル名の拡張子に、 「%B」は推定されたファイル名の拡張子を除いた部分に置換されます。

save_directory_mode 文字列

ダウンロードファイル名がディレクトリ部を含む場合、 新たに生成されるディレクトリのモードを指定します。 strtoul(3)が受け付ける数値表現か、 「rwxrwxrwx」型の文字列でなければなりません。 新しいディレクトリの生成を抑制するためには、 「0」か「---------」を指定します。

counting_attribute_limit 数値

属性「cellpadding」、「cellspacing」、「colspan」、「rowspan」、「size」、および「vspace」の値を、 この値未満に制限します。

http_authenticate_cache_max 文字列

キャッシュされた各*-Authenticate:ヘッダの再利用の最大回数の定義の、 コンマ区切の列を指定します。 各定義は

認証スキーム名(アルファベットの大文字・小文字の違いは無視されます)+"="(等号)+数値
指定されたスキームの値を定義、
「*」(アステリスク)+「=」+数値
すべてのスキームの値を変更、
数値
「*=数値」の省略形、
の形のうちの1つでなければなりません。 負値は回数制限を置かないことを示します。

http_authenticate_cache_expire 文字列

キャッシュされた各*-Authenticate:ヘッダが期限切れとなる秒数の定義の、 コンマ区切の列を指定します。 各定義は

認証スキーム名(アルファベットの大文字・小文字の違いは無視されます)+"="(等号)+数値
指定されたスキームの値を定義、
「*」(アステリスク)+「=」+数値
すべてのスキームの値を変更、
数値
「*=数値」の省略形、
の形のうちの1つでなければなりません。 負値は期限切れにしないことを示します。

make_extviewer_buffer 真偽値

外部ビューワ用のバッファを作成するかどうかを指定します。


mailcapエントリの文字列展開の拡張

w3mmeeは、 mailcapエントリの文字列展開において、 以下の追加の%-エスケープを認識します。

%h

URIのホスト部。

%p

URIのポート部。

%u

URI全体。

%{<test>?<yes>:<no>}

まず「%<test>」の展開を試みます。 <test>の先頭に「%」が挿入されることに注意して下さい。 展開が実際に行われる場合 (展開結果が空文字列の場合も含みます)、 <yes>が処理されます。 展開に失敗する場合は<no>が処理されます。 <yes>が省略された場合、 省略された場所に<test>があるかのように扱います。 <no>が省略されかつ<test>の展開に失敗する場合は、 この%-エスケープ全体が空文字列で置き換えられます。


browsecap -- External browser capability file

w3mmeeはURIのscheme部によって外部ブラウザを自動的に決定する仕掛を持っています。 外部ブラウザとschemeの対応は"browsecap"ファイルによって与えられます。 w3mmeeは

  1. $LIB_DIR/browsecap
  2. $HOME/.w3mmee/browsecap
の2つのファイルを読(むことを試)み、 "mailcap"に対するのと同様のやりかたで対応表を作ります。

ファイルフォーマットも"mailcap"ファイルと同じです。 ただし各エントリの最初の要素は

<scheme>+「/」(スラッシュ)+<method>
という形でなければなりません。 また<method>としてサポートされているのは今のところ「post」、「get」、または「download」です。 <method>部にワイルドカードとして「*」(アステリスク)を指定することも可能です。 <method>部が「post」になる場合、 CGIプログラムに渡されるべき引数がそのまま、 マッチした外部ブラウザの標準入力になります。

もしURIがquery stringを含んでいて、 そのquery stringが「<word>=<value>」という要素を含んでいる場合、 「%{<word>}」という形の%-エスケープは「<value>」に展開されます。 さらに「%?」という%-エスケープはquery string全体 (ただし最初の「?」は除く) に展開されます.

browsecap機能は、 バッファのソース、 バッファの表示イメージ、 form要素のtype=textなinputコントロール, またはform要素のtextareaコントロール, の編集用エディタを決めるためにも使われます。 browsecapエントリのうち、 最初の要素が、 それぞれ 「x-edit/buffer」、 「x-edit/screen」、 「x-edit/inputtext」、 または「x-edit/textarea」 のものが該当するものです。

w3mmeeのmailcapおよびbrowsecapエントリの解析ルーチンは、 「x-internal」、 「x-cgioutput」、 「x-type」、 「x-uri」、 「x-netpath」、 「x-match=正規表現」、 および「x-nc-match=正規表現」というフラグを認識します。

「x-internal」の指定されたエントリは、 上記の編集用エディタの決定のような、 内部用途だけに制限されます。 エディタ用のエントリにはこのフラグを付けることをおすすめします。

「x-cgioutput」が指定されている場合、 そのエントリから決まるプログラムはCGIプログラムとして扱われます。 すなわち、 プログラムを呼び出す前に各種の環境変数が設定され、 プログラムの出力の最初の空行の前の行達がHTTPの応答ヘッダとして解析されます。

「x-type」はmailcapの中でのみ認識されます。 このフラグの指定されたエントリのコマンド部から生成された文字列は、 MIMEの型名として扱われます。 そのエントリにマッチする文書は、 内容がその型であるかのように処理されます。

「x-uri」はbrowsecapの中でのみ認識されます。 このフラグの指定されたエントリのコマンド部から生成された文字列は、 URIとして扱われ、 w3mmeeは元のURIのかわりに、 この新しいURIを処理します。

「x-netpath」はbrowsecapの中でのみ認識されます。 このフラグの指定されたエントリによって定義されるスキームを持つURIは、 「net_path」型でなければなりません(RFC2396の3節参照)。

「x-match=『正規表現』」および「x-nc-match=『正規表現』」はbrowsecapの中でのみ認識されます。 これらのフラグはお互いに排他的で、 1つのエントリに両方が指定された場合、 後のもののみが有効になります。 どちらかのフラグが指定された場合、 URI全体と『正規表現』が照合され (「x-nc-match=『正規表現』」の場合はアルファベットの大文字小文字は区別されません)、 照合が成功した場合のみ、 そのエントリが採用されます。 もし「test=…」フラグも指定されていた場合、 結果の論理積がエントリを採用するかどうかに使われます。


$RC_DIR/template

個人設定用ディレクトリ($RC_DIR)中の「template」という名前のファイルでフレームセットを定義することにより、 画面のデザインを好みのものに変更することができます。

このフレームセットは「_main」という名前のフレームを1個含んでいる必要があります。 後にロードされるバッファはすべて、 「_main」フレームの位置に表示されます。

このフレームセットの「cols」属性と「rows」属性中では、 以下の形式の長さ指定も使うことができます:

数値c

数値×US-ASCII文字1個の幅、を表わします。 (US-ASCII文字1個の幅は、もし必要なら、「pixel_per_char」オプションで変更することも可能です)、

数値l

数値×US-ASCII文字1個の高さ、を表わします。 (US-ASCII文字1個の高さは、もし必要なら、「pixel_per_line」オプションで変更することも可能です)。

例えば、 pixel_per_charが8、 pixel_per_lineが16だとすれば、 80cは640を表わし、 25lは400を表わします。

$RC_DIR/template中では、 以下の「about://」URIをフレームのソースとして指定できます。

about://current-buffer
カレントバッファ(ただし実装が不完全なので、指定してもあまり意味がありません)、
about://menu/名前
$RC_DIR/menuで定義された指定された名前を持つメニューの永続版
about://select-menu
about://menu/SelectBufferと同じ、
about://process-list
子プロセス一覧用バッファ。


メニュー

ポップアップメニューのテキストは普通のバッファと(ほとんど)同じように保持されています。 従って普通のバッファに対する検索関数やカーソル移動関数の大部分は、 ポップアップメニューに対しても使うことができます。

さらに(実装がほとんど同じなので)、 ポップアップメニュー用のバッファから、 「about://menu」URIを用いて、 「永続的」なコピーを作ることができます。 多くのメニュー用関数は(「ポップアップ」していることに強く依存しているものを除いて)、 この永続的コピーに対しても使うことができます。

ポップアップ版のバッファ選択メニューの名前は「Select」ですが、 永続的バッファ選択メニューの名前は「SelectBuffer」という違う名前になっていることに注意して下さい。

(主に)バッファのタイトル行上でのマウス操作を定義するために、 「Lastline」という名前のメニューがあらかじめ用意されています。 このメニューの各項目のラベルは横に連結されて、 buffernameオプションの値をもとに生成された文字列の前(左)に表示されます。 ユーザ関数「GOTO_XY」が呼び出された時の指定位置がタイトル行の場合、 指定位置に対応する項目のメニュー関数が実行されます。

$RC_DIR/menuのメニュー定義中のキーバインドを指定する部分で、 幾つかの特別な目的の語を指定することができます。

FALLBACK

メニュー用バッファでは、 メニュー用のキー束縛を探すのに失敗すると、 非メニューバッファ用のキー束縛を再検索します。 しかしこの語に束縛されたメニュー関数がある場合は、 再検索は行わずこのメニュー関数を呼び出します。

HIDE

メニュー定義中でラベルフィールドは必須で、 通常はメニューが表示されるとラベルも表示されますが、 この語のある項目はまったく表示されなくなります。


キーの記号表記

W3mmeeは色々な場所のキー定義において以下の記号表記を認識します。

ENDPGDNHOMEPGUPCRLFKP-ENDKP-PGDNKP-HOMEKP-PGUPKP-INSF<number>、 MOUSE-CLICK-<number>、 MOUSE-DCLICK-<number>、 MOUSE-DOUBLE-CLICK-<number> (synonym for MOUSE-DCLICK-<number>)、 MOUSE-DRAG-<number>、 MOUSE-MOVE-<number>。

さらに以下の表記も認識します。 これらは、 実際のキーストロークを表わしているわけではなく、 メニュー関数「M:POSITIONAL」が呼び出された時、 指定位置がメニュー内部でないときに呼び出すべき下請け関数を決めるために使われます。

MENU-OUTSIDE, MENU-FRAME-TOP, MENU-FRAME-BOTTOM, MENU-FRAME-LEFT, MENU-FRAME-RIGHT.

文字範囲の表し方

tty_accept_charactertty_reject_character の最初の引数としてUnicode中の文字を与える場合は、

"U+"+Unicodeの16進表記
または
"U+"+範囲の始点のUnicodeの16進表記+"-"+終点のUnicodeの16進表記
と表記します。 Unicode以外の文字を与える場合
"I+"+その文字の内部表現
または
"I+"+範囲の始点文字の内部表現+"-"+終点文字の内部表現
と表記します。

「Unicode以外の文字の内部表現」とは以下のようなものです。 まず (ISO 2022の分類に基いて) 文字セットの種類から

という整数Sを決めます。

次に94セット・96セット・94x94セットの場合は、 ISO 2022方式の符号化でその文字セットを指示する時に使う終端バイトをFとします。 ただし追加の中間バイト(2/1)を必要とする94セットの場合は終端バイトに0x40を加えたものをFとします。 非ISO 2022文字セットの場合は、 サポートライブラリがその文字セットの識別用に使う (今のところ文書化されていない) たかだか8ビットの整数をFとします。

最後にその文字セットに収容可能なコードポイントを順にならべて、 0から始まる番号をつけます。 その番号をCとします。

以上のSFCの16進表記を「+」(プラス符号)で区切って並べたものが「内部表現」です。

FCは省略可能で、 始点文字として指定されたときは可能な範囲の最小値、 終点文字として指定されたときは可能な範囲の最大値、 が省略時の値として使われます。


Any questions or comments about this page are greatly appreciated.

Almost all contents in this site are written by Kiyokazu SUTO (i.e. me) unless especially noted. I want to put all of them into the PUBLIC DOMAIN, even though some lawyers mention that it is impossible in my country.