diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-02-28 09:41:52 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-02-28 12:38:58 +0100 |
| commit | cc1b57c96cc8c0fdd53e781b54a83bb9c743179a (patch) | |
| tree | b58d43c6fc5b3b57cdeb28f9a21f421d3400196c /src/path.c | |
| parent | 83e7d63bc9c2d4a246df3cc8555127f3b956f960 (diff) | |
| download | minishell-cc1b57c96cc8c0fdd53e781b54a83bb9c743179a.tar.gz minishell-cc1b57c96cc8c0fdd53e781b54a83bb9c743179a.tar.bz2 minishell-cc1b57c96cc8c0fdd53e781b54a83bb9c743179a.zip | |
Added environment and state
Also dummy files eval.c parse.c
Diffstat (limited to 'src/path.c')
| -rw-r--r-- | src/path.c | 22 |
1 files changed, 7 insertions, 15 deletions
@@ -6,26 +6,18 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/27 15:51:01 by cacharle #+# #+# */ -/* Updated: 2020/02/27 18:07:16 by cacharle ### ########.fr */ +/* Updated: 2020/02/28 12:33:31 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -static void st_path_command_entry_del(t_ftht_content *content) -{ - if (content == NULL) - return ; - free(content->key); - free(content->value); -} - static int st_in_dirs(char **dirs, char *dir) { while (*dirs != NULL) if (ft_strcmp(*dirs++, dir) == 0) - return (TRUE); // maybe change ft_lstremove_if func to cmp instead of bool - return (FALSE); + return (0); + return (-1); } static t_path *st_path_commands_update(t_path *path, char *dirname) @@ -40,7 +32,7 @@ static t_path *st_path_commands_update(t_path *path, char *dirname) { if ((tmp = ft_strjoin(dirname, entry->d_name)) == NULL) return (NULL); - if (ft_htset(path->commands, entry->d_name, st_path_command_entry_del) == NULL) + if (ft_htset(path->commands, entry->d_name, tmp, ms_ht_del_str_entry) == NULL) return (NULL); } if (closedir(dir) == -1) @@ -56,7 +48,7 @@ static t_path *st_path_dir_update(t_path *path, char *dirname) { t_ftlst *front; - if (ft_lstlfind(path->dirs, (int (*)(void*, void*))ft_strcmp, dirname) == NULL) + if (ft_lstlfind(path->dirs, (int (*)(const void*, const void*))ft_strcmp, dirname) == NULL) { if ((dirname = ft_strdup(dirname)) == NULL) return (NULL); @@ -85,7 +77,7 @@ t_path *ms_path_update(t_path *path, const char *path_str) return (NULL); if ((dirs = ft_split(path_str, ':')) == NULL) return (NULL); - ft_lstremove_if(&path->dirs, (t_ftbool (*)(void*, void*))st_in_dirs, free, (void*)dirs); // change t_ftbool to std bool + ft_lstremove_if(&path->dirs, (int (*)(const void*, const void*))st_in_dirs, free, (void*)dirs); i = -1; while (dirs[i] != NULL) if (st_path_dir_update(path, dirs[i]) == NULL) @@ -99,6 +91,6 @@ void ms_path_destroy(t_path *path) if (path == NULL) return ; ft_lstclear(&path->dirs, free); - ft_htdestroy(path->commands, st_path_command_entry_del); + ft_htdestroy(path->commands, ms_ht_del_str_entry); free(path); } |
