mirror of
https://github.com/Savapitech/42sh.git
synced 2026-01-18 16:57:28 +01:00
Add basic eval builtin
This commit is contained in:
@@ -25,4 +25,5 @@ int builtins_unsetenv(ef_t *ef, char **args);
|
||||
int builtins_cd(ef_t *ef, char **args);
|
||||
int builtins_builtins(ef_t *ef, char **args);
|
||||
int builtins_funny_double_dot(ef_t *ef, char **args);
|
||||
int builtins_eval(ef_t *ef, char **args);
|
||||
#endif /* BUILTIND_H */
|
||||
|
||||
32
src/builtins/eval.c
Normal file
32
src/builtins/eval.c
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
** EPITECH PROJECT, 2025
|
||||
** __
|
||||
** File description:
|
||||
** _
|
||||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "builtins.h"
|
||||
#include "common.h"
|
||||
#include "debug.h"
|
||||
|
||||
int builtins_eval(ef_t *ef, char **args)
|
||||
{
|
||||
char *clean_buff;
|
||||
size_t args_len = 0;
|
||||
|
||||
if (args[1] == NULL)
|
||||
return RETURN_SUCCESS;
|
||||
clean_buff += strlen(args[0]);
|
||||
U_DEBUG("Eval buff len [%s]\n", ef->buffer);
|
||||
for (size_t i = 0; args[i] != NULL; i++)
|
||||
args_len += strlen(args[i]);
|
||||
clean_buff = malloc(sizeof(char) * args_len);
|
||||
if (clean_buff == NULL)
|
||||
return RETURN_FAILURE;
|
||||
visitor(clean_buff, ef->env, ef->history);
|
||||
return RETURN_SUCCESS;
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
#ifndef COMMON_H
|
||||
#define COMMON_H
|
||||
enum {
|
||||
RETURN_SUCCESS = 0,
|
||||
RETURN_FAILURE = 1
|
||||
RETURN_SUCCESS,
|
||||
RETURN_FAILURE
|
||||
};
|
||||
#endif /* COMMON_H */
|
||||
|
||||
@@ -32,6 +32,7 @@ const builtins_t BUILTINS[] = {
|
||||
{ "setenv", &builtins_setenv },
|
||||
{ "unsetenv", &builtins_unsetenv },
|
||||
{ ":", &builtins_funny_double_dot },
|
||||
{ "eval", &builtins_eval },
|
||||
{ "exit", &builtins_exit }
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user