aboutsummaryrefslogtreecommitdiff
path: root/include/minishell.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/minishell.h')
-rw-r--r--include/minishell.h36
1 files changed, 29 insertions, 7 deletions
diff --git a/include/minishell.h b/include/minishell.h
index 4f33951..a3970dd 100644
--- a/include/minishell.h
+++ b/include/minishell.h
@@ -52,6 +52,8 @@
# define PIPE_READ 0
+# define BUILTIN_NOT_FOUND -2
+
typedef t_ftht* t_path;
typedef t_ftht* t_env;
@@ -72,13 +74,33 @@ char **env_to_array(t_env env);
** builtin*.c - directory with all builtin commands
*/
-int builtin_echo(char **argv);
-int builtin_cd(t_env env, char **argv);
-int builtin_pwd(void);
-int builtin_export(t_env env, char **argv);
-int builtin_unset(t_env env, char **argv);
-int builtin_env(t_env env);
-int builtin_exit(void);
+/**
+** \brief Type of a builtin main function
+*/
+
+typedef int (*t_builtin_func)(char **argv, t_env env);
+
+/**
+** \brief Entry of builtin lookup array
+** \param name Executable name of builtin
+** \param func Associated function
+*/
+
+struct s_builtin_entry
+{
+ char *name;
+ t_builtin_func func;
+};
+
+int builtin_dispatch_run(char **argv, t_env env);
+bool builtin_check_exec_name(char *exec_name);
+int builtin_echo(char **argv, t_env env);
+int builtin_cd(char **argv, t_env env);
+int builtin_pwd(char **argv, t_env env);
+int builtin_export(char **argv, t_env env);
+int builtin_unset(char **argv, t_env env);
+int builtin_env(char **argv, t_env env);
+int builtin_exit(char **argv, t_env env);
/*
** util.c - various utilitary functions