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