|
|
1.1 root 1: $ verify = f$verify (0)
2: $ !
3: $ ! Kept_Editor.COM
4: $ ! Command file for use on VMS to spawn an Emacs process
5: $ ! that can be suspended with C-z and will not go away
6: $ ! when other programs are run. This is the normal way
7: $ ! for users to invoke Emacs on VMS; the command "emacs"
8: $ ! is normally defined to execute this file.
9: $ ! That definition, and other definitions used by it, are done by `emacs.com'.
10: $ ! Users who want to use Emacs should have their `login.com' files
11: $ ! execute `emacs.com', which is to be found in this directory.
12: $ !
13: $ ! Joe Kelsey
14: $ ! FlexComm Corp.
15: $ !
16: $ ! September, 1985
17: $ !
18: $ ! Run or attach to an editor in a kept fork.
19: $ !
20: $ ! Modified by Marty Sasaki to define the job logical name
21: $ ! "EMACS_FILE_NAME" with the value of the filename on the command
22: $ ! line. Lisp code can then use the value of the logical to resume or
23: $ ! to start editing in that file.
24: $ !
25: $ !
26: $ edit = ""
27: $ name = p1 + " " + f$trnlnm ( "TT" ) - ":"
28: $ priv_list = f$setprv ("NOWORLD, NOGROUP")
29: $ pid = 0
30: $ 10$:
31: $ proc = f$getjpi ( f$pid ( pid ), "PRCNAM")
32: $ if proc .eqs. name then -
33: $ goto attach
34: $ if pid .ne. 0 then -
35: $ goto 10$
36: $ spawn:
37: $ args = p2 + " " + p3 + " " + p4 + " " + p5 + " " + -
38: p6 + " " + p7 + " " + p8
39: $ priv_list = f$setprv ( priv_list )
40: $ write sys$error -
41: "[Spawning a new Kept ''P1']"
42: $ if p1 .nes. "TPU" then -
43: $ goto check_emacs
44: $ define/user sys$input sys$command
45: $ spawn /process="''NAME'" -
46: /nolog -
47: edit/'p1' 'args'
48: $ goto quit
49: $ check_emacs:
50: $ if p1 .nes. "EMACS" then -
51: $ goto un_kempt
52: $ define/user sys$input sys$command
53: $ spawn /process="''NAME'" -
54: /nolog -
55: runemacs 'args'
56: $ goto quit
57: $ un_kempt:
58: $ ! The editor is unruly - spawn a process and let the user deal with the
59: $ ! editor himself.
60: $ spawn /process="''NAME'" -
61: /nolog
62: $ goto quit
63: $ attach:
64: $ priv_list = f$setprv ( priv_list )
65: $ message_status = f$environment("message")
66: $ set noon
67: $ set message /nofacility/noidentification/noseverity/notext
68: $ deassign/job emacs_file_name
69: $ set on
70: $ set message 'message_status
71: $ if p2 .eqs. "" then goto no_logical
72: $ temp = f$trnlnm("SYS$DISK") + f$directory() + p2
73: $ temp = f$edit(temp,"lowercase")
74: $ define/nolog/job emacs_file_name "''temp'"
75: $ no_logical:
76: $ write sys$error -
77: "[Attaching to process ''NAME']"
78: $ define/user sys$input sys$command
79: $ attach "''NAME'"
80: $ quit:
81: $ write sys$error -
82: "[Attached to DCL in directory ''F$TRNLNM("SYS$DISK")'''F$DIRECTORY()']"
83: $ if verify then -
84: $ set verify
85: $ exit
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.