From c0e2ee28eedc1a9a886f9729a994d77738e2eb58 Mon Sep 17 00:00:00 2001 From: Charles Date: Fri, 3 Apr 2020 15:13:08 +0200 Subject: Refactoring env, connecting pipes, preprocess draft --- src/utils.c | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c index 1649199..9ef99a6 100644 --- a/src/utils.c +++ b/src/utils.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:56:31 by cacharle #+# #+# */ -/* Updated: 2020/04/01 17:55:34 by charles ### ########.fr */ +/* Updated: 2020/04/03 14:58:17 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,17 +17,27 @@ #include "minishell.h" -/* -** \brief Delete function for a entry containing -** an allocated key and value -** \param entry Hash table entry -*/ - -void ht_del_str_entry(t_ftht_entry *entry) +int utils_directory_iter( + char *dirname, + void *param, + int (*f)(char*, struct dirent*, void*) +) { - if (entry == NULL) - return ; - free(entry->key); - free(entry->value); - free(entry); + DIR *dir; + struct dirent *entry; + + if ((dir = opendir(dirname)) == NULL) + return (-1); + while ((entry = readdir(dir)) != NULL) + if (f(dirname, entry, param) == -1) + { + closedir(dir); + return (-1); + } + if (closedir(dir) == -1) + return (-1); + return (0); + } + +/* int utils_not_alnum */ -- cgit From 4aeba6d2f03706fa21281709a138a7d3ea9797dc Mon Sep 17 00:00:00 2001 From: Charles Date: Sun, 5 Apr 2020 15:04:23 +0200 Subject: Preprocessing (glob and iterpolation) draft (not tested) --- src/utils.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c index 9ef99a6..dd89457 100644 --- a/src/utils.c +++ b/src/utils.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:56:31 by cacharle #+# #+# */ -/* Updated: 2020/04/03 14:58:17 by charles ### ########.fr */ +/* Updated: 2020/04/05 14:51:52 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -37,7 +37,27 @@ int utils_directory_iter( if (closedir(dir) == -1) return (-1); return (0); - } -/* int utils_not_alnum */ +/* bool utils_is_var_name(char *name) */ +/* { */ +/* if (!(ft_isalpha(*name) || *name == '_')) */ +/* return (false); */ +/* name++; */ +/* while (*name != '\0) */ +/* if (!(ft_isalnum(*name) || *name == '_')) */ +/* return (false); */ +/* return (true); */ +/* } */ + +size_t utils_var_end(char *name) +{ + size_t i; + + if (ft_isdigit(*name)) + return (0); + i = 0; + while (ft_isalnum(name[i]) || name[i] == '_') + i++; + return (i); +} -- cgit