diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-06-09 10:53:57 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-06-09 10:53:57 +0200 |
| commit | c16cf5fcc4a421608bf3c291ef84a79b7dbe7591 (patch) | |
| tree | 2c7b814f7e9eee40d34a6cf26b4948c39fecfc4c /src/utils.c | |
| parent | 9dca7dc98e46d5b29e236f2970072ffaf582e13e (diff) | |
| parent | 9fabc25a980550afc6337fd729632462f2680daa (diff) | |
| download | minishell-c16cf5fcc4a421608bf3c291ef84a79b7dbe7591.tar.gz minishell-c16cf5fcc4a421608bf3c291ef84a79b7dbe7591.tar.bz2 minishell-c16cf5fcc4a421608bf3c291ef84a79b7dbe7591.zip | |
Merge branch 'eval'
Diffstat (limited to 'src/utils.c')
| -rw-r--r-- | src/utils.c | 54 |
1 files changed, 42 insertions, 12 deletions
diff --git a/src/utils.c b/src/utils.c index 1649199..dd89457 100644 --- a/src/utils.c +++ b/src/utils.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:56:31 by cacharle #+# #+# */ -/* Updated: 2020/04/01 17:55:34 by charles ### ########.fr */ +/* Updated: 2020/04/05 14:51:52 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,17 +17,47 @@ #include "minishell.h" -/* -** \brief Delete function for a entry containing -** an allocated key and value -** \param entry Hash table entry -*/ +int utils_directory_iter( + char *dirname, + void *param, + int (*f)(char*, struct dirent*, void*) +) +{ + DIR *dir; + struct dirent *entry; -void ht_del_str_entry(t_ftht_entry *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); +} + +/* 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) { - if (entry == NULL) - return ; - free(entry->key); - free(entry->value); - free(entry); + size_t i; + + if (ft_isdigit(*name)) + return (0); + i = 0; + while (ft_isalnum(name[i]) || name[i] == '_') + i++; + return (i); } |
