tar: avoid strtoul().
[midnight-commander.git] / src / subshell / subshell.h
blobbde19c46951ba8248be188a255385b8b0e13be10
1 /** \file subshell.h
2 * \brief Header: concurrent shell support
3 */
5 #ifndef MC__SUBSHELL_H
6 #define MC__SUBSHELL_H
8 /*** typedefs(not structures) and defined constants **********************************************/
10 /*** enums ***************************************************************************************/
12 /* State of the subshell; see subshell.c for an explanation */
14 enum subshell_state_enum
16 INACTIVE,
17 ACTIVE,
18 RUNNING_COMMAND
21 /* For the 'how' argument to various functions */
22 enum
24 QUIETLY,
25 VISIBLY
28 /*** structures declarations (and typedefs of structures)*****************************************/
30 /*** global variables defined in .c file *********************************************************/
32 extern enum subshell_state_enum subshell_state;
34 /* Holds the latest prompt captured from the subshell */
35 extern GString *subshell_prompt;
37 extern gboolean update_subshell_prompt;
39 extern gboolean should_read_new_subshell_prompt;
41 /*** declarations of public functions ************************************************************/
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 do_subshell_chdir (const vfs_path_t * vpath, gboolean update_prompt);
50 void subshell_get_console_attributes (void);
51 void sigchld_handler (int sig);
53 /*** inline functions ****************************************************************************/
55 #endif /* MC__SUBSHELL_H */