From b3d060874de69d12af1dc3fc853f85af3fd54697 Mon Sep 17 00:00:00 2001 From: Camille Chauvet Date: Wed, 22 Mar 2023 14:59:19 +0100 Subject: [PATCH] fix: "echo $" works --- .nfs00000000098c816100000162 | Bin 0 -> 122448 bytes builtins/builtins_private.h | 2 ++ data/data.h | 3 ++- env/env_fill.c | 9 +++++++-- parse/parse.c | 6 ++---- redirection/redirection.h | 2 +- utils/ft_get_executable.c | 6 +++--- utils/utils.h | 5 ++--- 8 files changed, 19 insertions(+), 14 deletions(-) create mode 100755 .nfs00000000098c816100000162 diff --git a/.nfs00000000098c816100000162 b/.nfs00000000098c816100000162 new file mode 100755 index 0000000000000000000000000000000000000000..ec49366b591ee8b07579fefdcd6bedcce0678566 GIT binary patch literal 122448 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 literal 0 HcmV?d00001 diff --git a/builtins/builtins_private.h b/builtins/builtins_private.h index a29128c..4c0f98e 100644 --- a/builtins/builtins_private.h +++ b/builtins/builtins_private.h @@ -4,5 +4,7 @@ # include "../libftx/libftx.h" # include "../env/env.h" # include "../utils/utils.h" + char *get_pwd(int fd); + #endif diff --git a/data/data.h b/data/data.h index f20c87f..11404c9 100644 --- a/data/data.h +++ b/data/data.h @@ -10,5 +10,6 @@ typedef struct s_data int child_pid; } t_data; -t_data *ft_get_data(); +t_data *ft_get_data(void); + #endif diff --git a/env/env_fill.c b/env/env_fill.c index be85e83..eb64c42 100644 --- a/env/env_fill.c +++ b/env/env_fill.c @@ -22,6 +22,8 @@ static char *ft_getkey(const char *str) key = ft_strdup("$"); else if (ft_strncmp(str, "$?", 2) == 0) key = ft_strdup("?"); + if (str[1] == '\0') + key = ft_strdup(""); else { i = 1; @@ -42,12 +44,14 @@ static char *ft_getvalue(t_data *data, char *key) value = ft_itoa(data->exit_code); else if (ft_strcmp(key, "$") == 0) value = ft_strdup("PID"); + else if (key[0] == '\0') + value = ft_strdup("$"); else { value = get_value_by_key(key, data->env); if (value == NULL) value = ft_strdup(""); - else + else value = ft_strdup(value); } if (value == NULL) @@ -55,7 +59,8 @@ static char *ft_getvalue(t_data *data, char *key) return (value); } -static char *ft_getvalue_by_str(t_data *data, const char *str, size_t *key_len) +static char *ft_getvalue_by_str(t_data *data, const char *str, + size_t *key_len) { char *key; char *value; diff --git a/parse/parse.c b/parse/parse.c index be1dd7c..9f4a6a9 100644 --- a/parse/parse.c +++ b/parse/parse.c @@ -115,10 +115,8 @@ int ft_cmds_parser(t_data *data, const char *line) } if (*data->cmds != NULL) { - if (((t_cmd *) (*data->cmds)->content)->fd_in[0] == -1) - ((t_cmd *) (*data->cmds)->content)->fd_in[0] = 0; - if (((t_cmd *) (ft_lstlast(*data->cmds))->content)->fd_out[0] == -1) - (((t_cmd *) (ft_lstlast(*data->cmds))->content)->fd_out[0] = 1); + ft_add_fd(((t_cmd *)(*data->cmds)->content)->fd_in, 0); + ft_add_fd(((t_cmd *)(ft_lstlast(*data->cmds))->content)->fd_out, 1); } ft_freer_tab_ultimate(1, tab); return (0); diff --git a/redirection/redirection.h b/redirection/redirection.h index cb5bb30..66f32fa 100644 --- a/redirection/redirection.h +++ b/redirection/redirection.h @@ -4,6 +4,6 @@ # include "../cmd/cmd.h" int ft_redirection(t_data *data, t_cmd *cmd, char *cmd_str); -int *ft_get_heredoc(); +int *ft_get_heredoc(void); #endif diff --git a/utils/ft_get_executable.c b/utils/ft_get_executable.c index 2ad3c54..e1b7979 100644 --- a/utils/ft_get_executable.c +++ b/utils/ft_get_executable.c @@ -54,10 +54,10 @@ char *ft_get_executable_without_path(t_data *data, const char *name) if (path == NULL) { ft_eprintf("minishell: malloc failed\n"); - break; + break ; } if (access(path, X_OK) == 0) - break; + break ; free(path); path = NULL; i++; @@ -74,7 +74,7 @@ char *ft_get_executable_without_path(t_data *data, const char *name) char *ft_get_executable(t_data *data, const char *name) { char *path; - + if (name[0] == '.' || name[0] == '/') path = ft_get_executable_with_path(data, name); else diff --git a/utils/utils.h b/utils/utils.h index 88f8725..d1a23aa 100644 --- a/utils/utils.h +++ b/utils/utils.h @@ -29,8 +29,7 @@ void ft_strshift(char *str, int shift); char *ft_quote_remover(char *str); int ft_atoi_check(const char *nptr); char *ft_get_executable(t_data *data, const char *name); -void ft_closer(int fds[2]); -void ft_add_fd(int fds[2], int fd); - +void ft_closer(int fds[2]); +void ft_add_fd(int fds[2], int fd); #endif