From 634a3b84b31cbcc5c0c665338e1ef1eb49f25e5d Mon Sep 17 00:00:00 2001 From: Christopher Uhlig Date: Mon, 20 Jan 2025 17:34:02 +0100 Subject: [PATCH] fixed a bunch of stuff --- .vscode/c_cpp_properties.json | 18 +++++++ .vscode/launch.json | 13 +++++ .vscode/settings.json | 64 +++++++++++++++++++++++++ .vscode/tasks.json | 29 +++++++++++ include/env.h | 5 +- include/minishell.h | 4 +- lib/libft/_obj/ft_atoi.o | Bin 932 -> 0 bytes lib/libft/_obj/ft_atol.o | Bin 948 -> 0 bytes lib/libft/_obj/ft_bzero.o | Bin 676 -> 0 bytes lib/libft/_obj/ft_calloc.o | Bin 752 -> 0 bytes lib/libft/_obj/ft_isalnum.o | Bin 704 -> 0 bytes lib/libft/_obj/ft_isalpha.o | Bin 680 -> 0 bytes lib/libft/_obj/ft_isascii.o | Bin 664 -> 0 bytes lib/libft/_obj/ft_isdigit.o | Bin 664 -> 0 bytes lib/libft/_obj/ft_isprint.o | Bin 664 -> 0 bytes lib/libft/_obj/ft_isspace.o | Bin 672 -> 0 bytes lib/libft/_obj/ft_itoa.o | Bin 1236 -> 0 bytes lib/libft/_obj/ft_lstadd_back_bonus.o | Bin 716 -> 0 bytes lib/libft/_obj/ft_lstadd_front_bonus.o | Bin 652 -> 0 bytes lib/libft/_obj/ft_lstclear_bonus.o | Bin 780 -> 0 bytes lib/libft/_obj/ft_lstdelone_bonus.o | Bin 688 -> 0 bytes lib/libft/_obj/ft_lstiter_bonus.o | Bin 712 -> 0 bytes lib/libft/_obj/ft_lstlast_bonus.o | Bin 696 -> 0 bytes lib/libft/_obj/ft_lstmap_bonus.o | Bin 932 -> 0 bytes lib/libft/_obj/ft_lstnew_bonus.o | Bin 732 -> 0 bytes lib/libft/_obj/ft_lstsize_bonus.o | Bin 704 -> 0 bytes lib/libft/_obj/ft_memchr.o | Bin 724 -> 0 bytes lib/libft/_obj/ft_memcmp.o | Bin 740 -> 0 bytes lib/libft/_obj/ft_memcpy.o | Bin 764 -> 0 bytes lib/libft/_obj/ft_memmove.o | Bin 824 -> 0 bytes lib/libft/_obj/ft_memset.o | Bin 684 -> 0 bytes lib/libft/_obj/ft_printaddr.o | Bin 1128 -> 0 bytes lib/libft/_obj/ft_printf.o | Bin 2996 -> 0 bytes lib/libft/_obj/ft_printhex.o | Bin 1012 -> 0 bytes lib/libft/_obj/ft_printnbr.o | Bin 1704 -> 0 bytes lib/libft/_obj/ft_putchar_fd.o | Bin 680 -> 0 bytes lib/libft/_obj/ft_putendl_fd.o | Bin 860 -> 0 bytes lib/libft/_obj/ft_putnbr_fd.o | Bin 1088 -> 0 bytes lib/libft/_obj/ft_putstr_fd.o | Bin 740 -> 0 bytes lib/libft/_obj/ft_split.o | Bin 1936 -> 0 bytes lib/libft/_obj/ft_strcat.o | Bin 756 -> 0 bytes lib/libft/_obj/ft_strchr.o | Bin 756 -> 0 bytes lib/libft/_obj/ft_strcmp.o | Bin 748 -> 0 bytes lib/libft/_obj/ft_strcpy.o | Bin 700 -> 0 bytes lib/libft/_obj/ft_strdup.o | Bin 816 -> 0 bytes lib/libft/_obj/ft_striteri.o | Bin 696 -> 0 bytes lib/libft/_obj/ft_strjoin.o | Bin 1044 -> 0 bytes lib/libft/_obj/ft_strlcat.o | Bin 896 -> 0 bytes lib/libft/_obj/ft_strlcpy.o | Bin 872 -> 0 bytes lib/libft/_obj/ft_strlen.o | Bin 660 -> 0 bytes lib/libft/_obj/ft_strmapi.o | Bin 864 -> 0 bytes lib/libft/_obj/ft_strncmp.o | Bin 824 -> 0 bytes lib/libft/_obj/ft_strncpy.o | Bin 728 -> 0 bytes lib/libft/_obj/ft_strnstr.o | Bin 984 -> 0 bytes lib/libft/_obj/ft_strrchr.o | Bin 744 -> 0 bytes lib/libft/_obj/ft_strtrim.o | Bin 1232 -> 0 bytes lib/libft/_obj/ft_substr.o | Bin 912 -> 0 bytes lib/libft/_obj/ft_tolower.o | Bin 664 -> 0 bytes lib/libft/_obj/ft_toupper.o | Bin 664 -> 0 bytes lib/libft/_obj/get_next_line.o | Bin 1860 -> 0 bytes lib/libft/_obj/get_next_line_utils.o | Bin 1384 -> 0 bytes lib/libft/libft.a | Bin 55752 -> 0 bytes src/builtins_part_one.c | 17 +++++-- src/builtins_part_three.c | 13 ++++- src/env.c | 4 +- src/execute_cmd.c | 4 +- src/handle_redir.c | 8 ++-- 67 files changed, 161 insertions(+), 18 deletions(-) create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json delete mode 100644 lib/libft/_obj/ft_atoi.o delete mode 100644 lib/libft/_obj/ft_atol.o delete mode 100644 lib/libft/_obj/ft_bzero.o delete mode 100644 lib/libft/_obj/ft_calloc.o delete mode 100644 lib/libft/_obj/ft_isalnum.o delete mode 100644 lib/libft/_obj/ft_isalpha.o delete mode 100644 lib/libft/_obj/ft_isascii.o delete mode 100644 lib/libft/_obj/ft_isdigit.o delete mode 100644 lib/libft/_obj/ft_isprint.o delete mode 100644 lib/libft/_obj/ft_isspace.o delete mode 100644 lib/libft/_obj/ft_itoa.o delete mode 100644 lib/libft/_obj/ft_lstadd_back_bonus.o delete mode 100644 lib/libft/_obj/ft_lstadd_front_bonus.o delete mode 100644 lib/libft/_obj/ft_lstclear_bonus.o delete mode 100644 lib/libft/_obj/ft_lstdelone_bonus.o delete mode 100644 lib/libft/_obj/ft_lstiter_bonus.o delete mode 100644 lib/libft/_obj/ft_lstlast_bonus.o delete mode 100644 lib/libft/_obj/ft_lstmap_bonus.o delete mode 100644 lib/libft/_obj/ft_lstnew_bonus.o delete mode 100644 lib/libft/_obj/ft_lstsize_bonus.o delete mode 100644 lib/libft/_obj/ft_memchr.o delete mode 100644 lib/libft/_obj/ft_memcmp.o delete mode 100644 lib/libft/_obj/ft_memcpy.o delete mode 100644 lib/libft/_obj/ft_memmove.o delete mode 100644 lib/libft/_obj/ft_memset.o delete mode 100644 lib/libft/_obj/ft_printaddr.o delete mode 100644 lib/libft/_obj/ft_printf.o delete mode 100644 lib/libft/_obj/ft_printhex.o delete mode 100644 lib/libft/_obj/ft_printnbr.o delete mode 100644 lib/libft/_obj/ft_putchar_fd.o delete mode 100644 lib/libft/_obj/ft_putendl_fd.o delete mode 100644 lib/libft/_obj/ft_putnbr_fd.o delete mode 100644 lib/libft/_obj/ft_putstr_fd.o delete mode 100644 lib/libft/_obj/ft_split.o delete mode 100644 lib/libft/_obj/ft_strcat.o delete mode 100644 lib/libft/_obj/ft_strchr.o delete mode 100644 lib/libft/_obj/ft_strcmp.o delete mode 100644 lib/libft/_obj/ft_strcpy.o delete mode 100644 lib/libft/_obj/ft_strdup.o delete mode 100644 lib/libft/_obj/ft_striteri.o delete mode 100644 lib/libft/_obj/ft_strjoin.o delete mode 100644 lib/libft/_obj/ft_strlcat.o delete mode 100644 lib/libft/_obj/ft_strlcpy.o delete mode 100644 lib/libft/_obj/ft_strlen.o delete mode 100644 lib/libft/_obj/ft_strmapi.o delete mode 100644 lib/libft/_obj/ft_strncmp.o delete mode 100644 lib/libft/_obj/ft_strncpy.o delete mode 100644 lib/libft/_obj/ft_strnstr.o delete mode 100644 lib/libft/_obj/ft_strrchr.o delete mode 100644 lib/libft/_obj/ft_strtrim.o delete mode 100644 lib/libft/_obj/ft_substr.o delete mode 100644 lib/libft/_obj/ft_tolower.o delete mode 100644 lib/libft/_obj/ft_toupper.o delete mode 100644 lib/libft/_obj/get_next_line.o delete mode 100644 lib/libft/_obj/get_next_line_utils.o delete mode 100644 lib/libft/libft.a diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..94b2ae4 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,18 @@ +{ + "configurations": [ + { + "name": "macos-clang-x64", + "includePath": [ + "${workspaceFolder}/**" + ], + "compilerPath": "/usr/bin/clang", + "cStandard": "${default}", + "cppStandard": "${default}", + "intelliSenseMode": "macos-clang-x64", + "compilerArgs": [ + "" + ] + } + ], + "version": 4 + } \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..86fa44a --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,13 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "C/C++ Runner: Debug Session", + "type": "lldb", + "request": "launch", + "args": [], + "cwd": "/Users/chuhlig/Desktop/merged_minishell/", + "program": "/Users/chuhlig/Desktop/merged_minishell/minishell" + } + ] + } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e43ecab --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,64 @@ +{ + "C_Cpp_Runner.cCompilerPath": "clang", + "C_Cpp_Runner.cppCompilerPath": "clang++", + "C_Cpp_Runner.debuggerPath": "lldb", + "C_Cpp_Runner.cStandard": "", + "C_Cpp_Runner.cppStandard": "", + "C_Cpp_Runner.msvcBatchPath": "", + "C_Cpp_Runner.useMsvc": false, + "C_Cpp_Runner.warnings": [ + "-Wall", + "-Wextra", + "-Wpedantic", + "-Wshadow", + "-Wformat=2", + "-Wcast-align", + "-Wconversion", + "-Wsign-conversion", + "-Wnull-dereference" + ], + "C_Cpp_Runner.msvcWarnings": [ + "/W4", + "/permissive-", + "/w14242", + "/w14287", + "/w14296", + "/w14311", + "/w14826", + "/w44062", + "/w44242", + "/w14905", + "/w14906", + "/w14263", + "/w44265", + "/w14928" + ], + "C_Cpp_Runner.enableWarnings": true, + "C_Cpp_Runner.warningsAsError": false, + "C_Cpp_Runner.compilerArgs": [], + "C_Cpp_Runner.linkerArgs": [], + "C_Cpp_Runner.includePaths": [], + "C_Cpp_Runner.includeSearch": [ + "*", + "**/*" + ], + "C_Cpp_Runner.excludeSearch": [ + "**/build", + "**/build/**", + "**/.*", + "**/.*/**", + "**/.vscode", + "**/.vscode/**" + ], + "C_Cpp_Runner.useAddressSanitizer": false, + "C_Cpp_Runner.useUndefinedSanitizer": false, + "C_Cpp_Runner.useLeakSanitizer": false, + "C_Cpp_Runner.showCompilationTime": false, + "C_Cpp_Runner.useLinkTimeOptimization": false, + "C_Cpp_Runner.msvcSecureNoWarnings": false, + "files.associations": { + "minishell.h": "c", + "debug_tools.h": "c", + "token.h": "c" + } + } \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..4ede37a --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,29 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: clang build active file", + "command": "/usr/bin/clang", + "args": [ + "-fcolor-diagnostics", + "-fansi-escape-codes", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/include/env.h b/include/env.h index 3fc83b7..56b50b5 100644 --- a/include/env.h +++ b/include/env.h @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/08 16:53:39 by dkaiser #+# #+# */ -/* Updated: 2025/01/18 18:43:07 by chuhlig ### ########.fr */ +/* Updated: 2025/01/20 16:48:57 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,7 +30,7 @@ char **env_to_strlst(t_env *env); void update_oldpwd(t_env **env); void update_pwd(t_env **env); int unset(char **av, t_env **env); -int export(char **av, t_env **env); +int export(char **av, t_env **env, int f); int echo(char **av); int pwd(t_env *env); int cd(t_env **env, char **args); @@ -38,5 +38,6 @@ int ft_env(t_env *env); int builtin_exit(char **args, t_env **env); t_env *env_new(char *name); t_env *check_existing(t_env *env, char *av); +int check_flag(int f); #endif \ No newline at end of file diff --git a/include/minishell.h b/include/minishell.h index 7a573e8..03553a7 100644 --- a/include/minishell.h +++ b/include/minishell.h @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/22 17:14:49 by dkaiser #+# #+# */ -/* Updated: 2025/01/18 19:30:43 by chuhlig ### ########.fr */ +/* Updated: 2025/01/20 16:48:39 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -42,7 +42,7 @@ int eval(t_node *node, t_env **env); char *get_cmd_path(char *cmd, t_env *env, int *return_code); int execute_cmd(t_cmd *cmd, t_env **env); char *format_string(char *str, t_env *env, int is_literal); -int set_return_code(int return_code, t_env **env); +void set_return_code(int return_code, t_env **env); int handle_redirections(t_redirection *redirs); void *error(int err_code, char *err_text, int exit_code, int *ret_code); diff --git a/lib/libft/_obj/ft_atoi.o b/lib/libft/_obj/ft_atoi.o deleted file mode 100644 index efcdc0d9f99ea9b42ccdff1f17411eebd44581be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 932 zcma)4OG^S#6uwjDqpWLSRM0{w+C)&%qIMH?VHODy1#RLYrWm0`Oe8@Nh~bN9(V|+k zcGoUig%ISjZGRw0Gnj=7ap821-qDdE=)iZ+`@7#f-s?XN2O&}~fdgOzJY(PkfQnenrWqb zUDvyBnWf1Q7y&)d(mRur7Wx^QbajzILP~hd7nH0Yly8Ib#o%Tq1}oOOrao>fQ<|xMk4q^HW&m!2$8H2wXhHi zYdbr!5=BVtZ2bYFffZ7UMb>+h*|=d5yl`gj^URsqefj>ZcnP7+1QtLG;0~Q20Bis- ziSZv+?Sak}j>dGE z+}vH;T#<5a)>&UtJVBKVfe_Sk28${+Is2uIC*jFbSAl7&pKZH#q*u5_x=(8BDRt;XxCCzl68cDNsTDw9S9_mA|o5$rR zl%P!gr>@V_qv~{Tk+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%SOFEk0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjO7evfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zFw$ z%29yPOc1v;0BNXGfh+`wk5A2rPb*5yO@)ZX$D_J01FF;kMnlbmav8W87+^}kLPkJR z0*JwO@pCb-0Wk=GECq>oK;1C|Nb>;sK>Z8>K#UAPdZBJb7AA@v>e2bsqqFvhM`!5= zkK?W{K$<+dU0--uyMEwrmWS|ucy#-|IL5*Okzobd<0x8X%P@>zQ?`{QG^C4%SiF6To;xY(R9#i6xRDOGchr|ae8qw=BF zn;Y>n=4~;S@G^$*E|*|gH5@CCv7cMe`C6{zMj5St?^l(=HDM+5#L_rXA=b<*z#I^s zWsXq-;NU|!e+mNK+Qu`)8U$XYyYl)y!@Z=wfaej88Jq4hm1zbNKGV1FHp6F`~pz@ ziX#5Ml$lDM4XsZmq%Q+Td3q6y_f2yeJ~0h8A>v>;V8ib==t<{2eb97k71E_#u~>1! Ij1x(sZ)1{L9smFU diff --git a/lib/libft/_obj/ft_isalnum.o b/lib/libft/_obj/ft_isalnum.o deleted file mode 100644 index 3aecc5809db9f40d3b261eb225f1781f34740fdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%H~)KfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zA1; z%29yQ7EBPg%mC6*rvh0B5FekK5ua9+n41a_i;qWjUjtOB1C)+{ng``Fa5FGuz}O(# z2#6(s7;G0m7Xup*g8;}4W1(p-=-0OLDO;Q#;t diff --git a/lib/libft/_obj/ft_isalpha.o b/lib/libft/_obj/ft_isalpha.o deleted file mode 100644 index da20b0195bfc3228a1611cc01e4a7ae55c359431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%SOFEk0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjO7kxfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zFw$ z%29yPOc1v;0BNXGfh+`wk5A2rPb*5yO@)ZX$D_J01FF;kMnlbmav8W87+^}kLPkJR z0*JwO@pCb-0Wk=GECq>oK;1C|NDBb@K>Z8>K#UAPdZBJb7AA@v>e2bMv-U@G?GH!( z9+1^QRuq4q2!xf$-y;TLRq^-p09nUf|A1_I35qfx8%Q#AyZ(ti3}S!*G+r>A12PZ< z7^{L97%K!A1$fvwCID5b0L5g0xZ*zqz~Ys`kx!tF$(ff8qzMXu%Gp2$^CO!cpH>o| NS)7+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%m;n{P0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjAaI8fXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zFw# z%29yQ0!$FM6aZuUrh)*j@%uR)e#mA$%F9NF60ZJP{&4Y3oxEUBSU~CX= z1jG_R47Q7(i-8S@K>%baNW22-jt(F#0OSMpGXwxJG63m?x)oWND0Zkv=hM#GAI-Ht z82EcYk=R)KqX9_q_woSAv_T#K diff --git a/lib/libft/_obj/ft_isdigit.o b/lib/libft/_obj/ft_isdigit.o deleted file mode 100644 index a0e0f40d01b86d5d7227538c36481efb8e07fb54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%m;n{P0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjAaaEfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zFw# z%29yQ0!$FM6aZuUrh)*j@%uR)e#mA$%F9NF60ZJP{&4Y3oxEUBSU~CX= z1jG_R47Q7(i-8S@K>%baNW22-jt(F#0OSMpGXwxJG63m?x)oWND0Zkv=hM#GAI-Ht z4ETG*fLeeoOa6WyAnUm6ACRdpLD2(b14)K%*FUj`K@2#6#sh}+B2X2KRY44l6#|R` zJnS43fT~o0;xa(o@gD+U@yOuFC(y>^%*zHh8SE!Ekiq=OrpKq1#Ag<#WTt0=Qwad2 CK0yZn diff --git a/lib/libft/_obj/ft_isprint.o b/lib/libft/_obj/ft_isprint.o deleted file mode 100644 index 8cf5033396fa25d36dbe5e96031092dc2714b779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%m;n{P0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjAaaEfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zFw# z%29yQ0!$FM6aZuUrh)*j@%uR)e#mA$%F9NF60ZJP{&4Y3oxEUBSU~CX= z1jG_R47Q7(i-8S@K>%baNW22-jt(F#0OSMpGXwxJG63m?x)oWND0Zkv=hM#GAI-Ht z6!?3@fLeg8I{tnhAnUm6ACRdpLD2(b14)K%*FUj`K@2#6#sh}+B2X2KRY44l6#|R` zJnS43fT~o0;xa(o@gD+U@yOuFC(y>^%*zHh8SE!Ekiq=OrpKq1#Ag;46lLatQwadc C8bMe9 diff --git a/lib/libft/_obj/ft_isspace.o b/lib/libft/_obj/ft_isspace.o deleted file mode 100644 index f6f10e860277ee65a0d1ac430feea0775bced21b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%SO68j0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjAaF7fXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zFw! z%29yQ5=;=cQ~+tHQ-Lf5h>uUrh)*j@%uR)e#mA$%F9E950ZLmy&4Y3oxEUBSU~CX= z1jG_R47Q7(i-8S@K>%baNW1~+jtM|o0LTaGX9xgdWB}3&bt|$kQS4BU&ZiC?wZHlI zx&Chcp}^n53)BYTaPqhE06E89|9}jC35q2k8%Q#AyZ(ti3}PSvG(Iq#Ap%vxSQW&; zSRueDz{Acl0jNp^C@urU4gVnk7M~1`d;)Du&b(|0qd|US0~ySZY#4_zeXs`$MH=uDo?)9bq4`mC)gmki8>P!q z=(Ybr|Acz78g0C_NAV^^NI);L;3}c(H@k1!NDVk-cIKP+%{TKl$-(dMN25fEGlT~` z3E$-;1BYFP&oUlj4@aVdPl^*`Xc9Z?vPo$c*Uc!8@RE42bb{k-Rq3!E?=p)=sF9=> zF^8j+Mx(Y?FiiQR{;X18mh#^G;Q3m-k1FaAVV%WTk4SAE5u_}ZW$96&R*doA`yDF1 zEv2`k^c1A?MCCZ=cpH8R9=2)cC22XNz4w%Xi!)=P zv!5Iz+wwr+FO{qNG#wT;PYT%{_l4Ew46=Bzy*I793tczYvEKzwuA>`2Hj*>0@V4LZ zOZgc%!s~qqf*_pc2p`ec?f02{tE5deS(Nxbj^($7$H=yPtTK+QE&BX=dh>C0^DHuG zZf^&JV|i7hV-Uw)P>DZ}Es@ zYe(6suk27UYD3QFRL9LB=NDCf;`x0_tfv#{@zJp@^jt@sZe3en-2Cr}p?KugX171(6C}$UTPT9J8UJ({m* zlhS7<7VPqXQ?Cj&0&}UtQ>yHj@7zKyNTB&10L+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%=zxmffU1GtHx zttf%8A^Z^6h!6xH#?pW?K<0tm0tYM%4RAJ)5g(tNpIeZaToPZJSDu-d5+Cp5f-Da+ zM*$|t1aV6OkcK)H$U=bl_|%N}w4%h^RESu7JgWOVph_K}v;x#TD3^hofguCN2GK@9 zECIw|yZE^n*nk)WK$e2UGobFM0Ma5rK2SeH01zVskY1=;k%ft3hkA5A_2{hq;n7+8 z!K2&thetPqN4M_>k4{GpAQvd)3zTAvJq$Ap8eSOIf!qcHj8#Dlj1>Zm0zB*-6M(8z zfMPO0JmWtEz`~oskx!tF$(ff8qzMXu%Gp2$^CO!cpH>o|Q(Tgmk^&6&{5(+7005Og BLwx`M diff --git a/lib/libft/_obj/ft_lstclear_bonus.o b/lib/libft/_obj/ft_lstclear_bonus.o deleted file mode 100644 index cbf23d799a3ef7904ebcea23ab07a91f51bbf395..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcma)4Jxjw-6uqg^7C+h!4hjw##LdO2V?_&ZP!OrmMINP1t6lH-&WF?&#LKayVS6Ph}J*nyOzS7up|A%rD>vCsF_!RdB8s_ zJw4$_-Wwts|Bv2P-m7xoP34^pmDd@lZholTETu2Du-*5% zq`Z6|vaehxiOh14K`56*s;9bV(49e_4@6y$>)#$nqtWloP~CG4DfiCYyY;0k@;&9s z$C){i#>oyDPR7X0B$8LCT0)%fBZpJi!vBHRQkl!x`fObG?SoOi!f(UOVQ?IvG%sQ) ZaKy!rShaQi$S&8dQaf}iR=w4<=o|LjZTtWL diff --git a/lib/libft/_obj/ft_lstdelone_bonus.o b/lib/libft/_obj/ft_lstdelone_bonus.o deleted file mode 100644 index c35769905f2d0c03158b172f0c77cc061826228e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%m;e>O0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjHM4{fXoBAC4&j#E+D4?rUpdE$0z6K79=K@#FyrkXXd5E$NRV- z%NsyB3Q(E@Xb#9N1u*j%7=SDUh>uUrh)*j@%uR)e#mA$%F95340ZMB?&4Y3oxPeZE zu|c#E5K90tI9T|(7}$Uq1VEO8#4CUd5PJrY0P%tP8DMq*nP33Y3&T($qNz}i&Zi#D zZv;F#YkzojmVWT)b_HVJA0FM7|1SVJK*8fLK&E*#9}$Q>3^x}V{$OXr1%V6^D2K5s zh=H*}fKh;lonrz}l?qT?28bv8hX7doF*x!Gv@tpJvO)E!0%@RfT@V*Yvw+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%H~|&E0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjFk#yfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zA1= z%29yQ4oncYECA9_rvh0B5FekK5ua9+m({GFcY{L7+_X{g^Ylt z1Q3Jm;^$&u17Z*WSqc(g0d>a?AT0po1NAcm05LKE>4mx#S(qqxs7L2hkLEW59-Xy6 zJUUB1cr@4kVBl|M1!{h247B=(hZS0W8<;z~Ry9 z`s3y0|Ns931(0N$j|jvb2AKf`&|t%Gt_W0~u_}mxu|j}RfQOx90#KC-P+SIxBY-A@ p04&}a9Qg#=n4Edpp!z@*P&pgOV18uN+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%*Z~#40aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZj1>%JfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zA1< z%29yQ222pQOaRhQrvh0B5FekK5ua9+n41a_i;qWjUj!m>6_Jf)Eg*!nz3h zPp&(Ag|oZmsx8w9E1ZxrSQx*zJ9F6+1Rs2P-<$W%_hz!Yzn>nTM~D(12tU9uaLr^E zK+FKkT)z>z=PQk_;Ykek<&e_0ns&saI%j;(4QkE)D8hbxmNX1Pk6}928qQJ{_A52B zV9R>7v0E)lxxNL2#`NvS?GY>O$RICg_N~X(*fP;tf`U1|u_p2cZ&o<1u5jvs zaPl3|ZgnYjGKKA+0Vq!e?NI7;g6S_KyywGNRQO2T=Uru{t`P`#qbuB%z9$^xPPnbR zAQU-<2cZX}FOjgrJ*eDzM_jc0NTvPfA`OhPqwqnld;e4q=ly;kqkMFF$UV`%&2HWB zm_exbL_NyE`X@ybN1K#rrW5J$kP;2Gu!{hrb4WcqCA>qJuR`-u#B<_a0l zD#O>t|DWMD)|31_q+(OqH&)X4tD1Z9KFJ+h?j71ytD$LO&oU2mQ884FCWD diff --git a/lib/libft/_obj/ft_lstnew_bonus.o b/lib/libft/_obj/ft_lstnew_bonus.o deleted file mode 100644 index 98420b2011af3010b303bc4ee127551933a5f31c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 zcma)4Jxc>Y5S@#X1Wn8#77Bt_*xFd7jOf7@3L+5#BAXB|M97EeNrDgv1cf7wrKP1m z!A?OTcDDWj;RJ=0!9snL+fB|w@WI=8Z*FFG_wJrQKfYo_#spyjC&61576>eWY4(5M zUgcj@jrN#HOrFb-(si0{paY+^bJ?-iYEKEC$7i{U1m}Wj>l%(y7VFicLeZ6{wZ>uX zK+4UH@bkPfmWpZ2;j>)pc|=fSNa>Vi>9|mJf}E7U&(~I^85MJCp0YGeRMwi~DmV`g zUrTC=q9B7e<@^l<>nAL8i0G$nFbwY14Cnu&cZK&VI`5Y7TKzi{9X@vn&-O*9+Or3U1JQZ3_8&Mqg8E*=YmSl-d?$u+wnIkK zG|WUSeu=7OG>5h^!~0+yu;mC|_ZX808I8yeK3PLl!?o$(5B8x8^iR KRtuF%y+}VEmsQdL diff --git a/lib/libft/_obj/ft_lstsize_bonus.o b/lib/libft/_obj/ft_lstsize_bonus.o deleted file mode 100644 index 1ce926d68d4479514b0836c7b11e11ba51dfbde6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%H~iCfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zA1; z%29yQ7EBPg%mC6*rvh0B5FekK5ua9+n41a_i;qWjUjtOB1C)+{ng``Fa5FGuz}O(# z2#6(s7;G0m7Xup*g8;}+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%xB(Tv0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZj8z0>fXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zElV z%29yQ0Zb6LYyi?wrvh0B5FekK5ua9+n41a_i;qWj-wdcy2Pj+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%cmWl^0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjMWHbfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zElW z%29yQ2}}^T901Z#rvh0B5FekK5ua9+n41a_i;qWj-wLQw2PoYDH4n;V;AUXRfU!Ze z5fDoNG1xACE(SIr1_6+zAn_AWciaHdJU~8BKSKZzBLk3Ls9TYRiDHL(bUyXyto`B9 zS^B}FGxUYWan}bRjmKT@fGEQQ&9!$JI$Uq_xAFnG9^I}FJgi+`@J~9};d{Hw_4W!z z{#I6?#7hH+><^D_-v|8LL^yydKS0LSU|989Ii9HMy zKn9Hv4u*F`po$o)f*2Sp1Q-Q)*f}NuRjB~QWq{ZMXdVba^)oOy@(HvtIrFkX^?@j$ XayF2`{2&4b;?qjvb5nDZa|;*%2%2X+ diff --git a/lib/libft/_obj/ft_memcpy.o b/lib/libft/_obj/ft_memcpy.o deleted file mode 100644 index 253e17ec4d32ace0bdd3a9815670c43b1269b301..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcma)4Jxjw-6n&|s6>Uuh2L*=?t}afFiU!`GAkvD9JW5TeLu!!}t58sC#pvSbrvE}m zi$B1Q8M6rOAapDa>bcELn<9b-PVTuM@4gd~x6hBSq!8MKzypkf&m=M+Fb}R!{uj9C zg)K4Mss{*=w}?FP)R_yL9V4=~g?^&H3`ygf=}yOG-1$qHl# zGEFj=>UVdMbm<~geCf92Me7@o?v^hbeW7121-*9ABbVs4Zw$R#E=swX=UX9q_ zf2Gv}@b~`pnzP*3&US=WGc+TWoV>%-BI*lZhU@_0|033AjH}psI>F~CU_3#K_2_n0 Mbd+t`h03Y;0TY&XWdHyG diff --git a/lib/libft/_obj/ft_memmove.o b/lib/libft/_obj/ft_memmove.o deleted file mode 100644 index df18bef278191658922eaf3a81331a2075d193db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcma)4ze@sP82&Um-{)Wa@ zX^5uUy3r*#hrsb@(4P11JG}^@7oK~c_t*2i-|@YDe+^@dg=QE&Km>Rqk_KQ)z$V30 z%&%Fp$B&`O2&79UL``qhJnqFg?JzfqefA*<>CrA@i?FLP2N9xJHBJk~ny6PUPAbPj z?Cl2YmJHI;KZd=75`Zo16I_Z#4%@xuK&$ZO{bK zj)o4+=|A{EMzfVR{YjL1C|U3pH@p10JA!dDYw?!Dl=iaMWAjedx=Y4gCD7Ysy#I>E zzN_(~S!g3Ii)XZ+(psN7<@U_db?H=3L(aM@qV60$Q^qy+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%*Z>v30aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjO7bufXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zA1- z%29yQ8cYzkbO33nQ-Lf5h>uUrh)*j@%uR)e#mA$%uK=pl0ZMy7&4Y3oxEUBSU~CX= z1jG_R47Q7(i-8S@K>%baNPGg+9SeXo50DSk&j52XkO>ALy->G8MTn4XAk{9rgs1S-#16~w?;A;2iW!_F}Qs7eJWE(62`K*K-)7QYOR id;)Du&b(|;eIN>`oDF0!KeFlZX(jQwskz0eB@6&ni&EAA diff --git a/lib/libft/_obj/ft_printaddr.o b/lib/libft/_obj/ft_printaddr.o deleted file mode 100644 index 64e9dea79f0b44724688bd2477493c41be035f18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1128 zcma)5O=}ZT6ulGEHdNC$U=;3Kw+SC z7z6zif6>0fXoOh9QD6$Td_&z-qr)0Tn;_o_pqn9RB%rI!0t&BOI_I ztW>~JfdO}6+uXPUpQSg&GeDk$lh~M#VT|W=y)4f1#oC+2vpkQ=Lwr2@9l}zMB5me( z*c;PW_uN+dtrU$p&zJM?cQI!3AWKQ)N|y4yTV1O+Jkx1!wAxK$UOfNTL|}`qsubtI zmr_EUaGj$x##u4TZhh6s1}^Gb5WW@R>*jotUnk02Y2^vdJFs+2jngQM!ArSrLkH`r z!cW0to)%yXp2>~x%W7`@H(u%BhxUKkI_Sk;m_YYuf5YuEVZ<~+?L>#YSob?8X&xf? zzuHUt>H%I-<|{m}gU+!IYsdZ^ss0E?2On{u66;5bBR?KjK7Z9vZDa=dcI{|z^FsY~ zR@Z(nR%&Z9@9srK9b!*#5N#$&BAPo#yDVM=M}99N^`V^2Ku-y?;qo*S72%W2GIiJVfmtZ0D5MCyDSA z%}>}{g=gha9s>9to|QhyJ=t^V-XZSbCz^f?4@}?3!8z}Tzg2<9+LV_4ZR8UOs_+bi kr1%i<^9-f<<1Bk-4Sz(h-fX&LHr$ry&{@T}PJ>7P0_VZ0&;S4c diff --git a/lib/libft/_obj/ft_printf.o b/lib/libft/_obj/ft_printf.o deleted file mode 100644 index 44aedad2ebe400f57f27131ea47f073bc35f7287..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2996 zcma)8ZD?Cn7(Us$F8e$|6sJrUh8w9E8Olb7AGB;24w6WjD-^NZW=Xr2bun~_D{3So zy)Ku_#r{~JAcKMm{+L*h!Pr>Wu|SIyjDP&KAN?aVP+5LE=VZPNpNQ+Skr)*?Up211%R;K zNeShQgxjMM?hgU@R0@Uhhz#RhRu9odbS}3~YMP)tBsI-?Gb1%!%5Z^4ba9ubc|@0+ zo8=Kbf&83sEUHP^RyQJrzfK;`AT3^(k$mMedH2#kC5Zp20`56uxidEq-JQR&4W;9_F1dsKUx#f6}~gO;QAs*1o$iJ-85!%E5J zwMpx*(j=WApMRM$Ru4b0vQ*=I+GR7^lWtuZ~{D#MTLov_z znM)q?Ok3s>m`gt5Q%&L=x6&5}!M~GiP3WH;jtQZSEMwhN~?KKrzXh&Km4_sgZ zAN4(isA*36=RClzFSpiVjUv!?Q+V?0$7Cra%Tmf@^H(zfy%v@UWL(>V$O#1zINf|c z_oTV&#}TQD!cBew$^#;7n(3XqXlx*^;TRiqS1>U6XvDiC@_rQ8LOrE?L*8oP<{Fzf zTNEoHcsH-qwDu3vWfH}F9WRwZNg)}rS9Ot$uNK}5!f+4<$5@qbfYsWHoI(!v{#D7O zYg{Yl*O>P%kcHNIRiJHb)J{Rvb)9?%@?HAA`64^HrQRYNWT>@Fw^#`eK8mDsTIvEHD`gg!b>oQ3m62>VLcHVJp)91^iMp< zKL&(L^e7Oa@6)G;@_r9QiyjBk_z)C`ojn@E8Ub>g&e}mZc>DK}*1i3rH#gb6{h_tt z(7pBv1fR;jZqbjm=;Z77?`_fPtorR&TXbfQWX%kIG_#|_lT1nYRZM^G$@mN1^hu;r zJ}sBN;M1fcGnvWJ1PrEmC7VcIf_BLqNsNterWs-8)rqm}@K&FTxx_>Y<+1+&Oq^1g diff --git a/lib/libft/_obj/ft_printhex.o b/lib/libft/_obj/ft_printhex.o deleted file mode 100644 index 5ef814fa5e93f8eda620c6004ab97d6a0966191d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1012 zcma)5&ubG=5Pn-@8>;55qFBL06tBhNsd$R$!X7M$G~lH?O5Bnh8cW#FAOs2zO4cQi z|G*ymCy0k=sSx#|#~$?{Y(Qy*9Ha?dzuBEpOFhfm{O9uhjRv+w8?2P2_>PsP=1U1zrx-@jDGP1N$F z9YXl_2t1&EXrK*`5EOC@xcG*(xtYK@* z>5>~YjS{Ll0m`XP8B)OUL{=?NM zouAxnzfTyljyl;fkRa`Bl!pYLP$8{Jw{y!nY9g z1v@(eE2uez_;G0958Y?E%>4;*r7O7DHgu5QLlVLbLocZ6uj4^JefI$EjG!4! zfK>`WPC{KDF%o*;6<(81OY*(@pxM==@duF5p%Ps_MDUd}>CIi)vb?;xTrS GcfG%gdr*o1 diff --git a/lib/libft/_obj/ft_putchar_fd.o b/lib/libft/_obj/ft_putchar_fd.o deleted file mode 100644 index e3a7ad2907378eb443c8769d9327d60cc29ee47b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcma)3ze~eV5WZANi@%z|LBSz|h>MGpV?~7w4k8s?|Fsg0vK&qkoFH z>h9`4AUNn=9IW3p?~ynN9(=j)yWD;6c<<%w^SexB%n?4oJn$gI1`zAOp6EYfpz5!x zM{9VJKzt>b6Th2eJk#}~^Lnl|+fqdQWS7fQwim>W?vc#wU9}?DOE_(Jn(YSj@nP}* zwi323!bf%qwI2~!9?X8oLF~5ttj7F%KS#CJRJN6$lC%hG%_Z*wYryPUstaTS5^|{2 zBM{+Zd_-fOPJm*_tVXf^AAaTx-<w6lqO#2#vC+=egG(fL=pf1 diff --git a/lib/libft/_obj/ft_putendl_fd.o b/lib/libft/_obj/ft_putendl_fd.o deleted file mode 100644 index 5ff74c86fd9fee3fbd0d18193fb3d7f59124790e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 860 zcmaJ8?$9XIh4aomZ|*(szL|OceE$jyp^XbHzyuH(!;%0Hi@+5< z_#^Ikf0cR=zJ{kDkROForrtEY+|!vw_!lTKSzs`CE44Wi~I5Z261x}|lAVqXU3sp1~{=kZE2-T>UP2Jt8S*C6jDympO{ST^) BWNH8a diff --git a/lib/libft/_obj/ft_putnbr_fd.o b/lib/libft/_obj/ft_putnbr_fd.o deleted file mode 100644 index 1de64824a15d94ab75437067696a42ee27041226..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1088 zcma)5O=}ZT6uqgXjbE8r7>Ov@g^O+?wMOlx&{Bi5u%Oa_8+p{}#0E(W;|wi@Kp2zH$)L&tMx?juc0p$G1}-{;OHJvF{58p^ z)?QF*)l8XJM$=nhxr6vE$d4ne0|-CSY{pz4n!6gmY2>+%ADWqzMKb49-DlL`x69km zK>j%n_Map=dslqsLp(bMjWyyitgpk*z|h~5hHt>vVDp%ZKkSNI@f=cRPt|>|_S#kD MCF+~Xb>db21J&xEzW@LL diff --git a/lib/libft/_obj/ft_putstr_fd.o b/lib/libft/_obj/ft_putstr_fd.o deleted file mode 100644 index bc970e3c6fa1fbc61b5f17cd41b46fc7b85c0f61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmb7BO-lk%6uo0%QIhmTsbjt1wD<5qL3ywgAxdW5Dl~OC-gH~ z1_do^*&hg86tr+5Evj>!`_O_GUFOWW=f3+j^BzCmK4*xmDZ&ew25#7~0oV$VX8ng< zOZ-`Kj7Cpla9=j9U8m)SeyDTVquf{Zq+8V?U>?OO1Th2_stn-0wsZGs0=eGcu(qY!E4Z{r+r}3xR${+|FuKqzo_o3t^D@T_Xa_GpaO5Gg6z<5zbpSi z`Ch-zO;zD3KqN4-dv71#jiPwudbKmQ|qh6`HwE+Fndt zMs^mWQnv}lccs?BC`)k|99;s(C#JDGAu0AtlP8fpJgHikg^B_J5DXsXB*gUM*fq8JDNCO24)3DvxVzMc5*9KuB zdN;Z^*FYaC_~@fAiXcdzmaZwei(q#1BKIK=5mwkMD_JFwOVz~h+?i>T+JJ|hIdjf@ z=bUfOoxQht|M%UKj3tgUOc+UwJG28m=z>i5ZNkSu@UBnt{ z1CILO?TR3rvoI>;CmU2ihlvO}lFq%e6D$113T?2sA8t89FLr#FP?(S#Dp(k?UcJX++$dIq8F3ud7>LHx-o$h^zhNsDEtCk0h(Bu zI>g86X7-W~MEIhOndxeHa&2CFZNS+@$u(Yi4m(s5PZ9n>^q{mg`e%lJ z?q{mywI#9kpl&~qo@mF%ZinB*2PI2iEga~<)oS5twH{`21>wGkpR*@A=S7<@pRu*w zy8NiFdzcND(%{qbN*#B{@e^*jBXeuj!Bn`a57`3K&T2BHS$o-@bQ2Un?T4n@kU{&; zJkB5n;*VMU}o>-wo zB&qn1umAqqqvy2tvrn~YtbN3n#`D1u@k8c4boq$*L6a)+;oB@RpH8GtolM}EcV{i1QKRNd1X?hot5bgp->u-%SJRgah25#gZjWc{7iMtKltzC^Xy#IqM z;9N<@h9`{v3@<(0>tP?U6e3(jwB2!aE_5O|N>v}acm(N?1 ZfCYRERdM#cd;vi0F*P$eJw2Oa{{lg#($)X~ diff --git a/lib/libft/_obj/ft_strcat.o b/lib/libft/_obj/ft_strcat.o deleted file mode 100644 index f749d90f2a479b82f5b3b9483e4dbc6e36622ee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcma)4ze~el5dG4YHfU`#bWm{U;GnCMgM*@h3>HKxxX4jrOC4HEO|S?;p(4gCb@NZ@ zD2VOmkFBGNkV1rx#ld=)T-t~TK6trz_uakkLh}6i@s$uliVA!nW5^DPEE2JRT%-IC zjJV$Co*+k0K_p)SfKhB1zV`FHdXS&yfx2ZuezeO3G0~i86ae~3rB=`lFsoCs~fQh`-AVMqU-w6ad9Cl3z+5*Q|??W|_mD>d;J2bt!1JI@0u<+gz7L z`Z9$TTXkFalBK$XxAAy9;HDuqIeycMKju|#GBP>XrW-XKO@F%1$hPUUx{_r&gGZeA zPIGQFho`UInBrY{_&}~9@OS?8dKvDK&i91WP$VUpklWa`g!M(_GTuN4{u8m8Qm!If XbMcTjw#Ugh9d?J30jEY?FBsw*!pCzE diff --git a/lib/libft/_obj/ft_strchr.o b/lib/libft/_obj/ft_strchr.o deleted file mode 100644 index fea0b41d07737d7bdae15502407785512a48ccfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%_yHBa0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZj5QI;0GS7J3mmX8G{D(FMtpp7er`cxa!Gt?UU_C-N_@PJ3$pwS zC`SQG7cfEGasfy~oeE?jKzw{^MtoXPVs0u#EIuC9eLJ8^9ia3CsCiH>12+Rh28<1& zjeuAJh{1O8b1|?1F$jPx1&QB)y5j|q<^l47`WXU%7#V={LfwiiOcXoRqw}dpXYGg1 z(l^IlUx2iDbi01=NcMffzfXjt`4;C`$-|hOwh5@@`4v+!IU4H;6ki|b@4}(}p02CD920=5RDfbKK&%0@7X)DGgu#(dppD6ymkp!|3V_PlKnC+8n;xH55?@?W Jl$=q-000_gZi4^- diff --git a/lib/libft/_obj/ft_strcmp.o b/lib/libft/_obj/ft_strcmp.o deleted file mode 100644 index 5c7286bcb59957738b9badbeb6bf0535b96cdc26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%_y85Z0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjMWWgfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zCOq zl%oKpGngQ5IRT`hP6e_MAU-}dBR;JtF*g+=79Wr5z70^N4p6!SY95r!z|Fvr0b_$` zBOsOlVz6EOTnubL3<4laLE;yn?sx#Cd4PPNeue-bMg}0gP`4rr6U7eo=zQwYS^LAI zv-HDp*Eb+Nh6g;leSdf)hrZ$8XCm1AkDLgr2-U}0b&E7H6Q>>9}JFs0&Psryle=gL1D!PGMFFP Q^!T)r_~MeH+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%H~oEfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zA1; z%29yQ7EBPg%mC6*rvh0B5FekK5ua9+n41a_i;qWjUjtOB1C)+{ng``Fa5FGuz}O(# z2#6(s7;G0m7Xup*g8;}Wntw6yx2PZqc8PER<$r+WJ486TOW!mfW9%$_^YZxr z|NmhU$5=Q(hWv;@Bid^0%m g3A8ae^Rgj~2Kk*0WH3Ln>G5eL@x>)Y$pw`R0L?&KM*si- diff --git a/lib/libft/_obj/ft_strdup.o b/lib/libft/_obj/ft_strdup.o deleted file mode 100644 index e052b4064af80f52ed229ba559b3cc897877527b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 816 zcmaJ<&r1SP5S}$rDNO^Rq7F-R6{1te!WP~kA;O?bJY-c2{1LX21VXSCZXWVa>DVzT zs#|pP*ug-dV2?|Owwd)k(x8U@-Z$U;dc*EMe|~%g0h9^A1K~&9kfS2d<`HY8|1ev` zyP`&FoCyS)OUAj8s~baqsMFeB`bSIeN;ou+c6ssv;6vh+NE+vQrF59l4PGlBAC$A4 zZ*9sPaa#ygZ~=$VE?s1?sy9}oalc%F=c}1gZW!Twe7|c^xGuOU<_QT?00rq2uOj9U z-d)j22q4JlQi{Kd{unN$qQ-vMMvNNu62=xCE%?XZW!4)r-&JNcY}RVneX6yzUQ6ql zw+ho8FTgCV&&)<2qURCJvq#OLx<65bn=|J>sVVJime;E(S z(q=p~cyV3V)0XBSJIuUS_wQ(`XX5*MuSLd)<3cDWJD}8KN-P`evQIrm0VdN1Bv%fU(yupu*YPNPL-D0i`yp$;x HD>}e83dVRB diff --git a/lib/libft/_obj/ft_striteri.o b/lib/libft/_obj/ft_striteri.o deleted file mode 100644 index e8264a9b103c85420847f465af067157358c069e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%*Z~#40aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZj1>lDfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zA1< z%29yQ222pQOaRhQrvh0B5FekK5ua9+n41a_i;qWjUjl=_hk8al=-M()+Pc_&GFz~miL4-bZ*S_)S_WjWv`lj=m2jfSN&U61S z06EQv7&}AXygdH@|9_9>BMPyH5mrOv3B!3JP$i62K@5x)0*nGY>>Lw-s#JjDGC-UG rGz$b^@yy`JC(y>^%*%!_8suj-kiq=OrpKq1#21$oWtOBCWdh{@TFzXM diff --git a/lib/libft/_obj/ft_strjoin.o b/lib/libft/_obj/ft_strjoin.o deleted file mode 100644 index bb8a89e0789803629eb0dca2bd411fcd3c2236d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1044 zcma)5J!=$E6ulGIWbh-q#fl0RQ7kN6SZuVgNJs`=;fhECHsP_18xq+s;w&b@LSRIE zPLnd7DJ?B6l}I8sK}fMbV1x;bGUZ~C_1t;yp-}=JxO493xp&yv{h!~DCWxF3QKbG>|oUJiuCYUz-c}(B31wFV7LpqSMu`HKX>#c^3kKb1{@3*YW zh|^*;3wd3(rfie5`ne#$gOz%K5h#=J!j$H^G>v2QUWDSmXX_{fQm0>^8ti@E#57- zJUkFlPb(=e7Eukgg;+RWkxqo#&lPM%)rN;IOYC_=z1tg#@KbehXEVP~^@q4E+w)RW z&9Erlxa(r|b-g;zye_*U!YGQb%5Kz4!(B)9(!(#K(J1oL#T_2kc%#YuS~g3xZQT1O z)XS#sJby^eTFEJ$n{YRw!e?B8y*t7#z~~drOqO1b&7L1ObKExvyP?}gX3sx;>$<-p z4c`Xi6R2DT<9DuHFgyju`dpqFMw57KgBkq26gg>d5&TC;*ZztL|CjE%d>X8hTnd<< SbXMBdZ#Lkz>dj`y$J{RpgR*e| diff --git a/lib/libft/_obj/ft_strlcat.o b/lib/libft/_obj/ft_strlcat.o deleted file mode 100644 index e7aff812ccdec6eaa3ad575fbe2530743313a67f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 896 zcma)5Jxe1|6n$f246Zs6Eg}e;Vp|KhQnZM;4_;wlkpyg(w;>x*SU=DS20@7Ku4GIj z;t#OgpI|8p&U8*WuuYl;rw}ZIh4I{ZFL6W!FWh*JmdOCnG0bGAXTc)l#v_^L#1)oOhy+5kAt=wK%JFV+2x`Hr6(a zB}-P;cUISbNV)JO+Rtd7j4rl%l$Iq3(k)b;P0I3$T;3|Kl~qm3m-@1LD62=(;OX3r zN*@?o(XH_KjAt4ij+y-|0VkuSRR6AZY~oBI$2|KAj~dPDwbAms;)1aM3w!Tg*p*vh z7n;K1J`IWnzZH#~Uz<%b^Y@6V_@bBg2%G!CzjnI~u&2TI0DCXMUKi{saD#hdhBwWF zVa3)IG46w_6&zE+;VyAaUVzCJGdaJ`9rM??!g|2EXf(xs5K5SK&6CS|!8zj2U&H*< z3s^9ru%z2P8cpH~p(+u}x%Du0yOP}Cl=Mds*YPA>nihqk5VyWvfl-5ITNFenxQU0DVvr^_k_AFxiKCk!`VT>W zz*Pi+Eu)<~XA?L<;8I*@_s+c0$q>45=AHX-&bu?rd-uENBSe@W@Bp|0H6#H5#3En= z^D&X+y#_z+96SjEeK8nQ<9XHMRvuC!p_8HAf$4LA_SVyCH0G^Vm#`usS3 z#MthRvoCU=059q;YnLD_#9L4q24nFgOJt*|xK(59_kJr}6tpGaW4{}grU*&eEj-r& z3jk9lO%g8v124ro<$FZnlpzN_*#|fSwftIV`CmLtwNI)QI#kQGsTOY0H$_JwEf!it zDm?);FkgG2)jge7VdDA=FQc0uWu++<=aE;HHnyc_zgX;&p!84=mUGRD(tH%8TMtYa ztB$dXUj#)56=jp^)MHv|if-KZ`+d7xcZ;Lm(#@RZ+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%m;n{P0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjAa64fXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zFw# z%29yQ0!$FM6aZuUrh)*j@%uR)e#mA$%F9NF60ZJP{&4Y3oxEUBSU~CX= z1jG_R47Q7(i-8S@K>%baNW22-jt(Hr1LOnsGXwxJG63m?x)oWND0Zkv=Tnc)+8@VV zzkt+xbi4lWNcR2GV8g+{-@*qJ>303ne1Ngj^~=i#|Ns97@?sAo8w`yH4C_UpiWsYc z7#J%A7zKFPIVJ#AsQ|@gfVcx_7zn`Pk-?EqppD6ymkr5qpmH{l!TiXk$ETIV7nc;} Iq~J8~KHA@BFR&-?3pb9a~j|2>Qm8KZ;)mVlkH zlZFAWVDDK!fwazDYmPK#5*yEDNa+@8Zr|_gto=DV(2@5|J3Nnf>5LHJ$6}u;f|U8K z%C?htcJ;r&8gxTyI| z&(o4#5N$?2^IO;qtaq0=K}i^cFXgy}J$Ro*9BDB6X$=+!_p%Kw8ZUUp&k1!ay!!>A z>TRKRTf(omTU@W~z_$ahVW@^`islUob=gY@WrxD6hh!e6P$w?z4%go~EPOlkR|ECu zcfz6zJKzLj?OtsEgGJ^6|6zn$emxNWYTM5R>aThJ?oIa!GK9>itEJj%QZeYlwE5Eoqxu40UtNeW7ew>mCLQ-~) z=Q1D&7`#gyCtd&sz7*?0zQ;VA5^$I&I{;_kEZ@~x{#PEQ>N{17CROtWRipZotl`|! zeYvQSn%og9D+5Z)MSZ}li@<3^HpM%C`IFoTwP;(c;A&7btfF}N0M)wO27|iXxe~;R z2L#=Hd$j2vh?~;FtGcbBTPaM$^8oKt4}K0+WfNu2mN9G@(9)@=4*^2Gy9r4{)(#$F z(h>Zg{Q5o9TqB(A5}_ao(xlIS0jfEu&jR!wI`{kbJtJ!Ysp?vv@;bah?nPtK>CTc0 MJ5h3(csh&HZ_K@goB#j- diff --git a/lib/libft/_obj/ft_strncpy.o b/lib/libft/_obj/ft_strncpy.o deleted file mode 100644 index 5585d2949e3d3408be65950d47133c1d1e310efb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 728 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%xB(Tv0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZj8zI{fXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zElV z%29yQ0Zb6LYyi?wrvh0B5FekK5ua9+n41a_i;qWj-wdcy2PjRv)Qz6fA+>0Glm%+ zzzA?b$sB-q3M^3lpK$cv-zz*BfqW^HGIK@K&;5E;yj%TU2bmf1qglcjVWlufqSVIj z&ffZlsS5cI@AI2VEiXm)i`r*SH&-wS&GH!!y)_i&E0x<;Tl?!fIlrsapYxq-QCf@k zv|r%ykg@F`r}ZW91Q^Kp0~P})=uqlk=sA91O`wLJtpL#=tv)u|zE_@=*0r>bJZTj= z(#p1FU3jGh#;dcCqv-HPynMrWWrFG}(Ir=R9><|@sECp#buClE$cC(Aun6HQ)8-MI_v4%lEWCSUc4SbaoxbpZomW7sx7{aVX3k3};)aLQ-ca+F>z zu3)>Be!ow*g`ZtojN>IGeUb+oXK>4Bfp4I4+;LLr7YB8B?Hf2@=+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%cmWl^0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjMWZhfXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zElW z%29yQ2}}^T901Z#rvh0B5FekK5ua9+n41a_i;qWj-wLQw2PoYDH4n;V;AUXRfU!Ze z5fDoNG1xACE(SIr1_6+zAn_AWciaHd0zf`cKSKZzBLk3Ls9TYRiDHL(bUyXyto_kh z`o-h8D>zn;yM6#^_2_o};gRh7fq$O}NAoWR{uT=~!S2#84*dK6S^na0H4DE^+WRk#!lA{FE{`H|G(Syiwy%-bwF!g#2yA&2nNu2#qf>@RGzUah=H*}fKh;l zonrz}l?qT?28bRhl0cJ6nqUzEm9#a} z*>vN7=+33CN=u8Am5y%A4;Uc>3fUQLb^OlUJFT?{9&+BVZ_Z5K|M>c=k1^u}g8+Af z-;gm32Av0|$o~gTcd0~E*Tg<%GGdxbBxO0fSXQ?3$NA*=p&whX^&FZ6{UeMo0GGpnL;-9kK*fS zTsf6yo}Q;&c8ak$6@_j>o&!g1=1JBICZeSj&jAO1Yy;vdH2T?nFcI~{O!Y^AQo(=F zgs?x0+LyGjt8HOdTEgMbyb0Z0O9-dZGB>}sXi%-g%;mE%C?$GmF%+T>?qOt8Tx%#WSnY7Xwq*#b6JY_mhNx8=fc;3VYX~djzwJ&im-~pQCmH3Q z`Qm!)+1miEo-NZ{OX67@PQ|ys)m+1_`oelwA4~+hYJUS8IzfV3UEa|HJEFFmp4u^o zmMOsKzUg{(54Ua8ZI@DjLoeOjc+sssw~udj@5la4gLZnw(1+X3ytq|T!&0CE929Ngs#Q*>R diff --git a/lib/libft/_obj/ft_substr.o b/lib/libft/_obj/ft_substr.o deleted file mode 100644 index eebbca787844ea7acac90e1fd8f711f6ba666ec2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 912 zcmaJ=&ubb%6rMHKNE5Rj0!g3;4>=S{F6|{?4_lgnIaCNiAr~2pHCRv+%t}H*2$7af z_R>Emx3siWZ{1VK!NXnx8n$3>(nIX`c4tu!?SpULulc_BV0M50`Sq~Kn6bcc0CC`o zf(!uL0JbUrhwbX#t@cq4O-3MHGAZrKnH|Pqp6C1dX&y!QIv_pTAZPTw`&O8I6d>X9GmB%^%~BDBjk4!vq1tJ~PGQk93zQoRyZq@3R`tx1+9 z476UvUt+8p#pIs@>p(y=AF~8NMnkD?VGr8p7)J&ke6|bB8gU78i_Tv7Ph1e{PIP=r zsP;&;e4z@SaN45*Q55ex+|Tm9d67gay4<6(!~4&;ufC|SBAfHf&dPjE<)FYl@rYIu zsvAfN#e1UD?lJR2ippI+hGWAbB@TK{&ifHhQp2SNYOcs~sJ{ra5pK9n!B;oJ_-$Rj zOlp>EeF|bXn#bMY^<**$+KP|i$D;GyDt;r`sp;>BcAT?Sof+@K($<3~8O+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%m;n{P0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjAa64fXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zFw# z%29yQ0!$FM6aZuUrh)*j@%uR)e#mA$%F9NF60ZJP{&4Y3oxEUBSU~CX= z1jG_R47Q7(i-8S@K>%baNW22-jt(F#0OSMpGXwxJG63m?x)oWND0Zkv=hM#GAI-Ht z9Qk`d76MsO{QZ1DR=4Yq<^u|yu76&#L3luBx9gwS!^j3h;{n5Z5vU@@svri&3IRp| z9(IliKvgP0aTy@)_zwZFcw}(o6KG>{<^@>=13=|$AcOglO^;72i7&~|$uCbW0;vN4 Db)`kr diff --git a/lib/libft/_obj/ft_toupper.o b/lib/libft/_obj/ft_toupper.o deleted file mode 100644 index 137ae034299c5876940f6875451f8bafc47236ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmX^A>+L^w1_nlE1|R{%EI_;i#83cYAdm!N3lJX%m;n{P0aXLz1I=UrVUW2X5FcNX zT2TUFL---C5g`aZjAa64fXoBA1rAsk8sKaoBR)PkKer$;xg@?cuRJp^B|hHA1zFw# z%29yQ0!$FM6aZuUrh)*j@%uR)e#mA$%F9NF60ZJP{&4Y3oxEUBSU~CX= z1jG_R47Q7(i-8S@K>%baNW22-jt(F#0OSMpGXwxJG63m?x)oWND0Zkv=hM#GAI-Ht z68U>T76MsS{QZ1DR=4Yq<`)W`u76&#L3luBx9gwS!^j3h;{n5Z5vU@@svri&3IRp| z9(IliKvgP0aTy@)_zwZFcw}(o6KG>{<^@>=13=|$AcOglO^;72i7&}7EhtDW0;vN4 DyER5X diff --git a/lib/libft/_obj/get_next_line.o b/lib/libft/_obj/get_next_line.o deleted file mode 100644 index d5cbdc532f7dfb1146d127d84f64887441028d42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1860 zcmb7FUuaWj6hGH=wfLtu&OIpjCmVuJ$Y_OOnF=lTgAZvyq=7MzuQ9!yvKl2#wr&sz z+;#MNiTJX;>|s9oxJQ{FQpIdfQxs9@L!cQXpm3EkQc<(t`R*6XYKj z$+q5-u9`Yrk8|&QK(v{ieN<#K#d`^trR= zQ|X+_XTCd=nO16Iyd#xbeN7o-1cS2 zFfG*warh!|Z&;oP>erghCYP`mQfx1*%F^c$=nsB``U+1}-9nY@(pFf8|COa9?ANY( z43c(U+yV*NwPUC!J<+HS!B7Wts}08bE*uE)6KGN2Axp`ct|NU><0N21y0>B{Z`!+y zoMYx6@(M4dmk*?uta*v5^b3KXubS>E(ofc;{{%(wd9M6^d5Lirg$F3`~5^U zlBl?AnDi4=##MoRU4H7WZLk-(`Oc#CYcQ0>GES^&`H-mCr5I#RLLEQ3>^*RATV8(I zx+~LbxBEt@ejkJTq8bquw}Csp55sHH9U=S2Z@3U<@bf|EVjsGNhgj@hc(GVa)!v3b z(w58cV}Bpx&IeDXRC;{fh9L&=pra9Hn=@Ouy+J1SfAIL(^Ia`tvcSF3XY7^Ok?q zeAV+^(d`N!8PWRT1X=S@E4pd@z$H}K1N#o}pD)n~$lOmfHW>YB-OQsJa#>tYJ%Vkw+dist2wUbjB{1d6!GZ{zCIvG-3rq7Vr UV0bGjQ{`u diff --git a/lib/libft/_obj/get_next_line_utils.o b/lib/libft/_obj/get_next_line_utils.o deleted file mode 100644 index 0eecbe78a49a5f7297254d9da19e46992848f8f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1384 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 diff --git a/src/builtins_part_one.c b/src/builtins_part_one.c index 7cbcdeb..629cc87 100644 --- a/src/builtins_part_one.c +++ b/src/builtins_part_one.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/09 17:01:16 by chuhlig #+# #+# */ -/* Updated: 2025/01/18 18:33:33 by chuhlig ### ########.fr */ +/* Updated: 2025/01/20 17:05:19 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,15 @@ int unset(char **av, t_env **env) prev = NULL; while (current) { - if (ft_strcmp(current->name, av[i]) == 0) + if ((!ft_strcmp(current->name, av[i])) && (!ft_strcmp("?", av[1]))) + { + if (prev) + prev->next = current->next; + else + *env = current->next; + free_env_node(current); + break ; + } { if (prev) prev->next = current->next; @@ -91,7 +99,7 @@ int is_valid_identifier(char *str) return (1); } -int export(char **av, t_env **env) +int export(char **av, t_env **env, int f) { char *equal_sign; int i; @@ -107,6 +115,7 @@ int export(char **av, t_env **env) write(1, "Minishell $ export: not a valid identifier\n", 43); if (equal_sign) *equal_sign = '='; + f++; continue ; } if (equal_sign) @@ -115,5 +124,5 @@ int export(char **av, t_env **env) export_export(av[i], env); } } - return (0); + return (check_flag(f)); } diff --git a/src/builtins_part_three.c b/src/builtins_part_three.c index 7c73e95..5f6fa31 100644 --- a/src/builtins_part_three.c +++ b/src/builtins_part_three.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/01/18 18:29:24 by chuhlig #+# #+# */ -/* Updated: 2025/01/18 18:34:29 by chuhlig ### ########.fr */ +/* Updated: 2025/01/20 17:08:17 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,8 +22,10 @@ int builtin_exit(char **av, t_env **env) { int exit_status; - if (av[1]) + if (av[1] && !av[2]) exit_status = ft_atoi(av[1]); + else if (av[2]) + exit_status = 1; else exit_status = 0; exit_shell(env, exit_status); @@ -74,3 +76,10 @@ int echo(char **av) write(1, "\n", 1); return (0); } + +int check_flag(int f) +{ + if (f) + return (1); + return (0); +} diff --git a/src/env.c b/src/env.c index 1972909..cc9cfae 100644 --- a/src/env.c +++ b/src/env.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/17 14:31:07 by chuhlig #+# #+# */ -/* Updated: 2025/01/14 14:44:34 by chuhlig ### ########.fr */ +/* Updated: 2025/01/20 15:05:49 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -55,7 +55,7 @@ char *env_get(t_env *env, char *name) { while (env != NULL) { - if (!ft_strncmp(env->name, name, ft_strlen(name))) + if (!ft_strncmp(env->name, name, ft_strlen(env->name))) return (env->value); env = env->next; } diff --git a/src/execute_cmd.c b/src/execute_cmd.c index e2b9d66..4b84e12 100644 --- a/src/execute_cmd.c +++ b/src/execute_cmd.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/12/17 19:21:35 by chuhlig #+# #+# */ -/* Updated: 2025/01/19 19:15:46 by chuhlig ### ########.fr */ +/* Updated: 2025/01/20 15:43:41 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,7 +28,7 @@ int is_builtin(char *cmd) int execute_builtin(char **args, t_env **env) { if (ft_strcmp(args[0], "export") == 0) - return (export(args, env)); + return (export(args, env, ft_atoi("0"))); else if (ft_strcmp(args[0], "unset") == 0) return (unset(args, env)); else if (ft_strcmp(args[0], "cd") == 0) diff --git a/src/handle_redir.c b/src/handle_redir.c index 29bba92..e8a1010 100644 --- a/src/handle_redir.c +++ b/src/handle_redir.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/01/18 18:34:51 by chuhlig #+# #+# */ -/* Updated: 2025/01/18 18:47:31 by chuhlig ### ########.fr */ +/* Updated: 2025/01/20 14:59:38 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,7 @@ int handle_input_redirection(t_redirection *redir) } else if (redir->type == INPUT_LIMITER) { - fd = open_file("/tmp/heredoc_tmp", O_WRONLY | O_CREAT | O_TRUNC, 0644); + fd = open_file("/tmp/heredoc_tmp", O_WRONLY | O_TRUNC, 0644); if (fd < 0) return (-1); write(fd, redir->specifier, ft_strlen(redir->specifier)); @@ -46,7 +46,7 @@ int handle_output_redirection(t_redirection *redir) if (redir->type == OUTPUT_OVERRIDE) { - fd = open_file(redir->specifier, O_WRONLY | O_CREAT | O_TRUNC, 0644); + fd = open_file(redir->specifier, O_WRONLY | O_TRUNC, 0644); if (fd < 0) return (-1); dup2(fd, STDOUT_FILENO); @@ -54,7 +54,7 @@ int handle_output_redirection(t_redirection *redir) } else if (redir->type == OUTPUT_APPEND) { - fd = open_file(redir->specifier, O_WRONLY | O_CREAT | O_APPEND, 0644); + fd = open_file(redir->specifier, O_WRONLY | O_APPEND, 0644); if (fd < 0) return (-1); dup2(fd, STDOUT_FILENO); -- 2.47.2