diff vms/kepteditor.com @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vms/kepteditor.com	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,88 @@
+$ verify = f$verify (0)
+$ !
+$ ! Kept_Editor.COM
+$ ! Command file for use on VMS to spawn an Emacs process
+$ ! that can be suspended with C-z and will not go away
+$ ! when other programs are run.  This is the normal way
+$ ! for users to invoke Emacs on VMS; the command "emacs"
+$ ! is normally defined to execute this file.
+$ ! That definition, and other definitions used by it, are done by `emacs.com'.
+$ ! Users who want to use Emacs should have their `login.com' files
+$ ! execute `emacs.com', which is to be found in this directory.
+$ !
+$ ! Joe Kelsey
+$ ! FlexComm Corp.
+$ !
+$ ! September, 1985
+$ !
+$ ! Run or attach to an editor in a kept fork.
+$ !
+$ ! Modified by Marty Sasaki to define the job logical name
+$ ! "EMACS_FILE_NAME" with the value of the filename on the command
+$ ! line. Lisp code can then use the value of the logical to resume or
+$ ! to start editing in that file.
+$ !
+$ !
+$	edit		= ""
+$	name		= p1 + " " + f$trnlnm ( "TT" ) - ":"
+$	priv_list	= f$setprv ("NOWORLD, NOGROUP")
+$	pid 		= 0
+$ 10$:
+$ 	proc		= f$getjpi ( f$pid ( pid ), "PRCNAM")
+$ 	if proc .eqs. name then -
+$		goto attach
+$ 	if pid .ne. 0 then -
+$		goto 10$
+$ spawn:
+$	args		= p2 + " " + p3 + " " + p4 + " " + p5 + " " + -
+    			  p6 + " " + p7 + " " + p8
+$ 	priv_list	= f$setprv ( priv_list )
+$ 	write sys$error -
+"[Spawning a new Kept ''P1']"
+$	if p1 .nes. "TPU" then -
+$		goto check_emacs
+$ 	define/user	sys$input	sys$command
+$ 	spawn	/process="''NAME'" -
+    		/nolog -
+    		edit/'p1' 'args'
+$ 	goto quit1
+$ check_emacs:
+$	if p1 .nes. "EMACS" then -
+$		goto un_kempt
+$	define/user	sys$input	sys$command
+$	spawn	/process="''NAME'" -
+		/nolog -
+		runemacs 'args'
+$	goto quit1
+$ un_kempt:
+$ ! The editor is unruly - spawn a process and let the user deal with the
+$ ! editor himself.
+$	spawn	/process="''NAME'" -
+		/nolog
+$	goto quit1
+$ attach:
+$ 	priv_list	= f$setprv ( priv_list )
+$	message_status = f$environment("message")
+$	set noon
+$	on control_y then goto quit
+$	set message /nofacility/noidentification/noseverity/notext
+$	if p2 .eqs. "" then goto no_logical
+$	temp = f$trnlnm("SYS$DISK") + f$directory() + p2
+$	temp = f$edit(temp,"lowercase")
+$	define/nolog/job emacs_file_name "''temp'"
+$ no_logical:
+$ 	write sys$error -
+"[Attaching to process ''NAME']"
+$ 	define/user	sys$input	sys$command
+$ 	attach "''NAME'"
+$ quit:
+$	set noon
+$	if p2 .eqs. "" then goto quit1
+$	deassign/job emacs_file_name
+$ quit1:
+$	set message 'message_status
+$ 	write sys$error -
+"[Attached to DCL in directory ''F$TRNLNM("SYS$DISK")'''F$DIRECTORY()']"
+$ 	if verify then -
+$		set verify
+$	exit