前のページ | 次のページ | 目次 | 索引

5 DEC XTPUの呼び出し

5.1 概要

DECコマンド言語(DCL)レベルで下記のコマンドを入力すると,DEC XTPUが呼 び出され,編集インターフェイスとして日本語EVEが使用されます。
$ EDIT/XTPU
この章ではEDIT/XTPUコマンドの使い方が詳しく説明されています。この章 は,以下のような節から構成されています。

5.2 仮想アドレス空間に関するエラーを避ける方法

DEC XTPUはデータをプロセスの仮想メモリ空間で扱います。もし, DEC XTPUのイメージ,データ構造,およびメモリ中に展開されたファイルに必要な 空間が仮想アドレス空間を越えてしまった時には,DEC XTPUはデータの一部を ワーク・ファイルに書き出し,開放されたメモリを必要な処理のために使用します。

ワーク・ファイルがいっぱいになるとXTPU$_GETMEMまたはXTPU$_NOCACHEという エラー・メッセージが出力されます。不要なバッファを消去することでメモリを 開放することもできますが,このようなエラーが発生したときには, 処理を中断することが望まれます。再起動した後,必要なバッファのみを 使用して処理を続けてください。ワーク・ファイルを十分な容量のあるディスクに 置くことも可能です。ワーク・ファイルを置くディレクトリは,論理名 XTPU$WORKで指定してください。

プロセスに割り当てられる仮想アドレス空間を拡げることで,この回復不可能な 内部エラーを避けることもできます。仮想アドレス空間は, 以下の二つの要素によって決まります。

VIRTUALPAGECNTはプロセスにマップされる仮想ページの数を制御します。 VIRTUALPAGECNTに関する詳しい説明は, 『OpenVMSシステム管理ユーティリティ・リファレンス・マニュアル』 を参照してください。

ページ・ファイル・クォータは,プロセスに割り当てられる システム・ページ・ファイルの数を制御します。 ページ・ファイル・クォータに関する詳しい説明は, 『OpenVMSシステム管理ユーティリティ・リファレンス・マニュアル』の /PGFLQUOTA修飾子を参照してください。

仮想アドレス空間を拡げるためには,VIRTUALPAGECNTと ページ・ファイル・クォータの両方を変える必要があるかもしれません。

5.3 DCLコマンド・プロシージャからDEC XTPUを呼び出す場合

DEC XTPUをコマンド・プロシージャから呼び出さなければならないのは, 以下の2つの場合です。

5.3.1 特殊な編集環境の設定

最初に必要とする環境を設定し,次にDEC XTPUを呼び出す DCLコマンド・プロシージャを作成すれば,特殊な編集環境で DEC XTPUを実行することができます。この場合,SYS$INPUTにSYS$COMMANDと 同じ値を代入しなければなりません。
$ DEFINE/USER SYS$INPUT SYS$COMMAND
例 5-1は最後に編集したファイルを"記憶"し,そのファイルを DEC XTPUに対する入力ファイルとして使用するDCLコマンド・プロシージャを 示したものです。ファイル名をDCLのシンボルlast_file_editidに記憶した後, このDCLコマンド・プロシージャは省略時のセクション・ファイル (別のセクション・ファイルを指定していないため)と ユーザ作成コマンド・ファイルを使用してDEC XTPUを呼び出します。

例 5-1 DCLコマンド・プロシージャfilename.COM

   $ IF P1 .NES. "" THEN last_file_edited == P1
   $ WRITE SYS$OUTPUT "*** ''last_file_edited' ***"
   $ DEFINE/USER SYS$INPUT SYS$COMMAND
   $ EDIT/XTPU/COMMAND=DISK$:[USER]XTPUINI.TPU 'last_file_edited
例 5-2はFORTRANプログラムのためのタブ・ストップを 指定する環境を設定するコマンド・プロシージャです。

例 5-2 DCLコマンド・プロシージャfortran_ts.COM

   $ IF P1 .EQS. " THEN GOTO REGULAR_INVOKE
   $ last_file_edited == P1
   $ FTN_TEST = F$FILE_ATTRIBUTES (last_file_edited,"RAT")
   $ IF FTN_TEST .NES. "FTN" THEN GOTO REGULAR_INVOKE
   $ FTN_INVOKE:
   $     DEFINE/USER SYS$INPUT SYS$COMMAND
   $     EDIT/XTPU/COMMAND=FTNTABS.TPU 'last_file_edited
   $ GOTO TPU_DONE
   $ REGULAR_INVOKE:
   $     DEFINE/USER SYS$INPUT SYS$COMMAND
   $     EDIT/XTPU 'last_file_edited
   $ TPU_DONE:

5.3.2 対話方式でない編集環境の設定

一部の編集操作では編集コマンドを対話方式で入力するより, すべての編集コマンドをファイルに記憶し,ファイルからそれらのコマンドを 読み取る方が便利なことがあります。また編集結果をスクリーンに表示せずに編集を 実行したいこともあります。このような編集操作はバッチ・ジョブから 実行することができ,また編集セッションの結果をスクリーンに表示したい場合には, このような編集操作をDCLコマンド・プロシージャから実行することもできます。 実行中の編集操作がスクリーンに表示されない場合でも, コマンド・プロシージャが実行されている間, 端末装置を自由に使用することはできません。

例 5-3は下記の方法でDEC XTPUを呼び出すための コマンド・ラインを含むDCLコマンド・プロシージャを示したものです。

コマンド・プロシージャのファイル名はinvisible_tpu.COMです。

例 5-3 DCLプロシージャinvisible_tpu.COM

$ EDIT/XTPU/NOSECTION/COMMAND=gsr.TPU/NODISPLAY/NOKANJI_DICTIONARY 'p1'

/NOSECTION セクション・ファイルは使用しません (エディタを初期化するためにバイナリ・セクション・ファイルの プロシージャやキー定義は使用されません)。
/COMMAND=gsr.TPU 実行したい編集操作はコマンド・ファイルに含まれています。
/NODISPLAY スクリーン管理機能(ウィンドウ,カーソルなど)は認識されません。
/NOKANJI_DICTIONARY かな漢字変換辞書を使用しません。

gsr.TPUというファイルは/COMMAND修飾子に対するファイル仕様として 使用されています。これは現在のバッファを探索し,文字列またはパターンを 文字列と置き換えます。例 5-4はgsr.TPUというファイルを 示したものです。

例 5-4 DEC XTPUコマンド・ファイルgsr.TPU

PROCEDURE global_search_replace (str_or_pat, str2)

! This procedure performs a search through the current
! buffer and replaces a string or a pattern with a new string

LOCAL src_range, replacement_count;

! Return to caller if string not found
ON_ERROR
   msg_text := FAO ('Completed !UL  replacement!%S',
                                          replacement_count);
   MESSAGE (msg_text);
   RETURN;
ENDON_ERROR;

replacement_count := 0;

LOOP
   src_range := SEARCH (str_or_pat, FORWARD);
                                 ! Search returns a range if found
   ERASE (src_range);            ! Remove first string
   POSITION (END_OF (src_range));! Move to right place
   COPY_TEXT(str2);              ! Replace with second string
   replacement_count := replacement_count + 1;
ENDLOOP;
ENDPROCEDURE                     ! global_search_replace

! Executable statements
input_file:=GET_INFO (COMMAND_LINE,'file_name');
main_buffer:=CREATE_BUFFER ('main', input_file);
POSITION (BEGINNING_OF (main_buffer));
global_search_replace ('xyz$_', 'user$_');
pat1:= '' & LINE_BEGIN & 't';
POSITION (BEGINNING_OF (main_buffer));
global_search_replace (pat1, 'T');
WRITE_FILE (main_buffer, 'newfile.dat');
QUIT;


注意

/NODISPLAYをEDIT/XTPUコマンド・ラインに指定した場合には, キーを定義することはできません。また編集操作を記憶しているファイルで ウィンドウを作成したり操作することもできません。

/NOKANJI_DICTIONARYをEDIT/XTPUコマンド・ラインに指定しなかった時には, その編集操作に対して変換用個人辞書が割り当てられます。このため, バッチ・モードでかな漢字変換機能を使用しない時には, /NOKANJI_DICTIONARYを指定しておくことをお勧めします。


QUIT組込みプロシージャまたはEXIT組込みプロシージャを使用してエディタを 終了する時には,変更したバッファを出力しなければなりません(この操作は 例 5-4に示されています)。バッファの内容を 変更したのにそのバッファを出力しないと,その変更された内容は失われてしまいます。

5.4 バッチ・ジョブからDEC XTPUを呼び出す場合

端末装置からではなく,バッチ・ジョブで編集操作を実行したい場合には, DCLのSUBMITコマンドを使用してジョブをバッチ・キューに送ることができます。 たとえば,前の節と同じ編集をバッチ・モードで実行したい場合には, 以下のコマンドを入力することができます。
$ SUBMIT invisible_tpu.COM/LOG=invisible_tpu.LOG/parameter=my_file.txt
このジョブはシステムの省略時のバッチ・キューに入力され, 結果はバッチ・ジョブが作成するLOGファイルに出力されます。

バッチのようなコマンド・プロシージャに適用される制約条件は, バッチ・ジョブにも適用されます。/NODISPLAYをコマンド・ラインで使用するときと, 編集操作を含むファイルでEXIT組込みプロシージャまたはQUIT組込みプロシージャを 使用するときの注意事項について,上記の節を参照してください。

5.5 DEC XTPUコマンド・ラインの修飾子

EDIT/XTPUコマンドにはDEC XTPUあるいはDEC XTPUを使用して書かれた アプリケーションの動作を制御するために14個の修飾子があります。 修飾子は次のように2種類に分類できます。 表 5-1はEDIT/XTPUコマンドの修飾子と,それらの 省略時の値を定義する部分,それらの修飾子を解釈する部分を示しています。

表 5-1 EDIT/XTPU コマンドの修飾子

修飾子 省略時の値の定義 修飾子の扱い
/[NO]CODESET[= keyword] DEC XTPU DEC XTPU
/[NO]COMMAND[= filespec ]DEC XTPU DEC XTPU
/[NO]CREATE 両方 アプリケーション
/[NO]DEBUG[= filespec] DEC XTPU DEC XTPU
/[NO]DISPLAY[= keyword ] DEC XTPU DEC XTPU
/[NO]INITIALIZATION[= filespec ] 両方 アプリケーション
/[NO]JOURNAL[= filespec ] 両方 アプリケーション
/[NO]KANJI_DICTIONARY[= filespec ] DEC XTPUDEC XTPU
/[NO]MODIFY アプリケーション アプリケーション
/[NO]OUTPUT[= filespec ] 両方 アプリケーション
/[NO]READ_ONLY 両方 アプリケーション
/[NO]RECOVER DEC XTPUDEC XTPU
/[NO]SECTION[= filespec] DEC XTPU DEC XTPU
/START_POSITION[=( line,column )] DECXTPU アプリケーション
/[NO]WRITE 両方 アプリケーション

以降の節では,修飾子について詳しく説明します。以降の例の中では,修飾子は EDIT/XTPUコマンドのすぐ後,入力ファイル仕様の前に指定されていますが, 修飾子はEDIT/XTPUコマンドの後なら,コマンド・ラインのどこに 指定してもかまいません。以降の節は,インターフェイスとして日本語EVE 使用されていることを想定して書かれています。したがって,アプリケーションが 扱いを指定できる修飾子も日本語EVEをもとにして書かれています。 日本語EVEをベースにしないアプリケーションは,それらの修飾子を違った方法で 使用できます。

5.5.1 /CODESET

/CODESET[= keyword ]

/CODESET=ISO_LATIN1 ( 省略時設定 )
DEC XTPUの起動時のシステム・コードセットを指定します。システム・コードセットは 新しくバッファを作る時に使用されますので,組込みプロシージャで システム・コードセットを変更しなければ,作成されるバッファのコードセット および出力コードセットの初期値は/CODESET修飾子で指定した値になります。

/CODESET修飾子のパラメータに指定できるキーワードは以下の通りです。

表 5-2 /CODESET 修飾子のパラメータ

パラメータ コードセット
DECKANJI DEC漢字コードセット
SDECKANJI Super DEC漢字コードセット
ISO_LATIN1 ISO Latin1文字セット
DEC_MCS DECマルチナショナル文字セット
ASCII_JISKANA ASCII (JISローマ字) + JISカタカナコードセット
SJIS シフトJISコードセット

/CODESET修飾子を指定しなかった場合には,以下のような順序で システム・コードセットが決められます。

  1. 論理名LANGの定義

    論理名LANGに定義できるものは以下の通りです。大文字小文字の区別はありません。 論理名LANGはプロセスのコードセットの定義を行う場合に使用します。システム全体 のコードセットの定義を行う時には論理名XPG$DEFAULT_LANGを使用してください。

    表 5-3論理名 LANG の定義

    コードセット
    ja_JP.deckanji DEC漢字コードセット
    ja_JP.sdeckanji Super DEC漢字コードセット
    en_US.ISO8859- 1 ISO Latin1文字セット
    ja_JP.sjis シフトJISコードセット

  2. 論理名XPG$DEFAULT_LANGの定義

    論理名XPG$DEFAULT_LANGに定義できるものは以下の通りです。大文字小文字の 区別はありません。論理名XPG$DEFAULT_LANGはシステム全体のコードセットの 定義を行う場合に使用します。プロセスごとにコードセットを定義するときには 論理名LANGを使用してください。

    表 5-4論理名 XPG$DEFAULT_LANG の定義

    コードセット
    ja_JP.deckanji DEC漢字コードセット
    ja_JP.sdeckanji Super DEC漢字コードセット
    en_US.ISO8859- 1 ISO Latin1文字セット
    ja_JP.sjis シフトJISコードセット

  3. 省略値の使用

    上記の論理名が定義されていない時にはコードセットの省略値が使用されます。 省略値は論理名XTPU$TEXT_LANGUAGEの値によってきまります。XTPU$TEXT_LANGUAGEが "JAPANESE"と定義されているときはDEC漢字コードセットが システム・コードセットになります。それ以外のときには ISO Latin1コードセットがシステム・コードセットになります。

日本語OpenVMSでは以下のようにシステム論理名が定義されていますので, /CODESET修飾子を指定しなかった場合には通常DEC漢字コードセットが システム・コードセットになります。 コマンド・ラインで指定されたコードセットの名前を知るには以下のように してください。変数Xにはコードセットを示すキーワードが戻ります。
   x := GET_INFO (COMMAND_LINE, "codeset");
次のコマンドを実行すると,DEC XTPUは起動時にシステム・コードセットを Super DEC漢字コードセットに設定し,編集セッションのための入力ファイルとして letter.txtを使用します。
   $ EDIT/XTPU/CODESET=sdeckanji letter.txt

5.5.2 /COMMAND

   /COMMAND[= filespec ]
   /NOCOMMAND
   /COMMAND=XTPU$COMMAND ( 省略時設定 )
DEC XTPUが初期化のために,ユーザ作成コマンド・ファイルを読み取るかどうかを 指定します。コマンド・ファイルは,DEC XTPU上に作られたアプリケーションの拡張 および変更や,新しいアプリケーションを作るために使用されます。 DEC XTPUコマンド・ファイルの省略時のファイル・タイプは.TPUです。 ファイル指定にワイルド・カードを使うことはできません。特に指定しなかった場合, 省略時の値によってDEC XTPUは,省略時のディレクトリのXTPU$COMMAND.TPUという コマンド・ファイルを読み取ろうとします。省略時のコマンド・ファイル以外の コマンド・ファイルを使用する場合には,/COMMAND修飾子の後に 完全なファイル仕様を指定するか,またはXTPU$COMMANDという論理名を 定義してください。

ユーザがDCLコマンド・ラインで/COMMANDを指定したかどうかは, アプリケーションの中で以下のようにして知ることができます。

   x := GET_INFO (COMMAND_LINE, "command");
/COMMANDが指定された時には1,指定されなかった時には0が返されます。 コマンド・ラインで指定されたコマンド・ファイルの名前を知るには 以下のようにしてください。
   x := GET_INFO (COMMAND_LINE, "command_file");
以下のコマンドを実行すると,DEC XTPUはsys$login:my_tpu$command.TPUという 名前のコマンド・ファイルを読み取り,編集セッションのための 入力ファイルとして,letter.rnoを使用します。
   $ EDIT/XTPU/COMMAND=sys$login:my_tpu$command.TPU letter.rno
DEC XTPUがコマンド・ファイルを処理しないようにするには,/NOCOMMAND修飾子を 使用します。コマンド・ファイルを使用せずにDEC XTPUを呼び出すことが 多いときには,以下のようなシンボルを定義しておくと良いでしょう。
   $ JEVE == "EDIT/XTPU/NOCOMMAND"
/NOCOMMAND修飾子を使用してコマンド・ファイルを使用しないと, コマンド・ファイルの探索が不要になるので,始動時間を短縮することができます。

指定したコマンド・ファイルが存在しないときには,編集を継続せずに DCLに戻ります。

5.5.3 /CREATE

   /CREATE ( 省略時設定 )
   /NOCREATE
指定された入力ファイルが存在しないときに,DEC XTPUが新しいファイルを 作成するかどうかを指定します。/CREATEと/NOCREATEが両方とも 指定されなかったときには,DEC XTPUは/CREATEと解釈しますが, ファイル名は指定されません。

DEC XTPUの上にレイヤ構造となっているインターフェイスが,この修飾子を 処理します。インターフェイスは以下に示すGET_INFO組込みプロシージャを 使用することによって,DEC XTPUが呼び出されたときに, 修飾子が指定されていたかどうかを知ることができます。

   x := GET_INFO (COMMAND_LINE, "create")
この値が1のときは,/CREATEが指定されていたことを,0のときは /NOCREATEが指定されていたことを示します。

日本語EVEは,省略時には入力ファイルが存在しないときにファイルを作成します。 /NOCREATEを指定して,入力ファイルに存在しないファイルを指定すると, 編集を中断して,DCLコマンド・レベルに戻ります。

たとえば,現在のデバイスとディレクトリがDISK$:[USER]のときに NEWFILE.DATという存在しない入力ファイルを指定したときには, DEC XTPUインターフェイスはエラー・メッセージをプリントし,下記のように DCLコマンド・レベルに戻ります。

   $ EDIT/XTPU/NOCREATE newfile.dat
   入力ファイルがありません: NEWFILE.DAT
   $

5.5.4 /KANJI_DICTIONARY

   /KANJI_DICTIONARY[=  kanji_dictionary_filename  ]
   /NOKANJI_DICTIONARY
   /KANJI_DICTIONARY=SYS$LOGIN:JSYKOJIN.JISHO (    省略時設定 )
DEC XTPUがかな漢字変換用の個人辞書を使用するかどうかを指定します。 指定されないときには,DEC XTPUの省略時の値によってJSY$KOJINという論理名で 示されるファイルを個人辞書として使用しようとします。このときに, JSY$KOJINの論理名にファイルが割り当てられていないと, SYS$LOGIN:JSYKOJIN.JISHOが個人辞書として使用されます。 個人辞書として使用されるファイルは, 日本語OpenVMSの個人辞書ファイルでなければなりません。

/KANJI_DICTIONARY= filespec 修飾子に対する値を指定すれば, 個人辞書として使用されるファイルの名前を指定することができます。 この結果,省略時の個人辞書であるSYS$LOGIN:JSYKOJIN.JISHOは無効になります。

下記のコマンドを実行すると,DEC XTPUはpersonal.jishoというファイルを 個人辞書として使用します。

   $ EDIT/XTPU/KANJI_DICTIONARY=personal.jisho
個人辞書として指定されたファイルが存在しないときには, DEC XTPUは個人辞書を指定されたファイル名で作成して使用します。

/NOKANJI_DICTIONARYを指定したときには,DEC XTPUは個人辞書を使用しません。 したがってCONVERT_KANA,ENTER_TANGO,DELETE_TANGOなどの組込みプロシージャを 実行することはできません。これらの組込みプロシージャを 実行するには個人辞書が必要で,エラー・メッセージが表示されます。

DEC XTPUをバッチ・モードで使用するときのように,かな漢字変換を 必要としないときには/NOKANJI_DICTIONARY修飾子を指定すると良いでしょう。

$ EDIT/XTPU/NODISPLAY/NOKANJI_DICTIONARY/NOSECTION/COMMAND=format.tpu
個人辞書の利用方法は,論理名JSY$KOJIN_MODEによって指定することができます。

  1. JSY$KOJIN_MODE="0" (個人辞書共有モード)

    個人辞書を用いて変換を行います。個人辞書への学習を行い, 単語の登録および削除もできます。辞書を共有することができます。

  2. JSY$KOJIN_MODE="1" (個人辞書学習モード)

    個人辞書を用いて変換を行います。個人辞書への学習を行い, 単語の登録および削除もできます。辞書を共有することはできません。

  3. JSY$KOJIN_MODE="2" (個人辞書参照モード)

    個人辞書を用いて変換を行います。ただし,個人辞書への学習は行われずに, 単語の登録および削除もできません。個人辞書参照モードどうしなら, 個人辞書を共有することができます。

  4. JSY$KOJIN_MODE="3"

    個人辞書は使用されません。

JSY$KOJIN_MODEが論理名として定義されていないときの省略値は, "1."の個人辞書共有モードです。

5.5.5 /DISPLAY

   /DISPLAY=CHARACTER_CELL ( 省略時設定 )
   /DISPLAY=DECWINDOWS
   /NODISPLAY
DECwindows版とキャラクタセル版のDEC XTPUを選択するには,DEC XTPUを 起動するときにDCLコマンド・ラインの/DISPLAY修飾子で行います。 /DISPLAYコマンド修飾子はオプションです。省略時には,DEC XTPUを ワークステーション上で使うか端末上で使うかに関わらず, /DISPLAY=CHARACTER_CELLが使われます。 /DISPLAY=CHARACTER_CELLを指定したときには,DEC XTPUはキャラクタセル端末用の スクリーン・マネージャを使用します。キャラクタセル端末用の スクリーン・マネージャはJDECterm (JVWS)端末エミュレータあるいは ハードウェア端末上で動作します。

/DISPLAY=DECWINDOWSを指定し,DECwindowsの環境を使うことができるときには, DEC XTPUはDECwindows用のスクリーン・マネージャを使用して, DEC XTPUのためにDECwindowsのウィンドウを作成します。 /DISPLAY=DECWINDOWSを指定したときに,DECwindowsの環境を使うことができない 場合には,DEC XTPUはキャラクタセル端末用のスクリーン・マネージャを使用します。

/NODISPLAY修飾子を使用すると,DEC XTPUは端末装置のスクリーン表示機能 やキーボード機能を使用せずに動作します。次の場合には, /NODISPLAY修飾子を使用しなければなりません。

/NODISPLAYを使用する場合には,DEC XTPUのウィンドウ操作コマンドや スクリーン操作コマンドを実行するとエラーが発生します。また/NODISPLAYが 指定されているときでも,スクリーン操作コマンド(ADJUST_WINDOW, CREATE_WINDOW,MAP)およびキー定義を含む初期化ファイルは実行することができます。 これらのコマンドは意味のないもので,バッチ・ログ・ファイルまたは スクリーンにエラー・メッセージが通知されることもあります。したがっ て,/NODISPLAY修飾子を使用するセッションでは,特殊な初期化ファイル (セクション・ファイルまたはコマンド・ファイル)を使用してください。 このファイルにはスクリーン操作コマンド(READ_LINE,MESSAGE,および LAST_KEYは除きます。これらはいくつかの制限はありますが正しく機能します) やキー定義を含んでいけません。さらにファイルは,完全な DEC XTPUセッションである必要があります。つまり,EXITコマンドまたは QUITコマンドで終了していなければなりません。

以下のコマンドを実行すると,DEC XTPUは端末装置を使用せずに my_batch_file.rnoというファイルを編集します。

   $ EDIT/XTPU/NODISPLAY my_batch_file.rno

5.5.6 /INITIALIZATION

   /INITIALIZATION[= filespec ] ( 省略時設定 )
   /NOINITIALIZATION
DEC XTPUを使用して書かれたアプリケーションがイニシャライゼーション・ファイルを 実行するかどうかを指定します。この修飾子の使い方は, アプリケーションによって異なります。

アプリケーションは,次のようにしてユーザがDCLコマンド・ラインで /INITIALIZATIONを指定したかどうかを調べます。

   x := GET_INFO (COMMAND_LINE, "initialization");
この値が1のときは,/INITIALIZATIONが指定されていたことを,0のときに は,指定されていなかったことを示します。コマンド・ラインで指定された ファイル名を知るためには次のようにします。
   x := GET_INFO (COMMAND_LINE, "initialization_file");
詳しくは,『Guide to the DEC Text Processing Utility』を参照してください。

DCLコマンド・ラインで/[NO]INITIALIZATIONを指定しなかったときには, DEC XTPUは/INITIALIZATIONが指定されていたものとして処理を行います。 ただし,省略時のファイル名はありません。省略時のファイル名は, アプリケーションによって指定されます。ユーザがアプリケーションを書くときには, 次のようなフォーマットのファイルを省略時のファイルとすることをお勧めします。

   facility$init.facility
日本語EVEの省略時のイニシャライゼーション・ファイルは, JEVE$INIT_V3.EVEです。

日本語EVEにおいてデバイスやディレクトリを指定しなかったときには, 日本語 EVEはまず最初に現在のディレクトリを捜します。指定された (またはデフォルトの)イニシャライゼーション・ファイルがそこにないときには, 日本語EVEはSYS$LOGINを捜します。イニシャライゼーション・ファイルが見つかれば, 日本語EVEはそのファイル中のコマンドを実行します。

日本語EVEでのイニシャライゼーション・ファイルの使い方について, 詳しくは,の第2.3節"日本語EVEのカスタマイズ" を参照してください。

5.5.7 /JOURNAL

/JOURNAL= input_file .TJL
/NOJOURNAL ( 省略時設定 )
割り込まれたセッションから回復できるように,DEC XTPUが編集セッション のジャーナル・ファイルを保存するかどうかを指定します。DEC XTPUは 2種類のジャーナリングをサポートします。 この修飾子の処理はDEC XTPU上に作られたアプリケーションの責任です。

アプリケーションは,次のようにしてユーザがDCLコマンド・ラインで /JOURNALを指定したかどうかを調べます。

   x := GET_INFO (COMMAND_LINE, "journal");
この値が1のときは,/JOURNALが指定されていたことを,0のときには, 指定されていなかったことを示します。

あるバッファにたいしてバッファ・ジャーナリングが起動されているかどうかを 知るためには次のようにします。

   status := GET_INFO (buffer_name, "journaling");
コマンド・ラインで指定されたキー・ジャーナリングのファイル名を 知るためには次のようにします。
  x := GET_INFO (COMMAND_LINE, "journal_file");
詳しくは,『Guide to the DEC Text Processing Utility』を参照してください。

日本語EVEでは,/JOURNAL修飾子を指定しないか,ジャーナル・ファイル名を 付けずに/JOURNALを指定したときには,バッファ・ジャーナリングが使用されます。 バッファ・ジャーナリングの,ジャーナル・ファイルの省略時の ファイル・タイプは.XTPU$JOURNALです。

/JOURNAL= filespec というようにジャーナル・ファイル名を指定すると, キー・ジャーナリングも同時に使用されます。キー・ジャーナリングの, ジャーナル・ファイルの省略時のファイル・タイプは.TJLです。

日本語EVEで,キー・ジャーナリング,バッファ・ジャーナリングの両方を 使わないときには,修飾子に/NOJOURNALを指定してください。たとえば, 以下のコマンドは日本語EVEに対してジャーナリングをしないで MEMO.TXTをいうファイルを編集することを指示します。

   $ EDIT/XTPU/NOJOURNAL memo.txt
DEC XTPU上にアプリケーションを作る時には,JOURNAL_OPEN組込みプロシージャを 使用して編集セッションのキー・ジャーナル・ファイルを作成します。 JOURNAL_OPENによってDEC XTPUはキーをジャーナリングするために 500バイトのバッファを確保します。通常DEC XTPUはそのバッファが いっぱいになったときにバッファの内容をジャーナル・ファイルに書き出します。

/NOJOURNALを指定してバッファ・ジャーナリングを起動させていないときでも, SET (JOURNALING)組込みプロシージャを使用して起動できます。 SET (JOURNALING)はジャーナリングの頻度を設定する際にも使用されます。 JOURNAL_OPENおよびSET (JOURNALING)について詳しくは 『Guide to the DEC Text Processing Utility』を参照してください。

キー・ジャーナリングでジャーナル・ファイルを作成した後, DEC XTPU がジャーナル・ファイルに含まれるコマンドを処理するようにするには, /RECOVER修飾子を使用します。下記のコマンドを実行すると,DEC XTPUは MEMO.TXTという名前の入力ファイルを編集した編集セッションをジャーナル・ファイル MEMO.TJLを使用して回復します。キー・ジャーナリングのジャーナル・ファイルを 用いて回復を行う場合には,コマンド行に, /JOURNAL=filespec と/RECOVER修飾子の両方を指定しなければなりません。

   $ EDIT/XTPU/RECOVER/JOURNAL=memo.tjl memo.txt
バッファ・ジャーナリングでバッファの変更を回復するには RECOVER_BUFFER 組込みプロシージャを使用してください。 RECOVER_BUFFERについて詳しくは 『DEC Text Processing Utility Reference Manual』を参照してください。

中断された日本語EVEセッションを回復する方法について詳しくは 『日本語EVE ユーザーズ・ガイド』 第7.4節"システム割り込みからの回復" を参照してください。

5.5.8 /MODIFY

   /MODIFY ( 省略時設定 )
   /NOMODIFY
編集セッションの最初のユーザ・バッファが変更可能かどうかを指定します。 DEC XTPUを使用して書かれたアプリケーションが,/MODIFY修飾子を処理します。

/MODIFY修飾子がどのように使用されたかを知るためには次のようにします。

   x := GET_INFO (COMMAND_LINE, "modify")
   x := GET_INFO (COMMAND_LINE, "nomodify")
最初のステートメントの値が1のときには/MODIFYが明示的に指定されたことを 示します。2番目のステートメントの値が1のときには/NOMODIFYが明示的に 指定されたことを示します。両方のステートメントの値が0のときには, アプリケーションは省略時の動作をしなければなりません (省略時の動作はアプリケーションによって異なります)。

日本語EVEを使うときに,/MODIFY,/NOMODIFY,/READ_ONLY, /NOWRITEのいづれも指定しなければ,日本語EVEは編集セッションのすべての バッファを変更可能にします。/NOMODIFYを指定すれば, すべてのユーザ・バッファは変更できなくなります。

日本語EVEで,/MODIFYも/NOMODIFYも指定しなかったときには, /READ_ONLYあるいは,/WRITE修飾子が指定されていたかどうかが調べられます。 /READ_ONLYと/MODIFY,あるいは/NOWRITEと/MODIFYを同時に指定するとバッファは 変更可能になります。同様に,/WRITEと/NOMODIFY,あるいは /NOREAD_ONLYと /NOMODIFYを同時に指定するとバッファは変更不可能になります。

5.5.9 /OUTPUT

   /OUTPUT= input_file.type ( 省略時設定 )
   /NOOUTPUT
DEC XTPUセッションの出力がファイルに書き込まれるかどうかを指定します。 DEC XTPUの上にレイヤ構造となっているインターフェイスは,この修飾子を 処理しなければなりません。インターフェイスは以下に示す GET_INFO組込みプロシージャを使用して,DEC XTPUが呼び出されたときに修飾子が 指定されていたかどうかを知ることができます。
   x := GET_INFO (COMMAND_LINE, "output")
日本語EVEインターフェイスでは,/OUTPUTを使用することにより, DEC XTPUを終了するときにメイン・バッファから作成されるファイルの名前を 指定することができます。

インターフェイスとして日本語EVEを使用しているときに以下のコマンドを 実行すると,DEC XTPUを終了するときに,DEC XTPUはメイン・バッファの内容を newlet.rnoというファイルに出力します。

   $ EDIT/XTPU/OUTPUT=newlet.rno letter.rno
出力ファイルの省略時の名前は入力ファイルの名前と同じで,バージョン番号は 入力ファイルの既存のバージョンより1だけ大きな値になります。 /OUTPUT修飾子に対してファイル指定をすれば, 出力ファイルに別の名前を付けることができます。

/NOOUTPUT修飾子は,DEC XTPU上に,ファイルに出力を書き込まないような インターフェイスを作成するときに使用することができます。たとえば, コマンド・ラインに/NOOUTPUTを指定すると,DEC XTPUがメイン・バッファに対して NO_WRITE属性を設定し,そのバッファに対する出力ファイルは 作成しないというようなアプリケーションを作ることができます。

5.5.10 /READ_ONLY

   /READ_ONLY
   /NOREAD_ONLY ( 省略時設定 )
DEC XTPUがジャーナル・ファイルを保存し,メイン・バッファを変更したときに, メイン・バッファの内容から出力ファイルを作成するかどうかを指定します。

/READ_ONLY修飾子の処理は,/WRITE修飾子と関係があります。/READ_ONLYは /NOWRITEを同じです。また/NOREAD_ONLYは,/WRITEと同じです。 DCLコマンドで次のように修飾子が組み合せられたときには,DEC XTPUは, エラーを出して終了します。

DEC XTPU上に作られたアプリケーションは,この修飾子を処理しなければなりません。

DCLコマンド・ラインで/READ_ONLYあるいは/NOWRITEが指定されたことを知るには, 次の呼び出しを使用します。

   x := GET_INFO (COMMAND_LINE, "read_only");
1という値は,/READ_ONLYあるいは/NOWRITEが指定されたことを示します。

DCLコマンド・ラインで/NOREAD_ONLYあるいは/WRITEが指定されたことを知るには, 次の呼び出しを使用します。

   x := GET_INFO (COMMAND_LINE, "write");
1という値は,/NOREAD_ONLYあるいは/WRITEが指定されたことを示します。

日本語EVEでは,/READ_ONLY修飾子は,/NOMODIFY修飾子,および/NOOUTPUT修飾子の すべてを使用した場合と同じ結果になります。/READ_ONLYを指定すると, DEC XTPUはすべてのユーザ・バッファに対してNO_WRITE属性とNO_MODIFY属性を セットします。バッファがNO_WRITEにセットされている場合には, DEC XTPUを終了するときに,バッファの内容がファイルに書き込まれません。 EXIT組込みプロシージャとQUIT組込みプロシージャはどちらも,メイン・バッファの 内容から新しいファイルを作成せずに編集セッションを終了します。

たとえば,次のコマンドを実行すると, DEC XTPUはエディタを終了するときに新しいファイルを作成しません。

   $ EDIT/XTPU/READ_ONLY meeting.mem
/NOREAD_ONLYは,EXITコマンドが実行されるときにメイン・バッファの 内容が変更されていれば,メイン・バッファをファイルに書き込むように DEC XTPUに指示を与えます。これは省略時の処理です。

5.5.11 /RECOVER

   /RECOVER
   /NORECOVER ( 省略時設定 )
DEC XTPUが起動時にジャーナル・ファイルを読み込んで,前に中断された 編集セッションを回復するかどうかを指定します。たとえば,次のコマンドを 実行すると,DEC XTPUはnotes.txtというファイルに対する前の 編集セッションを回復します。
   $ EDIT/XTPU/RECOVER notes.txt
DCLコマンド・ラインで/RECOVERが指定されたかどうかは, 以下のようにして知ることができます。
   x := GET_INFO (COMMAND_LINE, "recover")
1という値は,/RECOVERが指定されたことを示します。

JOURNAL_OPEN組込みプロシージャが実行されると,通常は,DEC XTPUは出力のために ジャーナル・ファイルをオープンします。/RECOVERを指定し, JOURNAL_OPEN組込みプロシージャを実行すると,ジャーナル・ファイルは 入力と出力のためにオープンされます。DEC XTPUは,入力ファイルに含まれる すべてのコマンドを復元するために入力ファイルをオープンします。その後, DEC XTPUは編集セッションの残りの部分に関して,またはJOURNAL_CLOSE が実行されるまで,キーストロークをジャーナル・ファイルに保存します。 DEC XTPUの上にレイヤ構造となっているインターフェイスは, JOURNAL_OPEN 組込みプロシージャが実行されるかどうかを制御しなければなりません。

セッションを回復する場合,個人辞書の内容を含むファイルはすべて, 回復する編集セッションを開始したときと同じ状態でなければなりません。 また端末装置特性はすべて,回復する編集セッションを開始したときと同じ 状態でなければなりません。端末装置の幅や1ページの長さを変更した場合には, 回復する編集セッションを開始したときの値に戻しておかなければりません。 特に次の値には注意してください。

ジャーナル・ファイルの名前が入力ファイルの名前と異なる場合には, DCLコマンド・ラインに/JOURNAL= filespec 修飾子と/RECOVER修飾子の 両方を指定しなければなりません。
   $ EDIT/XTPU/RECOVER/JOURNAL=save.dat letter.dat
/NORECOVERはDEC XTPUの省略時の値です。

5.5.12 /SECTION

   /SECTION[= filespec ]
   /NOSECTION
   /SECTION=XTPU$SECTION ( 省略時設定 )
DEC XTPUが,セクション・ファイルを読み取るかどうかを指定します。 セクション・ファイルとは,キー定義やコンパイルされたプロシージャを バイナリ形式で持っているファイルのことです。

省略時のセクション・ファイルはXTPU$SECTIONです。セクション・ファイルを 検索するときには省略時のディレクトリにSYS$SHARE, 省略時のファイル・タイプにXTPU$SECTIONを使用します。XTPU$SECTIONという 論理名には,デフォルトでJEVE$SECTION_V3が定義されているので,省略時には SYS$SHARE:JEVE$SECTION_V3.XTPU$SECTIONを読み込みます。これは 日本語EVEインターフェイスです。初期化のために別のファイルを指定することも できます。このときには,省略時のファイル以外のセクション・ファイル を指定するために,XTPU$SECTIONという論理名を再定義してください。 また/SECTION修飾子にセクション・ファイルの完全なファイル仕様を指定する こともできます。

次のコマンドを実行すると, DEC XTPUはvt282ini.XTPU$SECTIONというセクション・ファイルを読み取ります。

   $ EDIT/XTPU/SECTION=disk$user:[smith]vt282ini
ファイル指定のときに,装置とディレクトリを指定しないと,DEC XTPUは SYS$SHAREにあるファイルをさがします。セクション・ファイルは, DEC XTPU を起動するノードと同じノードに存在しなければなりません。

DCLコマンド・ラインで/SECTIONが指定されたかどうかを知るには, アプリケーションの中で以下のようにします。

   x := GET_INFO (COMMAND_LINE, "section");
/SECTIONが指定されたときには1が,指定されなかったときには0が戻されます。 コマンド・ラインで指定されたファイル名を得るには以下のようにします。
   x := GET_INFO (COMMAND_LINE, "section_file");
/SECTION= filespec に対する値として使用されるファイルは, DEC XTPUでファイルのソース・コードのバージョンを実行してコンパイルし, SAVE組込みプロシージャを使用して保存しておかなければなりません。 この処理を実行すると,ファイルは正しいバイナリ形式に変換されます。

/NOSECTIONを指定した場合には,DEC XTPUはセクション・ファイルを読み取りません。 /COMMAND修飾子も使用しなかった場合には,DEC XTPUはユーザ・インターフェイスを 持たず,どのキーも定義されない状態となります。この状態では, [Ctrl/Y]を押さなければDEC XTPUを終了することはできません。/NOSECTIONは, 日本語EVEをベースにしないで独自のDEC XTPUアプリケーションを作るときに 使用されます。

5.5.13 /START_POSITION

   /START_POSITION=( line,column )
   /START_POSITION=(1,1) ( 省略時設定 )
ユーザがDEC XTPUを使用して書かれたアプリケーションを起動したときの 最初のカーソル位置を指定します。

DEC XTPU上のアプリケーションが,この修飾子を使用してカーソル位置を 設定する処理を行います。

次のようにするとDCLコマンド・ラインで/START_POSITION修飾子で指定された値を 知ることができます。

   start_line := GET_INFO (COMMAND_LINE, "start_record");
   start_line := GET_INFO (COMMAND_LINE, "start_character");
DCLコマンド・ラインで/START_POSITION修飾子が指定されなかったときは, DEC XTPUは行,カラムともに1を設定します。

日本語EVEではこの修飾子を使用して,メイン・バッファのどの位置に最初に カーソルが置かれるかを指定します。省略時の最初の位置は,1行目の 1カラム目です。

5.5.14 /WRITE

   /WRITE ( 省略時設定 )
   /NOWRITE
メイン・バッファの内容が書き換えられたときにDEC XTPU上のアプリケーションが 内容を新しいファイルに書き込むかどうかを指定します。

/WRITE修飾子がどのように処理されるかは,/READ_ONLY修飾子にも関係しています。 /WRITEは/NOREAD_ONLYと同じです。また/NOWRITEは/READ_ONLYと同じです。

次のような組み合せがDCLコマンド・ラインで使用されたときには, DEC XTPU はエラーを通知してDCLに戻ります。

DEC XTPUで書かれたアプリケーションがこの修飾子を処理します。次のようにすれば, /WRITEまたは/NOREAD_ONLY修飾子が DCLコマンド・ラインで 使用されたかどうかを知ることができます。
   x := GET_INFO (COMMAND_LINE, "write");
1という値は,/NOREAD_ONLYあるいは/WRITEが明示的に指定されたことを示します。

次のようにすれば,/NOWRITEまたは/READ_ONLY修飾子がDCLコマンド・ライン で使用されたかどうかを知ることができます。

   x := GET_INFO (COMMAND_LINE, "read_only");
1という値は,/READ_ONLYあるいは/NOWRITEが明示的に指定されたことを示します。

両方のGET_INFOともに"偽"を返したときには,アプリケーションは省略時の 動作をします(省略時の動作はアプリケーションによって異なります)。

日本語EVEにおいては,/NOWRITE修飾子は,/NOMODIFY, /NOOUTPUTを指定したときとまったく同じです。

5.6 DEC XTPUコマンドのパラメータ

DCLレベルでDEC XTPUコマンドの後にパラメータとしてVMSファイル仕様を 使用することができます。ファイル仕様はDEC XTPUで作成または編集したい ファイルの名前をオペレーティング・システムに対して指定するために 使用されます。以下のコマンド・ラインは日本語EVEのセクション・ファイルを 使用してDEC XTPUを呼び出し,history.txtというファイルを指定します。
   $ EDIT/XTPU/SECTION=sys$library:jeve$section_v3 history.txt
セクション・ファイルを使用しないでDEC XTPUを呼び出すときには, パラメータを指定する必要はありません。しかし,DEC XTPUの上にレイヤ構造と なっている編集インターフェイスの多くは,処理したいファイルを指定するために DCLコマンド・ラインのパラメータが使用されています。たとえば, 日本語EVEは省略可能なパラメータとしてファイル仕様を受け付けます。 ファイル名を指定しなくても編集セッションを開始することはできますが, バッファにデータを入力した後でDEC XTPUを終了しようとすると, ファイル名を要求するプロンプトが表示されます。

ファイル仕様はファイル名だけでも,また次の例に示されているように, 完全なファイル仕様でも指定できます。

   $ EDIT/XTPU disk$user:[smith]letter.dat
使用しているインターフェイスによって,DEC XTPUは入力ファイル名の一部 としてワイルドカード文字を認識できる場合とできない場合があります。 日本語EVEはワイルドカード文字に対して一致するものが1つのときに, ワイルドカード文字を処理します。それ以外の場合には, 日本語EVEは該当するファイル名の候補を表示して,指定を求めます。

ファイル仕様の一部としてバージョン番号を指定する必要はありません。 バージョン番号を指定しなかったときには,DEC XTPUはディレクトリの中で 最大のバージョン番号を読み込みます。古いバージョンのファイルを 編集したい場合には,ファイル仕様にバージョン番号を指定してください。

ファイル仕様には複数のファイルを同時に指定することができます。 複数のファイルを指定する場合にはファイル名をコンマ(,)で区切って指定します。 以下の例ではfirst.txtとsecond.txtの2つのファイルを指定しています。

   $ EDIT/XTPU first.txt,second.txt
コマンド・ラインに/OUTPUT修飾子を指定することにより出力ファイルの 名前を指定しない限り,日本語EVEは入力ファイルの名前を出力ファイル名として 使用します。この場合,編集しているもとのバージョンが変更されることはありません。 システム管理者がバージョン・リミットをセットしていない限り, もとのバージョンもディレクトリにそのまま保存されます。 DEC XTPUを終了すると,新しいファイルが入力ファイル・ディレクトリに作成されます (別のディレクトリを指定していない場合)。出力ファイルは入力ファイルと 同じ名前になりますが,バージョン番号は入力ファイルより 1つだけ大きい番号となります。 XTPU$CLEANUP


前のページ | 次のページ | 目次 | 索引