From 3fb6eb65a8a13ee1cdf612249bba65e4b2fa2765 Mon Sep 17 00:00:00 2001 From: Camille Chauvet Date: Tue, 21 Feb 2023 22:12:23 +0100 Subject: [PATCH] add: exitcode --- .execution.c.swp | Bin 0 -> 20480 bytes .nfs00000000098c85f700000036 | Bin 173312 -> 0 bytes builtins/echo.c | 8 +------- cmd.c | 6 +++++- execution.c | 19 +++++++++---------- main.c | 11 ++++++----- minishell.h | 16 ++++++++-------- 7 files changed, 29 insertions(+), 31 deletions(-) create mode 100644 .execution.c.swp delete mode 100755 .nfs00000000098c85f700000036 diff --git a/.execution.c.swp b/.execution.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..04fe5fc4e15121df082b466a4296aed0cb70d7ac GIT binary patch literal 20480 zcmeI2UyLM09mnfL4;ow)O-MwDb+gF!%+BoW%q~dg+*1x8Bp!d`UAQdR^mNzUc5bG7 z(p|HExC5inJs(W;>3rbgB}O03JrE)ZynrzVe2_%NfQdvQ(dZ=v5*`4fet%WfGrhC3 zcdK`aF;rhZ*WFdszhBk2{>=8Tx;=m7uDki|a}9>$6|f3e1*`&A0jt3OlLE4T z1^YTG{2^26$IN-p*!jce{wi~(XXwbwU7>FoH|I@r&hyQ!Jy`{;0#*U5fK|XMU=^?m zSOu&CRspMkRlq9nKTyCA8G8zTe?b8N?EmNQ|K~o&*w?@mc=lSxj)NP(3sa1(gBkGh zM;ZGz_!fx31K@se71#^jy@s*#;5G1D@Eh{akG_!)Q- ztb-0{0}mVpM*s&?;C+X&x4|pmci;>-1-=P9@Fj3PxDLF90LFRn2k>j~B6tQo3C@8h zzz@Jf;6d;?un2AjC9n^?btPkOf;YfR;OF3Za2k9EY=8(XgG1mhPzN`HDe$kojQs_? z1bza31kQj*K^r^*JWvNU@M&-ZxDvej5yqYdo8Tz88N7|)%yZxrcmP}vUPnOY95@M9 zztE_ zV3PJT=LB=sR-&%puF2&4miRq~4;?BqCr?@8m7o`9`x$ehSUOH8%$A!E<6%d7-6)ez z#gs(Swv?+Uq@ffH;xS#b{p zgmgu`T5w@5wQKm|l{$0q?8VxoY~|k6L*w3h$*S-=NjDU!ZXUI0dH&&XkGpJL5a!;t z^@Q6`F*GnF`bk=B->^};bfFFG=*D=7R|^sv7rXAFcy(vP*^;a#N<$ULW24EN&r$H9rwanAtZ+j1lb$oiK)X^o-c*l81(}cqEbSQ{El1tY}VpI((Czg$m2w!>4P|Y zC@xj`XdU%pzo!QW3xypC+)0~Q^ z1hT5k`avMFOg&rW4|?~0WwgQ?GsUV8KUQqa3Dpfp~Nuojl;7f{dq>Y{&8w(z6tL>Tb%N{)QYDRC)f#{o|@ z=yxOO9uv}2bJS~Zc*n(tTe|O#uYQ@TfzeXsGp!j?1TCUp9X(XkNZ96T%h)IgOv9uv z(q5Eh_$HKxB94^MRh|z&r5DxIbRwmXcjABMb7H5W4HHM88B@AXu&lTfx*g9_1;=vm z`$fGwGdDwXd56sU41VT~59$}FY34I`^M0COdo*mAlSPjTPdX7E-Lf|58#5X74LK?- z3px=^qi!x#kczpK$t#6anylN_i|Hs1x`R;g(y&wKR!VG?+>P2Dxn9>N%3}D7p>o*{ z`f~yXFXNFLJlw~hi6U(A=6rLZKHsc28@$jb>}{)>h-Ti3a)fELqG?#vK3enmh|*<{u2Ae5BL+}16|f3e1*`&A0jt0VRsqCx@+cC8hiNxzuSqLp(N@kJZJJy(tx!OP zn{i**ks5Ag#bRAj5C+>HW09{fAna8PwN^Pf$G(t`2R#?b`3>ESeovK+eM>d|JdGE$KP@P z3iuUx5j+jff-^vsHRbHdDqt0`3RnfK0#*U5fK|XMU=^?mSOu&C9}ER1eg1qYX_xEM VY4suCD8zxtj{dl(7);vF{tdJ~cE|t# literal 0 HcmV?d00001 diff --git a/.nfs00000000098c85f700000036 b/.nfs00000000098c85f700000036 deleted file mode 100755 index 75b9d4508e7906b87099750ef283ab0b8e07e776..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173312 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 W9vtsD81EO;fe+Wpk_06|^?v~?#UmU5 diff --git a/builtins/echo.c b/builtins/echo.c index 683b8a1..3dc7c28 100644 --- a/builtins/echo.c +++ b/builtins/echo.c @@ -6,7 +6,7 @@ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/02/17 13:09:08 by erey-bet #+# #+# */ -/* Updated: 2023/02/21 16:02:09 by erey-bet ### ########.fr */ +/* Updated: 2023/02/21 21:45:38 by cchauvet ### ########.fr */ /* */ /* ************************************************************************** */ @@ -88,9 +88,3 @@ int echo(int fd, char **strs) write(fd, "\n", 1); return (0); } - -int main(int argc, char *argv[]) -{ - echo(1, argv); - return (0); -} diff --git a/cmd.c b/cmd.c index 54b0dee..a3de42c 100644 --- a/cmd.c +++ b/cmd.c @@ -6,7 +6,7 @@ /* By: cchauvet args); if (content->executable != NULL) free(content->executable); + if (content->fd_in > 2) + close(content->fd_in); + if (content->fd_out > 2) + close(content->fd_in); free(content); } diff --git a/execution.c b/execution.c index bb5d7d7..410f994 100644 --- a/execution.c +++ b/execution.c @@ -6,7 +6,7 @@ /* By: cchauvet fd_out = fds[1]; ((t_cmd *) current->next->content)->fd_in = fds[0]; } - cmd_return = ft_own_cmd(env, content); + cmd_return = ft_own_cmd(data->env, content); if (cmd_return == -1) { content->executable = ft_get_executable_path( - content->executable, env); + content->executable, data->env); if (content->executable != NULL) - cmd_return = ft_excutor(content, env); + cmd_return = ft_excutor(content, data->env); } - if (content->fd_in != 0) - close(content->fd_in); - if (content->fd_out != 1 && content->fd_out != 2) - close(content->fd_out); + else if (cmd_return == -2) + return (-1); + data->exit_code = cmd_return; return_value = ft_itoa(cmd_return); if (return_value == NULL) { ft_eprintf("minishell: malloc failed\n"); return (1); } - set_value_by_key("?", return_value, env); + set_value_by_key("?", return_value, data->env); current = current->next; } return (0); diff --git a/main.c b/main.c index 41e02c6..ad1eef6 100644 --- a/main.c +++ b/main.c @@ -6,7 +6,7 @@ /* By: cchauvet env, infile, outfile); if (cmds == NULL) { close(outfile); @@ -74,7 +74,7 @@ static int ft_minishell(t_list **env, char *line) free(line_clean); return (1); } - code = ft_cmds_executor(cmds, env); + code = ft_cmds_executor(data, cmds); ft_lstclear(cmds, ft_cmddel); free(cmds); free(line_clean); @@ -129,7 +129,7 @@ int main(int ac, char **av, char **env) } while (line != NULL) { - if (ft_minishell(data.env, line) == 2) + if (ft_minishell(&data, line) == -1) break ; free(line); line = ft_get_user_input(data.env); @@ -142,6 +142,7 @@ int main(int ac, char **av, char **env) } ft_lstclear(data.env, env_del); free(data.env); + return (data.exit_code); } #endif diff --git a/minishell.h b/minishell.h index f2b3571..2485e11 100644 --- a/minishell.h +++ b/minishell.h @@ -6,7 +6,7 @@ /* By: cchauvet # define DEBUG 0 +typedef struct s_data +{ + t_list **env; + int exit_code; +} t_data; + int ft_syntatic_verif(const char *str); int ft_file_is_readable(const char *path); int ft_file_is_writable(const char *path); @@ -35,7 +41,7 @@ int ft_infile(char *line); int ft_outfile(char *line); int ft_heredoc(char *stop); size_t ft_seglen_quoted(const char *str, char c); -int ft_cmds_executor(t_list **cmds, t_list **env); +int ft_cmds_executor(t_data *data, t_list **cmds); char **ft_split_quoted(const char *s, char c); void ft_cmddel(void *content); void env_del(void *content); @@ -82,12 +88,6 @@ typedef struct s_cmd char **args; } t_cmd; -typedef struct s_data -{ - t_list **env; - int heredoc; -} t_data; - typedef struct s_env { void *key;