From 3920a406c4161f6874d14ca8a78eca3c2b9fd9db Mon Sep 17 00:00:00 2001 From: scratko Date: Sat, 23 Nov 2024 01:24:26 +0300 Subject: Shell-VII release --- shell.h | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'shell.h') diff --git a/shell.h b/shell.h index b3dd93d..c92d68d 100644 --- a/shell.h +++ b/shell.h @@ -4,6 +4,8 @@ #include "dynamic_array.h" #include "queue.h" +#include + enum { /* CTRL-D */ end_of_file = 4, @@ -19,7 +21,10 @@ enum { enum { append = '>' + 1, and = '&' + 1, - or = '|' + 1 + or = '|' + 1, + next_command = ';', + start_subshell = '(', + end_subshell = ')' }; /* error codes */ @@ -30,7 +35,10 @@ enum { err_bg_process = 4, err_empty_command = 5, err_extra_chars_after_filename = 6, - err_odd_double_quotes = 7 + err_odd_double_quotes = 7, + err_set_failure = 8, + err_missing_closing_bracket = 9, + err_repeated_background_ch = 10 }; /* storing file names to redirect standard input/output streams */ @@ -49,12 +57,19 @@ struct param_type { int tokens; int wrong_command; struct io_type streams; - int last_execution_status; int pipeline; int new_readline; + int general_pipe_pgid; + int general_subshell_pgid; int general_pgid; + int subshell; + int fd_read_for_channel; + int fd_read_for_subshell; + int background_process; }; +extern volatile sig_atomic_t last_execution_status; + int filename_waiting(struct param_type *params); void add_filename(struct dynamic_array *tmp_word, struct param_type *params); void add_word(struct w_queue *word_chain, struct dynamic_array *tmp_word, -- cgit v1.2.3