aboutsummaryrefslogtreecommitdiff
path: root/src/builtins_part_one.c
diff options
context:
space:
mode:
authorDominik Kaiser2025-01-14 18:33:45 +0100
committerGitHub2025-01-14 18:33:45 +0100
commit430521cc47e9f47fbd1005fade9251c31d9f3f18 (patch)
tree14d1f541418576d565f42f0d70faf1369fc17d1b /src/builtins_part_one.c
parentda80405b345b58f9e1bd83039b1df3771b5ca193 (diff)
parentd4f3525a01f2566afed0da9209cb1c64bf188776 (diff)
downloadminishell-430521cc47e9f47fbd1005fade9251c31d9f3f18.tar.gz
minishell-430521cc47e9f47fbd1005fade9251c31d9f3f18.zip
Merge pull request #28 from dpu-kaiser/uwu
Some changes
Diffstat (limited to 'src/builtins_part_one.c')
-rw-r--r--src/builtins_part_one.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/builtins_part_one.c b/src/builtins_part_one.c
index d8bdaa9..9f50157 100644
--- a/src/builtins_part_one.c
+++ b/src/builtins_part_one.c
@@ -11,6 +11,7 @@
/* ************************************************************************** */
#include "env.h"
+#include <stdio.h>
int echo(char **av)
{
@@ -22,7 +23,7 @@ int echo(char **av)
if (av[1] == NULL || av[1][0] == '\0')
{
write(1, "\n", 1);
- return (1);
+ return (0);
}
if (ft_strncmp(av[1], "-n", 3) == 0)
{
@@ -68,6 +69,8 @@ int unset(char **av, t_env **env)
i = 0;
while (av[++i])
{
+ if (ft_strchr(av[i], '?'))
+ return (1);
current = *env;
prev = NULL;
while (current)
@@ -113,6 +116,8 @@ int export(char **av, t_env **env)
{
tmp = ft_strchr(av[i], '=');
*tmp = '\0';
+ if (ft_strchr(av[i], '?'))
+ return (1);
current = check_existing(*env, av[i]);
if (current)
free(current->value);
@@ -127,3 +132,19 @@ int export(char **av, t_env **env)
}
return (0);
}
+
+void set_return_code(int return_code, t_env **env)
+{
+ t_env *cur;
+
+ cur = check_existing(*env, "?");
+ if (cur)
+ free(cur->value);
+ else
+ {
+ cur = env_new(ft_strdup("?"));
+ cur->next = *env;
+ *env = cur;
+ }
+ cur->value = ft_itoa(return_code);
+}