|
|
1.1 ! root 1: #ifndef lint ! 2: static char sccsid[] = "@(#)lcmd.c 3.24 4/24/85"; ! 3: #endif ! 4: ! 5: /* ! 6: * Copyright (c) 1983 Regents of the University of California, ! 7: * All rights reserved. Redistribution permitted subject to ! 8: * the terms of the Berkeley Software License Agreement. ! 9: */ ! 10: ! 11: #include "defs.h" ! 12: #include "value.h" ! 13: #include "lcmd.h" ! 14: ! 15: int l_alias(); ! 16: int l_close(); ! 17: int l_cursormodes(); ! 18: int l_debug(); ! 19: int l_echo(); ! 20: int l_escape(); ! 21: int l_foreground(); ! 22: int l_iostat(); ! 23: int l_label(); ! 24: int l_list(); ! 25: int l_nline(); ! 26: int l_select(); ! 27: int l_shell(); ! 28: int l_source(); ! 29: int l_terse(); ! 30: int l_time(); ! 31: int l_unalias(); ! 32: int l_unset(); ! 33: int l_variable(); ! 34: int l_window(); ! 35: int l_write(); ! 36: ! 37: struct lcmd_arg arg_alias[]; ! 38: struct lcmd_arg arg_cursormodes[]; ! 39: struct lcmd_arg arg_debug[]; ! 40: struct lcmd_arg arg_echo[]; ! 41: struct lcmd_arg arg_escape[]; ! 42: struct lcmd_arg arg_foreground[]; ! 43: struct lcmd_arg arg_label[]; ! 44: struct lcmd_arg arg_nline[]; ! 45: struct lcmd_arg arg_close[]; ! 46: struct lcmd_arg arg_select[]; ! 47: struct lcmd_arg arg_shell[]; ! 48: struct lcmd_arg arg_source[]; ! 49: struct lcmd_arg arg_terse[]; ! 50: struct lcmd_arg arg_time[]; ! 51: struct lcmd_arg arg_unalias[]; ! 52: struct lcmd_arg arg_unset[]; ! 53: struct lcmd_arg arg_window[]; ! 54: struct lcmd_arg arg_write[]; ! 55: struct lcmd_arg arg_null[] = 0; ! 56: ! 57: struct lcmd_tab lcmd_tab[] = { ! 58: "alias", 1, l_alias, arg_alias, ! 59: "close", 2, l_close, arg_close, ! 60: "cursormodes", 2, l_cursormodes, arg_cursormodes, ! 61: "debug", 1, l_debug, arg_debug, ! 62: "echo", 2, l_echo, arg_echo, ! 63: "escape", 2, l_escape, arg_escape, ! 64: "foreground", 1, l_foreground, arg_foreground, ! 65: "iostat", 1, l_iostat, arg_null, ! 66: "label", 2, l_label, arg_label, ! 67: "list", 2, l_list, arg_null, ! 68: "nlines", 1, l_nline, arg_nline, ! 69: "select", 2, l_select, arg_select, ! 70: "shell", 2, l_shell, arg_shell, ! 71: "source", 2, l_source, arg_source, ! 72: "terse", 2, l_terse, arg_terse, ! 73: "time", 2, l_time, arg_time, ! 74: "unalias", 3, l_unalias, arg_unalias, ! 75: "unset", 3, l_unset, arg_unset, ! 76: "variable", 1, l_variable, arg_null, ! 77: "window", 2, l_window, arg_window, ! 78: "write", 2, l_write, arg_write, ! 79: 0 ! 80: }; ! 81: ! 82: struct lcmd_tab * ! 83: lcmd_lookup(name) ! 84: char *name; ! 85: { ! 86: register struct lcmd_tab *p; ! 87: ! 88: for (p = lcmd_tab; p->lc_name != 0; p++) ! 89: if (str_match(name, p->lc_name, p->lc_minlen)) ! 90: return p; ! 91: return 0; ! 92: } ! 93: ! 94: dosource(filename) ! 95: char *filename; ! 96: { ! 97: if (cx_beginfile(filename) < 0) ! 98: return -1; ! 99: p_start(); ! 100: err_end(); ! 101: cx_end(); ! 102: return 0; ! 103: } ! 104: ! 105: dolongcmd(buffer, arg, narg) ! 106: char *buffer; ! 107: struct value *arg; ! 108: int narg; ! 109: { ! 110: if (cx_beginbuf(buffer, arg, narg) < 0) ! 111: return -1; ! 112: p_start(); ! 113: err_end(); ! 114: cx_end(); ! 115: return 0; ! 116: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.