From ea073dceafff3d951914af3b0d5ace580eaa19a6 Mon Sep 17 00:00:00 2001 From: gwojda Date: Sat, 18 Feb 2017 14:42:43 +0100 Subject: [PATCH] correction segv edition de ligne + ajout table de hash --- 42sh/Makefile | 5 + 42sh/includes/hash.h | 33 +++++ 42sh/includes/minishell.h | 3 +- 42sh/src/builtin/builtin_exit.c | 3 +- 42sh/src/exec/launch_process.c | 4 +- 42sh/src/exec/process_setexec.c | 7 +- 42sh/src/hash_table/ft_add_hash.c | 28 ++++ 42sh/src/hash_table/hash.c | 23 +++ 42sh/src/hash_table/hash_free.c | 34 +++++ 42sh/src/hash_table/hash_str.c | 29 ++++ 42sh/src/hash_table/is_hash.c | 34 +++++ 42sh/src/line-editing/queue.c | 4 +- 42sh/test | 236 ++++++++++++++++++++++++++++++ 42sh/testmake | 15 ++ 14 files changed, 449 insertions(+), 9 deletions(-) create mode 100644 42sh/includes/hash.h create mode 100644 42sh/src/hash_table/ft_add_hash.c create mode 100644 42sh/src/hash_table/hash.c create mode 100644 42sh/src/hash_table/hash_free.c create mode 100644 42sh/src/hash_table/hash_str.c create mode 100644 42sh/src/hash_table/is_hash.c create mode 100644 42sh/test create mode 100644 42sh/testmake diff --git a/42sh/Makefile b/42sh/Makefile index a1ff1d98..fea79a42 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -110,6 +110,11 @@ glob/lib_perso/ft_strsubf.c\ glob/lib_perso/ft_tabdel.c\ glob/lib_perso/ft_tablen.c\ glob/match_pattern.c\ +hash_table/ft_add_hash.c\ +hash_table/hash.c\ +hash_table/hash_free.c\ +hash_table/hash_str.c\ +hash_table/is_hash.c\ history/add_str_in_history.c\ history/history.c\ history/history_parsing.c\ diff --git a/42sh/includes/hash.h b/42sh/includes/hash.h new file mode 100644 index 00000000..fa43f929 --- /dev/null +++ b/42sh/includes/hash.h @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* hash.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 11:10:14 by gwojda #+# #+# */ +/* Updated: 2017/02/18 14:18:06 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef HASH_H +# define HASH_H + +# define MAX_HASH 200 + +extern t_list *g_hash[MAX_HASH]; + +typedef struct s_hash +{ + char *key; + char *path; +} t_hash; + +int ft_add_hash(t_process *p); +int ft_hash(t_process *p); +int ft_is_hash(t_process *p); +int ft_hash_str(char *str); + +void ft_free_hash_table(void); + +#endif diff --git a/42sh/includes/minishell.h b/42sh/includes/minishell.h index 5ba7c179..c034720b 100644 --- a/42sh/includes/minishell.h +++ b/42sh/includes/minishell.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:07:44 by jhalford #+# #+# */ -/* Updated: 2017/02/15 14:20:59 by gwojda ### ########.fr */ +/* Updated: 2017/02/18 11:10:50 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,6 +24,7 @@ # include "job_control.h" # include "glob.h" # include "completion.h" +# include "hash.h" # include # include diff --git a/42sh/src/builtin/builtin_exit.c b/42sh/src/builtin/builtin_exit.c index 42539ac2..fd884465 100644 --- a/42sh/src/builtin/builtin_exit.c +++ b/42sh/src/builtin/builtin_exit.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:28:41 by jhalford #+# #+# */ -/* Updated: 2017/02/16 12:44:44 by gwojda ### ########.fr */ +/* Updated: 2017/02/18 14:17:28 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -37,6 +37,7 @@ int builtin_exit(const char *path, char *const av[], char *const envp[]) status = 0; } ft_save_termios(-1); + ft_free_hash_table(); exit(status); return (0); } diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index 055109e0..e3e1f757 100644 --- a/42sh/src/exec/launch_process.c +++ b/42sh/src/exec/launch_process.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* launch_process.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 14:20:45 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:54:12 by jhalford ### ########.fr */ +/* Updated: 2017/02/18 13:27:16 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/process_setexec.c b/42sh/src/exec/process_setexec.c index be358b0e..e5d0860d 100644 --- a/42sh/src/exec/process_setexec.c +++ b/42sh/src/exec/process_setexec.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* process_setexec.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 17:07:10 by jhalford #+# #+# */ -/* Updated: 2017/02/07 12:07:43 by jhalford ### ########.fr */ +/* Updated: 2017/02/18 13:24:16 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,8 +28,7 @@ int process_setexec(t_type type, t_process *p) p->attributes |= PROCESS_SCRIPT; p->path = ft_strdup(p->av[0]); } - else if ((p->path = ft_findexec(ft_getenv( - data_singleton()->env, "PATH"), p->av[0]))) + else if (ft_hash(p)) { p->execf = &execve; p->attributes |= PROCESS_BINARY; diff --git a/42sh/src/hash_table/ft_add_hash.c b/42sh/src/hash_table/ft_add_hash.c new file mode 100644 index 00000000..ba18cc91 --- /dev/null +++ b/42sh/src/hash_table/ft_add_hash.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_add_hash.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 11:20:11 by gwojda #+# #+# */ +/* Updated: 2017/02/18 14:38:21 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +# include "minishell.h" + +int ft_add_hash(t_process *p) +{ + int id; + t_hash hash; + + if (!(hash.path = ft_findexec( + ft_getenv(data_singleton()->env, "PATH"), p->av[0]))) + return (0); + hash.key = ft_strdup(p->av[0]); + id = ft_hash_str(p->av[0]); + ft_lsteadd(&(g_hash[id]), ft_lstnew(&hash, sizeof(t_hash))); + p->path = ft_strdup(hash.path); + return (1); +} diff --git a/42sh/src/hash_table/hash.c b/42sh/src/hash_table/hash.c new file mode 100644 index 00000000..fa3604fd --- /dev/null +++ b/42sh/src/hash_table/hash.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* hash.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 11:06:19 by gwojda #+# #+# */ +/* Updated: 2017/02/18 14:16:35 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +t_list *g_hash[MAX_HASH] = {NULL}; + +int ft_hash(t_process *p) +{ + if (!ft_is_hash(p)) + if (!ft_add_hash(p)) + return (0); + return (1); +} diff --git a/42sh/src/hash_table/hash_free.c b/42sh/src/hash_table/hash_free.c new file mode 100644 index 00000000..8406c5c3 --- /dev/null +++ b/42sh/src/hash_table/hash_free.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* hash_free.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 14:12:22 by gwojda #+# #+# */ +/* Updated: 2017/02/18 14:20:20 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_hash_free(void *ptr, size_t size) +{ + (void)size; + free(((t_hash *)ptr)->key); + free(((t_hash *)ptr)->path); + free(ptr); +} + +void ft_free_hash_table(void) +{ + int i; + + i = 0; + while (i < MAX_HASH) + { + if (g_hash[i]) + ft_lstdel(&g_hash[i], &ft_hash_free); + ++i; + } +} diff --git a/42sh/src/hash_table/hash_str.c b/42sh/src/hash_table/hash_str.c new file mode 100644 index 00000000..98113a76 --- /dev/null +++ b/42sh/src/hash_table/hash_str.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* hash_str.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 11:32:18 by gwojda #+# #+# */ +/* Updated: 2017/02/18 14:38:05 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +int ft_hash_str(char *str) +{ + int i; + int id; + + i = 0; + id = 0; + while (str[i]) + { + id += str[i] * ft_pow(10, i); + id = id % MAX_HASH; + ++i; + } + return (id); +} diff --git a/42sh/src/hash_table/is_hash.c b/42sh/src/hash_table/is_hash.c new file mode 100644 index 00000000..67fad4bd --- /dev/null +++ b/42sh/src/hash_table/is_hash.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* is_hash.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 11:08:40 by gwojda #+# #+# */ +/* Updated: 2017/02/18 13:41:48 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +int ft_is_hash(t_process *p) +{ + t_list *list; + int id; + + id = ft_hash_str(p->av[0]); + if (!g_hash[id]) + return (0); + list = g_hash[id]; + while (list) + { + if (!ft_strcmp(((t_hash *)list->content)->key, p->av[0])) + { + p->path = ft_strdup(((t_hash *)list->content)->path); + return (1); + } + list = list->next; + } + return (0); +} diff --git a/42sh/src/line-editing/queue.c b/42sh/src/line-editing/queue.c index dded6bd6..c97e74fb 100644 --- a/42sh/src/line-editing/queue.c +++ b/42sh/src/line-editing/queue.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:52:57 by gwojda #+# #+# */ -/* Updated: 2017/02/14 11:18:22 by gwojda ### ########.fr */ +/* Updated: 2017/02/18 13:58:29 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -63,6 +63,8 @@ void ft_read_it(int input, size_t *pos, char **str) return ; ft_read_it_2(input, t); ft_read_it_3(str, t, pos, &j); + if (!*str) + return ; *pos = pos_tmp; ft_current_str((*str), *pos); ft_get_next_str((*str), pos); diff --git a/42sh/test b/42sh/test new file mode 100644 index 00000000..ab786912 --- /dev/null +++ b/42sh/test @@ -0,0 +1,236 @@ + shell_init.c 28 interactive shell settings + main.c 88 start of shell JOBC is ON + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + shell_exit.c 17 shell_exit() diff --git a/42sh/testmake b/42sh/testmake new file mode 100644 index 00000000..449a84eb --- /dev/null +++ b/42sh/testmake @@ -0,0 +1,15 @@ + shell_init.c 28 interactive shell settings + main.c 88 start of shell JOBC is ON + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [env] stack=[0] state=[4] + token_print.c 29 13:[env] + shell_exit.c 17 shell_exit()