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
|
include "command.h"
# EDIT -- Main procedure of table editor
procedure edit (table, columns, silent, rdonly, inplace)
char table[ARB] # i: SDAS table name
char columns[ARB] # i: list of columns to edit
bool silent # i: don't ring bell when error occurs
bool rdonly # i: edit table read only
bool inplace # i: edit table in place
#--
int nargs, code
pointer sp, scr, command, arglist
begin
call smark (sp)
call salloc (command, SZ_LINE, TY_CHAR)
call salloc (arglist, SZ_LINE, TY_CHAR)
call init_cmd (silent)
call init_screen (table, columns, rdonly, inplace, scr)
call help_prompt (scr, NO)
repeat {
call edit_screen (scr)
call read_prompt ("Command:", Memc[command], SZ_LINE)
call parse_cmd (Memc[command], code, nargs, Memc[arglist], SZ_LINE)
if (nargs > 0) {
switch (code) {
case TED_ADD:
call add_cmd (scr, nargs, Memc[arglist])
case TED_COPY:
call copy_cmd (scr, nargs, Memc[arglist])
case TED_DELETE:
call delete_cmd (scr, nargs, Memc[arglist])
case TED_EXIT:
call exit_cmd (scr, nargs, Memc[arglist])
break
case TED_FIND:
call find_cmd (scr, nargs, Memc[arglist])
case TED_GOTO:
call goto_cmd (scr, nargs, Memc[arglist])
case TED_HELP:
call help_cmd (scr, nargs, Memc[arglist])
case TED_INSERT:
call insert_cmd (scr, nargs, Memc[arglist])
case TED_LOWER:
call lower_cmd (scr, nargs, Memc[arglist])
case TED_NEXT:
call next_cmd (scr, nargs, Memc[arglist])
case TED_QUIT:
call quit_cmd (scr, nargs, Memc[arglist])
break
case TED_SET:
call set_cmd (scr, nargs, Memc[arglist])
case TED_SUBSTITUTE:
call sub_cmd (scr, nargs, Memc[arglist])
case TED_UPPER:
call upper_cmd (scr, nargs, Memc[arglist])
default:
call help_prompt (scr, YES)
}
}
}
call end_screen
call sfree (sp)
end
|