[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

5 DEC XTPUの呼び出し

この章ではDEC XTPUの呼び出しについて説明します。 特にDEC XTPUを呼び出すコマンドであるEDIT/XTPUコマンドの使い方を詳しく説明しています。


5.1 概要

DECコマンド言語(DCL)レベルで下記のコマンドを入力すると, DEC XTPUが呼び出され,編集インターフェイスとして日本語EVEが使用されます。
     $ 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 XTPU DEC XTPU
/[NO]MODIFY アプリケーション アプリケーション
/[NO]OUTPUT[= filespec ] 両方 アプリケーション
/[NO]READ_ONLY 両方 アプリケーション
/[NO]RECOVER DEC XTPU DEC XTPU
/[NO]SECTION[= filespec ] DEC XTPU DEC XTPU
/START_POSITION[=( line,column )] DEC XTPU アプリケーション
/[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 MCSコードセット
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はキャラクタセル端末用のスクリーン・マネージャを使用します。 キャラクタセル端末用のスクリーン・マネージャは日本語DECterm端末エミュレータあるいはハードウェア端末上で動作します。

/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でのイニシャライゼーション・ファイルの使い方について, 詳しくは,『日本語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 ユーザーズ・ガイド』の "システム割り込みからの回復" を参照してください。


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コマンドの後にパラメータとしてOpenVMSファイル仕様を使用することができます。 ファイル仕様は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つだけ大きい番号となります。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]