diff options
author | salad <fmoenne-@student.le-101.fr> | 2020-08-31 14:52:48 +0200 |
---|---|---|
committer | salad <fmoenne-@student.le-101.fr> | 2020-08-31 14:52:48 +0200 |
commit | 7cad49bd96a1798b5e742ff85084ddc188f7362b (patch) | |
tree | dd66f7b8300674264605f1db7248cfa8d258a262 /src/p_lcom_next.c | |
parent | no more SEGV on e_externs_pipes if prog member is nonsense (diff) | |
download | 42-minishell-7cad49bd96a1798b5e742ff85084ddc188f7362b.tar.gz 42-minishell-7cad49bd96a1798b5e742ff85084ddc188f7362b.tar.bz2 42-minishell-7cad49bd96a1798b5e742ff85084ddc188f7362b.tar.xz 42-minishell-7cad49bd96a1798b5e742ff85084ddc188f7362b.tar.zst 42-minishell-7cad49bd96a1798b5e742ff85084ddc188f7362b.zip |
start normng
Diffstat (limited to 'src/p_lcom_next.c')
-rw-r--r-- | src/p_lcom_next.c | 119 |
1 files changed, 2 insertions, 117 deletions
diff --git a/src/p_lcom_next.c b/src/p_lcom_next.c index b04d393..5e5b69d 100644 --- a/src/p_lcom_next.c +++ b/src/p_lcom_next.c @@ -20,108 +20,9 @@ #include "s_struct.h" #include "u_vars.h" #include "u_vars_next.h" +#include "p_lcom_vars.h" -/* TODO: norme */ - -static int8_t - subst_those_vars(int64_t i, - char **p_words, - t_msh *msh) -{ - size_t varlen; - char *s_varname; - char *varval; - - varval = NULL; - s_varname = NULL; - varlen = i + 1; - while ((*p_words)[varlen] != '\0' && - ft_ischarset("$=/#@%^*+{}[],.-", (*p_words)[varlen]) == FALSE) - varlen += 1; - if (!(s_varname = ft_substr(*p_words, (uint32_t)i, varlen - i))) - return (-1); - varval = u_get_var_value(s_varname, msh); - *p_words = ft_strsubst(*p_words, s_varname, varval); - ft_memdel((void*)&s_varname); - ft_memdel((void*)&varval); - return (0); -} - -char - **p_subst_vars(char *words[], - t_msh *msh) -{ - char **p_words; - int64_t i; - - p_words = words; - i = 0; - while (*p_words) - { - while ((i = ft_strlchr((*p_words), '$')) != -1) - { - if (*(*p_words) + i - 1 != '\\') - { - if (subst_those_vars(i, p_words, msh) != 0) - return (NULL); - } - } - p_words += 1; - } - return (words); -} - -char - **p_subst_args(const char word[], - int8_t redir) -{ - char **words; - char *subst; - size_t i; - - if (redir == 0) - { - if (!(words = ft_split(word, ' '))) - return (NULL); - return (words); - } - i = 0; - while (word[i] && ft_ischarset("<>", word[i]) == FALSE) - i++; - while (redir > 0 && ft_isdigit(word[i]) == TRUE) - i--; - if (!(subst = ft_substr(word, 0, i))) - return (NULL); - if (!(words = ft_split(subst, ' '))) - { - ft_memdel((void*)&subst); - return (NULL); - } - ft_memdel((void*)&subst); - return (words); -} - -char - **p_subst_home(char *words[], - t_msh *msh) -{ - char *path; - char **ptr; - - if ((path = u_get_var_value("$HOME", msh)) == NULL) - return (words); - ptr = words; - while (*ptr != NULL) - { - if (*ptr[0] == '~') - { - *ptr = ft_strsubst(*ptr, "~", path); - } - ptr++; - } - ft_memdel((void*)&path); - return (words); -} +/* TODO: norme : 2 fonctions + de 35l*/ static void p_register_word(char word[], @@ -197,22 +98,6 @@ static char return (rewords); } -static void - p_add_to_env_fork(int64_t i, - char *words[], - t_msh *msh) -{ - int64_t j; - - j = 0; - while(j < i) - { - ft_strlcpy(msh->env_fork_tmp[j], words[j], ft_strlen(words[j]) + 1); - j++; - } - msh->env_fork_tmp[j][0] = '\0'; -} - char **p_check_args_equals(char *words[], t_msh *msh) |