Mercurial > hg > Members > kono > nitros9-code
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/3rdparty/packages/uemacs/uemain.h Sun Feb 23 21:26:32 2003 +0000 @@ -0,0 +1,272 @@ +/* Main header */ + +#ifdef MAINTABLE +int currow; /* Working cursor row */ +int curcol; /* Working cursor column */ +int fillcol; /* Current fill column */ +int thisflag; /* Flags, this command */ +int lastflag; /* Flags, last command */ +int curgoal; /* Goal column */ +BUFFER *curbp; /* Current buffer */ +WINDOW *curwp; /* Current window */ +BUFFER *bheadp; /* BUFFER listhead */ +WINDOW *wheadp; /* WINDOW listhead */ +BUFFER *blistp; /* Buffer list BUFFER */ +short kbdm[NKBDM] = {CTLX|')'}; /* Macro */ +short *kbdmip; /* Input for above */ +short *kbdmop; /* Output for above */ +char pat[NPAT]; /* Pattern */ +#else +extern int currow; /* Working cursor row */ +extern int curcol; /* Working cursor column */ +extern int fillcol; /* Current fill column */ +extern int thisflag; /* Flags, this command */ +extern int lastflag; /* Flags, last command */ +extern int curgoal; /* Goal column */ +extern BUFFER *curbp; /* Current buffer */ +extern WINDOW *curwp; /* Current window */ +extern BUFFER *bheadp; /* BUFFER listhead */ +extern WINDOW *wheadp; /* WINDOW listhead */ +extern BUFFER *blistp; /* Buffer list BUFFER */ +extern short kbdm[]; /* Macro */ +extern short *kbdmip; /* Input for above */ +extern short *kbdmop; /* Output for above */ +extern char pat[]; /* Pattern */ +#endif + +typedef struct { + short k_code; /* Key code */ + int (*k_fp)(); /* Routine to handle it */ +} KEYTAB; + +/* + * Command table. + * This table is *roughly* in ASCII order, left to right across the + * characters of the command. This expains the funny location of the + * control-X commands. + */ +#ifdef MAINTABLE + +extern int ctrlg(); /* Abort out of things */ +extern int quit(); /* Quit */ +extern int ctlxlp(); /* Begin macro */ +extern int ctlxrp(); /* End macro */ +extern int ctlxe(); /* Execute macro */ +extern int fileread(); /* Get a file, read only */ +extern int filevisit(); /* Get a file, read write */ +extern int filewrite(); /* Write a file */ +extern int filesave(); /* Save current file */ +extern int filename(); /* Adjust file name */ +extern int getccol(); /* Get current column */ +extern int gotobol(); /* Move to start of line */ +extern int forwchar(); /* Move forward by characters */ +extern int gotoeol(); /* Move to end of line */ +extern int backchar(); /* Move backward by characters */ +extern int forwline(); /* Move forward by lines */ +extern int backline(); /* Move backward by lines */ +extern int forwpage(); /* Move forward by pages */ +extern int backpage(); /* Move backward by pages */ +extern int gotobob(); /* Move to start of buffer */ +extern int gotoeob(); /* Move to end of buffer */ +extern int setfillcol(); /* Set fill column. */ +extern int setmark(); /* Set mark */ +extern int swapmark(); /* Swap "." and mark */ +extern int forwsearch(); /* Search forward */ +extern int backsearch(); /* Search backwards */ +extern int showcpos(); /* Show the cursor position */ +#ifndef OS9 +extern int nextwind(); /* Move to the next window */ +extern int prevwind(); /* Move to the previous window */ +extern int onlywind(); /* Make current window only one */ +extern int splitwind(); /* Split current window */ +extern int mvdnwind(); /* Move window down */ +extern int mvupwind(); /* Move window up */ +extern int enlargewind(); /* Enlarge display window. */ +extern int shrinkwind(); /* Shrink window. */ +extern int listbuffers(); /* Display list of buffers */ +extern int usebuffer(); /* Switch a window to a buffer */ +extern int killbuffer(); /* Make a buffer go away. */ +#endif +extern int reposition(); /* Reposition window */ +extern int refresh(); /* Refresh the screen */ +extern int twiddle(); /* Twiddle characters */ +extern int tab(); /* Insert tab */ +extern int newline(); /* Insert CR-LF */ +extern int indent(); /* Insert CR-LF, then indent */ +extern int openline(); /* Open up a blank line */ +extern int deblank(); /* Delete blank lines */ +extern int quote(); /* Insert literal */ +extern int backword(); /* Backup by words */ +extern int forwword(); /* Advance by words */ +extern int forwdel(); /* Forward delete */ +extern int backdel(); /* Backward delete */ +extern int killer(); /* Kill forward */ +extern int yank(); /* Yank back from killbuffer. */ +extern int upperword(); /* Upper case word. */ +extern int lowerword(); /* Lower case word. */ +extern int upperregion(); /* Upper case region. */ +extern int lowerregion(); /* Lower case region. */ +extern int capword(); /* Initial capitalize word. */ +extern int delfword(); /* Delete forward word. */ +extern int delbword(); /* Delete backward word. */ +extern int killregion(); /* Kill region. */ +extern int copyregion(); /* Copy region to kill buffer. */ +extern int spawncli(); /* Run CLI in a subjob. */ +extern int spawn(); /* Run a command in a subjob. */ +extern int quickexit(); /* low keystroke style exit. */ + +KEYTAB keytab[] = { + CTRL|'@', setmark, + CTRL|'A', gotobol, + CTRL|'B', backchar, + CTRL|'C', spawncli, /* Run CLI in subjob. */ + CTRL|'D', forwdel, + CTRL|'E', gotoeol, + CTRL|'F', forwchar, + CTRL|'G', ctrlg, + CTRL|'H', backdel, + CTRL|'I', tab, + CTRL|'J', indent, + CTRL|'K', killer, + CTRL|'L', refresh, + CTRL|'M', newline, + CTRL|'N', forwline, + CTRL|'O', openline, + CTRL|'P', backline, + CTRL|'Q', quote, /* Often unreachable */ + CTRL|'R', backsearch, + CTRL|'S', forwsearch, /* Often unreachable */ + CTRL|'T', twiddle, + CTRL|'V', forwpage, + CTRL|'W', killregion, + CTRL|'Y', yank, + CTRL|'Z', quickexit, /* quick save and exit */ +#ifndef OS9 + CTLX|CTRL|'B', listbuffers, +#endif + CTLX|CTRL|'C', quit, /* Hard quit. */ + CTLX|CTRL|'F', filename, + CTLX|CTRL|'L', lowerregion, + CTLX|CTRL|'O', deblank, +#ifndef OS9 + CTLX|CTRL|'N', mvdnwind, + CTLX|CTRL|'P', mvupwind, +#endif + CTLX|CTRL|'R', fileread, + CTLX|CTRL|'S', filesave, /* Often unreachable */ + CTLX|CTRL|'U', upperregion, +#ifndef OS9 + CTLX|CTRL|'V', filevisit, +#endif + CTLX|CTRL|'W', filewrite, + CTLX|CTRL|'X', swapmark, +#ifndef OS9 + CTLX|CTRL|'Z', shrinkwind, +#endif + CTLX|'!', spawn, /* Run 1 command. */ + CTLX|'=', showcpos, + CTLX|'(', ctlxlp, + CTLX|')', ctlxrp, +#ifndef OS9 + CTLX|'1', onlywind, + CTLX|'2', splitwind, + CTLX|'B', usebuffer, +#endif + CTLX|'E', ctlxe, + CTLX|'F', setfillcol, +#ifndef OS9 + CTLX|'K', killbuffer, + CTLX|'N', nextwind, + CTLX|'P', prevwind, + CTLX|'Z', enlargewind, +#endif + META|CTRL|'H', delbword, + META|'!', reposition, + META|'.', setmark, + META|'>', gotoeob, + META|'<', gotobob, + META|'B', backword, + META|'C', capword, + META|'D', delfword, + META|'F', forwword, + META|'L', lowerword, + META|'U', upperword, + META|'V', backpage, +#ifndef OS9 + META|'W', copyregion, +#endif + META|0x7F, delbword, + 0x7F, backdel, + 0, 0 /* Signals end of table */ +}; +#else +extern KEYTAB keytab[]; +#endif + +#define NKEYTAB (sizeof(keytab)/sizeof(keytab[0])) + +#ifdef RAINBOW + +#include "rainbow.h" + +/* + * Mapping table from the LK201 function keys to the internal EMACS character. + */ + +short lk_map[][2] = { + Up_Key, CTRL+'P', + Down_Key, CTRL+'N', + Left_Key, CTRL+'B', + Right_Key, CTRL+'F', + Shift+Left_Key, META+'B', + Shift+Right_Key, META+'F', + Control+Left_Key, CTRL+'A', + Control+Right_Key, CTRL+'E', + Prev_Scr_Key, META+'V', + Next_Scr_Key, CTRL+'V', + Shift+Up_Key, META+'<', + Shift+Down_Key, META+'>', + Cancel_Key, CTRL+'G', + Find_Key, CTRL+'S', + Shift+Find_Key, CTRL+'R', + Insert_Key, CTRL+'Y', + Options_Key, CTRL+'D', + Shift+Options_Key, META+'D', + Remove_Key, CTRL+'W', + Shift+Remove_Key, META+'W', + Select_Key, CTRL+'@', + Shift+Select_Key, CTLX+CTRL+'X', + Interrupt_Key, CTRL+'U', + Keypad_PF2, META+'L', + Keypad_PF3, META+'C', + Keypad_PF4, META+'U', + Shift+Keypad_PF2, CTLX+CTRL+'L', + Shift+Keypad_PF4, CTLX+CTRL+'U', + Keypad_1, CTLX+'1', + Keypad_2, CTLX+'2', + Do_Key, CTLX+'E', + Keypad_4, CTLX+CTRL+'B', + Keypad_5, CTLX+'B', + Keypad_6, CTLX+'K', + Resume_Key, META+'!', + Control+Next_Scr_Key, CTLX+'N', + Control+Prev_Scr_Key, CTLX+'P', + Control+Up_Key, CTLX+CTRL+'P', + Control+Down_Key, CTLX+CTRL+'N', + Help_Key, CTLX+'=', + Shift+Do_Key, CTLX+'(', + Control+Do_Key, CTLX+')', + Keypad_0, CTLX+'Z', + Shift+Keypad_0, CTLX+CTRL+'Z', + Main_Scr_Key, CTRL+'C', + Keypad_Enter, CTLX+'!', + Exit_Key, CTLX+CTRL+'C', + Shift+Exit_Key, CTRL+'Z' + }; + +#define lk_map_size (sizeof(lk_map)/2) + +#endif + +#define NULL 0 +