From 487a66394061f2d14a2fa421302966b5442d643f Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Mon, 27 Jul 2020 18:55:07 +0200 Subject: I couldn't see shit --- src/ft_u_vars.c | 163 -------------------------------------------------------- 1 file changed, 163 deletions(-) delete mode 100644 src/ft_u_vars.c (limited to 'src/ft_u_vars.c') diff --git a/src/ft_u_vars.c b/src/ft_u_vars.c deleted file mode 100644 index cb020e3..0000000 --- a/src/ft_u_vars.c +++ /dev/null @@ -1,163 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_u_vars.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: rbousset +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/14 17:19:27 by rbousset #+# #+# */ -/* Updated: 2020/02/14 17:19:29 by rbousset ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include -#include -#include - -#include "ft_d_define.h" -#include "ft_f_fail.h" -#include "ft_s_destroy.h" -#include "ft_s_lcom.h" -#include "ft_s_struct.h" - - -static char - *ft_set_rva(const char varname[], - t_msh *msh) -{ - char *rvarname; - - if (!(rvarname = (char*)malloc((ft_strlen(varname) + 1) * sizeof(char)))) - { - ft_lcom_clear(&msh->curr); - ft_s_destroy(msh); - ft_fail_alloc(msh); - } - ft_memcpy((char*)rvarname, (const char*)varname + 1, - ft_strlen(varname + 1)); - *(rvarname + ft_strlen(varname + 1)) = '='; - *(rvarname + ft_strlen(varname + 1) + 1) = '\0'; - return (rvarname); -} - -static char - *ft_dup_env(char *p_env, - char *rvarname, - t_msh *msh) -{ - char *varval; - - if (!(varval = ft_strdup(p_env))) - { - ft_memdel((void*)&rvarname); - ft_lcom_clear(&msh->curr); - ft_s_destroy(msh); - ft_fail_alloc(msh); - } - ft_memdel((void*)&rvarname); - return (varval); -} - -static char - *ft_get_frm_env(char rvarname[], - t_msh *msh) -{ - char **p_env; - char *pp_env; - char *varval; - - p_env = msh->envp; - while (*p_env) - { - if (!ft_strncmp(rvarname, *p_env, ft_strlen(rvarname))) - { - pp_env = *p_env; - while (*pp_env != '\0' && *pp_env != '=') - pp_env += 1; - if (*pp_env == '=') - pp_env += 1; - varval = ft_dup_env(pp_env, rvarname, msh); - return (varval); - } - p_env += 1; - } - return (NULL); -} - -static char - *ft_get_special_var(const char varname[], - t_msh *msh) -{ - char *varval; - - if (!ft_strncmp(varname, FT_RET_VAR, 3)) - { - if (!(varval = ft_uitoa(msh->ret))) - { - ft_lcom_clear(&msh->curr); - ft_s_destroy(msh); - ft_fail_alloc(msh); - } - return (varval); - } - else if (!ft_strncmp(varname, FT_ZER_VAR, 3)) - { - if (!(varval = ft_strdup(msh->shname))) - { - ft_lcom_clear(&msh->curr); - ft_s_destroy(msh); - ft_fail_alloc(msh); - } - return (varval); - } - return (NULL); -} - -static char - *ft_get_cstm_vr(const char varname[], - t_msh *msh) -{ - (void)varname; - (void)msh; - return (NULL); -} - -/* -** char * -** ft_subst_var_value(const char varname[], const t_msh *msh); -** -** DESCRIPTION -** The ft_subst_var_value() function returns -** a heap-allocated, null-terminated string -** that may later be free'd containing the -** value of the variable varname[] including -** the '$' prefix. NULL is returned if varname[] -** wasn't found. -*/ - -char - *ft_subst_var_value(const char varname[], - t_msh *msh) -{ - /* TODO: check behaviour on empty vars -> "QWE=" */ - /* TODO: add support for global variables -> "$hey $nigga..." */ - char *varval; - char *rvarname; - - varval = NULL; - if ((varval = ft_get_special_var(varname, msh)) != NULL) - { - return (varval); - } - else if ((varval = ft_get_cstm_vr(varname, msh)) != NULL) - { - return (varval); - } - else - { - rvarname = ft_set_rva(varname, msh); - varval = ft_get_frm_env(rvarname, msh); - return (varval); - } - return (NULL); -} -- cgit v1.2.3