4 ATG_EDT, Utilities, Nick de Smith's extension to EDT  
 Nick de Smith  Applied Telematics Group
 7 Vale Avenue  Tunbridge Wells  Kent TN1 1DJ England  +44 892 511000 PSI%234213300154::NICK   		Extended, Callable EDT 		----------------------  ] Use BUILD.COM to build the ATG_EDT image. Define a foreign command, to access this image. eg.    		$ edt == "dev:[dir]atg_edt"   r Then use the symbol EDT as you would normal EDT, with all the qualifiers. I suggest you put ATG_EDT in a directoryr referenced by the logical ATG$EDT. You can then put the language template files in the same directory (see below).  
 EDTINI.EDTb 	The "standard" EDT initialiser as published ad nausiam. Includes support for ATG_EDT (see below).   EDTVT100.DOCD 	A printable, stick-on, explanation of the facilities in EDTINI.EDT.  	 BUILD.COM  	Command file to build ATG_EDT.    ATG_EDT.C, CLIMSGDEF.H  W  This module is a top level interface to callable EDT. It offers many extra features...   R  /OUTPUT /COMMAND /JOURNAL /READ_ONLY /RECOVER /CREATE are the same as on EDIT/EDT  j  If /REMEMBER is used on the command line (the default), then ATG_EDT defines the following logical names:  U 	EDT$$GT_CURRENT_FILE			current output file name. This can be accessed in any spawned ) 						sub-process, or outside of ATG_EDT. k 	If ATG_EDT is invoked without an input filename, the translation of EDT$$GT_CURRENT_FILE is used (if any), j 	ie. the last file edited is the default file to edit. If there was no last file then you will be prompted 	for the file to edit.  ? 	EDT$$GT_LANGUAGE_TEMPLATE		language template file in the form:  							ATG$EDT:language.EDT  		Language	File-type
 		ADA		ADA 		BASIC		BAS, SUB, INC 		BLISS		BLI, B32, REQ	 		C		C, H  		COBOL		COB
 		DCL		COM 		FORTRAN		FOR, FTN, F77 		MACRO		MAR
 		PASCAL		PAS  		RUNOFF		RNT, RNO, RNH   m  The language of an input file is determined by its file type. The table "r_template" contains a list of file i  types and the associated language. If the file type is not recognised, the language is set to "UNKNOWN". 1  In your EDTINI.EDT file, add a line of the form:   ' 		set command edt$$gt_language_template   q  This will execute the language initialiser for the file you are editing. If the initialiser does not exist, then   no error is generated.   L  The XLATE callback supplied in this module supports two modes of operation:  ' 	1) Called with a zero length parameter J 	   Spawn a sub-process. Suspend EDT session until sub-process terminates.+ 	2) Called with a non zero length parameter l 	   Execute the single command passed in a sub-process. Defines 0EDTIN.TMP as the sub-process SYS$INPUT, andm 	   0EDTOUT.TMP as the sub-process SYS$OUTPUT. These files can therefore be written and read by EDT commands.   q  Examples:	(replace <esc> by an escape character, and <ctl/z> by a control-Z character. Each "define key" command Q 		should be on a single line. "^Z" is exactly that! An up-arrow followed by a Z).    	insert =clear_screen  	<esc>[H<esc>[J  	^Z < 	define key gold $ as "ext write sys$output: =clear_screen ; 		change ; xlate<ctl/z> ref." V 	define key gold ^ as "ext clear edtfilter ; write sys$scratch:0edtin.tmp =edtfilter ;J 		change ; xlate?'DCL Command: '<ctl/z> ext inc sys$scratch:0edtout.tmp ."\ 	define key gold * as "cutsr=edtfilter ext find =edtfilter ; change ; er d-c ext find last ;+ 		write SYS$SCRATCH:0EDTIN.TMP =edtfilter ; M 		change ; xlate?'DCL Filter: '<ctl/z> ext include SYS$SCRATCH:0EDTOUT.TMP ."    	These lines define: 		GOLD $		Spawn a sub-process O 		GOLD ^		Execute a DCL command and include the output at the current position. ` 		GOLD *		Run a program that reads SYS$INPUT and writes SYS$OUTPUT to process the select region.] 				The current select region contents are written to a file that appears as SYS$INPUT to the \ 				program running in the sub-processes. The select region is replaced with SYS$OUTPUT from 				the sub-process.  