diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-03-04 17:37:44 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-03-04 17:37:44 +0100 |
| commit | 9b3753960b986d0dcf84369846fd7ac74d2baef6 (patch) | |
| tree | d2fcda5ffb3e588b9ffd4740deac7a68217cab4c /src | |
| parent | e0ba9a82e11d9f23cf4eaed267b25021f98ae9f4 (diff) | |
| download | minishell-9b3753960b986d0dcf84369846fd7ac74d2baef6.tar.gz minishell-9b3753960b986d0dcf84369846fd7ac74d2baef6.tar.bz2 minishell-9b3753960b986d0dcf84369846fd7ac74d2baef6.zip | |
Added builtins draft
Diffstat (limited to 'src')
| -rw-r--r-- | src/builtin/cd.c | 15 | ||||
| -rw-r--r-- | src/builtin/echo.c | 16 | ||||
| -rw-r--r-- | src/builtin/env.c | 2 | ||||
| -rw-r--r-- | src/builtin/export.c | 6 | ||||
| -rw-r--r-- | src/builtin/pwd.c | 13 | ||||
| -rw-r--r-- | src/builtin/unset.c | 9 | ||||
| -rw-r--r-- | src/main.c | 5 |
7 files changed, 64 insertions, 2 deletions
diff --git a/src/builtin/cd.c b/src/builtin/cd.c index e69de29..c67cd23 100644 --- a/src/builtin/cd.c +++ b/src/builtin/cd.c @@ -0,0 +1,15 @@ +#include "minishell.h" + +int ms_cd(t_state *state, char **argv) +{ + char *path; + + path = argv[1]; + if (argv[1] == NULL) + path = ft_htget(state->environment, "HOME"); + if (path == NULL) + return (1); + if (chdir(path) == -1) + return (1); + return (0); +} diff --git a/src/builtin/echo.c b/src/builtin/echo.c index e69de29..b8d2d43 100644 --- a/src/builtin/echo.c +++ b/src/builtin/echo.c @@ -0,0 +1,16 @@ +#include "minishell.h" + +int ms_echo(char **argv) +{ + bool newline; + + newline = ft_strcmp(argv[1], "-n") == 0; + while (*++argv != NULL) + { + ft_putstr(*argv); + ft_putchar(' '); + } + if (newline) + ft_putchar('\n'); + return (0); +} diff --git a/src/builtin/env.c b/src/builtin/env.c index ada0122..24e474f 100644 --- a/src/builtin/env.c +++ b/src/builtin/env.c @@ -8,7 +8,7 @@ void st_print_env_variable(t_ftht_content *content) ft_putchar('\n'); } -int ms_env(t_state *state) +int ms_env(t_state *state) { ft_htiter(state->environment, st_print_env_variable); return (0); diff --git a/src/builtin/export.c b/src/builtin/export.c index e69de29..e284270 100644 --- a/src/builtin/export.c +++ b/src/builtin/export.c @@ -0,0 +1,6 @@ +#include "minishell.h" + +int ms_export(t_state *state, char **argv) +{ + return (0); +} diff --git a/src/builtin/pwd.c b/src/builtin/pwd.c index e69de29..9825bee 100644 --- a/src/builtin/pwd.c +++ b/src/builtin/pwd.c @@ -0,0 +1,13 @@ +#include "minishell.h" + +int ms_pwd(t_state *state) +{ + char buf[PATH_MAX]; + + (void)state; + ft_bzero(buf, PATH_MAX); + if (getcwd(buf, PATH_MAX) == NULL) + return (1); + ft_putendl(buf); + return (0); +} diff --git a/src/builtin/unset.c b/src/builtin/unset.c index e69de29..ea24a63 100644 --- a/src/builtin/unset.c +++ b/src/builtin/unset.c @@ -0,0 +1,9 @@ +#include "minishell.h" + +int ms_unset(t_state *state, char **argv) +{ + if (argv[1] == NULL) + return (1); + ft_htdelone(state->environment, argv[1], ms_ht_del_str_entry); + return (0); +} @@ -22,7 +22,10 @@ int main(int argc, char **argv, const char **envp) (void)argv; if (ms_state_init(&state, envp) == -1) return (1); - ms_env(&state); + /* ms_env(&state); */ + /* ms_pwd(&state); */ + /* ms_cd(&state, NULL); */ + /* ms_pwd(&state); */ /* while ((ret = ft_next_line(STDIN_FILENO, &line)) == 1) */ /* { */ |
