設定 - みる会図書館


検索対象: UNIX MAGAZINE 1994年7月号
153件見つかりました。

1. UNIX MAGAZINE 1994年7月号

ernacs 入門 //\7 N 図Ⅱプロセスコードの設定例 ( mu 厄ー init. el より抜粋 ) —coding¯system coding¯system coding¯system —coding¯system あるプログラムのコード系を、使用するバッフアにかぎら (define (define (define (define (define (define (define —servlce (define-program—coding-system (define-program¯ ¯pro gram¯ —serVICe -program¯coding-system -program—coding—system -program¯coding-system ¯program¯coding-system nil nil nil " "nntp" nil . *mai1. *" *junet*) . *inews . *" *junet*) nil *junet*) . *scan. *" *JU11et*) . *inc . *" *junet*) . * mhl. * " *junet*) . *anno. * " *junet*) . *rcvstore. *" *IIOCOIIV*) ださい。また、自分で作ったプログラムが制御コードやヾ、、、・サービスのコード系を設疋する イナリデータをやりとりする際に * 取 0C0 Ⅱ v * ( 無変換 ) を試してみてください。 プログラムのコード系の設定 バッファごとにプロセスコードを設定する方法以外に ・プログラムのコード系を設定する はコード系を設定するプログラムを指定します。バッファ 、、バッファ〃はコード系を成疋するバッフア、、、フログラム〃 (define—program—coding—system パッフアプログラム の 2 種類の関数が用意されています。また、 ・設疋済みのプロセスコードを知る ための関数も用意されています。ここでは、これらの関数 の使い方と動作について説明します。 プログラムのコード系は、 define-program-coding- ゝは任意のプログラムの文字コードを設定します。すなわち、 ) ( 入力コード系出力コード系 ) ) system 関数で設定します。 やプログラムに nil を指定すると、任意のバッファあるい / す設疋するには、 (define-program-coding-system nil プログラム ' ( 入力コード系出力コード系 ) ) と指定します。 バッフアやプログラムは文字列で直接指定する以外に 正規表現か利用できます。ー里のバッファ名に正規表現で 表現しやすい名前を付けておけは、まとめてプロセスコー ドを指定することができます。 UNIX のコマンド名にコマンドのバージョン番号や OS 名を含めるのは一般的な手法ですが、このような場合 でも正規表現を使えは、どのバージョン、なんの OS 名な どを気にせすプロセスコードを設定できます。 、、、外部プロセスとの通信はしはしはプロセスのプログラ ム名ではなく、サービス名でおこないます。、、サービス〃は OS が提供している機能で、詳しくは OS のマニュアルや システム管理者に訊ねてください。サーピスのコード系を 設定するには関数、 define-service-coding-system を 使用します。この関数はバッフアとプログラムの組合せの 代わりに、サーピス名とホスト名を指定して文字コードを 設疋します。 (define—service-coding-system サービス名ホスト名 ) ( 入力コード系出力コード系 ) ) サーピス名やホスト名が nil の場合には、任意のサービ、ゝば、 スあるいは任意のホストのコード系を指定します。たとえ / とすると、指定したホストのすべてのサーピスに対して、同一のプロセスコードを設定することになります。 (define-service—coding—system nil ホスト名 ' ( 入力コード系出力コード系 ) ) UNIX MAGAZINE 1994.7 167

2. UNIX MAGAZINE 1994年7月号

連載 UNIX Communication Notes—の (selector) と呼ばれる条件を付けることができる。セレク タを上手に利用すれば、マウントの牛がきが田かく設定 できる。 複数の location カ甘旨定されている場合、 AMD はリス トに指定された順番に各 location を評価していき、最初 にみつかった利用可能なポリュームを使う。この機能によ り、あるファイルサーバーか古郊章しても、自重加勺にバック アップ・ファイルサーバーのポリュームをマウントする ため、障害を回避することができる。 自動アンマウント AMD では、不要になったポリュームはアンマウントさ れる。 AMD の側でタイマーを管理しており、マウントさ れているポリュームについての参照が一定時間おこなわれ ないと、そのポリュームをアンマウントするイ督はみになっ ている。アンマウントを決定する嗤間、すなわちタイマー 刎直は AMD のコマンド行オプションで設定できる。 ファイルサーバーへのチェック さきほども孑商したように、 NFS には、サーバーがダ ウンするとクライアント側での処理も止まってしまうとい ース う問題がある。これに対処するために、 AMD はファイル サーバーか動いているかどうかを定期的にチェックする。 ファイルサーバーがダウンしていると判断した場合、別 のファイルサーバーのポリュームをマウントする ( もちろ ん、この機能を利用するには代替サ→ヾーの情報をマウン トマップに言当しておかなければならない ) 。 ファイルサーバーか力いているかどうかは、 NFS が使 っている RPC の 1 つである NULLPROC をサーバーに 送り、サーバー側からの応答の有無によって判定する。具 イ勺には、サーバーの状態カ坏明確 ( すなわち、 NFS のリ クエストがタイムアウトするなどの状態 ) になった場合、 AMD は NULLPROC を 3 移澗隔てサ→ヾーに送り、 4 回試行しても返答がないときは、そのサーバーはダウンし たと考える。返答があったときは、サーバーは動いている ものとみなして通常の処理を続行する。 サーバーがダウンしたと判定されると、次の処理がおこ なわれる。 ・そのサーバーから提供されるポリュームに対して複数の location が定義されている場合は、はかのサーバーの 自重加勺な切替え機能により管理の負担カ吠きく軽減される 用する側にとっては、障害にともなうファイルサーバーの 題をある程度は鮹肖できる。また、ネットワーク竟を運 その日判爿カ鉄併宿されるため、従来の NFS カえていた問 動できなくても、あるいは仮にプロセスが、、刺さって " も バーのダウンによって、その復旧まて新しいプロセスか起 実行などを完全凵描することはできない。しかし、サー イルシステム内のファイルをオープンしていたプロセスの この機能では、ユーサーのファイルや、ダウンしたファ で Operation would block" というエラーを返す。 処理が発生しても、その処理をおこなうシステムコール ける。そのあいだにポリュームに対する読出し / 書込み が復旧したと判定されるまで 30 秒間隔でチェックを続 複数の location が定義されていない場合は、サーバー ポリュームへのマウントを試みる。 1. 入手したソースファイルを展開する。 インストールは、以下の手順でおこなう。 インストール手順 から実行形式ファイルを生成しなければならない。 AMD はソースファイルで提供されるので、ますソ AMD のインストール というメリットがある。 44 2. インストールするシステムの OS とアーキテクチャを これは、サプディレクトリ config にある 3 つのシェ ノレ・フ。ログラム、 arch 、 os-type 、 os-version を 使ってチェックする。これらは、それぞれアーキテク チャ、 OS の不頁、 OS のバージョンを知るためのもの である。たとえば、 SPARCstation2 (SunOS 4.1.3 ) で os-type を実行すると、リスト 1 のような結果カ斫等 られる 。ここで得られる名前が、 AMD で用いられる OS の名前になる。 ノート 2 AMD では、 os-type の実行結果がェだった場合、コ ンパイル時にファイル config/os-mc.h を読み込む。この ファイルには、 AMD の生成に必な定義が含まれている。複 UNIX MAGAZINE 1994.7

3. UNIX MAGAZINE 1994年7月号

連載 /UNIX Communication Notes 表 4 AMD て可能なセレクタ 意味 セレクタ その引機のアーキテクチャ。 AMD のコンバイル時に決定される。この値は、表 3 に示したタイフ。のいすれかであ arch る。各計算機でどのような値か設定されているかは、 amd -v を実行して石忍する。 AMD のマウント・ディレクトリ。 automount point ではない点に注意すること。これは、 AMD 起重加のコマ autodir ンド行オプション -a で与える値になる。 その計算機のバイトオーダー。バイトオーダーが little-endian の場合は little が、 big-endian の場合は big が、そのセレクタの値となる。 ファイルサーバーのグループを表すために用意されているセレクタ。 AMD 起重加寺のコマンド行オプション -C て指 cluster 定する。コマンド行オプションて指定しないと、 ${domain} カイ直として用いられる。 ローカルのドメイン名。 AMD 起重加のコマンド行オプション -d で与えることができる。 ローカルのホスト名。関数 gethostname() を用いて得られた値か設定される。コマンド行オプション -d でドメイ " ( ピリオド ) を含む場合は、最初のピリオドから前を host に、残り ン名カ甘旨定されておらす、かっホスト名に の部分を dorn れに設定する。たとえは、 gethostname() で得られたホスト名が indians. aist-nara ・ ac ・ jp だとすると、 host には indians が、 dom れには aist-nara ・ ac. jp がそれぞれ設疋される。 gethostname( て得られた名前が indians だけだった場合は、面 m れには何も設定されない。 ${host}. $ { 面 rn れ } か設定される。ただし、面 m れの値か空 (empty) の場合は、 ${host} と同し値が設定さ れる。 カーネル・アーキテクチャを得るためのセレクタ。通常は $ { ar 曲 } の値が設定されているが、コマンド行オプショ ン一 k で値を設定することもできる。 その計算機の OSO arch と同様、 AMD のコンパイル時に決定される。この値は、表 2 のいすれかになる。 マウントマップを検索するときのキー。たとえは、 /home が automount point で、 /home/jupiter かアクセ スされたときに発生するマウントマッフ。の検索では、 ${key} には jupiter か設定される。こで、 pref オプショ ンに文字列が諚定されている場合は、それを前に付けたものになる。たとえは、 pref に remote / か設定されていた とすると、 ${key} は remote/jupiter になる。 マウントマッフ。の名前。 マウントマッフ。の検索を発生させたアクセスの糸寸パス。 key のところで挙げた例では、 /home/jupiter になる。 プライマリネットワーク・インターフェイスか接続されているネットワークの名前。 /etc/networks にネット ワーク名カ己されていれば、その名前か第殳定される。言己されていない場合は、ネットワークのアドレスをドット 言己去で表したものになるサプネットカイ吏われているときは、サプネットも含めて設定される。この値は、コマンド 行オプションの一 v でも定できる。 使われる。 AMD て利用可能なセレクタを表 4 に示す。 には注意が必要である。たとえば、 target オプションに tex か設定されている状態で、調面する location に、 セレクションには、同値条件 ( = = ) と否定条件 ( ! = ) が 利用できる。、、 VAX 以外のアーキテクチャ " という条件 target : =emacs ; fs : =/usr/local/${target} は、 arch!=vax と言当できる。 という記述が含まれていたとする。このエントリの言刊面では、 fs に /usr/local/tex か轂定される。通常のプログラミン 利用可能なオプション グ言語とは異なり、 /usr/local/emacs にはならない。 AMD のオプションは、実際にポリュームをマウント 利用可能なセレクタ するときに使われる。その値はマウントマッフで設定し、 セレクタは、ポリュームの 1 。 cati 。 n を利用するかどう 詔面はセレクタの評価と同時におこなわれる。オプション かの条件設疋に使われる。セレクション ( セレクタを用い には、各ファイルシステムに固有のものと、共通のものが た条件式 ) は左から右に詔面され、偽のものを含む loca- こでは、上交洪通に使われるオプションを表 5 ある。 tion は使われない。 に示し、各ファイルシステムに固有のものについては朝行 たとえば、 で説明する。 arch==sun3 ; os==sos4 という言当があった場合、その location はアーキテクチ ャが sun3 で、かっ OS が SunOS 4. x であるときだけ byt e domai n host hostd kar ch OS ke y map path W1re 0 一三 51 UNIX MAGAZINE 1994.7

4. UNIX MAGAZINE 1994年7月号

emacs 入門 /,/ 、、/ N 図 4 日本語環境の設定 (japanese. el より抜粋 ) (setq code—priority ) (*junet code—category* *euc—code—category* *ctext¯code¯category* *internal—code—category* *sj is¯code¯category* *big5¯code¯cagetory*) ) (setq *euc—code—category* *euc¯JapaIi*) (set—default-file-coding-system *junet*) がもっとも優先度が高く、 *big5—code—category* Emacs Lisp 変数の値をもう 1 度設定しなおさなけれは・ えに、次に日本語 EUC 系のファイルを読み込む前に を実行します。ただし、この方法はすこし手間がかかるう Eva1 : (setq *euc—code—category* *euc—china*) M—X おそらく MuIe ューサーの皆さんの多くは、自動判別方 自動判別方式とのつき合い方 ンスにも気をつけてください。 ・をによって真価を発揮するので、それぞれの変数のバラ ます。ただし、この変数はコード系カテゴリー変数との組 は、図 4 の設定を参考にして code-priority 変数を設定し もし、ユーザーが独自の優先順位リストをもちたけれ 先度を高くします。 が逆に中国語の環境だと * big5-code-category* の優 のコード系カテゴリーの優先度を低くしていますが、これ がもっとも低くなっています。日本語の環境なので中国語 なりません。 M—X evaI—expreSS1011 、ゝ式を採用しているでしよう。でも、この方式だとどうして も読込みに失敗することがあります。たとえば、 (setq *euc—code—category* *euc—japan*) という設定がおこなわれている環境では、中国語 EUC 系 のファイルを正しく読むことはできません。 こんなときはどうすればよいのでしよう ? そういう場 合は、以下の方法が考えられます。 ・コード系カテゴリー変数の設定を変更する。 ・自動判別をやめる。 ・コマンド引数でコード系を指定する。 上の 3 つの方法について詳しくみていきましよう。コー ド系カテゴリー変数の設定を変更するには、 自動判別をやめるには、 file-coding-system-for-read 国語 EUC 系のファイルを読み込むには、 変数に * aut 。 c 。 nv * 以外の値を設定します。たとえば、中 Eva1 : (setq file—coding—system¯for—read *euc—china*) のように設定します。この方法も、次に別のコード系のフ ァイルを読み込むときには、 file-coding-system-for- read を再設定しなくてはなりません。 ふだんは日本語のファイルを扱い、ときどき別の言語の ファイルを読み込むような場合には、最後の、、コマンド引 数でコード系を指定する〃方法がお勧めです。 MuIe でファ イルを操作するコマンドには、引数を与えるとコード系を 訊ねるものがいくつかあります。たとえば、ファイルを読 み込むコマンド、 UNIX MAGAZINE 1994.7 find—file の前に C ー u を入力すると、ファイルを読み込む前にコード を試してみてください。表 2 は、 Coding—system : *euc¯china* Find file : mixed—lang. china C—u M—x find—file 系を訊ねてきます。 157

5. UNIX MAGAZINE 1994年7月号

emacs 入門 図に外部プロセスを起動するプログラム例 (defun cat-file ( ) (interactive) (call—process nil t "telephone")) よびサービスのプロセスコードの設定例です。メールのフ 図 11 は、 mule ーⅲ it. el に記述されているプログラムお 確立するときなどです。 ホストで動いていて、空いているサーバーを捜して通信を ば、かな漢字変換サーバーが正規表現で表現できる複数の らば、正規表現はかなり役立ってくれるでしよう。たとえ 奇跡的にも秩序あるサービス名やホスト名を付けているな 表現で指定することができます。もし、あなたのサイトが service-coding-system もサービス名とホスト名を正規 define-program-coding-system と同しく、 define- 図ロコード系が一致していない場合の cat-file の実行結果 2 ト罍 ( EEO : 新 $ 7 $ ? $ - く $ ,. 対 $ ( $ ? $ 3 引ヨ新 $ ”軋 $ ? は ; E , v 新 0 $ $ 7 ゞ F い " 4V $ ( く + J , を ECC トåV9f 2 7 $ F $ 7 ゞ軋 $ ? ! # $ s ! "<. 0 : 40 ” ! 2 正くし 840 新 CV 正 $ 7 ゞ $ ? $ , 5 $ $ は、対 $ は $ : 引 $ i $ $ ! ' ' 2q く日 $ X 9T $ + $ ・ EEOC $ ト 0 $ 「 9T $ ー Mh $ 9 く F い , B$EFW<.I # - 爿 E : ーー新イ 4 引朝寸 i t 下し n m そ n 士引 ) ーー自Ⅱー ロセスコードを設定する例では、プログラム名に、、 mail 〃 を含めばプロセスコードが設定されるので、 1 れ ail xmail rmail metamail sendmail サーピスに対して設定されているプロセスコードが cons 上の形式で呼び出すと、指定したプログラム、あるいは (find—process—coding¯system パッフアプログラムサ (find—process—coding—system パッフアプログラム ) V プロセスコードの設定例 の形式で返されます。 ' ( 入力コード系出力コード系 ) ペア、 最後に、フロセスコードを設定した場合の動作の例を紹 168 ァイルの内容の挿入とほば同じ動作をおこないます。 その結果をカレントバッフアに書き込みます。つまり、フ レントディレクトリのファイル telephone を cat して、 ログラムの例です。このサンプルプログラム cat-file はカ 介しましよう。図 12 は、外部プロセスを起動する簡単なプ 、ゝなどはすべて同しプロセスコードが同時に指定されます。 て設定したプロセスコードを知るには、 find-process- 系を調べる関数もあります。プログラムやサービスに対し コード系を設定する関数があるなら、設定済みのコード coding-system 関数を使います。 ービス ) 作しない例を示しましよう。次の設疋、 系と cat コマンドの出力のコード系です。最初に正しく動 このとき注意しなければならないのが、プロセスコード プロセスの入力コード系 : cat コマンドの出力 : * junet* * euc¯japan* で、 cat-file プログラムを実行した場合には、 cat コマンド の出力と MuIe 側の入力のコード系が一致していないた め、図 13 のようにバッフアには予期しない文字列が現れ てしまいます。 図 13 の例では cat コマンドが出力するコード系が、コ マンドの動作というよりもファイルのコード系に依存し ますが、通常はコマンドの出力するコード系がだいたい決 まっているはずです。 たとえば、かならす日本語 EUC 系で出力するコマンド UNIX MAGAZINE 1994.7

6. UNIX MAGAZINE 1994年7月号

べて、こっちのコード系は大丈夫だとかあっちはだめだと か判断しながらファイルを保存しなくてはならないので しようか ? 「多国語の文章を保存する簡単な方法はないの ? 」 という間いに対する回答は、 、、内部コードで保存する〃 なのですが、これについての詳細は後回しにして、次にフ ァイルを読み込むときのコード系の話をしましよう。 コード系の自動判別 MuIe ではファイルを読み込むときに 特定のコード系を指定して読み込む ・コード系を自動判別させる の 2 種類の方式を選ぶことができます。 コード系を指定する方式には、とくに難しい問題はあり ません。とにかくューザーが指定したコード系のつもりで ファイルを読み込みます。 問題はコード系を自動判別する方式です。こちらは、 MuIe がファイル中の文字コードを見て、コード系を自動 的に判断します。ところがこの自重加勺というのが曲者で、 ときどき判断できない場合があります。 具体例を示しましよう。日本語 EUC 系と中国語 EUC 系は潜在的に同しコード系で、文字コードの範囲でどちら のコード系かを区別できません。同しくハングル EUC も 区別がつきません。それどころか、シフト JIS コード系が 使用する文字コードの範囲の一部が EUC 系と重なってい るため、たまたま重なっている部分の文字だけがファイル 中に現れると、 EUC 系だと誤解しかねません ( 実際のファ イルでは、こんなことはめったにないはすですが ) 。 このように、本質的に区別がつかないコード系を、なん とか判断しようというのですから、期待したのとは違うコ ード系で読み込まれることがあっても不思議ではありませ ん。 MuIe のデフォルトの設定は自動判別方式になっている ので、さまざまな言語のファイルを扱うときには注意して 使ってください。たとえは、中国語 EUC 系のファイルを読 み込んだはすなのに、日本語 EUC 系と誤解されて、文字が UNIX MAGAZINE 1994.7 ツよけらった〃になるかもしれません。 emacs 入門 /. / 、、/ N 自動判別の設定 次に、自動判別方式とのつき合い方についてお話ししま しよう。最初に、自動判別の設定を憶えてください。 ファイルコードにかかわる設定はいくつかありますが、 既存のファイルを読み込むときには Emacs Lisp 変数、 これは、読込み時のコード系を指定する変数です。通常 が関係します。 file-coding-system-for-read はこの変数に、 * euc-japan* * euc—china* 日本語 EUC 系 中国語 EUC 系 など、それぞれのコード系を意味する値を設定しますが、 自動判別のときには、 *aUtOCOIIV* を設定します。 自動判別方式に限界があることは、すでにお断わりした とおりです。もっと詳しく説明すると、 Mule では、 ・ ASCII コード系 ・シフト JIS コード系 ・ JUNET コード系 (ISO 2022 で . すべての文字が GL に呼び出される ) ・ EUC 系 (ISO 2022 で、 GR に呼び出される文字が 2 バ イト ) ・コンパウンドテキスト・コード系 (ISO 2022 で、 GR に 呼び出される文字が 1 バイト ) ・ Big5 コード系 ( 中国語で使用する Big5 コード系 ) ・バッフア内部コード系 ( MuIe のバッフアの内部表現コ と呼ぶことにしましよう。 、、コード系カテゴリーク グループを便宜 の 7 種類のコード系のグループを区別できます。これらの 155 とで、コード系カテゴリーに含まれるコード系の 1 つを選 MuIe は、ファイルのコード系カテゴリーを区別したあ

7. UNIX MAGAZINE 1994年7月号

0 五十嵐久和 OL 連載 Windows NT 専用ツールと汎用ツール のように専用のツールの長所をとりいれた汎用ツールの便 る。日常、どういう作業をしているかにもよるが、 Emacs な機能を駆使して各種の竹喋を才時亢なく進めることができ キーバインドか設定されている。これによって、さまざま どのリーダーも用意されており、それなりに類推しやすい を割り当てるのである。 Emacs ではメールやニュースな った、テキストの内容に応した処理に同しキーシーケンス うにしている。前後の段落や設定項目、関数への移動とい 似生のある処理を割り当てて、ユーサーの負担を減らすよ の場合、 Emacs では、同じキーシーケンスに論理的な類 モードごとに異なる機能を提供するガ去が考えられる。 Emacs のようにテキストの不鶤頁に応したモードを用意し、 なくなってしまう。両方の要求を満たすには、たとえば と、コマンドの不頁が多くなりすぎてユーサーが対応でき ような機能を汎用のテキストエデイタで十当共しようとする 機能があれは、それはそれでありがたい。もちろん、この や設定ファイルの言当の整缶生を自重加勺凵焉正してくれる しかし、 c のプログラミングに最適化された編集機能 なる。 タですべてのイ乍業かできたはうが、ユーサーの負担は軽く ファイルなのだから、ⅵのような単一のテキストエディ はならない。 C のソースも設定ファイルも同しテキスト ド体系が必要になるし、竹喋に適したものを起動しなけれ うか。個々のツールには目的に応した独自の機能やコマン かならす専用ツールを使わねばならないとしたらどうだろ C のソースコードやシステムの成疋ファイルの編集に UNIX MAGAZINE 1994.7 利さを否定するのは難しい。 こまでは、テキストファイルがすべてであった昔の UNIX での話である。現在では、多くの形式のデータが コンピュータ上で加工されている。たとえば、表やグラフ として表現されるデータの列、数式、ピットマップによる 画像、音声、重丿 k ベジェ曲線などの幾何哮的な表現によ る図や 3 次元ジオメトリなどである。 これらの多様なデータ形式に対して、 Emacs のように、 単一のコンテキスト ( ツール ) での編集 差異については類推の利くインターフェイス群 といった機能を提供することができるだろうか。もちろ ん、単一のプログラムでは不可能である。膨大な機能を実 現しなければならす、はてしない機能」助日とデバッグが必 要になる。そのようなソフトウェアか安定して重川′ドするこ と ( 寸にないだろう。 Emacs は、それ自体巨大なソフトウェアではあるが、 機能を分割して実装し、巨大化による弊害を回避してい る。これは、 Emacs Lisp の層と C の層というふうに分 離するのではなく、データをオ内するバッフアという仕 組みとこれを表示する欟冓をモード ( 編集機能とインター フェイスのセット ) に対して提供することによって見さ れている ( ューサー・インターフェイスの整生は、また 別の問題ではあるが・・ OLE OLE (Object Linking and Embedding) 2.0 は、た とえて言えば W ⅲ d 。 ws 上で Emacs のモード : 目当する プログラムを作成できるようなものだ。 OLE の主たる目 標は、単一の文書に多種多様なデータを埋め込んだ (em- 85

8. UNIX MAGAZINE 1994年7月号

emacs 入門 表ーコード系カテゴリーと初期値 コード系カテゴリー シフト JIS コード系 JUNET コード系 EUC 系 コンパウンドテキスト・コード系 Big5 コード系 バッフア内部コード系 コード系カテゴリー変数 *SJis—code—category* *junet—code—category* *euc—code—category* *ctext—code—category* *big5—code-category* *internal—code—category* 初期値 *SJiS* *junet* *ctext* *big5—hku* *internal* ※ ASCII コード系のグループには ASC Ⅱコード系しか存在しないので、コード系を指定する変数は存在しない。 んで、ファイルの内容をバッフアに書き出します。実際の コード系は、 Emacs Lisp 変数を見て決定します。 たとえは、コード系カテゴリーが EUC 系だと分かった ときに、 ・日本語 EUC 系 ・中国語 EUC 系 ・ハングル EUC 系 のどれかを選択するか、あるいは別の言語の ( おそらく新し くサポートした ) EUC 系を選択するかは Emacs Lisp 変 数、 * euc-code-category* の値で決まります。この変数の値が * euc-japan* なら日 本語 EUC 系、 *euc-china* なら中国語 EUC 系になり ます。 * euc-code-category* 変数の初期値は、 * euc- japan* です。 EUC 系と同じように、はかのコード系カテゴリーでも、 実際に選択するコード系を設定した Emacs Lisp 変数が 用意されています。この変数を、 ・コード系カテゴリー変数 と呼ぶことにしましよう。コード系カテゴリー変数は、そ れぞれ適当な初期値が設定されています俵 1 ) 。 特定のコード系を同しコード系カテゴリー中で優先さ せたい場合には、 Emacs Lisp 変数の値を変更します。た とえば、 Mule は EUC 系のファイルを読み込むと、標準で は日本語 EUC 系 (*euc-japan* ) だと判断しますが、 れを中国語 EUC 系だと思いこませるには、 (setq *euc—code—category* *euc—china*) のように、 * euc-code-category* 変数に * euc-china* 156 という値を設定します。 MuIe は特徴的な文字コードや文字コードの範囲を判 断材料として、ファイルを表 1 に示したコード系カテゴリ ーに分類します。しかし、 UNIX MAGAZINE 1994.7 *junet—code—category* に書かれています。 japanese. el の設定によれば、 *Junet—code—category* *sJis—code—category* この変数は、 に設定されています。 code-priority japanese. el の設定が、 ル ) に記述されています。たとえば、日本語の場合には図 4 リストは言語ごとの設定を記述したライプラリ ( ファイ おもにどの言語を用いるかによって異なるので、優先順位 コード系カテゴリーの優先順位は、ふつうはユーザーが 式で設定されています。 など、表 1 に示したコード系カテゴリー変数のリストの形 数、 その際に利用する優先順位のリストは、 Emacs Lisp 変 テゴリーの優先順位表に従ってカテゴリーを選択します。 という場合もあります。このようなときには、コード系カ ・なんらかの都合でコード系カテゴリーを一意に決められ ・データが足りなくて特徴的な文字コードをみつけられ

9. UNIX MAGAZINE 1994年7月号

品ばかり。これはメンテナンスが「面倒」にな ) を防ぐためのレンタル会 0 固定資こ関する制度現代のコンビュータ 社の都合で行なわれていることです純正品はサードノー製品に比 環境にそぐわない べ、値段が高いのはご存じの通り。結局ユーザーはレンタル会社の都合 税法上、 20 万円以上のコンピュータ関連機器は法定耐用年数 5 年以 で高いものを使わさオいるのです 上、固定資産として持たなければなりません。しかし今のハードウェアは 技術革新が早く、陳腐化の恐れが大きいものであるというのが現状で 0 そこでカナモトは提案したい / す 4 ~ 6 年前、どんなコンピュータを使っていたかを思い出せばよくわか [APPROVED USED 購層約権付レンレ」 って頂けると思いますもしかしたらあなたの会社にも償却の終わって いない、そんな祖大ゴミがあるのでは ? 高度成長、バブレの時代も終 《 APPROVED USED 購入予約権付レンタル》とは わり、新しい制度の必要性が高まっています ・サードバーティ製周辺機器をメインとした低価格のレンタルシステムです。 ■だからリース会社を利用ぽいöØですが・ ・このシステムをご利用いただいた方にのみ「 APPROVED USED 製 日本では情報機器のリ—7 が年間 4 兆円以上もあり、多くの企業がそれ 品」の購入予約権を設定させていただきます。 を利用していますでもちょっと待ってください。ファイナンシャルリースは基本 このシステムでは、ひとつの製品のレンタル使用期間を最長 1 年に設定 的に長期・途中解約禁止なのですこれが「遅いコンヒ彑ータ」や「時代 していますルダレ期間を過ぎたものに関してはメーカーに返送し細部 遅れの周辺機器」を我慢使わざるを得ない状況を作り出しているの までチェックした後メーカー 2 年保証のついた「 APPROVED USED 製 です現場から不満の声があがるのも当然といえば当然です 品」として販売いたします「 APPROVED USED 製品」の販売価格は 0 たからといってレンタ ) は・ 損金勘定に算入できる 20 万円以下を設定いたします 尚、製品の性質上、数に限りがあることを予めご了承ください。 レンタル会社で取り扱っている周辺機器は、コンヒータメーカーの純正 「 APPROVED USED 購入予約権付レンダ製品第一弾 . ( ′ 2. OGB HDD( 外置型 ) 4. OGB HDD( 外置型 ) 2. OGB HDB( 内蔵型) NEWTECH NW4 0 6 , 00 . \ 50 , 000 \ 24 , 000 ■レンダレ料金 ( 1 ~ 6 ヶ月 ) ・・ ・レンタル料金 ( 1 ~ 6 ヶ月 ) ・・ ■レンタル料金 ( 1 ~ 6 ヶ月 ) ・・ \ 15 , 000 0 , 000 \ 14 , 000 ( 7 ヶ月目から ) ( 7 ヶ月目から ) ( 7 ヶ月目から ) •APPROVED USED 購入予約価格 \ 90 , 000 •APPROVED USED 購入予約価格 \ 98 , 000 •APPROVED USED 購入予約価格 \ 198 , 0 【対応機種】・ SPARCstation 【対応機種】・ SPARCstation ・ EWS 4800 【対応機種】・ SPARCstation ・ HP Apo 09000 ・ RS / 6000 ・ EWS 4800 ・ H P Ap 09000 ・ PC -9800 ・ DOSN ※全ての製品にケーブルは付属してし、ます。 ・ FMRfTOWNS ・ RS / 6000 ・ Macintosh SCSI ポードが必要な場合は別途お問い合わせください。 NEMECH NWS2 i -0 NEV"ECH 2W2. OM し 0 レンタルシステム最新情報 一番新しい、 S 〃〃レレ開始 / ′ S 川火 C 可 io 〃 5 S 川火 C 可 io 〃 20 S Cs 血〃切 ) 例 どこよりも先駆けて販売開始 4 DTK S 〃 0 〃 5 し 03 16 ・ 3191 し 0467 ・ 48 ・ 3931 ◆一 東京 : 〒 113 東京都文京区湯島 1 丁目 3-4 KT お茶の水聖橋ビル 7F FAX. 03-3816-3999 大船 : 〒 247 神奈川県鎌倉市山崎 1085-1 FAX. 0467-48-3951 情報機器事業部 資料請求 N 。 .033

10. UNIX MAGAZINE 1994年7月号

連載 /UNIX Communication Notes リスト 5 location の記述文法 e れ あ c 佖 0 れ - list: location—se lection.• IOC 佖 t 乞 0 れ : opt-ass: loca 0 れ - をれ和 : se な 07 、 -0 〃た・ selection.• ん ey 凵あ c 佖 0 れ - list IOC 佖 t を 0 れ - selec 乞 0 れ あ ca 0 れ - I Ⅱ凵 c 佖 0 れ - selec 0 れ op 石 011 : = ゼ肥 ! = ゼな↓ e selection あ ca 0 れ - をれ工 0 ; se な 07 、 -0 t se な 07 、 -0 t ー loc 佖 0 れ - わゾ 0 あ ca 0 れ - を 7 ゾ 0 あ c 佖 0 れ - selec 07 あ ca 0 れ あ c 佖 0 れ ストで構成される。セレクションには、そのポリュームを マウントするかどうかの条件を言当し、オプションにはマ ウント時のオプションを指定する。 1 つのあ c ル可。 に複数のセレクションか当されたときは、すべてのセレ クションが真になる場合にのみ、そのポリュームがマウン トされる。 マウントマップでは、 key が /default のエントリを マップの最初に言己しておけはデフォルトか設定できる。 この言当はすべてのエントリに適用されるので、通常、各 工ントリの共通項を指定する。 しかし、デフォルトの言当を使いたくない場合もある。 そのようなときは、あ c 観ルルのう頁に ( マイナ ス記号 ) を付ければよい。このように言己主すると、それま でに定義されていたデフォルトの言当を捨て、そこに定義 されているあ c 。田可。を新たなデフォルトとして使 う。マイナス記号付きのん c 観 7 局可。に続くあ c ル 可。の評価では、変更されたデフォルトの記述が適用さ れる。たとえば、ある key に対応したエントリが、 であった場合、そのエントリの言面では最初にデフォルト を A に置き換え、次にそのデフォルトとあわせて B を評 価し、そこてマウントすべきポリュームか快定できなけれ ば、同様に生成したデフォルトと C をあわせて評価する。 このようにすれば、ファイルマッフ。がコンパクトになる。 value のなかに空白文字を入れたいときは、 ( 二重 —A B C 50 引用符 ) を使えばよい。 変数の参照 AMD は、マウントマップを言当主するための変数の機 構をもっている。変数は、オプションやセレクタで利用・ される。 7 、 ( 変数名 ) で参照できる変数名には、一ヨ殳にオ プションまたはセレクタを指定する。評価では、変数名は 指定されたオプションやセレクタの値に置き換えられる。 たとえば、 ${key} の値が manabu 、 ${autodir} の値が / h 。 me だとする。このとき、 fs : =${autodir}/local/${key} と書けば、 fs が /home/local/manabu に展開される。 AMD の変数の樹冓には、 / ( スラッシュ ) を用いた 特殊な機能が用意されている。変数名の頁にスラッシュ カ咐いている場合はパス名の最後の部分だけが、最後にス ラッシュが付いている場合はパス名の最後の部分を取り 除いたものが得られる。たとえば、 path に /home/is/ sugu て u か設定されているとき、 ・ ${/path} は suguru ・ ${path/} は /home/is に展開される。 注意 6 AMD で location を評価するときは、最初に変数への 参照が展開さ次に全体力面される。したがって、 1 つの location にオプションの設定と参照が含まれているような場合 UNIX MAGAZINE 1994.7