summaryrefslogtreecommitdiffstats
path: root/src/ft_e_externs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ft_e_externs.c')
-rw-r--r--src/ft_e_externs.c55
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 */
}