diff options
Diffstat (limited to 'src/ft_e_externs.c')
-rw-r--r-- | src/ft_e_externs.c | 55 |
1 files changed, 4 insertions, 51 deletions
diff --git a/src/ft_e_externs.c b/src/ft_e_externs.c index 9b226d9..dbbaceb 100644 --- a/src/ft_e_externs.c +++ b/src/ft_e_externs.c @@ -11,63 +11,16 @@ /* ************************************************************************** */ #include <libft.h> -#include <dirent.h> -#include "ft_f_fail.h" -#include "ft_s_destroy.h" -#include "ft_s_lcom.h" +#include "ft_e_externs_next.h" #include "ft_s_struct.h" -static void - ft_search_in_path(const char *com, - char **envpath) -{ - char **p_path; - - (void)com; - p_path = envpath; - while (*p_path) - { - /* TODO: directory(3) */ - /* opendir() | readdir() | closedir() */ - p_path++; - } -} - -static char - **ft_get_env_path(t_msh *msh) -{ - char **p_env; - char **envpath; - char *envline; - - p_env = msh->envp; - while (*p_env && ft_strncmp("PATH", *p_env, 4) != 0) - { - p_env++; - } - if (*p_env == NULL) - return (NULL); - envline = ft_strchr(*p_env, '='); - envline += 1; - if (*envline != '\0') - { - if (!(envpath = ft_split(envline, ':'))) - { - ft_lcom_clear(&msh->curr); - ft_s_destroy(msh); - ft_fail_alloc(); - } - return (envpath); - } - return (NULL); -} - void ft_e_extern(t_lcom *ptr, t_msh *msh) { char **envpath; + char *fullpath; if (ft_ischarset("/.", ptr->com[0])) { @@ -75,8 +28,8 @@ void } else if ((envpath = ft_get_env_path(msh)) != NULL) { - ft_search_in_path(ptr->com, envpath); + fullpath = ft_search_in_path(ptr->com, envpath, msh); + /* TODO: exec $PATH stuff */ ft_delwords(envpath); } - /* TODO: exec $PATH stuff | initiate all builtins first, even uncomplete */ } |