blob: 72ef1ab2549907b5155cf9e924ceeb3eeb17b2ce (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
/*
* EPARAM.H -- Definition of the string editing capabilities. The mapping
* of the commands is defined by the *.ed files in DEV.
*/
#define FIRST_CMD 3 /* first command escape sequence */
#define NUM_COMMANDS 35 /* number of recognized commands */
#define MAX_COMMANDS 50 /* max commands recognized by edcap */
#define SZ_ESCAPE 10 /* terminal escape sequence */
#define SZ_KEYSTROKE 12 /* keystroke command name */
#define G_TOPLINE 6 /* top of eparam scrolling region */
#define G_BOTLINE 22 /* bottom of eparam scrolling region */
#define G_STARTCOL 11 /* start of eparam edit area */
#define G_CMDLINE 24 /* command line for messages & exit */
#define G_MAXPARAM 100 /* maximum number of parameters */
#define G_MAXPAGES 12 /* maximum number of pages */
#define G_MAXSTRING 80 /* maximum size of the edit string */
#define G_BIGSIZE 2048 /* sum of sizes of value fields */
#define MAXPROMPT 2048 /* maximum characters in multiline pr. */
#define PROMPTOFFSET 32 /* where the prompt starts */
#define VALUEOFFSET 11 /* where the value field starts */
#define MAX_ON_ROW 6 /* the number of %10.10s fields */
#define FWD 1
#define AFT 0
/* eparam() context structure.
*/
struct ep_context {
int e_init; /* set on first call */
XINT e_topd; /* save top of dictionary */
int e_topkey; /* saved context variables */
int e_line; /* " */
int e_col; /* " */
int e_nextkey; /* " */
int e_nextline; /* " */
struct pfile *e_mpfp; /* master pfile descriptor */
struct pfile *e_cpfp; /* pfilecopy descriptor */
char e_pset[SZ_FNAME+1]; /* pset name (task or file) */
};
/* eparam() colon commands and exit status codes.
*/
#define EP_EOF 1 /* update pfile and pop context */
#define EP_EDIT 2 /* discard context and edit */
#define EP_DESCEND 3 /* push context and edit pfile */
#define EP_RUN 4 /* exit and run task */
/* Editor initialization and termination sequences (these have to be first
* in case a 'define key' capability is added).
*/
#define EDITOR_ID 0 /* editor's name */
#define EDIT_INIT 1 /* editor initialization sequence */
#define EDIT_TERM 2 /* editor termination sequence */
/* edit commands */
#define MOVE_UP 3 /* move the cursor up one line */
#define MOVE_DOWN 4 /* move the cursor down one line */
#define MOVE_RIGHT 5 /* move the cursor one char to the right */
#define MOVE_LEFT 6 /* move the cursor one char to the left */
#define NEXT_WORD 7 /* move the cursor one word to the right */
#define PREV_WORD 8 /* move the cursor one word to the left */
#define MOVE_EOL 9 /* move the cursor to the end of line */
#define MOVE_BOL 10 /* move the cursor to the beginning */
#define NEXT_PAGE 11 /* move to the next page */
#define PREV_PAGE 12 /* move to the previous page */
#define MOVE_START 13 /* move to the start of the text */
#define MOVE_END 14 /* move to the end of the text */
/* these commands are for EDT type editors */
#define SET_FWD 15 /* set the direction forwards */
#define SET_AFT 16 /* set the direction aftwards */
#define TOGGLE_DIR 17 /* change the direction */
#define DEL_LEFT 18 /* delete the character to the left */
#define DEL_CHAR 19 /* delete the character under the cursor */
#define DEL_WORD 20 /* delete up to and including next delimiter */
#define DEL_LINE 21 /* delete up to the end of line */
#define UNDEL_CHAR 22 /* undelete the character */
#define UNDEL_WORD 23 /* undelete the word */
#define UNDEL_LINE 24 /* undelete the line */
#define FIND_FWD 25 /* find forward */
#define FIND_AFT 26 /* find aftward */
#define FIND_NEXT 27 /* find next */
#define GET_HELP 28 /* display help information */
#define REPAINT 29 /* clear and repaint the screen */
#define EXIT_UPDATE 30 /* exit the editor */
#define EXIT_NOUPDATE 31 /* exit the editor with no update */
#define NEXT_LINE 32 /* move to the next line */
#define NOMORE_COMMANDS 99 /* last command terminator */
struct edit_commands {
int cmd;
char escape[SZ_ESCAPE+1];
char keystroke[SZ_KEYSTROKE+1];
};
extern struct edit_commands command[MAX_COMMANDS];
extern char *cmdnames[MAX_COMMANDS];
extern int numcommands;
char *enumin(), *minmax();
char *host_editor();
|