From 4a41d75085d5135c1ff521c02afbb2afe7d38533 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 d1d5a2c..7a5ba3a 100644 --- a/shell.h +++ b/shell.h @@ -4,6 +4,8 @@ #include "dynamic_array.h" #include "queue.h" +#include + enum { end_of_file = 4, new_line = 10, @@ -18,7 +20,10 @@ enum { enum { append = '>' + 1, and = '&' + 1, - or = '|' + 1 + or = '|' + 1, + next_command = ';', + start_subshell = '(', + end_subshell = ')' }; /* error codes */ @@ -29,7 +34,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 */ @@ -48,12 +56,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