From ed7a23eeb33f9f72d72681f09b24c9ba773f0ddb Mon Sep 17 00:00:00 2001 From: whaffman Date: Tue, 11 Feb 2025 16:45:30 +0100 Subject: [PATCH] tabs --- src/executor/executor_absolute_path.c | 76 ++++++++++++++------------- 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/src/executor/executor_absolute_path.c b/src/executor/executor_absolute_path.c index db09808..db23a7a 100644 --- a/src/executor/executor_absolute_path.c +++ b/src/executor/executor_absolute_path.c @@ -6,48 +6,50 @@ /* By: willem +#+ */ /* +#+ */ /* Created: 2025/02/08 17:00:24 by willem #+# #+# */ -/* Updated: 2025/02/08 19:27:05 by willem ######## odam.nl */ +/* Updated: 2025/02/11 16:45:17 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ #include "minishell.h" -char *executor_absolute_path(t_list *env, char *cmd) +char *executor_absolute_path(t_list *env, char *cmd) { - char **path; - char *executable; - int i; + char **path; + t_environment *path_env; + char *executable; + int i; - if (cmd[0] == '/' || cmd[0] == '.') - { - if (access(cmd, F_OK) == 0) - { - executable = ft_strdup(cmd); - if (!executable) - return (NULL); - return (executable); - } - return (NULL); - } - path = ft_split(environment_get(env, "PATH")->value, ':'); - if (!path) - return (NULL); - i = 0; - while (path[i] != NULL) - { - executable = malloc(ft_strlen(path[i]) + ft_strlen(cmd) + 2); - if (!executable) - return (ft_free_arr(path), NULL); - ft_strlcpy(executable, path[i], ft_strlen(path[i]) + 1); - ft_strlcat(executable, "/", ft_strlen(path[i]) + 2); - ft_strlcat(executable, cmd, ft_strlen(path[i]) + ft_strlen(cmd) + 2); - if (access(executable, F_OK) == 0) - { - ft_free_arr(path); - return (executable); - } - free(executable); - i++; - } - return (ft_free_arr(path), NULL); + if (cmd[0] == '/' || cmd[0] == '.') + { + if (access(cmd, F_OK) == 0) + { + executable = ft_strdup(cmd); + if (!executable) + return (NULL); + return (executable); + } + return (NULL); + } + path_env = environment_get(env, "PATH"); + if (!path_env) + return (NULL); + path = ft_split(path_env->value, ':'); + i = 0; + while (path[i] != NULL) + { + executable = malloc(ft_strlen(path[i]) + ft_strlen(cmd) + 2); + if (!executable) + return (ft_free_arr(path), NULL); + ft_strlcpy(executable, path[i], ft_strlen(path[i]) + 1); + ft_strlcat(executable, "/", ft_strlen(path[i]) + 2); + ft_strlcat(executable, cmd, ft_strlen(path[i]) + ft_strlen(cmd) + 2); + if (access(executable, F_OK) == 0) + { + ft_free_arr(path); + return (executable); + } + free(executable); + i++; + } + return (ft_free_arr(path), NULL); }