aboutsummaryrefslogtreecommitdiff
path: root/src/utils.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-09 10:53:57 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-09 10:53:57 +0200
commitc16cf5fcc4a421608bf3c291ef84a79b7dbe7591 (patch)
tree2c7b814f7e9eee40d34a6cf26b4948c39fecfc4c /src/utils.c
parent9dca7dc98e46d5b29e236f2970072ffaf582e13e (diff)
parent9fabc25a980550afc6337fd729632462f2680daa (diff)
downloadminishell-c16cf5fcc4a421608bf3c291ef84a79b7dbe7591.tar.gz
minishell-c16cf5fcc4a421608bf3c291ef84a79b7dbe7591.tar.bz2
minishell-c16cf5fcc4a421608bf3c291ef84a79b7dbe7591.zip
Merge branch 'eval'
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c54
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);
}