1 /* 2 * cmd.h - User command entry point 3 * 4 * Copyright (C) 1995, 1996 by Scott C. Gray 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program. If not, write to the Free Software 18 * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 19 * 20 * You may contact the author : 21 * e-mail: gray@voicenet.com 22 * grays@xtend-tech.com 23 * gray@xenotropic.com 24 */ 25 #ifndef cmd_h_included 26 #define cmd_h_included 27 #include "sqsh_cmd.h" 28 #include "sqsh_varbuf.h" 29 30 /* 31 * The following defines are the return values agreed upon by all 32 * cmd_* functions. It should be noted that these are predominantly 33 * of importance to cmd_loop(). Typically the return value of each 34 * command indiciates to cmd_loop() the action that it should perform 35 * on the current working buffer. 36 */ 37 38 #define CMD_FAIL 0 /* The command failed, the current */ 39 /* buffer is untouched */ 40 #define CMD_LEAVEBUF 1 /* Command was succesfull, didn't touch */ 41 /* the current buffer */ 42 #define CMD_ALTERBUF 2 /* Command altered the current buffer */ 43 #define CMD_CLEARBUF 3 /* Command cleared current buffer (no buf save) */ 44 #define CMD_RESETBUF 4 /* Command reset current buffer (with buf save) */ 45 #define CMD_EXIT 5 /* Command requests that cmd_loop() exit */ 46 #define CMD_ABORT 6 /* Request cmd_loop() abort */ 47 #define CMD_INTERRUPTED 7 /* Request cmd_loop() abort */ 48 #define CMD_RETURN 8 /* Pop up a level */ 49 #define CMD_BREAK 9 /* Pop up a level */ 50 51 /* 52 * Place all prototypes for custom commands here. 53 */ 54 int cmd_loop _ANSI_ARGS(( int, char** )) ; /* Loop commands */ 55 int cmd_go _ANSI_ARGS(( int, char** )) ; /* Database commands */ 56 int cmd_connect _ANSI_ARGS(( int, char** )) ; 57 int cmd_bcp _ANSI_ARGS(( int, char** )) ; 58 int cmd_reconnect _ANSI_ARGS(( int, char** )) ; 59 int cmd_rpc _ANSI_ARGS(( int, char** )) ; 60 int cmd_clear _ANSI_ARGS(( int, char** )) ; /* sqsh-2.1.7 */ 61 int cmd_reset _ANSI_ARGS(( int, char** )) ; /* Buffer commands */ 62 int cmd_redraw _ANSI_ARGS(( int, char** )) ; 63 int cmd_history _ANSI_ARGS(( int, char** )) ; 64 int cmd_hist_load _ANSI_ARGS(( int, char** )) ; /* sqsh-2.1.7 */ 65 int cmd_hist_save _ANSI_ARGS(( int, char** )) ; /* sqsh-2.1.7 */ 66 int cmd_buf_edit _ANSI_ARGS(( int, char** )) ; 67 int cmd_buf_copy _ANSI_ARGS(( int, char** )) ; 68 int cmd_buf_get _ANSI_ARGS(( int, char** )) ; 69 int cmd_buf_save _ANSI_ARGS(( int, char** )) ; 70 int cmd_buf_load _ANSI_ARGS(( int, char** )) ; 71 int cmd_buf_show _ANSI_ARGS(( int, char** )) ; 72 int cmd_buf_append _ANSI_ARGS(( int, char** )) ; 73 int cmd_buf_del _ANSI_ARGS(( int, char** )) ; /* sqsh-2.1.6 feature */ 74 int cmd_set _ANSI_ARGS(( int, char** )) ; /* Variable commands */ 75 int cmd_jobs _ANSI_ARGS(( int, char** )) ; /* Job Control */ 76 int cmd_wait _ANSI_ARGS(( int, char** )) ; 77 int cmd_kill _ANSI_ARGS(( int, char** )) ; 78 int cmd_show _ANSI_ARGS(( int, char** )) ; 79 int cmd_exit _ANSI_ARGS(( int, char** )) ; /* Misc */ 80 int cmd_abort _ANSI_ARGS(( int, char** )) ; 81 int cmd_echo _ANSI_ARGS(( int, char** )) ; 82 int cmd_sleep _ANSI_ARGS(( int, char** )) ; 83 int cmd_warranty _ANSI_ARGS(( int, char** )) ; 84 int cmd_help _ANSI_ARGS(( int, char** )) ; 85 int cmd_read _ANSI_ARGS(( int, char** )) ; 86 int cmd_lock _ANSI_ARGS(( int, char** )) ; 87 int cmd_shell _ANSI_ARGS(( int, char** )) ; 88 int cmd_alias _ANSI_ARGS(( int, char** )) ; /* Alias commands */ 89 int cmd_unalias _ANSI_ARGS(( int, char** )) ; 90 int cmd_do _ANSI_ARGS(( int, char** )) ; 91 int cmd_func _ANSI_ARGS(( int, char** )) ; 92 int cmd_call _ANSI_ARGS(( int, char** )) ; 93 int cmd_if _ANSI_ARGS(( int, char** )) ; 94 int cmd_while _ANSI_ARGS(( int, char** )) ; 95 int cmd_return _ANSI_ARGS(( int, char** )) ; 96 int cmd_break _ANSI_ARGS(( int, char** )) ; 97 int cmd_for _ANSI_ARGS(( int, char** )) ; 98 int cmd_snace _ANSI_ARGS(( int, char** )) ; 99 int cmd_run _ANSI_ARGS(( int, char** )) ; 100 int cmd_lcd _ANSI_ARGS(( int, char** )) ; /* sqsh-2.5 local change dir */ 101 int cmd_pwd _ANSI_ARGS(( int, char** )) ; /* sqsh-2.5 show current dir */ 102 int cmd_ls _ANSI_ARGS(( int, char** )) ; /* sqsh-2.5 list files in current dir */ 103 104 #ifdef SQSH_INIT 105 /* 106 * The following describes a command entry. These are used by 107 * sqsh_init() to populate g_cmdset (see sqsl_global.h) with the 108 * initial set of available commands. 109 */ 110 typedef struct cmd_entry_st 111 { 112 char *ce_name ; /* The name of the command */ 113 char *ce_alias ; /* If non-null, the aliased command */ 114 cmd_f *ce_func ; /* Pointer to the actual function */ 115 } 116 cmd_entry_t ; 117 118 static cmd_entry_t sg_cmd_entry[] = { 119 120 /* COMMAND ALIAS FUNCTION */ 121 /* ------------ ---------- -------- */ 122 #if !defined(NO_BCP) 123 { "\\bcp", NULL, cmd_bcp }, 124 #endif 125 { "\\rpc", NULL, cmd_rpc }, 126 { "\\lock", NULL, cmd_lock }, 127 { "\\loop", NULL, cmd_loop }, 128 { "\\exit", NULL, cmd_exit }, 129 { "\\abort", NULL, cmd_abort }, 130 { "\\quit", NULL, cmd_exit }, 131 { "\\done", NULL, cmd_exit }, 132 { "\\connect", NULL, cmd_connect }, 133 { "\\clear", NULL, cmd_clear }, /* sqsh-2.1.7 */ 134 { "\\reset", NULL, cmd_reset }, 135 { "\\set", NULL, cmd_set }, 136 { "\\echo", NULL, cmd_echo }, 137 { "\\sleep", NULL, cmd_sleep }, 138 { "\\jobs", NULL, cmd_jobs }, 139 { "\\wait", NULL, cmd_wait }, 140 { "\\kill", NULL, cmd_kill }, 141 { "\\show", NULL, cmd_show }, 142 { "\\warranty", NULL, cmd_warranty }, 143 { "\\go", NULL, cmd_go }, 144 { "\\reconnect", NULL, cmd_reconnect }, 145 { "\\read", NULL, cmd_read }, 146 { "\\help", NULL, cmd_help }, 147 { "\\alias", NULL, cmd_alias }, 148 { "\\unalias", NULL, cmd_unalias }, 149 { "\\redraw", NULL, cmd_redraw }, 150 { "\\history", NULL, cmd_history }, 151 { "\\hist-load", NULL, cmd_hist_load }, /* sqsh-2.1.7 */ 152 { "\\hist-save", NULL, cmd_hist_save }, /* sqsh-2.1.7 */ 153 { "\\shell", NULL, cmd_shell }, 154 { "\\do", NULL, cmd_do }, 155 { "\\func", NULL, cmd_func }, 156 { "\\call", NULL, cmd_call }, 157 { "\\if", NULL, cmd_if }, 158 { "\\while", NULL, cmd_while }, 159 { "\\for", NULL, cmd_for }, 160 { "\\return", NULL, cmd_return }, 161 { "\\break", NULL, cmd_break }, 162 { "\\buf-edit", NULL, cmd_buf_edit }, 163 { "\\buf-copy", NULL, cmd_buf_copy }, 164 { "\\buf-get", NULL, cmd_buf_get }, 165 { "\\buf-save", NULL, cmd_buf_save }, 166 { "\\buf-load", NULL, cmd_buf_load }, 167 { "\\buf-show", NULL, cmd_buf_show }, 168 { "\\buf-append",NULL, cmd_buf_append }, 169 { "\\buf-del", NULL, cmd_buf_del }, /* sqsh-2.1.6 feature */ 170 { "\\snace", NULL, cmd_snace }, /* sqsh-2.1.7 */ 171 { "\\run", NULL, cmd_run }, /* sqsh-2.5 */ 172 { "\\lcd", NULL, cmd_lcd }, /* sqsh-2.5 */ 173 { "\\pwd", NULL, cmd_pwd }, /* sqsh-2.5 */ 174 { "\\ls", NULL, cmd_ls }, /* sqsh-2.5 */ 175 { ":r", NULL, cmd_buf_load }, 176 { "vi", NULL, cmd_buf_edit }, 177 { "emacs", NULL, cmd_buf_edit }, 178 179 } ; 180 #endif 181 182 /* cmd_do.c */ 183 int cmd_body_input _ANSI_ARGS(( varbuf_t* )); 184 185 /* cmd_if.c */ 186 int cmd_if_exec _ANSI_ARGS(( int, char**, int* )); 187 188 #endif /* cmd_h_included */ 189