aboutsummaryrefslogtreecommitdiff
path: root/src/builtin
diff options
context:
space:
mode:
Diffstat (limited to 'src/builtin')
-rw-r--r--src/builtin/cd.c11
-rw-r--r--src/builtin/echo.c6
-rw-r--r--src/builtin/export.c6
-rw-r--r--src/builtin/unset.c5
4 files changed, 15 insertions, 13 deletions
diff --git a/src/builtin/cd.c b/src/builtin/cd.c
index 66f1f81..ed0b3cc 100644
--- a/src/builtin/cd.c
+++ b/src/builtin/cd.c
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/01 17:10:20 by charles #+# #+# */
-/* Updated: 2020/04/01 22:15:49 by charles ### ########.fr */
+/* Updated: 2020/04/03 12:11:52 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -19,14 +19,11 @@
int builtin_cd(char **argv, t_env env)
{
- char *path;
-
- path = argv[1];
+ //change $PWD
+ (void)env;
if (argv[1] == NULL)
- path = env_search(env, "HOME");
- if (path == NULL)
return (1);
- if (chdir(path) == -1)
+ if (chdir(argv[1]) == -1)
return (1);
return (0);
}
diff --git a/src/builtin/echo.c b/src/builtin/echo.c
index 9b7a8f6..886c2ca 100644
--- a/src/builtin/echo.c
+++ b/src/builtin/echo.c
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/01 17:10:47 by charles #+# #+# */
-/* Updated: 2020/04/01 17:10:48 by charles ### ########.fr */
+/* Updated: 2020/04/02 11:18:16 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -22,8 +22,8 @@ int builtin_echo(char **argv, t_env env)
bool newline;
(void)env;
- newline = ft_strcmp(argv[1], "-n") == 0;
- if (newline)
+ newline = !ft_strcmp(argv[1], "-n") == 0;
+ if (!newline)
argv++;
while (*++argv != NULL)
{
diff --git a/src/builtin/export.c b/src/builtin/export.c
index 650a421..1d362b3 100644
--- a/src/builtin/export.c
+++ b/src/builtin/export.c
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/01 17:11:34 by charles #+# #+# */
-/* Updated: 2020/04/01 22:37:47 by charles ### ########.fr */
+/* Updated: 2020/04/03 12:11:38 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -21,11 +21,13 @@ int builtin_export(char **argv, t_env env)
{
char *tmp;
+ // modify existing
+ // set with no string without '='
if (ft_strchr(argv[1], '=') == NULL)
return (1);
if ((tmp = ft_strdup(argv[1])) == NULL)
return (2);
- if (ft_vecpush(env, tmp) == NULL)
+ if (ft_vecinsert(env, env->size - 1, tmp) == NULL)
return (2); // internal error code
return (0);
}
diff --git a/src/builtin/unset.c b/src/builtin/unset.c
index ffcf60f..146b755 100644
--- a/src/builtin/unset.c
+++ b/src/builtin/unset.c
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/01 17:10:51 by charles #+# #+# */
-/* Updated: 2020/04/01 23:05:33 by charles ### ########.fr */
+/* Updated: 2020/04/02 11:17:03 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -25,10 +25,13 @@ int builtin_unset(char **argv, t_env env)
return (1);
i = 0;
while (i < env->size)
+ {
if (ft_strncmp(env->data[i], argv[1], ft_strlen(argv[1])) == 0)
{
ft_vecremove(env, i, free);
return (0);
}
+ i++;
+ }
return (1);
}