Mercurial > hg > xemacs-beta
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