diff options
Diffstat (limited to 'src/ft_p_lcom_next.c')
-rw-r--r-- | src/ft_p_lcom_next.c | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/src/ft_p_lcom_next.c b/src/ft_p_lcom_next.c deleted file mode 100644 index 8313b08..0000000 --- a/src/ft_p_lcom_next.c +++ /dev/null @@ -1,97 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_p_lcom_next.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/14 17:19:27 by rbousset #+# #+# */ -/* Updated: 2020/02/14 17:19:29 by rbousset ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include <libft.h> -#include <stdlib.h> -#include <stdint.h> - -#include "ft_s_struct.h" -#include "ft_u_vars.h" - -static int8_t - ft_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])) - varlen += 1; - if (!(s_varname = ft_substr(*p_words, (uint32_t)i, varlen - i))) - return (-1); - varval = ft_subst_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 - **ft_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 (ft_subst_those_vars(i, p_words, msh) != 0) - return (NULL); - } - } - p_words += 1; - } - return (words); -} - - -char - **ft_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])) - i++; - while (redir > 0 && ft_isdigit(word[i])) - 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); -} |