summaryrefslogtreecommitdiffstats
path: root/src/subshell/subshell.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/subshell/subshell.h55
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 */