BIENTOT FINI POTO PAVAAAARRDDDD

This commit is contained in:
Etienne Rey-bethbeder 2023-03-09 15:07:36 +01:00
parent 876c75bb92
commit f956986789
119 changed files with 1057 additions and 34 deletions

BIN
builtins/cd.o Normal file

Binary file not shown.

BIN
builtins/echo.o Normal file

Binary file not shown.

View File

@ -6,7 +6,7 @@
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */ /* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/14 14:56:02 by cchauvet #+# #+# */ /* Created: 2023/02/14 14:56:02 by cchauvet #+# #+# */
/* Updated: 2023/02/23 16:50:01 by erey-bet ### ########.fr */ /* Updated: 2023/03/09 15:04:47 by erey-bet ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -18,11 +18,14 @@ int print_env(t_list **env, int fd)
current = *env; current = *env;
while (current->next != NULL) while (current->next != NULL)
{
if (((t_env *)(current->content))->original)
{ {
ft_putstr_fd(((t_env *)(current->content))->key, fd); ft_putstr_fd(((t_env *)(current->content))->key, fd);
ft_putstr_fd("=", fd); ft_putstr_fd("=", fd);
ft_putstr_fd(((t_env *)(current->content))->value, fd); ft_putstr_fd(((t_env *)(current->content))->value, fd);
write(fd, "\n", 1); write(fd, "\n", 1);
}
current = current->next; current = current->next;
} }
return (0); return (0);

BIN
builtins/env.o Normal file

Binary file not shown.

View File

@ -6,7 +6,7 @@
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */ /* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/24 10:17:59 by erey-bet #+# #+# */ /* Created: 2023/02/24 10:17:59 by erey-bet #+# #+# */
/* Updated: 2023/02/28 14:55:39 by erey-bet ### ########.fr */ /* Updated: 2023/02/28 15:06:50 by erey-bet ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -34,7 +34,7 @@ int ft_exit(char **args)
if (err == 1) if (err == 1)
return (error(err, "numeric argument required", args[0])); return (error(err, "numeric argument required", args[0]));
if (args[1] != NULL) if (args[1] != NULL)
return (error(-1, "too many arguments", NULL)); return (error(1, "too many arguments", NULL));
if (err > 0) if (err > 0)
return(error(err, "numeric argument required", args[0])); return(error(err, "numeric argument required", args[0]));
return ((ft_atoi(args[0]) % 256 + 256) % 256); return ((ft_atoi(args[0]) % 256 + 256) % 256);

BIN
builtins/exit.o Normal file

Binary file not shown.

View File

@ -6,7 +6,7 @@
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */ /* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/14 14:27:08 by cchauvet #+# #+# */ /* Created: 2023/02/14 14:27:08 by cchauvet #+# #+# */
/* Updated: 2023/02/28 14:37:38 by erey-bet ### ########.fr */ /* Updated: 2023/03/09 14:58:11 by erey-bet ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -29,38 +29,50 @@ void print_export(t_list **env, int fd)
{ {
write(fd, "declare -x ", 11); write(fd, "declare -x ", 11);
ft_putstr_fd(((t_env *)(current->content))->key, fd); ft_putstr_fd(((t_env *)(current->content))->key, fd);
if (((t_env *)(current->content))->value != NULL)
{
ft_putstr_fd("=", fd); ft_putstr_fd("=", fd);
write(fd, "\"", 1); write(fd, "\"", 1);
ft_putstr_fd(((t_env *)(current->content))->value, fd); ft_putstr_fd(((t_env *)(current->content))->value, fd);
write(fd, "\"\n", 2); write(fd, "\"\n", 2);
}
else
write(fd, "\n", 2);
current = current->next; current = current->next;
} }
} }
int add_export(t_list **env, char *args, int fd, int *err) int add_export(t_list **env, char *args, int fd)
{ {
char *key; char *key;
char *value; char *value;
key = args; key = args;
value = "";
if (ft_strchr(args, '=') != NULL) if (ft_strchr(args, '=') != NULL)
{ {
key = ft_strndup(args, ft_strnchr(args, '=')); key = ft_strndup(args, ft_strnchr(args, '='));
if (key == NULL) if (key == NULL)
return (1); return (1);
if (ft_strlen(key) == 0) if (ft_strlen(key) == 0)
return (error(args, fd));
if (possible_key(key) == 2)
{ {
error(args, fd); key[ft_strlen(key) - 1] = '\0';
return (1); value = ft_strjoin(get_value_by_key(key, env), ft_strchr(args, '=') + 1);
} }
else
value = ft_strchr(args, '=') + 1; value = ft_strchr(args, '=') + 1;
} }
if (!possible_key(key)) else
{ {
*err = error(key, fd); value = get_value_by_key(key, env);
return (1); if (ft_strlen(value) == 0)
value = NULL;
if(possible_key(key) == 2)
return (error(key, fd));
} }
if (!possible_key(key))
return (error(key, fd));
create_value_by_key_dup(key, value, env); create_value_by_key_dup(key, value, env);
return (0); return (0);
} }
@ -77,7 +89,7 @@ int export(t_list **env, char **args, int fd)
{ {
i = -1; i = -1;
while (args[++i]) while (args[++i])
if (add_export(env, args[i], fd, &err) == 1) if (add_export(env, args[i], fd) == 1)
err = 1; err = 1;
} }
return (err); return (err);

BIN
builtins/export.o Normal file

Binary file not shown.

BIN
builtins/pwd.o Normal file

Binary file not shown.

BIN
builtins/unset.o Normal file

Binary file not shown.

BIN
cmd.o Normal file

Binary file not shown.

BIN
cmds.o Normal file

Binary file not shown.

4
env.c
View File

@ -6,7 +6,7 @@
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */ /* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/02 14:39:56 by erey-bet #+# #+# */ /* Created: 2023/02/02 14:39:56 by erey-bet #+# #+# */
/* Updated: 2023/02/23 13:34:41 by erey-bet ### ########.fr */ /* Updated: 2023/03/09 15:06:44 by erey-bet ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -80,6 +80,7 @@ int create_value_by_key(char *key, char *value, t_list **head)
return (1); return (1);
content->key = key; content->key = key;
content->value = value; content->value = value;
content->original = 0;
add_sort(head, content); add_sort(head, content);
return (0); return (0);
} }
@ -104,6 +105,7 @@ t_list **init_env(char **env)
return (NULL); return (NULL);
var->key = get_key(env[i]); var->key = get_key(env[i]);
var->value = get_value(env[i]); var->value = get_value(env[i]);
var->original = 1;
add_sort(head, var); add_sort(head, var);
} }
return (head); return (head);

BIN
env.o Normal file

Binary file not shown.

BIN
env2.o Normal file

Binary file not shown.

17
env3.c
View File

@ -6,7 +6,7 @@
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */ /* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/02/17 17:25:09 by erey-bet #+# #+# */ /* Created: 2023/02/17 17:25:09 by erey-bet #+# #+# */
/* Updated: 2023/02/28 12:46:33 by erey-bet ### ########.fr */ /* Updated: 2023/03/09 14:57:26 by erey-bet ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -44,19 +44,22 @@ int create_value_by_key_dup(char *key, char *value, t_list **env)
char *key_dup; char *key_dup;
char *value_dup; char *value_dup;
if (set_value_by_key(key, value, env) == 0)
return (0);
key_dup = ft_strdup(key); key_dup = ft_strdup(key);
if (key_dup == NULL) if (key_dup == NULL)
{
ft_eprintf("minishell: malloc failed\n");
return (1); return (1);
} if (value != NULL)
{
value_dup = ft_strdup(value); value_dup = ft_strdup(value);
if (value_dup == NULL) if (value_dup == NULL)
{ {
free(key); free(key);
ft_eprintf("minishell: malloc failed\n");
return (1); return (1);
} }
}
else
value_dup = value;
if (create_value_by_key(key_dup, value_dup, env)) if (create_value_by_key(key_dup, value_dup, env))
return (1); return (1);
return (0); return (0);
@ -91,8 +94,10 @@ int possible_key(char *key)
i = -1; i = -1;
if (ft_isdigit(key[i + 1])) if (ft_isdigit(key[i + 1]))
return (0); return (0);
while (key[++i]) while (key[++i + 1])
if (!ft_isalnum(key[i]) && key[i] != '_') if (!ft_isalnum(key[i]) && key[i] != '_')
return (0); return (0);
if (key[i] == '+')
return (2);
return (1); return (1);
} }

BIN
env3.o Normal file

Binary file not shown.

BIN
env_fill.o Normal file

Binary file not shown.

BIN
execution.o Normal file

Binary file not shown.

BIN
file.o Normal file

Binary file not shown.

BIN
heredoc.o Normal file

Binary file not shown.

BIN
infile.o Normal file

Binary file not shown.

BIN
libftx/extra/extra.a Normal file

Binary file not shown.

Binary file not shown.

BIN
libftx/extra/ft_freer.o Normal file

Binary file not shown.

BIN
libftx/extra/ft_is_in.o Normal file

Binary file not shown.

Binary file not shown.

BIN
libftx/extra/ft_strchri.o Normal file

Binary file not shown.

BIN
libftx/extra/ft_strcmp.o Normal file

Binary file not shown.

BIN
libftx/extra/ft_strfjoin.o Normal file

Binary file not shown.

BIN
libftx/extra/ft_strgen.o Normal file

Binary file not shown.

BIN
libftx/extra/ft_strmerger.o Normal file

Binary file not shown.

BIN
libftx/extra/ft_strndup.o Normal file

Binary file not shown.

BIN
libftx/extra/ft_swap.o Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
libftx/gnl/get_next_line.a Normal file

Binary file not shown.

BIN
libftx/gnl/get_next_line.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_atoi.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_bzero.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_calloc.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_isalnum.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_isalpha.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_isascii.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_isdigit.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_isprint.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_itoa.o Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
libftx/libft/ft_lstclear.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_lstdelone.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_lstiter.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_lstlast.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_lstmap.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_lstnew.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_lstsize.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_memchr.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_memcmp.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_memcpy.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_memmove.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_memset.o Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
libftx/libft/ft_putnbr_fd.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_putstr_fd.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_split.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_strchr.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_strdup.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_striteri.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_strjoin.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_strlcat.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_strlcpy.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_strlen.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_strmapi.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_strncmp.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_strnstr.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_strrchr.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_strtrim.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_substr.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_tolower.o Normal file

Binary file not shown.

BIN
libftx/libft/ft_toupper.o Normal file

Binary file not shown.

BIN
libftx/libft/libft.a Normal file

Binary file not shown.

BIN
libftx/libftx.a Normal file

Binary file not shown.

BIN
libftx/printf/ft_dprintX.o Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
libftx/printf/ft_dprintul.o Normal file

Binary file not shown.

Binary file not shown.

BIN
libftx/printf/ft_dprintx.o Normal file

Binary file not shown.

BIN
libftx/printf/ft_eprintf.o Normal file

Binary file not shown.

BIN
libftx/printf/ft_isarg.o Normal file

Binary file not shown.

BIN
libftx/printf/ft_isdigit.o Normal file

Binary file not shown.

BIN
libftx/printf/ft_printf.a Normal file

Binary file not shown.

BIN
libftx/printf/ft_printf.o Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
libftx/printf/ft_skipflag.o Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More