1 /** \file subshell.h 2 * \brief Header: concurrent shell support 3 */ 4 5 #ifndef MC__SUBSHELL_H 6 #define MC__SUBSHELL_H 7 8 /*** typedefs(not structures) and defined constants **********************************************/ 9 10 /*** enums ***************************************************************************************/ 11 12 /* State of the subshell; see subshell.c for an explanation */ 13 14 enum subshell_state_enum 15 { 16 INACTIVE, 17 ACTIVE, 18 RUNNING_COMMAND 19 }; 20 21 /* For the 'how' argument to various functions */ 22 enum 23 { 24 QUIETLY, 25 VISIBLY 26 }; 27 28 /*** structures declarations (and typedefs of structures)*****************************************/ 29 30 /*** global variables defined in .c file *********************************************************/ 31 32 extern enum subshell_state_enum subshell_state; 33 34 /* Holds the latest prompt captured from the subshell */ 35 extern GString *subshell_prompt; 36 37 extern gboolean update_subshell_prompt; 38 39 extern gboolean should_read_new_subshell_prompt; 40 41 /*** declarations of public functions ************************************************************/ 42 43 void init_subshell (void); 44 int invoke_subshell (const char *command, int how, vfs_path_t ** new_dir); 45 gboolean flush_subshell (int max_wait_length, int how); 46 gboolean read_subshell_prompt (void); 47 void do_update_prompt (void); 48 gboolean exit_subshell (void); 49 void subshell_chdir (const vfs_path_t * vpath); 50 void subshell_get_console_attributes (void); 51 void sigchld_handler (int sig); 52 53 /*** inline functions ****************************************************************************/ 54 55 #endif /* MC__SUBSHELL_H */