Mercurial > hg > Members > kono > nitros9-code
comparison 3rdparty/packages/uemacs/uemain.h @ 995:48c646212b1c
'microEMACS' for OS-9.
Posted to USENET net.micro.6809, 4-May-86. Picked up from Google groups
author | roug |
---|---|
date | Sun, 23 Feb 2003 21:26:32 +0000 |
parents | |
children | a51439f6b206 |
comparison
equal
deleted
inserted
replaced
994:bef1844de0dc | 995:48c646212b1c |
---|---|
1 /* Main header */ | |
2 | |
3 #ifdef MAINTABLE | |
4 int currow; /* Working cursor row */ | |
5 int curcol; /* Working cursor column */ | |
6 int fillcol; /* Current fill column */ | |
7 int thisflag; /* Flags, this command */ | |
8 int lastflag; /* Flags, last command */ | |
9 int curgoal; /* Goal column */ | |
10 BUFFER *curbp; /* Current buffer */ | |
11 WINDOW *curwp; /* Current window */ | |
12 BUFFER *bheadp; /* BUFFER listhead */ | |
13 WINDOW *wheadp; /* WINDOW listhead */ | |
14 BUFFER *blistp; /* Buffer list BUFFER */ | |
15 short kbdm[NKBDM] = {CTLX|')'}; /* Macro */ | |
16 short *kbdmip; /* Input for above */ | |
17 short *kbdmop; /* Output for above */ | |
18 char pat[NPAT]; /* Pattern */ | |
19 #else | |
20 extern int currow; /* Working cursor row */ | |
21 extern int curcol; /* Working cursor column */ | |
22 extern int fillcol; /* Current fill column */ | |
23 extern int thisflag; /* Flags, this command */ | |
24 extern int lastflag; /* Flags, last command */ | |
25 extern int curgoal; /* Goal column */ | |
26 extern BUFFER *curbp; /* Current buffer */ | |
27 extern WINDOW *curwp; /* Current window */ | |
28 extern BUFFER *bheadp; /* BUFFER listhead */ | |
29 extern WINDOW *wheadp; /* WINDOW listhead */ | |
30 extern BUFFER *blistp; /* Buffer list BUFFER */ | |
31 extern short kbdm[]; /* Macro */ | |
32 extern short *kbdmip; /* Input for above */ | |
33 extern short *kbdmop; /* Output for above */ | |
34 extern char pat[]; /* Pattern */ | |
35 #endif | |
36 | |
37 typedef struct { | |
38 short k_code; /* Key code */ | |
39 int (*k_fp)(); /* Routine to handle it */ | |
40 } KEYTAB; | |
41 | |
42 /* | |
43 * Command table. | |
44 * This table is *roughly* in ASCII order, left to right across the | |
45 * characters of the command. This expains the funny location of the | |
46 * control-X commands. | |
47 */ | |
48 #ifdef MAINTABLE | |
49 | |
50 extern int ctrlg(); /* Abort out of things */ | |
51 extern int quit(); /* Quit */ | |
52 extern int ctlxlp(); /* Begin macro */ | |
53 extern int ctlxrp(); /* End macro */ | |
54 extern int ctlxe(); /* Execute macro */ | |
55 extern int fileread(); /* Get a file, read only */ | |
56 extern int filevisit(); /* Get a file, read write */ | |
57 extern int filewrite(); /* Write a file */ | |
58 extern int filesave(); /* Save current file */ | |
59 extern int filename(); /* Adjust file name */ | |
60 extern int getccol(); /* Get current column */ | |
61 extern int gotobol(); /* Move to start of line */ | |
62 extern int forwchar(); /* Move forward by characters */ | |
63 extern int gotoeol(); /* Move to end of line */ | |
64 extern int backchar(); /* Move backward by characters */ | |
65 extern int forwline(); /* Move forward by lines */ | |
66 extern int backline(); /* Move backward by lines */ | |
67 extern int forwpage(); /* Move forward by pages */ | |
68 extern int backpage(); /* Move backward by pages */ | |
69 extern int gotobob(); /* Move to start of buffer */ | |
70 extern int gotoeob(); /* Move to end of buffer */ | |
71 extern int setfillcol(); /* Set fill column. */ | |
72 extern int setmark(); /* Set mark */ | |
73 extern int swapmark(); /* Swap "." and mark */ | |
74 extern int forwsearch(); /* Search forward */ | |
75 extern int backsearch(); /* Search backwards */ | |
76 extern int showcpos(); /* Show the cursor position */ | |
77 #ifndef OS9 | |
78 extern int nextwind(); /* Move to the next window */ | |
79 extern int prevwind(); /* Move to the previous window */ | |
80 extern int onlywind(); /* Make current window only one */ | |
81 extern int splitwind(); /* Split current window */ | |
82 extern int mvdnwind(); /* Move window down */ | |
83 extern int mvupwind(); /* Move window up */ | |
84 extern int enlargewind(); /* Enlarge display window. */ | |
85 extern int shrinkwind(); /* Shrink window. */ | |
86 extern int listbuffers(); /* Display list of buffers */ | |
87 extern int usebuffer(); /* Switch a window to a buffer */ | |
88 extern int killbuffer(); /* Make a buffer go away. */ | |
89 #endif | |
90 extern int reposition(); /* Reposition window */ | |
91 extern int refresh(); /* Refresh the screen */ | |
92 extern int twiddle(); /* Twiddle characters */ | |
93 extern int tab(); /* Insert tab */ | |
94 extern int newline(); /* Insert CR-LF */ | |
95 extern int indent(); /* Insert CR-LF, then indent */ | |
96 extern int openline(); /* Open up a blank line */ | |
97 extern int deblank(); /* Delete blank lines */ | |
98 extern int quote(); /* Insert literal */ | |
99 extern int backword(); /* Backup by words */ | |
100 extern int forwword(); /* Advance by words */ | |
101 extern int forwdel(); /* Forward delete */ | |
102 extern int backdel(); /* Backward delete */ | |
103 extern int killer(); /* Kill forward */ | |
104 extern int yank(); /* Yank back from killbuffer. */ | |
105 extern int upperword(); /* Upper case word. */ | |
106 extern int lowerword(); /* Lower case word. */ | |
107 extern int upperregion(); /* Upper case region. */ | |
108 extern int lowerregion(); /* Lower case region. */ | |
109 extern int capword(); /* Initial capitalize word. */ | |
110 extern int delfword(); /* Delete forward word. */ | |
111 extern int delbword(); /* Delete backward word. */ | |
112 extern int killregion(); /* Kill region. */ | |
113 extern int copyregion(); /* Copy region to kill buffer. */ | |
114 extern int spawncli(); /* Run CLI in a subjob. */ | |
115 extern int spawn(); /* Run a command in a subjob. */ | |
116 extern int quickexit(); /* low keystroke style exit. */ | |
117 | |
118 KEYTAB keytab[] = { | |
119 CTRL|'@', setmark, | |
120 CTRL|'A', gotobol, | |
121 CTRL|'B', backchar, | |
122 CTRL|'C', spawncli, /* Run CLI in subjob. */ | |
123 CTRL|'D', forwdel, | |
124 CTRL|'E', gotoeol, | |
125 CTRL|'F', forwchar, | |
126 CTRL|'G', ctrlg, | |
127 CTRL|'H', backdel, | |
128 CTRL|'I', tab, | |
129 CTRL|'J', indent, | |
130 CTRL|'K', killer, | |
131 CTRL|'L', refresh, | |
132 CTRL|'M', newline, | |
133 CTRL|'N', forwline, | |
134 CTRL|'O', openline, | |
135 CTRL|'P', backline, | |
136 CTRL|'Q', quote, /* Often unreachable */ | |
137 CTRL|'R', backsearch, | |
138 CTRL|'S', forwsearch, /* Often unreachable */ | |
139 CTRL|'T', twiddle, | |
140 CTRL|'V', forwpage, | |
141 CTRL|'W', killregion, | |
142 CTRL|'Y', yank, | |
143 CTRL|'Z', quickexit, /* quick save and exit */ | |
144 #ifndef OS9 | |
145 CTLX|CTRL|'B', listbuffers, | |
146 #endif | |
147 CTLX|CTRL|'C', quit, /* Hard quit. */ | |
148 CTLX|CTRL|'F', filename, | |
149 CTLX|CTRL|'L', lowerregion, | |
150 CTLX|CTRL|'O', deblank, | |
151 #ifndef OS9 | |
152 CTLX|CTRL|'N', mvdnwind, | |
153 CTLX|CTRL|'P', mvupwind, | |
154 #endif | |
155 CTLX|CTRL|'R', fileread, | |
156 CTLX|CTRL|'S', filesave, /* Often unreachable */ | |
157 CTLX|CTRL|'U', upperregion, | |
158 #ifndef OS9 | |
159 CTLX|CTRL|'V', filevisit, | |
160 #endif | |
161 CTLX|CTRL|'W', filewrite, | |
162 CTLX|CTRL|'X', swapmark, | |
163 #ifndef OS9 | |
164 CTLX|CTRL|'Z', shrinkwind, | |
165 #endif | |
166 CTLX|'!', spawn, /* Run 1 command. */ | |
167 CTLX|'=', showcpos, | |
168 CTLX|'(', ctlxlp, | |
169 CTLX|')', ctlxrp, | |
170 #ifndef OS9 | |
171 CTLX|'1', onlywind, | |
172 CTLX|'2', splitwind, | |
173 CTLX|'B', usebuffer, | |
174 #endif | |
175 CTLX|'E', ctlxe, | |
176 CTLX|'F', setfillcol, | |
177 #ifndef OS9 | |
178 CTLX|'K', killbuffer, | |
179 CTLX|'N', nextwind, | |
180 CTLX|'P', prevwind, | |
181 CTLX|'Z', enlargewind, | |
182 #endif | |
183 META|CTRL|'H', delbword, | |
184 META|'!', reposition, | |
185 META|'.', setmark, | |
186 META|'>', gotoeob, | |
187 META|'<', gotobob, | |
188 META|'B', backword, | |
189 META|'C', capword, | |
190 META|'D', delfword, | |
191 META|'F', forwword, | |
192 META|'L', lowerword, | |
193 META|'U', upperword, | |
194 META|'V', backpage, | |
195 #ifndef OS9 | |
196 META|'W', copyregion, | |
197 #endif | |
198 META|0x7F, delbword, | |
199 0x7F, backdel, | |
200 0, 0 /* Signals end of table */ | |
201 }; | |
202 #else | |
203 extern KEYTAB keytab[]; | |
204 #endif | |
205 | |
206 #define NKEYTAB (sizeof(keytab)/sizeof(keytab[0])) | |
207 | |
208 #ifdef RAINBOW | |
209 | |
210 #include "rainbow.h" | |
211 | |
212 /* | |
213 * Mapping table from the LK201 function keys to the internal EMACS character. | |
214 */ | |
215 | |
216 short lk_map[][2] = { | |
217 Up_Key, CTRL+'P', | |
218 Down_Key, CTRL+'N', | |
219 Left_Key, CTRL+'B', | |
220 Right_Key, CTRL+'F', | |
221 Shift+Left_Key, META+'B', | |
222 Shift+Right_Key, META+'F', | |
223 Control+Left_Key, CTRL+'A', | |
224 Control+Right_Key, CTRL+'E', | |
225 Prev_Scr_Key, META+'V', | |
226 Next_Scr_Key, CTRL+'V', | |
227 Shift+Up_Key, META+'<', | |
228 Shift+Down_Key, META+'>', | |
229 Cancel_Key, CTRL+'G', | |
230 Find_Key, CTRL+'S', | |
231 Shift+Find_Key, CTRL+'R', | |
232 Insert_Key, CTRL+'Y', | |
233 Options_Key, CTRL+'D', | |
234 Shift+Options_Key, META+'D', | |
235 Remove_Key, CTRL+'W', | |
236 Shift+Remove_Key, META+'W', | |
237 Select_Key, CTRL+'@', | |
238 Shift+Select_Key, CTLX+CTRL+'X', | |
239 Interrupt_Key, CTRL+'U', | |
240 Keypad_PF2, META+'L', | |
241 Keypad_PF3, META+'C', | |
242 Keypad_PF4, META+'U', | |
243 Shift+Keypad_PF2, CTLX+CTRL+'L', | |
244 Shift+Keypad_PF4, CTLX+CTRL+'U', | |
245 Keypad_1, CTLX+'1', | |
246 Keypad_2, CTLX+'2', | |
247 Do_Key, CTLX+'E', | |
248 Keypad_4, CTLX+CTRL+'B', | |
249 Keypad_5, CTLX+'B', | |
250 Keypad_6, CTLX+'K', | |
251 Resume_Key, META+'!', | |
252 Control+Next_Scr_Key, CTLX+'N', | |
253 Control+Prev_Scr_Key, CTLX+'P', | |
254 Control+Up_Key, CTLX+CTRL+'P', | |
255 Control+Down_Key, CTLX+CTRL+'N', | |
256 Help_Key, CTLX+'=', | |
257 Shift+Do_Key, CTLX+'(', | |
258 Control+Do_Key, CTLX+')', | |
259 Keypad_0, CTLX+'Z', | |
260 Shift+Keypad_0, CTLX+CTRL+'Z', | |
261 Main_Scr_Key, CTRL+'C', | |
262 Keypad_Enter, CTLX+'!', | |
263 Exit_Key, CTLX+CTRL+'C', | |
264 Shift+Exit_Key, CTRL+'Z' | |
265 }; | |
266 | |
267 #define lk_map_size (sizeof(lk_map)/2) | |
268 | |
269 #endif | |
270 | |
271 #define NULL 0 | |
272 |