Commit | Line | Data |
---|---|---|
6a571c25 | 1 | #ifndef lint |
855d0f8f | 2 | static char sccsid[] = "@(#)lcmd.c 3.21 %G%"; |
6a571c25 EW |
3 | #endif |
4 | ||
5 | #include "defs.h" | |
1c0ca238 EW |
6 | #include "value.h" |
7 | #include "lcmd.h" | |
6a571c25 | 8 | |
bb4a0c0b | 9 | int l_alias(); |
1c0ca238 | 10 | int l_close(); |
7a57b3e2 | 11 | int l_cursormodes(); |
b0640643 | 12 | int l_debug(); |
6a571c25 | 13 | int l_escape(); |
e1dba5dd | 14 | int l_foreground(); |
94a746af | 15 | int l_iostat(); |
6a571c25 | 16 | int l_label(); |
e404c17a | 17 | int l_list(); |
1f12ea41 | 18 | int l_nline(); |
1c0ca238 | 19 | int l_select(); |
7ecf4dca | 20 | int l_shell(); |
6a571c25 | 21 | int l_source(); |
1c0ca238 | 22 | int l_terse(); |
94a746af | 23 | int l_time(); |
bb4a0c0b | 24 | int l_unalias(); |
b65b69eb | 25 | int l_unset(); |
e404c17a | 26 | int l_variable(); |
1c0ca238 | 27 | int l_window(); |
6a571c25 EW |
28 | int l_write(); |
29 | ||
bb4a0c0b | 30 | struct lcmd_arg arg_alias[]; |
7a57b3e2 | 31 | struct lcmd_arg arg_cursormodes[]; |
b0640643 | 32 | struct lcmd_arg arg_debug[]; |
1c0ca238 | 33 | struct lcmd_arg arg_escape[]; |
e1dba5dd | 34 | struct lcmd_arg arg_foreground[]; |
1c0ca238 | 35 | struct lcmd_arg arg_label[]; |
1f12ea41 | 36 | struct lcmd_arg arg_nline[]; |
855d0f8f | 37 | struct lcmd_arg arg_close[]; |
1c0ca238 | 38 | struct lcmd_arg arg_select[]; |
7ecf4dca | 39 | struct lcmd_arg arg_shell[]; |
1c0ca238 EW |
40 | struct lcmd_arg arg_source[]; |
41 | struct lcmd_arg arg_terse[]; | |
94a746af | 42 | struct lcmd_arg arg_time[]; |
bb4a0c0b | 43 | struct lcmd_arg arg_unalias[]; |
b65b69eb | 44 | struct lcmd_arg arg_unset[]; |
1c0ca238 | 45 | struct lcmd_arg arg_window[]; |
855d0f8f | 46 | struct lcmd_arg arg_write[]; |
e404c17a | 47 | struct lcmd_arg arg_null[] = 0; |
1c0ca238 EW |
48 | |
49 | struct lcmd_tab lcmd_tab[] = { | |
50 | "%", 1, l_select, arg_select, | |
bb4a0c0b | 51 | "alias", 1, l_alias, arg_alias, |
1f12ea41 | 52 | "buffer", 2, l_nline, arg_nline, |
855d0f8f | 53 | "close", 2, l_close, arg_close, |
7a57b3e2 | 54 | "cursormodes", 2, l_cursormodes, arg_cursormodes, |
b0640643 | 55 | "debug", 1, l_debug, arg_debug, |
1c0ca238 | 56 | "escape", 1, l_escape, arg_escape, |
e1dba5dd | 57 | "foreground", 1, l_foreground, arg_foreground, |
e404c17a EW |
58 | "iostat", 1, l_iostat, arg_null, |
59 | "label", 2, l_label, arg_label, | |
60 | "list", 2, l_list, arg_null, | |
1f12ea41 | 61 | "nlines", 1, l_nline, arg_nline, |
1c0ca238 | 62 | "select", 2, l_select, arg_select, |
7ecf4dca | 63 | "shell", 2, l_shell, arg_shell, |
1c0ca238 | 64 | "source", 2, l_source, arg_source, |
94a746af EW |
65 | "terse", 2, l_terse, arg_terse, |
66 | "time", 2, l_time, arg_time, | |
bb4a0c0b EW |
67 | "unalias", 3, l_unalias, arg_unalias, |
68 | "unset", 3, l_unset, arg_unset, | |
e404c17a | 69 | "variable", 1, l_variable, arg_null, |
1c0ca238 | 70 | "window", 2, l_window, arg_window, |
855d0f8f | 71 | "write", 2, l_write, arg_write, |
e1dba5dd | 72 | 0 |
6a571c25 EW |
73 | }; |
74 | ||
1c0ca238 EW |
75 | struct lcmd_tab * |
76 | lcmd_lookup(name) | |
77 | char *name; | |
6a571c25 | 78 | { |
1c0ca238 | 79 | register struct lcmd_tab *p; |
6a571c25 | 80 | |
1c0ca238 EW |
81 | for (p = lcmd_tab; p->lc_name != 0; p++) |
82 | if (str_match(name, p->lc_name, p->lc_minlen)) | |
83 | return p; | |
6a571c25 EW |
84 | return 0; |
85 | } | |
86 | ||
1c0ca238 EW |
87 | dosource(filename) |
88 | char *filename; | |
6a571c25 | 89 | { |
a40a2f9a | 90 | if (cx_beginfile(filename) < 0) |
1c0ca238 EW |
91 | return -1; |
92 | p_start(); | |
93 | err_end(); | |
94 | cx_end(); | |
95 | return 0; | |
6a571c25 EW |
96 | } |
97 | ||
bb4a0c0b | 98 | dolongcmd(buffer, arg, narg) |
1c0ca238 | 99 | char *buffer; |
bb4a0c0b EW |
100 | struct value *arg; |
101 | int narg; | |
6a571c25 | 102 | { |
bb4a0c0b | 103 | if (cx_beginbuf(buffer, arg, narg) < 0) |
1c0ca238 EW |
104 | return -1; |
105 | p_start(); | |
106 | err_end(); | |
107 | cx_end(); | |
108 | return 0; | |
6a571c25 | 109 | } |