|
|
1.1 root 1: ; Shell.cmd: MSDOS shell within MicroEMACS
2: ; written 1987 by Daniel Lawrence
3:
4: write-message "[Setting up SHELL window]"
5:
6: store-procedure getdir
7: shell-command "cd > eshell"
8: set %shtmp $cbufname
9: !force delete-buffer eshell
10: find-file eshell
11: beginning-of-file
12: set %shdir $line
13: select-buffer %shtmp
14: delete-buffer eshell
15: !endm
16:
17: store-procedure prompt
18: !if ¬ &equ $curcol 0
19: newline
20: !endif
21: !if ¬ &seq $line ""
22: open-line
23: !endif
24: insert-string &cat %shdir ">"
25: !endm
26:
27: store-procedure getline
28: beginning-of-line
29: set %shtmp $curline
30: !force search-forward ">"
31: !if ¬ &equ $curline %shtmp
32: set $curline %shtmp
33: !endif
34: !if &equ $curchar 10
35: set %shline ""
36: !else
37: kill-to-end-of-line
38: yank
39: set %shline $kill
40: !endif
41: newline
42: !endm
43:
44: store-procedure execline
45: shell-command &cat %shline " > shtmp"
46: !force insert-file shtmp
47: !endm
48:
49: ; prompt and execute a command
50:
51: 4 store-macro
52: run getline
53: !if ¬ &seq %shline ""
54: !if &or &seq &left %shline 2 "cd" &seq &right %shline 1 ":"
55: shell-command %shline
56: run getdir
57: !else
58: run execline
59: !endif
60: !endif
61: run prompt
62: !endm
63:
64: store-procedure checkmode
65: !if &and %shmode ¬ &seq $cbufname "[I-SHELL]"
66: set $discmd FALSE
67: bind-to-key newline ^M
68: add-mode blue
69: add-mode WHITE
70: write-message "[Exiting Shell window]"
71: set %shmode FALSE
72: set $discmd TRUE
73: !endif
74: !if &and ¬ %shmode &seq $cbufname "[I-SHELL]"
75: set $discmd FALSE
76: write-message "[Entering Shell window]"
77: bind-to-key execute-macro-4 ^M
78: run getdir
79: add-mode black
80: add-mode GREEN
81: end-of-file
82: run prompt
83: set %shmode TRUE
84: set $discmd TRUE
85: !endif
86: !endm
87:
88: ; window movement (and deactivate us)
89:
90: 5 store-macro
91: next-window
92: run checkmode
93: !endm
94:
95: 6 store-macro
96: previous-window
97: run checkmode
98: !endm
99:
100: 7 store-macro
101: delete-window
102: run checkmode
103: !endm
104:
105: 8 store-macro
106: find-file @"Find file:"
107: run checkmode
108: !endm
109:
110: 9 store-macro
111: next-buffer
112: run checkmode
113: !endm
114:
115: store-procedure openshell
116: set $discmd FALSE
117: bind-to-key execute-macro-5 ^XO
118: bind-to-key execute-macro-6 ^XP
119: bind-to-key execute-macro-7 ^X0
120: bind-to-key execute-macro-8 ^X^F
121: bind-to-key execute-macro-9 ^XX
122: select-buffer "[I-SHELL]"
123: run checkmode
124: set $discmd TRUE
125: !endm
126:
127: set %shmode FALSE
128: run openshell
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.