1 /* 2 * Copyright (c) 1983, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Edward Wang at The University of California, Berkeley. 7 * 8 * %sccs.include.redist.c% 9 */ 10 11 #ifndef lint 12 static char sccsid[] = "@(#)lcmd.c 8.1 (Berkeley) 06/06/93"; 13 #endif /* not lint */ 14 15 #include "defs.h" 16 #include "value.h" 17 #include "lcmd.h" 18 19 int l_alias(); 20 int l_close(); 21 int l_cursormodes(); 22 int l_debug(); 23 int l_def_nline(); 24 int l_def_shell(); 25 int l_def_smooth(); 26 int l_echo(); 27 int l_escape(); 28 int l_foreground(); 29 int l_iostat(); 30 int l_label(); 31 int l_list(); 32 int l_select(); 33 int l_smooth(); 34 int l_source(); 35 int l_terse(); 36 int l_time(); 37 int l_unalias(); 38 int l_unset(); 39 int l_variable(); 40 int l_window(); 41 int l_write(); 42 43 extern struct lcmd_arg arg_alias[]; 44 extern struct lcmd_arg arg_cursormodes[]; 45 extern struct lcmd_arg arg_debug[]; 46 extern struct lcmd_arg arg_echo[]; 47 extern struct lcmd_arg arg_escape[]; 48 extern struct lcmd_arg arg_foreground[]; 49 extern struct lcmd_arg arg_label[]; 50 extern struct lcmd_arg arg_def_nline[]; 51 extern struct lcmd_arg arg_def_shell[]; 52 extern struct lcmd_arg arg_def_smooth[]; 53 extern struct lcmd_arg arg_close[]; 54 extern struct lcmd_arg arg_select[]; 55 extern struct lcmd_arg arg_smooth[]; 56 extern struct lcmd_arg arg_source[]; 57 extern struct lcmd_arg arg_terse[]; 58 extern struct lcmd_arg arg_time[]; 59 extern struct lcmd_arg arg_unalias[]; 60 extern struct lcmd_arg arg_unset[]; 61 extern struct lcmd_arg arg_window[]; 62 extern struct lcmd_arg arg_write[]; 63 struct lcmd_arg arg_null[1] = { { 0 } }; 64 65 struct lcmd_tab lcmd_tab[] = { 66 "alias", 1, l_alias, arg_alias, 67 "close", 2, l_close, arg_close, 68 "cursormodes", 2, l_cursormodes, arg_cursormodes, 69 "debug", 1, l_debug, arg_debug, 70 "default_nlines", 9, l_def_nline, arg_def_nline, 71 "default_shell", 10, l_def_shell, arg_def_shell, 72 "default_smooth", 10, l_def_smooth, arg_def_smooth, 73 "echo", 2, l_echo, arg_echo, 74 "escape", 2, l_escape, arg_escape, 75 "foreground", 1, l_foreground, arg_foreground, 76 "iostat", 1, l_iostat, arg_null, 77 "label", 2, l_label, arg_label, 78 "list", 2, l_list, arg_null, 79 "nlines", 1, l_def_nline, arg_def_nline, 80 "select", 2, l_select, arg_select, 81 "shell", 2, l_def_shell, arg_def_shell, 82 "smooth", 2, l_smooth, arg_smooth, 83 "source", 2, l_source, arg_source, 84 "terse", 2, l_terse, arg_terse, 85 "time", 2, l_time, arg_time, 86 "unalias", 3, l_unalias, arg_unalias, 87 "unset", 3, l_unset, arg_unset, 88 "variable", 1, l_variable, arg_null, 89 "window", 2, l_window, arg_window, 90 "write", 2, l_write, arg_write, 91 0 92 }; 93 94 struct lcmd_tab * 95 lcmd_lookup(name) 96 char *name; 97 { 98 register struct lcmd_tab *p; 99 100 for (p = lcmd_tab; p->lc_name != 0; p++) 101 if (str_match(name, p->lc_name, p->lc_minlen)) 102 return p; 103 return 0; 104 } 105 106 dosource(filename) 107 char *filename; 108 { 109 if (cx_beginfile(filename) < 0) 110 return -1; 111 p_start(); 112 err_end(); 113 cx_end(); 114 return 0; 115 } 116 117 dolongcmd(buffer, arg, narg) 118 char *buffer; 119 struct value *arg; 120 int narg; 121 { 122 if (cx_beginbuf(buffer, arg, narg) < 0) 123 return -1; 124 p_start(); 125 err_end(); 126 cx_end(); 127 return 0; 128 } 129