diff options
Diffstat (limited to '')
-rw-r--r-- | src/subshell/subshell.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/subshell/subshell.h b/src/subshell/subshell.h new file mode 100644 index 0000000..bde19c4 --- /dev/null +++ b/src/subshell/subshell.h @@ -0,0 +1,55 @@ +/** \file subshell.h + * \brief Header: concurrent shell support + */ + +#ifndef MC__SUBSHELL_H +#define MC__SUBSHELL_H + +/*** typedefs(not structures) and defined constants **********************************************/ + +/*** enums ***************************************************************************************/ + +/* State of the subshell; see subshell.c for an explanation */ + +enum subshell_state_enum +{ + INACTIVE, + ACTIVE, + RUNNING_COMMAND +}; + +/* For the 'how' argument to various functions */ +enum +{ + QUIETLY, + VISIBLY +}; + +/*** structures declarations (and typedefs of structures)*****************************************/ + +/*** global variables defined in .c file *********************************************************/ + +extern enum subshell_state_enum subshell_state; + +/* Holds the latest prompt captured from the subshell */ +extern GString *subshell_prompt; + +extern gboolean update_subshell_prompt; + +extern gboolean should_read_new_subshell_prompt; + +/*** declarations of public functions ************************************************************/ + +void init_subshell (void); +int invoke_subshell (const char *command, int how, vfs_path_t ** new_dir); +gboolean flush_subshell (int max_wait_length, int how); +gboolean read_subshell_prompt (void); +void do_update_prompt (void); +gboolean exit_subshell (void); +void do_subshell_chdir (const vfs_path_t * vpath, gboolean update_prompt); +void subshell_get_console_attributes (void); +void sigchld_handler (int sig); + +/*** inline functions ****************************************************************************/ + +#endif /* MC__SUBSHELL_H */ |