From ad25d505b44b1550bead4ea407fb2ac3e1960be0 Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Thu, 19 Jan 2017 18:32:06 +0100 Subject: [PATCH 01/67] add some work --- 42sh/includes/btree.h | 54 ++++ 42sh/includes/color.h | 56 ++++ 42sh/includes/dlst.h | 35 +++ 42sh/includes/ft_printf.h | 81 ++++++ 42sh/includes/ft_readline.h | 275 ++++++------------ .../curs_single.c => includes/ft_xattr.h} | 29 +- .../curs_clear.c => includes/get_next_line.h} | 39 ++- 42sh/includes/libft.h | 162 +++++++++++ 42sh/includes/lst.h | 80 +++++ 42sh/includes/minishell.h | 4 +- .../rl_clear_function.c => includes/mytime.h} | 44 +-- 42sh/obj/ast_free.o | Bin 0 -> 3596 bytes 42sh/obj/builtin_bg.o | Bin 0 -> 5336 bytes 42sh/obj/builtin_cd.o | Bin 0 -> 4988 bytes 42sh/obj/builtin_echo.o | Bin 0 -> 2676 bytes 42sh/obj/builtin_env.o | Bin 0 -> 2348 bytes 42sh/obj/builtin_exit.o | Bin 0 -> 4544 bytes 42sh/obj/builtin_fg.o | Bin 0 -> 5276 bytes 42sh/obj/builtin_jobs.o | Bin 0 -> 4920 bytes 42sh/obj/builtin_setenv.o | Bin 0 -> 3296 bytes 42sh/obj/builtin_unsetenv.o | Bin 0 -> 2808 bytes 42sh/obj/command_getoutput.o | Bin 0 -> 6472 bytes 42sh/obj/copy_cut_paste.o | Bin 0 -> 5184 bytes 42sh/obj/data_exit.o | Bin 0 -> 5160 bytes 42sh/obj/data_init.o | Bin 0 -> 5844 bytes 42sh/obj/data_singleton.o | Bin 0 -> 5356 bytes 42sh/obj/do_job_notification.o | Bin 0 -> 4948 bytes 42sh/obj/exec_ampersand.o | Bin 0 -> 3116 bytes 42sh/obj/exec_and_if.o | Bin 0 -> 6652 bytes 42sh/obj/exec_command.o | Bin 0 -> 5844 bytes 42sh/obj/exec_dgreat.o | Bin 0 -> 3860 bytes 42sh/obj/exec_great.o | Bin 0 -> 3856 bytes 42sh/obj/exec_less.o | Bin 0 -> 3848 bytes 42sh/obj/exec_or_if.o | Bin 0 -> 6652 bytes 42sh/obj/exec_pipe.o | Bin 0 -> 6416 bytes 42sh/obj/exec_semi.o | Bin 0 -> 2912 bytes 42sh/obj/ft_exec.o | Bin 0 -> 4688 bytes 42sh/obj/ft_findexec.o | Bin 0 -> 4740 bytes 42sh/obj/ft_parse.o | Bin 0 -> 5264 bytes 42sh/obj/ft_post_tokenize.o | Bin 0 -> 3404 bytes 42sh/obj/ft_putast.o | Bin 0 -> 3896 bytes 42sh/obj/ft_putast2.o | Bin 0 -> 4376 bytes 42sh/obj/ft_split_whitespaces.o | Bin 0 -> 4200 bytes 42sh/obj/ft_tokenize.o | Bin 0 -> 4916 bytes 42sh/obj/get_lexer_state.o | Bin 0 -> 3088 bytes 42sh/obj/get_touch.o | Bin 0 -> 5468 bytes 42sh/obj/get_touch_toolz.o | Bin 0 -> 4408 bytes 42sh/obj/get_touch_toolz_2.o | Bin 0 -> 5556 bytes 42sh/obj/is_builtin.o | Bin 0 -> 4492 bytes 42sh/obj/job_addprocess.o | Bin 0 -> 5048 bytes 42sh/obj/job_cmp_id.o | Bin 0 -> 3760 bytes 42sh/obj/job_format.o | Bin 0 -> 4020 bytes 42sh/obj/job_format_head.o | Bin 0 -> 4172 bytes 42sh/obj/job_free.o | Bin 0 -> 3924 bytes 42sh/obj/job_getprocess.o | Bin 0 -> 4784 bytes 42sh/obj/job_getrank.o | Bin 0 -> 4388 bytes 42sh/obj/job_is_completed.o | Bin 0 -> 5280 bytes 42sh/obj/job_is_stopped.o | Bin 0 -> 4796 bytes 42sh/obj/job_kill_all.o | Bin 0 -> 4180 bytes 42sh/obj/job_notify_change.o | Bin 0 -> 4456 bytes 42sh/obj/job_notify_new.o | Bin 0 -> 4568 bytes 42sh/obj/job_remove.o | Bin 0 -> 4512 bytes 42sh/obj/job_update_id.o | Bin 0 -> 3956 bytes 42sh/obj/job_update_status.o | Bin 0 -> 2732 bytes 42sh/obj/job_wait.o | Bin 0 -> 3712 bytes 42sh/obj/launch_process.o | Bin 0 -> 6328 bytes 42sh/obj/lexer_backslash.o | Bin 0 -> 3540 bytes 42sh/obj/lexer_default.o | Bin 0 -> 4000 bytes 42sh/obj/lexer_delim.o | Bin 0 -> 3600 bytes 42sh/obj/lexer_dquote.o | Bin 0 -> 3724 bytes 42sh/obj/lexer_great.o | Bin 0 -> 3872 bytes 42sh/obj/lexer_greatand.o | Bin 0 -> 3776 bytes 42sh/obj/lexer_less.o | Bin 0 -> 3864 bytes 42sh/obj/lexer_lessand.o | Bin 0 -> 3776 bytes 42sh/obj/lexer_number.o | Bin 0 -> 4280 bytes 42sh/obj/lexer_quote.o | Bin 0 -> 3608 bytes 42sh/obj/lexer_sep.o | Bin 0 -> 4008 bytes 42sh/obj/lexer_special.o | Bin 0 -> 3920 bytes 42sh/obj/lexer_var.o | Bin 0 -> 3948 bytes 42sh/obj/lexer_word.o | Bin 0 -> 3916 bytes 42sh/obj/line_return_toolz.o | Bin 0 -> 5768 bytes 42sh/obj/list_toolz.o | Bin 0 -> 4000 bytes 42sh/obj/main.o | Bin 0 -> 5176 bytes 42sh/obj/mark_job_as_running.o | Bin 0 -> 4432 bytes 42sh/obj/move_to_line.o | Bin 0 -> 4976 bytes 42sh/obj/parse_dgreat.o | Bin 0 -> 4616 bytes 42sh/obj/parse_dless.o | Bin 0 -> 4540 bytes 42sh/obj/parse_great.o | Bin 0 -> 4616 bytes 42sh/obj/parse_greatand.o | Bin 0 -> 4508 bytes 42sh/obj/parse_less.o | Bin 0 -> 4604 bytes 42sh/obj/parse_lessand.o | Bin 0 -> 4508 bytes 42sh/obj/parse_separator.o | Bin 0 -> 4300 bytes 42sh/obj/parse_subshell.o | Bin 0 -> 4644 bytes 42sh/obj/parse_word.o | Bin 0 -> 4296 bytes 42sh/obj/print_and_del.o | Bin 0 -> 7520 bytes 42sh/obj/process_cmp_pid.o | Bin 0 -> 3152 bytes 42sh/obj/process_format.o | Bin 0 -> 5316 bytes 42sh/obj/process_free.o | Bin 0 -> 3528 bytes 42sh/obj/process_mark_status.o | Bin 0 -> 4280 bytes 42sh/obj/process_redirect.o | Bin 0 -> 3340 bytes 42sh/obj/process_reset.o | Bin 0 -> 5116 bytes 42sh/obj/process_setexec.o | Bin 0 -> 4128 bytes 42sh/obj/process_setgroup.o | Bin 0 -> 4956 bytes 42sh/obj/prompt.o | Bin 0 -> 4764 bytes 42sh/obj/put_job_in_background.o | Bin 0 -> 4044 bytes 42sh/obj/put_job_in_foreground.o | Bin 0 -> 5456 bytes 42sh/obj/quotes_gest.o | Bin 0 -> 4408 bytes 42sh/obj/reader.o | Bin 0 -> 5016 bytes 42sh/obj/readline.o | Bin 0 -> 5496 bytes 42sh/obj/reduce_bquotes.o | Bin 0 -> 4400 bytes 42sh/obj/reduce_parens.o | Bin 0 -> 3980 bytes 42sh/obj/set_exitstatus.o | Bin 0 -> 2876 bytes 42sh/obj/shell_exit.o | Bin 0 -> 2620 bytes 42sh/obj/shell_get_avdata.o | Bin 0 -> 5456 bytes 42sh/obj/shell_get_opts.o | Bin 0 -> 3632 bytes 42sh/obj/shell_init.o | Bin 0 -> 3932 bytes 42sh/obj/sigchld_handler.o | Bin 0 -> 5180 bytes 42sh/obj/sigint_handler.o | Bin 0 -> 2608 bytes 42sh/obj/sigtstp_handler.o | Bin 0 -> 4128 bytes 42sh/obj/sigttin_handler.o | Bin 0 -> 2552 bytes 42sh/obj/sigttou_handler.o | Bin 0 -> 2552 bytes 42sh/obj/token_append.o | Bin 0 -> 2916 bytes 42sh/obj/token_cmp_type.o | Bin 0 -> 2676 bytes 42sh/obj/token_expand_var.o | Bin 0 -> 3048 bytes 42sh/obj/token_free.o | Bin 0 -> 3028 bytes 42sh/obj/token_init.o | Bin 0 -> 2760 bytes 42sh/obj/token_print.o | Bin 0 -> 3536 bytes 42sh/obj/toolz.o | Bin 0 -> 4676 bytes 42sh/obj/toolz2.o | Bin 0 -> 3420 bytes 42sh/obj/toolz_parseur.o | Bin 0 -> 5608 bytes 42sh/obj/toolz_termcaps.o | Bin 0 -> 5264 bytes 42sh/src/line-editing/copy_cut_paste.c | 79 +++++ 42sh/src/line-editing/curs_ask.c | 57 ---- 42sh/src/line-editing/curs_move.c | 45 --- 42sh/src/line-editing/curs_setup.c | 82 ------ 42sh/src/line-editing/curs_term_setup.c | 62 ---- 42sh/src/line-editing/curs_write.c | 63 ---- 42sh/src/line-editing/ft_readline.c | 106 ------- 42sh/src/line-editing/ft_split_whitespaces.c | 79 +++++ 42sh/src/line-editing/get_touch.c | 92 ++++++ 42sh/src/line-editing/get_touch_toolz.c | 61 ++++ 42sh/src/line-editing/get_touch_toolz_2.c | 94 ++++++ 42sh/src/line-editing/libftprintf.a | Bin 0 -> 337424 bytes 42sh/src/line-editing/line_return_toolz.c | 143 +++++++++ 42sh/src/line-editing/list_toolz.c | 58 ++++ 42sh/src/line-editing/move_to_line.c | 99 +++++++ 42sh/src/line-editing/print_and_del.c | 138 +++++++++ 42sh/src/line-editing/prompt.c | 63 ++++ 42sh/src/line-editing/quotes_gest.c | 83 ++++++ 42sh/src/line-editing/reader.c | 61 ++++ 42sh/src/line-editing/readline.c | 63 ++++ 42sh/src/line-editing/rl_bitset.c | 71 ----- 42sh/src/line-editing/rl_clipboard_function.c | 62 ---- 42sh/src/line-editing/rl_clipboard_utility.c | 95 ------ 42sh/src/line-editing/rl_comp_function.c | 41 --- 42sh/src/line-editing/rl_default_function.c | 38 --- 42sh/src/line-editing/rl_display.c | 61 ---- 42sh/src/line-editing/rl_dynamic_buffer.c | 99 ------- 42sh/src/line-editing/rl_long_move_function.c | 65 ----- 42sh/src/line-editing/rl_merge_line.c | 40 --- 42sh/src/line-editing/rl_page_move_function.c | 72 ----- 42sh/src/line-editing/rl_prompt.c | 31 -- 42sh/src/line-editing/rl_quoting_function.c | 44 --- 42sh/src/line-editing/rl_remove_function.c | 39 --- 42sh/src/line-editing/rl_setup.c | 46 --- .../src/line-editing/rl_short_move_function.c | 65 ----- 42sh/src/line-editing/rl_stack_line.c | 34 --- 42sh/src/line-editing/rl_state_function.c | 34 --- 42sh/src/line-editing/rl_word_move_function.c | 67 ----- 42sh/src/line-editing/rl_word_utility.c | 51 ---- 42sh/src/line-editing/toolz.c | 95 ++++++ .../line-editing/{curs_goto.c => toolz2.c} | 53 ++-- 42sh/src/line-editing/toolz_parseur.c | 91 ++++++ 42sh/src/line-editing/toolz_termcaps.c | 91 ++++++ 42sh/src/main/data_init.c | 5 +- 42sh/src/main/main.c | 5 +- 176 files changed, 2036 insertions(+), 1746 deletions(-) create mode 100644 42sh/includes/btree.h create mode 100644 42sh/includes/color.h create mode 100644 42sh/includes/dlst.h create mode 100644 42sh/includes/ft_printf.h rename 42sh/{src/line-editing/curs_single.c => includes/ft_xattr.h} (57%) rename 42sh/{src/line-editing/curs_clear.c => includes/get_next_line.h} (52%) create mode 100644 42sh/includes/libft.h create mode 100644 42sh/includes/lst.h rename 42sh/{src/line-editing/rl_clear_function.c => includes/mytime.h} (50%) create mode 100644 42sh/obj/ast_free.o create mode 100644 42sh/obj/builtin_bg.o create mode 100644 42sh/obj/builtin_cd.o create mode 100644 42sh/obj/builtin_echo.o create mode 100644 42sh/obj/builtin_env.o create mode 100644 42sh/obj/builtin_exit.o create mode 100644 42sh/obj/builtin_fg.o create mode 100644 42sh/obj/builtin_jobs.o create mode 100644 42sh/obj/builtin_setenv.o create mode 100644 42sh/obj/builtin_unsetenv.o create mode 100644 42sh/obj/command_getoutput.o create mode 100644 42sh/obj/copy_cut_paste.o create mode 100644 42sh/obj/data_exit.o create mode 100644 42sh/obj/data_init.o create mode 100644 42sh/obj/data_singleton.o create mode 100644 42sh/obj/do_job_notification.o create mode 100644 42sh/obj/exec_ampersand.o create mode 100644 42sh/obj/exec_and_if.o create mode 100644 42sh/obj/exec_command.o create mode 100644 42sh/obj/exec_dgreat.o create mode 100644 42sh/obj/exec_great.o create mode 100644 42sh/obj/exec_less.o create mode 100644 42sh/obj/exec_or_if.o create mode 100644 42sh/obj/exec_pipe.o create mode 100644 42sh/obj/exec_semi.o create mode 100644 42sh/obj/ft_exec.o create mode 100644 42sh/obj/ft_findexec.o create mode 100644 42sh/obj/ft_parse.o create mode 100644 42sh/obj/ft_post_tokenize.o create mode 100644 42sh/obj/ft_putast.o create mode 100644 42sh/obj/ft_putast2.o create mode 100644 42sh/obj/ft_split_whitespaces.o create mode 100644 42sh/obj/ft_tokenize.o create mode 100644 42sh/obj/get_lexer_state.o create mode 100644 42sh/obj/get_touch.o create mode 100644 42sh/obj/get_touch_toolz.o create mode 100644 42sh/obj/get_touch_toolz_2.o create mode 100644 42sh/obj/is_builtin.o create mode 100644 42sh/obj/job_addprocess.o create mode 100644 42sh/obj/job_cmp_id.o create mode 100644 42sh/obj/job_format.o create mode 100644 42sh/obj/job_format_head.o create mode 100644 42sh/obj/job_free.o create mode 100644 42sh/obj/job_getprocess.o create mode 100644 42sh/obj/job_getrank.o create mode 100644 42sh/obj/job_is_completed.o create mode 100644 42sh/obj/job_is_stopped.o create mode 100644 42sh/obj/job_kill_all.o create mode 100644 42sh/obj/job_notify_change.o create mode 100644 42sh/obj/job_notify_new.o create mode 100644 42sh/obj/job_remove.o create mode 100644 42sh/obj/job_update_id.o create mode 100644 42sh/obj/job_update_status.o create mode 100644 42sh/obj/job_wait.o create mode 100644 42sh/obj/launch_process.o create mode 100644 42sh/obj/lexer_backslash.o create mode 100644 42sh/obj/lexer_default.o create mode 100644 42sh/obj/lexer_delim.o create mode 100644 42sh/obj/lexer_dquote.o create mode 100644 42sh/obj/lexer_great.o create mode 100644 42sh/obj/lexer_greatand.o create mode 100644 42sh/obj/lexer_less.o create mode 100644 42sh/obj/lexer_lessand.o create mode 100644 42sh/obj/lexer_number.o create mode 100644 42sh/obj/lexer_quote.o create mode 100644 42sh/obj/lexer_sep.o create mode 100644 42sh/obj/lexer_special.o create mode 100644 42sh/obj/lexer_var.o create mode 100644 42sh/obj/lexer_word.o create mode 100644 42sh/obj/line_return_toolz.o create mode 100644 42sh/obj/list_toolz.o create mode 100644 42sh/obj/main.o create mode 100644 42sh/obj/mark_job_as_running.o create mode 100644 42sh/obj/move_to_line.o create mode 100644 42sh/obj/parse_dgreat.o create mode 100644 42sh/obj/parse_dless.o create mode 100644 42sh/obj/parse_great.o create mode 100644 42sh/obj/parse_greatand.o create mode 100644 42sh/obj/parse_less.o create mode 100644 42sh/obj/parse_lessand.o create mode 100644 42sh/obj/parse_separator.o create mode 100644 42sh/obj/parse_subshell.o create mode 100644 42sh/obj/parse_word.o create mode 100644 42sh/obj/print_and_del.o create mode 100644 42sh/obj/process_cmp_pid.o create mode 100644 42sh/obj/process_format.o create mode 100644 42sh/obj/process_free.o create mode 100644 42sh/obj/process_mark_status.o create mode 100644 42sh/obj/process_redirect.o create mode 100644 42sh/obj/process_reset.o create mode 100644 42sh/obj/process_setexec.o create mode 100644 42sh/obj/process_setgroup.o create mode 100644 42sh/obj/prompt.o create mode 100644 42sh/obj/put_job_in_background.o create mode 100644 42sh/obj/put_job_in_foreground.o create mode 100644 42sh/obj/quotes_gest.o create mode 100644 42sh/obj/reader.o create mode 100644 42sh/obj/readline.o create mode 100644 42sh/obj/reduce_bquotes.o create mode 100644 42sh/obj/reduce_parens.o create mode 100644 42sh/obj/set_exitstatus.o create mode 100644 42sh/obj/shell_exit.o create mode 100644 42sh/obj/shell_get_avdata.o create mode 100644 42sh/obj/shell_get_opts.o create mode 100644 42sh/obj/shell_init.o create mode 100644 42sh/obj/sigchld_handler.o create mode 100644 42sh/obj/sigint_handler.o create mode 100644 42sh/obj/sigtstp_handler.o create mode 100644 42sh/obj/sigttin_handler.o create mode 100644 42sh/obj/sigttou_handler.o create mode 100644 42sh/obj/token_append.o create mode 100644 42sh/obj/token_cmp_type.o create mode 100644 42sh/obj/token_expand_var.o create mode 100644 42sh/obj/token_free.o create mode 100644 42sh/obj/token_init.o create mode 100644 42sh/obj/token_print.o create mode 100644 42sh/obj/toolz.o create mode 100644 42sh/obj/toolz2.o create mode 100644 42sh/obj/toolz_parseur.o create mode 100644 42sh/obj/toolz_termcaps.o create mode 100644 42sh/src/line-editing/copy_cut_paste.c delete mode 100644 42sh/src/line-editing/curs_ask.c delete mode 100644 42sh/src/line-editing/curs_move.c delete mode 100644 42sh/src/line-editing/curs_setup.c delete mode 100644 42sh/src/line-editing/curs_term_setup.c delete mode 100644 42sh/src/line-editing/curs_write.c delete mode 100644 42sh/src/line-editing/ft_readline.c create mode 100644 42sh/src/line-editing/ft_split_whitespaces.c create mode 100644 42sh/src/line-editing/get_touch.c create mode 100644 42sh/src/line-editing/get_touch_toolz.c create mode 100644 42sh/src/line-editing/get_touch_toolz_2.c create mode 100644 42sh/src/line-editing/libftprintf.a create mode 100644 42sh/src/line-editing/line_return_toolz.c create mode 100644 42sh/src/line-editing/list_toolz.c create mode 100644 42sh/src/line-editing/move_to_line.c create mode 100644 42sh/src/line-editing/print_and_del.c create mode 100644 42sh/src/line-editing/prompt.c create mode 100644 42sh/src/line-editing/quotes_gest.c create mode 100644 42sh/src/line-editing/reader.c create mode 100644 42sh/src/line-editing/readline.c delete mode 100644 42sh/src/line-editing/rl_bitset.c delete mode 100644 42sh/src/line-editing/rl_clipboard_function.c delete mode 100644 42sh/src/line-editing/rl_clipboard_utility.c delete mode 100644 42sh/src/line-editing/rl_comp_function.c delete mode 100644 42sh/src/line-editing/rl_default_function.c delete mode 100644 42sh/src/line-editing/rl_display.c delete mode 100644 42sh/src/line-editing/rl_dynamic_buffer.c delete mode 100644 42sh/src/line-editing/rl_long_move_function.c delete mode 100644 42sh/src/line-editing/rl_merge_line.c delete mode 100644 42sh/src/line-editing/rl_page_move_function.c delete mode 100644 42sh/src/line-editing/rl_prompt.c delete mode 100644 42sh/src/line-editing/rl_quoting_function.c delete mode 100644 42sh/src/line-editing/rl_remove_function.c delete mode 100644 42sh/src/line-editing/rl_setup.c delete mode 100644 42sh/src/line-editing/rl_short_move_function.c delete mode 100644 42sh/src/line-editing/rl_stack_line.c delete mode 100644 42sh/src/line-editing/rl_state_function.c delete mode 100644 42sh/src/line-editing/rl_word_move_function.c delete mode 100644 42sh/src/line-editing/rl_word_utility.c create mode 100644 42sh/src/line-editing/toolz.c rename 42sh/src/line-editing/{curs_goto.c => toolz2.c} (50%) create mode 100644 42sh/src/line-editing/toolz_parseur.c create mode 100644 42sh/src/line-editing/toolz_termcaps.c diff --git a/42sh/includes/btree.h b/42sh/includes/btree.h new file mode 100644 index 00000000..5839155c --- /dev/null +++ b/42sh/includes/btree.h @@ -0,0 +1,54 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* btree.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/16 11:13:15 by jhalford #+# #+# */ +/* Updated: 2016/12/05 11:53:30 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef BTREE_H +# define BTREE_H + +# include "libft.h" + +struct s_btree +{ + void *item; + size_t content_size; + struct s_btree *left; + struct s_btree *right; +}; + +struct s_printdata +{ + int is_left; + int offset; + int depth; + int left; + int right; +}; + +typedef struct s_btree t_btree; +typedef struct s_printdata t_printdata; + +t_btree *btree_create_node(void const *item, size_t content_size); +void btree_insert_data( + t_btree **root, + void *item, + size_t content_size, + int (*cmpf)(void *, void *)); +void *btree_search_item(t_btree *root, + void *data_ref, int (*cmpf)(void *, void *)); +int btree_level_count(t_btree *root); +void btree_apply_prefix(t_btree *root, void (*applyf)(void *)); +void btree_apply_infix(t_btree *root, void (*applyf)(void *)); +void btree_apply_suffix(t_btree *root, void (*applyf)(void *)); +void btree_print(int fd, t_btree *tree, char *(*printer)(void *)); +void btree_del(t_btree **root, void (*del)(void *, size_t)); +void btree_delone(t_btree **root, void (*del)(void *, size_t)); + +#endif diff --git a/42sh/includes/color.h b/42sh/includes/color.h new file mode 100644 index 00000000..96eea18e --- /dev/null +++ b/42sh/includes/color.h @@ -0,0 +1,56 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* color.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/25 13:36:48 by jhalford #+# #+# */ +/* Updated: 2016/12/09 22:09:24 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef COLOR_H +# define COLOR_H +# include "libft.h" + +struct s_color +{ + char fg[7]; + char bg[7]; +}; + +typedef struct s_color t_color; + +# define FG_DEFAULT "\x1b[0m" +# define ON_BOLD "\x1b[1m" + +# define ON_UNDERLINED "\x1b[4m" +# define ON_INVERTED "\x1b[7m" + +# define FG_BLACK "\x1b[30m" +# define FG_RED "\x1b[31m" +# define FG_GREEN "\x1b[32m" +# define FG_YELLOW "\x1b[33m" +# define FG_BLUE "\x1b[34m" +# define FG_MAGENTA "\x1b[35m" +# define FG_CYAN "\x1b[36m" + +# define BG_BLACK "\x1b[40m" +# define BG_RED "\x1b[41m" +# define BG_GREEN "\x1b[42m" +# define BG_YELLOW "\x1b[43m" +# define BG_BLUE "\x1b[44m" +# define BG_MAGENTA "\x1b[45m" +# define BG_CYAN "\x1b[46m" +# define BG_DEFAULT "\x1b[49m" + +# define FBG_DEFAULT "\x1b[49m\x1b[20m" + +void ft_color_reset(void); +void ft_color_set(t_color color); + +void ft_color_mk(t_color *color, char fg[7], char bg[7]); +void ft_color_mkif(t_color *color, int cond, char fg[7], char bg[7]); + +#endif diff --git a/42sh/includes/dlst.h b/42sh/includes/dlst.h new file mode 100644 index 00000000..42d73729 --- /dev/null +++ b/42sh/includes/dlst.h @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* dlst.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/07 13:21:04 by jhalford #+# #+# */ +/* Updated: 2016/11/07 13:21:52 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef DLST_H +# define DLST_H + +struct s_dlist +{ + void *content; + size_t content_size; + struct s_dlist *next; + struct s_dlist *prev; +}; + +typedef struct s_dlist t_dlist; + +void ft_dlstadd_after(t_dlist **alst, t_dlist *new); +void ft_dlstadd_before(t_dlist **alst, t_dlist *new); +void ft_dlstdel(t_dlist **alst, void (*del)(void *, size_t)); +void ft_dlstdelone(t_dlist **alst, void (*del)(void *, size_t)); +int ft_dlstsize(t_dlist *list); +t_dlist *ft_dlstnew(void const *content, size_t content_size); +t_dlist *ft_dlstlast(t_dlist *list); +char *ft_dlsttostr(t_dlist *list); + +#endif diff --git a/42sh/includes/ft_printf.h b/42sh/includes/ft_printf.h new file mode 100644 index 00000000..6db739f4 --- /dev/null +++ b/42sh/includes/ft_printf.h @@ -0,0 +1,81 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ftprintf.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/07 13:22:54 by jhalford #+# #+# */ +/* Updated: 2016/12/15 15:29:22 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_PRINTF_H +# define FT_PRINTF_H +# include "libft.h" +# include +# define ALL_FLAGS "#0- +" +# define ALL_CONVERSIONS "sSpdDioOuUxXcCb" + +typedef struct s_fmt t_fmt; +typedef struct s_conv t_conv; +typedef char *(t_converter)(t_fmt *fmt, va_list ap); +typedef void (t_pad_func)(char *str, t_fmt *fmt); + +struct s_conv +{ + char id; + char allowed_flags[6]; + char base[20]; + t_converter *converter; + t_pad_func *sharp_func; +}; + +struct s_fmt +{ + char flags[6]; + int width; + int precision; + char modifier[3]; + char conversion; + int valid; + t_conv conv; +}; + +int ft_vdprintf(int fd, const char *format, va_list ap); +int ft_fmtcalc(char **final, char **str, va_list ap); + +extern t_conv g_convs[]; + +t_fmt *ft_fmt_init(void); +void ft_fmt_print(t_fmt *fmt); +void ft_printf_color(int fd, char **final, char **str); + +t_fmt *ft_printf_parse(char **format, va_list ap); +void ft_printf_parse_flags(t_fmt *fmt, char **format); +void ft_printf_parse_width(t_fmt *fmt, char **format, va_list ap); +void ft_printf_parse_precision(t_fmt *fmt, char **format, va_list ap); +void ft_printf_parse_modifiers(t_fmt *fmt, char **format); + +char *ft_transform(t_fmt *fmt, va_list ap); + +void ft_fmt_error_conv(char conv); +void ft_fmt_error_mod_conv(char *mod, char conv); +void ft_fmt_error_flag_conv(char flag, char conv); +void ft_fmt_error_flag_flag(char flag1, char flag2); + +void ft_fmt_simplify(t_fmt *fmt); +int ft_fmt_validate_conv(t_fmt *fmt); +void ft_fmt_validate_flags(t_fmt *fmt); +void ft_fmt_validate_mod(t_fmt *fmt); + +char *ft_signed_conversion(t_fmt *fmt, va_list ap); +char *ft_unsigned_conversion(t_fmt *fmt, va_list ap); +char *ft_str_conversion(t_fmt *fmt, va_list ap); +char *ft_char_conversion(t_fmt *fmt, va_list ap); + +void ft_pad_sharp_o(char *str, t_fmt *fmt); +void ft_pad_sharp_xb(char *str, t_fmt *fmt); +void ft_pad_left(char *str, t_fmt *fmt); +void ft_pad_right(char *str, t_fmt *fmt); +#endif diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index f8aeb60e..a9e83df6 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,209 +6,104 @@ /* By: sbenning +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/08 18:02:25 by sbenning #+# #+# */ -/* Updated: 2017/01/11 17:31:09 by jhalford ### ########.fr */ +/* Updated: 2017/01/19 16:47:18 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef FT_READLINE_H # define FT_READLINE_H -# include "libft.h" -# include "ft_curs.h" +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include -/* - * Input-Key Mapping !!! LINUX Or MACOSX !!! -*/ +# define FLECHE_HAUT 4283163 +# define FLECHE_BAS 4348699 +# define FLECHE_GAUCHE 4479771 +# define FLECHE_DROITE 4414235 +# define TOUCHE_DELETE 2117294875 +# define TOUCHE_HOME 4741915 +# define TOUCHE_END 4610843 +# define TOUCHE_TAB 9 +# define TOUCHE_OPT_RIGHT 1130044187 +# define TOUCHE_OPT_LEFT 1146821403 +# define TOUCHE_OPT_UP 1096489755 +# define TOUCHE_OPT_DOWN 1113266971 +# define TOUCHE_OPT_V 10127586 +# define TOUCHE_OPT_C 42947 +# define TOUCHE_OPT_X 8948194 -//# define LINUX -# define MACOSX -# include "ft_input.h" - -/* - * Default offset for dynamic allocation -*/ - -# define RL_OFFSET 1024 - -/* - * Readline possible prompt -*/ - -# define RL_PROMPT_DEFAULT "$> " -# define RL_PROMPT_ESC "> " -# define RL_PROMPT_QUOTE "quote> " -# define RL_PROMPT_DQUOTE "double quote> " - -/* - * Bitset manipulation : X is the bitset and Y is the bit to manipulate - * IS : Is Y set in X - * NOT : Is Y not set in X - * SET : Set Y in X - * UNSET : Unset Y from X -*/ - -# define RL_IS(X, Y) (X & Y) -# define RL_NOT(X, Y) (!RL_IS(X, Y)) -# define RL_SET(X, Y) (X |= Y) -# define RL_UNSET(X, Y) (X &= ~Y) - -/* - * Possible bit for t_line.bitset - * - * FINISH : bit to terminate and flush the readline - * STACK : bit to stack the current line and begin another one - * INSERT : bit to toogle insert-mode/replace-mode - * SELECT : bit to toogle extend-video-area-mode/clear-video-area-mode - * ESC : bit to escape quoting and new line - * QUOTE : bit to toogle quote-terminated-mode/quote-not-terminated-mode - * DQUOTE : bit to toogle dquote-terminated-mode/dquote-not-terminated-mode - * QUOTING : Regroup ESC, QUOTE and DQUOTE -*/ - -# define RL_FINISH (1 << 0) -# define RL_STACK (1 << 1) -# define RL_INSERT (1 << 2) -# define RL_SELECT (1 << 3) -# define RL_ESC (1 << 4) -# define RL_QUOTE (1 << 5) -# define RL_DQUOTE (1 << 6) -# define RL_QUOTING (RL_ESC | RL_QUOTE | RL_DQUOTE) - -typedef struct s_data t_data; -typedef struct s_line t_line; -typedef struct s_input t_input; -typedef int (*t_input_function)(t_line *, long int); - -/* - * Interactive line data: - * - * bitset : global/local state and settings for readline - * prompt : current prompt - * input : destination buffer - * pos : cursor position in the destination buffer - * size : allocated size of the destination buffer - * used : actual used size in the destination buffer - * select : start position of the video (aka selected) area in the destination buffer - * clipboard : duplication of the copied/cuted part of the destination buffer - * stack : list of stacked line. (lines are stacked when a quoted (or escaped) new line appear) -*/ - -struct s_line +typedef struct s_line { - int bitset; - char *prompt; char *input; - char *clipboard; - int pos; - int size; - int used; - int select; - t_curs curs; - t_list *stack; - t_dlist *history; -}; + int prompt_size; +} t_line; -/* - * Input data: - * code : input identifier - * function : input handler -*/ - -struct s_input +typedef struct s_list_history { - long int code; - t_input_function function; -}; + char *str; + struct s_list_history *prev; + struct s_list_history *next; +} t_list_history; -# include "minishell.h" +long long ft_pow(int nbr, int power); +char *ft_strndup(char const *s, int n); +char *ft_strdupi(char const *s); +void ft_puttermcaps(char *str); +void ft_putnc(char c, int n); +int ft_size_term(void); +void ft_free_tabstr(char ***env); +int ft_is_whitespaces(char *str); +int ft_get_size_prev(char *str, size_t pos); +int ft_nb_line(char *str, size_t pos); +int ft_get_ind_prev(char *str, size_t pos); +void ft_found_next_word(char *str, size_t *pos); +void ft_move_to_beggin(char *str, size_t *pos); +int ft_nb_last_line(char *str, size_t pos); +void ft_found_prev_word(char *str, size_t *pos); +char *ft_remove_imput(char *str, size_t pos); +char *ft_realloc_imput(char *str, int a, size_t pos); +int ft_readline(void); +struct termios *ft_stats_term_termcaps(void); +struct termios *ft_save_stats_term(void); +void ft_init_line(void); +void ft_read_it(int input, size_t *pos, char **str); +void ft_check_quotes(char **s, t_list_history *head); +int ft_check_quotes_num(char *s); +void ft_del_2(char **str, size_t *i); +void ft_del_1(char **str, size_t *i); +void ft_suppr_2(char **str, size_t *i); +void ft_suppr_1(char **str, size_t *i); +void ft_print(char **str, int ret, size_t *i); +void ft_move_to_line(int ret, size_t *pos, char *str); +void ft_get_head(t_list_history **head); +void ft_push_back_history(t_list_history **head, t_list_history *new); +t_list_history *ft_create_history_list(char *str); +void ft_curse_move(char *str); +void ft_move_suppr(char *str, size_t pos); +void ft_move_dell(char *str, size_t pos); +void ft_move_to_word(int ret, size_t *pos, char *str); +void ft_history(char **str, int ret, t_list_history **head); +void ft_move_term(int ret, size_t *pos, char *str); +void ft_move_left(size_t pos, char *str); +void ft_home_end(char *str, int ret, size_t *pos); +int ft_put(int nb); +char **ft_split_whitespaces(char const *s); +void ft_cxv(int ret, size_t *pos, char **str); +char *ft_lecture(t_list_history *head); +void ft_prompt(void); -/* - * Readline setup/cleanup/teardown -*/ - -int rl_setup(t_line *line); -int rl_cleanup(t_line *line); -void rl_teardown(t_line *line); -int rl_set_termios(int input_mode); - -/* - * Dynamic allocated buffer manipulation -*/ - -int input_maj(t_line *line, char *str, int size); -int input_move(t_line *line, char *str, int size); -void input_remove(t_line *line, int size); - -/* - * Readline internal function -*/ - -void rl_set_prompt(t_line *line); -void rl_put_prompt(t_line *line); -int rl_previous_word(t_line *line); -int rl_next_word(t_line *line); -int rl_clipboard_new(t_line *line); -int rl_clipboard_new_cut(t_line *line); -void rl_toogle_bitset(t_line *line, int set); -int rl_finish(t_line *line); -int rl_stack_line(t_line *line); -int rl_merge_line(t_line *line); - -/* - * Realine display functions: - * - * reset_display : Redraw the interactive buffer and replace the cursor - * based on t_line.input, t_line.pos and t_line.select . - * reset_display_ante : Redraw before the cursor position. - * reset_display_post : Redraw after the cursor position. -*/ - -void rl_reset_display(t_line *line); -void rl_reset_display_ante(t_line *line); -void rl_reset_display_post(t_line *line); - -/* - * input handler functions - * - * An handler use curs_ to manipulate the cursor position - * and recalc t_line.pos based on the cursor movement. - * - * An handler can also modify the content of the destination buffer. - * If it do so, it must reset all display that appear - * after the first index of that modification. - * If t_line.pos is that index, rl_reset_display_post can simply do the work. -*/ - -int rl_default_function(t_line *line, long int input); /* Not handled input */ -int rl_esc_function(t_line *line, long int input); /* Backslash */ -int rl_quote_function(t_line *line, long int input); /* Simple quote */ -int rl_dquote_function(t_line *line, long int input); /* Double quote */ -int rl_nl_function(t_line *line, long int input); /* New line */ -int rl_comp_function(t_line *line, long int input); /* Tabulation */ -int rl_left_function(t_line *line, long int input); /* Left move */ -int rl_right_function(t_line *line, long int input); /* Right move */ -int rl_wleft_function(t_line *line, long int input); /* Word left move */ -int rl_wright_function(t_line *line, long int input); /* Word right move */ -int rl_home_function(t_line *line, long int input); /* Home move */ -int rl_end_function(t_line *line, long int input); /* End move */ -int rl_pageup_function(t_line *line, long int input); /* Pageup move */ -int rl_pagedown_function(t_line *line, long int input); /* Pagedown move*/ -int rl_select_left_function(t_line *line, long int input); /* Left extend video area */ -int rl_select_right_function(t_line *line, long int input); /* Right extend video area */ -int rl_select_wleft_function(t_line *line, long int input); /* Word left extend video area */ -int rl_select_wright_function(t_line *line, long int input); /* Word right extend video area */ -int rl_select_home_function(t_line *line, long int input); /* Home extend video area */ -int rl_select_end_function(t_line *line, long int input); /* End extend video area */ -int rl_select_pageup_function(t_line *line, long int input); /* Pageup extend video area */ -int rl_select_pagedown_function(t_line *line, long int input); /* Pagedown extend video area */ -int rl_retarr_function(t_line *line, long int input); /* Remove before the cursor */ -int rl_suppr_function(t_line *line, long int input); /* Remove after the cursor */ -int rl_clear_function(t_line *line, long int input); /* Clear screen */ -int rl_copy_function(t_line *line, long int input); /* Copy selected area or current cursor line */ -int rl_cut_function(t_line *line, long int input); /* Cut selected area or current cursor line */ -int rl_paste_function(t_line *line, long int input); /* Paste copied/cuted area */ -int rl_insert_function(t_line *line, long int input); /* Toogle insert-mode/replacement-mode */ - -int ft_readline(); #endif diff --git a/42sh/src/line-editing/curs_single.c b/42sh/includes/ft_xattr.h similarity index 57% rename from 42sh/src/line-editing/curs_single.c rename to 42sh/includes/ft_xattr.h index a7c883a9..9afadc18 100644 --- a/42sh/src/line-editing/curs_single.c +++ b/42sh/includes/ft_xattr.h @@ -1,26 +1,21 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* curs_single.c :+: :+: :+: */ +/* ftxattr.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 17:04:53 by sbenning #+# #+# */ -/* Updated: 2016/12/09 16:40:41 by sbenning ### ########.fr */ +/* Created: 2016/11/07 13:24:05 by jhalford #+# #+# */ +/* Updated: 2016/11/07 13:24:05 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ -#include "ft_curs.h" +#ifndef FT_XATTR_H +# define FT_XATTR_H +# define FT_XATTR_SIZE 10000 +# include +# include -/* - * Save cursor reference or return a previous saved reference -*/ - -t_curs *curs_single(t_curs *curs, int set) -{ - static t_curs *single; - - if (set) - single = curs; - return (single); -} +int ft_xattr_print(char *path); +int ft_xattr_count(char *path); +#endif diff --git a/42sh/src/line-editing/curs_clear.c b/42sh/includes/get_next_line.h similarity index 52% rename from 42sh/src/line-editing/curs_clear.c rename to 42sh/includes/get_next_line.h index cb3d0694..b63d0ac2 100644 --- a/42sh/src/line-editing/curs_clear.c +++ b/42sh/includes/get_next_line.h @@ -1,34 +1,31 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* curs_clear.c :+: :+: :+: */ +/* get_next_line.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 17:28:50 by sbenning #+# #+# */ -/* Updated: 2017/01/10 17:20:41 by jhalford ### ########.fr */ +/* Created: 2016/11/05 12:21:36 by jhalford #+# #+# */ +/* Updated: 2016/12/15 13:07:58 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ -#include "ft_curs.h" +#ifndef GET_NEXT_LINE_H +# define GET_NEXT_LINE_H +# define BUFF_SIZE 32 -/* - * Clear screen and keep track of cursoe's coordonate -*/ +# include "libft.h" +# include +# include -void curs_clear(t_curs *curs) +typedef struct s_save t_save; + +struct s_save { - ft_putstr(tgetstr("cl", NULL)); - curs->li = 0; - curs->co = 0; -} + int fd; + char *str; +}; -/* - * Clear screen after cursor position without moving cursor -*/ +int get_next_line(int const fd, char **line); -void curs_clear_post(t_curs *curs) -{ - ft_putstr(tgetstr("cd", NULL)); - (void)curs; -} +#endif diff --git a/42sh/includes/libft.h b/42sh/includes/libft.h new file mode 100644 index 00000000..ecbe6bb5 --- /dev/null +++ b/42sh/includes/libft.h @@ -0,0 +1,162 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* libft.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/07 13:49:04 by jhalford #+# #+# */ +/* Updated: 2017/01/19 16:13:05 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef LIBFT_H +# define LIBFT_H + +# define STDIN 0 +# define STDOUT 1 +# define STDERR 2 +# define STDBUG 3 + +# define DG_MSG0 "{inv}{yel}%21s {bol}{blu}%-3d{eoc}" +# define DG_MSG1 ft_path_notdir(__FILE__), __LINE__ +# define DG(f, ...) ft_dprintf(STDBUG, DG_MSG0 f "{eoc}\n", DG_MSG1, ##__VA_ARGS__) + +# include "get_next_line.h" +# include "ft_xattr.h" +# include "mytime.h" +# include "lst.h" +# include "dlst.h" +# include "btree.h" +# include "color.h" + +# include +# include +# include +# include +# include +# include +# include + +# define FT_WS(x) (x == ' ' || x == '\t' || x == '\n') +# define FT_ABS(x) (((x) < 0) ? -(x) : (x)) +# define FT_NEG(x) (((x) < 0) ? 1 : 0) +# define FT_POS(x) (((x) > 0) ? 1 : 0) +# define FT_MIN(a, b) ((a) < (b) ? (a) : (b)) +# define FT_MAX(a, b) ((a) > (b) ? (a) : (b)) +# define FT_DIST(a, b) (FT_ABS((a) - (b))) + +typedef struct s_stof t_stof; +typedef struct s_stos t_stos; + +struct s_stos +{ + char *key; + char *val; +}; + +struct s_stof +{ + char *name; + int (*f)(); +}; + +void ft_debug(void); + +void *ft_memset(void *b, int c, size_t len); +void ft_bzero(void *s, size_t n); +void *ft_memcpy(void *dst, const void *src, size_t n); +void *ft_memccpy(void *dst, const void *src, int c, size_t n); +void *ft_memmove(void *dst, const void *src, size_t len); +void *ft_memchr(const void *s, int c, size_t n); +int ft_memcmp(const void *s1, const void *s2, size_t n); +size_t ft_strlen(const char *s); +char *ft_strdup(const char *s1); +char *ft_strcpy(char *dst, const char *src); +char *ft_strncpy(char *dst, const char *src, size_t len); +char *ft_strcat(char *s1, const char *s2); +char *ft_strncat(char *s1, const char *s2, size_t n); +size_t ft_strlcat(char *dst, const char *src, size_t size); +char *ft_strchr(const char *s, int c); +char *ft_strrchr(const char *s, int c); +char *ft_strstr(const char *big, const char *little); +char *ft_strnstr(const char *big, const char *little, size_t len); +int ft_strcmp(const char *s1, const char *s2); +int ft_strncmp(const char *s1, const char *s2, size_t n); +int ft_atoi(const char *str); +int ft_isalpha(int c); +int ft_isdigit(int c); +int ft_isalnum(int c); +int ft_isascii(int c); +int ft_isprint(int c); +int ft_toupper(int c); +int ft_tolower(int c); + +void *ft_memalloc(size_t size); +void ft_memdel(void **ap); +char *ft_strnew(size_t size); +void ft_strdel(char **as); +void ft_strclr(char *s); +void ft_striter(char *s, void (*f)(char *)); +void ft_striteri(char *s, void (*f)(unsigned int, char *)); +char *ft_strmap(char const *s, char (*f)(char)); +char *ft_strmapi(char const *s, char (*f)(unsigned int, char)); +int ft_strequ(char const *s1, char const *s2); +int ft_strnequ(char const *s1, char const *s2, size_t n); +char *ft_strsub(char const *s, unsigned int start, size_t len); +char *ft_strjoin(char const *s1, char const *s2); +char *ft_strtrim(char const *s); +char **ft_strsplit(char const *s, char c); +char *ft_itoa(int n); +int ft_putchar(int c); +void ft_putstr(char const *s); +void ft_putendl(char const *s); +void ft_putnbr(int n); +void ft_putchar_fd(char c, int fd); +void ft_putstr_fd(char const *s, int fd); +void ft_putendl_fd(char const *s, int fd); +void ft_putnbr_fd(int n, int fd); +void ft_putaddr(void *a); + +char *ft_strrev(char *str); +char **ft_strsplit(char const *s, char c); +char *ft_str3join(char const *s1, char const *s2, char const *s3); +char *ft_strcut(char *str, char *cut); +char **ft_split_whitespaces(char const *str); +char *ft_convert_base( + char *str, char *base_from, char *base_to, char *flags); +char *ft_strcatf(char *s1, const char *s2); +char *ft_strinsert(char *str, char c, int n); +int ft_strappend(char **dst, char *src); +char *ft_strbetween(char *start, char *end); +char *ft_strreplace(char **str, char *start, char *end, char *new); + +char *ft_itoa_base(int nbr, char *base, char *flags); +char *ft_lltoa_base(long long nbr, char *base, char *flags); +char *ft_ulltoa_base(unsigned long long nbr, char *base); +char *ft_uitoa_base(unsigned int nbr, char *base); +size_t ft_ilen(int n); +size_t ft_ilen_base(int n, int base); +size_t ft_uilen(unsigned int n); +size_t ft_lllen(long long n); +size_t ft_lllen_base(long long n, int base); +int ft_addrcmp(void *a, void *b); + +char **ft_sstradd(char **list, char *new); +void ft_sstrsort(char **list, int (*cmp)()); +void ft_sstrprint(char **list, char sep); +void ft_sstrprint_fd(int fd, char **list, char sep); +char **ft_sstrdup(char **list); +void ft_sstrdel(char **sstr, int index); +void ft_sstrfree(char **sstr); +char *ft_sstrcat(char **sstr, char sep); + +char *ft_path_notdir(char *path); + +int ft_printf(const char *format, ...); +int ft_dprintf(int fd, const char *format, ...); + +char *ft_getenv(char **env, char *key); + +void *ft_realloc(void *data, int size); +#endif diff --git a/42sh/includes/lst.h b/42sh/includes/lst.h new file mode 100644 index 00000000..ee4926df --- /dev/null +++ b/42sh/includes/lst.h @@ -0,0 +1,80 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* lst.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/07 13:27:46 by jhalford #+# #+# */ +/* Updated: 2016/12/12 14:59:12 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef LST_H +# define LST_H + +# include "libft.h" + +struct s_list +{ + void *content; + size_t content_size; + struct s_list *next; +}; + +typedef struct s_list t_list; + +t_list *ft_lstnew(void const *content, size_t content_size); +void ft_lstdel(t_list **alst, void (*del)(void *, size_t)); +void ft_lstdelone(t_list **alst, void (*del)(void *, size_t)); +void ft_lstadd(t_list **alst, t_list *new); +void ft_lstiter(t_list *lst, void (*f)(t_list *elem)); +t_list *ft_lstmap(t_list *lst, t_list *(*f)(t_list *elem)); + +t_list *ft_lstnew_range(int a, int b); +void ft_lsteadd(t_list **alst, t_list *new); +void ft_lstnadd(t_list **alst, t_list *new, int n); +void ft_lstsort(t_list **begin_list, int (*cmp)()); +void ft_lst_print(t_list *list, void (*printer)()); +int ft_lstsize(t_list *lst); +t_list *ft_lstlast(t_list *lst); +void ft_lst_sorted_merge( + t_list **begin_list1, + t_list *begin_list2, + int (*cmp)()); +void ft_lst_sorted_insert( + t_list **begin_list, + t_list *insert, + int (*cmp)()); +void ft_lst_delif( + t_list **alist, + void *data_ref, + int (*cmp)(), + void (*del)(void *, size_t)); +void ft_lst_delsub( + t_list **alst, + t_list *sub, int (*cmp)(), + void (*del)(void *, size_t)); +void ft_lst_cfree(void *ptr, size_t size); +void ft_lst_bfree(void *ptr, size_t size); +t_list *ft_lst_filter( + t_list *lst, + void const *data_ref, + t_list *(*f)(t_list *elem, void const *)); +t_list *ft_lst_removeif( + t_list **alst, + void *data_ref, + int (*cmp)()); +t_list *ft_lst_find( + t_list *begin_list, + void *data_ref, + int (*cmp)()); +t_list *ft_lstpop(t_list **lst); +void ft_lst_merge(t_list **begin_list1, t_list *begin_list2); +void ft_lst_reverse(t_list **begin_list); + +int ft_diff(void *a, void *b); +t_list *ft_id(t_list *a); +t_list *ft_lst_at(t_list *list, unsigned int nbr); + +#endif diff --git a/42sh/includes/minishell.h b/42sh/includes/minishell.h index 02b05202..2895c065 100644 --- a/42sh/includes/minishell.h +++ b/42sh/includes/minishell.h @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* minishell.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:07:44 by jhalford #+# #+# */ -/* Updated: 2017/01/11 17:17:16 by jhalford ### ########.fr */ +/* Updated: 2017/01/19 15:21:51 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/rl_clear_function.c b/42sh/includes/mytime.h similarity index 50% rename from 42sh/src/line-editing/rl_clear_function.c rename to 42sh/includes/mytime.h index 6782b79c..140e1100 100644 --- a/42sh/src/line-editing/rl_clear_function.c +++ b/42sh/includes/mytime.h @@ -1,32 +1,34 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* rl_clear_function.c :+: :+: :+: */ +/* mytime.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/09 13:34:29 by sbenning #+# #+# */ -/* Updated: 2017/01/10 17:46:00 by jhalford ### ########.fr */ +/* Created: 2016/11/25 11:43:12 by jhalford #+# #+# */ +/* Updated: 2016/11/25 20:26:20 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ -#include "ft_readline.h" +#ifndef MYTIME_H +# define MYTIME_H +# include "libft.h" -int rl_clear_function(t_line *line, long int input) +struct s_mytime { - int pos; + char *year; + char *month; + char *day; + char *hour; + char *min; + char *sec; +}; - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - curs_clear(&line->curs); - rl_put_prompt(line); - pos = line->pos; - line->pos = 0; - if (line->used) - rl_reset_display_post(line); - if (pos) - curs_forward(&line->curs, pos); - line->pos = pos; - return (0); - (void)input; -} +typedef struct s_mytime t_mytime; + +int ft_time_isrecent(time_t event); + +t_mytime *ft_mytime_get(time_t epoch); +void ft_mytime_free(t_mytime **time); + +#endif diff --git a/42sh/obj/ast_free.o b/42sh/obj/ast_free.o new file mode 100644 index 0000000000000000000000000000000000000000..d3bbdd4d4d0bc796d6badaeaf1396e9741445153 GIT binary patch literal 3596 zcmb7HYm8Gx6rS7m-geui-DP>nv#>l9XqTrOF~|ncQqUM)iehd`dv~|E+^)SXECkK! zfzcP`s4%fpjBa~^Z% zn=^OL%yhrGdhU8q2+c3hfCJ!89Zehzx(9rj&RfuF3?}X47?5YvO^(qCGR>0JRdRLL zUbF1+HT|}y9Z(AKIBnMuA$;@&L^p*;rkS%gmfK9HRFp2$T>4ncst3Jp;o(f?qCky? zD=S(F>)9S&Mij%B?=#*RFVorC zVVQPjGt;|iy??6w?pJATzhizbUSZ=Vxxv->O;sOhvcmi1F7af3otbPkUb+hJ=exu! zZR;F#y|%);qCVjDyTrqxlaST%E}x{!xRvfk!%Wi~RUq>KG6Svz3Q?6y#@!=el|!8N<)^D7cciUh;qiR|echUz^%< zI@NPFp4#*5<iIDz3S=E7VKuGfO;A zPqP-=Ikw;O#db#ftx#;&up8E~P^t&K=Y$IZzex2Qk3aQg3lCy^<;ryr$G2ETCttAR z&55Q&Q+#^11GmSl<|Y`4d2cJghum5b-?lCTRoOO#AN zNzJ*TvEI=kg&Zau4w2Dv$}*#+Ric15;5QxvT^ z;qdt(YxUZcXoK#L))`}>_1aKuzb^sjP;GJ8AH6TKFfy(70hX{Xe9E!B0XOr!0jAE^ z(ikC@H@IW)giaRz=%PpjWfqFTFGNj)=8r}qgcKq?1l`LUXf&fvBO@#N#G6cl+bBY; zMo}wfQh*lA)@=?b{YJ5R4sG3PbZIe7^ZWL9ZIC)2a9EugX_e6ieEZv9r&a$dTA>@= zXl<~6ys;O8F}@AKT@b-gh>^y7Xx;(`8fp$fj0(&RAAvkU*L+{22y?EVXf5zHhJ^7Q z)T1;<20w?;L&hnHlk^Oa`~XoGm>K>JawL`+NDyHRv^QuaX~m(vOsff&FeX7ILSR_U zSvh)2_#)(5MoeS;RnMC4YYc>WlsB+%2D1rXLZ==u+ThXY9TBO82n8m{Ksn7sf{cP! zLQdkOq5Uv}4QLE4#2_55)h#J19;*vU+3t1q^*aYYt7`(nrZYX^Tk zKH<>XXAV7C-#dErTzlL{3-zy#{yz15Q}^!3fxo{U^Zu!ev+HWNe0=VD__-(Eefm%~ zesIUH7=Iq@!$%qpo(^6JegvEWm%uN9S?Y(u$H3o%{{VA$@F(|f1SE)6NEZu}mp6!; zM;G^Vr1Z$zq>II>2C~ZNV%exDRwP|4TNTA#x>$$G#qy`C8?0QHl#9iolHhq^6r)uX zPX=8)EDc}~i=Qr@2Q~1la@@1b+y6JJ~hu+L^fR^R9~MOFGNeU?nU2{A?i66e<8*vUO=m9*P=tvYMcYC zd2fkGmYrfUZ)ZEoIV+i;+q__)$Jyp2-7<^CZ_et zt$H%8FHGx;TJ_~=J(AX=M!P-?ofFc!Kdo!VNuPlwVv3z$%r>h9685ZnU1=nhoT}t_ sB_SARyrLxkFN+aK5l>u&DfLQQn5}qVOU0bk;i}O2J_|mC@}(ByKl|baI{*Lx literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_bg.o b/42sh/obj/builtin_bg.o new file mode 100644 index 0000000000000000000000000000000000000000..92476142285fc803d6888b784457487a7af8ce73 GIT binary patch literal 5336 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 baAm*KCv(9yYfV?)JG1Lf$`SlsbD7(J?r2iV literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_env.o b/42sh/obj/builtin_env.o new file mode 100644 index 0000000000000000000000000000000000000000..4dce0ec7f0777c078cf2fa62624b6d108305f5c5 GIT binary patch literal 2348 zcma)7&1(};5TCcnrXNX@XcZJiqSRVJlT->8KU=JlN)_#g9|u`B+q6kZHzC=yRV;c? zF}HdUR6Ka_kMOAY2Y41dDtHk*7QgDu+j;3`TWtpB&6~-*-~Q&kc`qM+eEZV|AOe5` zY7n)o35?Q8>#SdCmM92>_aB-oPuCEE)FWJ@F>ve1FIn z_y?Yu%~o;?#J8EB!kb{2R`Ck2^*&^vQ_N}Smi%12Qg%)ru%F*M#_M6c zt1aS5er410<9+er)mp@JZkIQ$w}W?khWR~j5f3k&g!J<(F`lY-ZA(0>G>>&UM$KL< z*wcnFHo{b-dB%7N4)$T+(bMn?EpLUdUvhb4rh=#IE-;Md_uvg@4>4Yb@z{khKwizs zs`sE+uqC3u-c`mM=S7bZk0jW!IX~K$I3KO-;0)hM;>qm)hkpl*X#|q zG@r`Uzx2P&)R$K?_1gDLed_D2_rr7(5@Tc6E+rOnm1?16CkB)0WIEAj74iBW9ZaK> z95|NjKMd81mCDu%MWw#!Iv?sbvY{$a1BnG#Oq0T_`MEGR*P-L|GYy^*62aQ9c-MF(o z5Qv@$hjEAW7*HhCD-FEFop6t%U2anZj_}^Bzuy4r1#h&C3W#erFI^-oKR^?z;}EoICiJIdUf`fp6d*G(oKc5J7K@YO#@v^6 zdf?*$qAj_gO}Z&fYboSkyN2S$-zta7Csozcr4kUr%cbKVB()#;0O|XW!&c(y-65P$ zpi-?Ar~3JlQ?(SLB02OwCT;i?VvE`9!ZZk`NfbSCXB@;*T*M=7?JJl?-`R`W_nV;B z)>Ix0N8^vQb6xy51(z{LgEWpp{ET+tDCirg!qd{=ZCUJTNkcu2c=|D+Yn|;qnuhBE gj=KP%6x&|5``Dr(gwScWgcg&K^b3mNy&wR80b0lfiU0rr literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_exit.o b/42sh/obj/builtin_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..f08787f4e736556d36d7be239e3d61bc45835cfb GIT binary patch literal 4544 zcmb7Idu$v>8K1rL-rINQM?#9za8;V%K>bMSP^%+#%ZEfNavY;8pgzE+hxMA!YIW%(J zP*HIZBWR&O0Oz-^Y=&XFUfp&kmC-Po;|t>2r^a7Z-y2}8#HP(Kiq=G9(g3J*L3~F> z?z=m17nhavT@^@#t&eReG%&U%lW=TG;4Tyf<5N^1Ue^Z$-Z<-c-Sq zA-)q{kQeWcSE$u0mf;kp7~X%y_h%K~xC*G}UE}ldsuM@$2Dip{m&&)B6`s3BJQ-iD zV7B5-w%~nfjdDODtq z>VZri)LX@NBx39L_NsaqQNfG@k1h2M@o`;HIzlAcUJ+{__0j#Xs@pyN)&Dn&QvK`wkTa}6!VU_0&95{S1H*M8jyXxeI`v?06 zbG>E-M^oSMAe8>09sS$43Ab(zOf>9@XFCBmtQp(uH^so1i`fH{4_1#B3j;$t+_G@0 zo?Wu7qOcuLsADs7=~MQL~FH=LITU zZ{2|bvr(_(#|(J-lf0>F5yymQ)u-&LD@?;KRSJ{BGs!r?s7ixrNDK5zpqs)p;jtW! zTn7fuV}eN7D=eDqeI(y-RDQkIp>0Wb>EU!X(v$AcI+0DGei%Eoy@_!8_T-0??@#UT zx&wz(cu0iP`@3igp@iCW5mFxeyKp59HK~!C;k+lAL^VY-f)25*lEv49`M^RXy0maQ znIt3%uYDPR82BmHbNjLbZin=;gHDIcG7`qJn#LdLxC!XD0j!h1pG@w7D2k{Y77t=z zt%#Jkg$(T@K9l`3O7=aW1P1LepEz1Z`!QMg;5sitLqj?uQzV(no$ z<-D(zKfSE!p~d1UY8}LYHh!8~*K59Z?>7;l);+*DBfQr1w&?RovTGf+3A9jH4wHw!hF{yfxAQ0;&^oMsGC?S#5lWEko}P%Nrt zN8r|R2wk_x90cRH#$sAzhFt4BCEetVCn?6!&k*7K2x9|DM z^v*YzW``l?K};$790ak+d;{;7+I3v|u&st0{PtRWV!*&{hcELRuXV;3#>28rUVzvD z*cdNrOa3{*+qNCVD|GOY$C8gd9ed^MH-7z(7oY3i_u{9{ef@W4ch499exb+AojKus z*1oY3+L9fc=<505AGiMPXD4=EyYhJX#>h)|daotUoH+9A$+s^6hndU7;o5BkFi;^bRqJn4L(8NMgUd(iwSc1yLI;DxFtKeBCG_iV= z7fXgFrlx{tozukSQ(i0?npjE7#1Ls>9xD@TjHa{bl<9w^O>{-dVwP&^SR_tU3zA8D z=suy%WVLK68smw;pf`f9UST>dEd|G_7)fVOh3;xs&tSQ8A;AZcrd`8Puc1-FzZK5} z-2G;y!K-qh;noL~Hela6{Gn!xd(0g${I_?LC+wo>@qo7mexu@g{blBqKL;`jKwbAx z+612x2HyttYNf>!C1S`6-gi`YI1~)X2z-C!Iq>}!&S-if5!B0s UwiJpr{HKIhYM#=+{B{)o0amcBIsgCw literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_fg.o b/42sh/obj/builtin_fg.o new file mode 100644 index 0000000000000000000000000000000000000000..9da2139c8804a78f406ed21e1b0527b34b9027e4 GIT binary patch literal 5276 zcmb7IdvFuS8Q+t9r?X^PGPWs{M+6QOT5J;njmxX1LFqvVP16`i8+wt?k}Qx|frtwUe0s5FE(=?@-K4>Q)A)yWJbO>!SrN7_Z z%E$_7=#KZk{eAoGZ@=C9_Pdpz|My@26A(i23p`L8P{&j}VyGxnQ4Qh`D33OI9cQFX z6@yc-M&&rubdoz92_Q`K&iJM~ui$EHADuuUAAQ+7NeKKA?4_s{)3l0CA!DbdqMonH z(=Yq`=}b-W)wJ0(&4FZpDQ$w(?J>>O8&}qrVgVtMa`hX|9zoW2bT)QqT7kHy`D1(u;D?!_ijny#QU+ zze2)JCyVdr`*z)aZ4Y~VHP5T^4J9ns#d`m$eDZaO59dqd^Vy_nCx+ECkc z(2fuF&*RJWZ*gC6y?-xBzUw95=r!`W{^b)^J>R7|zSGyp=j_a1b-mMd&$0XEuD^GU zd^p4|Wxan-$oQzPccgmo<@zD&-mjG#!a5zZWN**d1E#rd^%YYgPD;L*R2~K&kIX{E zpM2+ae91vGRlwWz2Gr++HzZ%L$L&cgtfZPFRN#lt-x z;2-zJ-I9>!2%VpT+6#M9U4T3S$@cB2wS`l#$|clxeQ3MSD8FWmoX;B-H$fW}VU**S zjPmdqqg*;|l>1&dD&8QAQR$sxjGR%7kxL?S-+XAErH{tJCCf0kaj^Xs2x)sFe*Q8_ zIezrqMc7ms4h~;1)YBYPj-QmI@zci04qZg{w^LsMtnAR;zH#^K-6Gy9&vH;Z%BQY))}kGG`43g`JCS$@O^ijBTdUU6$zXD`I?idV6lmK%#r`qT-;q(l0W$ zBk~DnP*{VBf=Fx=NqbvffXot(>58H!Qkg>0)j*%k6dh6Y1Q!g?g_LG7b8k}cVLCi- zi2@RVs|3#G>~yST7c*%)IS}L2Ht!F`!DKdT=F^!0ktpq*DN1+Jfy=mM4Cn7vFuXUa!R8@tt;cg%$qKr}a zeGlBT)x{_91lm+`5t9?p?K{R%gYN-@89-@y9Z#U%?_zpoQXVrj_#Zg7=PY4s51#1E z^W-aSfA%^@_dG?|K8BG(P4m&9{SqSZBHMX9G)4OZ6@OuyT8$}5e+Q3!sEyMa%MhE? zxxqt_oJF1I>kz@WfF329@9WTm?P!fbqki1i(G-jUJxi7u3Es5*`KGP1H`pvp`&@Z!#%D`u%7>16{*R{XsO3qv^j}zwHqpER!a|>}E9xMn z(!$TQ9&kq-V6#!tN+jNk$0JZQezfrkhK0GO z?;>pMttB1;H?kqSs6?q9OI$ye-{$|vhW847p4&)I;$Js53`V0( z+eS;iIniHRZPQMD<;0UupPBpiGrO0(yKwJ;(1YtzGqhiQ#_8*Co%YRtyfDp*J+%80 zco|_cQExz9jk*za3+gZ`V}ft)C#a`Te~T#)JL`ix^IsV+^BdvI7_s8Yo+ zrizg-2lACr#atj&Ok`9sw@D|MQmA6$kycEKR52Gy`u`QG0fZsL8P;Br`JNOLN;P(s zd+!j+j;IoC3h0at&M_VJ(mzRa`EvDpAyzd2|=R5%B! zQg>y-J;=(Ic$Mfb6${-Gb!Tqu`Q$`Rac8mH^nQO$u!LUJ+^cZ!!YtXM(>2Ib=8Zrb zr%hgl02&bSxqee#8S5-@9!>Z9;~B~u4gfmb`8|6aSnzwrA5qjm&>!^8R#Z*XyHvlX z?=Pvrv+8v1h#E+#KJ8XDaF_ZK?Nv3hPYrBRV|b=i^<{OkwgN_L)!=efKZ3!xYMazX zZBUIu7g&xFw}Nb~I#v5VrFNGZI;$O0do+C(@N!LmO!d8{D!=v3!X69pRqikj$Ywm? z-HOjb!tKsp54SInc(%mM2go^{Z$cvfbn^R-ci8zu$NYjCTXN@TKvS5-5e zblj_^nR3j8lgkKmC{ftzb|s2tp=8_q-(SOyPe3-ptleo|kr%{{jHLS0w-d literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_jobs.o b/42sh/obj/builtin_jobs.o new file mode 100644 index 0000000000000000000000000000000000000000..1260e07f2bf29b914f14d323653398a628896728 GIT binary patch literal 4920 zcmb7IZIBd48SdG=*`3?H-P`+s0{L(eI6%2OAdp-Vh)2TdK%gpOju6W@?9I;YE$r>C zyR(F^6ZC+v9%qS$AO0{EHI`WNgCCbFsw^vuUk7R;mR5b7_Oz!N1Pb{W%RfQTLPLW%Lg5v|Fw1r+o6kstpU>mz zko^xbn7R_E)2SLp+8U^243IiKhOz0XjoUvq<#kxb^|F+Pj}MO1C_TPh!JLtAEf>75 zv^UlPSDleBH84=J_A=h-@p*i|ku>+pm(33rIKSUb$gUaVE2Z)o zt9&=#v5?E>wN{g-P01PghEt{!qCY;5PreTE{(PxoF=rY1)G))l>v@mM_}0sC2H!V6 zm#;9e+j+tM_$JmgkQ%>b?Ht#U{pZAR9vt=+Rz{hg-J>uiKIA>ur z;`lN6Ij9rxk3k-7g$~K%^a<4Z!YNqqens_OGwc0&^{@Kqja~Yfb3p53La+AS)~h2| z^=jpcUhThpPQ1>c`dIHAee|lLkKPu|$5z1d3S-pA*R^79eSFpjA*AnQ-;Fyc)xLAr zUxkmyFh26Ou3q7wYTreDjFoE54y9+h8?FOTNxbJp#+u7!0Zggk$(I4-6=0}eE!IG68 z*h27~?_u4h(AyMxk zvUyt+Q}&QBhf*bx+AFO5-lD)@Q`qD%McEaD*;3iDz@E#NZP*>buq}{CX_T`EEWyUG znGUHE^3*W`=L-2uvXU=nGkGhW$XYmmH2Mh7l>JC%_rTP6l;A8` zNrCdXE1cH5HMyQJc?M<2XMmK1Qlkh4PVFiXbLq1PU)W~YW*8p zpx&=zdZn!gZA0+X`NQ8LYjEaX9$1MMW_p>~L9775<~`Wn$}Qbe`q zpkIKkVWIXFs28CIKkb~9VJ$>%?Yn5+fjPWTn}EvWKBQ|kXw6WAE1OnB=vq{XJqTqD z7D#JSFmY^)2V;O*Y`X{JfQi_rJlG64CpG~12*)M>ld)02G+_&1PwaUQwgUEwI78it zs)d#2EpSUbgQi`?cR*xl*Az8Jsk9t$+?)|7sWvLjjNKUlZ=rv3BOlZGicvP9vbZ+) zYIFTa;BzZsb2b`e7adUQ#}fO;@=Nsp_-Nq3M;A}x7Tzip5yI_4#m$zvf(1tXbNjzh8LrrkGk(B$?n{d4 z551YI@LSnkDVMq>>dxNRbN_Tpd4IXvaPR-qJYg5pt`4|dV4hsr?i%98a>qbN7Rc{C zK!f02!jN|xpC|IfaK7-aqx^^ipu>s4^~YuhzgvO{MGZ%Sk-&!(H5Agi)L=+ET2Uj{ z)cK*aYIsnMgdSHDp)IPmUJXDEe_u^h;Q0l0!A>=_Ue!Vw^#hmGCU``&osLUn6xJ<{ z8o#E_g1ThA8eFeNL!)XdP$T<3e(Pyf`E6hkR+yQFU*}phh-*U!WEgl6Bm&={LgGB= z}b>hY$Mjb3VMxhfN>mT=nza@55(& zm?vkwf8K|MF^HRJ*)A7KxM^~i4HinnDd^KKxYElQ#I@KeIfL+TjX7KtxSZN4Y}I@w zXW4~3ZmakoCuQz2%%MHTU@DvQW=LC5IYGvT$lk#-Z9E?Q(0N-kw21Q<-CUhmp&Ep~0w-VRVm za1}#sNZ>(Z;)98Az7P`M{KtqSXq>`>F+9#hBScJmF#dxuf8V|5Zg-dA_NC{1_xsLw ze&_d{bMAM0<=@}#_!yI9h7Qe(Hp$UN&>#<>sbt?n-WFriLfbYl8MUyOr)fs!h%pDE zY5NmH`{!)?X@E#T2#>hr1B~HE#tBlkXj-ablyikq;c(;GI89=F1Ceov$MH;$nwHKC zS4TB~nj@OF{b2vz9kWq`f>%R$dR%yL&x5q_^2OAGc+&#UUSM*Gc>3^gIWtat=kv4i zh6UhK@p6TcB297QJtwmHUf@0Aw;nFxFz8$$3+7wa3!|CJ-FPeMf;r?*f#+~7h&QIE zOp0!PHlDqWi{t5~Qa+;<^f97$SHAZNesMwQuSNM;c*WsE<^j9;?Gtz%0&kOj5$6(i z_HczMPn%;PdP{DfM*ETA-`-#8tJCxUM#OO?T~Y z7CH%1%yiZ!{RqGyTCEo&YccW#r2-e`S#vIs!<=1De0Ae<8a>_ftrbMT7XBW;wQfCe zO-&`H)W&WAG^w@tMHYH9OVJK*BYx4E)h$?U37ve>8FO)3R%J=8U$#IS1iBlb#{s%k zt$VLrPTWR3yU~NLk(jDYO7+Cljft6=89`lbRIgc+PanSq5X;Ax+9&bJnCPxw;M)m^TyZ{kFiQQ)iqqr z<&9jy)|v$rOR=uO3g&l>9xfhA>s^~SR*^u*w7llq$F;M0L;0*|)rY~PB5lsWSV*Uokn@y+v0-ofPH zvw;BapAupe;9GAhb`|?(y=s2Cgsg>aAO+cJDYLh~x3e#$?T`+c|Z;;h`2|cVmC&_C2+Oh`fWVI70 zu^8GiYRf4QLS;^33N**3mI{K!tNX;MKq~Uiu|C-Q&?sx-OM5`&1wwg~i_#UY|6}6A zD#RAiwuoaRka=R0lV01)q$6P|+~V_}K@_dB8tuJX1T-^aA3N(0hTrmRTV`z~V|Nha zVVlrP(yib!^b)OsCOO^^=DPlPMNB45v_GcEA&GmN{o8m`l`F~*Jgn@3Hu#z$uEaT4 zM!D}(I3{?jat?z@F2|J*xaWDk;upRKaZMB4H^iGUs|AAr8s}}wdA=N0dy==s`GZOB zH+aVo_s0Q{#b}a;lbjoXtYL*D_a&(h(Q>;!qW*_)K#Z zIc>zyDyV5C{Gm4(S*5CB7CdvrD5u6sOiSyAu2t}tKc6v*1v3nDHXSPFW{q?vZ}~Bx Ir_)&XKh(C^ZU6uP literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_unsetenv.o b/42sh/obj/builtin_unsetenv.o new file mode 100644 index 0000000000000000000000000000000000000000..c95cd843017e0b98a66f7bcdc9953a9d4db6f49c GIT binary patch literal 2808 zcma)8O>7%g5T0G6fhPdJ#gmdfW(2Sh(o0ciAGeakPvX_p%RxIg49SL<$@Fe!p!Wx7wk<-Jkq>* zGjHDaX6F6u{`BYX|M&qUA7F#rhg@aYB$1KsMcyXk9q3a&wn}r5gpQa%93>-?rrG9_ z?e<;$RBrmzf4b;h<{iQ#=;3|D#p`IhJVgEGb;AkK8=t@vW!xK2uU5;ZX6f@3 z-mZM#7^{JZ-IEEtaf;rcI9XP#m$!@siw_47&HWjOUN< zInTg#&@{8C&D3yrh2H%hT;h169B-84aTP)UMbRfI&R@A?If&kTw>aKce9|)F5!rW$ zkLnU5hY&g-QSkR5pXK-I8M@>@o2p4(QNjV-k~ zb?Xw`qIqgFck_B~gOF7tx1qLcNUHHf~A?+aYdtz%0g>o{^#Z3X$@F^{#CUE7)7 z8eVgtSGJ#xp5IT7tsG7rX*Jdz`zBSXm0MrADm8QKn;*B^?N)BX(Ka?0Q9F25UAdNd z<-0MutjWpA)5ntwX02YTSjmx8CY4D(VwCZP85+r;k{UjgI`}BmYeqWXD3$G!B_tlI zx@nu%Ldt;jR2>o0vx}9vf}S2eR4)Se-tmHxWkXfBi(nM>8t4mvQ>##dIqHBkAUzaG zFkd95+!q;;;#e^`g~qrv+V6`z9eO78aQJBA`7rJf1DTtSCh(yg?o!zx_#)4RLb%6D z6v)AUz!C5>mc>2J0oo1-!($|nsM>3S^~o0s=Sdr&iKxByE@^SDO*ctPe2*F^3KJh((c6H%ZExvOlOja zu95@_N`{{^x^!-wndSFFM)ISxqo|)mrmQJmst8?SB+8pilrA^@UnG89g`!38PU2ff zKwTsPl+K(0X(=Yf!v4T2deKVvBWM05uy$K)J&Z+S@5qPuiQk7W(MN_Su$830BKxqF zXbohky5zSg=2Em??^l8-I)i8%$Q-VobTn`Wq~)Ot8=d^JQ5a z4f|0`Ot5&CJutxnSJ>b*3uM`VGRtB(a#xnIEaH5^d@a_eG1<4U>I>Vlg5lv>?<3=~ zL-gl`8#8n_O0*9>DKBtISW#*?aX+CthpS^45;)SSgSP8o&}MA< dB{b%%pcQmm*Xku}wrtuJ3!EVwE0|@(`4<`pf$;zU literal 0 HcmV?d00001 diff --git a/42sh/obj/command_getoutput.o b/42sh/obj/command_getoutput.o new file mode 100644 index 0000000000000000000000000000000000000000..41121df3932b98c65f7a5bbab3c00694be00a91c GIT binary patch literal 6472 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/copy_cut_paste.o b/42sh/obj/copy_cut_paste.o new file mode 100644 index 0000000000000000000000000000000000000000..9d52813aa02108fed745a7403c68dd9e2acad41d GIT binary patch literal 5184 zcmb7Ie{5679lvMip6w*qP6Am6gnAvYF<~ck84Jveq{Y+2A`>c*1qu3aY~vU?w&foo zFtV|@w0Sj5pp9-qZRyaa?T-~z(>ASLH$Y54`Df8IZTvB5sH75++R^ooEo-ZGpYOeU ziT#olcFNuNzCZ4B-|zSC-JSEt_uu)*#hBt`Xiyta{VJLOD$1u(f5=65(Z=6oio0kG ziYj?vGO8^kMA7w9a;#+bO@4P|aQ8fK^#bGw3gMA2Jpfoif(CY+h*flbs93ZZP+i~F zx4Um%;Ff;4=S56H3kk(qTXa2MEEUq(loaZEy?>Tp7RF9b?P$gv^(_2JB!|i=9iT!3 z|Gv@p#MkDmJ}ZGC>8Cd$(?@jsCM`CA#2p)cxRA(l-gvCwwBcWisIquIo-X&1#CiN%GB z{|nFB7x%}D<@1@Oo{f!=dkg&ghxG5XbZFIm{WI}$Lx;oy+x`2N{JvI8yo(QrC;ZFD z;&!|XHoQMQAYSQ6e$jZZNxZAlzkfX-9u5ToY4^{d!vn>N_thmPU(?#wH=Y|ooF%=S zJ)F)abbZIR8e8^?#5*8`w}D5W%pmrk{B&%1$zlCq0jp~cu%8Ehd9YaP+v}af5d(1i z49lqmnfrdzS%GMe_a%vUPr1og>^0b_zd{;BnYX5ZQ%ExeJ=Eq1B{1HaTs%dm;%W*8M zC=j-G6%kg@rB6vdu!vr9+`$0?0V!j5v&;;ZZ)Qi$ltWe_^h?g&6v$hX!UNC%OBC><&vI{6-&ub zoOSLg0;Dr_ICm%!>+F8CILt~Tc@`gz6<9i3Vh2lld~B4+7&W7;kSwu$uE>h%qe;C) z50O{_C!#L-OfH)Wl(WTjDw|9M2!Wm`X?BQZl3Av-C~LfJ-0AhJE4(dAD?)dKAZ%57 z8=cfddCn17{AY-;RTa`xp^*HH^O6)Pyt0Wd~u*-CZ}v z(~dFb6iD|3O$-V%%07;&^+Zs?ij%sZ<8C=qXzj#Ti4#Ag0gbv>t^Gjx)!; zEey`01(&Y~?n%rAZuk|!(dWeYchRVHWUGpLhy)F;DG(|*g=>HwD1%ehD;PUQ^C|0T z>>Td;I$WW1JI*A2NtPkDvjMv3`!Z5_~(g15vvFq65PB$ zWJATe!H6e+$QR4!2eF|mgeu(|R44|*aYEXFyOZ#!kdC$^>3?;5?Y-X}`_czp$0wV< z_ukZsc;M`@1muTNpGAEEl{OINlYF2w)7g(gxg`;$do>9dK08xH>mo(8CS*m6BnQ&| zBN1Urt4|8kB~t-wtH>{dKY z{oBl-^<}a?um5Ss<4erFW7=(l-Po*YC;ecH*=1n2^FOAY^k;$H5SGcoz6nc3`M|pb ztwKJdD)zIMb(V{T&U7}ODJPPh=`Z$dtd|sz6gzeK-d%7k1JKlkhG}QW(-jPD5#}+^ zF7%vR74B|yZ{RL9%JJt^Q@n96SJe{ts&DW%5=FUBJ zjdD+zyC%3pEpy*qVdnfH`-)#v2;leP!+`b2ro~bi%(ukr~Hc z?t#cLf#6@lyixv{F#p19d|i|`hULs;k1&ui$4Tye4q=HjwV7VL$Umi4cspbrVZKsi zV$C4$p5Tv!ITGenFP`U1FV?%Z42W}4z=89GPd+z8(S&Ymn74?i6!nZl#hzlU73=I{ zEO-wq-2i$E)C>9sDE4;nbxALP;{FSs1I0-bdfB+!(Sg^_qHUlbPL z=?zE5=!%yi^&v}?^FoX%LiB1Rv4Ah-^r2)bmCgzgEa~wl28mZA&@DwGnPK|jLb{X` RlI)P4!OK*qM=L^N{{<{iVcGxy literal 0 HcmV?d00001 diff --git a/42sh/obj/data_exit.o b/42sh/obj/data_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..36f4b2acc5d0c40bcb566192ce6ef4e7bea68562 GIT binary patch literal 5160 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 Ra53+dOTs~?LIncK{{S^wcWVFu literal 0 HcmV?d00001 diff --git a/42sh/obj/data_singleton.o b/42sh/obj/data_singleton.o new file mode 100644 index 0000000000000000000000000000000000000000..a8b8ea35527b220247ecd6087280e3c834c4a74a GIT binary patch literal 5356 zcmb7IeQXrR6`$SPy}k3D@6I;g#&B@Pg#xw#11@P3+>pjpP_=x8RtcN)-r7ETzPsG6 z%|}ri<)eaxv`H(dgj9t_Ra^e4NCZt(B`Q@EAxbN#qAF=xMes+ZNKuqFR7n#g+TU+> z_H19Fp(DL{@BQ}8+c$4!-t66_Pu{y>386&P3=&w|9B+%&Z zjcL|Gyf`(`z{NC+&|iLNsOC;^{?p?N{ap#h-nPGDdAPzMjs9L#$r|D!p#3Nw@EuqW zwbVC_ua+;5xLBA*e{&n=_i=OJZ%Thte`9$^hIlJ~;W~c0zkIb?a_w?{jN$!PeDhR% zyH!A+d}@4wzsk^FxxkI_)s(+Z27eQ`>CZnwMxi{oxQxmyPiqNd_|u=UZ%@GSfh8SYM|yhI#t-czIv3T(Ipeo2HI9t^8#b_%!@6 z)I->RYRwz`xuf=Q4XYarXsj=nmA{S3-)ZGfsUji7Xeg71=dDyMOOK87&8Yoxw+iO( zYQB%%B0lCt*1|-Sd<}!213C(O&g*6HUU0-Az6xTa>yT)#Ud2bZ-F6Nh`P<;5U-&ng zNI%|&aWD14&yn-*(8b^pd6oyClOP z{k>4S`&M_aS|+@j(=(PYmU{|$KW}@*@<_?`E9GuS^z8I7xMyTvWp5$h)3@3i6|@n) zEtwZEw>%-7(R@whYa@;*mVF8nqEhueSPqx+BcfC(k7Q-X$8srrTQW~ERO@OD8_7oi z2VKEEg~5_}0m}<_zv}>$%nMk)QbMKA`{SOFqMNTdqhfDm2zKl}*%u3N44uzl`` zd<|RG4pqdoW;Gtbq}J^ist0dMi$+E}sT3CAwVH2Dr0+&Fec0*);a=%rA1gyX=X?o(!- zZ{umEC$H+d1tI&uQvgiPC6v7S{PGi`n)gR#f`?UxhnX!gTqu^&RmL&Ya%M zp2VeDA~0)8XTxH)P$J)BoQL~D5+P%5YTp=0M?xT8r*1+uVd&CsJSH`3BQYk zF#^P_q1yvW-V=4fdNpm8Rf6yyNL!=lgf$N72DLst7qh+{K3l8jGS;KeOvIZM~k$TIZnMORZne^;&;|R;2bhJ=br21HqXLZ9^pYrY4LJ@YMJSU95^Os>Ke1 znTDCch{F)|g|Y7wiJ6OmJO?qdCVmPm6X~%|gVRA|6~jFPiQz_8BV1u_gZ*nz_15_B z!3=G&^}4dqI$!+z&B&f9x=r6*K5N@iWMSiG-H?C4@L8o=9r& zoBU0vHbadi&xdLXY9@IpRMSxBB;SBKlVdYbv&nx!y@P5C)c#}~?~!UN)QzH6Rg)*W_5#edmGD{ zkyX&-TCZS6)*Z$O9%|Two%MA!um_h4 z<1!qYe?j+oSn1goI?-DH0igAI*a_o9h;2Lr27mXoF(xwu$>yN;_%PURv&$L-m%C&s zqu&Qj?x$sp{t;+$uYFd}C9S8R$sL4wW`wZ|zUs$apN)0gJ}`)c$ua{|fg&UuF-=5; z{A7S^KXdHR^UL@Awjc5!h}DEPTR?2AG}Ob|6Z$2_b~C^Kk4*+XvLJjQ$%Z`1_#*fn zV#x0$<_wbq#X$TpJ*`_4S}(cxdj{(Rx38JjLVbpEIFFJ{_b zx#o7fa%k=Kx0{X~S_r?RNYuAL-vj*wbOyu&^cLu!APf2B7G4SBA>>};Za4rs3VIgw z0_Zi+o1k|=H$W{&R3~UX=*yr7KvmGApyQxZpqD|cwRnx(Ii28W&w&WBn$IF21nVy$ zmSkncQ%8s=Q9-;z2-QHi@z_`h37tcypgm9#px_Mz_uQH4EiCplW>r)W>nR}?T?MhW z5n?u!OO`D{EN;q*R|z4WDHR?MAR(SeWyNwyi1kxJth0o8uoT366XJnXZ)9~O#G8ctdE3PX%%!8Dj{BoY9Q}LLcF<^6>kGVEXyjZtips?os|{uW?2BX+iHKCJfEvy3C!EHj@pV2Z&EA}+37zn|wzFl+k1^$i+0RA!wBzz3xS4-KiRZ0O6xP^>#*Jb26_z?me`>N#m$~gG- z5TNQu0u-2+@QPYsH2p&wzt&hcjb_1nH)xTxW+s}pn$hSZW>fTn8H?@)A2;==uj@#d zSQ^-MEK+Mxn^vMW&EMMXuZVh<1{MjkQe*hPu24VmJ literal 0 HcmV?d00001 diff --git a/42sh/obj/do_job_notification.o b/42sh/obj/do_job_notification.o new file mode 100644 index 0000000000000000000000000000000000000000..9dd64dd4e02d646cdb91a74c19569a75e3682ca5 GIT binary patch literal 4948 zcma)AYit}>6}~gOGduRK*BjdnPMpUk&Z7yjoo8#cAvkSPZ9)odh}#5O4eQylcf)#j z*_ln_riRcw6xRenBP1$>RHR4*R354V0z@E%q9{TL1pQHdfGp9d4U`h`BQ-6;eBYfr zX1z&Bu5|9X-?`_0bME8Zz4mY4`}==lLTC|z3KE4}G*G1>C<`DN;#-tg;z7rh@(D3G z1tq1%*|zT<_7#A#?R`7<@B1GPTb&F7g?x^vdlC!*pg?P0NP$MdU&(uguN@`XH4 zsQzg)92sbRE<`*zcc?aEgH-m|_KwH5?|o?2%U5x|qx3#bZf==F8S)j&j`V8e8{&f3 zl?R&YK+wD?Uv_Ay>K@|y&5bYQ`f0=Z{rxI^Q0}S5&Ls(o(k* zL9<~$g83qeC1qoLFR1ey#y8e_J3gm8ih25Wt@Ko(l(X$UJL*SVRD5Y=d=Y$1nMG~E zJ%wgNd~V(zu3~qC0gd;;l;Rr*y2VAsry%c`eAuQA&vUU*l8lY>O{;wPMtA_#MYrM> z@o`a>I*+XvFeR?*dEMGT*(}JJAG;A8yxW#tM3OY zW4sQKnb`SOW|G3@wal^cYohh|YwS7wp#(mQ&TB#Ev>g3&ZbRnumY+cVcrn|PgVQ@E z^~}UCLSh&u@0-{;CH;?0gKs(f5CUfbzUj$+*;UuP`smy)IjUdTGLr*V=Gc^$q4mVA zxiXU(_+8dA6B+9&#;Vu{Qk>bQhTAGDdb@~pLhkBfH$*-1+eYvs?XqU=< zVYuLA{X)6a>xk{VY0`W4Joa$Gwr}%BFE4KLX;CQo;-K&ulkj9+$cf4bt3uB9d8o5hWSbpA4A`_09a$g0 zr9(9zSA}m67qcUxSjNm{MbhCy)${F2wd}YaU5W+I#}}mHTDb60+V%=hyMk5y2Njlt zwUSpDDY>~cnM-^X_@m_{uu#ST847Fh@;Qu3+9R7HzqFPOVzS9Br(mC#@>ts_P4F zp0+aCZbXtPvnx4IYr`4Wdtq$T2AU(u`{MV{FHqScXtrVYiFzAq&WkO$zrjb3l z4D9!Utd$>*$G7pWIgX2ncM(3ppzQ_{TOxb?@;g=Tjc*-*e-7Bqg$I{d| z78n0aJ^$@|_!HfsgueX6(}W3a;PK0}!I6T{9)%#sf~t6omWyUC1kt z*C1~~-h;Ft;51|tgd2ANG6g<#2_EwK&?ww`ns_9XiD^O;vqzb@>ooBgC=)l2CZ1kp zV)oL+gvR~D!h=o|cV3xz$Y|oh<0}b;*-sO%1I5L3q^T2?@?s{_#1p2xn4L5+sT4g= zEKN)W<;4V~iE~vZCL>ME3PsN=i6$OdW#ZL96R#UJkQWC{yib&gxj++FSp~sOqsc*~ zy#C*LjNz>D%wj}XIB%4o4vo+}rYzdidxds5rKJ)v>r3!r#EaN*okTM;YP=BJlc|&X zgDpWqVQ=88i@%UTdq3HNTH`k$TEk-puM4MG^ zgA!@g472$WL;sG^e85;_`bKQnXf{7$q|Duhwbjtkj9JT#B%ra?hyZr#tJ{q(;8^cV zhGpiB`88t!V6@k0H4hkVK{JA8*8%*(>^2g;#`0&4)x*Zx-NqKcXXlPmW8$XOAqO|@ z##bYi-9~eyZ9ke@braixaIZkHUp?ocG3lPO&@pHxChebv#`JnB(3oJ)Cjx!fN1?HJ zJ=+xi05te|c->mi_XgPPQ+k!sOO%G9zsYNddNXt@15#xLbR87C8ZggheZSv;Pd4Ce z10HO^D&o^SG8p(^m=^|N@BmPU%MUoHXP_+*!Z yauxhH$sZ0ltL|v|kQ=n+<9^J>!xI152uuYJM|BjBd>>Cs83ZhzU#?Vuh4?Qv3kwkd literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_ampersand.o b/42sh/obj/exec_ampersand.o new file mode 100644 index 0000000000000000000000000000000000000000..dad02cc2e4400dd61e9a0aaa9fa2820c3abbd65f GIT binary patch literal 3116 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 A7ytkO literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_command.o b/42sh/obj/exec_command.o new file mode 100644 index 0000000000000000000000000000000000000000..176695299a195d3ac3e3f03f15ed945a814c19a7 GIT binary patch literal 5844 zcma)Adu&_P89#P%AGQ~ z7Sys%>8eH<6AyJv+8?WUZ9{At8)!^}4XtRQLkuPm12Ij}3L*#?5Ai4AA>_Tdk-TT6L|Ec=7UUh5uEBojBD-PWt7r45A&1yY6mA`w> z(x2>KDV47Fx30?Hn#1@&`Foo{o7FQ4>TC>-<#CHPqV7^ zO&3QoPS36scIOHi+upM2w5bpy%3nf(C*Y4=-H-jJ*1XD}Gh%1USY5wDbv!tv{Pin; zt za_p2CA9%Upz@^fH?)%N;*i<+v>v0ZOeTr<2cwZO%j%#srq z_-tT0IY|k~!1QE4XIF~J$^I2PrM&Ni^t+N_dFO=@JtGid7C){$n$JyifnT@?Wnkrf`tyNfquQax)| zyCZ^TfrZEwJdtue;n_o8*>Qxcc+PW1MY>q$HdRXjvA&(7vk!{UbG5Jcv#%;|L) zSvFU8Pj|+%^Es@6>oYa$qQDD;H;O5QJEuIFE4m_W=cHdRO@>aS?V<#*qKfAOJuT8{ zSj?=AoDZ&|oOO6|OOAu-VeWhKfly;;S-e@RiCcPGyfM^-qaE%B*c9rI*2KRayC`;U z-R9;?>JXqb5mwMMGb5yNU)WkQ$Vh9;}gP?&iAIx_lgxMUbiN|8}htN?E+s(~X z`VfGkyhgF50Zuq^tOH$r@&y;QnOIIML{&ai%qtHHA=Lh~}lJwhj%p zuye8428iNYIIMoKHf6M|6Dxr-ZStASgB#XNSPy{E)!ShZY6u-9s|nw+XGH3^A+HVJ zQThwDMjfu9ja&&HYKp=Ow4Fz(HGfK4heYA46=R+G28kEp1t(6P#14olE=Wfwm&t zQ5#ta?HEWqPxj_Th^wg1kM)6>+7f9Y{V!$hO+cluudy}#ByBH2riXMI=?&Tc z&^V-Mf>R!JG>Qo|Bd?-t2OLB(p;n|8R!69HaMS76Lo`N^y$P$>Ip%v{t+A%aC*a57 zJ~n3;$K)!A)%ZG_rq6#}&hYQJdY4sHWhXM~#0hgtImWG$j`9oRw^O!ayUV2Y9zc=hh`uUH25yZ2w^>B*ZAGAZ{8$+(-)IsUyUL$O%Vc{|PZ7aPE6}!VjzvBb?I(16b$0>?i2gBc}_d}Tw{3?XS$8;U~JYJ8SR}r=o3Z5o- zYozlP-e!9$Zn;NkJ-Ib~7tTf8o82DyG^nx!F6O*m@V-F<^5N1w!YiC#3o_PRJy4)v z3QMUn-a)<*FZjMB|0(drnVN`zw!G>46>)XPTdClci+SHL?|Q1Te)peZ6~-cL0R zAuSgDvli6{wZ`?Dv0lGiJ4g4l#e-VypcaAF1}!nDp?n^+1bB2%3-8d(L9I!@SZf8a zc)b=L)E4O1XeKoMAry>gH4qK`8vO%a6SX$8qR~gKzFliOqQo&R4k)be`lGBE)+=a{ zKt;2_8}u>AgL);b%e$hm#m*P2KZ)h z%xhOKI3~M`9|ZDs;P9jOD85|r#fpQ;@){V?ZVY+@gdklGVU{W`uF|`z^rclg>&~v< zSf$@lrEja!gEI`+Pkgr7sZ1t#F53B2rH~$(c|O`%ypQp^%v4GOPh&5IeODOHJ6^FM z{I@jzxy9?&5q!zwFCaX!?NUWP3T-^2hf?Vqhs(uEAu|Wg7Rycm&v~#14co4Rf0&&# Gdig*9eU^>@ literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_dgreat.o b/42sh/obj/exec_dgreat.o new file mode 100644 index 0000000000000000000000000000000000000000..4f5329280a2a26f5ae8422e5cdcdc29035f8c7d8 GIT binary patch literal 3860 zcma)9ZEPIH8J^v{*}L=E=d&G>G~weK2b>^$=X}-_hY-N%Vgf>d)2alm&Ub73((|5s zyG~3q}8Abx;^K%huK)2glDPb27$3Is@zaMVyD2p=JRp4r*t z?g&jr_s;tzI)%sVrC?|yUQ`?I3}ZI_&}nF-tTYszHXxBg<& z-M59!BE-3qlR{alKmu9UW}_D3RjNg0ZpHgRmsKA-2XB z;)Tn2alFFxbj7jV!W6^%!F;E5d_y{{GZ&37z^jgJR~y_K-}4%8xyHM`O$+B)%X}N+ zn=TYv@&3_*cmE~g`43EAaK4{wydE9J?=BG!hfYDZ#uwH35zhCq_VW|fQp{L_2hg6B-y<2CGV(80Ew?}NO?yGi4{uko}h zl0r;|GWoglTXq#<>wNcXyi>Z<;*LNl{YZRVmo#0H!9p|m#h{A5kNysxXEW$7P-EeI zN%~4`Y`UmCny-JF-#4FmGl3Cb`y*iT^*yKabEJ*@)%To)26`y{k~mJh`tbbR@O*vv zxYp-JkJk_U1r7PRVe}IDeMi#y`cdusiT29Rtz+k-d+Et&Ifn9CbtJ#G9Z&J`pJBYIDi-PA1-yZX8jw3wH%f2%uidENlT;KM}yU>El_PNW2 z8q!Z0p;xNzL}teI$`h_r$`G#NjQgTio|yE7TP-<&#sEt4&PhBFXi!WcsEWNy1-}q< zQPK>%D5>U@$~CkE+|%3@#Y)w4#LjB1ghs_?0#=+X)Wmp6czmEpMwfAQsz*jrX=`b! z%jm|En^_pUjhoscsh=lrNcOdF?%BvRm%`Mh%{{oi*EXqgxrn50OeT?dR;QptY#~?x zAw;~#h@_H9;t7%HfbZrWDuYPlHa^D5MGX$(YlZ2 zwr)j}(P_+*Ma+Y<<4S)Bb<{jKeS})q=|HR8j3JC}x(YeQDr)^6%&Mb`J%(yK$n1^t zMbDVsiCy6Tq-lZKD-y&!M(r}VBwm5^1+|4{Z#wZ>s4X&k7mK#oN6;SuMX!v_gB=1z zw#nzfVsVQjS!a}tfZl;1d*bhcEtYE%AAtA6EZ1>Nj+Up>>QbqG;h&ieYlk36a@+#$_@PEqQTyKT7jH6j6>AL}yWmt5=k-ukC zowz-nqv*@-JeXi?|8ZX+2^~LtZ}dS)ib|7JhEc`ulIEwUvlWb?=3B6 z9^ZZHh3XZLAA9?%KYem))rs%he*4OY*Zk*=-Rr(RJo=l%FWw;k_8zc427L)iU=c0{ zafP{%qo7I9gP=!2&w^eC9R>XhbOOWxnb;J$@cMCOuF%Bv(I%!iP0U3cVHPG9P0YT9 zGz6JN6H`!|ctmL8nb9UD9!*THMc^opfM_}f(q7znnwSMT2u_VA=9KngBGJU$(pWqh zH1UGap)y%%V*YB=A?@`MxW;-;o94mwh&*iU$kV62nEy2K$Y|65OPd%{g4>NAs_2`D z2u&qSBV*Uy!kA4P>GoLs0K6E;<)9}|6XopL@Fo+RQt5}yTROtO2`AxWiUX((KhoAGKnt>wyV2G=)Rya&9TdTl(>`26901e|*LvXe}mzy~sN zU%zlrqWD8rsNo$AoRFD32C76l4Vi3%azs!X<9?F z?=}~gh_z4lS@CY!X+4eh5o^Y@Fhkz3!0xYrBeD$+I6~>a4;)eSZ`67Y zTtfdDIQ%T?vKqWWReRH@;}ff?o!|P6?Rp%I24**YT;Nl| nFJKwniHhS_U13+J9n@;Q@#hh5z9aa)<0}-O9`?AedK2t_;?*Z- literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_great.o b/42sh/obj/exec_great.o new file mode 100644 index 0000000000000000000000000000000000000000..49a86d0f973c19ccbcc2a936d6033f048430dc7e GIT binary patch literal 3856 zcma)9ZEPDw8lGKe)^?mYPEy)HDfk+osYL9Qwh&#zwFPo=Ly-^=K(uIa?2Y5%taIK? z8=$>b>giNpq`Q_c-4Aq73Cb@J5+ETE2vI~qfZz`WA%1`WsS>Hmm$)8P={?WvZ0ndp zJMug4$Gr2*J2UUhtUvhq=r2(rjEF!5Y5`42RA~^(g`nd!{ziEq7BuW-ACyoBrXY3D zh+^BmGvfzxpx-up=WS>7P@2^O@i=T-QV5H-7O{&gEVf;A#->ZQ=hu|Uwr{v&{VjhE zn?;DTk&{AMtUv-;*Jh&@;#H~zWp2j%SmT6!N}SyMa#p%OaWkl~aK0pc zB{nvlQy$ILzs~KROTT8|!g~2hz~t&Xj^}1cYx%41_!b&yXX-g|gn0Ggx!K{l`tT90 z&yF6c?|mB$x!Ga#61m;4r*ic}+V?B%m7877&WCoL%s^%!-B+mK*61G`fRb5tRc6I<;nfORXT}LCyHs=Xex@L@qaHeD zOWUejiuvrStGo$8r=VSwU0>uqU-Xy>eu2(L(PBBfmiZkwuTDdgg3%6Qy0F42ZtzNy!!bsi72$~p{TbkSAFdswwte*?4XsG<*}ngE%-u_>^$ z*%hbfM>H)kdqsQ)q{GxMfJ^*&NIc2rLbEp&e<{=!nY}%tHTnhge}GypiOzxT14TB= z{b13U#gVL&N=85jA;|97`(QnCW&C6CewgKIj`l1Vw;-xe7baFgjLA!thr<5@d#{64VJ+oo*0=1s29;%4bi#qZbv+|u ziyX_aPbeG)q#JvYb`sUu*)OqBhhra)CaUuQ4 z_8*_AE_vkeo0mTI)sHKV{?hu_7eBw^*sI%DpExl3mjlnPk?(#8EN(1!G>%2M7?cHF z2O0%UfF1z-6SN=n0_YIvQ_xWm1H1=}A{U-d2nr!-V)|$kQ=BH|B91T%6N@Hp=|UQU zIA~%DY7>tLO*}K&M4cw);v#Sq<~~h_LE4KOPZP612f>kOVoqrj6X(>a@GcYUlc~R(*S800FT^qUnBrfk4dXtk$ySm4jE$w|Mt?S@qs{qT&6+`v^4k^kpWPJAn)22;|_& zgVKWkWBD51(ZC6*dHNoXbQm(x8rv*etr6KdB%?#J&AL%8g%%x=(wEDvYo%!o$z}hM z?bbdtj>zsIX^vRCkG>=Lz~dtn-yZh3uR4qW1KhJE9smFU literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_less.o b/42sh/obj/exec_less.o new file mode 100644 index 0000000000000000000000000000000000000000..14dd6f7397ba46fb73612a572a8b771d10941d70 GIT binary patch literal 3848 zcma)9TWnm#8J@Gdb9UEjuh-t-q~yX92Pdd_*SS%bI3#W{+L%;oA)%-xJzeh}+Y6hs zX3yEgAxRU-2xVo7i@3a?mheE{KtY1Ow3Ub&HL6h6yfhDaA}UCca6|$Tb&E*)eRJl- z>m`tk_MiVU|9tb$%s(?{|M|a5*P=ogVSx%10ZmC%84$`3K=U+yM|mdZH@w6?D1i=4 zLF%Lt#j-qm+Vf>!-!<~Yt_3}iX0$*&4jV}dVbT^6N6CU>StWa{K4H0DO_?m~p&h+T^YN-J_1nb5p;M5p@y+Y=5X|>j`@%%E)H2^;MtSbcn!Pjcd)F*_rZ3Jw_W3%)p%MJ z2_Yr}nf%82EjtRab-qV6-WA;`)!_?Ien)&+hagjKUk-6ECxyHyvtDSy!y!w&))mfRf#`A-n!w;ns>dd)oFZt75xuwkUGDUG&RM?5{pm zD&#h8a3=+QRI?~Mo+!AU@T@VfX4}HmyzJR~MX~C5w&PiD`B}7}vOMl=p@x)GM(CBQ zGm)t~Zh6A7OBupd>~T-j$`g~GaH=I6&=^2T?hT2D01b*M1XZzjso)j-E=sDii;`+~ zsa!*g&t1(OQLI#5TkNmaN@!H9?z7@#p(e&l!sVkxGP;a=l4%)Erp)EZE~6Vs5z4~Y zZESA~Cm%>`Nvv((k>1ACmLjB0JJPtZH!V`-8WB!Dm`EVm%uYdvXb+eVAw(=~gp-K` z@q~zXz;{QQ${MOD8tPpp+M*Yr9|J{JMd!d?1cjfJZ-PZ* zCPy;AQ8EHL1wp1`AAv2C8{-_WA7;6kV}1^88@2l}riczgJWv0n@&Z{b%1?@`6z@n} z153&K;#|nXAekk?Fr@!b%Taq6(r45Lpo!=)h)JqTVm)9fc~5*5I9EunrGF;S)`fZ_ z@jhsO0?B(-G=GEmL#jQA4PY^Om-0~fce6LwTVbu{Xy#@5{uq^Mm~_H%e{48UAs{55 zD!%T&3di4m=L_b9+Gy~s@3N>bO|5;eqcr2+$|nYgF3=J>qJ%*PKKH`7IwR_8#b#?e zBjX#->zFysu?CJFOQhQOz2Erk%Aq?qIxBy5{OJ>;>*oIc>#mD;zVgM{<;BcvhpxU; zUHRI%(|5i7$<_6juC@K{gOB?@|I4AxU!U0h%!zlm$dAqf>))WSKyfU>3Q!L86VPtZ zBG1`+8{bGm9ps zpf>S{(8M#NO-wwRn2SrnQJDKQodanvZahuQ0v!aChbHEf_F^K@#N5(YJQ*}GuXU(Q zR+^Z<+QcJ9(*=;m;&G#iCs2=gN}G84v={TAUOY0|^nGa)MM`kH(c?y$@g<@xDnTk4 z&ps-Q>6DRbkH%ht7lT;=IzCUN>(_OE+v_qD{maUf3d|q;O5ke^ar@2KyD+~h$}CERJqMB91UW{%3PAsHQ#?dBtLHMHocl%8B?Zj~W(NcR0fc9^fA zaa5*()wC(eA6f$ zer66jd7tL1GzU}mH#FxMovd^j0B=&o>K2{XN^|=IEjstHxm{QbpBMO8@CsN)XQElUslGz|A7~FHc>n+a literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_or_if.o b/42sh/obj/exec_or_if.o new file mode 100644 index 0000000000000000000000000000000000000000..d317d0cb5ae17124726a64cfb492366222726a2b GIT binary patch literal 6652 zcmb7J4RBP|6~1rxy}O&g-OV3FLd?Pf0zwi<&=gUEimoZOjs-2|eD~aQ&;5Dl-n;qB$M2l<31N5zGLQ+{V<8KJkj?-_DSu9q^=`#sty7d?Q;qYa zNfWrnVzFeZuP_jUQH8`}7hk>N%1b6%%+!7@=0qWR%IpzR6*?>0%j6OYDYv(pgDXj0 zl_i2(JgvQWUtc~o!udPZzoNa9+RT@=m(KR**reRvm3lpQXui10H5|r<(5|1>zkED9 zkg`8(?}M`Oy;R&7+F!8K+8c@|l#Av5747L|5npUCK0KUB#j^1sy7!s!9@qXY)Be2t zh5otra(&mU1uplmL(kVNZ7)=-3zMvDye0k(#}noDR+ri9`jYmXn}<(3-gVlZrPp`u zm$ZkESeY#MZ-bt%;&`u{GC5FPDjRPiH-vFIu|oEybT%1_t-83h#V&0xtidg?$4{>Z z`%kZVnZ49ttUr&{bsLn&gFk9}J=)$bZBL5=(=k{qlTUoV>8!F?K3>0`uanxDqk6p2 z&+(7*qFktQHyWKsXcJdJUxGgdz6zYnas{X~u?v!3s?w@2EU$@<9f^*<9gdD|_~6}U7`fngSV|bjnX0) z`zSgtqN964(XoAQe|IgpPt|Ndx68*?zU`vph4-Rkmvpo1eLX$=`ju0Yo!-`5VsE^s ziDox-Gfo6IbGD(byJ{+SHMa6-bbJZwTwD8kpzfC0g(`0NNOiwxPjvLz@O68aixrFu z;Z>`y`dWA-mABKmY`D9vqpc%6H<3XwTiD$Jp{;9i+oE~G&L`Sa>r!qO%jIL~{yz>JuEqACaAI-W$>x$NVNaC!-Jn9TOfEYRR#`ghh-BP}yG>N7z$U7c zPbJfN)VSQ%JS*5Jk;&O9aZ@gzgo0uPmn8<{dC{K~HqSB=J$9WHFbwTJC!eBcE>AnD zA(6;somAF|+38zQgDmFo8;IxeaVik9^0$z+(*xO5GE5&bseVV~(*uLFsywz`mdcKZ zczz(kY((US9UBV$nfQRn@Pl$z%! zEmScT&nE`O^|?OiF}GEoPKx0HX6a<;|fT`6aqO@loKM6fX2j3ss-bm ztE~Y`_HZhN^<(Z@a)C*&iY0r()A)!Ojyr>Ds`~X@^>f_V3F$1dTmj>7Ck*qGaHomW zsU&yUYT^b{nM_R0TB4B8b5FpCtx!E?qt=)msJFa!3LW z%o|u*bsmD5Rd09$RaLGaYlJs&Sv`erghAgdh!<2*Ap@2(~wTEZXUhyu@lQQP1xH@ zbc+8uFu&2N6je7fXyhPJWpXAv^|nFZ_aZQ9c&Su@qDsZdF|K+YvL|S$MwOm>*1e;@Ln!M>0gwl zcp@RWq9{%EM4E*8H;DBh>rC@?uxTLkTfX^VKEIb8c|Rb;Q~pv=aAo!7U>$~BB-fz8 z`IepR^BR;m3faXzzg?`u+J5xBzbdb_l zJdtjB45iiBZE~qM@^{1C6ob(4wVFRdm4l+c)8fR0{OuDf?q5WIZUstz{EO9odItLU zvT2?56EIWGlsmMBoW;d5{{f9%)Tp-}1>0V+ME)9Fts6WQ@^@Ol0-pLM=Xa(TYYI<8 z@?kW-&xEwp6B!ofLR7o}1>ZF5AlP>*TjZ;{b!97Uy#{GLlq$pAZCs3LuyXhAvJ1;EJod7G^ybZ5ni^gxd2!+P-O%zL18V17N|DhdEn}zSOd`?h!w>E z#86|t0KSP>^ zy;ZT0v-~O~u15tTNs~MbiBnpENHSd>DN2YWVfj{3!Y-RNv2qpIWpjnM6$Z`u$XF+y$BuquMHEIwkr2aGa%JAOu_v-WjWTY(4kEsk8B%Fm%H?f8 zMf!hq8e!vX5HHnCa25SYa0~Bf95YC?i9xG(fFB%(l&T@l{%b%15XUwZgr|a-4r&3l zf@XjspxL0gpgrU1mS3J{9mxAqEmLb#bM`;kaPiJHH}0I)nQf7Oy3pw~2Se9xzhP%0 zylwqECo8`<=dNJ$ONoZ&=?6m1Yx?S&_dStp*}AH~<@h7HmWSRrzG(lA`+gp(9@*VH z_wD`PtUWr-`9ZqnsSi>u|G9Ip<%z>{-raWa+14rBkN#@!4YQtm{H-;it9Nhyuw&zv zsB!oeo zAbxh&fHI)(gSLVm0zC;j06GMEA7o-er-J5#&IerqN`OW{W1#y%kAi*=`YY%t=o3%? zpUVtT7wA&ZwV)x;M$o;WouJ=xk^A(Rl~qK0@v5aOYsA%3=m_$6zI2M!^gZ`v;&UxXOPG_)5Y zA)e(L;uVR|a*(#gFh_{-Q)}^JM2L4KJs@5S2yH~BwYF+#6F5H}Bpwaa;#r}!c=8eA z;j1BrBSJiZH8f3Y@z$UrUWBN{yOB1}@JomhS$ofTNQePaH{`)ch-anN;%P>Rhn&{p zz9Ph6r^l%7We|Bg(G7V8pcZch8miY2&uMLo=O(onMm5A^g%FP$4e{V3#DJ=8@ybJp zw;&C1{Rr`F(th#MM2N?jhW=Ne^da0az@bHH3e$vZs1%-vpT;d$3S(W!2vz(1ck7-Q z3!C1hu}?qM?S)to2;J_vsK$-IYY3Rlp>#H_ zUR$o7`mxO|_Vaguc#%@~hT#*=w2d8p|*HtuuQqOBSpO6mh!yd#%=Gs5}32 z>!j?q0vW3YCK{Gm-d=0AJYt;cJcr83X=Qn{y0W?gB$ zh+!KHr0`qKh)_SZVDn@LGASpQ73!A}{X>uY+YbJzfgf#Bf|?~j zP0snx_n-fK=Rc48pL=GGeEg43LqY_~1Tv&@q+tzN3<=N0NO9sXc&@JTD~>ChA_k{m zimG;&<=I<31t2Wz`pym4kK$q}LnrW%kG{;hNO6>l9n=>e%SyUl-pTYTMJZpAXO*h| z8l4&Q1jm$Fw5*if-QR10RMuG5%JnO*y=uhjN#)lO)$m6pd@vkGS>#J+ljr2y$-#|z zdMd^Mzj#i*M0a=I-b{bT`&Z=qK+#+%pOfjyvPmi57PX$Im7nXwKJi|xhfzkDLo zYrCK4>n$1I)y0jW{Dn9t-=;)Tx>)L8kxwm)I6q$^mrL7LCb5a`eQvyc%D*MbpZIzG z^ZByf8|4C*`ggzLo2K|~yFfnaUoMd> z{=HY_541Smm+RHQM@7l{CbOF`PS5JkY;iIv%UZp1)KrLuY9Gav@+|lmqYh&KsWmU* zv-_-`JXY6lP#O<96yI{i*D%57Q&3=g_Z7>OBk!-1k&LC|-KzMGC}%c+kI&IB@Q?E% zr#S3SJe_YqItF{bTDt&tL9)CSY3#!;nADPutvYXcUA*vieDKuT_>g>|<3l1|=sX)Q z44imGoM3CfW5wd`fz$E9;SQu6)JOgL-AliL&I_F{O86`nA-;QIEp)%(;jnV3^P`nR zYfi@t&ncRrH6O)?)*UT$#VF!K*UpL$z8NdLQdskrugF93&a?3X+1cbk&dJ%a=}ybC>5jw| z!p$e!?5(z+S*&kOiWLl2vDK?@SQFc9=Upe8iFLHLx39 z1a0eFv}^0#lHHg}v@MwD_6c?(`Gu45M8friXLWmd+ZL{pj%RNY$!x~6GoIx-x1a`@ z5cVgT&Fiy+qyc`AtsN6-mpH1NM>>;7nRssYqH< z1Dr16q(~-VF*5OT{y^a7Y&#`n?i2WmQD=%Jcf`TOW|2#H{-)?rQ`E!ZV)>j5vTQ%x z_vZ=IlJsYXvnY{2S~*{Rb~*{bFn9!8 zp{xxouPCcp9KJj}GqS4giU?w|CW1<}st%tT3&ufhnkcJU77imy>eYe)_>nqtk`)z!8~AA)s1Dpi zQ5L+buUq0DBQFo$mD^8LQx9sO)FGl;ngVS&LR2@?uUq>PxC8a?!X2S~n_0QO2SWcP zvd|;QdXR$6Mg}4ltTpjzDfkT;tPeH|a~n!$h$g_qd=#Z>@CGLao1^9vMRZZHxj|Hf z{tLVdseE#XW4;5$vTtfXg9sTqdkWLT2xE6pR1TwTg!DN;p+(4E1+MC>dL5!Ypv^Vk zMBy>$wfXepBoJF`3+Tt`V%cLvYeV^NmJ`XsFGc z3dxqCx%6`eO7t@{4}OYJ6kTv|dabbxqFkG5b}9>P8tiE&#A;g98P`GVF&3IUZOLe0 z1j4jYBBOy37-kO0MH2%fh?<=!9mjcWEDkp3MCevP4+i>|j9VaXG@HyFsAv5RtJ=RSn^XovDf!S>4+J=syVi#25$)UfY_Md3kI zRz?EwJo-ryRstH)GT6%6D!^zoT!htt4beKleQX;Aj74VyzDigF*b!Y)gtdUnMGg1r z8KlZkApBdp!wp(5YFOLDV5h|=9`)M(rXvB8{S?tzpWU>3dq z6_DI2m(u%vK=jc3aS>6F4&nue)Npr2tjB{10P?@7sbQbI!bFj9Lddr4 zmk&Sf@tH38JxCmbY~QgfJY#ot;~$dsjq4x3?cdLQXgBo-r$;9pjyCEqUFq%GYy5fN z@fq(&Bby(8?Bu%W{PMo&Gusz_GCbro6;6JzeG1zB>-N5;u34uJt?RC9yr{;W@q;r* z8{eq7cY8i$H{HFurzsh`cl*RWCmwzNrfI)><&EmbLr>MOJoKFd_wRY&@P7{MOEr1l zbDFkeBJV)@Inq9)gGhXP-$M#uq3V$s^A;mUdCsiNOX#ppv7_oPxWUQ)#ns<;@9sA7;(R*WcAal?^H2f zDeoCVsk(KPp23wW&Yx83iU%I8crqvzk3*^$ zL(~`<@~C1IR8BAkQN^I78uBowibtTbVx*;t(OX$DqEf{etyGM+R51pt9?3x!Pjh88 ztW-RFlTqiWyS&h~_Mva#H$fS*s4i{*Se{Kz#*rWBzMW+Di#?u|w-YJe zvwQ`wOnwR9`nXkPynHt8D@N!MMscmgJqdcSr(G7%zq;W7z#+yh{t}*F3FN24~lyv_uPcX%+fX&Cp*1T&6|!F0E33T8lu| zEzyEq`omIZ==*7|4{Bl5MD%{yxPolwXr$@-!!Rq;@6u`@i;bT~S6y1QY}}z1Y0He z>m~S#63jDpEZ_VRyuAd|cC7t1C0JP4d%TfanXH#`@_ztZvWdwBn1c!I0$YiXp&&iBj9^%T!SL)3py*Ls{@mmWBd`MX_nryoW7$^ zj=eRxs=K|M=rA5n`)Q9Oq0GBJEH!OPFU*uQ(`wpgO*`=B=)qUoE-ud3!t$$#ukAo2 zd-`p>YQ1Qi{dg)D$3y2-kK%M6h?g%En)(Tjw=+H$Z%)8$6t7}T*LjE^Z(hXro4|{6 z@j;i|`mK>~GjEi1^M1Ue9oZ1w7I+S--FA4m>ru-W?GXL(xp;0F*T>5@8dY60@-+_c zzI=~~+4qQm{#Z9Y2d`c@ZZEJuzE1?+Hi7q4NOV?(FJDi5jeOCM_pJ}_wGHA~CmRpU z_lCf`A>wIn5D$mWhV;jGnGZb3&3Cff(LJp%-(tOnJS}a;n5`I7nl^F3<4a2dFDZ;I z;IZjC_McdDAD&*;rkhw@XMm=4-Up$eW8d!x`dHuzmBK`2x6jhuf7Oa%Bl`2r3cMf0 zplc%Er8VN?y2RNx3tHW&zRaQ|-cRfH4`ml`W*2V7vy1QC z%f8RNFT3z#e2E9H>H~{oe+$!Y_sing9ow|?Qg-2T{OI?ie14J>6Ng_-p3s|SrEVlg zQkhgHxuaOcp&uH_KuPTyPVIb>%w{pIw{)k`Oube~6)Anl#JF^6wtjpnpWZcWmWh4r z&r~ri%9|EhTES}SI+;RNEWJj>x?$;trJ0pEd_kjGyg>OTc8+a?UacFY1NQ6RcE9LBOJF=C6_58;f#i@pyd za$g8<1%1J$&GI0HPNDZDYY)kTq0mM2erBy-9*l=RceRJ*!2#-4d262m2e+zMAwB>H zjs(v`bcGb22|MVG(JZIsG74yuqdQO9?5T@)IcGZ&$du#KF_umKu`3`i{(3$<8}nv% z1o3H+U7T__OQV|IEyv3Fmg)`st&)SGO$w{@3YmPVZiB;M)TD z9QXp5U;Zm#t^;FmdHTU1UI#YuBJn{7@hY&1mqmDSE!o8N7badLHgPqvx0txTY~qp& ztpBS*7cz7+!w3=^hY>o+t%@{vkfc^ziuZPf&cchQcno}PnNe0&+>J-0(fE7v%MoV{ ziN1r6Oz)zVq~&M?t;BPHCHJu73>T|2Q+RIDGiEa_v~=a!k>@%s=1DWHiHE6u1K@%H zn0@$DWj->F2l`knamb#*J(+ncU; zw>!J}K?$isTK53=|g`BY9yeoMAQdf`r;x}1rukH`9H}V)X4@mf2S%2#Fa1&p^v77H;DE6KOp*D+w)5Fq)<^WWb7*8}37=Ks zoX-u<-*fO6Q@Tb5f6i!q+;(eKsfNEV5AD0>ipgU<9E_skgWTNm5o(0KzhXHj)j@xM zTxKoAi_yl_QeI}^`^%1wR-Hp~zsutD{ryR~xlwZiVDeAR4e+;Ok=m&Exuj*Ia|B;{-Ro6P29h{5=Lf9mHD*Y}sLREmyW%1$!8tM=Qb z;ya+i`rx|pdH%|y2jveOjIW^ltylhbH7j9>1@_wzUnQFh`g=OyZ}JBH)s9xKx!<2E zeU zABeVjeG2M;KWD-otK!%776kjteahdU^4F*QDJbxBPxvyqUvI@iNqP+K_oVWdR0&vt zKaS+5#K&`yy)f=IOa{M-1be31Yv50UQ@#(>IA}{!uWX#UuDsuxdE1(PH)YKnzxe9# z0`0BY;}@;z?V|PT{LNn-{+P;lPRNB}h^4(|P4|n| z6Zg|n&CTw;V9my?+}n*ST%T<9gOn*i|1#C=Vyl(rq60K!wc`6 zT3lRIfy@qnY)zj_J^DMW=kN>MLxEpih(TZP^N25ad}=woo;z`M8&-u9@Z-ZFc9qng zJrC?n9dfE}pt?={xeE{jrcc$;SO}N!u#yR5TGGjHHJe?Dn{VrBz z#t)Yd=Chg2ce)c|T+U5qE5fs)|e|X@xayS35rSH;Y~EUqCVGoe;ta zP77hQYvDvZ?g6t!E+y#4!svRyZSgqFVy##sMAJ&R+K3v7>k>D!#9L?PedOKI#hftP;(7GiH7UoxWD@g7^!Fkw>DhgPGA7-_-I~Jfh~6&xwB+ z+5_)n!symytgWF_m48Xhpp&6f6LUoCYVZk^KL~E5XeweyA?qjbxC~^r8#=^Q<|cVi zKY(oB#Z9zAIzzN&*+H3I`peLEaAsv2_mwnnH+#W9q$g(%fKf17~RFM%oYhs5jITG4BED-R3KyJpiUEBv!k4T^Z83VUb%FxAF>5v?nym3 z2Tz~)vwUFqeigjRFFO3<|6{|C9m+>^&^bmJ#Q4Iven#YHQV9B_p5H0TypyAp<-3_M z54T-d{oW@{PyA>=|3lx@lkwjiyX*4mO{MOEXa2tM(M#p-XWu-x?)3hzoqp!S^K0(D zrCNDt?yIMNK7Z@`FD!g?M=tg3v6;Vpa4gw;=*;fkcVAzCKW11HHrNg71ML7k3aWsn zLEi>3gMJNq1N0W?AD}1>dJQNI8UitG@F$o_UEmnZ1*(`H+%^WYgeoRhr_>16B2~i>!JqWJGGcYz>%U%TOw26W24zl!}=}6_ZVc$5Nq+wWF+9wN$av zm5MEgDs~~Y2^I=fEG1>d8mEe-uT(5Ss#uk3A(NIWX0X~9yA4%r3(AU3iz@apWyRJ+ z6?>I(|G)CiL{2exVBI)Wo1vp+!%s);@qI!&lGKvTX7nVi`0|@TC;v%ji;I4n5<`jP zH$ppFyu$J}9TMMzrKVj@wBX6}W58OWlq=TrxUFaEZZ)G&rm(4h%W{o-)Xm5XfP3Xe zA%wh?rzhx0UM-{~uK=FXTL2lysXqAtD4wOeNCb(Tt>Ql7tq>7I#9-}>aJQyMntrQC z>$+*|*6|lM#`XBG^d^XHTXl1*9y4CjL&l4kk9O!SPom zY1?Se_SA@12k<}uj|6aE01J6TwDaRtCyUD+bHHwti;n9Gd+BcJS-8$*K^d2;c417( gS^PhC1yl;SYI^3`$qH_(m{l16!c9u#Ukio!FTW9mVE_OC literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_findexec.o b/42sh/obj/ft_findexec.o new file mode 100644 index 0000000000000000000000000000000000000000..0e9cb0408b3d4c311c1620db4a6d6aa17b5d151d GIT binary patch literal 4740 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 F_J8<*6es`y literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_putast.o b/42sh/obj/ft_putast.o new file mode 100644 index 0000000000000000000000000000000000000000..68bc619fd146569bb4c6b0f2091a63c26756021a GIT binary patch literal 3896 zcmbtWZERCj7(VxQx9!@k>lkc^AXmP@*^Li%fiX5=T3`qn9}-1xy0+VjTU*+012PN* zR3;kX2gVFJ5~h8NcFda(oR>Mu2B)9|Jhube_B^aA|#W z<$ahX`8M0f!e%?rf zJUr5V^~VU6L+zvC{Y|Y-bgPQ4RMCA+EXPS$t`cSxBw&3`g6${2HkPm#Q#%PB#c-Yl zu>eeg{dE#9(NBgCRl@!z-HCpsqOXlbH7EL>itZnadY$O&D#~4!YcF%6&#CBxV^PzI z^5@L1YW`R>=tQ@vD7O?}xl`Jh zZ_ev>elz>^o5Jm#qK$8x+0n6OojDlKWD}{R*%WFFHJbCHeRz=XZfb-PTCym#aK6Z9 zq7D6#M6#hfXQc;nk!&s$6%CuS7}wAu?JkkbiC82T$q%u$0S>XXOgxszAd<(d#H8S$XkRKD7elE`3<)+2 zsx{t4Jp|_jt<~oWEcGw*&#hQpvjX?ZWe8omR@dMc zY)O%6R0(?BvxFpM_-ibM|y2{^$;v!q|mt^ zXQz3LVW9UJboA;q<+}ir^~FA(`;&Ctqt6t+SD<}B>t21PS9srndXQ$F`vrjE^_~G7 zqi2$zqk?+9?`_~;bcM+9GqfFCV*{<b3q00IxpXPPC`FlOz}6wJB$CQiB29v5jqE z3=~Q#Y_GE2w)NeY3%vEv>`x2~$(+Kmbd`?1j`m-2IG!?*WN0pkCfq;+Pp@B)kBu?b zOPwbH&$6wvTK?nmLHK^0*u3M!qt&BRj(&Y=`tb`_7EW25oc882<80&JgZ?XTq^1Qc z2H(1T&G+OZuRd`iY91Ya7h}#szJ>e>DZ?ankOh$CkPVP1WDqg};gJCdo}pR@+DQmq zJP&mcG;Ri6+#l)UA)|}u4p)ec$B8ZyNG_fTx_F4Bi(5?>w{aE_jayC^4}{F(nWT%y zRA!x$E}k?wBabVyc&_C@UJAOnFgfs__RoX8QTu@rLde@lilU}ARNLJtw4FgMSmE&= zMi%Fo3ORh0G}o`I+br4w!Kd|=mHFc*L;$(EXho)`{TZl4uW=5DrXFUzf6=~y82`38 zZ!n%{q@*JmJkz1x{PR-I17kN=m1dOt4jLZ!8pG{gYg7|+hRc1%@EGf;%~jzEbagR literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_putast2.o b/42sh/obj/ft_putast2.o new file mode 100644 index 0000000000000000000000000000000000000000..93e88ec6884b8419158e0a4b4bf50b4e0ca2f55d GIT binary patch literal 4376 zcmb7IeP~ zB{^}%GP1ZX3vOVAg|SjdVJu^?1;$obH@2p%|CB<@U@dI0Erq7EkU&aXnr*Dv@Auw) z^3$ukWEY=%?)lwwe)qil^`89Zzpj237D5XMRFEL#qC}N~pnM6ErTqn^9C11>DIeDc zr=TQMoN3mJ^L1rFndZTvv4hLD+ZxcF7WtUVXk3Up2nEGSDz}(szE-c6tSJTf`COh} z)qj`aMmkyz(*RAgP@I^XGC^u%rn&o(!Tk?5`sY=^KNT|O;{)78>GI8#^DFW_$qDzA zZ>V|nKr8a)CMK%Iqny9y{9L{tD1uw%D_N6ehWPm;Cm*H8O@VS*<=2e`Rb4CQSIt>d z#oFij=6!o;Eb8!j>J|BBb9p;Oe||2XN>ALJFITC|6iq8P%k)0?yvJ33eJY{xo95^6 zl_!qa3+&JDMa8#K@twUzK0CikF7N02i;wT6TjZ-BudMjI|51F;s|ozuE%MKb5kNuQ+W^ zRzyoEzh)RK9-ZrVPSJ$*U5a3zsFed2m{33B?xHRx;Eg`KaQg^Jc-;OBQ@Qc-i!bu*fbCCBZZDJf zw_Djo%B6~75Argn!9#Y+C0i2Ng-biL3)e;bsYhHUhAz!Jkv7djPb&Ttr(9Wy_~Mae zE7eGu%i|d(NuM+Q{Y|Ld?~IVJb7Om9z7+{5|74T@2R~mPNpFnwDL~IixT4+Mw1&^y z%|0W`K1Rdm#bzJw8}*FA_@c_^Y_kt6ESg(29w)mr?>vuxt`*AxM0hf85ZF}Ng;x`g z|M9@k$R07eXLLwBuy15!@ZsIPDKT(QujqrM?#<7XYsJDAF#w=f3{XMuJD45XF9vzr zruObVJd!$Etkz0pE7g#JR=H3tS+){&6Cngdt0DJz7DSC74iqh^ZHl$aKr9iu zJ(ko~Ve9A_fUC4!ErD2X^#17P)}5`m%%sp2u%{jG)E!Nx#AlBP#Ra>rinh6w)@%|)7PTAqQDM))PDb3{6#KZ8o>TO+@MzCtKNhHGfe@|n75eF7^- zs~eUG^B|HzUv0bsmC!duUW5KJJvP(-P1m|t-w=$v1#27owlJHP*I~+FxDUu*(bPMm z??4&)I@{46W<5!+0<|gc=AfZT__y%#2x%cY;m{r!%(CH1D?t>;=9MqRhx-=WwnE#} z3!Nc|;*F*4kG+BN|M)PTvYKQle35E+?F8^j3F4JQJ{I;dKeo9Uf~w7IBM{!%d_kQ* z^yK-+lJDPk_U%{K{p8(`x7~K1b?1fqtw(=-^|O}mJo>^n&*xKT zzx^A;aAN-s`4AGsAZs9;K;FfpkUZolp&J z)*ondHlPp>!B-c9aMZMa$J$V990Q`c*D@}^{LEZ|pOMQKFfM5LRB}~Z(wS-J&WNZB z1RE@_$w(3*v>u~ zJtY&N3r=Srh{xqB_^lt78z*JgunZ4NBQ!1Bff>V6Vj$yDnLH;q0|@q^Z#;C$hGk$} z8jpD$W!pKq7H(}$+)d1+vEY#Mao%H&0b{k)jD9_Y$rGC}2lz|h?&yv>n!ojI#Or3x4U6viU*7_#tI?L*qE7*D1V1;Spu?Ommz!py~Hx zXK~Z~orv$r^a*J4VR3E0!;VhxRd$!MH!1sT(4YD$ICHet(Gn0-`Bw Ap8x;= literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_split_whitespaces.o b/42sh/obj/ft_split_whitespaces.o new file mode 100644 index 0000000000000000000000000000000000000000..f8ea70a798ab89f4600d3986153f747d7a69993f GIT binary patch literal 4200 zcmb_f|8G;*6~FJ<=Y`mbUjiBJO51r-2+)-zbTFWp5;WXB3Xu?P7@bOA9mh`0jN`?2 z!>UE1I8<@nZedfkN&8`~D)oy-|AG9#$fyWNm6-NJw;v)cNS#QeOtLgf^XRnfbMCt@ zU!JoqlXj%*bI+Iix#yhw?fLG5zx=a72+b$(gXTxe5`MyHps%9USov>gw$U+6@)(dS z15={xcZ(X%hC$ZqdD90-Wc9^?(>EXCkd-19&E_ckh%G;H}*TswV_m3oAW&E}A zxp<=rV54}cOmdiqc=5ik*60u~BIrvM-&?4kN`2kgagz5<_-!1gq-|udK8&^qe?DqY z!WaSPWjKY##6H{@k8^hSI=UOCKCAR+tGL*0mBuR8OmvP1TE(%7Ft2dLRyjInm7=wU zg8;Y6W0iS!DBjSlc+Hx=?~@`N=4PUcY?+D9G6TY#7vXQvFGyoNx@eVqE0-dgFvo90 zRUBJ{_Y*u&+05&0TJb^H9REt4veCTqa-9;MKd4hSn&U4)S&l9i=MnI2tK3&HulobV z8r&aQ-vacV3{;L*ta$IDrQNnlGftNA-dR)t<&Y4^FCld|5WvD!?u${sV(igb)es~A{wO7byO#j)y2NuLqGomzIoL(yRR;~E&5Z3%H z|5m5sZ}B;FCw{XHK(c!C6Kz_#P%YkCDix{=zsEezPA*4*`)T;x&7=HygioG4(;I#@ zF_KFSXTk?MyF0tXJL74*c)JgDL+IT5ROg;uA~zE6O5@ttoft^vQ<=f8WZuqY)2X~Y zI+V&Ma=7&pxz4!g>dOJDYjAY<{6MU0?^C%U5g&?;i1plAnNDQv(czJSob2~{ zdsL({d65$-!Cx-t1)PM|s%;N#Az!G)*cNKlHsfgPrZ~O@w@AD2g`Nopam)BS;kH@p z3HU-!2M+~zG#%e^1a~5l(3Oe@7<<=<4fTWYInW`o#eSX#<%I@4A)3UK%s{KZ%iIqs zowtX606)G#{1_VFf|7>iXk2$^(vY=%S|>BouV#NGmiF&*q*vZ&=>WUJ z_R@ze9b}tm$nr1fStmH)z79!i*Vqi$ixRe7!RFs%V~2vx@>$h(I6$WqfSZDL=ErO` zHBMz2$Xo-|s(^-Me4E)*_eAQzmB(Y8t&RfWRj$q-l zia)5|+4iUL*ZPk^=IRch$!dWgL1TIyjmP|)1&|CDe2xW>J16@vdFR9_So&XlI5uu= z3$XoLBk&t)D3W2ErJylLKI1vsZ(OA(z@I)#yCSqBLaomc%zooUff@>H zTy?lM!lqxQfblMw7_~V`4^7eI5&C+PI;N;ALVJ^Ra0Y1HRX&!8k}H%9+nJ;Yx$Sp5Xk3L2uks{9VO=p}3`ZkK!GQKkm_ol?*2FPAI+| wJcJ3{Gli~{-7|zwTVb+N5nq0*M0{lPQ@8w(Ny+<8N}rXN&%O{#%fHnB0{*V|F8}}l literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_tokenize.o b/42sh/obj/ft_tokenize.o new file mode 100644 index 0000000000000000000000000000000000000000..6c708728e7d1162bea836addfda5d49f77cf74da GIT binary patch literal 4916 zcmc&%YiwLc6`s4hvv1$KwiC-Gk8bL`fM(ZCO|c*ZZ{khXuAQcSB>B;DS?^x2H(Bqx zdw1<5YN!>r#l}rZRf_miDH2HV1JQumh!7DaO{G>)+KBK7LVyuLq&!3@5(FAzzB6~O zy}k)F{9?4{oH=LCeD}=b%*?+1&p+MtF{Zc~7{~)U$HAf?l)FGF(*Hx*6|@@Wq>rrw zlMzK^KV7dF2P;y6(Di}jzJW#EuKie62#;cE1pvhcWs-zlbUmA{q-~AxIuiqlMSV_I z$D};xweV8FQy1M9YQQswsyW@Pl!Xm=dlP*-7TR~y>%2pcO(&DOBZM;G$Bg{^` zt4q8Yd&6JbThy0$*m&uop|UY9#=9gw8}H{5=1%eQ#o-clamIH+Ogdw68O4_a7Vx(* ze{$%zjjx<8<_z;zymuXY=!YR0=%TnS-e@`_LUhJwcQCVvVwlgd%i^4J9n)t@j87JPX1Mk2c;#Cff-FCb$ zNxU<10zZF;ct~Oa>5Ol`+`smCyKhZ0$9OZPQH-;qSBn$*Vpi9CIv1ygvEvf2LmJ0` zM_ck5_MZfD;29(Oa2cy>b#R_97bV_^#5*bRq{^_|c9SsK`Bumm1)_7j?J^&lj z5~m*DBhn zbB|sa9*${uKPkROc&VvBwx(u|TuaSVug(l!NzGQTPHtt|Q?!L%PtqvZJ2ZyWZ1P%a zsvRxspq*q_spT|{dgiUvO!6|?FQ;Z+7iNF}&zm|X@^H5I%FOptv!08oS$qcg^A~55 zH)fMJQd6(BK6-(0{!b-Ar%1G?XHRc*+$fv*QZd>dYmK!=H)aYr`Zl$F=rF6h3<_{aO42ut%=o-&Wl=f%S@wUz82+Qfhk>!gOR?!Q2v%*YE zWJ<+~0jrd{2@FO|uiy~Nrpw44VT4{N6?4&Q(ah(HMm9=VMY?n|Bk8i}LYd19`jlBo zR}9vf+>sdU8G!8R>Sg`O-E8keeVuIAVDGkMAKTfNOboD|WPiU^P3-Cv8p($T9~wxq zPD^Y{Y=5x7C()l`dlG%De|K_wSE7eu%y|>HY9T*Lb$k3Q!_oyB9xhrd3XIndNH}2v zENMz9!iJHe7ef?`h9}+tVn&pDWu4l{-D={Pjfz_hg)AjhC%{Q* z2XvUyzm7VFLR;ahdTM;Njj*poennykvq9+yT96yU6dhyroVlcl;%R7GqOuR;tgy}! zzc_5d>|VL~Yfnu3;pEzjMru$zTEIOgJ>8U#o-1G~p5z_9<*ntg`0;YF)qJJ=Q67nnLs)=@J^vCA4g>(B1-Xa6Py0Q>1PD88{12 z@cpRqo&1*&fp@^Nr0)n8Ae#BsPz7=&mYjFcG(QWCV0nV3`FUs*FW*Mf9M}N2Loo3M z|0D@Nj@|x53RQ7s(6xabCJNaU=4JCJWI#`LC3fP-f#3b+*SQ@ho}o=cFY+viCWib4 z5F~9X(qkYhG!>+e6GO4TDb?G4^MCQF118Zj0!N{7Q0#8T@lPNm#!x#BYWINX_Mqn} zrh(B7O+HlU(ml=N-+yIp{hzPD(e|0jGx=4Gn|`$UQfAo-*EhG>gLDEEPO(t4?Bs~?8Y>J0mg9m#YPCn zYC;{eDlc#-*vK`PB_0bNbfGtd)romLEPxJHaj#K$FnETCz1_TV3vc>5Z|>&NExhG8 zUx&(fxN9G0-Z!~F=)aHq;N;!H-QFDcpRu%V9`cUxfcGbSx%WZTySe8m4|D_X1YhYr z&hP2w!EWw~amD)yR{(Rs*thUye1FwfAQ9^(+Sz!zZW@8a9jJa9G6J~|5}~WKo=8YF z1&M@KJ0R(PY==aGs;!VnPIV(Bl2(mE;=odyA@MX;fkpqa>f7YSf2RzK8ybWH9zrvw29orOp zxoAu<>+OoC-f+5Fz^hce-t>GikGj~qdai7w7nFiwnoPG}ywams9UU^tw*NRDtg^v0 z#>BT4-jWMnqlcyKG-hP->4L2er85W2LK^RCigMxQY4?1rTEgR3YD<)fQaNikh?vvG L1)ahsm9c*Vjs(~* literal 0 HcmV?d00001 diff --git a/42sh/obj/get_lexer_state.o b/42sh/obj/get_lexer_state.o new file mode 100644 index 0000000000000000000000000000000000000000..2a093a6d1ddf804c8e9bbdefd8696a47fd652cc6 GIT binary patch literal 3088 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 bS1jlA1w5u{c07@hJ-LYF44pM~oi*(Lc7(o( literal 0 HcmV?d00001 diff --git a/42sh/obj/get_touch_toolz.o b/42sh/obj/get_touch_toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..efab36269fe798105860b75e7ccbd69e4921da4b GIT binary patch literal 4408 zcmc&%U2I!L7M^Q+uI)In-L$lzRK+L-775$kEQQbpwt<37RK(BH(DI|Zj_ue+j&0f3 z{fUy@c9Q}otEH#{1PD=qcmweQ53IDi60MdMLRzGKLcCN$NUa1*g;*&-MfdyW&UNgY z0@;^kl$rB0=X`U{%$?)OKfnFr`=AhpUtmBFpw}ga1UlLk=*v|8Ksy(9CXUkw&6R;E z*ke?pS(aTmWIMbgKXAvs2UcX43;G<6cwBZ40BVVVIO5unT2{U=)hb#|yP?#Uwfn*G z`|s?SxH$jOn&%lzZ__I|N*AwE%PEBy??R8Y5PuByfy?64&CW2qRr&Vm_}owG#h;AN!K+O@rViK}-|sZuR-Iln(#g|h zJo$FTSI_3Wc&~c!M%IXDAFf|A-@j`-LvP^Z8u4)H6r?x4_f01)H{S>Q-84JYlW(pz zgFJ1kRXtd)<}GW_?v5px^BV8BT6qL`{3HW$hl2Is6-w501E=daSXOU6xL4oT;~MXb z#?zue`X!eqb?;lHTvdqPe9vgSu#TcW;COFFe0ocJ;^V$xN{EQ_VR7Fh|I#Fkcce~c4?M&g)&QbpUt$5%#yYlg%k6HVmb3Z z7_6|-krl|&s9JyvX4*kzwE&+*elAMV2IuIRSvZ||^wcz3Dt0AzM~F-3v#j!2yo^3v zxNDV_d~REnPkdEA@t-T7_WXrRyLDcj&%*p!_i%1SMn~r_3=KWJJ9f<3`g!bQ>%2=NX}MCX789*%vs|ne@(Cgv>x`?T>!m*$H;1C@j6vKbUkb`WV^^O) zx+AhPa&7;wSqG%>X~kXZQDVF{LdclljJZ|#qqjyPxTL|2&^RFYL0oV6qmc*^ahnHV zbk}+cqrB@2T$U#xLcGkPUtCXuc8^2U=)NyHMdOs7G$yCO8N-I*_dRpyDaBvJ2+2O7 zq&Q$9m0nWPCN2{A2m{**wIuu}XCN7|6_8jDNUR4Wra*irwX++WG0AdZY*(Sosl~Tz zzxqGaOkRhg!rUI9zvL*x7|cIGG!2slM+W3(>aW5OydJ|zD1AFaZ-HFyyD>}vI{HR^ z!y^1wNEW4=eZ!$JcScD&e8X`e=`G6`f;NT^>9{5Md$9ik>wm=j6eJkJMflBl23l1~ zSxs4S*r+pfZM}#_Iez-h_Q(gb;iDVUZ}4Y{56e8dIttJfI-A-L(07$2gxX~A?kmDw zlbCGYHM!pZV#6OD_6-C>V;+p%FC<>K5kWjQ&T&nCO#yTk`au3~V%w1?BPYK4Xz2Bq zFYe4Go}GK=%r#&BWp4X-bC`b`{Z;gL(0Q7lp#K}4M?x&_GwuKzPmn4e{#GiSeW!{C z!FrE&5}hiZu~zX5po*V^cH}8h#lzE9JTa{Hkzucmpp znYQ%9adqtnG-`SSRhvH&sS-aj#~QpJyi<=M1Q3;QA4vFEhYcC(3#DbyoRIkQn?)Jh zFE@a_VodrbWS_ZTnx-woW=V#i4UX-TaTUzA8ueWSIQ^si_-I+t^*n^S7R58^zaZGRJpcdz literal 0 HcmV?d00001 diff --git a/42sh/obj/get_touch_toolz_2.o b/42sh/obj/get_touch_toolz_2.o new file mode 100644 index 0000000000000000000000000000000000000000..dc0a06a01aef9278b76a1c803b885f6c049708fc GIT binary patch literal 5556 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 oVi_@% literal 0 HcmV?d00001 diff --git a/42sh/obj/is_builtin.o b/42sh/obj/is_builtin.o new file mode 100644 index 0000000000000000000000000000000000000000..2161a2b4d827160565f747cd687c961b6e928558 GIT binary patch literal 4492 zcma)9e{5S<6~6D;&p%?vb`sWgTGDxP)^?EEZdXAlZD~e>UZ+&rMz>Z>=wUzqdd0Dg z{hVgikRoM+hQPESkR~*Z3TZG95`wL4+Juy<6N65OASBTEV-iCXn-ow%AR<7N?|bjQ z#D48)uXOG?-?`@=pL_2)_g(+$Uw{5@SO_H`(1C)WR0v%fgmxR~Y0VL@+YLuub)Iw3 zJPeV*1pHE$m6(lmh)RmZM3R11xwpoHDC#JUWniS7_DlCril@Q;sr|aQ{Q7RX^RRcjfTKGFT z_24HrEn3`cv|A-V&&}#@eIa`O>P^$J^85QzpS2J#Mf#lq^;vlS3dLf(Jjea)kI(b> z8|mg|{aKAllT-ZuKFtI}drPkO%QA2Nj{TGAb=~;dg+{g9xz^vLFDGj;*MCocU4OF$ z(+SZZpXX18CvNPo&}!AoMx!vx@UB_!M`e7cWI)yp<8%Eri>I9f_Q$s({f$e17jM#^ z6JM)f`u$z-`FrOk{n?MUuDjkhrN3w721esOC*g{|^KjRTOTlsJkFP81!CUWhgE#VL zHfOO;+vqmVSdEfl%pC2V;ni1KD%aqTDLI;Q?>&gV_{ue-(#Gk!6a4qfs*LZ5J1nk9 ze-a98XU&tzy?U!#4acK@y+YROu-w0V!ks<-KJjs1FeF55z%gX-+d&gha_iT@&x7+= z?+5iZ+LGLvy(2f4AJUiJ(HGa#`qCG!ygt2t6;1!DbN0)}*B37;OUKuB^Vj;tw}ZN} zrY}y4ph) zZ+U{`-}d3}`S6c@_$NO6st>RF@FgGi!ztb}>6w{_kEiF#?T*!Kq$jiaY(Bl)tmA6j zGnog-?%$W)d$;Jc&0Mi-)orVhvpR+pv!=*B)WO_b^-S}0sgT>huTv9MZ&=v)Ml~y< z<1*eC!mJhAq9Uw@EjrfOG7D5}ImC?eeA%ps7Nl0YX_h-3O!uV1oM;v78ur|=u}Y$4 zl?s5g~h3k#STL~m_;1J%8>!r>#jI| zUWkMyRH>q$B_J%C5lyV^40$-r&pqdfkvyi?*bV$uaMC1vG(Js1>5?KKo zcp6~jwg7F2g2zE*~FA(M7C1})9kyKaew{TfI=t@NXgiiY# zy03!*=@hlf5SKf|6LdNe8H6~@U?O}R4KGl-6OuN8?pdI~Sm=4MeDLlt%kMd;gCF98 zE&wfnf)iL!_!USDD!50@q{6F^zE8`nn%N%yBM^T*m{T*OVO~ED%Bz`l_%9yXt7gW- z{{VV}^Y*Ek-6FC8s9gYl4MKQ_whHkw#E`Dh!9D2Di30Vi70#Tm@v2nMFze9lL`K6A{@7KAZtWa8xk^rK%`ZEE%cd>CtL+YvS`##oR+Jv$2?H#rl#e zW&l-84C#wiLlv`P9E8SHpo-ZcRZM59nBQ_DE08KyfVBF5XB@_^bFX3D+hlptQD5_p zRXO{hQ07xgDjtqJ1uOp2C@8%_XIHO!uHJwL0*C=v^d}P+GV#UtZ=zQzzgU=b#&arTZ z_?>YjcOGQq?!u~&@Z&xFcQ2^Q$tTaqA82`%5e4aJu!9?KJiu9bHH^zCJ%J%958+| zvEcI1Ja`zGw=wjg8aT=(@mYyk^4RYLGn3;wI6_Yxk$4gurIpA_yc;|UoR)YyIJO{> zk{G^Gy25!;(%%n(5q9Xik{<+zeQ2k|J0u5l?0zQs=fRUOT;l**8I*)0ubqR?1D#vG z7ju7lamI(ap5AeUkThnpHd=BsgY(0M*?BIg}x kRQPUco3pJRGrmBLtyC4p)+=jsHXfjxGG3yavRM-U13O=AXaE2J literal 0 HcmV?d00001 diff --git a/42sh/obj/job_addprocess.o b/42sh/obj/job_addprocess.o new file mode 100644 index 0000000000000000000000000000000000000000..23736aefd9a41c373f352a054438f6409bbfb36f GIT binary patch literal 5048 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/job_cmp_id.o b/42sh/obj/job_cmp_id.o new file mode 100644 index 0000000000000000000000000000000000000000..0dd4403abe98f8d4f76581401ec3e06fafd03c00 GIT binary patch literal 3760 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 IuQ1N}FN~005C8xG literal 0 HcmV?d00001 diff --git a/42sh/obj/job_free.o b/42sh/obj/job_free.o new file mode 100644 index 0000000000000000000000000000000000000000..36954c14496a07d96548a6514b4bd57d14533d30 GIT binary patch literal 3924 zcma)8TZ|M%6s_)=>FJ&KJ|K$-3@-SHu(JZ{Mtp!SIv^OMtQezdXM1{g8)s+6=^jMI zNP!(<5XM-Eh5l?qM&*VT^@us4|JTy^Rzh~!N4BQK?`+Y3R0FvG|Tdx?S3E! z`sQ`_Za$-j(vT8}$7SEj2*KE(>?8}DWtE+g=9uOA4QaBhp)G6gx-}dYEgWtN?K>4; zpvhjJCL_K8uTrz6xgGC2g%i#xb8|D>Iq^y(BMoO8_dhef5bq0xFPr}yI$d~P+$G=Nbxa=WEv{uutD=Rv&SzWy{()6grac zS9p148~`5c_9x_@I`cL>XWSZX;BE0pi1AP+Z`H3`m5A;8 z6{;TQs9^S}{Z5@HK7N-Rfs?_9X7IhBBdVSTaIw(`afmxX(;Jr{$$M-1z%1n9;^fc8 zUBBmxyXAowC!aW8oNOK`?rxG#fln28eVQvy9xG0MIz_K3dDl z$#2|v&!+q~r{TG^YJRYPpno8Lxm`iIFCQF$(!Xj&|5aBAuVELq)<%}wwW{B!RVd?F z9H-wFg<%h~3uBMeww6nURV%!45snJFJ5@jAmghd^2zHjwqbN0yBhm=HQmc;Tn^n&p zt2*Vpi&=mXzQx{?y;~ME*T*2#-STvdP{sJl6&NV_e#0GU`Y00L8m*MZ0(iLwF-F~n z=Ueqg&2~JxR9w%;Dw0+C0{IiQGABEY3Ag46+j1p}Zq2hm{V;ZEYZ8&nb;;Gq%ThO` zkS{TzE5rJ3T-&Q=s4+gJ#$2(!JD7v_b%}^%ZcHYTgJu?XAv(IXNG6#iq!5WThSzsf z8AK8%TVu$qRBJ58v2+U-V;M~&R(3HUuLVwy%OsOGGSwHO4uU#1Wg(@+GUg!KZ2^;g zcr&yrJ~U|e+y@6Ot7#E^?{;3qT9$tbpw%CeS`&R#-#h*qwa$I$MaulGe0KR}v?4MZ2~ zeP-fcXjf9ZMDNQb7C`c-_33@RB7P8qv8WM&+PiV>P-2$eh>F3D#?NCAe*F+U#Lq+%`9D&S5CM@Tt;$E_}>< zWe|P=b)+=ROx+NwX{csuU8rWD=2DwNH4C*jH4ODAs3Qk8pV|ho7srF3^uEE=GojiA zb&W{#E3cw=T+5sS&vwGMN2C*A_t9=@aSPnkauZ~6Ipax=bf7EVy|xG@FF|tTwrqjT zkaB60c!jwm69T+nT4&CsseSHgwCVU4^5Or}E>I60(Re9q!T^uqk5RH^V^qYZKd*eg z54h_^C+J(dXTJZOyTJJJX8*n4hI1>UKujl`mcyY)3KVACQmV-|n%cZs*WZL}&((xhq5M2)95#IqSfqW2; z;$_e~phKW)DTI5m+KNfXmYd9h|_V(lp}RtZfkKxJa)(8QEfCZ-on zOgV+cD}W}Ji}GSJ(!?YUv6R=&GhVD#da;O=7i*Lz?p4A6UslDDG0YCk2-;A<2r;9D zX{J4Pm(aH7v|K7~?on%84A1;=!kj*><_obllY3gfB^?w+aJ0Jk9-f+ZGLuHHaSf2x z_Ed{P(`yvms$FT8or1e^@S2$x?@_N{1%D@%lXsSbXuaro@3BVU-#^YfUOnGXP%?b@ z)n5b{qSHL_U|8~z4jkozflI~n13|sDP~eO!0^mW5WVM)?Ft^4GV?!)$+#c%!*EhuC z#yc?`qGs&U4SWK4Uk3tT&T9hmm$PsY*A3SOcB7#9rHU_99E|gfpB29dJWD{;lwYXQ iS5j!;^)t;Kn;pfU3ePV)73@3sn<4)&3I3A_r2ha@XD9jq literal 0 HcmV?d00001 diff --git a/42sh/obj/job_getprocess.o b/42sh/obj/job_getprocess.o new file mode 100644 index 0000000000000000000000000000000000000000..c92fdb89967d8637633773c47530ce6855e6b8a1 GIT binary patch literal 4784 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 dZnYxJ0>o6PxS*UNEh(8aG;q{{qNn)93&I literal 0 HcmV?d00001 diff --git a/42sh/obj/job_getrank.o b/42sh/obj/job_getrank.o new file mode 100644 index 0000000000000000000000000000000000000000..7dfe939a4a13bec2ef2b56428d382681bea2eb37 GIT binary patch literal 4388 zcmb7IYit}>6}~gOGyC-J`ccb?n{N*lpj>YG-@an4*^0&j=%_^rs5T$DwtNneBaC+ zv)-mnxYD`joNvzk_T0z0GumIg{kQ*wgirzk9V7^;Y3R}rv{jHrg74AZih2)@a}1jA zgHuqF1knt`DI9V<+w<=o*?;f-}5V?h1eGMM=t9X5k6mjY^+{5$oa3# z&*yth4!>SLt1?mLkXF7bHxTVPnZ=UK?<-h8xqVm7ub!_I3--JDI$GB2*_g-Q)L)fv zGH<#mw&v&a$?Xu==F8V=<$_VkPcprC&9_tLHzX5!?wa{|eATf7?gqE!cemtQC;9$x zoqTS7wY=HNXSeVL;!P{(nJw$*<>x$7yXt(uD*4KC)UDUahoW;STk{J1K!6T&CUEdH}%(n+|1#{3nLd9`F(MTDyO~9erDuSZk9rG0p{Wb zJ{7Jt9HhDV-1J;->hOY?zH2^tg!xY$zNjX@d2V`S{@BR;X(f4-xAmKMqQfwdkn1wc z%d>;-Z%r+VKdpY%o!rNwuIV2ffRov_C9`>>ut#MH+ zva`kwhbJUo$I&%>7h|_>!GpZx)UC0GgSvB!iE_Ru%GF9S?RMm!uUB)Yz|z?+DpNe*&fF48yK+mSQwtA+c6GXOi3;bex}JhtxIkS!j+@Z&Le2{L8QsAXU?9Uoie6 zyez$&)xL22SMd15>Ic-mRD3h67wGk=eLW(&3g!s}XltYEV16BDFc&=q#cTqbqPGKm z38sEi_&k&r)^-7j?nSo%KeQ_L22@X|BmQ^jBY;C)%;*Zdqx5cI4x3;-ORpO_h_>i) z*a1j*ZItU2rTaj5HB>09kvlPnE*FU@$zd3)v5Jwn0^TGax^5fXaPofNO~6eh^S+ye z+mp25uIJbk+;s8_a7XC2!yQaM?YkXthee8+h4$9$G;2huKNbA$60vp4sGOmybSLYR!IGz+82-i9G<%; zAL8mDiBIof9_}lJ+JEzVnD<=}d!_#do?Q1hLT4as&131ej>WaT^#8>0Wzr>ue0&uu zLWkDynTc{l!`xk*?;_S%7{a$N$Fe#*AkLSpHNTHO^Vof7j{NJ&vC^7X&vxy6@h_vP z>C@rgoqXZ7e{T(zQmOdCGY$2Y)UVC1-d8_+;rSmdtpCSLkA3)^fybv~Pw$ynqyOv^ z&gfWY?}>l@viCALd4jqj8zDoGyCGwc24ot-4dpJ(L4E^y1M)Vc4GE_qTOqq3_d^!I zhev{^yBiv<0+SHWf`nKfgjhBbIw_-g3?#(OV-(M+gjlwOSjo8j*m%MTapxt((?y6U zj^86_EPFz{2P7BkkPu5#MzMqm@r21JmL(w;jHKs@CBzz#QLH>dEJz8l3JG!bBt5Sr zLZ=`S;+;T<_lz9K8-oxp5(#l`gjgOj32qu8UJf$q{mx?uXN_kTBfK`}DN?LxJfv*O zqxT5qP)bR~Lt)N}`Q8Zm+7;3)Ey?ky%|z;p>L=UeXSOIIRu%JPP~J(jp;!1D5T)g- z1>YcMxxrU>wqe(^(#u*~2S2hBu^(v(0gyH12R~lHO`ksa83OXVC{tohd6BSDbIW!R zw);H;9JS_>dEsT-k>kA24;kQnWx&BmlqGn*7Dy^uFnUglHnbacM+;48QTfAk7$aa>R8z)kOC6v=l)~n{kM5q&q}>s>a|isF;2fEbvtwtfZu2~ pxk8TfA7jbJ^G+V$YL#NS;8ZJuUyJ_gdyZw}pM`3zhR-M={tHfGm&O19 literal 0 HcmV?d00001 diff --git a/42sh/obj/job_is_completed.o b/42sh/obj/job_is_completed.o new file mode 100644 index 0000000000000000000000000000000000000000..52ebf04660f021f03cfe9efaa2ca44b5a771aca5 GIT binary patch literal 5280 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 bIc>ZGdJZ4{f*%LEFV-q+0R%6D?HZ_V>H@++}yf zLQnY4cfQ~G&hLEZ+;hG;%Nzgs$0vpmN<^T7v_a|`sx$=UX2@lNpHW8RLB~msK?!Ye z3QCe7ifwzv{a(-x?44V8?YwG-tuwMgK2CeNLkPwO<1kfNY`ah#X^z^i*YF|R-g3|8 zyS^NDi;!oT8bBNL>8`LLdjd1$tJEAHXyyCuEN>ycV}>--dX`7Xmme8v6!&udv*Qc- z{w#;zC||i+s&Pmw-#LGigxDkX9acb`>J0V~)-~g6;d(n# zR|Au+miV07IM(Ue&Fa2#wP4%Zx6B;zoa9SOa1eYviUT-*@|(Bt702vS179~7VB53v z!ON0wNb>EHe9{y#A;!Wsb$H(@<*Luvx?U3ld_Nh?lXAU-pAjGT#dnDXfiU4qbj;T%>#Mxc{khj|^YVY3~r2*gBaz zP8rNiyq%kPRl2d`B03;LDYW0u9X<5ENIo#+lfXPqk9Xh!8CsrOau`A8j$RhY2YJ|E z+WIkSafz#h58MNmOD{}KO`(%3I==Pe+|geT+4+O-BTOsb81zuQLC_RmtAD;TD@K@^gALu?1CdZy05mU zkk77LYV zEss` zNqj!`h1jzAwyxW8{34oACA6&zKUwQ$nc89zNo{23$Sd4r^ zSncrL)QOtb zW6Q*ztI*HaFY0XhHru7@Nm8q&7V_yFn|NaWkvc__ow$*t>{ z*yup@1}t-)`4-e}t=Hm0xD0I(XZZtBIB97$(`HSXJ`b6S0{9%o-h z&GZQ4J~SuMX)HAMqWM=e^_)Rs#uHg(oB$eyn2R(j)c5-YAW;*^5%t4wRFbCt`56w=PL!zCrYyoB&N@5}0 zlB-d5i}saJdx)EgR)aQ`)FCRvAMq%AEJfc2FJmXFXW2L3JPWl;TWb9r+TWPv+`<=O z`CGVxoAxp+e|uM|nYi^PEPvB(<7d;KBH^>B{si3YHQ$38h_0|cgkFdf8-<&&K7o~? zwTgrhxMykg@hfz|;$+c&Y=$)l7AK2l)yx8GUT6(qXRLH+tyVLOr@w4;jhb05bkgg~ zQE68|rYrh7w2j+QSr}%fJIJbZ4g=`4!%FDiM6-*-^a5LC!6*It<{U^wDE!%C3GCp7 zf92wXkMIKSmUurj%gnK~TgT!@ZtDN>;duU3c9RT+0V+a=*6_Cq@`Z2X+CU?*2ou6L zImaa+d|Yr&WE(LT;+-h>Hq|Am;gPQSFHA1|=l8akdf#-q=Rf|h-_5^p-{Mz~J!k&@ zm0xskdF8t=J@ewh^&jc4-{H+Yeeq{&+s0D&oPXfo1BZ{rQt`d#PoH`1%DKM}r#^gm ztoPmMse?Cl6qh>bQwMvnNw+~ZLB0klK=wf%hCB^<9&!QlHslh7zxPRep<5yAAvwsm zAXUf_$P#WKyCRQG^LQF%_ zi}#8UubQN179_;9D7~1o2r-pOh#8s?kH4g6@*;Esm4uiv2r-LD=q;Fp=q+bt(jdev zBI%iO2r(5&h?#&8Q-g$fB?`0ti~JcQ$*dAy3+2FFLfM~EQgOpP z2`|pF0MhdTiKeE)pFy!Xk$On|QhRWTan#_e`VU}5`6$sY6ch}DC@t?vJPw^olMk$H z(`{s>l`XFw{M>BBz2D8+!QWT2Jb@!cw?0ZS6P}y>WBhFoMxl*ulCMb^ZNVt{tZnhc zmACy@W8mmd8@R}4APo5M@f5&8J`DCSl2o*4^qjUpH`AI?(z^ApX!GF0Ps&m)A*?tM^oFVS+Ll==}yh~Aszsun)NF!0l=W=R$Eh=s)fxI>oF5n);9+l ztNJ2S5|-SzA<%kO>ZMXIlp2bDy1WYdO4vyNVPSKIDe&Jnvuw!|x?`6Lc`uJmt&UcT gUaczZ5?=UtJeTlCrr?9zcE;;`pZe{qe>Z^Pzen`Z<^TWy literal 0 HcmV?d00001 diff --git a/42sh/obj/job_kill_all.o b/42sh/obj/job_kill_all.o new file mode 100644 index 0000000000000000000000000000000000000000..85cac4ae77980a0613d2c28f767b7c46fe2019ea GIT binary patch literal 4180 zcma)8dyHIF89(>V+_^JzXJ=*~*5cB3V4<|M-C5d7H?qN9Y3mfWfdC6=(Ch5o*`2%0 z&J6e7=__a&+n8NSq)6}|6C(*hjm8jCjfwaGAEZ74Q4C@X@ehmzF|Ni)TMX;(cka3C z%ur}g@}2K-zVo}^Ip_P%JujU9`#Yu(T1=n=#X(I2T>*r48R#sH@6ooT!-12WgBIz) z6r>!DXto_x4h5kc>UZwB=g$A@k>o0Yc>L@$0MKcRi=$*wv+bG6bZgG`15cW4d-vTF zx9^RHMTGMz7ln3C#TRO_m#~o@;nfz(1>^I|^|^}wZoI=?`<1dnyte*=cnf7m zhS(ingr|-}TpX|5Y}P7vy}ZEi-nHH%D!wrlQ2L_rg?NqWd3nIy@qJI>U8V5$ULu~1 zuUU4w@&4F_H-CwE!Qtiw*ZYpbtEpZ8;w9pt=p^fhkv4C|3 zcB_8St^ktcTMLC)jr9eejgR8&`Pa3Qws5 z%dbWbK-y=TmOP&r^c)>CFwV?mPpX=I+!A%?n-3DrJ z`~<0E!R-$3BTto<{!%*jX5lGuhF&G(5A2uroGqOoQCuz^`|PsF9p8zOAEnS;_mk3z z{mZ2jsnXK^GZ4>gnTRhvAI_Hp`|=oBUfT28>(8#Ntdx%ZtnjIyPO!WRlaqJtFC3_N zzT2o5Mu$g+M+%#q8t#N`qa#p;cWxiPZnN+`r#Ro3-sUvwf!C-}w(oOmHM?A^4LhPZ z=h0BgB2)DB7HJpkMmoR*-SGzjf zZ^W|s#9+2p>q9!~!!Y(~UyEfe zi*xWx?-8-=zJ4mBD2ybkL8PvN?MBPOaC+4j*Oj&EYtT2d3W~8FP2-2MSKvdtFfm6A z%es-}2GY(hlKeGq%D|bY}SX8rU_}1+O_&n z#^fH~L2ZjZlo#<|a?g$aOh;Kkllne%S4q|L;DhAPrr#Zcpv^47) z2)_U&Ga9~cjYet@)TA{YsadFbs}!j@sB5j;p#Bz=%tI|$_d`5OwHNBB_4!EcgE}rU z{A7{Crq;t(SoWXj21Mo!uqoP;TI!SJTCPfF${9x}rnGnpr(z7CdkluuhZ0`_`;4*9 zd>mZv`37#^6VT*&6!f9E`AujJ=Uu_gJPl2r+?800`7$(lIzw2AFzRqS1ygE6>IYy( z65Dgf1lKEXZgNzIY@sb7W#`EsKg48|83sNqt(|je>Yj^RccmTwVm>GrY*k3~7x8x)n4HYJnC(JgM)1o&~)G`YY%>s0RTTKs!KtL7xDz zHZUYuENeh$ObwctGRnlPrisa}OsrCxShmW$#VV(X#i`(#(KNAClotz`Cf2tyJ*P~JPr-Ae z>BV$cCZ;S+%yKo6bxsq@UzvD!(R3W7g5WJe6Ym=3^?vziBG;I+n4y}wU5U}rn5Asm zk=uoKD6i!+X7VJw81Utwk++DmvJ&0SVj`RWf__s^SWiOig0C+ALkDib^ZGJ4UbXwD^bpq8+}YJ3L_*9S;*cUGSZn9}HJnP2n8Ks4Dfw zfD#YqsHabtC+g0YuZqx7JsO~3Kt>Syhlzw`p~Z5Vkxt)gT%P#0Va^)q#4ScXakG&e zGjxcl8kc?rppeu#j!LLY^opzESb@ vii6QF@w(z41kb?`HHvMj=OsHiU literal 0 HcmV?d00001 diff --git a/42sh/obj/job_notify_change.o b/42sh/obj/job_notify_change.o new file mode 100644 index 0000000000000000000000000000000000000000..6db4d7e737d07f67e7fb94dd0921a57e260317c7 GIT binary patch literal 4456 zcma)AZEPGz8J^wq-tPH6W1GmW>*QLuA!%ZtNkU__Zb;fBy0$?9Y3stC<5D`KYB-BKRNPLw)B_Jx0FtmcIgcdbC&+M#w zcTTBCdgq<@nRlLjcV^z%x%=fie}B&uLW>AgkUmJmK$V4{+yJ>s@B@n5A9S4K7?jWk zr=X+>qS&@yKH>-Mz!`8fNkdKf3F9m6;x7x1~BBjH{?ughDAYkaxx(&Z8I6^g}X`7qzVJHC+b zlHyn?U#(v8IHZ^FPA(wIITgi4IcY*nXM%Y|*LCA-7V6biYe`?1 zZ?53T5PRbb`P6c(fUnSKxMjOum}7X$-uIGO)vW(vg?valN!c6U1+_oI_kAF>w60;JXMG)S z4)5vP?fMh7ddar;?g|~LuPDB(0vq7tmV6ZZPpx?mUwPK9G_ktD0Nd_44`KnnBT(X; z;!~!;>(7R5>M-BjT3s^szV8mjw@C$aS-o%R1LEVnpi78&aKJJ6VTcQmueu0*jNOn= zK{^W`L0Nu8bb4LCJ(FK}J%4I(GJjfb@ce0!U)X(h;rQYU;;$T$Kb@57?95``c$L7y z?pO1tDO34{-{u!C25x7MzZs0ZBJCeCp8VN1z~ceZ@qoK_Urm3B`zwFyXOo}%sT{DA z*_YkB_mNL#50{&*npe+GO-xQqX4g9|j*RiCNf;AbH&1+QgJ?CK+(EB6?s#>->A7s% zbz1q=Rdh6JCEMpR z7n<0Ac4)$X%Vu;Ge7{*MwtXazZ&%zxRk&Wgnw1qfE460Jw;N5*DYxk2)>=O3rDEJ= z_$Y0+YEPC0tIh{1TN1YGty;BSE@jDF=XcGY^GbYlxj9$!TEekwG6vtF0*zyP5^!vZ zz;;915sm|oB~DCPQ$C$}OQu$%TrLS&2TTEg`Ei12a)Nns)Jw{Vn=QMpEho-tH=B4n z8*|u_sEQRQ{~@8R(r!x)8j(~cI+9wY4Pcw-695Oa9sQBio$z=(o58*fWEnm<9^cL^JcASsju?xZT_nUNDwNLroDZP)KZYToJ;LvT zme#b0e%@`%_DR%z`uWG0=-R4mpkLjZ^l9EzitB;A;8MK&cdR8Cni@ktWjI)2UK4!%(!y2J=i$0c#<+#(WRzSx8^rB=L73kxk|hd@rCGU2D7yWmwTH5OX7{*I=7BSg%73n**^$ z=+Conh!MR7%ck`a#&A1Y$7roa45HsWh_(i?)|hQ7NaRst7|OJwtk^*yKq`nuRl z&~p0Mb6S23OD@y~PRm7DCmG`H`dA|N8(4B_Hgb|u?2sXVQ{*4onMb$$6i_3LWC^g~ zdp`QcT$0;V?mg&y|~+y7c-R*6HL)__Yz`SC@&@>A?B!pn3#k(i;AAd6QPq31@V|5#G^+I;LUX6MKz&79)Z(A1G3E6>d@%?a2p)b|j-^5~g(yUX1r9 z$d$KAbM2ZMFT~DN=4t)jWROlmtcR~I{zwMx-Bc1aBW0*s&ou>C4aaTstDS4NnmJ|V zYFno6=tf#cdt3nIY;{q`$9CCW2M;5xu0s>EJkA1tw2^sB?LM^SMFu!BPErQ$Zp&BW zf_sN@2(A|}FcOOf-k?O%n$h2Hec8AvYGn>2b`=Qy7d`$6aVp-Cc&pJdQsEjl1jkz0i2j_!u<8yPNZm@W**v(0>~=#z%8X zuTy%B(onMhA4*R{r!gQbqiA%PVqcHVn{H=+vB&m$Z2ETktGIxw!rP=>@tSi5+$2i{ zzksV=z3P^Iua27~{!1u0hj3**WLF9`S4i(_*_Rh3X>?s`yGK;pg=R_E72GUw&#d4V NQZU|`Yw+eJ{s-rBl#T!Z literal 0 HcmV?d00001 diff --git a/42sh/obj/job_notify_new.o b/42sh/obj/job_notify_new.o new file mode 100644 index 0000000000000000000000000000000000000000..b1f5b6a485dc970a5db27c8771c3c825a016c3f9 GIT binary patch literal 4568 zcmb7HYit}>6}~gOGduh6?)s6$A$78;owR{u?K*~7kQTed?FLd*O4AZ(HCd1Mm9BS} zomnStVj3k;6w9g95c;o_sHy-V0ikL|B?>AHP_-3MDMCC{L8#iu;ZdxjLQABY@0+>f z*xQtvt3CHT?z!Kbx%ZwsXMg>lzrPz2LJ0_Tpdjd34P6R^wi=Y7{yuF_)El@UeS965 zf|Qi=Ow-97aHIlens<(T;m#|%FP)GA@fgeYRv~oSg5ofl-%Qi8oqDNKkcMVFA7_Oe zFS;Q9Y$4PuqAQu^SZ=gYFaav{9d{4kam#|&*QIoci-b1Sga^|SNFT3UwOoJGT#9#m ziMJ4W!*yHSE%EU2vZJH*+yvL}>Ugh8gyrIuD)}m>G~*R{Akf~CQDnlNUdDcKU(l`^ zUp-qXaU77p0(T%o8$BG>`f<(yf`jx)UXyzi)tZ@UcW z<`0a|!>f+&b2qp-zDFfqkHq`RGV$E_YFVop@3|(t$CiobOxCXYz859lH|47TVwreI zVi&SGzLWBN`0razEZSL5Y}#L|I*#{r%tmE@sWN7oyLK#|aaQ7`r12r(@kpM;`ICFz zgqJIt`8syjo6vk8ye#pCB;HwxCsl!Ktmw<+e!i7U6&JDjeUlN-d#4O$PQLHg-X}h; zi+dMFy@?FI6Z8oDDL(^#4LGmU+d+#PAK}wt`*P&nnd#RvNB`EBc~F~#e`b2>?aa*7 z+cVoT)6bt3vxK0YnRy_IvAOAy*D^<^=0xJy07o9Y@w2YO$XsRyb4O+~Gb6JzwazOu zG2qX^YfUq7IUP>^vEljqd)7r_uRqpY+>q48%pXh=6 zW+k^jZHeC9HZXb%`>XrLvb_WSc2O+#p(-4cz3uj;F;S{GqE>)VD~*{BcRgFjaWs7u z<6HYNkah5}8ErVoCCAK{vjtJERthP%BSyYdw;i)quUa{qF6EN#;3+O+#5wp#ZrY{$ zbAsLC2TI)qY*g%0p^_U*5xK(8rZZk0O9)!^m0;d1)EMnbARdhpLI|Tp1mZi}sSF~`!aY!LibgRKVR}Xvd{JD) z7JN1Owk&{REUqYgP+~nEv<LNeSNAtpBC ziEOud%+&RlAG_z|Vu!b!xXTjzjtbwUpW&G`<7rGPU(;w_&^piOA};YIoAu1j(k> zt#)^c@DU7ZLH%{G8H#K5Ij~cpU`8kY8Bk!eu4Bqm5cPH8XTUT=;|A+p=za%1v^w-B zu+C7MaS{A>m_r>5>giB|Y_h?WRgo_0eC-v@3e$w{)1J7b0;VMW^nFMR;r<1px5 zq3?n9MK&2vgMSz1$Va#=&q8~G+GZ}x&!PQ<+7|B6d1&0rNE)#lzlFwqi1e!6*BGz( zS|47-c-7Z#P`i5;c0JOsc3&?v!fQW77yc34bVWM{S^pKfm#C*&iK?`{21DB$ekZg` z5ZgIT`zIx$Un^As{qVtsM2@41)9D35x<+TR?FTztC+U{%f#O4T{L^m5o|*kY5DT*k^kLAAAm)PwngC6MnC{;PJqP*? zXclxC6vt|>2l4#e3i={w9CR3T8pNH%PjG)&ZJ_Z!pov#RI|$7N(ZnIH6dH4uCLNue zct)C-@6wB>n_fKi(!{eu6AzCxF-vJ;@=6o$3z~S1ND~v6Cf+qNE+!34Oe7fuvxX+7 zqnya>r-^AOy^cVoi6>T?co)&c+e1!d!qLPGlqOzjG%=l|X-InUwvZ;?T=e3FBSR%D zO}tm67q2;*7@ssTw`t;b$%+5#B!_THdD=0C*~ literal 0 HcmV?d00001 diff --git a/42sh/obj/job_remove.o b/42sh/obj/job_remove.o new file mode 100644 index 0000000000000000000000000000000000000000..5f68e0e7e8f8f04bd1ab2e6a0b9dc9014ef8034d GIT binary patch literal 4512 zcmb7IYit}>6~43UnO%F=yX)8quAGLA5}PE{UN;Y7nz)Ti+-^!Dpd@{uR@3$D?CwPC zon>d7G;u7YO@-pRky;{t&>v7F2>C;Z5EYFC6wwx1N=pS2FI8794e~P;RThGB9VAct14@5~-*Hy@ z1U5JYB_qe_x@$h@N&`yQcaPt*`?4Lh-jogUF_t(8(!|=tVXC0$y5YDDt5%jkm@nXY zQuaTq1tWbOS!g1jqB${D)2-iF2jx+z@8#qcmIagnU)44|uP|Sf zFTAC^6>l;8=AwLsiHU}}kMD0`d;#CflIB|ZtXj$DkTBn?GQJCPzNgxK;=}kJ{4OYq z#@8s+%BFKA-wUA}`cA?pX{i_Gn=BY!h~fAGJ{g|4I$xn)ubO(TFv;+)nC~xSd|PEe zC$1Ww&u35U^*(SozKG1X)spWo*U0C^S1%Z0zJU;*mTY-*elzs`{P^4h^+o4gM{jY93>FzUL+1s0`*sIp32X5Fg(Q zx`ash8zzJAg`5URs^Kmn>gzN zyUuSpdJZn>V|1JwNB6m=@3~p8FF)t4u>4#nTtK{MK0i0}UVirX;PqJkw$8&x?}J(p zK?T5>{m)HXwS6+jvyUMn77&631;mei^R@E$K*VJq`%WSTiu320wA2Y`7 zCcAUzUAwaT%!Xsxwd}~y@X&B}jZwuOIXE&5V`$_0p&QqJcu2WD4#wxo`|Z8OLT=-F zry?$gEUcoiYAz8&xVontUzMze;~~JSmg5S?SDd$rAyVs(b4AYv2|Qv!ga%XbQn{O1|Fuv(;wtc+C^+guGyHh zY)2TnRjL-s!ZoNkK({@>&^-ipHLwj~81QI@V^j(aFK}*1WOC}JiRZBPnS4O$Quziz4k{fwn@s3SDGJ%sE5W`Q zWEnme|Svc)Nxc zDb;n6Rmt`)SmW&bWMoxFXwRV|_A075NaVWsSD|_%OWMBI+b@xJK?+4)9;uSP{Dk&3Dn%@-YTA4~gE8SOGL2 zPbkR&G@gOPlL{W3+#HylFyqNv0y70Ole|4J(=dCJpM&{4B%XnpP1e!;JIyYbBguyX za|z6CqLZNxu{)-uUV~1*g{nt%z7DmUcwABMrB*U!s+c!|m(F-Qs{9wn@=)F>Kph;` zKIR|guh+|TaPi+)_8AAM85@PBSV#Z;$vYdhtV(#)BL}8v2 zV&Y4PnMsICMnYUygt*is7t@*$vt4>|5fb96lo0co5Yt>j%yvRt1QKGp6XHUY^h`xU zOn&LbTqDFJmJk;eAttY!HglB_b69$PSnkA-7yPCeA&cCK$g!XV*`yr2Qz#E+luR-f ze;i(X?sCY;1@c_F6l`T;ES336G^$fP zgmP0(BPXq#wPEB_3lZmllhghC^8!!c$dcAu1D;ZK+@T8hW`6|QSQqjbh0*4Zkav!d zCsv2<9h|_&4EkhZ@nor$&FQVr%Ng?-cJv{T43^?1Riy=%qh` zM$m&lkoE~^%xLg9G~W5>W6%h1^bjF2ihi10Hrf{0X#hdNwVD0RvNB{3hHUz_`hOv0-yX8>57|O5xq7|eR&?C@ zidIA5#^e_8p=)Ja|LmIAU##Pw3Ag06kr?=Ep=!apoHKsA)G$rIWlYw2Me;l>M{iyx Gh4?@DdC-gi literal 0 HcmV?d00001 diff --git a/42sh/obj/job_update_id.o b/42sh/obj/job_update_id.o new file mode 100644 index 0000000000000000000000000000000000000000..a0818cdd0245eed26a78dcab8a9e78d4af8b4a22 GIT binary patch literal 3956 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/job_wait.o b/42sh/obj/job_wait.o new file mode 100644 index 0000000000000000000000000000000000000000..8eb10c592e85d5ec53430f86dd163a68fc151476 GIT binary patch literal 3712 zcma)9YiJx*6uvW?*=!!&Y??l4D2r`;KxcQ8Mva>2M!UL&6r}bMgfi}9l1#dpS$AfW zv|%+gtz;VmEm#mltRPxJL{NXUe_9_f}FbI!gIoZtE22#|qX=3hBl#FQ=G<}#Wym&6or+j^uf~gu} z)tsh^l2y~iVFjS}ilS`W+rRVaiq$^u@EX_j1u9GKqz2N(%NZGa-HUg<#+tEjmx-53 zrwi&h#akPni)KpUc6l%yzXV_JUyg0|>B7->M&WXF{Ij8A1qBq}@ZhSnLX#mhTd6)R8E_N?$atcGiuLGTeJ+-EF zK_>u$c@|VX=oLh~)mASpIp3Wu|C*e+8cWVgUjd_Bx|uAWzf5jtshr9A2Mf@(BEs^L;t68r*ThT?>mv+_MW9 z$@${7Gn9TgaoKi&a}>7a#ElyNQS!GxKb5%3iA!^(8*{~LwqfTV@!9K$Z+6GUmLoC% z-4Ht$;*0o5FkKAFlB)Cw{!rgDUXq%_VLpXTFT>`(jGd$4gTO)Lf~ftJ4fmrHx!^DxE8q zI^?a{Db>i7MvZiMBBfcj(8$a}CJL3DF?6e7? z?$l2$H9Rn|XGeHkEts02hkGKiNGyDRCWr5U+!KQk>F$bjKJb6>Mt7U=jt);4quErn zyUQG5ZZ=HQEv97|f+bQcx|pc~I)>tku-Mv#1=C7dMUx4wLPxMo@&!Zw4Z&7nB~FnT zfpVn~Z}bHpZF;QfzUJ+1Pv8XmBqnmz_BMRgx@$yfGxG%>Z)(DY^siyt+Z^(QGbmyoMH9NFn2s|Fk1pt$W|z$1=H zjW4OZzV;2S!e7d!4hBSY4QWu*5zxteOoHBNniLn+iPmD%vrR>@Bjo@3No(&XhyNUe zZa?TH&~XqIf$S+?>Zur13{p|e)_^dm5~QL6aTV2xR8&5$s;(2XHM!O!M#`1+H2C%r zLd|gV5)STU!emGYHP;7@!HQyQ2Tk81l!XO%`&oZ5^osb@3b&WH!&YR+U?~WH2Up-J z&^tha=Z3Rr(JVwYJ(DYD)u^_$=b>7SdBD6w5mos2-@Q-h4uE#FkrAqTWsd4QcM5vi zG1gEyyS^4d5*q`XrPbo5Hp%brmDYbC$wN|mujD@@`TWC@7>G&%F+z)%B+=g|Z6wQ0 zux#wbnY|#b_aBo2&UCFatsjKpFOn}1mm0{k9-cmUioSz^OGhQ4C^n!PuTmu#lS_CY zp4BfpT-Lap21hOB0dV}ueO%w^aCr-t8^Dp3d<}^qQ~3vQ^nUpQIF{ry;DrC7!{v9m z{1!Ojm%+*IAlK8OgT1VAc?US*((gxlPbWCp-^17G$dNsrczVyn&bmL!`MsRe*9Lxg zrNgP)kPKoi^xz`~UL~@yM^1R;y&jq3sP?D0t7WFRM+T>&U}RL&RK`+;{rCsTZnMge urQ}oAh@u--Rx2=)vw8eOW(_g>J47AZ#?VZKe(L2^OI_5MmXXgxX8!_$IZSc@ literal 0 HcmV?d00001 diff --git a/42sh/obj/launch_process.o b/42sh/obj/launch_process.o new file mode 100644 index 0000000000000000000000000000000000000000..3fdab7199aaeff0598b16ae18ec5ccb9fafb79e8 GIT binary patch literal 6328 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_backslash.o b/42sh/obj/lexer_backslash.o new file mode 100644 index 0000000000000000000000000000000000000000..0e3a6241467419b8f59ac6b329d0063e2816a295 GIT binary patch literal 3540 zcmb7GYitx%6uvXFvybj}TiRMd9&Q367}_mR8ln~1(#0)orSyR$V#e)u+AdvYo1NWK z2^bQLu|gs~qlt+c#l%E^sqqyJ28|{fH9^B4<0C#ojK)f0f|7{eH*<%!3ku%sIo~~J z&i(GW_nw)%pZ)dg-vJ>MO+Z0>kZ~O<20>c@IZNliwC6CG?I_2fc{bgY8amMoqhwB& z+`en~CwKPG*j{g!?2wPswpI(F(&rNg30^adA#<=iV%Vjk<1&oS+Y`N;y~o1i8Rw$V zev$dPmZKe7&-VE8g{lj zkLOLp%Isl!7p?aynP0oi=h$WQbNLE`yPX5B%x}BoTPFFwyFxxEzwu1AlCNCBr&rBv zoa|NXpPOIl?(s{m_esh3l-$6TSICE#&Y`T#Z=K)G!dveL;mhThE$qQMOGeq+o3n-t zBi%WB#9fjvCY{sZ<2Pjp^(RxVSg$#13>R^_?f}D>`#m@)`8Ggjuw61uM3`xuv-!wj!IyXP{|) z3ykL0HO;G63cHw%=gmp8=xSpylO4138GE!jE8+t-hQ~+t7IqJ1;;n1!QDGVgwo93k zDLRvz69egfV7jYY^d)=5?b~`g#cc!K9m!sCYi}~qFVe}rKDV2=t<$lH+XuGwCq<_V z9f?g_`_hTNl-QBz6@5L)Oi-2z;+>9uu3K#Ni^)-K2uN` zC00tNh!S?3u=53LBv!WU+=yik#YkxJrsBnt9nBO)sW4_*;CIoM$d`&vg2Uh_jvmUC zGR|B=nWtPAt=F|^t$$&3o>GUJP<@IP4Toq3>Tu6iN-t#i!4GK}634udFIBNz~B1h^DJRMpR#DO`=%u6mNMM?FWJTlpCC zaY`}BY84T&%CS&I5((Z#s@?&^r>xS3>D4SKMdO98YLj$m2cUi0z0kV$0JL9w5IUee z0UgwyfevXeKv!umLx;83p(EPc(AC}zH8Y#C;{+b4HOiL&MOPo1JmuJ5LBkqvV(vA! zLi^Q+M%!r3>*Fc{CmG=jeg_Et1Qq%nio>)8Rebs9YjxqDfy)rBHKEVF|%hMtAFoe%2*WYdE0%);inYNz1I;-+AkSMyu_zhEW0p~@47!-BoRPG2u>xciUpl&) zA>2hYRvKL_DH-)&=NG`vbFZDTGfKYJB%0H_V^#L`3T3iZsf`4JN99b55P8?1Bs+gz zju#>kt-Vj(RP7d_5Z@q16%Ruz%DHGYw8A+cO3upW%R~5gbK!0g@v>cvOMg7Kc75Ai zkA1ftcRsN;E^1yz&7)+hxCC$`q0n#%xKG^y=%X^_Hy#Ez&!>veg*#cRQS?aFA9~oo zMXztygYCNN->OGp)%eSLBT(G}IHfN_H?~Eug5xFCj|GWdcR@{UK=3s^>e~Jz5|>L{ wA`!r}{m)87U(`^^RtKDAifb!u!OPVw&bs!DVR;|%UUP3G1OFdQYlxKp06T#HSpWb4 literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_default.o b/42sh/obj/lexer_default.o new file mode 100644 index 0000000000000000000000000000000000000000..fce1b2678fe968e3381d80c6e2c1005cca73272b GIT binary patch literal 4000 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_great.o b/42sh/obj/lexer_great.o new file mode 100644 index 0000000000000000000000000000000000000000..6b6d3d0c60b17c88564460144f26eb914f1536ef GIT binary patch literal 3872 zcmb7H3v63g89w)3-)lQ|Y_};{AKPTqu3N`qXI-c&8nU{LyPM3}x;)wm0e6mbo4B}k zW?%O)ZK#r2g_UV)p&%g@0TUn%fy4v|h6D@^QKU&5f+8W9P(gqS0#T4)9h+Ld@7!~X z?RK>M%K2aC|G)F!^K@SO_g^oEh0qKEh899wHo?+ppmk`M=zIryA>wzOWDY2>fhpLM zbb=hmbB}ty?%T8ZM`!6SBxG-Wzf$KRsPACBV`Y7{XMIbxL-wx8!N;KUH!Mp1b56sAF~g1jp&V57G*6r^5TX!c(S* z39%IDl)-tcl&cc4_j?~xc#o)JE~@W6^A7cKUQz^(`4i3J*P?wQ)aUH>AMDm&hVAxK7wvZQg1yqbXs>MJU%PqUUU>?wc_I1zZ5Idy8~PEg zb$N3;|9bN29nzOSZ=V%uzZ>Csge+@8JkX{t*sUMxcKg+K{+H6-&cFSqmY<4PTWh^J zmVBDai)3O&u7`E+&oDaB?zdZKQ(d6vu7YNe$T*3@DTIm?VYgliQZ&1L7NrC!EBUwW z){lli^m2~JKV2y7n@S&c>y2`)n%nL=*H7W;D3VrFlC_e8EB zWI28zqFnVvvC{B_=TyoN4PTUMRnJA2l1`)ige%A#kK4Ie$2pTu*p*s!G2N^-%8ONZ zAx*$4pHsemrKMtBc(sqXRp9%wp(IZ}ofHy5GG;Fny`mgTXsfh45(B1@NLd>atF+bF zxOzx460z9(Vmq+Ajk|=AxV0azNCu&+wVi!Nf<1S}CkF1vAu>&&E7!yT-s+JqGrS4e zW3d>3B1yr3=pcj-Aw=Im$4Ie$#7+zld^-+ZT>fLqDK%Li5@Y?J9 z(Gk+_G3FUz90b#hWpLf#Zx6#b1|BkwgPX<)aLZT$4;!b!BgPr__=AHkx32Rnymtn2$V#9Cu@?01lx5N)i{H;UMwVG+-Gm%cF)OGDd5Yf#^q67lFT z^fwS;-X7fn^)l4Z2g3=d;YftokplHCV3rnn6e3yz8$r|d^o>HS)y87uke{Y&CrA7+ zG}f-=I3mO4XYS&N(J#Q9VCU-aUI-I6gguk9p~{<&QeCjh_Me+KUO4$O*N^kY7*0N^ zGnaO6?iJAg6T^JAH3S3kCf4vf(hw$=5t~ukLJ*g`i!ubsDyj3apd|7B_ns-=_O0`q z|Mv6Jnhl@)$4@uBXl7se-jnZrYyExI+lG&SJa*|PBOgu04}WuD=-k#)`cqGS2RU5h z-=J~&L-^QR(C$WiKN{zZGkO@UjmD*i5ZnucXdtd3U0hn_;?AIph&V|kE;?P@8Y)UI zDqLJ;<>E$Q6!!)nHjrFANUpbvV!@2!GOH-=47ymW8j+>b#T}rccT*ai`J6 zZKtCC*ZPGq^PFp$D_NA;K892R7ObfD#I(?krnFQ%966~5xfMY#T_VnvD=J@zTq1Qs z-`(%;KOv?NtBYp|t-Y1#2iG_fnpUosD$ND_`nvj@h-|Y_&nkbmeBbtM-JZs=MpoXg z4dGw-nI$51-2Hfju)lEk`#pXzbZkg(_+PLyOMH8bA#PcvpsnggR|WYkPr z51NCp^hq;fwM+}@s!7utH4W<%=$tfDR@1x%(wH>YTc^x4)J>CS434jw{np1M)F2$p zSh_ajYvwv+ynEEVbJBc|%Cnx6aqEG6ZKtVOV|oodfEb_Mzm`TB~+9X`{hz-3Eg*!V2{2F_Xi5i*gV2_O&d~V>ZBNkqaEyJ>d>fd86r~f*vTF9B znx}jASbF!^IosDhl?w4V>|BQsE_9nX;>S>0R>9s|pRlU6itDzl!CO)zThE60I1VR; zW*eSdz|{r%S-es?@48#@wlqZx@i8aY+?pc%{BnEuR_p`Jw>du_?{SH7p?F1SUzuH6 z@xGL!KP~55k#*^gcnPb?0EwDOgr^ zaAA)RBwk!P_W+M~Nb~wH58#H(^jone zoX=c%;#`b=-++W4T%Yy7&7^`lhk8+{p>=X7YRiqI+0`IM@(VginL#eEAGdi1#C^|KfD^+WvW|fK%RZry0PR+(ADXnVp zE?baUHEz&c1t-UK!Y-AaiFnO3AZKCxwgP zGWITDmE5s}vPiis(xq#Wn6W&vNa@5@RNE9SVw%^P8?axsHA0K5z`NSki_lJGQ@a-7 zm&?OLT{qxZ=(Iqp!&ftU~XNrU{^6R4^d41j2(5qP=UuNM;9Ohq?&fk7E>e z{|r3Ee7IpmkcUKs#aarqZJuzs|9-2t!faF4YVN7l_QO&%J_xFI5M0v^^Sd?;u4@f& zLwg83p#2LxsPTCXX-|Q-YbU@>?K$wU_9A$P`v(Jx5dLV&uGe6xQH2ggSC3CoQKKip zVNG7e+@ssT4fXh*K3a=LIg7xDjA#pA^P zur8x@k-9Qyu7fyEGkV363sEcFDKp#*nBgz{k5 zft0Q7MCw*Hn!}Kf(Y1*q7N9YACB+eo(A;Tm=7^yuVea6^&cH4RJ&5aIG?jts-er{X z%9OTuLBG?pW&`WTbz{s7h;3nC+O2(Y3(fzX81^SECKwv;Rz(<)I?Bjf*c+d?++CD> zf|(_CUjLMAywPh%iY`_kcSeqMI9b4l{ZgXWpH`|gQ_ z4?NS=^U3;r{L#bDqtCmbFF;&=7UW{km7wcEJ3%bK0Z;?P(nARDg(V;~cA<-Ix#{8# zkWoBzboGL`ifG(vbaC6ss6VS;04vY6cKd=c1vDZwHNT$9T_Zv{6jNg1K=7CxVg(}S z&JbmOUiKFv6^T8dZt3uLpAc&itBT`@RFt119pDPb04YT$U#b`IZ|dxmA`$4#fc)`O6cyp W$M@6IEc|`9or2(dZ&%K}#Qz7>+Cmio literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_less.o b/42sh/obj/lexer_less.o new file mode 100644 index 0000000000000000000000000000000000000000..55ca67fab76fe3232c02d08a5071fe50275f13d0 GIT binary patch literal 3864 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 ABme*a literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_sep.o b/42sh/obj/lexer_sep.o new file mode 100644 index 0000000000000000000000000000000000000000..0fc8b499c9e038ec6695c958f3853a64c4db740a GIT binary patch literal 4008 zcmb7GeQX>@6`$R`+1vZ@-Pul4r%B5}5|c)??~(>&k&EkdeChgfX^rhmBR;gboY(f1 z%bvMiCuvD4(`zdZS0ZhJKLGLZ2SSK~K%!DysXzhILM4dASA-Bs{{S4Rh(HAjZ58u- zyR+BxC81%Yd0+G1Z{EzCncZK#@wcl%#w3M-pa;+wI7kv5Z4>$xGTxvWA#dO;#i02* zFd6kY8PN>GF;6+3?CI0FBhzo|zI29?KqEYw_Hv9d$_>gAF~1qcjCpKv&aj=jYchh)|_cyi+87}r$~>jgng;SuZwrQ zRCZJB%+JRY>D>fgXqqR3KTi98ZUm(HqTW1o;S%k!w^myA1&9}R{rq{_VWf-cTIu@hZv0Gg z6Is4T|Kwk(40>aYWt%UL#dAL%FJIB6tJs?6FWePlbCz>&>5ZSJKl+m_Jvqrj;qam4 z3A1ijYF2V+Fg=(~?kHFBP7VyEp$zWXJ-F*mX4lK9s(H$+d(^Pag~2jQ6>S8j=1$fg zoGGRD?6&8bX~4~PN{-3KatE@-!Zdhc{1BVUO|S>IHGL#0ZSPm;yZHGBVwE|{) ztX#7k6GMU{ZV04@4_)7Q27^kfF&Dul6g^XNO72`t>Xx?0dbtuysGDQmQV+@~2P7pHiF_ck7nN3aFeSDH zw=*yZ*B)skti)*Kz0vXBd+ zL{UzH29!rYx$+pOsx(1^%G02l@&(Y4@>S5V@(s|4@;%U~@*HTF|Ji1(e;MiU3mA~& z(r>{eE9p8G(t0e2omKkWobqOlDo`Nnlbb>s5u(! z2@*2baHprTIz;!SCGLN~Jevv&W3PSthefI%?Hk#b(W$k^lHM7MM|17}@u7I?8wd=I zUVe$G;2dSdVRUuI2$xP5alE1M@MQWpk&POCZ=5G9w?B8W|L?ypZ`l0IKhJMo;i*?% zIQ_miZ@b&NJ-zg)$d#A(Jd%i>_Ml~c8)kv7=WRQsvag(S~(aA)W6<%&pVWKJv6CDKdqO(CCQZ%=C z;8btnMTe5SsLaBPP6nAMS1}`%n@n^9gjW$NnFi5m7ttsmGLg6N`d{@6V&`eE-B_21 z8%-GNnqN`r;YlW)N=S)lP&+Fo*#ggrD}=MQ=D!Fm8%sPP@9*-?A5I*6W%eXICF#vr z7pO#Ypi332TwR>O-(Kre!cvQNJtgd^%H2cnUvIG=vQzHsYBTS-ADkzo*2|9%5Kb3f ze$Vc?LdJ0v4?7gvv4G4%-YW-1iAy{f{ufu(e4cly^E|5N`GyP+Ww@pumQ z=Xf9FWQOBX+5pA|KI`eKTPa-3exctXI2diU`bEL%_bCp8 r-$-mz+13u7UWfK^X3XO2Y&({Dl6hZGqheL?A#N4Z^>Dwh^qu}Ma<_Zm literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_special.o b/42sh/obj/lexer_special.o new file mode 100644 index 0000000000000000000000000000000000000000..497c3be6c61cd53d45b2b736b6d33cc78efcb393 GIT binary patch literal 3920 zcma)9Z)_aJ6@PnsySMkpcNaUP2?=mgLP#p?Gl@YKnBYr%VQuWh^`Fon&~iR+?1RhR z^>*!qe-({O#bJ<)O5qEFFMI+?;=EsN?@QcsH%ZwKxi94D{TCM7LNJ@OFRcH(1A%z zDK?^6mS-RJ{JyVGwEGM_B~TvZn2+xf#p#YQkh$19#@e z_6EZg;8Z2vYx;$upc4u@ECal9r6|m;cuP&**dC*Cw&*u`1bBt1shT~{_|5SJcrQwr z%f%}>hbla!6)!6`iRicTd;ciodjYwS=R3siTCn-?Jao!yi7drf$Al{_kM}@yxhQZmx+f%Cm>tni}2w@3%>Wcgs(U7mi!hghw+`B zHRl{DIn$OkJka1v-4ZV&jc)>vOY*O%KN)fho;_>f6>|}S%zFMbwA1E7 zFUI(`4aOGUOk;5Q3@`Z_on~=@zo7p1g*o+8!VK(Xv#w(zmT3SzoBD&X@XfZ=W4sY! zkyAvtSI*>p-5=lHJPzM8na1&ZQ;+c`1@kc`LK5tTzr&1g964>)b4CyVN4_|6)?7HL znDtX;{cS(Wg+FKR`BRQ>h0O5qfsxF-U2{tnC)3;2-PN7hRxINx>+J1@($%x0>xS** z){5D(eblb`+;XdSu~aB`6)8LEVsduoNaeoiLbhjzJ4?0&SJx|eHVx$W<|c zXgohkckUk>pna1gyYpjo`&d3VLBsj+alf0}Hy|{YKbhP=k*5J)?9T1EV|+L_Zqk9= z7>$qS_YCHSNdy#xLM6weLfQ4mv&tn1*B8Z#R}gCv$EB=Mu1$7m zYBH^FOs-MdQP-icq9)_T&RddIG#Hcx5lHrW`nlflx~M7(&rPPal0(=%0f_t8VAmQGz{9n*^vUWvi zvk~8d-Y9G9LYvc+i0(rF96YqEql4&%K;gS1oY{zBFt%|Q_dCIK#W(~J{TWyr6 z)$Avp{RL<9B#7;c!lQXEn_B0dM{C4i&4=eRtz}0vzP1(8AvGiwr73hG#^qXL8HVI2 zxz8^POK$vFcu$tDI=;O1t9OfQH~#uRf7^IM%f9vdhi^Q0n`^YHI5=Pl5OpnrqH_}CwTehj)5#JMYi=0SB3ryhd17S@5#IEQTF)JhXq z2AepcI9J>_>1^WCkX|CGFmaZpi3@?fxHk9|L=(w_SsSCurh{l!1CN4Ya_5bo0!Ortui@5>IFn|ven1l?HsysMG%F(ovPDG3) zxy~kdEUhrq`SWr6Sv{sj zhTw9m7Khf}rx{|ZK#uomdY`5OBE_B_+ztx2bf1Q?RR_|#k;R%rT5?F+fc4g+drhBq z?U1&8NQ)tyS3){=c%9gD>a6-3-N_|`&+mN3*Yzi*+$!bOQbO={>Mu&kzjjhE1dY25 nDqYv2^Ci$YPSznj%dY3xN63FRt&&s13*3}2;Uykdex&~gDFIWt literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_var.o b/42sh/obj/lexer_var.o new file mode 100644 index 0000000000000000000000000000000000000000..0668ed3e08042ba723fdc1f1ed562bca8f86a402 GIT binary patch literal 3948 zcma)9U2GiH6}~gGGyCh^^$)?21eQ8LsIb>f(#UGv)SGz2+H8Jmdqb!a4V(4YyXj`u z-57O8@V@_^Jn&;k-vv_OzrM38tW5=i9%RgtPzrYZupeTayQ`+YNa z67Le4T=|@H&$;J*_uM(>-n;(O=bwDx7edhl7{~`&(7_TQw3|Q|Y5a=zTEHE6f^*P3 z9hia?qY=$C>()};?YsI+`tZyZ-RrH$4)M5bHtOO)IqmsSn&zx^tTAua>Q%>Vn&bDS zruJTT@o*a46xx#E%5_{_*T0Nct`r<|C*ILEZy`S6=Gt4EhZkS|*s-d$$avf1^YDHl zF|HS{WY1MNr4w&euKowP-?K6=XYl=G`mP#ZHE+*bwJ+nH>&W^3Q2S<~T@~*{zTkw| z8J~wI!xPuW%P%aHEz{1QV0d5J@0&8dQ5n{OYsTl|RgN8Z65JWzC5g91;t@3~S+ZwMGdq68Rfw(fJS3#?Rp9YXc@Fg_L+-${isoDu*>xwFX8V1Rk$7Vg??Z_v zRS_1V==CYR^Hwg|4r1qiACq|7Wib6+?(FBkB0heXI94c$Ef#%!J-IrOuC}KbA2Ff`Hs`bbP$KFhTm}#X~PLE*p2Cm@^oKLSp6(8U4 z8ds$EN5naE+j>t-K{$<-R_-I|wEFRYbRc%@+^`#h^lPR+SlP0+w$@Cqw$iJa<+p~9 z{xQYVoycYn?Mp0L)mo`yCq{;bhlUed3uRnMgCoOGhIVWl`o>+NRxKpU){<3qxw)9H z4i!W)SHr~Q{K?Ak*?e-xwpvkGCfsWEeBBb`>Ak63b_Oy#u}@5=4~qK^OpS~ExqZ9S zQ{tYfbZSOq)6>&#H?@D<(I~%{J1~!8HZ`3Qhf-5w`e1s`L@FzsU>Jrd z*>#aG*Xp8fmP-&dR}?CC-NKNRX07y)CCJP=D>Yxm5ps;s%N2V*(XeZ!dE1&z5YXmJ z$%m~_#1i$&4=fw_uB=JPLro)vgWxdEp3T?u&RT%rmq29RM^UUQN}`Alp}XWCVIb%1E}jlm8OYaoP!;0s(%Y+ z?+S+j6o?5r1UEpq5JH4{*R2%pg6~8x!AEewBF@i*bBqUdg!w!^A|mdlK-=vKhdZT( zo|*&mDR*lRKnkr0rf4>}s_`d*rkw=$X{W$-?F_h~HNpMbPrw7()8IkvS@4kdOYpGv z5_m*=1-#39GKKI~Qx3g>0X3%l6++R~Cl}sz^nZXuE8fP~V>xg`ee!{?Q|r#V+L2jm zJ--DP{`2(r1wMrc{0A(!2KF9EyD9W%h<>dn{1?b=@Yed&0TKQ?G~Qa;4eCH3ya~O7 z)HbLCaS;jbLjT|J&~FJ&p!+$xz9aq+y8b|b*n#h}e><3=1m+-uKLi^FDSJaB5dF%o z@EGKCG>vgZ&frdz6jwCSb2h!3D+XVHn&x1SKMSD;fgqN)(OL zT$}sm4F3Mj923hAN_)%kXrD_{=Um(%YwPi^<-;4E)JI1&K1T{JZw(i-4;MG_*f_?r zBVm#C;q?m`jI*>U6>`CJfFmA zYhKcoho*$G6j$OAf8YtZ&?b2P{Gyvy?|h3?H2!0CPnTPwLL}jm@o+Fe)l zQIYbMfa1gQK2-$W8xo2ZQ}jqEuwM@wlX~x{9vIbC<6b=qO*a~P_iK7Ty8cPscwUbi zzt%Nq0b^PBLmH!cpHZaAxL?2Zbv*`K*J0h5^UV5<7}yN!*CzGwsIDD`%NZCab#)Rx z%lggehM+yFE5>)!AU=?IhY<=f_#z~t9DEiMhiQ-p99tP&l=@Lf`lTW983upmO2hfu zxTo%r`YlpI(9d{AN?r^x7`(>rI#t}&q3`U_aZk1R-`JrGbFR*REDOb|;Nxjkowwe7 nc};6+A&=j`eEsR?Jj;CE&3VgtYT@lZywV^4cUbl;mJt5~WSU#P literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_word.o b/42sh/obj/lexer_word.o new file mode 100644 index 0000000000000000000000000000000000000000..1fe43cd13bf29b051fd5add5e442074ecb9cd5ca GIT binary patch literal 3916 zcma)9eQX@X6`$R`*}L@@xU388$X6;(Ns^p9nTj$ z7u)>{@RWPv@_70A`LbiX`Qvo&Q|oDqhwK{v}oZUZe1yxI#S7 zzxjNj9k0I)@5~kA)o-6)b-mLH?{{hgSFR8bht7j+_ph6W6D3&hPh-B^MBCz9s2s;S z>vqFES#pcEJv!86D+Ux^N-56*k16>)@=v+khUd)LGgU;_A7I<9_rbKn+pF+a6rK`= zCB$6NCJ)YAx#W6??d$!q!pkaWws-oY&whq~+?OOxEPtcv{Cd<^)OkwcVq@;X4{-#w zxo`?rbtId+F58~WE&emN@OEEr@virBi;b1sQscec(r*418_STEb1#@;uMoMVyH-{R zx0ron;hac(pWZ&D8`>8}xI=^rQPNR64Qj5AO2-pW{CGo*i1rE&M^tExxpv{d+LkQuab_ z;Y{DR{*>W?PmPXF9ZH>WsDiN&+lu*g|IXT+aBSGs>iN1OhO!4TlcN*hqr->9c=m|6^_Hi@ zRCwNaeu$D=7x{9nF6wr<1XlA|q2ksZbSZAvN_RMd#I7@a^HrQHPYJnPac5Hvw^o{U zonnfBE}u`nc7?foRn#lraa`d0yrwu$I+bJ|f=4*In6Kx(xd6effM>z3Xlt~u#Ji;t zPnsL!YqTz8t{&2ixMkg7-H7xywhJS^3CAVW3)3!bZ-)_Q&$ifb_t$YMr4+hS4R_%K}g&A!ra?2j)Wv(b3&Blhp~^;ckKt;MB#uZ->+LhiN4uJX0bjc95a$ z_nAk7=U$(J7}9nad8&;Ph-UD?)D6BOhH(lsWPA@)8ux*k#si>X;}Ot^@fc{-coMY3 zcnZ`qehnHko(Am<-cccf*|e$C=+G0|KfpApKRo{zPyQDuq`9s1JuwMt>JNW=2cOp~$;nkq zThKZ}X`Q|`DPqw*XnzO`xg|P`<^?oEN5e5R!;uKFBj03u8;Gez=t=auAcWTrbld>8 zUfW~s1OFLSdpYA#w73#2!x^~>Z_)cWWAs-L53;i>d>BkdqP>`X$r=*0EHzkG+V}jDI;BUi++TX^6tRNy8VWAtd5!3F5J^ zk7>vL5GpTBJ|Pj*D5`ID@giS`XJz`&zg@oe-E(LA@2)>s+T7jq+Rj%CYd7k@tXBH& zx!+30PW+~jdi2gm-hXA|RlD5HzrXWq=g(l=-%yz<|3yt=(M*@!sEir6yMlTz>Z7Pn zp?dLwEd#a=9EG8UBp7j}V)&?HL~-0$m`YSJx0KbCQZY_k9||*#R$RLp=tU4B(^L&) zuF{Ip=Tm~hkWh_`mfn9xoowPY+Dc}UH%36}St^CKD@ZIOv5f1vO04E{D`V5^HC!cx=D$2&na z&Vj0x+(Nlg#8=y;M@gg`wQ5@F)1_SlyIVE2+iPj>md2gry&JuAMEc|j!Bd9h!xQ3n z__k;x8`TQ|A%yuux`_I>BLpL%$ymon(lSS6_n?dnO5MC!#vxs8He>?4b6T1+@{8uI z+zjcE_4+y>oV N*T(+}$1QTY{{u2+SN;G1 literal 0 HcmV?d00001 diff --git a/42sh/obj/line_return_toolz.o b/42sh/obj/line_return_toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..ed542b13be4563e24d6b86119369c3c73f3b3964 GIT binary patch literal 5768 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/mark_job_as_running.o b/42sh/obj/mark_job_as_running.o new file mode 100644 index 0000000000000000000000000000000000000000..c4363f82a2c9780526f50da07d6d80e227034513 GIT binary patch literal 4432 zcmb7HYit}>6}~gOGduhA?%GM+rcO85NgYVM&I4*eDGtPC8-i3q(}b#FSdZ81N!Po} z&aCT{R82@!>Kag6Qwdar`lEsf@eomgN~j2tN;IGXBH{-RK?;4OpaxS!aT_V-`)2NJ z?5#t?)t-AE_uTKE`#5**{_4$FFGhq=LIM>i4619Wav+qeK?^iqrj+7-!$a(Y66nAb zqz)QUOw%n*yT0t}w~g$-?UEiyvr-`5vSGvGNZ>@eVKZ79wFR?d{3SJc9U&qoa+|6yseUUx4=)33H`* zc6GeQF70@qw~Af$5ZmW##C-1q@&JBW&Np|N__!`e9UX-gQ;M95SZUrqZ z93nX9OYK)8?=8%{SeUtYp)gCjFAaIVaO~cB(Q*6^^e@bg%ok=wVP@nUM9^@5VLb;c z99w|P2HyqtLVw}t^Y<+*E*54Wdag8`=A|l402&7V$owmhEy8bh1Opa~!m;Ns!ofIj zY6lZAw|n>PAI(jb8jfA7=7t6a2L^NfRt2}l=Al6-1KYO_Y}qKBhLt~98{KTxs&1oJ z$xjv=cbPDlMaOJ3t5v&N9}mv0{GvR%b%2;3y6Xmwkof)%KXMtFEY* zA=K?L)8$?l8#sh!prU=-Rx}h{w_%SqU1X4Jj#r9hQK?nSIjTA0>EvEhx*5?@LH=kqS#Q2z9MOABJ3EZOFbcB*o)~7nPP%5pjNoABQj+Ht9V^$fCg;MX0 zzb}4$;sdyMLYh#e;g(K(UbZh&wGKh6z8cK$g_l655=zD6gb>0=icsp7PAWr4u4o_B zo8ob_#F&)vmM@+FiI%TM-((9EZ7D_JKppEa&<*IFCQv+n6U59aG+mESvzix7=LV07 zeM9}D`A4l~W3fDxAf_+NuF+K-=2Bco6_6p;RkbX}sr}l=8laMY@Tc`FK#%~}I zS$&7vn>MyUa;WvHz1<@EAR4u>{vy~M#kKl8*jGT|f=>JspwK2=N0+A|>eoe|0n-eP z8?5)BItx8=b>wBR?nu@+4}L4mkuC=II<${bTg6Z|L8?+)jZj2PzY}r@WUST8U@@w9 zMy~;j7#gwTL#PVTxRMx#@DeDRP=K2trl%&M8i`K?Y6@yPQ4G`$sND%0>T95A8fq@_ zAjEDgZZrdRDDhaJW}yy?BqJ$+q7fx^5xgS<-!74ifid`~p+vcYhLS!?7V&z_u_dZ# z8{wsINA)cj^q$BMzy@O*jh}#j8|K)%xGc{?J4tO5m*qKVKc=>sJM;%=+{@SiVmJN_ zjr$PGtG(A6F9g~kCSv?8(6*?(eXU)OZB={wg+_Sohp3{b;HE3uDaiUSQJtZl%Mew` zz5qk^d{7DP6^Nberu~Z&QLr2z-@z5}zDwl6^TD_IkBb9ec;>In2k(%B4}e&f_NCt5 z7hjLX|HlUjDprHK2!_IUf+BQq4WB2r`f=h@<^6}?Q-IbaC22YObUHEhr2gCo-9N=1J$&k}zMp^p?1q2rd-C{y9ynqA?(uK@;*Hav{@D{xAAa|R z!6OgEAK5+Lb5*9ap{cG`Cx&j zKr^7Pg1!s-Dd@MLbD#^L6jpm3i09|SpgTa5pd+9;5O)$k!Tsq2M>z_jiC07?2!%HV zO}sj|QYg$>nwZA2BNLk@=DYOb>86RNUYdATXyW0KCT1y3OkQc?eL)ki5ou!L(!@-W zaZ#j+i6n!VlP0F4?8xk=7t>IB@sgs6Csvwx7tzFPPIhF%(Zmdtra9@wbdn~XV|wxO zkS5+-H1Wcbp@tyR#A`-+ot0j^_oRurO)qYj?D)SHF0WCFL_;@H$k*tMF8m3#lY(g=2t}wzn2u zM^>fDhey8YH1bl*+uMfTv)tkwYIA`hZ^}O$E4;(-V8d{H#K~9Pzyv>@eh~H;M0qs}3XhCDfs4vDp1uQs1Q+yEIk*h!**d zmV&0;s70W~AgSV|0V0|;Et bOU{=w^|g|NdHS1@vrh-BpqMMH7~1{|2W+3j literal 0 HcmV?d00001 diff --git a/42sh/obj/move_to_line.o b/42sh/obj/move_to_line.o new file mode 100644 index 0000000000000000000000000000000000000000..dcadb73ad9997315af1bc166185e6dafa03d0e08 GIT binary patch literal 4976 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_dgreat.o b/42sh/obj/parse_dgreat.o new file mode 100644 index 0000000000000000000000000000000000000000..aa3d9954727d5c7b74c1e1ecab202ef8eb06ca26 GIT binary patch literal 4616 zcmb7IeQX>@6`#HH?%ny4^ZDD&r(5S!O?*z`w1L`1^t@+%X@7DGu=RLE# zm#-#iB#V!e5lV&Hs{a%eK@e0F2|`d+T7?pnh9U?;Livv%C`v^G0ir6RRn6}=J8Pe> zDG4LLdGmhr=FOYg_h#n&+y7kuFd~E&7N|fqph+E7I|$_-&@F-=Q?|zaj#C_i63DPA zNOc5JOw+Rtdw$!OAMYQ2d`=Epo9P4!?Qz;)CxwU+s1Ya0f?}FEYos)0x}GB;)7`;&*i)ZF+}U1cam47|Tp`YH-Ki^()WWW5t)&6Cby%oyd zzwgqX^lvhgt+w}-DtoO9l;Js6wST^U-jT`MuJ@g&}5r68NSJ|`1%~1zm*B@Y- z^Us5m%HB3*FNuRhg}6lUdB#s?!TO#R?@blkGu&4 zB+@Izc}=9JZdI9h(KmsChojffhN0tE%8x|BFzo37>-D=9`V6j>w_}3-Yk_am8?lu0 z>GDMY=an6KSEQ%anB#N0dodLHZz#R~8}x7LJW%e$MG0exoU7dbv+4d1(o+`(KmUt9 z9u@6-_B`=u`$5Zb^F_OTOJ`SSSNoc50q5KLEnN^gyEk@jSSws7o0`lxuI2d5%#Ar# z#_P7HFl`DKbJ{$Z*<3nR8$%wZ+jx+dcreDJjb$xt9ahCCPcPqdzS5)ZvH5G zP?;X@l#GL9ks#zk(H?6r*=~N!wsP$>SFlDs;pE50J>hy8hqeoOOyT-W85K6K&H`|| zn6sb*FJ#M|Z868uA(@;;R-7W2@iP7p*(z~}Y&ljg@1V!$uHv@H7K*MV4i%joIwdRl zEIXcY#Ar^qymLuj@c`#69b~WP4>YgX+D?~W)P&|%oGwK8tA}wIP2_d45S~wAp(;i+6 z3!%HKk-`?_ZY>i%-ddp`UPm(fhf$QtA{K~sWGFj*ChOn@F?(zUfcC_vp`g`ir^&*h zXD0Vc`Fp4#jbD(`eJ~Aa-`lfNP3W27cPP~t(FbYp5V+RhVg^X*QSzb94AD8UFgV)qXy<8Ee@Ca$7`+A7W^9Uu0DYSZo4J4`Xq}_<02Ux3KSVP^u~koi z>Cwo~!R{r}9KRndX{?L!liVcKNeebwHnz`5QF0-TQ0jstA~O)TQne}iFj&%98QTqh znl7!T{-c4kCe%?AdkoS>j$SLh=|yuGkkJx1!J@`;sUhv(%h3md(f4sSV+{KGC6xJ~p80J3wMF0g%gqfpe^6Zd>>n;He??EdwP=&Q z^wyi*Cz1;eo*h{8?xmNv>Tmr%+qAg+w|^eH{$cHjpIlw_kJpZEe!uJFSL2`g)`2tM z_}Asd+4g6TG1TJNlx3g|pdFwmK@8F3pyxr~2fYTm4Ei(ZJx~k|F9D@M+d)I1anMsB zW&>0N)1w6(g@H|ok*=Wo(ImvEZ3Rc6GlZB5Trdh_iV#Ch4P<-~V#uk1j2S`0yc~)DNZ~Jm<3L)^pv7LUf6&K`l;W!t zU#2)1?HOkkM_bgfQe_c%g(%ecpj#-rvofF1mHK?KRLYN3$-=CR1!0cj+37jC(xhx= jaychEq1s+CFF}L>{$Wzck4i}nN6hf$h96;g%ZmR3_@1-* literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_dless.o b/42sh/obj/parse_dless.o new file mode 100644 index 0000000000000000000000000000000000000000..8828a2d327a3b4c86e16a33a485a1814a3653fb9 GIT binary patch literal 4540 zcma)AZERE589vwcy|&}TalTX15U+s(64-&zHd{kS80k#PB*q$wwpDkIeUlg*JN3PW zz@RJ2HqFb#iYC@|`_T%mXdh}P?SpCRhZyS=s!l3WrH)?{Qa6ohps@)dG^%FLbMCo` z z{>0GkN4;+0@jR#aer_ywc@3Y}p!WFk#f*e&`F^>~TZnBksA>kW%){eLkBybA1LR*G zpU3xoMRB)$xx#pnLu&a_e1RzER1_Cge3$V2)a$!#e5G_@!m>ZgS6B1AeyHBFJBzGu z%QuzI$PjDe^Z3;35O?NFPfzD9vyh%*cpq7BM8!9#0{YP%<8%3nWBcR_u8r@rif@(T z`}1A$$@r$znOeU6HGH@3lFvCbecSbZSMeQJPravJ1-hha-iNzhY&uC<8((+W9q6t1 z<>(TTYSr*%ic?spW0ngCbA_yF?%ZBIBBl7^3cLtDnUYQJxdOO`&zdyHOL)8P0MlH4 z9!x5}t%~oa$ER#O&Pmmj%G+=GTtPC{uJPJ&JGMttmA|ECuk1=yj$TVu%9m4>(Mzeh(QB!>X8u)1 zFT%Q*n)d}jg(f*Y-m>jPMkGgp*~y86#eLaya`Ps8 zQb<47LF5XKNZXEZ%rU2AS;AI2=U7uBQ!F@E!7=UJVf3If9ey{`C2R-@!p;{96Y+Av z&P^1oY@Bp?Yupi~+{C0KY$shJcRq(HY*#5#QQ+q>54=#!TJS*>vSlx}xR22xm7GRa zoFbcc((Vx1DszZzm8@*8gdSJhN*6>XU$iZ8uvp5XQ>wD7GLz|&7|#lu-&KlJ+|N0S z`>g^ZR+{T)ytIYZq^*v&=>BNT=!!OJ&B#Ar0${VYway>?ROI2vn))3rpGJcDb>UOc zjuw2DHZL>vRl*;ABoe`nG8zRPg6&W)1ug+Cnm-zekWYwk1AKS1&=|n}tm9^mbW}Nr zH?U#d11H1{A?n3?DwJVY$=bUmEFMiBpzYZU2dz;%MdkOMn4XmOPf^2~JSVODKn?3F z?=M;b--*3{r`1$MAFN$vXsy}C46stiX|>Q2dX`ndcm>M%6{_GHsPYhBZ-_UgxUV^U z1bTr`tFKptkD*Q`7|`=s6B7urk<==1DaDU)EoO z3Wf~MWUK*ftVb1m2-SH&`aPj{pgQ&D@O#jlSYI}=E+_sA@O>Dfb7Em|wBeBFYpAZE z(`X6Zfa)~*!wmPwba;RZSb^3VS`T6YBKQk5b($S|J)5E6@1c5#v_;lI#f>b0ApCh)n>c!% zjAjd(djJ{jktd--MvwH6{GZ_HoHzPD&Sp%&U(a%YW=N+Q0Kr*QhX4j24IP8(3_c>C z!5Q{#B@3Sc-Gf7Xi4|C<5MOW`pXK5c2{z-@{lZWRy?laFu!CfAZTCKK`1$8!Ol+C0 z&BvM}78nER40mKwiJ#p8ug zJ1P|fPdP%TAPV9JCv*mt8pxB15Gw_7XA$ByQv?5B#s-m%%sP@(6?LFX?kadOk+s9S zg*Fq@V)en$v+&|f_d;fFkZfVW`yhy+XzZK5&oroOxEO=4Pn?FQrrnA*pw>7CL|eLh z;5w1Xm$SIgC(CvzsjOtKf8fF8h<(UT$`8AZnx>b-X;2Ri>OSK!y#ZF(DC;3;K*nC( zZ%pWQuL2y=V*m#AMz}>`wGHZBBYFfFfHnYzBc0d1s`ta{8PR>Agx){s$lapSJ)2 literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_great.o b/42sh/obj/parse_great.o new file mode 100644 index 0000000000000000000000000000000000000000..3f64649e9de6229ad08e84231a9abee4a26e6b02 GIT binary patch literal 4616 zcma)AZEO_B8J@lK?%w&#`TU6k0lTpspn^L-14)h)Q%ny-C6~qowTYJV-P%4l?ws8{ zz6uGEm8vIKC{acEmsY4jN~@+)OQ@oJh|*LLB~p+gMf_@0r5{uUl^}#r6NNs{?5sa7 zq%iV3@4U~v^US-m@668mga2Or!W2Ra3sjIg$heNG3xaYVJT+fk^Wo>$* zZ~Nw;TLe5O6yKkWsji?A3L4Y_U$LB%a4p~av%H0PGBR_tY|rut__D*pj=hikv*Qc+ zeyV8hm9J15DRW3I-!NYw$~hIqbroN0lfRDWx?_A!wlr$HU*_wnS+CRTJW+MS zvpE@JZF~WrdL82KeA)5wqHUG3dl}xBp0`)UmsSD2cGviPzVh&H`GRZX%PPJe#rNqw z^2zwdv$6hW>92^7>w=?4h*-VkXYd`6 zP4MTrb{d+;7t>@AGP7_Bih5-;yYAW^%2fZJnYc2TsUEqOsa7s$szV=VCWo$NCY$+J z9l8YTQs#V!0ilV`=FG&QglK%88F9Yypcp%exlmia6hvty>Nwxq4-C#S-Bpac##})~I7=y<|?L zhJd-L(f#G!`D|+SN_R|1Ki@$VN}kBNp75+;&#`UcDqZmGy&_jGd3MRO+`=LBpt3xE zQL+xUiUeU7%caq-O35vZmh5~N>5BG>yW!xz!a{p6saij!&wAgD(7wZ zAPU)Xr&`?M=#WZIBP&jk&w5#Zh-_6jM7A6|UvSXlYgg%#$Q8@3E%uk4JUXSS_$oJ+ zb;L+sxcuT$yz(B-S>9up5V6vHe#T2%XiZvgyhRVk6UO{_lh%yP3?%_JYa8mr@ke5h z#uhbfY54~7Hmr+~g0{5agSC2=srQI*{IOUJd(CJRbTHeYdWo*RjNhR$ z-$qr0gt{ZVLv@9kqlcky6KV~0i|BJ`@yrRe!6o{87z=2%hq@EdHv?;KsJlbdn=$kp z16H@tY)A7rn&Bt)m!Zsv!I_LjfQ_Z7%(bX40MhS^d;ryeK`2RvB3dOZpOK>VG^}A-%V7!gHq3|V+8XJDN*KM-EzliB;qqSaxJG;#B9b%{N26`dbxs9u!Cgr zZU3`#{p%klnAkE~p_9JLtg(b@$KFPn$$vK=ejeK(t#m};M_R+DFD!K2+4*@y9zyCM zSq!S`%VumzVhy?kLvGzm}{M1{r9JbuYOVg%xfP%_@B29ula2G(I3UW_wzlcescZd z{9M=Z!?(c8Y+ndj0oeq30>TtM0yzQsCFCv0MaUD7E9uo@Uej>yz zrXU_Egt+#Ki^mJ0c2p_|o^pgvLKMUePUs9OHIOG2Ayx|F&LYHZrUw4Mj5U#s%sP@x z6?L3T<|z=3AdR&{+l6)@p(Ps3$P4h|JoiI(-6YlR+rj5R^u-fD41IG>aM#-h-;g*3 zPfhzQJ_ohNIUw5f%>$Q-T(OeJML$(>os_atg;nbwnvJ*z-IV;SyZBYkOUu-41%&b* zk{n|q_&#W3_o@2^j5@q%*YiF6E05nU+6QdMZ~D2808zq?njWi<^y&4+fZmkW&9oje zw(4_WMU9Fcfd*vk)WgQ8UjGKb0X+dAtvA9g4y!G#&mYiZY4~o{n*q#4_e;{h^9{X+ zzV+J6>aNuCawRBNv18{{c){vK#;a literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_greatand.o b/42sh/obj/parse_greatand.o new file mode 100644 index 0000000000000000000000000000000000000000..ea85f5b23293978f9af85e523137d490dabea37f GIT binary patch literal 4508 zcmb7Idu$v>8J|6S_wIc5`TU6OJe(eJ^O9npouo}@ozxC?xwt`;61RaAZO?aW`;zmX z*4%&W@-F{a=yxMc!GUU z0v(uwR7)d@X?oVA=gYpnw}0Q>>v|x)tpwt6*u4oK2g<{N54maPtf7e!)Abx_HqE~K zdhfY&-X*~K9w&uz$ng1sIlQZj`dU9cfm*)cZqm7bP}>WzIRl91oJ%-pWoL&DBIs` zaSZeH%nAE&-p-lkp1#15JQ4M^q|d}Nz++1O4Ed+_ybRA8HHRJSuHV5l7vBe+3a>}u z%_uyj3QT`AkjaDdR><2Dv3$Pc3U6x6g! zoZE0WXkpR;`>wSDgc@=|HM8f_FYJfi4SK>Y|4J!dcgBlpMb@0uy~ z|Guv@lb$-?^R?gf@@yyf?78;~$wQXo=8JZ6dq-zSXL3WffD5U8dnc5Rt(!Z#HVW6t zrp7alYdJnMM;t5TW$au>R-^`Dc2gsViwAO<)Yi@JsF1GnJ|b^>BIA0(Glx9KvV^O6 z-m}I;wrG2n?U`==C|XdN9uq0!Aj72*dZB2KBqwY)KVn#Gi~%p_}5@-X;~IafhCMh(a(ZkrKy7m4kR1PXQZedhQ`G-I-!a1 z9Mn7L+8FsfSi)Ev{UZ1&hP0mkUkbDhp|;BCeb6?u_eL4b4v6=|WHiOHU=iac=^^ny z!`|FdiM58K86)u5xekVANT*2{!c(ZY4&gf^C&606JLMXjVOtMTxCV3&_i_`z1??2# z3-97u&aX(g9*O$p-ZWad;gWEIWbt+X+x}Mik-svrWwwHM_%4h3(p27e4rL+!r}^-M z#@oJ;jwlr%O&H)ho{IdSArC>7AY!xdwZ+dF$HtdW;6w}W@qFv)!LOg*Uw3)MkKVl6 zb@jPo>(g(Xzv)+c>a`VH?AF;=x1LB;A9`_M!+XDb{&xMf*Rzc)OYi>k*p-i}PWADaa(vuHJ_3)BbV)^cl(gT4#;3Fs{7BIxg+ zYoI6sUIj{lc7X;#qo4;tJPmLWJRVKpC`@dcnCZ&I6s3t-+YFAvyr+pNzzL%;r)XlT zsgBGqnwWB`BRkN z>nq?kU_2M9#tOcU$S{%iml+}WBjC6^cBoX`fyKcFi*^$nE75)zI4+p>ZQxiWBc=E{ z#aAm1Cfm;_&Ube$Is}E6(*jlCVqc{5a$VSdTba(bh3$OrFVy?WbYTwT?dUn#QAdiI tT+YdkjR)oeURddHMzY=1HQ!YO9*dMb8*Uu{{ko literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_less.o b/42sh/obj/parse_less.o new file mode 100644 index 0000000000000000000000000000000000000000..7a14b1466f52f82509b169dbefdf17d1e3d0164f GIT binary patch literal 4604 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 af=B`UizJsFm6jZgeBrGPKf7>`Mfop9A+8<( literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_lessand.o b/42sh/obj/parse_lessand.o new file mode 100644 index 0000000000000000000000000000000000000000..2d892b98bff1714d2cdd12bd19cfae54870b48b3 GIT binary patch literal 4508 zcmb7Idu$v>8J|6S_wIatoFB2Bhf@6ifAL#mKM}VL<%6pUlxxxsI3SnM5dK$e!tmS z*LO{+8Tp&cP4^@a%#Fv)%b@3(> zNf}~gd_JDqjuqe~3Wcm?<`R<(?<4d5y^612g=2kUd>&qY?5Nz}%J>>pe%z?=zP~~| z8DAlhti;<@f%mHw;<+aa*PZXZ3h!HL)&IUiJRCX+SsCA3DnI=Bo~U2iS6`^u-(-Fg z^K{K(?nEY+GR*@+z9V@w>}j1I6Hfq-DftuRpW5>ZJS%OE+t^*NgK3uE2fYe!ufm&C zcuEzRe%hDG{qvU1|jB8Db zWIpFwIoEVDr_h4RbeTp88~H7b(6jm6L}xMQWF~S}s*`Y8YupufW+Lqh$4%J8&So%# z<1qy)a{St5VbA4L7JLwel$<4r#}W;a$zf#0AyNr9;dPNxkzJ%@Td9nV7LPlM=R`7_ zcPw!tZ>P{GSznne`lzwCzENvJ z3Iuv!Y|{4DRMp=Sxizx6c7OAyYjLu55m2W6&G^9VEK~IxMOFQtNCaoYXb^M=wt{&O zI6loZ9UkKr7&w?+~)Dq|t;Rhk{jtH!ROZXR1I;gb< zx}xDZUuz3=wTqfy1TBxkR=qyh3h}!TtG=K!{$R-9NXBNEjcurcH>0`$lfF8139Maj z3jYb51M6i2>vG^f!+sQ9bPg;G_BLGNJb>y78ja@AdtmLxj&L~8=}|B}6#OMv7cHwI-C$8;TbS@yY3dZ*dUT7k?2z7w2 zEumqssIf782ly;Q+D!k?`P!C1S9N$4+IIHdDx(>IcmyV+HIe`e88=7|iT^3~p7eWf z;AqAK{Pi?DXohr}f+0AK>I{s*+d>b5wFmdeHF%zFdx^p|pnGtToA^y=vxqOak88QK zBEcryqjwF)(JDU*THW#2`V<@lfE!_OJ-`W8B( z@FT4W16;>Lk)JcScHDcQ2N^!7hbzxzSW{m;#B`o~MB zcfH?x_8XBSPaHe71g4(!O+9-;yCL-Kf6Y##YO*f zAO`EBUkiMu&O3BM@E!?>AHh@8-mkAit#J&H_Tj?=?}%i!n8L$6R&?x`(qfq%yKgGD zI47N${GvO!|M_O|Um|#{08&0edeTe<&kHinpL%RSsTO=Qcpl!H$CIF~>ovxR-q^1P`}KfvyIu#a#whAx@Myno^y^Kqwm}Px=!UCrgtir0$A}*I zs=jsvO?&ipFw~9c8$#dHtE409&4(!mjQ#p*v^K!29lUKsUyp(M^?Ku8IaW)*z6Ne1 z##4b>ETFiA&@hwk7a1b>SHN+744eYTDhyz8u*IU=1jkZz-wuu|ru$~E-H0i^N%8fH zgR#HyoZ<(;8({DYucu|Iz|~%+Z>!L6snFSXd4In5m+M0nx-iG_dUWk%+LmG>m9mqQ p1>c;-8;c$ZH=mILwif@j$Y#c+CifS4z_%EF3E_2WmZgjk{{?8=q09gP literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_separator.o b/42sh/obj/parse_separator.o new file mode 100644 index 0000000000000000000000000000000000000000..0635d658b93f4526996606fe5d8633856389c899 GIT binary patch literal 4300 zcma)9ZEPIH8J<0Rckg`m`FwV4Cn3(YHjuRB&LP3I$|bdFLN6v%lwwFrs_pr1?YnTk zJ9hW-L6Zo{ZIx3{3*u8kNc<@IffSk_v{hB1rZoLTDprdMzp6<6P%1!th!(4;q|Y-u zYx|B+Jn}p5ywAMz%*^fk&WvCF&zm2bLTGIQ6{HxkYi8+ z8=QjDO%TPhJo~8Uw|)DLy$9}Cv4hqb)gT|Iy$AwH-7fAAe5fs}V9(U&EZ1`+Y*~Bm zn!NqyWtV{G32q8y%<%Q9I<%_2%vY}FCEUulyUAOKKX7x+rO6{$Uv6f`u@7^-&Fc&J z9#b4^9Yti7!6v>`igw> zxx8Fr>-qvd^*PqSm#fvvwpGc^b9o=xZ$qswqn5M&6W8bSRc8*#58S%GUn#y3#W%f1 zKDoYHF5k-c&lbL8Yvl8e)vmbTE)~DuQ@{FCYve=HNy^ssJ*na&*zad!%ilFhp>(sleO7$1`OM;!l0^7CyUZ%{utH{s7BrJ`XM`z6r%w zQ+&!4*nTl+QwRB0E>$FB>wc3F-#euib58Ad^kde?-vwPlMEwJfiywrH1LUVY1cS}~?W@5xwx_d=zh@WT7|k|LEM*(@x3i7uOWD(u1pgY-7hx?eTd%&w9cs%@sZ2 zdO3&OLR3|eZ2_PolT}bBHCiRqftb+(Jkm;_Cxs; zLWFy@wpcVuJ|QAq@ZHx-V;s5C!5cq1u*yN4L-P2^AC}qIDXwDxqU`gPtb-eS`Ira* z?aqU6(7LrpsMTmX)!sg2a?ekp*>+Gr3uT54&Sb0yYz(0?x1w4Eq^}RZ3N@%FB7cGA#Cp@j zx}5kQzz<@G&WVM=(Z(!!?nU)4bQ(8@IsKrqJE8;n0Uai|fz4?BnARjWz=8Zljho10 z{t#vdI}>^jlpZ#IMm0i6GkybQ{t?v-4IL=!uK=BFu@9?Ibe1H z{Sy7wMZW?SH?ND_4Lw2U6o-Bv)^oJdv>t)Qm71flgn0`(_zlgza0x1IULE0Pxq9G|)T=$n1}P2P$lCmL8J-Qyl$3F#6M+&0q%(%dbvm*$4zV zBa3hQxA9`}LY$#2;}bgNyEKg@)H?Pu%4+^k^5GT4qq~oeD7;uTVLfT-2*`m3-5u_rZdy`p1Hf{(uQaL_TKjQ&Q>=)`sWLqf2yZn+OVUtY3a8+ zPsTeBKR>nQjo&?YqyEyL@_ic{ufKEr%?~?H{^;U0Z@qB*h7U&XKNbD@)AyWt_}#^g z`Q)R=m%tmvkHS#i4%q{_3vvi@0`fTIS;z~JMaW+v|As`c;Hw~M$W4%GND=Za2(tk$ zlCvKgg>grSfv6w`5+TOc0DXjDSQ28Sa>FS6@`M-=Y9OP45CcOEWZn>BA}KE>0~}=j z0AiG@9%dJv8G~w;9yAFti$UOWWU!2cJqCZds1hY@~J zhc_vjN)W=@eYXqkXk3eTn&Ai499PlvebQXM931{)G8X@C=!?PgS9}J(A@M96HSL2~ z7ix`jK(v*I2Hp($a=n0ubh_?3X=SBLJI2SF5%-vzmKV5-|9bgGS$TKhaRO5L`lcy;B%_C>;1vFvJ_vkZN*@A}f#X8pxB-Kw zjI*Im{5C>7%t?jV#-PF`w#`Cg&ATjUbniN#`akE}Mq24>lpazVivGq=ltx=#f5cf5 z5Mn`5;{sFO_^bQJ(6ibWR?F`%tXVvd3I!)WUz2V8%=n+bT$+`Z^u{;g%MAZV;9V%h F{{T>rdI$gj literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_subshell.o b/42sh/obj/parse_subshell.o new file mode 100644 index 0000000000000000000000000000000000000000..90ea1422b51e395c5555ae9cac4df8f303be6893 GIT binary patch literal 4644 zcmb7IeQX>@6`wtO_wIcDIDf@X(0s=*%MSv73w1F0aNCYb44TEnZqJ+zTp-=6C>{Yz_7W(iP)# zv(BXLeHiccnjCs55#UwTSHzpi=46Pq@r8J5JH*xTva_>A+j6oq4DUnpeM7}Jr~-QV zs__MQrSWOG!L{+NR{613;a$2$JQ?3?Hdl*xXANFYW7Wz9&6@QK;`1M#z2bZ)72emC z*In0$heIqOYvcQu%HMFluQgvSzFcVr^YpEMC}zGg#Pz^1h;V)ckqPtg$)s8NrE+NsdOMZT z+va>3Mw|Ip89QrMevJUnRz`j!%{QDh51$(P;>&$GG0bzH+Ogxlds6#s*DI8q)IhpF z-Jj~s6>(Yh4fI1uZ@M|XVZHF&TxK@wdbS%d%PWt2Q+BbK&WX$z)Lv$Ce`z|O&1|~a zn-bD=(MA*;Ut~RB_|~}Z+P3f%FZlM1$dw%5c6`e#96%2$%V&~hU1YyhLN1n^$yC|# z3X_hVPZ6$YPx!(uOiua2^Rq6oivr{Do-Ov5+&nrZD+eq$m375LUU>Y7lKj#`w!={+ z_d?DU&|0;1&Fy+!bJAGR+^V%9zawcV+q9vEy5>(OZcW_SxV`;$+)8!2h$z+eb|mDc zC8EAo)HUChNZ{NUErJHoWncjWj#j%?*PKWYPl$LEY`3>l7{DoP;E_#qRT+rm$oSw| ziOF-_C~ji9p_l=ab@;XjETIY&+I6kTa@Y} zNA{ej)S5*fq+O4IYi%}1(5G3|8%M#6=TJqDqv9(i(i1xXmWs5+9|ylcRY#;p#J`Nz zJCr(M5FE{?(f>kbxb>@|oU;sdxBh)-qA`Ob8OxzIR-uZn zNA+8%^yRVFz`FIe_@BTzu)btqT@L&v^t<7rb6{c6+n6BEUQ~?FXpj8|tlQWaH=yF% z%D9CSNTKySrOlXth<+Q*1jR0$iK54%KLT4vO=ltlmNagPe+vAsRHcdFqO}LhXJjbt zhqRMYKO_;o0P%L3cEs)iOB(Cqp8@AG7&p@XbD`85>8X$34{0sE*UM-!XmVP{vP2Fn zW~`PL5`PW7OQH8CIGXVQ?Dc6nXofVJh9X)<^(82y+hP^4?&xiD4W4J;5K*`WG>;B* z6OTY*e9=3&mWwMAZ9{5)e%M5>{6vt4U-Cc~eCOA^_=_`4WtpGgX%I`bFXdX_ODG@5 zh95WH&>aLr;U`-Y2Dpw-2|sSgLr^`4*erZ`@zch!@f8#}!@~b+Vdb&0y~iGGJ$K!6 zZ@#aTi z$6j2x;U6as-tvC`p|2#qaP*;LPrh?@MK1O9!Hd9U7BQ7KfVP6TwcMIVLC=D|2RZ>d z3wi_e9w?50uLp78?*NT~ra+H?cp6|LF_(d(FtMp(rYjXwlqzOz7dQ&@o~pg5IAIj# z6je+$<;eV^ibE?$<_uL#B4x!%L6YYODyER?VP?^o$)-l(0iud$ijNW$7eo~=7v;#) zK@|^_Qt`x7#bd0nc>7SrYeK1bo~XKT*@{;RRlI2w7Oxkoc;l!bc*{}6Bv&dPaH@C{ zC`a~E#YI*sZXZ=VX3FvZWo#7L$gG1$bx|^bmXt7&wFCDGZ7!)L8>6vrz=|VX4?6lD z!B9f4;pXHMkvp5z^IC3dM0^*$n)ZHk6KaiPfV9hx4ZIw3#d01G^-S4wGfK)7HV$lF zs_`E7GV&YliJHd;9w@++?~e2ovmr1;8%I#RFCf$lJ`)0q;Gq+=i}sxD2F)PhgXz?@ zXnJEq>^pkG7}eVb_1GXRxJw5VVW{ literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_word.o b/42sh/obj/parse_word.o new file mode 100644 index 0000000000000000000000000000000000000000..22a0503cff60c484e7ce242fd8b3aec0c2722f98 GIT binary patch literal 4296 zcma)9ZERat89vwcz1NQO;W%lMu3v_Q0nzds?w~l?2ICbpo z-s^tRj-g7^taf8l+4#W^il$Z5B&KR?KL(m8q8gwHQHctH#E+tFsDe(cQw0$dEzfiA zxvuSXG)I2#`*Gg$oUivi=lJ*k`S7|agccU~fFhuI9iJ2kWhrQZ#?L4lTl|XW*ajug zfhkBGG@@9RXCLx>+1GdP+`Idx9!Nh_0`b`Gc>qZ0h0hnvuf3!UL+opPC_=1?2iiMIyY@Tl-=6m<606eYc+x;2i^44umy zKR@`bUyU*$Q{&?ge=T*ucHBa_l-fElI53!6mn-5F*|2pG%D|?(2Zq)Q*U6>lvyN*! zKC=#%o%}#fq$gl<)6)mbv-xa#)7|cjkZ!VG6iS}Rx}NZ?Nzbuu;VNG6>^YGumpr@V zS#IG7YVff=e%ZYJx9sl0G`tC76&e!Ik8C3geP70^1hHSJw`xIJMkYwy&O2)NJyj7e>zCEWg{ z_`UJ9t-HGJZ$%pFBBV^ax^Nq8YEbpnBHVsoJdQv%Is_fe9xxw5h-jA+yL9CVgr2cVK;bGIkN19qSDp>$2m&!2TGT=CLqioLkv^x)my;ysQFW{6|^jguLVmO zcg2Rl|3=dQ5oRIn!}1wvYGr7@nc3Klh1Ne_wtIkuh-T7RCs8IQnUpJW5gkWRBOm=$~u!)QJb z{VrIad7oT^S6DYf6s`f?%~5V*6&lB9Zs%IoR>Vx=jQqxE2DS3cCP&W5;@kX(2Fni69uPz280ZI}S3z%sE`Z(x{Rddrc9@l7f%|6 z#p8uuJaN<@CY6anu1rjDdhsMs4NodBo^Hy-%%T_5Of~#}5o;nE8Fgq;SJVkkoQ4v_ zv3BGkp&d$SiB>cE9K6`ka!}&m#JX`KxB;lFKsxo97<9bfcg-Cuxkho-l-L`U_wF{USn_2@99uj(z(I)`<0SPwyK zgSN`3=wARI9MiXq>D^;`Xs@0elg?diI;Jm$^O)XYL?6-nVCfyxSHd!E{3v8#LB#ja zAx6F7FgVVFZ7Qm^?T3yTY#0Z};5Tdm$3%^^;&&>(QgJX@|GMHs;Jo*OLa|O2d^6VT z%bN6UP5PQ9U073iY31`yZf;)6SYG_CFBYbxCf68y!M6|oD&Re6-P|+j!FLkc16KSG DZcuCG literal 0 HcmV?d00001 diff --git a/42sh/obj/print_and_del.o b/42sh/obj/print_and_del.o new file mode 100644 index 0000000000000000000000000000000000000000..92cf2afdafc3bfff69c37f2aba19b1f057aecf27 GIT binary patch literal 7520 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/process_cmp_pid.o b/42sh/obj/process_cmp_pid.o new file mode 100644 index 0000000000000000000000000000000000000000..a7d27a7644b45b631b801ad7b1d7ac863db39997 GIT binary patch literal 3152 zcma)8U2GIp6uvXNGo9|V+bzXf!jDU~{Drbx3SuKfsRG$zH3a!FF*un{ciS!7-DPLC z6ru(aV;~rV5)+;bF_8y-fryET4FbSmxIZ z5JGLyn|S4_`b zTX4M}O1xL(20p$>JRCY7GMZmZo`-O~7ZUdplUgJ{r#gdmdRC)yyi}R6tg&6KGuBJI zv~+$3Jf^&&Be++fM(_$#R_csqli#g7tCngVS-73!4XeNZk{e8lK_ z&q%yq<)l6Ukoq5xANM8205jMaCf^4hknuYpm-1)uK5#3sL}8z|`WK@g%%A-&fA+Oo z`Lm6i`E!k1=l1kL+}x-ixjw=Jkscd6^n7}@Po>7cgi@$n}!ErWVa4w zH*XMb-N{W?$2U3EidV0ebG3TaDY&lX%+#z}X(H>0+(8#0xyj?z=?Ocxb;z9(kswj3 zc%mjeOZtV|)a+T|Oxbl&v%M)%m@7C%gas1l0&ICKiCssp@Pobyye&h}iW8*@hHAqT zu4j7{zzw}u zI6j~sgZFo+vB%;!_@kk50YcYCKxsWaxgW5t#Fx6gQwb{Ez<>Gxi}gxF8OUx9xD{|V*?cplb(hr!Q*xtkDzo7@Wt zVu9#l#iZ-BbW!49khs%~;^xbjfkmQ=yDulQE$L#lWE3k!7n?;!v5s`Hywb(~rE3-} zU2G(}*d7w=|0>Xi-Q`YVMnLjd5n>*NB~ec97s^~pNp-Xt=jAt6AoAkvpdjI~6eG#h zo9eTjK?4c#3u099DMm%PlkCK(@Ec$ya<}4|bjpnhTwS?_ThB==SK2bXZNA4n5eb1K zXUPXYa`)nb#;16rW~bOLepH|aGoYi}nmW2ExMtz^U%K|@#S`mNv_#@_tyABtE#0AY o@6~V%s92DAB3O`~lX9(;tE7Zr7W$V`as#?JgcQC9;j;q&f3I|@u>b%7 literal 0 HcmV?d00001 diff --git a/42sh/obj/process_format.o b/42sh/obj/process_format.o new file mode 100644 index 0000000000000000000000000000000000000000..208d854eb3bf2908fbf013045f5c4a6d3da1c4bc GIT binary patch literal 5316 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 IqyWeM2hJ3BbN~PV literal 0 HcmV?d00001 diff --git a/42sh/obj/process_free.o b/42sh/obj/process_free.o new file mode 100644 index 0000000000000000000000000000000000000000..7df5f946e4a5410c8630de1bbb990444a1eb7e7f GIT binary patch literal 3528 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/process_redirect.o b/42sh/obj/process_redirect.o new file mode 100644 index 0000000000000000000000000000000000000000..233c6b13bf2f760512943f9f29969dac8f720e5c GIT binary patch literal 3340 zcma)8U2GIp6uvXNGo5zZ-GwTm7M*0vU!=QjA<`&O3e;@1B#Qjh_%m*2x7~$hce6WN zih)Q{AT%WgH9q)Yf)74vBu1W;7!AZIiQ&P-MBjKI;Qlg& zob%mt&%JYJFWtWWPm>TzNMHbm!4(aI2?jk3o~3gE`c3y9oMH~hw}C0hF*-q(<>V$D zPxtJd1H(J-*uGYi3h_8?vDK3>j`%T@mX*zo)W@uvQ+3^zwQW!Tj_2k=e4H8S3CTL= z0)$W-^f|m@*>>GQyaJokKz}Y0FEcVy&5g6(`StmDCne@$@d~BUGE;(hw`6_$q&&vv zgHHPWTVTD_Old5KW(D!yoB8UH}$!lhM>hNrO z`ta=J+Z`fy)I>(lOnQ1?c6y@YD$~=`+h?Z_c1#WY?wV5rH~4gN!c<~M6L|g&3-A)m zh6HnJ;F?Uh+VgFC@`CyL`F_4==FrgY?dEu{S}T-GW?!;9*=??|i?|)S`nq8xH}ocZ z){0uyPUR+YcB)b>+qqiJs^+qVYR-0&wn*)&Aw4yApu9JmNp0w@`JP`c}7^FpW#T)uSdljbC65Gp|=otPvXFHGY=EQy6qbQ}Il1 z!|);OklF06q9p-GOP4B@tpi)Vg;Hi|Ws7_!;^!Edm+Zq&4fW zXsw>A>z`{eKj6$=0#yB?s$=~^WW5G-?SjN4UF)UIp3>gv*?LOKRZ>1CB?Q-|pOX^0 fh;fj_L)c)7M*=n$8u)4n%Py8{Ibmh%m0s~5+3whF literal 0 HcmV?d00001 diff --git a/42sh/obj/process_reset.o b/42sh/obj/process_reset.o new file mode 100644 index 0000000000000000000000000000000000000000..980e0521f6cb97d05eb5639cb8a3ec2b4f55f962 GIT binary patch literal 5116 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 B?(YBq literal 0 HcmV?d00001 diff --git a/42sh/obj/prompt.o b/42sh/obj/prompt.o new file mode 100644 index 0000000000000000000000000000000000000000..8d0bcf53963d78750e66d46f9f47272f8441f324 GIT binary patch literal 4764 zcmb7IZERE589w*g=f+NgZ3tzoRK%?brCM!=gwlwQ5k%bG09i61e01tAjz1D3f62av zq-(0EW>wrQB53M{HfimoYRc3h(P}^FHlfh6@v$HD$G)WfSTzl;Oq~F=9af8)J@38e z8t0M?c9L_S^SC4C}$^Rw!8_kLjgpDPG zlTr4GcABOqMs*LW@*6d z(xkgiFpG=wMTdq8iK8@r3;nbBek5oflrNP{=BSCCZ-+7XjJ+k|4TyQJVm?IZi~3iH zW``5Sd-*=Gt)bsH2}ke3qI{WX%y7}}pT#HKWB2Ea=JV--F932XZ|l{Fac@y-gqQLz9gJ!b0x_$O2g z{G)L(&cY^hBT?l_r#VNCRYc>P@Eq97Tss&$N)5#2jou&i8Br%Q8cW&EsKxvf@yYg$i@ zpSAj)h2>P~($wIEslGYOy~~xWmB=p)lk)f_S0!@B``tFML0ImcUWF2Zei1Ftv9-0J zDv_UGUtw0osEXHD&DLD4MBYF&hY?LOWQ)gtF>(h4)+nh{3^CnQr=MyC-&rSWD(|YX zzB}sF_)T?c%T?3CD)Szvbz+R1gi*hKWqy8MjYVMBM|S58yUM$j!Rq?C$@As$Dx2)P z;XO__Ak3;JztmOR;9b?zcKC0!pc?|URw-@x` zJP(qpDqT{`bCPOJO3j5utKrc57zzJ#@2&b~N5|&QjTvSZIy21QwnGR{TiT8cYYTP6 zH`PA=nt9s}KN~pEvz2Y9)7Zaz_x?Wr(L|w`%4Pjsq4rR_e_bq%D^7#=?U|G!73R%N>bF!y7t^BP^+FW;KIo{x zN`*oK2TeRxV5zLm3JIOzCzVNPI&Jr80q2k=?bQdgI}$fh!JE`S%Q&VsbGll z=$L^yLp_#=8tP+0Jti6fcF6&!`yET#EeBlg^On>n2b$fNE$QoWz~_G7lKSPq zayRiAoC9)TrTYU*`i2~M#7zf*QMX49_}#Z4k#Ekua$ueNbCg~~1kQbOpq(|ofuiD| zkJLzN92I-Ft5l#%gR*tElTKm^!+|i5qH(eK=WjK9d#~s9{%zWs9_Z*z9!EAN4H!bE zWK0e4pdm44j5*3QT$HRn4F@1E*606Yqkx0*a%4&r2l?(`9DfVYHEH@!>y7H@%%#K6 zzv`nCsSovA?GuwtU;AwJ>Yt7sVln@#FXT~IM*cqX&yatOd=;7InS7?rDeWC*~!<;aC{w#>rvP1T>cZ64sqt%#+{A*+;y5itmqu{%TdkU)a^l-p5*cg z?t9ko!>L1G;!WW2%ikpB@Tm&v60S>A#+U(&g}6BK2>3R0`i8+UT|OI!}gE{yVa zgorr}J_f}037)~&kUR;*6Fis)qUxa`AVw$H1;p3{p9JEL2>M0+QXz98{{zEEc7Fkq z-S2?Ja{);G{0fNoZ15*S|3jb)@-z^eJ2(ua{tf`iz8^^KRUq+h0TOS!&_4kryGMom zFc7W;9};?>(4$XE!BhC4UYQXX6)289@1+EpiT41+8zd(S&_XB}Rpa&gH04cR1 zlWgrv^1}<+N}Exr6WM;7O#8LIewR%aenM-eBB0)$%JuTMY_fI0nXU2FGKowqKgP7X z4=STr(&=9$RIGnckqmt{mdP`EaYeNv9%|`?j;E2RODCw9OqcLT!xIgUtE5p?d!uRi NUr97g`_J5w>_2+b2loH~ literal 0 HcmV?d00001 diff --git a/42sh/obj/put_job_in_background.o b/42sh/obj/put_job_in_background.o new file mode 100644 index 0000000000000000000000000000000000000000..ba69bfe9d14e9d478d76b165625b70aa60e4ff9d GIT binary patch literal 4044 zcmb7GTWlLe6rEjr*XyifyGdFKrL7?a0yJ?*fkr&q21;=uJXBiB2i4-N9cPQ<4ZG{o zB8oueRRI#ukMhAoLINQk5(0@IP$iJs@(@V;fIx^JN)a!CDp4MyoU=P?ViTZ@bmz{! zbMM(Zv-i%-2fu#zM@k4KA<%)6puHNp0toGRP>J$Cw9C`c#23;gmVqfqdFf|aL3Mi| z1u)Cnc*%7e|B~a;)p9^Q#YwhN-4eMG~mK?pzO+s7Ufd^F^WQpdjnyFiAs|3Bl4@Z5>5;ScVN zZ<(xzWfCuGw$>RBI@UWYzL~P!i5J&kj5lzMc)^aDIoDg4@r}qR#*YyXMI1tQ#`lEG z-#EV8y5nWGc*lBecN*&qtY+h8r%|!2@wF{W4E9UBf>b^SJe~s;m88w&@Y2AvXOWFAL8S_glC}{B^HBU z2nt}&bv*+<0M6eKpIsP+jh`U3EjXI`&wf*B_m`zz-{woZcOKc@JiKe?VUfGD2)8$T z(Vexobl(+6&Kyhb-gk&lyN-z50~riT4_w#-7An8y3@mrOo!|1-jZVE@7`SHrr59gy z<;K&+7>lYfK7Q>Lg>6;Ocicu{bZB^JxG-SXaS{xU4nr6^dt~UW(}nNZ#jWndpzSsS z&#f0{nt=t`avIh|*}k#nxy?pp$QH#-KA?)Vo87IIa`EgDe@e`0Dx5|j03bpb;S)?a z6){s|=TxkKf3fT#y{uS-%Zd?9lmlEI6U_j%5m=M;a!u6TMy(Kbgq?IeKd@#z*RJ|B zsXKmvFNBQoS79T$I7A;JBs_cbdXIT=-pQ%tvbKQzU^z2DMUkR`rKWv(-SQp2k z0HPW&!m7)N}I|C#3EJyFp!SJOoZdb*b7fj7Ks0kWxYIPa3ad^dqH{)PBSG7^4J$)sxl! zys;7^hf=@VzfkC(VsZ~iTcRHXdlHl^=>&cWlvu9+4)zvEUz&UeOfxjDT<=9kht%<@ z@4yzOdW^&1>!42cF(Ue1N@+f07{RDQX#rvoX?+96X^^o*-vX8gC9Y2vz*2@r?55D)iXH8Lp*t%~%O6JSWL{h_OYw z=&?4qCD_S~3DW?4hz4l0eJOYP9!2{#QXE`zwW z+|S2BFM{@hJ^~#C{Q}Bh`JE@}WHC|2 z>XKGWII372(uyTW70W@sDi}0X%t+~2kSeB+v|>fkiX|znSVL5?E~Sc@Llsj}s+e9> zG36u{Q;RAVleFTFQN<*cDpn9xEG(&FEmOr3mnv2;RV+>k|8H59LdGyVU_GnJ!;Cm> zEzULNmJLGLo>%gjl);MQhfV|?`I%TpkH&|g7|Z7GRxj?3Dg*x*wyO9NmWuLQwi~^| zZ-A7JdmGoTU2pRGDmHzuD5avaV)Wd0jlZMA1d5_1AEa~M=(zmxLB0v(8)0aQ|043i z7=_dtCov9hb?9+#gs_o$-4CQ+bO}p?=&pqTPaGP+jank7XnNN{{W2}9AJDqNQx|9_ z2ketjEZeN9+f*GJB38ozZiDAVeEu2Wh<9*h#C1NaAnT_}zC?1cQ2&$UybyCRj2r8J ZmKcs_%UEdD^IT6@e0@Qh>)`~9KLMKjMa=*J literal 0 HcmV?d00001 diff --git a/42sh/obj/put_job_in_foreground.o b/42sh/obj/put_job_in_foreground.o new file mode 100644 index 0000000000000000000000000000000000000000..d6b9d13d8bbd68a6570028054355bd35accb2cf3 GIT binary patch literal 5456 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 M=8;n~{caNCf4=*J>i_@% literal 0 HcmV?d00001 diff --git a/42sh/obj/quotes_gest.o b/42sh/obj/quotes_gest.o new file mode 100644 index 0000000000000000000000000000000000000000..17f7be69df6751c59fa4d0e8f54f0ec4e40faf10 GIT binary patch literal 4408 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 Vxc1wCYFd<*zcuXPY=Qs7`!5uNM!En1 literal 0 HcmV?d00001 diff --git a/42sh/obj/reduce_bquotes.o b/42sh/obj/reduce_bquotes.o new file mode 100644 index 0000000000000000000000000000000000000000..3aaa01ac36a7f7281c8441ce0a42b7c14d0e0777 GIT binary patch literal 4400 zcmb7IZERat89vw7$97^nNt3iqmu?t!lyz$2evSyzQnzt;lO|h8nyy1kw~lj@cysK` zzHZXdlC2qNp2yT`LJ09SAtw5xOq2L3ph=}5bz);w1Bvnn_0OgTiYOo2qIDuX&%Ngs z$Lm-)%6s1Pyyrd7dGGmle*5lU{~Z)U(*-h!A2KbG#UM!QAd579KzggrtvJOtNFD~K zpfu8mWSX`$YrAC^A50!T_+RXmCKv<~`Pl6&2*Nb@#p6_7GR-k-v@~HB?Sf-6&7KDm zL;JmI;qg4D_}&TJtnvyzuR!hbW%FsrT+8?FGH)TC4pp~y%F8@FzSQVw!8%I*RrKT9(`@Z-4D!y(N(ykAU&*jUHKI}|zZF~!g?@q;c zY=wMIeAB6PEnifvH;?a|E9A3}P2ci+w<^AGr~&-N3i+_<9Ln1Ge#6a)zNA%-^K!rv^)=e z3Yya}2&qo&f}*xyb=8NKM~w2D#{9J-M#Wi>#+L_PGs-8f8|Bi~i^Oe7qMg!-(k2}u_#o%=b+rU+$46YN`ovN*Gu!!d89f&|V z1?A*-7q~J38EYl^o-zNcBM<#D!NVoi-+yQzcGM~qGx=Pst8+`|me^hCEKbCZt}Ota zJGOOh-6V>IbUbU#T7`JQ8Y`tObM(Jj&i4D3w~iF=2ViG!j)IXvtZ6ZiEvi25@l_a97( z9#`#6>^m^rpBOg8p~R3F9!&1*P4o-fwDXTxIZ;%ayPQUw@E zIo|cWnlTUsTUfa<;YMpeg1Q+op0UN~qqw|Tivk_ARocfITBP346liZ)r8Q&ve11)D z2!}rz{uH*EewWZ2)??fH8%1x65ONKa-r!aSTB7V*7Z{Ol!?sY9m`+@M+CMBP5}1=3vpqIh}cYpbg!$N+kF#E%M=td;@__y<@}T}zhTJ=5TK!6R{AZELpCD_2=<5QvLAB}4!H+`!nWk2b%_fxoLbRG=W1y8 zd=Et4AvKtHq3HiyXaFi0@{`-|bSRABgaPCn_S6vwlWTKt?70`FE1O~C$kF~!2vc=i z;@Y-6X8#`_wx{qMXX53ni2$_31CZC0+dp~nO@i7F%_v#sDM`)53(kHfbNi33Z2a5r z(yi^!{o_*mPi6eomyhqfaohIX?OPsyD!lm0jxRJtj{dNvT5xSF_% z{P@_lkh>uqz(GhFauiaAaC-13IA3d^k?2MfhhLdEdo(!{N*{M(XyWuKuM2=QabGAC zCyOS|pL*js%N-`}5aq>nPOoba<;A^36So)60w#VEP24lei`$!~P6$U4i62c9_mT4Y zU-K8l$aAdWU7gfcBhj+tO{@0UkkDqEw5CWfbP8VVX+7kXcSyFh>rZYdrs#+{o6Cz^9J zc21IM`K^NM5o3>=#jSMxQO3el7Y6{x&hHa-T#-)F8#O8G_4?4acz3sq^vQK-+XnQJZn+6$eV{#nMtyQq;6b?!`V)P!y-(Jil);m7E$Y_8wy{rk z!UoF2H~s4aKbL;gq0eYwmqXDQD9P0@>3!hxy(P7huMT4`L=Oa8u45-OMx=ws6VBUR zT<{V&3XQGV@h^-DiXB{`7_5%V(DZ*1n*Lj$F?b!^;2~f>bJ$e13v5*Q4yB=-`sbDA zx@trNFR@q!#S=AndkyCLtM=brgZb;cy1ustAF9FQHCUMV-7%HI4~_}T&X?@z65b!n z7n(4~ZT=r%)UszRyod;~?8dCDSK}3(HwfQA?wiR>PffcICWXff7V2EKf;F8@rCkU% La~wZ<5ZiwM6}rt1 literal 0 HcmV?d00001 diff --git a/42sh/obj/reduce_parens.o b/42sh/obj/reduce_parens.o new file mode 100644 index 0000000000000000000000000000000000000000..9ee29c88d08ef194c34760f0c61153c13b563b6e GIT binary patch literal 3980 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/sigtstp_handler.o b/42sh/obj/sigtstp_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..bff39d8ca36278979952e1c37b2be073b3e5fde7 GIT binary patch literal 4128 zcma)9Yit}>6}~g;*@ySxb?gLJZqqG^LrS~5sqIp?g%CsBZiGRlahiaNM(f$x-HFCC z+nsS+sDTC%zHjD^ zyE{#ZuXOG?=ey^Ab7tn8xx2r9_pSe?gisO!6J!ALf`+LC!MF}mqyGV;mI)VLmobqK zPC+TkeY)H5Olk%jmC$ohgb$j4lE4+)VZHXzohqM_@C=XWiqC4o3!#M6-L zcLpTUZXwk7%)rw1hPk-h(m^Wy{fB4ozh@)rd1*b#hlKH+7$2ZM%81W)jUZmv`}r37 zqJ@}F2VuQaUqr-LUtH{($N2oN&i9IB*esvrG+l0q^WDgTz_=vu_lnH#2;K+Z3&vIR z>(-r?>AjzCTdaoO84O8!=Bx58)r}yaaaG$=u>>Rh8hOW==?}-%`BwtB_=fTI4Jc0U? z?>xq5w)JKgZ#Uc!{~r8H^6is+7bKr_1#Z6`+0;?L*_IP9#_xAV_Crx7Ggb(9uYEv% zd@jMaFdG&YlOKbeK|Ei@1?UFd*H~@2e(B(WdlwEa+*h)kQm5-0rstI=tYCFe zcwM7<)LkqauH$!IyXsjj-}5_qyY4h>vs*F5EL*lTKmWjIOUKNvXSq&krn0B9r?lI! z@trBp?1596o~+z<^CsA;hdhu}TgTm_je2!@(rb&@CFwh^upD0?F+=!zpuA8ut*#d! zz-`O(g%>L3Z(@tox@Vm-!F0;heU?$Zi~0^g__ph`O3MzfV>a+qeBtm|^xCFv>z$U> z5FM-0yDxGPIyH#}W4YVK#dJi5oBSoWfe!c0?vmwt!qBazU2h5BpyCGI4FE$A5cqcF z8^SOUv5}6^u6KjP+2LgJI;M&1a1NP5Kp9ph3L{#gP)v>&hLtU-O|=4Wi?VMpQMfC6 zclIN>Pv+3CnouQhU5Z3Jix$Zs%Vt)M7mAG!(bcYv(O3um)?*=qk_?$Ed%J51!ntyCDF z3so>jKPEQ5I1!*cP)C3=q$mmX@zW0lb`$e}`gmuB-tZD;p&jQmkmOH`)GDSmNM=0! zRj4D{uFPZ5KY?hw)g2=97g#%yjdruTBb^z6MM~|X>W*AyJG?or-J8GH^)Ge83p%sLwqa^%37wK&!;T!O7q_>R}gQ-019|IfMo*IMsGnk17wckLc z(n)fss(}AVV|(f@nD4?&)>2F=12=JN_71a~a=Al#QA=_1@xZWZQV=?=r4$vqaiTj1^!d8T?dms3jNRp_BVVHy?rKS0%q zrxmS9trUH#RIuX_noPQOaJB{&d{(JZt-%PfWMH4GeEuy~LmfiA5}^Hi3B~tb!RY0` zRt%2?$|wUd_yJb%qc?$rVIVjVgdiseE0D(kkBl^ghY9PLIfN16T!7Cep|@x4O!n#T zzVh$i8l&T9-+p!6|AuwLvN};bv^X;Uqt|!+?VYc+Z%F>~Q~u!}e&y1c@1=kL^7+yI zFF*A2XP!TO`{h3lK5?4I!evMS58)=rG~`~$7a>cKHON`WvykT?zks|3c^jf3VHQ8k zpo(`w(}YimZ%aZfT|%rlbSnp|k`QZm8-cLS39;}c#L6VZmXQ$qiV#~(aY%lghPIbNYOWay3ZO0Q~7&3vpM@lJYGJ^Ve|7YSU% zPhuSYxRmYrl{UZ6;WpUl4SAHp84x_Cb@}@t7KskggTpfnl;s{X)^M&5@^-kSy>yGO;tS%p0-_I+7 eUnYJXsME4d-*tiwjSl`&`%R&@Odk&qoc{w%J9hH` literal 0 HcmV?d00001 diff --git a/42sh/obj/sigttin_handler.o b/42sh/obj/sigttin_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..f6fdc33eed828e97bb186d29b7d1148c991706ef GIT binary patch literal 2552 zcma);&u<$=6vt=QvE#(4<0KS{K$X=tP$X<8A*d0clBi9)kwS&iG_3?>Sg$wsM$WET zZ;}>cRH+EXhf3wgfj^LUi&JXNjI4Oi+WI(HR1-A-5{wl096l>mw>y?CgJGrOr*@ z;j3m7?jLQfrq8K}fa+b7t$ldG%q&ycWlM z+G_r1wtjzr1AfA3&1-L?iXVru-TLJwlaE@nf16i-&0M_GaJ}_rYpF&=D3(A5W$5bUua>okUVz!~ymu^q`%IoUGONXZy@l2Vb%vfe&&XGrsxaGugg? zLwYu#iub@doSiX|tP04H7RAwb;;Y}LFXFV41wJ38bd1F=ee4!kJHMM8oc9Gx1j9SS zSps|Q}qG{Ap_ z3$qs&c4E~!Ne$$o7PBw%5Zq8X=!LNBVc>dY>J*}rr#MUW{9u9_wt3f{0c+lN}RJ^Kh%Mm(n5I4Kc9(KvIip9WL$MtvWQ@j~scFS|U zWgmy=ym`|10r4jAFu^M7Ja$=cV0mSy{y6U&ZM~lnFQUr&iTk%|*;1mePw^CXZ=O}F zRUP43t0?cW^?pmB6C~*KJ@rLAzqld~Sl9QEc!!C1uS=fPSF>!LH$uCkcz<@u3$N9l zxZY#LJ4^bWOHyOUY3C8G7kHsSu!)@u5kidYWdbfW?K``|8RpC;ZN;!(&_aJ5w%{r2zI^(0YWZxY2|UgX#V zTJP;$^x?V5cVVhujzBpFpnM7Wh`I}Y3_R#y??P!eTrZZ61-B!{+pVQja4{F=!}t=UKB&7U)ue`>hidb4rOsWwL^#_QQe z(XTce#p+sfH1}Gm;rMp5?1$M4=guxHyt63depV0c!irza*}fMBezj0{%VFrRiHhZw zs!ou%*);wVvvYGxZ)Mk=pziu!b}B!XAIrXCSK;-Mn;L^4KRJ;ff3*u*VX+R7LV3eq zDOrWdiF$=;Q)2A-%=JRXhxllEBpyp=5-+5O_%Lj%k%!J?ri0y&XAOtMAYDnW+xGWI+NSA!$TFC;Rk5W3uVwXO43#^^rO%Bfc3?_o% zo#8A2J`P`G+zz<5H#Sp~;88#3;%ewM^|Yya0fTZNyUl2ukkesG0RL#7@v9l08R$*k zhAf=uMJNaUMb_4q+GaML&U|9b>{FlB_aVn%Q&4mMcX}Vx9Or<-wF}Gi>jO7d%IVua z%h(`~8~w>cac;acV)OxwjYqKDAvq7*|7_%QxJ58-|FP(KqCoy-@(0O-!&wru--I$b?7G#7fuKvA>{y4FQpbmg!gx66WeV`zVzqM z|MTa~pZ{lO_r~9U{@cQsS+rR~mCJF}a2G_`VAL<}q(6W%84opTIqCt?Z+h)af z`>uW}F>z``_j+%M4&l+Vms=U5*q~e>;gPPV&B^k#Ub2ghN!LeS96ou%8)hEPr^3>q ztPgn|+3S$>@N)T-V{XQaQ*!F)%Pry=laobrmhcv;v^U}CEo>3^|Ox-eO zD7?G&TM?@dih$Hj<8$%ylV_a*H^+BH;B^VSkuBmm@fD0zGv3clc$qEY*{>Gvx!->T z-ftqli(ACQrE?&gN4GFxf0#B&S&sfImll0DCE^9f6&HK#= zywAj>n%M8^ed6naUzmLTZ~#&8yTCWaed<8~{m>!U^Wb`-{Su25*AH#lKdn`N*B1VW z4lUl)s`ItQ#BFV9zNRg`uCCJD>NRaCQ9E1+hc3pTlAi3SHGpYJ) z{eTwME|qV2Gu|1$y*PgBTH-I}`1k&(RTHb#AGC#UqA!0vOjj>DHg;w_I%^h7*}N4U zi1oyJqWe=hycY)sdZ5Jm`(nLMuu?G<&zTjo7`OAUn3j%fW?Jc3ip5WtFgHFump_{} z;{AQ449i+JOJ$5At9Nx3X6ufTm4u{IOGXm8yfqzl8bU}Lw!uo-b0$kMX@}GujBsBt ztn3NyklK-Uxr_ONNBw?O#us9v5xjpfxV1||t-jzP|6%{*fzik_0me9IvM`aCvJ=j( z2cEl#&uiTrxG!T?5tQZ{|a*5kEkVAi75qEI!8ZEu$O97-3RuB#9`c4;{1~?zyn& zuYKG9S~xI!B^7<|{O3G=y@0U=@cZCTz+Zr=hLi%rSOM<@gQ!+yqGZt%0HXYoiBgVZ zLPSX;6Xj8OQDMnMH4-MO51FW70{;K9(1IP(PT*Zf;uH~119`cT&YfgZB`k#lE$TA7 zXzjh=t9J-%ZOuD{Y&aNxTRz_AR?^Lb%#OoTlI{fC&`PuhSX#f)xUZ>PIZfZA`U{J@ z4L9e`$1?6k*zR5j0Qf=@?`TyY<$IMR_b0hB!MkI8A3B4)OUdvjVeU=xfh0dN$afEN zpUp!_?o*!QA&dl+?|1~VGs*W2a@khOasZ(L7ctOM2b_o@_t099Nl1(<$Ao-L$VY^P zaK`D4Ccg(ELj)+O8?sJy`t>@U<$9gzQ#So{rVQKb=1hyZkCu4+oPnZg zIrqEgo^#JlZv6GHciDoG@Ns+bEs#eOMYs$)4*h7_D~GH5dz~>~jD-xF;F)uCO?!#s4aVo=btFu`cok>9&P&30uW<1|H$6eW z$@p@E-8|m&yiLTI?F@JmeZ$2JQozHnN6oa{5X15LcrwgB@XSV|Y8#GOSm(edF`+>T`>3fy42YB;KgRyWJX9<)&Yy!hJhHtu=e z3)1^{2{YLz9-7XD499nt8y@7JcgGe_?-@h!S@jyu*)}@P@rqM2jG6sCzH~|A<)l#u z9-F3c|76WWcy`&CZ=$;10>cQt2R9|&l*B7bJgHKgsO-;K`uDF|aa_dkd9zW^8?ETl z7xKLNCh>7z((DgJGb<; z&bq$#jJ|gAmOipqKXZpt=dX@$jEdCPSKs`h$o-Lotvd@jcVPdL**3{4n@ws}PT176=Sgf8k0vu}B$88CE8^a6f~+d#AY-NzfCr3NQ6kW4D}lZ>Vn&$KJpvkrIn6BFe|hHCKNJ zBecc^SNjPgMJpK8sLB^Cb{Ye}TFSwJ_aL&$KJ5(TMK(<-Bcy$b*^jIhl@U$*95dcQ zc|jRTQ|x<8S6Cg6egvUv>UD_dXBc8aWe_6$)uPTP@)>D!$0Y8<+MmA2DEeV;=LaRYyU9T z#)e!^R7|EnR9+nNDoMouauhm%QHZ~jLl_0`0T$inMyFcUPKkd%f-Q_Thok!dqWVg)H5lX8cY5R4t0l@fDG@!*s9 KRCHe)HvbEMgj4PS literal 0 HcmV?d00001 diff --git a/42sh/obj/token_expand_var.o b/42sh/obj/token_expand_var.o new file mode 100644 index 0000000000000000000000000000000000000000..134684b1015acba04d7b0a0eda100ea9bac9531b GIT binary patch literal 3048 zcma)8U1%It6h1SXne1kh-A$sk)+!5$(SX^FHDau_Cfd|V+G40}t)PsP&2)F`W_H<~ zq-nJpn<@hW3X!c&Ye5S?zA;IaPGP1 z+;hKs?z!jQnTvn@`ENau5+XFwEg1f&F_{bia36b{J1A8ue7w0e;<<-Q*WK?n ziFe6^rJvS_hf60QgYk8U%e4~U#}NsX;nEoSqmIE+m zjxHJ}nO_di^HgJIV8J*!urM{LQ2bSnp=2~050PxZpmCKO&}VBVNHZ%m)Z^j-7uv)uw>X5jLbAD5Pvyh+nvC!hVQpRZR-c)z0J9&4efcK=Uw;M{TXH)9lPO6kM>4H6Jm(y@Qy$-=OS!2180*Q9|nM?uK4GneHPQ~F(T}6y zw^ZF;{{qB%b!&JUlKs>^wT;5>pvV4dzuFcKzmML}tUao>B}o4g-4m>~MBaqZ!rBiI zk@wK(O5{T}q2P@t`whSTSt6B!Je&8??E0s};XR9uK&CvGnz?KW&P5R}RpYPb!>cjh z#Eu|-j}%x!xWRSe<`OX`$HtP0@9c*AoZGvnPDB^K>3J#9IPp;?`PPePwDk8SjB&!= z27dtl415vHSz!!L&Lf*RwbF~z$tKRNH1UzKiO*2N z|6dmBu|wVoysJo-598F3pBv@KZc-)_N}{nodp<uESO_g7Fo2uD69$G97_^(c4-E-Ym+OSlJ$7P3NLg@50i75(2ww-rIs$;fSDf=$l-u}$s@J{tuD4g%5=NFmZ zQh-i%hR&HaMxgp>DzC!Jj*OI@!`y#;ehTkZIbpeY1$VT>DUEpV z$@~^2-X<0wv>)}8?Yn7y<*YmAcsJs`TNf?FhDd-{GuB0@{T|BZ{1hAWQ+TS3cgD+3 zOcWj4%^qTUH|+PUTz#`lXyYC83-C%K2mA&%=J&J2>y&uzGV%QUCbGFkJe@BTNa3AX zCSK*}#7+0xCGob(0-j$c9$q>hvN1nL9txG;-_1e3HDg16bEQMrXT`3%M+$D+ge)B;J6;8<2R?6o4I9I;A>)#e(Z2 zHtzR|#QRQ8ngSl_#4Ymc#Iqy=VnHC2Uk!d8@!Z!1NZJtMDR3=uzvQ|N*9P21-)qhM zYE55GSu@WsSToft*2ya6JS2FN_2O@$UkGdZsz|)d{H&8Z=B?>3Bi78<^Mv(nrBBbM zp8IN$?@?-KXy22m!%o>Nl-yK*x+mR}dN5bS%irDK10&tHF}>j-;gxflqBH4~GnLXo z$3=r2C!G_Sy&h&}#*UN@ll!E8~neH7tI$%9HKg+Iq17@r%@mIW29Rl7glZiM1Vb8Wm;YeSj!G@NbP zKr|G8H1=5RftIZ;Xptdw>Dbkd8?dj=H276ASBYKi!5n<5Iz=eHB^EE76^Y--=L*)pd8x1eF)GJnikSePiB3c z-$qyyqrO$e*rcBxf0I`08H~a(r!XD_ht`=VA*+y@n^uf!`xMy0XYrEO`!OrxZxb>dgw)NYt8wl%P%ZwQVt8qhS27U9H&YWPq=Bzq zOc0O6XF52ru3cjsF9iM+^h~`L`{MY+i+A_B_rCGxk83}j>-r;?dh7VY#l9DkEr&n( z%*cGpHoOo19Lzt8IWP-nV$*BD>%puKYd}A54-i{J7rP~0tS?<`$tp02Ev1V+moB!J zuBq#;S?OX+Bo&lx`JoXv$BesRg?1ZZbK20MYUZ?VB6ABfu~IkxNr2P+ uNMM^8DZ8XxCnW^q&C^oyZAieOs0~Vu>Fc$&utzKW0nR%`Y;Wnp7XJh72BFaa literal 0 HcmV?d00001 diff --git a/42sh/obj/token_init.o b/42sh/obj/token_init.o new file mode 100644 index 0000000000000000000000000000000000000000..4bb6a561ce71ba28430da4b19973b4a1ae6bde44 GIT binary patch literal 2760 zcmb7GO>7%Q6n?YzZrnI=HVIUr6l9U|CmK7nk%$0=nEv2|R6?Z|Xuzw|_c_M2xs$jx$$vZqm$5w=g$h+=f0-10N*M7>c z{%T&vVr%Qaz%{>iq?td@ye=oAyFP9rE@^cdX5e=I`DT9Yv4k|Per-PeRSs7uJvB9b zEWPB`>ZOX89?cAAhST>rWxn@Aqrz z&&mN*o08{K!S-!(igu0ar86$Uv;`h?N%V?4 zQ~i1@Wg54pdPN^6PV1qGeopgl7O~WW$%i<}@qQ6YC6j@ocT+4i(GLaR2V)i=JE(XWZtNxKo33u?_C`E6ng^@>=&g+ z`&^i!b2pe;@o(gV)xbBwkqLK1uq8%1e}8aGh=7S0AVIj2dk%WH4X>O_HoqNt!R%W4 z%t^m<_H#Y^U6sd>OvL*!^A+Z+%rb{8k@nrpOft(#;@UEyKv)SiL%o@hb(l~H<%Q(K zgi0urEHJC6xPrf47CLx`*a>?pQl$fI8-;lhXO5F-n8NJpNL*kqth<*v@i%ZbHp0?V zE@i%=9qJCMNQC30QI1<7{z`RoE3gK$D0xnKvA|!A%_~eKZ*r!H@vR%j*BOUCuF))U5zt{IQ(DPxl5qLh1Bn#N1IHlwE|^-dnuj7iPlwTT`G79YYJ$zVet z1iJCAl6NV2yOJyrjDfcj66dXlJ0YRlqRO|nRVQoC$IqVUE>rOC$QO#N1-p!YwtoQ) C|63^l literal 0 HcmV?d00001 diff --git a/42sh/obj/token_print.o b/42sh/obj/token_print.o new file mode 100644 index 0000000000000000000000000000000000000000..3170b43363af0749981073fcc52306ff930f8bce GIT binary patch literal 3536 zcma)8ZERCj7(VxQx9!@|bsr#zkR~wDz}7N8BnrrIBV|B>$bcBhwQIYrP;QsrTNsQQ z!i-oaMl}BN7l{#n5M!by@!<3EoOic4SuRe`?KFoi%EGeA-54;X8(m}5lx6m^xL>sE5Wa%4x} z(y@KZq+XPcOM!TdW$qM*LpfOVA=mY|X=PJJuQcjn|z&EBVC=JebQMi+Jfw++I7Ffynq`E|L#QUCi zcPws)SQ%dtub9S1>(@EWk?PhrQocFAZZ-or&_#@+U@G{*y?F+7q&&A@!nCmcc z^)d16`1)hm^=ZCUC)H;^7h7kd^VBlkdNH-cS9L zfk~+%zIbLg&S~j6V{ghx==z5C(iLM8FC>i@fX6FJp#EgY6?n-$y(f#?brw|igP?q` zt0mr;#FMIk+EEL-uWd|;Gc!=B;EnJHZjYgt{{CIRIKQ3zDcpL6#J4WwfM29=Zqr)Ov=oo_t zqBsI^WO(Cf;g_M)N}+3X=zF#BbMz9Hb2abf`em*?vT^|OAKd&Dj}SewbSc=$r!ch- zcZ^1dyT&#QcY33R)1NzTuwc8*!DyjtywGvw`Yyr@{TSKt!(htTlONodOy`?g7nz~K z?o2vA*qzSho0=CV29ue1zA4h03e9ga=i8c3nAvzZog7GJ!&YWj($M?yF|b6jiEisteMIfq2(=+mPqL7cpAN_d3gj%%aYcXMbA7CBiv$Bs&bLM*nZ3}SxF`{`Vj|ub%i8-0no>fkQ0+_-NpY^(f!7Vt*y3l2}#t*Eg}n^Nf;FMgsY%DQM!wr+!~QmZH~_2>ZGt5SOi zbCr6u|7&V>EIMfEJJjmeVH0Stou}5YfLm((4!YmR)C*E)cnq-VYP~lH{u51&>Kx(C zLpnoksyfH({Q}ZeYSYv?K~e3#2$_$iYPS0d*in${Ro^i%k5?nMb_0`p9MiYd)_RCF zU0da4B#c8_&0QGnN@{J~g&l(tYiqcRdl|$_FlqI^%Vb_{4JBG)JnS&AYix>}mcpzA_=gY4~=KcBPVq?}f2bSK69DK`vDc(5qgIgD7TJNN0 zjh|cc`bjPP>k0Uu0{srU24dd*NXBf?B2YVM8)zqp=>rqYC0j2Bvr7{bE={~qnt0LE zKp4CVns|HCbWEC919Bm+guC@!%_>U7B62`ZZY?nVY|1P z_z;$Lap0lLw)C-$I3AEuM6!uOse%XFzvF{ynrI`gT18WRr!?&|&7aeP?oO?Gh30dw z*Xkg89kCJO6DPFV6`E_i+xv=EtuAcP0x)_yHP!7J=+qRK?~v-o`GhDq2W;jQW0$Gj z4sYHe^=F;m-C@b+Nj_V0Feb?Tk>rp?EhjmoUr`kSNF_fr1Cz-SdXJ^|$E-fx$XJO~ N*47jD*RKcb{s(|cAQ}Jw literal 0 HcmV?d00001 diff --git a/42sh/obj/toolz.o b/42sh/obj/toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..fc36374683f06f9e3899bab7293224dd0cf974aa GIT binary patch literal 4676 zcmb7IeQX>@6`$F=**kya&d!%wwS^O;F%k7gODaY2wb+WU+FWc>+S)i!vp%oS_Eq-T z*mtq1Vqts^_~JOCK&n=vq7b205Q69*C^aS6DT*y5)F={&O8ns>P<)b+3_9RiLe1~Z z&bs!VL(@@a-@LEiym|9xZk)H?``i0I#<+*!gYHG27x;wG(e6e!h`&v{P--idm5sv# zlToiwex{jcSidt5H!N0Sf&6#IAA7-IL$Pzk<@S^*{cL@JO@X? zF>i_EX;W=0i+H-@UFlvEpi*O+OUeS6r72ib_&YwRtJ{xba z>lwMh?)WY#ynPDqoJ!ipYK!V+Q+z`)%Z+!#h45lJdc}N*^)*IfjX{GkiwZGQj0M?l@)5+09vfDJ9n>Kq)D7=@IuoHN6WbUnGOkFiD zym+74GmPD}9o+Xp$ZyM+ZNgZ<#&cL~cb_vRx^aFJNr~uQFH`6Bf-1me;8ANrd`h$> zKFW){3(M?-M9RC+n_*8-e*&cdsO%m`-`r@u)V-U9cQ|e}vVS!)tD%PJ!gORkn=ULy z^5i-b$=62;!PzQ|e@y`!v+4EAG{|0E!I#a9=QE2uJDxYPk(J!<*4NjK%x^*+Z}!Mm z6a4rTSuurQVPwZ0Xv2!+jhU8$F;ik>!V4@o^$8emmd=D1>^WNVnX5e8n$Il}{!9cu z%*ZZErLh<(&5s*V;swV;-s?%p)biE4z8-y^`SRJw?J$ zaEhvZF>;I6nuVbqE#QN15mZgTSwqq+dDe=On0pI;6o#Q%<78`v!0YWlujir z8uSdu<7O(>Mehu-i4k+OFOiCm;3~vD4G9#$4BR0NB?;>;B6fk z@gV0yd+uvLkYln3H+DgC&tnQ*doJ}O;wp(_-cEd|E!l+eHu?qQ_ehknSLFDm&3^Yu zKi_p_-$*EEye&=N1Dw{U+HS;$%#|V?UGpE6{^W z$>WzlSb&5cDuQH5or>Gl8SY9D`n#9Ak2?FrHAn%p=C~CkfPvRk=Ga zP5FyTu~K{=#fH{JeK$HaS|j0jkPWZ=ttFnZx{2vBD|G%;1IACHQ$9&fxu#16jjEVL zlvE}9f06i9w6K;suAuDHI@or0R6Pv^8&9ogTf6VV z?geG1*0rtO8?a;V+IVVxMRwoES~OM*L(cyb*nuyn9H4XeJfa+u(xOZc3oR@>y8nwOgf=VqdBOZGQ2)x-Mn!3q4E*{fQL0BpNmTe@9@V9_zeD&S zgkIM(f@cJK8?L9xRnsS-dszhZIk7h^?(PwxIpGTnuih&>zZBZpFAJW=Tn%to5mjk% z0Fmqui+y2H5fys7eoSviSbdnaU6fl#_Zh=86iYOQ`N9mW#{BD`IgIS}io|I{F3`&GmK2QJJm4*&oF literal 0 HcmV?d00001 diff --git a/42sh/obj/toolz2.o b/42sh/obj/toolz2.o new file mode 100644 index 0000000000000000000000000000000000000000..f267b6a32870a59f93003b1b59b1c9a3ba481ce3 GIT binary patch literal 3420 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/toolz_termcaps.o b/42sh/obj/toolz_termcaps.o new file mode 100644 index 0000000000000000000000000000000000000000..c5c7fe9b8766888d9d333cd77de9752edc9faa03 GIT binary patch literal 5264 zcmc&%eQZ4;!Z)JkQ)bKiN6 z{SsQH{jn?GckcPPzjMw#_uY5>=Z`-4#3h906nLOlp^r&C{OD+l&_l%Ep$*oVigC8F zcwh?ZKAvY7x#;d3Ga!cXba2blGrTqW0R@6acoa*|JjSRJ`$=v!!-!;anRqhB0z00C zqq9C)ZOt^Pqmo5DebL^0%mAp;7{-QY+MoJr$?AEIOQS_X%h~WCs(`fc5~+x?x8oh9 z5KZ>OF7|5JDrt>Ci~$E$?p^XoZhz+Pp{KZX3>DJrun9g62I)J|`P2v%=Wz zP%$_?`Rm)aZ_~Wunc{`+v*q}q^T7!UtIW@pPxEu-Q1D90&*yA@;9??F7}MZ$V)B=! z&k56Ke}8|#yYv9L63TyJ%5UX(J~&0<&(MyvvB@@@?U&+CIWl@Emr~3N zm%In=gK#z&Z=*|xf|p9=^~3Vc@b69j3>BWk$3^dfg_wx~VEdsOg)s+J^XQr3&WneF z7fbMJmmXe!47Mu%$&(hI3a_w6cn|D>a(1xZgHI|s?H76(M5r)9 zI5+_ewM!4LUv2rp4ua}D7HM!|^1TY5BkoY)3>5CkJ+ylZ=UTeYCi_G_E!ycz1CM-OWHXWG1kRwQXkR>s>rQhnl}hZz zWh%2H5>96W5z)Lk3y|j6uGIFvaPz81vjd_(XT+j8gO1fS-4>Y7#`i``f@H5jxTK?D zIGZc+J5oENMlNOaMq{yfQpA%vLD!)Nv~Jgu$9=~-9%c-En}pFLVAb-Mof(G*AmiULJHWB z0u@Ms3Zxc=B*z)SS}LvUr-Zatn^~2$6)0=}h#8dG2W0m+WA@!3u2o^`FJmmLTra>- zKZUWbxnIY43`6G<_gfgA$I$Vtei6jwcB$17p>MW_pi&=6I^?hmR3n)tbbL>?f}zH3|9tgQ!*R!z;}1Lwc>;YO`uEZ4I0>T@P5_;nT6fS_6(@vR zJ&ZqLUR4<5?aZq+!B_=Ilw&1KYIDW<-`G&T)Ny}Mjq;Xe3Dht{yeGf~rchHZs z{w0&nnr|(;w)ZKa?e=NDI+uGCR+QrX==*P)%im+-3(@ZJeb@1odh72H*=<1o4cl=Z zbK23?^nGaJaXxd}JrBD9w&T3!w0jeFV{FIy&9YmIJ>wAHfu*K>?5W37{R2jZn*Gxx zn)BIAb37SIyV3vq~q_>ssBMbUXwN3WVPNQ9RVryC#7C-H+ z6UH~>J$ZRQrn@?%J|t`On0!FbNmr}955uKUR70^vDSUdX^uY5qIC7Jx|6#JP=B9iY zjy$b^UN2n*sl$sCK5Mr^0-vqYH$+dT{*rWU1wo4XJJ5|%NS+SaI4T!*$c9$Am{-I7 z;Edr8hhvSEmxi}V4N_mU2|4Ec7* zl|wYOu2oj)Uz5`P;8t06N;P;?S{GP_b{Je)y}|)CGznE?fs%1^zl1 zlK%^oz8@5=X*DS6SAgQzg*VJ}KByNCtVToP zdssmK{fHlD8+y-`p7|k5&-QJgtWuIyHlEIxa(%?c3uD&h(2|s{k0eOvbJm?xO#!d& ngSZ3c!gyPgu|zbNN-CZ0{z%i!D +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/19 12:45:06 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:42:34 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +static void ft_v(char *tmp, size_t *pos, char **str) +{ + int i; + int j; + int len; + + i = 0; + j = 0; + len = *pos; + if (!tmp) + return ; + while (tmp[i]) + { + *str = ft_realloc_imput(*str, tmp[i], *pos); + ++(*pos); + ++i; + } + ft_putstr((*str) + *pos - i); + if (ft_nb_last_line(*str, *pos) == ft_size_term() - 1) + { + ft_putchar(' '); + ft_putchar('\b'); + } + *pos = ft_strlen(*str); + ft_move_to_beggin(*str, pos); + *pos = len; + write(1, *str, *pos); +} + +static void ft_x(char **tmp, size_t *pos, char **str) +{ + int i; + + i = ft_strlen(*str) - 1; + if (*tmp) + ft_strdel(tmp); + *tmp = ft_strdup(&(*str)[(*pos)]); + while (i >= 0 && i >= (int)*pos) + { + *str = ft_remove_imput(*str, i); + --i; + } + ft_move_to_beggin(*str, pos); + ft_puttermcaps("cd"); + ft_putstr(*str); + *pos = ft_strlen(*str); +} + +void ft_cxv(int ret, size_t *pos, char **str) +{ + static char *tmp = NULL; + + if (!*str) + return ; + if (ret == TOUCHE_OPT_X) + ft_x(&tmp, pos, str); + else if (ret == TOUCHE_OPT_C) + { + if (tmp) + ft_strdel(&tmp); + tmp = ft_strdup(&(*str)[(*pos)]); + } + else if (ret == TOUCHE_OPT_V) + ft_v(tmp, pos, str); +} diff --git a/42sh/src/line-editing/curs_ask.c b/42sh/src/line-editing/curs_ask.c deleted file mode 100644 index e465b8c7..00000000 --- a/42sh/src/line-editing/curs_ask.c +++ /dev/null @@ -1,57 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* curs_ask.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 17:03:49 by sbenning #+# #+# */ -/* Updated: 2016/12/09 16:47:13 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_curs.h" - -/* - * Read the line number for cursor's coordonate -*/ - -int curs_li_ask(void) -{ - char buff; - int li; - - li = 0; - buff = 0; - while (buff != ';') - { - buff = 0; - if (read(0, &buff, 1) < 0) - return (-1); - if (ft_isdigit(buff)) - li = li * 10 + (buff - '0'); - } - return (li); -} - -/* - * Read the colomn number for cursor's coordonate -*/ - -int curs_co_ask(void) -{ - char buff; - int co; - - co = 0; - buff = 0; - while (buff != 'R') - { - buff = 0; - if (read(0, &buff, 1) < 0) - return (-1); - if (ft_isdigit(buff)) - co = co * 10 + (buff - '0'); - } - return (co); -} diff --git a/42sh/src/line-editing/curs_move.c b/42sh/src/line-editing/curs_move.c deleted file mode 100644 index d96d0ec1..00000000 --- a/42sh/src/line-editing/curs_move.c +++ /dev/null @@ -1,45 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* curs_forward.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 17:21:08 by sbenning #+# #+# */ -/* Updated: 2016/12/09 16:56:41 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_curs.h" - -/* - * Move the cursor forward (right/down) -*/ - -void curs_forward(t_curs *curs, int offset) -{ - int size; - int div; - int mod; - - size = (curs->li * curs->win_co + curs->co) + offset; - div = size / curs->win_co; - mod = size % curs->win_co; - curs_goto(curs, div, mod); -} - -/* - * Move the cursor backward (left/up) -*/ - -void curs_backward(t_curs *curs, int offset) -{ - int size; - int div; - int mod; - - size = (curs->li * curs->win_co + curs->co) - offset; - div = size / curs->win_co; - mod = size % curs->win_co; - curs_goto(curs, div, mod); -} diff --git a/42sh/src/line-editing/curs_setup.c b/42sh/src/line-editing/curs_setup.c deleted file mode 100644 index c9842a54..00000000 --- a/42sh/src/line-editing/curs_setup.c +++ /dev/null @@ -1,82 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* curs_setup.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 16:36:43 by sbenning #+# #+# */ -/* Updated: 2017/01/11 13:55:42 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_curs.h" - -/* - * Set coordonate cursor data - * "\033[6n" ask for terminal to write on standard entry the cursor's coordonate -*/ - -int curs_coo_setup(t_curs *curs) -{ - ft_putstr("\033[6n"); - curs->li = curs_li_ask() - 1; - curs->co = curs_co_ask() - 1; - return ((curs->li < 0 || curs->co < 0 ? -1 : 0)); -} - -/* - * Set windows cursor data -*/ - -void curs_win_setup(t_curs *curs) -{ - struct winsize ws; - - ioctl(0, TIOCGWINSZ, &ws); - curs->win_li = ws.ws_row; - curs->win_co = ws.ws_col; -} - -/* - * Reset saved cursor data -*/ - -void curs_reset(int sig) -{ - t_curs *curs; - - curs = curs_single(NULL, 0); - curs_win_setup(curs); - curs_coo_setup(curs); - return ; - (void)sig; -} - -/* - * Save the cursor reference, init termcap and set cursor data -*/ - -int curs_setup(t_curs *curs) -{ - curs_single(curs, 1); - signal(SIGWINCH, curs_reset); - if (tgetent(NULL, "xterm") != 1) - return (-1); - if (curs_term_setup() < 0) - return (-1); - curs_win_setup(curs); - if (curs_coo_setup(curs) < 0) - return (-1); - return (0); -} - -/* - * Erase cursor data and reset terminal -*/ - -int curs_cleanup(t_curs *curs) -{ - ft_bzero(curs, sizeof(t_curs)); - return (curs_term_cleanup()); -} diff --git a/42sh/src/line-editing/curs_term_setup.c b/42sh/src/line-editing/curs_term_setup.c deleted file mode 100644 index 9a18bc72..00000000 --- a/42sh/src/line-editing/curs_term_setup.c +++ /dev/null @@ -1,62 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* curs_term_setup.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 16:50:26 by sbenning #+# #+# */ -/* Updated: 2017/01/11 13:55:40 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_curs.h" - -/* - * Return a static termios structure reference -*/ - -static struct termios *curs_term(void) -{ - static struct termios term; - - return (&term); -} - -/* - * Save the current termios state and set termios to RAW -*/ - -int curs_term_setup(void) -{ - struct termios *single; - struct termios term; - - single = curs_term(); - if (tcgetattr(0, single) < 0) - return (-1); - term = *single; - term.c_lflag &= ~(ECHO | ICANON | ISIG); - term.c_cc[VTIME] = 0; - term.c_cc[VMIN] = 1; - if (tcsetattr(0, TCSADRAIN, &term) < 0) - return (-1); - return (0); -} - -/* - * Set termios to the saved state -*/ - -int curs_term_cleanup(void) -{ - struct termios *single; - struct termios term; - - single = curs_term(); - term = *single; - term.c_lflag |= ECHO | ICANON | ISIG; - if (tcsetattr(0, TCSADRAIN, single) < 0) - return (-1); - return (0); -} diff --git a/42sh/src/line-editing/curs_write.c b/42sh/src/line-editing/curs_write.c deleted file mode 100644 index efe19c72..00000000 --- a/42sh/src/line-editing/curs_write.c +++ /dev/null @@ -1,63 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* curs_write.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 17:52:20 by sbenning #+# #+# */ -/* Updated: 2016/12/09 17:03:41 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_curs.h" - -/* - * Write some buffer to stdout and recalc coordonate (go to next line and scroll if necessary) -*/ - -void curs_write(t_curs *curs, char *str, size_t len) -{ - int size; - int div; - int mod; - - size = (curs->li * curs->win_co + curs->co) + len; - div = size / curs->win_co; - mod = size % curs->win_co; - write(1, str, len); - curs_goto(curs, div, mod); -} - -/* - * curs_write in video mode -*/ - -void curs_video_write(t_curs *curs, char *str, size_t len) -{ - ft_putstr(tgetstr("so", NULL)); - curs_write(curs, str, len); - ft_putstr(tgetstr("me", NULL)); -} - -/* - * curs_write in video mode without moving the cursor -*/ - -void curs_video_write_static(t_curs *curs, char *str, size_t len) -{ - ft_putstr(tgetstr("so", NULL)); - curs_write(curs, str, len); - ft_putstr(tgetstr("me", NULL)); - curs_backward(curs, len); -} - -/* - * curs_write without moving the cursor -*/ - -void curs_write_static(t_curs *curs, char *str, size_t len) -{ - curs_write(curs, str, len); - curs_backward(curs, len); -} diff --git a/42sh/src/line-editing/ft_readline.c b/42sh/src/line-editing/ft_readline.c deleted file mode 100644 index 90620a39..00000000 --- a/42sh/src/line-editing/ft_readline.c +++ /dev/null @@ -1,106 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_readline.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 18:03:48 by sbenning #+# #+# */ -/* Updated: 2017/01/11 17:35:14 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -static t_input g_input[] = {\ - {RL_NL_CODE, rl_nl_function},\ - {RL_COMP_CODE, rl_comp_function},\ - {RL_INSERT_CODE, rl_insert_function},\ - {RL_CLEAR_CODE, rl_clear_function},\ - {RL_RETARR_CODE, rl_retarr_function},\ - {RL_SUPPR_CODE, rl_suppr_function},\ - {RL_ESC_CODE, rl_esc_function},\ - {RL_QUOTE_CODE, rl_quote_function},\ - {RL_DQUOTE_CODE, rl_dquote_function},\ - {RL_LEFT_CODE, rl_left_function},\ - {RL_SELECT_LEFT_CODE, rl_select_left_function},\ - {RL_RIGHT_CODE, rl_right_function},\ - {RL_SELECT_RIGHT_CODE, rl_select_right_function},\ - {RL_WLEFT_CODE, rl_wleft_function},\ - {RL_SELECT_WLEFT_CODE, rl_select_wleft_function},\ - {RL_WRIGHT_CODE, rl_wright_function},\ - {RL_SELECT_WRIGHT_CODE, rl_select_wright_function},\ - {RL_HOME_CODE, rl_home_function},\ - {RL_SELECT_HOME_CODE, rl_select_home_function},\ - {RL_END_CODE, rl_end_function},\ - {RL_SELECT_END_CODE, rl_select_end_function},\ - {RL_PAGEUP_CODE, rl_pageup_function},\ - {RL_SELECT_PAGEUP_CODE, rl_select_pageup_function},\ - {RL_PAGEDOWN_CODE, rl_pagedown_function},\ - {RL_SELECT_PAGEDOWN_CODE, rl_select_pagedown_function},\ - {RL_COPY_CODE, rl_copy_function},\ - {RL_CUT_CODE, rl_cut_function},\ - {RL_PASTE_CODE, rl_paste_function},\ - {0x0, rl_default_function}\ -}; - -static t_input_function rl_get_function(long int input) -{ - int i; - - i = -1; - while (g_input[++i].code) - { - if (input == g_input[i].code) - break ; - } - return (g_input[i].function); -} - -static long int rl_read(void) -{ - long int input; - - ft_bzero(&input, sizeof(long int)); - if (read(0, &input, sizeof(long int)) < 0) - return (0); - return (input); -} - -static int rl_loop(t_line *line) -{ - long int input; - int ret; - - rl_put_prompt(line); - while (42) - { - input = rl_read(); - if (input == 0) - continue ; - rl_toogle_bitset(line, 0); - if (rl_get_function(input)(line, input) < 0) - return (-1); - if ((ret = rl_finish(line))) - break ; - rl_toogle_bitset(line, 1); - } - return ((ret < 0 ? -1 : 0)); -} - -int ft_readline() -{ - t_line *line; - - line = &data_singleton()->line; - if (rl_setup(line) < 0) - return (-1); - if (rl_loop(line) < 0) - { - rl_teardown(line); - return (-1); - } - if (rl_cleanup(line) < 0) - return (-1); - return (0); -} diff --git a/42sh/src/line-editing/ft_split_whitespaces.c b/42sh/src/line-editing/ft_split_whitespaces.c new file mode 100644 index 00000000..ccca5b34 --- /dev/null +++ b/42sh/src/line-editing/ft_split_whitespaces.c @@ -0,0 +1,79 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_split_whitespaces.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/02 17:52:52 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:42:38 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +static char *ft_strdupi_w(char const *s) +{ + int i; + char *str; + + i = 0; + while (s[i] && s[i] != ' ' && s[i] != '\t') + i++; + str = (char *)malloc(sizeof(char) * (i + 1)); + if (str) + { + str[i--] = '\0'; + while (i >= 0) + { + str[i] = s[i]; + i--; + } + } + return (str); +} + +static int ft_len_words(char const *s) +{ + int i; + int len; + + i = 0; + len = 0; + while (s[i]) + { + if ((i == 0 && s[i] != ' ' && s[i] != '\t') || ((s[i] != ' ' + && s[i] != '\t') && (s[i - 1] == ' ' || s[i - 1] == '\t'))) + len++; + i++; + } + return (len); +} + +char **ft_split_whitespaces(char const *s) +{ + int i; + char **str; + int j; + + str = NULL; + if (!(s)) + return (str); + str = (char **)malloc(sizeof(char *) * (ft_len_words(s) + 1)); + i = 0; + j = 0; + if (!(str)) + return (str); + while (s[i]) + { + if ((i == 0 && s[i] != ' ' && s[i] != '\t') || ((s[i] != ' ' + && s[i] != '\t') && (s[i - 1] == ' ' || s[i - 1] == '\t'))) + { + str[j] = ft_strdupi_w((s + i)); + j++; + } + i++; + } + str[j] = NULL; + return (str); +} diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c new file mode 100644 index 00000000..d1d46075 --- /dev/null +++ b/42sh/src/line-editing/get_touch.c @@ -0,0 +1,92 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_touch.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:42:49 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +static int ft_lecture_3(int ret, char **str, size_t *i) +{ + if (ret == 127 && (*i) > 0) + { + if ((*str)[*i - 1] != '\n') + ft_suppr_1(str, i); + else + ft_suppr_2(str, i); + } + else if (ret == TOUCHE_DELETE && (*str) && (*i) < ft_strlen((*str))) + { + if ((*str)[*i] != '\n') + ft_del_1(str, i); + else + ft_del_2(str, i); + } + else + return (0); + return (1); +} + +static int ft_lecture_2(int ret, char **str, size_t *i) +{ + if (ret == TOUCHE_OPT_LEFT || ret == TOUCHE_OPT_RIGHT) + ft_move_to_word(ret, i, *str); + else if (ret == TOUCHE_OPT_X || ret == TOUCHE_OPT_C + || ret == TOUCHE_OPT_V) + ft_cxv(ret, i, str); + else if (ret == FLECHE_DROITE || ret == FLECHE_GAUCHE) + ft_move_term(ret, i, *str); + else if (ret == TOUCHE_OPT_UP || ret == TOUCHE_OPT_DOWN) + ft_move_to_line(ret, i, *str); + else if (ft_isprint(ret)) + ft_print(str, ret, i); + else + return (0); + return (1); +} + +char *ft_lecture(t_list_history *head) +{ + char *str; + int ret; + size_t i; + + str = NULL; + i = 0; + while (42) + { + ret = 0; + read(0, &ret, sizeof(int)); +// if (ret == TOUCHE_TAB) +// ret = ft_completion(&str, &i); + if (ft_lecture_2(ret, &str, &i)) + continue ; + else if (ret == FLECHE_BAS || ret == FLECHE_HAUT) + { + if (str) + ft_putstr(str + i); + ft_history(&str, ret, &head); + if (str) + i = ft_strlen(str); + else + i = 0; + } + else if (ret == TOUCHE_HOME || ret == TOUCHE_END) + ft_home_end(str, ret, &i); + else if (ft_lecture_3(ret, &str, &i)) + continue ; + else if (ret == 10) + break ; + else if (ft_isascii(ret) == 0) + ft_read_it(ret, &i, &str); + } + if (str) + ft_putstr(str + i); + return (str); +} diff --git a/42sh/src/line-editing/get_touch_toolz.c b/42sh/src/line-editing/get_touch_toolz.c new file mode 100644 index 00000000..8a715fcc --- /dev/null +++ b/42sh/src/line-editing/get_touch_toolz.c @@ -0,0 +1,61 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_touch_toolz.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/19 16:42:54 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:42:45 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +static void ft_history_2(char **str, int ret, t_list_history **head) +{ + if (*str) + { + ft_curse_move(*str); + ft_strdel(str); + } + if (ret == FLECHE_BAS) + { + if ((*head)->next) + (*head) = (*head)->next; + if (!(*head)->str) + *str = NULL; + else + *str = ft_strdup((*head)->str); + if (*str) + ft_putstr(*str); + } +} + +void ft_history(char **str, int ret, t_list_history **head) +{ + if (!*head) + return ; + ft_history_2(str, ret, head); + if (ret == FLECHE_HAUT) + { + if ((*head)->prev) + (*head) = (*head)->prev; + if (!(*head)->str) + *str = NULL; + else + *str = ft_strdup((*head)->str); + if (*str) + ft_putstr(*str); + } +} + +void ft_move_to_word(int ret, size_t *pos, char *str) +{ + if (!str) + return ; + if (ret == TOUCHE_OPT_LEFT) + ft_found_prev_word(str, pos); + else if (ret == TOUCHE_OPT_RIGHT) + ft_found_next_word(str, pos); +} diff --git a/42sh/src/line-editing/get_touch_toolz_2.c b/42sh/src/line-editing/get_touch_toolz_2.c new file mode 100644 index 00000000..778ac3d4 --- /dev/null +++ b/42sh/src/line-editing/get_touch_toolz_2.c @@ -0,0 +1,94 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_touch_toolz_2.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/19 16:43:58 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:42:41 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +int ft_put(int nb) +{ + write(1, &nb, 1); + return (1); +} + +void ft_home_end(char *str, int ret, size_t *pos) +{ + if (ret == TOUCHE_END && str) + { + ft_putstr(str + *pos); + (*pos) = ft_strlen(str); + } + else if (ret == TOUCHE_HOME) + ft_move_to_beggin(str, pos); +} + + +void ft_move_left(size_t pos, char *str) +{ + int i; + int nb; + int prompt_size; + + prompt_size = data_singleton()->line.prompt_size; + i = 1; + nb = ft_nb_last_line(str, pos - 1) + 3; + while (i < nb) + { + ft_puttermcaps("nd"); + ++i; + } + if (!(pos - i) || i == 1) + { + while (--prompt_size + 3) + ft_puttermcaps("nd"); + } +} + +void ft_move_term(int ret, size_t *pos, char *str) +{ + int len; + int str_len; + + len = 0; + str_len = 0; + if (ret == FLECHE_DROITE && str && ft_strlen(str) > *pos + && str[(*pos)] == '\n') + { + ft_puttermcaps("do"); + ++(*pos); + } + else if (ret == FLECHE_GAUCHE && *pos > 0 + && str[(*pos) - 1] == '\n') + { + ft_puttermcaps("up"); + --(*pos); + str_len = ft_nb_line(str, *pos - 1); + len = ft_get_size_prev(str, *pos - 1) - (ft_size_term() * str_len); + if (ft_get_ind_prev(str, *pos - 1) == 0) + len += data_singleton()->line.prompt_size + 2; + while (--len + 1) + ft_puttermcaps("nd"); + } + else if (ret == FLECHE_DROITE && str && ft_strlen(str) > *pos) + { + ft_putchar(str[*pos]); + ++(*pos); + if (ft_nb_last_line(str, *pos) == ft_size_term() - 1) + { + ft_putchar(' '); + ft_putchar('\b'); + } + } + else if (ret == FLECHE_GAUCHE && *pos > 0) + { + ft_puttermcaps("le"); + --(*pos); + } +} diff --git a/42sh/src/line-editing/libftprintf.a b/42sh/src/line-editing/libftprintf.a new file mode 100644 index 0000000000000000000000000000000000000000..430239f15acf8a914387be4b1043d25005e17191 GIT binary patch literal 337424 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 E7gUFMm;e9( literal 0 HcmV?d00001 diff --git a/42sh/src/line-editing/line_return_toolz.c b/42sh/src/line-editing/line_return_toolz.c new file mode 100644 index 00000000..7a2e60ef --- /dev/null +++ b/42sh/src/line-editing/line_return_toolz.c @@ -0,0 +1,143 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* line_return_toolz.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/06 14:32:12 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:42:54 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +static int ft_found_prev_char(char *str, size_t i) +{ + while (i) + { + if (str[i] == '\n') + return (1); + --i; + } + return (0); +} + +void ft_move_dell(char *str, size_t pos) +{ + size_t i; + int count; + + count = 1; + i = 0; + while (str[i + pos + 1]) + { + if (str[i + pos] == '\n') + ++count; + ++i; + } + while (i && str[i + pos + 1] != '\n') + { + ft_puttermcaps("le"); + --i; + } + if (i) + { + while (i && count) + { + if (str[i + pos + 1] == '\n') + { + ft_puttermcaps("up"); + --count; + } + --i; + } + while (pos && str[pos] != '\n') + { + ft_puttermcaps("nd"); + --pos; + } + } +} + +void ft_move_suppr(char *str, size_t pos) +{ + size_t i; + int count; + int prompt_size; + + prompt_size = data_singleton()->line.prompt_size; + count = 0; + i = 0; + while (str[i + pos]) + { + if (str[i + pos] == '\n') + ++count; + ++i; + } + while (i && str[i + pos] != '\n') + { + ft_puttermcaps("le"); + --i; + } + if (i) + { + while (i && count) + { + if (str[i + pos] == '\n') + { + ft_puttermcaps("up"); + --count; + } + --i; + } + if (pos > 2) + pos -= 2; + if (!ft_found_prev_char(str, pos)) + { + while (--prompt_size + 3) + ft_puttermcaps("nd"); + } + while (pos && str[pos] != '\n') + { + ft_puttermcaps("nd"); + --pos; + } + } +} + +void ft_curse_move(char *str) +{ + int i; + int count; + int prompt_size; + + prompt_size = data_singleton()->line.prompt_size; + count = 0; + i = 0; + while (str[i]) + { + if (str[i] == '\n') + { + count += ft_nb_line(str, i - 1); + count++; + } + ++i; + } + while (i && str[i] != '\n') + { + ft_putchar('\b'); + --i; + } + if (count) + { + while (count) + { + ft_puttermcaps("up"); + --count; + } + while (--prompt_size + 2) + ft_puttermcaps("nd"); + } + ft_puttermcaps("cd"); +} diff --git a/42sh/src/line-editing/list_toolz.c b/42sh/src/line-editing/list_toolz.c new file mode 100644 index 00000000..47a389a2 --- /dev/null +++ b/42sh/src/line-editing/list_toolz.c @@ -0,0 +1,58 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* list_toolz.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/17 11:37:47 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:42:57 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +t_list_history *ft_create_history_list(char *str) +{ + t_list_history *list; + + list = (t_list_history *)malloc(sizeof(t_list_history)); + if (!list) + return (NULL); + if (!str) + list->str = NULL; + else + list->str = ft_strdup(str); + list->prev = NULL; + list->next = NULL; + return (list); +} + +void ft_push_back_history(t_list_history **head, t_list_history *new) +{ + if (!*head) + { + *head = new; + (*head)->prev = ft_create_history_list(NULL); + (*head)->prev->next = (*head); + (*head)->next = ft_create_history_list(NULL); + (*head)->next->prev = (*head); + (*head) = (*head)->next; + return ; + } + while ((*head)->next) + (*head) = (*head)->next; + new->prev = (*head)->prev; + (*head)->prev->next = new; + new->next = (*head); + (*head)->prev = new; +} + +void ft_get_head(t_list_history **head) +{ + if (head && *head) + { + while ((*head)->next && (*head)->next->str) + (*head) = (*head)->next; + } +} diff --git a/42sh/src/line-editing/move_to_line.c b/42sh/src/line-editing/move_to_line.c new file mode 100644 index 00000000..ec451eae --- /dev/null +++ b/42sh/src/line-editing/move_to_line.c @@ -0,0 +1,99 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* move_to_line.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/09 13:21:40 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:43:01 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +static void ft_up(size_t *pos, char *str) +{ + int i; + int j; + int len; + int tmp; + int size_window; + + size_window = ft_size_term(); + i = 0; + len = 0; + j = 0; + if (!*pos) + return ; + while (len < size_window && *pos - i) + { + if (i && str[*pos - i] == '\n') + { + ft_puttermcaps("up"); + tmp = ft_nb_last_line(str, *pos - 1 - i) + 3; + if (ft_get_ind_prev(str, *pos - 1 - i)) + tmp -= 2; + while (j < tmp - 1) + { + ft_puttermcaps("nd"); + ++j; + } + if (!ft_get_ind_prev(str, *pos - 1 - i)) + ft_putchar('\b'); + len += ft_size_term() - tmp; + } + else + { + ft_putchar('\b'); + len++; + } + i++; + } + if (!(*pos - i)) + { + (*pos) = 0; + return ; + } + if (j) + { + ft_puttermcaps("nd"); + ++(*pos); + } + *pos -= i; +} + +static void ft_down(size_t *pos, char *str) +{ + int len; + int size_window; + char boolean; + + len = 0; + boolean = 0; + size_window = ft_size_term(); + while (str[*pos] && len < size_window) + { + if (str[*pos] == '\n' && !boolean) + { + len += size_window - ft_nb_last_line(str, *pos - 1) - 2; + boolean = 1; + } + else if (str[*pos] == '\n' && boolean) + return ; + else + ++len; + ft_putchar(str[*pos]); + ++(*pos); + } +} + +void ft_move_to_line(int ret, size_t *pos, char *str) +{ + if (!str) + return ; + if (ret == TOUCHE_OPT_UP) + ft_up(pos, str); + else if (ret == TOUCHE_OPT_DOWN) + ft_down(pos, str); +} diff --git a/42sh/src/line-editing/print_and_del.c b/42sh/src/line-editing/print_and_del.c new file mode 100644 index 00000000..2aea0b92 --- /dev/null +++ b/42sh/src/line-editing/print_and_del.c @@ -0,0 +1,138 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* print_and_del.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/05 16:02:43 by gwojda #+# #+# */ +/* Updated: 2017/01/19 18:08:54 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" +/* +void ft_print(char **str, int ret, size_t *i) +{ + int j; + + j = 0; + *str = ft_realloc_imput(*str, ret, *i); + while (*((*str) + *i + j) && *((*str) + *i + j) != '\n') + { + ft_putchar(*((*str) + *i + j)); + ++j; + } + ft_putnc('\b', j - 1); + ++(*i); +} +*/ +void ft_print(char **str, int ret, size_t *i) +{ + size_t len; + size_t tmp_len; + char boolean; + char boolean2; + + len = 0; + boolean = 0; + boolean2 = 0; + *str = ft_realloc_imput(*str, ret, *i); + tmp_len = ft_strlen(*str); + ft_puttermcaps("cd"); + write(1, *str + *i, 1); + if ((ft_nb_last_line(*str, *i + 1) + + (len % ft_size_term()) == ft_size_term() - 1) && (*str)[*i + 1] == '\n') + { + ft_putchar(' '); + boolean2 = 1; + } + if ((*str)[*i + 1] == '\n' && (*str)[*i + 2] && ft_strlen(*str) > *i + 2) + write(1, *str + *i + 1, ft_strlen(*str + *i + 2)); + else + write(1, *str + *i + 1, ft_strlen(*str + *i + 1)); + ++(*i); + while ((*str)[*i + len] && (*str)[*i + len] != '\n') + ++len; + if ((*i && !(ft_nb_last_line(*str, *i) + + (len % ft_size_term()))) || ft_nb_last_line(*str, *i) + + (len % ft_size_term()) == ft_size_term() - 1) + { + --(tmp_len); + ft_move_to_beggin(*str, &tmp_len); + boolean = 1; + } + else + ft_move_to_beggin(*str, &tmp_len); + if (boolean2) + ft_puttermcaps("up"); + write(1, *str, *i); + if (boolean) + ft_putstr(" \b"); +} + +void ft_suppr_1(char **str, size_t *i) +{ + int j; + + j = 0; + write(1, "\b", 1); + while (*((*str) + *i + j) && *((*str) + *i + j) != '\n') + { + ft_putchar(*((*str) + *i + j)); + ++j; + } + --(*i); + write(1, " ", 1); + if (ft_nb_last_line(*str, *i) + j == ft_size_term() - 2) + { + ft_puttermcaps("nd"); + ft_putnc('\b', j); + } + else + ft_putnc('\b', j + 1); + *str = ft_remove_imput((*str), (*i)); +} + +void ft_suppr_2(char **str, size_t *i) +{ + int j; + + j = 0; + ft_puttermcaps("up"); + ft_move_left(*i - 1, *str); + ft_puttermcaps("cd"); + ft_putstr(*str + *i); + ft_move_suppr(*str, *i); + --(*i); + *str = ft_remove_imput((*str), (*i)); +} + +void ft_del_1(char **str, size_t *i) +{ + int j; + + j = 0; + while (*((*str) + *i + j + 1) && *((*str) + *i + j + 1) != '\n') + { + ft_putchar(*((*str) + *i + j + 1)); + ++j; + } + write(1, " ", 1); + if (ft_nb_last_line(*str, *i) + j == ft_size_term() - 2) + ft_putnc('\b', j); + else + ft_putnc('\b', j + 1); + (*str) = ft_remove_imput((*str), (*i)); +} + +void ft_del_2(char **str, size_t *i) +{ + int j; + + j = 1; + ft_puttermcaps("cd"); + ft_putstr(*str + *i + 1); + ft_move_dell(*str, *i); + *str = ft_remove_imput((*str), (*i)); +} diff --git a/42sh/src/line-editing/prompt.c b/42sh/src/line-editing/prompt.c new file mode 100644 index 00000000..f72dbc7a --- /dev/null +++ b/42sh/src/line-editing/prompt.c @@ -0,0 +1,63 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* prompt.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/13 13:51:33 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:48:32 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +/* ft_printf de la lib bug avec unicode */ + +static void ft_get_date(void) +{ + time_t t; + struct tm tm; + + t = time(NULL); + tm = *localtime(&t); + ft_putstr("\033[22;32m"); + printf("%.2d:%.2d:%.2d ", tm.tm_hour, tm.tm_min, tm.tm_sec); + fflush(NULL); + if (tm.tm_hour >= 8 && tm.tm_hour < 20) + printf("\033[22;33m%C ", L'☀'); + else + printf("\033[22;33m%C ", L'★'); + fflush(NULL); +} + +static int ft_currend_dir(void) +{ + int i; + int j; + char **env; + + i = 0; + env = data_singleton()->env; + while (ft_strncmp(env[i], "PWD=", 4)) + ++i; + j = ft_strlen(env[i]); + while (j && env[i][j] != '/') + --j; + ft_putstr(env[i] + j + 1); + return (ft_strlen(env[i] + j + 1)); +} + +void ft_prompt(void) +{ + int ret; + + ft_get_date(); + ft_putstr("\033[22;36m"); + ret = ft_currend_dir(); + ft_putstr("\033[22;33m"); + printf(" %C", L'›'); + fflush(NULL); + ft_putstr("\033[22;37m"); + data_singleton()->line.prompt_size = ret + 12; +} diff --git a/42sh/src/line-editing/quotes_gest.c b/42sh/src/line-editing/quotes_gest.c new file mode 100644 index 00000000..f5ca96e9 --- /dev/null +++ b/42sh/src/line-editing/quotes_gest.c @@ -0,0 +1,83 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* quotes_gest.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/05 12:20:19 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:43:10 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +int ft_check_quotes_num(char *s) +{ + int i; + char simp; + char doub; + + i = 0; + simp = 0; + doub = 0; + while (s[i]) + { + if (s[i] == '\'') + { + simp = 1; + ++i; + while (s[i] && s[i] != '\'') + ++i; + if (s[i] == '\'') + simp = 0; + } + else if (s[i] == '"') + { + doub = 1; + ++i; + while (s[i] && s[i] != '"') + ++i; + if (s[i] == '"') + doub = 0; + } + if (s[i]) + ++i; + } + if (doub) + return (2); + else if (simp) + return (1); + return (0); +} + +void ft_check_quotes(char **s, t_list_history *head) +{ + int ret; + char *tmp; + char *tmp2; + int prompt_size_mem; + + if (!*s) + return ; + while ((ret = (ft_check_quotes_num(*s)))) + { + if (ret == 1) + ft_putstr("squote> "); + else if (ret == 2) + ft_putstr("dquote> "); + tmp = *s; + *s = ft_strjoin(*s, "\n"); + ft_strdel(&tmp); + tmp = *s; + prompt_size_mem = data_singleton()->line.prompt_size; + tmp2 = ft_lecture(head); + data_singleton()->line.prompt_size = prompt_size_mem; + ft_putchar('\n'); + if (!tmp2) + continue ; + *s = ft_strjoin(tmp, tmp2); + ft_strdel(&tmp); + ft_strdel(&tmp2); + } +} diff --git a/42sh/src/line-editing/reader.c b/42sh/src/line-editing/reader.c new file mode 100644 index 00000000..48bc68e7 --- /dev/null +++ b/42sh/src/line-editing/reader.c @@ -0,0 +1,61 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* reader.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/19 16:52:57 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:43:13 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +static void ft_read_it_2(int input, char t[5]) +{ + t[3] = (input / ft_pow(256, 3)) ? (input / ft_pow(256, 3)) : '\0'; + if (t[3]) + input = input % ft_pow(256, 3); + t[2] = (input / ft_pow(256, 2)) ? (input / ft_pow(256, 2)) : '\0'; + if (t[2]) + input = input % ft_pow(256, 2); + t[1] = (input / ft_pow(256, 1)) ? (input / ft_pow(256, 1)) : '\0'; + if (t[1]) + input = input % ft_pow(256, 1); + t[0] = (input / ft_pow(256, 0)) ? (input / ft_pow(256, 0)) : '\0'; + if (t[0]) + input = input % ft_pow(256, 0); + t[4] = '\0'; +} + +void ft_read_it(int input, size_t *pos, char **str) +{ + int i; + int j; + char t[5]; + + j = 0; + i = 0; + if (input == TOUCHE_DELETE || input < 0 || input == 892427035 || input == 126 || + input == 993090331 || input == 925981467 || input == 21298 || + input == 892427035 || input == 8270395 || input == 942758683 || + input == 993090331 || input == 18489 || input == 17977) + + return ; + ft_read_it_2(input, t); + while (i < 4 && t[i] == '\0') + ++i; + while (i < 4) + { + if (t[i]) + { + *str = ft_realloc_imput(*str, t[i], *pos); + ++(*pos); + ++j; + } + ++i; + } + ft_putstr((*str) + (*pos) - j); + ft_putnc('\b', ft_strlen((*str)) - ((*pos))); +} diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c new file mode 100644 index 00000000..40c33543 --- /dev/null +++ b/42sh/src/line-editing/readline.c @@ -0,0 +1,63 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* readline.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:43:16 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_init_line(void) +{ + data_singleton()->line.input = NULL; + data_singleton()->line.prompt_size = 0; +} + +struct termios *ft_save_stats_term(void) +{ + static struct termios *term_save = NULL; + + if (!term_save) + { + term_save = (struct termios *)malloc(sizeof(struct termios)); + tcgetattr(0, term_save); + } + return (term_save); +} + +struct termios *ft_stats_term_termcaps(void) +{ + static struct termios *term = NULL; + + if (!term) + { + term = (struct termios *)malloc(sizeof(struct termios)); + tcgetattr(0, term); + (*term).c_lflag &= ~(ECHO | ICANON | ISIG); + (*term).c_cc[VMIN] = 1; + (*term).c_cc[VTIME] = 0; + } + return (term); +} + +int ft_readline(void) +{ + static t_list_history *head = NULL; + + ft_prompt(); + if (tcsetattr(0, TCSADRAIN, ft_stats_term_termcaps()) == -1) + return (-1); + data_singleton()->line.input = ft_lecture(head); + ft_putstr("\n"); + ft_check_quotes(&data_singleton()->line.input, head); + if (data_singleton()->line.input) + ft_push_back_history(&head, ft_create_history_list(data_singleton()->line.input)); + if (tcsetattr(0, TCSADRAIN, ft_save_stats_term()) == -1) + return (-1); + return (0); +} diff --git a/42sh/src/line-editing/rl_bitset.c b/42sh/src/line-editing/rl_bitset.c deleted file mode 100644 index 60190f51..00000000 --- a/42sh/src/line-editing/rl_bitset.c +++ /dev/null @@ -1,71 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_bitset.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/12 10:31:34 by sbenning #+# #+# */ -/* Updated: 2016/12/12 13:26:06 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -static void rl_toogle_esc(t_line *line, int set) -{ - static int esc; - - if (!set) - esc = RL_IS(line->bitset, RL_ESC); - else if (set && esc) - { - RL_UNSET(line->bitset, RL_ESC); - esc = 0; - } -} - -static void rl_toogle_select(t_line *line, int set) -{ - static int select; - - if (!set) - select = RL_IS(line->bitset, RL_SELECT); - else if (set &&\ - ((select && RL_NOT(line->bitset, RL_SELECT)) ||\ - (!select && RL_IS(line->bitset, RL_SELECT)))) - rl_reset_display(line); -} - -void rl_toogle_bitset(t_line *line, int set) -{ - rl_toogle_esc(line, set); - rl_toogle_select(line, set); -} - -int rl_finish(t_line *line) -{ - int finish; - int stack; - - stack = RL_IS(line->bitset, RL_STACK); - finish = RL_IS(line->bitset, RL_FINISH); - if (!stack && !finish) - return (0); - rl_end_function(line, 0); - write(1, "\n", 1); - if (stack) - { - RL_UNSET(line->bitset, RL_STACK); - if (rl_stack_line(line) < 0) - return (-1); - } - if (finish) - return (1); - if (curs_coo_setup(&line->curs) < 0) - return (-1); - rl_set_prompt(line); - rl_put_prompt(line); - return (0); -} - diff --git a/42sh/src/line-editing/rl_clipboard_function.c b/42sh/src/line-editing/rl_clipboard_function.c deleted file mode 100644 index 5b884d97..00000000 --- a/42sh/src/line-editing/rl_clipboard_function.c +++ /dev/null @@ -1,62 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_clipboard_function.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/12 12:32:11 by sbenning #+# #+# */ -/* Updated: 2016/12/12 12:34:12 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_copy_function(t_line *line, long int input) -{ - if (line->clipboard) - ft_memdel((void **)&line->clipboard); - if (rl_clipboard_new(line) < 0) - return (-1); - return (0); - (void)input; -} - -int rl_cut_function(t_line *line, long int input) -{ - if (line->clipboard) - ft_memdel((void **)&line->clipboard); - if (rl_clipboard_new_cut(line) < 0) - return (-1); - rl_reset_display_post(line); - return (0); - (void)input; -} - -int rl_paste_function(t_line *line, long int input) -{ - int len; - - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - if (!line->clipboard) - return (0); - len = ft_strlen(line->clipboard); - if (!len) - return (0); - if (RL_IS(line->bitset, RL_INSERT)) - { - if (input_move(line, line->clipboard, len) < 0) - return (-1); - } - else - { - if (input_maj(line, line->clipboard, len) < 0) - return (-1); - } - rl_reset_display_post(line); - curs_forward(&line->curs, len); - line->pos += len; - return (0); - (void)input; -} diff --git a/42sh/src/line-editing/rl_clipboard_utility.c b/42sh/src/line-editing/rl_clipboard_utility.c deleted file mode 100644 index 86b1987e..00000000 --- a/42sh/src/line-editing/rl_clipboard_utility.c +++ /dev/null @@ -1,95 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_clipboard.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/09 14:04:33 by sbenning #+# #+# */ -/* Updated: 2016/12/09 15:57:47 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_clipboard_new_selected(t_line *line) -{ - int start; - int size; - - RL_UNSET(line->bitset, RL_SELECT); - start = (line->select > line->pos) ? line->pos : line->select; - size = (line->select > line->pos ? line->select - line->pos : line->pos - line->select); - if ((line->clipboard = ft_strsub(line->input, start, (size_t)size)) == NULL) - return (-1); - return (0); -} - -int rl_clipboard_new_selected_cut(t_line *line) -{ - int start; - int size; - - RL_UNSET(line->bitset, RL_SELECT); - start = (line->select > line->pos) ? line->pos : line->select; - size = (line->select > line->pos ? line->select - line->pos : line->pos - line->select); - if ((line->clipboard = ft_strsub(line->input, start, (size_t)size)) == NULL) - return (-1); - if (line->pos != start) - { - curs_backward(&line->curs, line->pos - start); - line->pos = line->pos - (line->pos - start); - } - input_remove(line, -size); - return (0); -} - -int rl_clipboard_new(t_line *line) -{ - int start; - int real_pos; - int size; - - if (RL_IS(line->bitset, RL_SELECT)) - return (rl_clipboard_new_selected(line)); - size = line->curs.win_co; - RL_UNSET(line->bitset, RL_SELECT); - real_pos = line->pos + ft_strlen(line->prompt); - start = (real_pos / line->curs.win_co) * line->curs.win_co; - if (start) - start -= ft_strlen(line->prompt); - else - size -= ft_strlen(line->prompt); - if ((line->clipboard = ft_strsub(line->input, start, size)) == NULL) - return (-1); - return (0); -} - -int rl_clipboard_new_cut(t_line *line) -{ - int start; - int real_pos; - int size; - - if (RL_IS(line->bitset, RL_SELECT)) - return (rl_clipboard_new_selected_cut(line)); - size = line->curs.win_co; - RL_UNSET(line->bitset, RL_SELECT); - real_pos = line->pos + ft_strlen(line->prompt); - start = (real_pos / line->curs.win_co) * line->curs.win_co; - if (start) - start -= ft_strlen(line->prompt); - else - size -= ft_strlen(line->prompt); - if ((line->clipboard = ft_strsub(line->input, start, size)) == NULL) - return (-1); - if (line->pos != start) - { - curs_backward(&line->curs, line->pos - start); - line->pos = line->pos - (line->pos - start); - } - if (size > line->used - start) - size = line->used - start; - input_remove(line, -size); - return (0); -} diff --git a/42sh/src/line-editing/rl_comp_function.c b/42sh/src/line-editing/rl_comp_function.c deleted file mode 100644 index dd1d9729..00000000 --- a/42sh/src/line-editing/rl_comp_function.c +++ /dev/null @@ -1,41 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_comp_function.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/12 10:49:03 by sbenning #+# #+# */ -/* Updated: 2017/01/10 11:51:19 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -static int ft_autocomp(t_data *data) -{ - return (0); - int li; - int co; - - li = data->line.curs.li; - co = data->line.curs.co; - ft_putstr("\nTeeeeeeest"); - data->line.input = ft_strjoin(data->line.input, " JOIN "); - curs_goto(&data->line.curs, li, co + 6); - return (0); -} - -int rl_comp_function(t_line *line, long int input) -{ - t_data *data; - - data = data_singleton(); - if (ft_autocomp(data) < 0) - return (-1); - line->size = ft_strlen(line->input); - line->used = line->size; - curs_reset(0); - return (0); - (void)input; -} diff --git a/42sh/src/line-editing/rl_default_function.c b/42sh/src/line-editing/rl_default_function.c deleted file mode 100644 index 5c953981..00000000 --- a/42sh/src/line-editing/rl_default_function.c +++ /dev/null @@ -1,38 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_default_function.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 18:30:38 by sbenning #+# #+# */ -/* Updated: 2016/12/12 11:50:26 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_default_function(t_line *line, long int input) -{ - if (!ft_isprint(input)) - return (0); - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - if (RL_IS(line->bitset, RL_INSERT)) - { - if (input_move(line, (char *)&input, sizeof(char)) < 0) - return (-1); - } - else - { - if (input_maj(line, (char *)&input, sizeof(char)) < 0) - return (-1); - } - rl_reset_display_post(line); - curs_forward(&line->curs, sizeof(char)); - line->pos += 1; -/* curs_write(&line->curs, (char *)&input, sizeof(char)); - line->pos += 1; - rl_reset_display_post(line); -*/ return (0); -} diff --git a/42sh/src/line-editing/rl_display.c b/42sh/src/line-editing/rl_display.c deleted file mode 100644 index 26f787f5..00000000 --- a/42sh/src/line-editing/rl_display.c +++ /dev/null @@ -1,61 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_display.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 18:38:39 by sbenning #+# #+# */ -/* Updated: 2016/12/10 11:52:18 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -void rl_reset_display_post(t_line *line) -{ - size_t len; - - len = ft_strlen(line->input + line->pos); - curs_clear_post(&line->curs); - if (len == 0) - return ; - if (RL_NOT(line->bitset, RL_SELECT) || (RL_IS(line->bitset, RL_SELECT) && line->select < line->pos)) - { - curs_write_static(&line->curs, line->input + line->pos, len); - return; - } - if (line->select == line->used) - { - curs_video_write_static(&line->curs, line->input + line->pos, len); - return ; - } - curs_video_write(&line->curs, line->input + line->pos, line->select - line->pos); - curs_write(&line->curs, line->input + line->select, line->used - line->select); - curs_backward(&line->curs, line->used - line->pos); -} - -void rl_reset_display_ante(t_line *line) -{ - if (!line->pos) - return ; - curs_backward(&line->curs, line->pos); - if (RL_NOT(line->bitset, RL_SELECT) || (RL_IS(line->bitset, RL_SELECT) && line->select > line->pos)) - { - curs_write(&line->curs, line->input, line->pos); - return ; - } - if (line->select == 0) - { - curs_video_write(&line->curs, line->input, line->pos); - return ; - } - curs_write(&line->curs, line->input, line->select); - curs_video_write(&line->curs, line->input + line->select, line->pos - line->select); -} - -void rl_reset_display(t_line *line) -{ - rl_reset_display_ante(line); - rl_reset_display_post(line); -} diff --git a/42sh/src/line-editing/rl_dynamic_buffer.c b/42sh/src/line-editing/rl_dynamic_buffer.c deleted file mode 100644 index d6f1a673..00000000 --- a/42sh/src/line-editing/rl_dynamic_buffer.c +++ /dev/null @@ -1,99 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* input_buffer.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 18:42:31 by sbenning #+# #+# */ -/* Updated: 2016/12/12 10:28:59 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - - -int input_extend(t_line *line, int size) -{ - char *tmp; - - size = (RL_OFFSET > size ? RL_OFFSET : size) + line->size; - if ((tmp = ft_strnew(size)) == NULL) - return (-1); - if (line->input) - { - ft_memcpy(tmp, line->input, line->size); - free(line->input); - } - line->input = tmp; - line->size = size; - return (0); -} - -int rl_dynamic_buffer_extend(t_line *line, int size) -{ - return (input_extend(line, size)); -} - -int input_maj(t_line *line, char *str, int size) -{ - if (line->used + size >= line->size) - { - if (rl_dynamic_buffer_extend(line, size) < 0) - return (-1); - } - ft_memcpy(line->input + line->pos, str, size); - if (line->pos + size > line->used) - line->used = line->pos + size; - return (0); -} - -int input_move(t_line *line, char *str, int size) -{ - char *dup; - - if (line->used + size >= line->size) - { - if (rl_dynamic_buffer_extend(line, size) < 0) - return (-1); - } - if ((dup = ft_strdup(line->input + line->pos)) == NULL) - return (-1); - ft_memcpy(line->input + line->pos, str, size); - ft_memcpy(line->input + line->pos + size, dup, ft_strlen(dup)); - free(dup); - line->used += size; - return (0); -} - -void input_remove(t_line *line, int size) -{ - char *start; - - if (size < 0) - { - start = line->input + line->pos; - size *= -1; - } - else - start = (line->input + line->pos) - size; - ft_strcpy(start, start + size); - line->used -= size; - ft_bzero(line->input + line->used, line->size - line->used); -} - - -int rl_dynamic_buffer_replace(t_line *line, char *str, int size) -{ - return (input_maj(line, str, size)); -} - -int rl_dynamic_buffer_insert(t_line *line, char *str, int size) -{ - return (input_move(line, str, size)); -} - -void rl_dynamic_buffer_remove(t_line *line, int size) -{ - input_remove(line, size); -} diff --git a/42sh/src/line-editing/rl_long_move_function.c b/42sh/src/line-editing/rl_long_move_function.c deleted file mode 100644 index 5769b90e..00000000 --- a/42sh/src/line-editing/rl_long_move_function.c +++ /dev/null @@ -1,65 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_long_move_function.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/12 12:55:48 by sbenning #+# #+# */ -/* Updated: 2016/12/12 12:57:16 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_home_function(t_line *line, long int input) -{ - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - if (!line->pos) - return (0); - curs_backward(&line->curs, line->pos); - line->pos = 0; - return (0); - (void)input; -} - -int rl_end_function(t_line *line, long int input) -{ - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - if (line->pos == line->used) - return (0); - curs_forward(&line->curs, line->used - line->pos); - line->pos = line->used; - return (0); - (void)input; -} - -int rl_select_home_function(t_line *line, long int input) -{ - int ret; - - if (!line->pos) - return (0); - if (RL_NOT(line->bitset, RL_SELECT)) - line->select = line->pos; - ret = rl_home_function(line, input); - RL_SET(line->bitset, RL_SELECT); - rl_reset_display_post(line); - return (ret); -} - -int rl_select_end_function(t_line *line, long int input) -{ - int ret; - - if (line->pos == line->used) - return (0); - if (RL_NOT(line->bitset, RL_SELECT)) - line->select = line->pos; - ret = rl_end_function(line, input); - RL_SET(line->bitset, RL_SELECT); - rl_reset_display_ante(line); - return (ret); -} diff --git a/42sh/src/line-editing/rl_merge_line.c b/42sh/src/line-editing/rl_merge_line.c deleted file mode 100644 index ed0b0ea3..00000000 --- a/42sh/src/line-editing/rl_merge_line.c +++ /dev/null @@ -1,40 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_merge_line.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/09 01:25:03 by sbenning #+# #+# */ -/* Updated: 2016/12/12 11:34:02 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_merge_line(t_line *line) -{ - t_list *next; - char *chunk; - size_t size; - - while (line->stack) - { - next = line->stack->next; - chunk = (char *)line->stack->content; - size = line->stack->content_size - 1; - if (input_maj(line, chunk, size) < 0) - return (-1); - line->pos += size; - /* if (next) - { - if (input_maj(line, "\n", 1) < 0) - return (-1); - line->pos += 1; - } - */ free(chunk); - free(line->stack); - line->stack = next; - } - return (0); -} diff --git a/42sh/src/line-editing/rl_page_move_function.c b/42sh/src/line-editing/rl_page_move_function.c deleted file mode 100644 index efd20d87..00000000 --- a/42sh/src/line-editing/rl_page_move_function.c +++ /dev/null @@ -1,72 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_page_function.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/12 12:39:57 by sbenning #+# #+# */ -/* Updated: 2016/12/12 12:42:37 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_pagedown_function(t_line *line, long int input) -{ - int len; - - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - if (line->pos == line->used) - return (0); - len = line->used - line->pos; - len = (line->curs.win_co > len ? len : line->curs.win_co); - curs_forward(&line->curs, len); - line->pos += len; - return (0); - (void)input; -} - -int rl_pageup_function(t_line *line, long int input) -{ - int len; - - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - if (!line->pos) - return (0); - len = (line->curs.win_co > line->pos ? line->pos : line->curs.win_co); - curs_backward(&line->curs, len); - line->pos -= len; - return (0); - (void)input; -} - -int rl_select_pagedown_function(t_line *line, long int input) -{ - int ret; - - if (line->pos == line->used) - return (0); - if (RL_NOT(line->bitset, RL_SELECT)) - line->select = line->pos; - ret = rl_pagedown_function(line, input); - RL_SET(line->bitset, RL_SELECT); - rl_reset_display_ante(line); - return (ret); -} - -int rl_select_pageup_function(t_line *line, long int input) -{ - int ret; - - if (!line->pos) - return (0); - if (RL_NOT(line->bitset, RL_SELECT)) - line->select = line->pos; - ret = rl_pageup_function(line, input); - RL_SET(line->bitset, RL_SELECT); - rl_reset_display_post(line); - return (ret); -} diff --git a/42sh/src/line-editing/rl_prompt.c b/42sh/src/line-editing/rl_prompt.c deleted file mode 100644 index 3dc9e4f0..00000000 --- a/42sh/src/line-editing/rl_prompt.c +++ /dev/null @@ -1,31 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_prompt.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/09 01:45:09 by sbenning #+# #+# */ -/* Updated: 2017/01/10 16:41:28 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" -#include "job_control.h" - -void rl_set_prompt(t_line *line) -{ - if (RL_IS(line->bitset, RL_ESC)) - line->prompt = RL_PROMPT_ESC; - else if (RL_IS(line->bitset, RL_QUOTE)) - line->prompt = RL_PROMPT_QUOTE; - else if (RL_IS(line->bitset, RL_DQUOTE)) - line->prompt = RL_PROMPT_DQUOTE; - else - line->prompt = RL_PROMPT_DEFAULT; -} - -void rl_put_prompt(t_line *line) -{ - curs_write(&line->curs, line->prompt, ft_strlen(line->prompt)); -} diff --git a/42sh/src/line-editing/rl_quoting_function.c b/42sh/src/line-editing/rl_quoting_function.c deleted file mode 100644 index 57ce891e..00000000 --- a/42sh/src/line-editing/rl_quoting_function.c +++ /dev/null @@ -1,44 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_quoting_function.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/12 12:35:25 by sbenning #+# #+# */ -/* Updated: 2016/12/12 12:36:41 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_esc_function(t_line *line, long int input) -{ - if (RL_NOT(line->bitset, RL_ESC)) - RL_SET(line->bitset, RL_ESC); - return (rl_default_function(line, input)); -} - -int rl_quote_function(t_line *line, long int input) -{ - if (RL_NOT(line->bitset, RL_ESC)) - { - if (RL_IS(line->bitset, RL_QUOTE)) - RL_UNSET(line->bitset, RL_QUOTE); - else - RL_SET(line->bitset, RL_QUOTE); - } - return (rl_default_function(line, input)); -} - -int rl_dquote_function(t_line *line, long int input) -{ - if (RL_NOT(line->bitset, RL_ESC)) - { - if (RL_IS(line->bitset, RL_DQUOTE)) - RL_UNSET(line->bitset, RL_DQUOTE); - else - RL_SET(line->bitset, RL_DQUOTE); - } - return (rl_default_function(line, input)); -} diff --git a/42sh/src/line-editing/rl_remove_function.c b/42sh/src/line-editing/rl_remove_function.c deleted file mode 100644 index feeab949..00000000 --- a/42sh/src/line-editing/rl_remove_function.c +++ /dev/null @@ -1,39 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_remove_function.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/12 12:45:08 by sbenning #+# #+# */ -/* Updated: 2016/12/12 12:46:39 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_retarr_function(t_line *line, long int input) -{ - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - if (!line->pos) - return (0); - input_remove(line, 1); - curs_backward(&line->curs, 1); - line->pos -= 1; - rl_reset_display_post(line); - return (0); - (void)input; -} - -int rl_suppr_function(t_line *line, long int input) -{ - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - if (line->pos == line->used) - return (0); - input_remove(line, -1); - rl_reset_display_post(line); - return (0); - (void)input; -} diff --git a/42sh/src/line-editing/rl_setup.c b/42sh/src/line-editing/rl_setup.c deleted file mode 100644 index 3e68d63a..00000000 --- a/42sh/src/line-editing/rl_setup.c +++ /dev/null @@ -1,46 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_setup.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 18:07:47 by sbenning #+# #+# */ -/* Updated: 2017/01/11 17:35:12 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_setup(t_line *line) -{ - if (SHELL_HAS_JOBC(data_singleton()->opts)) - do_job_notification(); - data_singleton()->opts &= ~SHELL_MODE_MASK; - data_singleton()->opts |= SHELL_MODE_INPUT; - ft_bzero(line, sizeof(t_line)); - if (curs_setup(&line->curs) < 0) - return (-1); - RL_SET(line->bitset, RL_INSERT); - rl_set_prompt(line); - return (0); -} - -int rl_cleanup(t_line *line) -{ - data_singleton()->opts &= ~SHELL_MODE_MASK; - data_singleton()->opts |= SHELL_MODE_EXEC; - if (curs_cleanup(&line->curs) < 0) - return (-1); - if (rl_merge_line(line) < 0) - return (-1); - return (0); -} - -void rl_teardown(t_line *line) -{ - rl_cleanup(line); - if (line->input) - ft_memdel((void **)&line->input); - line->pos = 0; -} diff --git a/42sh/src/line-editing/rl_short_move_function.c b/42sh/src/line-editing/rl_short_move_function.c deleted file mode 100644 index 8399cf19..00000000 --- a/42sh/src/line-editing/rl_short_move_function.c +++ /dev/null @@ -1,65 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_move_function.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/12 12:53:18 by sbenning #+# #+# */ -/* Updated: 2016/12/12 12:54:52 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_left_function(t_line *line, long int input) -{ - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - if (!line->pos) - return (0); - curs_backward(&line->curs, 1); - line->pos -= 1; - return (0); - (void)input; -} - -int rl_right_function(t_line *line, long int input) -{ - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - if (line->pos == line->used) - return (0); - curs_forward(&line->curs, 1); - line->pos += 1; - return (0); - (void)input; -} - -int rl_select_left_function(t_line *line, long int input) -{ - int ret; - - if (!line->pos) - return (0); - if (RL_NOT(line->bitset, RL_SELECT)) - line->select = line->pos; - ret = rl_left_function(line, input); - RL_SET(line->bitset, RL_SELECT); - rl_reset_display_post(line); - return (ret); -} - -int rl_select_right_function(t_line *line, long int input) -{ - int ret; - - if (line->pos == line->used) - return (0); - if (!RL_IS(line->bitset, RL_SELECT)) - line->select = line->pos; - ret = rl_right_function(line, input); - RL_SET(line->bitset, RL_SELECT); - rl_reset_display_ante(line); - return (ret); -} diff --git a/42sh/src/line-editing/rl_stack_line.c b/42sh/src/line-editing/rl_stack_line.c deleted file mode 100644 index 3e1a538b..00000000 --- a/42sh/src/line-editing/rl_stack_line.c +++ /dev/null @@ -1,34 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_stack_line.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/09 01:06:54 by sbenning #+# #+# */ -/* Updated: 2017/01/10 13:07:37 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_stack_line(t_line *line) -{ - t_list *elem; - - elem = ft_lstnew(line->input, line->used + 1); - if (elem == NULL) - return (-1); - ft_lsteadd(&line->stack, elem); - ft_memdel((void **)&line->input); - line->pos = 0; - line->size = 0; - line->used = 0; - if (RL_NOT(line->bitset, RL_ESC)) - return (0); - elem = ft_lstnew("\n", 2); - if (elem == NULL) - return (-1); - ft_lsteadd(&line->stack, elem); - return (0); -} diff --git a/42sh/src/line-editing/rl_state_function.c b/42sh/src/line-editing/rl_state_function.c deleted file mode 100644 index 200961d8..00000000 --- a/42sh/src/line-editing/rl_state_function.c +++ /dev/null @@ -1,34 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_state_function.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/12 13:00:59 by sbenning #+# #+# */ -/* Updated: 2016/12/12 13:01:51 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_insert_function(t_line *line, long int input) -{ - if (RL_IS(line->bitset, RL_INSERT)) - RL_UNSET(line->bitset, RL_INSERT); - else - RL_SET(line->bitset, RL_INSERT); - return (0); - (void)input; -} - -int rl_nl_function(t_line *line, long int input) -{ - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - RL_SET(line->bitset, RL_STACK); - if (RL_NOT(line->bitset, RL_QUOTING)) - RL_SET(line->bitset, RL_FINISH); - return (0); - (void)input; -} diff --git a/42sh/src/line-editing/rl_word_move_function.c b/42sh/src/line-editing/rl_word_move_function.c deleted file mode 100644 index 205d9046..00000000 --- a/42sh/src/line-editing/rl_word_move_function.c +++ /dev/null @@ -1,67 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_word_function.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/12 12:47:31 by sbenning #+# #+# */ -/* Updated: 2016/12/12 12:51:53 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_wleft_function(t_line *line, long int input) -{ - size_t len; - - if (!line->pos) - return (0); - len = rl_previous_word(line); - curs_backward(&line->curs, len); - line->pos -= len; - return (0); - (void)input; -} - -int rl_wright_function(t_line *line, long int input) -{ - size_t len; - - if (line->pos == line->used) - return (0); - len = rl_next_word(line); - curs_forward(&line->curs, len); - line->pos += len; - return (0); - (void)input; -} - -int rl_select_wleft_function(t_line *line, long int input) -{ - int ret; - - if (!line->pos) - return (0); - if (RL_NOT(line->bitset, RL_SELECT)) - line->select = line->pos; - ret = rl_wleft_function(line, input); - RL_SET(line->bitset, RL_SELECT); - rl_reset_display_post(line); - return (ret); -} - -int rl_select_wright_function(t_line *line, long int input) -{ - int ret; - - if (line->pos == line->used) - return (0); - if (RL_NOT(line->bitset, RL_SELECT)) - line->select = line->pos; - ret = rl_wright_function(line, input); - RL_SET(line->bitset, RL_SELECT); - rl_reset_display_ante(line); - return (ret); -} diff --git a/42sh/src/line-editing/rl_word_utility.c b/42sh/src/line-editing/rl_word_utility.c deleted file mode 100644 index 46010b9f..00000000 --- a/42sh/src/line-editing/rl_word_utility.c +++ /dev/null @@ -1,51 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* rl_word_utility.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/12 12:48:07 by sbenning #+# #+# */ -/* Updated: 2016/12/12 12:50:44 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "ft_readline.h" - -int rl_previous_word(t_line *line) -{ - int i; - int len; - - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - i = 0; - while (line->input[i] && i < line->pos) - { - if (!i && line->input[i] != ' ') - len = i; - if (i && line->input[i - 1] == ' ' && line->input[i] != ' ') - len = i; - i++; - } - return (line->pos - len); -} - -int rl_next_word(t_line *line) -{ - int i; - int flag; - - if (RL_IS(line->bitset, RL_SELECT)) - RL_UNSET(line->bitset, RL_SELECT); - i = line->pos; - flag = 0; - while (line->input[i] && (line->input[i] == ' ' || !flag)) - { - if (line->input[i] == ' ') - flag = 1; - i++; - } - return (i - line->pos); -} - diff --git a/42sh/src/line-editing/toolz.c b/42sh/src/line-editing/toolz.c new file mode 100644 index 00000000..45bab9f5 --- /dev/null +++ b/42sh/src/line-editing/toolz.c @@ -0,0 +1,95 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* toolz.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/16 17:06:30 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:43:28 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_putnc(char c, int n) +{ + int i; + + i = 0; + while (i < n) + { + write(1, &c, 1); + ++i; + } +} + +void ft_free_tabstr(char ***env) +{ + int i; + + i = 0; + while ((*env)[i]) + { + free((*env)[i]); + ++i; + } + free(*env); + env = NULL; +} + +int ft_is_whitespaces(char *str) +{ + int i; + + i = 0; + while (str[i]) + { + if (str[i] != '\t' || str[i] != ' ') + return (1); + ++i; + } + return (0); +} + + +char *ft_strndup(char const *s, int n) +{ + int i; + char *str; + + i = 0; + str = (char *)malloc(sizeof(char) * (n + 1)); + if (str) + { + while (i < n) + { + str[i] = s[i]; + i++; + } + str[i] = '\0'; + } + return (str); +} + +char *ft_strdupi(char const *s) +{ + int i; + char *str; + + i = 0; + while (s[i] && s[i] != ';' && s[i] != '>' && s[i] != '<' + && ft_strncmp(s + i, "||", 2)) + i++; + str = (char *)malloc(sizeof(char) * (i + 1)); + if (str) + { + str[i--] = '\0'; + while (i >= 0) + { + str[i] = s[i]; + i--; + } + } + return (str); +} diff --git a/42sh/src/line-editing/curs_goto.c b/42sh/src/line-editing/toolz2.c similarity index 50% rename from 42sh/src/line-editing/curs_goto.c rename to 42sh/src/line-editing/toolz2.c index 389c982d..bb667269 100644 --- a/42sh/src/line-editing/curs_goto.c +++ b/42sh/src/line-editing/toolz2.c @@ -1,31 +1,44 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* curs_goto.c :+: :+: :+: */ +/* toolz2.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ +/* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 17:10:22 by sbenning #+# #+# */ -/* Updated: 2016/12/09 16:58:26 by sbenning ### ########.fr */ +/* Created: 2017/01/07 11:00:28 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:43:32 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ -#include "ft_curs.h" +#include "minishell.h" -/* - * Move the cursor to the given coordonate // scroll screen if line is unreachable -*/ - -void curs_goto(t_curs *curs, int li, int co) +void ft_puttermcaps(char *str) { - if (co >= curs->win_co) - co = curs->win_co - 1; - if (li >= curs->win_li) - { - ft_putstr(tgetstr("sf", NULL)); - li = curs->win_li - 1; - } - ft_putstr(tgoto(tgetstr("cm", NULL), co, li)); - curs->li = li; - curs->co = co; + char *res; + char *env; + + env = getenv("TERM"); + if ((res = tgetstr(str, &env)) == NULL) + return ; + tputs(res, 0, ft_put); +} + +int ft_size_term(void) +{ + return (tgetnum("co")); +} + +long long ft_pow(int nbr, int power) +{ + int i; + long long ret; + + i = 0; + ret = 1; + while (i < power) + { + ret *= nbr; + i++; + } + return (ret); } diff --git a/42sh/src/line-editing/toolz_parseur.c b/42sh/src/line-editing/toolz_parseur.c new file mode 100644 index 00000000..55c1881c --- /dev/null +++ b/42sh/src/line-editing/toolz_parseur.c @@ -0,0 +1,91 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* toolz_parseur.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/16 16:14:46 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:43:19 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +char *ft_realloc_imput(char *str, int a, size_t pos) +{ + int i; + char tmp[2]; + char *str_tmp; + char *new_str; + + i = 0; + tmp[0] = (char)a; + tmp[1] = '\0'; + if (!str) + { + new_str = ft_strdup(tmp); + return (new_str); + } + str_tmp = ft_strndup(str, pos); + new_str = ft_strjoin(str_tmp, tmp); + free(str_tmp); + str_tmp = ft_strjoin(new_str, str + pos); + free(new_str); + free(str); + return (str_tmp); +} + +char *ft_remove_imput(char *str, size_t pos) +{ + int i; + char *new_str; + char *new_str2; + + i = 0; + if (!str) + return (str); + new_str = ft_strndup(str, pos); + new_str2 = ft_strjoin(new_str, &str[pos + 1]); + free(str); + free(new_str); + return (new_str2); +} + +static int ft_found_prev_word_pos(char *str, size_t *pos) +{ + size_t tmp; + + tmp = *pos; + while ((tmp) && (str[tmp] == ' ' || str[tmp] == '\n')) + --tmp; + while ((tmp) && str[tmp] != ' ' && str[tmp] != '\n') + --tmp; + return (tmp); +} + +void ft_found_prev_word(char *str, size_t *pos) +{ + size_t tmp; + + tmp = *pos; + ft_move_to_beggin(str, pos); + *pos = tmp; + tmp = ft_found_prev_word_pos(str, pos); + write(1, str, tmp); + *pos = tmp; +} + +void ft_found_next_word(char *str, size_t *pos) +{ + while (str[(*pos)] == ' ' || str[(*pos)] == '\n') + { + ft_putchar(str[(*pos)]); + ++(*pos); + } + while (str[(*pos)] && str[(*pos)] != ' ' && str[(*pos)] != '\n') + { + ft_putchar(str[(*pos)]); + ++(*pos); + } +} diff --git a/42sh/src/line-editing/toolz_termcaps.c b/42sh/src/line-editing/toolz_termcaps.c new file mode 100644 index 00000000..4607aeab --- /dev/null +++ b/42sh/src/line-editing/toolz_termcaps.c @@ -0,0 +1,91 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* toolz_termcaps.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/08 12:35:11 by gwojda #+# #+# */ +/* Updated: 2017/01/19 16:43:23 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +int ft_get_ind_prev(char *str, size_t pos) +{ + while (pos && str[pos] != '\n') + --pos; + return (pos); +} + +int ft_get_size_prev(char *str, size_t pos) +{ + size_t len; + + len = 0; + while (pos && str[pos] != '\n') + { + --pos; + ++len; + } + return (len); +} + +int ft_nb_line(char *str, size_t pos) +{ + int len; + + len = 0; + if (!ft_get_ind_prev(str, pos)) + len += data_singleton()->line.prompt_size; + len += ft_get_size_prev(str, pos); + return (len / ft_size_term()); +} + +int ft_nb_last_line(char *str, size_t pos) +{ + int len; + + len = 0; + if (!ft_get_ind_prev(str, pos)) + len += data_singleton()->line.prompt_size; + len += ft_get_size_prev(str, pos); + return (len % ft_size_term()); +} + +void ft_move_to_beggin(char *str, size_t *pos) +{ + size_t str_len; + int prompt_size; + + prompt_size = data_singleton()->line.prompt_size; + str_len = 0; + if (!str) + return ; + if (str[*pos] == '\n') + { + ft_putchar('\b'); + --(*pos); + } + while (*pos && str[*pos] != '\n') + { + ft_putchar('\b'); + --(*pos); + } + while (*pos && --prompt_size + 2) + ft_puttermcaps("nd"); + while (*pos) + { + if (str[*pos] == '\n') + { + str_len = ft_nb_line(str, *pos - 1) + 1; + while (str_len) + { + ft_puttermcaps("up"); + --str_len; + } + } + --(*pos); + } +} diff --git a/42sh/src/main/data_init.c b/42sh/src/main/data_init.c index 1829cbd1..5a0791ae 100644 --- a/42sh/src/main/data_init.c +++ b/42sh/src/main/data_init.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* data_init.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 19:26:32 by jhalford #+# #+# */ -/* Updated: 2017/01/11 14:03:16 by jhalford ### ########.fr */ +/* Updated: 2017/01/19 16:26:35 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,7 +20,6 @@ int data_init(void) t_data *data; data = data_singleton(); - data->line.input = NULL; data->env = ft_sstrdup(environ); data->opts = SHELL_OPTS_JOBC; diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 27e00034..0a8c2043 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* main.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/12 14:02:30 by jhalford ### ########.fr */ +/* Updated: 2017/01/19 16:46:55 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -43,6 +43,7 @@ int shell_single_command(char *command) int main(int ac, char **av) { + setlocale(LC_ALL, ""); DG("{inv}{bol}{gre}start of shell{eoc} job_control is %s", data_singleton()->opts & SHELL_OPTS_JOBC ? "ON" : "OFF"); shell_init(ac, av); if (data_singleton()->opts & SHELL_OPTS_LC) From 608567d8a29afa5f762cdd0cbcaacb6234f2eecd Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Thu, 19 Jan 2017 18:32:16 +0100 Subject: [PATCH 02/67] add some work --- 42sh/obj/ast_free.o | Bin 3596 -> 0 bytes 42sh/obj/builtin_bg.o | Bin 5336 -> 0 bytes 42sh/obj/builtin_cd.o | Bin 4988 -> 0 bytes 42sh/obj/builtin_echo.o | Bin 2676 -> 0 bytes 42sh/obj/builtin_env.o | Bin 2348 -> 0 bytes 42sh/obj/builtin_exit.o | Bin 4544 -> 0 bytes 42sh/obj/builtin_fg.o | Bin 5276 -> 0 bytes 42sh/obj/builtin_jobs.o | Bin 4920 -> 0 bytes 42sh/obj/builtin_setenv.o | Bin 3296 -> 0 bytes 42sh/obj/builtin_unsetenv.o | Bin 2808 -> 0 bytes 42sh/obj/command_getoutput.o | Bin 6472 -> 0 bytes 42sh/obj/copy_cut_paste.o | Bin 5184 -> 0 bytes 42sh/obj/data_exit.o | Bin 5160 -> 0 bytes 42sh/obj/data_init.o | Bin 5844 -> 0 bytes 42sh/obj/data_singleton.o | Bin 5356 -> 0 bytes 42sh/obj/do_job_notification.o | Bin 4948 -> 0 bytes 42sh/obj/exec_ampersand.o | Bin 3116 -> 0 bytes 42sh/obj/exec_and_if.o | Bin 6652 -> 0 bytes 42sh/obj/exec_command.o | Bin 5844 -> 0 bytes 42sh/obj/exec_dgreat.o | Bin 3860 -> 0 bytes 42sh/obj/exec_great.o | Bin 3856 -> 0 bytes 42sh/obj/exec_less.o | Bin 3848 -> 0 bytes 42sh/obj/exec_or_if.o | Bin 6652 -> 0 bytes 42sh/obj/exec_pipe.o | Bin 6416 -> 0 bytes 42sh/obj/exec_semi.o | Bin 2912 -> 0 bytes 42sh/obj/ft_exec.o | Bin 4688 -> 0 bytes 42sh/obj/ft_findexec.o | Bin 4740 -> 0 bytes 42sh/obj/ft_parse.o | Bin 5264 -> 0 bytes 42sh/obj/ft_post_tokenize.o | Bin 3404 -> 0 bytes 42sh/obj/ft_putast.o | Bin 3896 -> 0 bytes 42sh/obj/ft_putast2.o | Bin 4376 -> 0 bytes 42sh/obj/ft_split_whitespaces.o | Bin 4200 -> 0 bytes 42sh/obj/ft_tokenize.o | Bin 4916 -> 0 bytes 42sh/obj/get_lexer_state.o | Bin 3088 -> 0 bytes 42sh/obj/get_touch.o | Bin 5468 -> 0 bytes 42sh/obj/get_touch_toolz.o | Bin 4408 -> 0 bytes 42sh/obj/get_touch_toolz_2.o | Bin 5556 -> 0 bytes 42sh/obj/is_builtin.o | Bin 4492 -> 0 bytes 42sh/obj/job_addprocess.o | Bin 5048 -> 0 bytes 42sh/obj/job_cmp_id.o | Bin 3760 -> 0 bytes 42sh/obj/job_format.o | Bin 4020 -> 0 bytes 42sh/obj/job_format_head.o | Bin 4172 -> 0 bytes 42sh/obj/job_free.o | Bin 3924 -> 0 bytes 42sh/obj/job_getprocess.o | Bin 4784 -> 0 bytes 42sh/obj/job_getrank.o | Bin 4388 -> 0 bytes 42sh/obj/job_is_completed.o | Bin 5280 -> 0 bytes 42sh/obj/job_is_stopped.o | Bin 4796 -> 0 bytes 42sh/obj/job_kill_all.o | Bin 4180 -> 0 bytes 42sh/obj/job_notify_change.o | Bin 4456 -> 0 bytes 42sh/obj/job_notify_new.o | Bin 4568 -> 0 bytes 42sh/obj/job_remove.o | Bin 4512 -> 0 bytes 42sh/obj/job_update_id.o | Bin 3956 -> 0 bytes 42sh/obj/job_update_status.o | Bin 2732 -> 0 bytes 42sh/obj/job_wait.o | Bin 3712 -> 0 bytes 42sh/obj/launch_process.o | Bin 6328 -> 0 bytes 42sh/obj/lexer_backslash.o | Bin 3540 -> 0 bytes 42sh/obj/lexer_default.o | Bin 4000 -> 0 bytes 42sh/obj/lexer_delim.o | Bin 3600 -> 0 bytes 42sh/obj/lexer_dquote.o | Bin 3724 -> 0 bytes 42sh/obj/lexer_great.o | Bin 3872 -> 0 bytes 42sh/obj/lexer_greatand.o | Bin 3776 -> 0 bytes 42sh/obj/lexer_less.o | Bin 3864 -> 0 bytes 42sh/obj/lexer_lessand.o | Bin 3776 -> 0 bytes 42sh/obj/lexer_number.o | Bin 4280 -> 0 bytes 42sh/obj/lexer_quote.o | Bin 3608 -> 0 bytes 42sh/obj/lexer_sep.o | Bin 4008 -> 0 bytes 42sh/obj/lexer_special.o | Bin 3920 -> 0 bytes 42sh/obj/lexer_var.o | Bin 3948 -> 0 bytes 42sh/obj/lexer_word.o | Bin 3916 -> 0 bytes 42sh/obj/line_return_toolz.o | Bin 5768 -> 0 bytes 42sh/obj/list_toolz.o | Bin 4000 -> 0 bytes 42sh/obj/main.o | Bin 5176 -> 0 bytes 42sh/obj/mark_job_as_running.o | Bin 4432 -> 0 bytes 42sh/obj/move_to_line.o | Bin 4976 -> 0 bytes 42sh/obj/parse_dgreat.o | Bin 4616 -> 0 bytes 42sh/obj/parse_dless.o | Bin 4540 -> 0 bytes 42sh/obj/parse_great.o | Bin 4616 -> 0 bytes 42sh/obj/parse_greatand.o | Bin 4508 -> 0 bytes 42sh/obj/parse_less.o | Bin 4604 -> 0 bytes 42sh/obj/parse_lessand.o | Bin 4508 -> 0 bytes 42sh/obj/parse_separator.o | Bin 4300 -> 0 bytes 42sh/obj/parse_subshell.o | Bin 4644 -> 0 bytes 42sh/obj/parse_word.o | Bin 4296 -> 0 bytes 42sh/obj/print_and_del.o | Bin 7520 -> 0 bytes 42sh/obj/process_cmp_pid.o | Bin 3152 -> 0 bytes 42sh/obj/process_format.o | Bin 5316 -> 0 bytes 42sh/obj/process_free.o | Bin 3528 -> 0 bytes 42sh/obj/process_mark_status.o | Bin 4280 -> 0 bytes 42sh/obj/process_redirect.o | Bin 3340 -> 0 bytes 42sh/obj/process_reset.o | Bin 5116 -> 0 bytes 42sh/obj/process_setexec.o | Bin 4128 -> 0 bytes 42sh/obj/process_setgroup.o | Bin 4956 -> 0 bytes 42sh/obj/prompt.o | Bin 4764 -> 0 bytes 42sh/obj/put_job_in_background.o | Bin 4044 -> 0 bytes 42sh/obj/put_job_in_foreground.o | Bin 5456 -> 0 bytes 42sh/obj/quotes_gest.o | Bin 4408 -> 0 bytes 42sh/obj/reader.o | Bin 5016 -> 0 bytes 42sh/obj/readline.o | Bin 5496 -> 0 bytes 42sh/obj/reduce_bquotes.o | Bin 4400 -> 0 bytes 42sh/obj/reduce_parens.o | Bin 3980 -> 0 bytes 42sh/obj/set_exitstatus.o | Bin 2876 -> 0 bytes 42sh/obj/shell_exit.o | Bin 2620 -> 0 bytes 42sh/obj/shell_get_avdata.o | Bin 5456 -> 0 bytes 42sh/obj/shell_get_opts.o | Bin 3632 -> 0 bytes 42sh/obj/shell_init.o | Bin 3932 -> 0 bytes 42sh/obj/sigchld_handler.o | Bin 5180 -> 0 bytes 42sh/obj/sigint_handler.o | Bin 2608 -> 0 bytes 42sh/obj/sigtstp_handler.o | Bin 4128 -> 0 bytes 42sh/obj/sigttin_handler.o | Bin 2552 -> 0 bytes 42sh/obj/sigttou_handler.o | Bin 2552 -> 0 bytes 42sh/obj/token_append.o | Bin 2916 -> 0 bytes 42sh/obj/token_cmp_type.o | Bin 2676 -> 0 bytes 42sh/obj/token_expand_var.o | Bin 3048 -> 0 bytes 42sh/obj/token_free.o | Bin 3028 -> 0 bytes 42sh/obj/token_init.o | Bin 2760 -> 0 bytes 42sh/obj/token_print.o | Bin 3536 -> 0 bytes 42sh/obj/toolz.o | Bin 4676 -> 0 bytes 42sh/obj/toolz2.o | Bin 3420 -> 0 bytes 42sh/obj/toolz_parseur.o | Bin 5608 -> 0 bytes 42sh/obj/toolz_termcaps.o | Bin 5264 -> 0 bytes 120 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 42sh/obj/ast_free.o delete mode 100644 42sh/obj/builtin_bg.o delete mode 100644 42sh/obj/builtin_cd.o delete mode 100644 42sh/obj/builtin_echo.o delete mode 100644 42sh/obj/builtin_env.o delete mode 100644 42sh/obj/builtin_exit.o delete mode 100644 42sh/obj/builtin_fg.o delete mode 100644 42sh/obj/builtin_jobs.o delete mode 100644 42sh/obj/builtin_setenv.o delete mode 100644 42sh/obj/builtin_unsetenv.o delete mode 100644 42sh/obj/command_getoutput.o delete mode 100644 42sh/obj/copy_cut_paste.o delete mode 100644 42sh/obj/data_exit.o delete mode 100644 42sh/obj/data_init.o delete mode 100644 42sh/obj/data_singleton.o delete mode 100644 42sh/obj/do_job_notification.o delete mode 100644 42sh/obj/exec_ampersand.o delete mode 100644 42sh/obj/exec_and_if.o delete mode 100644 42sh/obj/exec_command.o delete mode 100644 42sh/obj/exec_dgreat.o delete mode 100644 42sh/obj/exec_great.o delete mode 100644 42sh/obj/exec_less.o delete mode 100644 42sh/obj/exec_or_if.o delete mode 100644 42sh/obj/exec_pipe.o delete mode 100644 42sh/obj/exec_semi.o delete mode 100644 42sh/obj/ft_exec.o delete mode 100644 42sh/obj/ft_findexec.o delete mode 100644 42sh/obj/ft_parse.o delete mode 100644 42sh/obj/ft_post_tokenize.o delete mode 100644 42sh/obj/ft_putast.o delete mode 100644 42sh/obj/ft_putast2.o delete mode 100644 42sh/obj/ft_split_whitespaces.o delete mode 100644 42sh/obj/ft_tokenize.o delete mode 100644 42sh/obj/get_lexer_state.o delete mode 100644 42sh/obj/get_touch.o delete mode 100644 42sh/obj/get_touch_toolz.o delete mode 100644 42sh/obj/get_touch_toolz_2.o delete mode 100644 42sh/obj/is_builtin.o delete mode 100644 42sh/obj/job_addprocess.o delete mode 100644 42sh/obj/job_cmp_id.o delete mode 100644 42sh/obj/job_format.o delete mode 100644 42sh/obj/job_format_head.o delete mode 100644 42sh/obj/job_free.o delete mode 100644 42sh/obj/job_getprocess.o delete mode 100644 42sh/obj/job_getrank.o delete mode 100644 42sh/obj/job_is_completed.o delete mode 100644 42sh/obj/job_is_stopped.o delete mode 100644 42sh/obj/job_kill_all.o delete mode 100644 42sh/obj/job_notify_change.o delete mode 100644 42sh/obj/job_notify_new.o delete mode 100644 42sh/obj/job_remove.o delete mode 100644 42sh/obj/job_update_id.o delete mode 100644 42sh/obj/job_update_status.o delete mode 100644 42sh/obj/job_wait.o delete mode 100644 42sh/obj/launch_process.o delete mode 100644 42sh/obj/lexer_backslash.o delete mode 100644 42sh/obj/lexer_default.o delete mode 100644 42sh/obj/lexer_delim.o delete mode 100644 42sh/obj/lexer_dquote.o delete mode 100644 42sh/obj/lexer_great.o delete mode 100644 42sh/obj/lexer_greatand.o delete mode 100644 42sh/obj/lexer_less.o delete mode 100644 42sh/obj/lexer_lessand.o delete mode 100644 42sh/obj/lexer_number.o delete mode 100644 42sh/obj/lexer_quote.o delete mode 100644 42sh/obj/lexer_sep.o delete mode 100644 42sh/obj/lexer_special.o delete mode 100644 42sh/obj/lexer_var.o delete mode 100644 42sh/obj/lexer_word.o delete mode 100644 42sh/obj/line_return_toolz.o delete mode 100644 42sh/obj/list_toolz.o delete mode 100644 42sh/obj/main.o delete mode 100644 42sh/obj/mark_job_as_running.o delete mode 100644 42sh/obj/move_to_line.o delete mode 100644 42sh/obj/parse_dgreat.o delete mode 100644 42sh/obj/parse_dless.o delete mode 100644 42sh/obj/parse_great.o delete mode 100644 42sh/obj/parse_greatand.o delete mode 100644 42sh/obj/parse_less.o delete mode 100644 42sh/obj/parse_lessand.o delete mode 100644 42sh/obj/parse_separator.o delete mode 100644 42sh/obj/parse_subshell.o delete mode 100644 42sh/obj/parse_word.o delete mode 100644 42sh/obj/print_and_del.o delete mode 100644 42sh/obj/process_cmp_pid.o delete mode 100644 42sh/obj/process_format.o delete mode 100644 42sh/obj/process_free.o delete mode 100644 42sh/obj/process_mark_status.o delete mode 100644 42sh/obj/process_redirect.o delete mode 100644 42sh/obj/process_reset.o delete mode 100644 42sh/obj/process_setexec.o delete mode 100644 42sh/obj/process_setgroup.o delete mode 100644 42sh/obj/prompt.o delete mode 100644 42sh/obj/put_job_in_background.o delete mode 100644 42sh/obj/put_job_in_foreground.o delete mode 100644 42sh/obj/quotes_gest.o delete mode 100644 42sh/obj/reader.o delete mode 100644 42sh/obj/readline.o delete mode 100644 42sh/obj/reduce_bquotes.o delete mode 100644 42sh/obj/reduce_parens.o delete mode 100644 42sh/obj/set_exitstatus.o delete mode 100644 42sh/obj/shell_exit.o delete mode 100644 42sh/obj/shell_get_avdata.o delete mode 100644 42sh/obj/shell_get_opts.o delete mode 100644 42sh/obj/shell_init.o delete mode 100644 42sh/obj/sigchld_handler.o delete mode 100644 42sh/obj/sigint_handler.o delete mode 100644 42sh/obj/sigtstp_handler.o delete mode 100644 42sh/obj/sigttin_handler.o delete mode 100644 42sh/obj/sigttou_handler.o delete mode 100644 42sh/obj/token_append.o delete mode 100644 42sh/obj/token_cmp_type.o delete mode 100644 42sh/obj/token_expand_var.o delete mode 100644 42sh/obj/token_free.o delete mode 100644 42sh/obj/token_init.o delete mode 100644 42sh/obj/token_print.o delete mode 100644 42sh/obj/toolz.o delete mode 100644 42sh/obj/toolz2.o delete mode 100644 42sh/obj/toolz_parseur.o delete mode 100644 42sh/obj/toolz_termcaps.o diff --git a/42sh/obj/ast_free.o b/42sh/obj/ast_free.o deleted file mode 100644 index d3bbdd4d4d0bc796d6badaeaf1396e9741445153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3596 zcmb7HYm8Gx6rS7m-geui-DP>nv#>l9XqTrOF~|ncQqUM)iehd`dv~|E+^)SXECkK! zfzcP`s4%fpjBa~^Z% zn=^OL%yhrGdhU8q2+c3hfCJ!89Zehzx(9rj&RfuF3?}X47?5YvO^(qCGR>0JRdRLL zUbF1+HT|}y9Z(AKIBnMuA$;@&L^p*;rkS%gmfK9HRFp2$T>4ncst3Jp;o(f?qCky? zD=S(F>)9S&Mij%B?=#*RFVorC zVVQPjGt;|iy??6w?pJATzhizbUSZ=Vxxv->O;sOhvcmi1F7af3otbPkUb+hJ=exu! zZR;F#y|%);qCVjDyTrqxlaST%E}x{!xRvfk!%Wi~RUq>KG6Svz3Q?6y#@!=el|!8N<)^D7cciUh;qiR|echUz^%< zI@NPFp4#*5<iIDz3S=E7VKuGfO;A zPqP-=Ikw;O#db#ftx#;&up8E~P^t&K=Y$IZzex2Qk3aQg3lCy^<;ryr$G2ETCttAR z&55Q&Q+#^11GmSl<|Y`4d2cJghum5b-?lCTRoOO#AN zNzJ*TvEI=kg&Zau4w2Dv$}*#+Ric15;5QxvT^ z;qdt(YxUZcXoK#L))`}>_1aKuzb^sjP;GJ8AH6TKFfy(70hX{Xe9E!B0XOr!0jAE^ z(ikC@H@IW)giaRz=%PpjWfqFTFGNj)=8r}qgcKq?1l`LUXf&fvBO@#N#G6cl+bBY; zMo}wfQh*lA)@=?b{YJ5R4sG3PbZIe7^ZWL9ZIC)2a9EugX_e6ieEZv9r&a$dTA>@= zXl<~6ys;O8F}@AKT@b-gh>^y7Xx;(`8fp$fj0(&RAAvkU*L+{22y?EVXf5zHhJ^7Q z)T1;<20w?;L&hnHlk^Oa`~XoGm>K>JawL`+NDyHRv^QuaX~m(vOsff&FeX7ILSR_U zSvh)2_#)(5MoeS;RnMC4YYc>WlsB+%2D1rXLZ==u+ThXY9TBO82n8m{Ksn7sf{cP! zLQdkOq5Uv}4QLE4#2_55)h#J19;*vU+3t1q^*aYYt7`(nrZYX^Tk zKH<>XXAV7C-#dErTzlL{3-zy#{yz15Q}^!3fxo{U^Zu!ev+HWNe0=VD__-(Eefm%~ zesIUH7=Iq@!$%qpo(^6JegvEWm%uN9S?Y(u$H3o%{{VA$@F(|f1SE)6NEZu}mp6!; zM;G^Vr1Z$zq>II>2C~ZNV%exDRwP|4TNTA#x>$$G#qy`C8?0QHl#9iolHhq^6r)uX zPX=8)EDc}~i=Qr@2Q~1la@@1b+y6JJ~hu+L^fR^R9~MOFGNeU?nU2{A?i66e<8*vUO=m9*P=tvYMcYC zd2fkGmYrfUZ)ZEoIV+i;+q__)$Jyp2-7<^CZ_et zt$H%8FHGx;TJ_~=J(AX=M!P-?ofFc!Kdo!VNuPlwVv3z$%r>h9685ZnU1=nhoT}t_ sB_SARyrLxkFN+aK5l>u&DfLQQn5}qVOU0bk;i}O2J_|mC@}(ByKl|baI{*Lx diff --git a/42sh/obj/builtin_bg.o b/42sh/obj/builtin_bg.o deleted file mode 100644 index 92476142285fc803d6888b784457487a7af8ce73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5336 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 baAm*KCv(9yYfV?)JG1Lf$`SlsbD7(J?r2iV diff --git a/42sh/obj/builtin_env.o b/42sh/obj/builtin_env.o deleted file mode 100644 index 4dce0ec7f0777c078cf2fa62624b6d108305f5c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2348 zcma)7&1(};5TCcnrXNX@XcZJiqSRVJlT->8KU=JlN)_#g9|u`B+q6kZHzC=yRV;c? zF}HdUR6Ka_kMOAY2Y41dDtHk*7QgDu+j;3`TWtpB&6~-*-~Q&kc`qM+eEZV|AOe5` zY7n)o35?Q8>#SdCmM92>_aB-oPuCEE)FWJ@F>ve1FIn z_y?Yu%~o;?#J8EB!kb{2R`Ck2^*&^vQ_N}Smi%12Qg%)ru%F*M#_M6c zt1aS5er410<9+er)mp@JZkIQ$w}W?khWR~j5f3k&g!J<(F`lY-ZA(0>G>>&UM$KL< z*wcnFHo{b-dB%7N4)$T+(bMn?EpLUdUvhb4rh=#IE-;Md_uvg@4>4Yb@z{khKwizs zs`sE+uqC3u-c`mM=S7bZk0jW!IX~K$I3KO-;0)hM;>qm)hkpl*X#|q zG@r`Uzx2P&)R$K?_1gDLed_D2_rr7(5@Tc6E+rOnm1?16CkB)0WIEAj74iBW9ZaK> z95|NjKMd81mCDu%MWw#!Iv?sbvY{$a1BnG#Oq0T_`MEGR*P-L|GYy^*62aQ9c-MF(o z5Qv@$hjEAW7*HhCD-FEFop6t%U2anZj_}^Bzuy4r1#h&C3W#erFI^-oKR^?z;}EoICiJIdUf`fp6d*G(oKc5J7K@YO#@v^6 zdf?*$qAj_gO}Z&fYboSkyN2S$-zta7Csozcr4kUr%cbKVB()#;0O|XW!&c(y-65P$ zpi-?Ar~3JlQ?(SLB02OwCT;i?VvE`9!ZZk`NfbSCXB@;*T*M=7?JJl?-`R`W_nV;B z)>Ix0N8^vQb6xy51(z{LgEWpp{ET+tDCirg!qd{=ZCUJTNkcu2c=|D+Yn|;qnuhBE gj=KP%6x&|5``Dr(gwScWgcg&K^b3mNy&wR80b0lfiU0rr diff --git a/42sh/obj/builtin_exit.o b/42sh/obj/builtin_exit.o deleted file mode 100644 index f08787f4e736556d36d7be239e3d61bc45835cfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4544 zcmb7Idu$v>8K1rL-rINQM?#9za8;V%K>bMSP^%+#%ZEfNavY;8pgzE+hxMA!YIW%(J zP*HIZBWR&O0Oz-^Y=&XFUfp&kmC-Po;|t>2r^a7Z-y2}8#HP(Kiq=G9(g3J*L3~F> z?z=m17nhavT@^@#t&eReG%&U%lW=TG;4Tyf<5N^1Ue^Z$-Z<-c-Sq zA-)q{kQeWcSE$u0mf;kp7~X%y_h%K~xC*G}UE}ldsuM@$2Dip{m&&)B6`s3BJQ-iD zV7B5-w%~nfjdDODtq z>VZri)LX@NBx39L_NsaqQNfG@k1h2M@o`;HIzlAcUJ+{__0j#Xs@pyN)&Dn&QvK`wkTa}6!VU_0&95{S1H*M8jyXxeI`v?06 zbG>E-M^oSMAe8>09sS$43Ab(zOf>9@XFCBmtQp(uH^so1i`fH{4_1#B3j;$t+_G@0 zo?Wu7qOcuLsADs7=~MQL~FH=LITU zZ{2|bvr(_(#|(J-lf0>F5yymQ)u-&LD@?;KRSJ{BGs!r?s7ixrNDK5zpqs)p;jtW! zTn7fuV}eN7D=eDqeI(y-RDQkIp>0Wb>EU!X(v$AcI+0DGei%Eoy@_!8_T-0??@#UT zx&wz(cu0iP`@3igp@iCW5mFxeyKp59HK~!C;k+lAL^VY-f)25*lEv49`M^RXy0maQ znIt3%uYDPR82BmHbNjLbZin=;gHDIcG7`qJn#LdLxC!XD0j!h1pG@w7D2k{Y77t=z zt%#Jkg$(T@K9l`3O7=aW1P1LepEz1Z`!QMg;5sitLqj?uQzV(no$ z<-D(zKfSE!p~d1UY8}LYHh!8~*K59Z?>7;l);+*DBfQr1w&?RovTGf+3A9jH4wHw!hF{yfxAQ0;&^oMsGC?S#5lWEko}P%Nrt zN8r|R2wk_x90cRH#$sAzhFt4BCEetVCn?6!&k*7K2x9|DM z^v*YzW``l?K};$790ak+d;{;7+I3v|u&st0{PtRWV!*&{hcELRuXV;3#>28rUVzvD z*cdNrOa3{*+qNCVD|GOY$C8gd9ed^MH-7z(7oY3i_u{9{ef@W4ch499exb+AojKus z*1oY3+L9fc=<505AGiMPXD4=EyYhJX#>h)|daotUoH+9A$+s^6hndU7;o5BkFi;^bRqJn4L(8NMgUd(iwSc1yLI;DxFtKeBCG_iV= z7fXgFrlx{tozukSQ(i0?npjE7#1Ls>9xD@TjHa{bl<9w^O>{-dVwP&^SR_tU3zA8D z=suy%WVLK68smw;pf`f9UST>dEd|G_7)fVOh3;xs&tSQ8A;AZcrd`8Puc1-FzZK5} z-2G;y!K-qh;noL~Hela6{Gn!xd(0g${I_?LC+wo>@qo7mexu@g{blBqKL;`jKwbAx z+612x2HyttYNf>!C1S`6-gi`YI1~)X2z-C!Iq>}!&S-if5!B0s UwiJpr{HKIhYM#=+{B{)o0amcBIsgCw diff --git a/42sh/obj/builtin_fg.o b/42sh/obj/builtin_fg.o deleted file mode 100644 index 9da2139c8804a78f406ed21e1b0527b34b9027e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5276 zcmb7IdvFuS8Q+t9r?X^PGPWs{M+6QOT5J;njmxX1LFqvVP16`i8+wt?k}Qx|frtwUe0s5FE(=?@-K4>Q)A)yWJbO>!SrN7_Z z%E$_7=#KZk{eAoGZ@=C9_Pdpz|My@26A(i23p`L8P{&j}VyGxnQ4Qh`D33OI9cQFX z6@yc-M&&rubdoz92_Q`K&iJM~ui$EHADuuUAAQ+7NeKKA?4_s{)3l0CA!DbdqMonH z(=Yq`=}b-W)wJ0(&4FZpDQ$w(?J>>O8&}qrVgVtMa`hX|9zoW2bT)QqT7kHy`D1(u;D?!_ijny#QU+ zze2)JCyVdr`*z)aZ4Y~VHP5T^4J9ns#d`m$eDZaO59dqd^Vy_nCx+ECkc z(2fuF&*RJWZ*gC6y?-xBzUw95=r!`W{^b)^J>R7|zSGyp=j_a1b-mMd&$0XEuD^GU zd^p4|Wxan-$oQzPccgmo<@zD&-mjG#!a5zZWN**d1E#rd^%YYgPD;L*R2~K&kIX{E zpM2+ae91vGRlwWz2Gr++HzZ%L$L&cgtfZPFRN#lt-x z;2-zJ-I9>!2%VpT+6#M9U4T3S$@cB2wS`l#$|clxeQ3MSD8FWmoX;B-H$fW}VU**S zjPmdqqg*;|l>1&dD&8QAQR$sxjGR%7kxL?S-+XAErH{tJCCf0kaj^Xs2x)sFe*Q8_ zIezrqMc7ms4h~;1)YBYPj-QmI@zci04qZg{w^LsMtnAR;zH#^K-6Gy9&vH;Z%BQY))}kGG`43g`JCS$@O^ijBTdUU6$zXD`I?idV6lmK%#r`qT-;q(l0W$ zBk~DnP*{VBf=Fx=NqbvffXot(>58H!Qkg>0)j*%k6dh6Y1Q!g?g_LG7b8k}cVLCi- zi2@RVs|3#G>~yST7c*%)IS}L2Ht!F`!DKdT=F^!0ktpq*DN1+Jfy=mM4Cn7vFuXUa!R8@tt;cg%$qKr}a zeGlBT)x{_91lm+`5t9?p?K{R%gYN-@89-@y9Z#U%?_zpoQXVrj_#Zg7=PY4s51#1E z^W-aSfA%^@_dG?|K8BG(P4m&9{SqSZBHMX9G)4OZ6@OuyT8$}5e+Q3!sEyMa%MhE? zxxqt_oJF1I>kz@WfF329@9WTm?P!fbqki1i(G-jUJxi7u3Es5*`KGP1H`pvp`&@Z!#%D`u%7>16{*R{XsO3qv^j}zwHqpER!a|>}E9xMn z(!$TQ9&kq-V6#!tN+jNk$0JZQezfrkhK0GO z?;>pMttB1;H?kqSs6?q9OI$ye-{$|vhW847p4&)I;$Js53`V0( z+eS;iIniHRZPQMD<;0UupPBpiGrO0(yKwJ;(1YtzGqhiQ#_8*Co%YRtyfDp*J+%80 zco|_cQExz9jk*za3+gZ`V}ft)C#a`Te~T#)JL`ix^IsV+^BdvI7_s8Yo+ zrizg-2lACr#atj&Ok`9sw@D|MQmA6$kycEKR52Gy`u`QG0fZsL8P;Br`JNOLN;P(s zd+!j+j;IoC3h0at&M_VJ(mzRa`EvDpAyzd2|=R5%B! zQg>y-J;=(Ic$Mfb6${-Gb!Tqu`Q$`Rac8mH^nQO$u!LUJ+^cZ!!YtXM(>2Ib=8Zrb zr%hgl02&bSxqee#8S5-@9!>Z9;~B~u4gfmb`8|6aSnzwrA5qjm&>!^8R#Z*XyHvlX z?=Pvrv+8v1h#E+#KJ8XDaF_ZK?Nv3hPYrBRV|b=i^<{OkwgN_L)!=efKZ3!xYMazX zZBUIu7g&xFw}Nb~I#v5VrFNGZI;$O0do+C(@N!LmO!d8{D!=v3!X69pRqikj$Ywm? z-HOjb!tKsp54SInc(%mM2go^{Z$cvfbn^R-ci8zu$NYjCTXN@TKvS5-5e zblj_^nR3j8lgkKmC{ftzb|s2tp=8_q-(SOyPe3-ptleo|kr%{{jHLS0w-d diff --git a/42sh/obj/builtin_jobs.o b/42sh/obj/builtin_jobs.o deleted file mode 100644 index 1260e07f2bf29b914f14d323653398a628896728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4920 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 Ir_)&XKh(C^ZU6uP diff --git a/42sh/obj/builtin_unsetenv.o b/42sh/obj/builtin_unsetenv.o deleted file mode 100644 index c95cd843017e0b98a66f7bcdc9953a9d4db6f49c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcma)8O>7%g5T0G6fhPdJ#gmdfW(2Sh(o0ciAGeakPvX_p%RxIg49SL<$@Fe!p!Wx7wk<-Jkq>* zGjHDaX6F6u{`BYX|M&qUA7F#rhg@aYB$1KsMcyXk9q3a&wn}r5gpQa%93>-?rrG9_ z?e<;$RBrmzf4b;h<{iQ#=;3|D#p`IhJVgEGb;AkK8=t@vW!xK2uU5;ZX6f@3 z-mZM#7^{JZ-IEEtaf;rcI9XP#m$!@siw_47&HWjOUN< zInTg#&@{8C&D3yrh2H%hT;h169B-84aTP)UMbRfI&R@A?If&kTw>aKce9|)F5!rW$ zkLnU5hY&g-QSkR5pXK-I8M@>@o2p4(QNjV-k~ zb?Xw`qIqgFck_B~gOF7tx1qLcNUHHf~A?+aYdtz%0g>o{^#Z3X$@F^{#CUE7)7 z8eVgtSGJ#xp5IT7tsG7rX*Jdz`zBSXm0MrADm8QKn;*B^?N)BX(Ka?0Q9F25UAdNd z<-0MutjWpA)5ntwX02YTSjmx8CY4D(VwCZP85+r;k{UjgI`}BmYeqWXD3$G!B_tlI zx@nu%Ldt;jR2>o0vx}9vf}S2eR4)Se-tmHxWkXfBi(nM>8t4mvQ>##dIqHBkAUzaG zFkd95+!q;;;#e^`g~qrv+V6`z9eO78aQJBA`7rJf1DTtSCh(yg?o!zx_#)4RLb%6D z6v)AUz!C5>mc>2J0oo1-!($|nsM>3S^~o0s=Sdr&iKxByE@^SDO*ctPe2*F^3KJh((c6H%ZExvOlOja zu95@_N`{{^x^!-wndSFFM)ISxqo|)mrmQJmst8?SB+8pilrA^@UnG89g`!38PU2ff zKwTsPl+K(0X(=Yf!v4T2deKVvBWM05uy$K)J&Z+S@5qPuiQk7W(MN_Su$830BKxqF zXbohky5zSg=2Em??^l8-I)i8%$Q-VobTn`Wq~)Ot8=d^JQ5a z4f|0`Ot5&CJutxnSJ>b*3uM`VGRtB(a#xnIEaH5^d@a_eG1<4U>I>Vlg5lv>?<3=~ zL-gl`8#8n_O0*9>DKBtISW#*?aX+CthpS^45;)SSgSP8o&}MA< dB{b%%pcQmm*Xku}wrtuJ3!EVwE0|@(`4<`pf$;zU diff --git a/42sh/obj/command_getoutput.o b/42sh/obj/command_getoutput.o deleted file mode 100644 index 41121df3932b98c65f7a5bbab3c00694be00a91c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6472 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 diff --git a/42sh/obj/copy_cut_paste.o b/42sh/obj/copy_cut_paste.o deleted file mode 100644 index 9d52813aa02108fed745a7403c68dd9e2acad41d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5184 zcmb7Ie{5679lvMip6w*qP6Am6gnAvYF<~ck84Jveq{Y+2A`>c*1qu3aY~vU?w&foo zFtV|@w0Sj5pp9-qZRyaa?T-~z(>ASLH$Y54`Df8IZTvB5sH75++R^ooEo-ZGpYOeU ziT#olcFNuNzCZ4B-|zSC-JSEt_uu)*#hBt`Xiyta{VJLOD$1u(f5=65(Z=6oio0kG ziYj?vGO8^kMA7w9a;#+bO@4P|aQ8fK^#bGw3gMA2Jpfoif(CY+h*flbs93ZZP+i~F zx4Um%;Ff;4=S56H3kk(qTXa2MEEUq(loaZEy?>Tp7RF9b?P$gv^(_2JB!|i=9iT!3 z|Gv@p#MkDmJ}ZGC>8Cd$(?@jsCM`CA#2p)cxRA(l-gvCwwBcWisIquIo-X&1#CiN%GB z{|nFB7x%}D<@1@Oo{f!=dkg&ghxG5XbZFIm{WI}$Lx;oy+x`2N{JvI8yo(QrC;ZFD z;&!|XHoQMQAYSQ6e$jZZNxZAlzkfX-9u5ToY4^{d!vn>N_thmPU(?#wH=Y|ooF%=S zJ)F)abbZIR8e8^?#5*8`w}D5W%pmrk{B&%1$zlCq0jp~cu%8Ehd9YaP+v}af5d(1i z49lqmnfrdzS%GMe_a%vUPr1og>^0b_zd{;BnYX5ZQ%ExeJ=Eq1B{1HaTs%dm;%W*8M zC=j-G6%kg@rB6vdu!vr9+`$0?0V!j5v&;;ZZ)Qi$ltWe_^h?g&6v$hX!UNC%OBC><&vI{6-&ub zoOSLg0;Dr_ICm%!>+F8CILt~Tc@`gz6<9i3Vh2lld~B4+7&W7;kSwu$uE>h%qe;C) z50O{_C!#L-OfH)Wl(WTjDw|9M2!Wm`X?BQZl3Av-C~LfJ-0AhJE4(dAD?)dKAZ%57 z8=cfddCn17{AY-;RTa`xp^*HH^O6)Pyt0Wd~u*-CZ}v z(~dFb6iD|3O$-V%%07;&^+Zs?ij%sZ<8C=qXzj#Ti4#Ag0gbv>t^Gjx)!; zEey`01(&Y~?n%rAZuk|!(dWeYchRVHWUGpLhy)F;DG(|*g=>HwD1%ehD;PUQ^C|0T z>>Td;I$WW1JI*A2NtPkDvjMv3`!Z5_~(g15vvFq65PB$ zWJATe!H6e+$QR4!2eF|mgeu(|R44|*aYEXFyOZ#!kdC$^>3?;5?Y-X}`_czp$0wV< z_ukZsc;M`@1muTNpGAEEl{OINlYF2w)7g(gxg`;$do>9dK08xH>mo(8CS*m6BnQ&| zBN1Urt4|8kB~t-wtH>{dKY z{oBl-^<}a?um5Ss<4erFW7=(l-Po*YC;ecH*=1n2^FOAY^k;$H5SGcoz6nc3`M|pb ztwKJdD)zIMb(V{T&U7}ODJPPh=`Z$dtd|sz6gzeK-d%7k1JKlkhG}QW(-jPD5#}+^ zF7%vR74B|yZ{RL9%JJt^Q@n96SJe{ts&DW%5=FUBJ zjdD+zyC%3pEpy*qVdnfH`-)#v2;leP!+`b2ro~bi%(ukr~Hc z?t#cLf#6@lyixv{F#p19d|i|`hULs;k1&ui$4Tye4q=HjwV7VL$Umi4cspbrVZKsi zV$C4$p5Tv!ITGenFP`U1FV?%Z42W}4z=89GPd+z8(S&Ymn74?i6!nZl#hzlU73=I{ zEO-wq-2i$E)C>9sDE4;nbxALP;{FSs1I0-bdfB+!(Sg^_qHUlbPL z=?zE5=!%yi^&v}?^FoX%LiB1Rv4Ah-^r2)bmCgzgEa~wl28mZA&@DwGnPK|jLb{X` RlI)P4!OK*qM=L^N{{<{iVcGxy diff --git a/42sh/obj/data_exit.o b/42sh/obj/data_exit.o deleted file mode 100644 index 36f4b2acc5d0c40bcb566192ce6ef4e7bea68562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5160 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 Ra53+dOTs~?LIncK{{S^wcWVFu diff --git a/42sh/obj/data_singleton.o b/42sh/obj/data_singleton.o deleted file mode 100644 index a8b8ea35527b220247ecd6087280e3c834c4a74a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5356 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 diff --git a/42sh/obj/do_job_notification.o b/42sh/obj/do_job_notification.o deleted file mode 100644 index 9dd64dd4e02d646cdb91a74c19569a75e3682ca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4948 zcma)AYit}>6}~gOGduRK*BjdnPMpUk&Z7yjoo8#cAvkSPZ9)odh}#5O4eQylcf)#j z*_ln_riRcw6xRenBP1$>RHR4*R354V0z@E%q9{TL1pQHdfGp9d4U`h`BQ-6;eBYfr zX1z&Bu5|9X-?`_0bME8Zz4mY4`}==lLTC|z3KE4}G*G1>C<`DN;#-tg;z7rh@(D3G z1tq1%*|zT<_7#A#?R`7<@B1GPTb&F7g?x^vdlC!*pg?P0NP$MdU&(uguN@`XH4 zsQzg)92sbRE<`*zcc?aEgH-m|_KwH5?|o?2%U5x|qx3#bZf==F8S)j&j`V8e8{&f3 zl?R&YK+wD?Uv_Ay>K@|y&5bYQ`f0=Z{rxI^Q0}S5&Ls(o(k* zL9<~$g83qeC1qoLFR1ey#y8e_J3gm8ih25Wt@Ko(l(X$UJL*SVRD5Y=d=Y$1nMG~E zJ%wgNd~V(zu3~qC0gd;;l;Rr*y2VAsry%c`eAuQA&vUU*l8lY>O{;wPMtA_#MYrM> z@o`a>I*+XvFeR?*dEMGT*(}JJAG;A8yxW#tM3OY zW4sQKnb`SOW|G3@wal^cYohh|YwS7wp#(mQ&TB#Ev>g3&ZbRnumY+cVcrn|PgVQ@E z^~}UCLSh&u@0-{;CH;?0gKs(f5CUfbzUj$+*;UuP`smy)IjUdTGLr*V=Gc^$q4mVA zxiXU(_+8dA6B+9&#;Vu{Qk>bQhTAGDdb@~pLhkBfH$*-1+eYvs?XqU=< zVYuLA{X)6a>xk{VY0`W4Joa$Gwr}%BFE4KLX;CQo;-K&ulkj9+$cf4bt3uB9d8o5hWSbpA4A`_09a$g0 zr9(9zSA}m67qcUxSjNm{MbhCy)${F2wd}YaU5W+I#}}mHTDb60+V%=hyMk5y2Njlt zwUSpDDY>~cnM-^X_@m_{uu#ST847Fh@;Qu3+9R7HzqFPOVzS9Br(mC#@>ts_P4F zp0+aCZbXtPvnx4IYr`4Wdtq$T2AU(u`{MV{FHqScXtrVYiFzAq&WkO$zrjb3l z4D9!Utd$>*$G7pWIgX2ncM(3ppzQ_{TOxb?@;g=Tjc*-*e-7Bqg$I{d| z78n0aJ^$@|_!HfsgueX6(}W3a;PK0}!I6T{9)%#sf~t6omWyUC1kt z*C1~~-h;Ft;51|tgd2ANG6g<#2_EwK&?ww`ns_9XiD^O;vqzb@>ooBgC=)l2CZ1kp zV)oL+gvR~D!h=o|cV3xz$Y|oh<0}b;*-sO%1I5L3q^T2?@?s{_#1p2xn4L5+sT4g= zEKN)W<;4V~iE~vZCL>ME3PsN=i6$OdW#ZL96R#UJkQWC{yib&gxj++FSp~sOqsc*~ zy#C*LjNz>D%wj}XIB%4o4vo+}rYzdidxds5rKJ)v>r3!r#EaN*okTM;YP=BJlc|&X zgDpWqVQ=88i@%UTdq3HNTH`k$TEk-puM4MG^ zgA!@g472$WL;sG^e85;_`bKQnXf{7$q|Duhwbjtkj9JT#B%ra?hyZr#tJ{q(;8^cV zhGpiB`88t!V6@k0H4hkVK{JA8*8%*(>^2g;#`0&4)x*Zx-NqKcXXlPmW8$XOAqO|@ z##bYi-9~eyZ9ke@braixaIZkHUp?ocG3lPO&@pHxChebv#`JnB(3oJ)Cjx!fN1?HJ zJ=+xi05te|c->mi_XgPPQ+k!sOO%G9zsYNddNXt@15#xLbR87C8ZggheZSv;Pd4Ce z10HO^D&o^SG8p(^m=^|N@BmPU%MUoHXP_+*!Z yauxhH$sZ0ltL|v|kQ=n+<9^J>!xI152uuYJM|BjBd>>Cs83ZhzU#?Vuh4?Qv3kwkd diff --git a/42sh/obj/exec_ampersand.o b/42sh/obj/exec_ampersand.o deleted file mode 100644 index dad02cc2e4400dd61e9a0aaa9fa2820c3abbd65f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3116 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 A7ytkO diff --git a/42sh/obj/exec_command.o b/42sh/obj/exec_command.o deleted file mode 100644 index 176695299a195d3ac3e3f03f15ed945a814c19a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5844 zcma)Adu&_P89#P%AGQ~ z7Sys%>8eH<6AyJv+8?WUZ9{At8)!^}4XtRQLkuPm12Ij}3L*#?5Ai4AA>_Tdk-TT6L|Ec=7UUh5uEBojBD-PWt7r45A&1yY6mA`w> z(x2>KDV47Fx30?Hn#1@&`Foo{o7FQ4>TC>-<#CHPqV7^ zO&3QoPS36scIOHi+upM2w5bpy%3nf(C*Y4=-H-jJ*1XD}Gh%1USY5wDbv!tv{Pin; zt za_p2CA9%Upz@^fH?)%N;*i<+v>v0ZOeTr<2cwZO%j%#srq z_-tT0IY|k~!1QE4XIF~J$^I2PrM&Ni^t+N_dFO=@JtGid7C){$n$JyifnT@?Wnkrf`tyNfquQax)| zyCZ^TfrZEwJdtue;n_o8*>Qxcc+PW1MY>q$HdRXjvA&(7vk!{UbG5Jcv#%;|L) zSvFU8Pj|+%^Es@6>oYa$qQDD;H;O5QJEuIFE4m_W=cHdRO@>aS?V<#*qKfAOJuT8{ zSj?=AoDZ&|oOO6|OOAu-VeWhKfly;;S-e@RiCcPGyfM^-qaE%B*c9rI*2KRayC`;U z-R9;?>JXqb5mwMMGb5yNU)WkQ$Vh9;}gP?&iAIx_lgxMUbiN|8}htN?E+s(~X z`VfGkyhgF50Zuq^tOH$r@&y;QnOIIML{&ai%qtHHA=Lh~}lJwhj%p zuye8428iNYIIMoKHf6M|6Dxr-ZStASgB#XNSPy{E)!ShZY6u-9s|nw+XGH3^A+HVJ zQThwDMjfu9ja&&HYKp=Ow4Fz(HGfK4heYA46=R+G28kEp1t(6P#14olE=Wfwm&t zQ5#ta?HEWqPxj_Th^wg1kM)6>+7f9Y{V!$hO+cluudy}#ByBH2riXMI=?&Tc z&^V-Mf>R!JG>Qo|Bd?-t2OLB(p;n|8R!69HaMS76Lo`N^y$P$>Ip%v{t+A%aC*a57 zJ~n3;$K)!A)%ZG_rq6#}&hYQJdY4sHWhXM~#0hgtImWG$j`9oRw^O!ayUV2Y9zc=hh`uUH25yZ2w^>B*ZAGAZ{8$+(-)IsUyUL$O%Vc{|PZ7aPE6}!VjzvBb?I(16b$0>?i2gBc}_d}Tw{3?XS$8;U~JYJ8SR}r=o3Z5o- zYozlP-e!9$Zn;NkJ-Ib~7tTf8o82DyG^nx!F6O*m@V-F<^5N1w!YiC#3o_PRJy4)v z3QMUn-a)<*FZjMB|0(drnVN`zw!G>46>)XPTdClci+SHL?|Q1Te)peZ6~-cL0R zAuSgDvli6{wZ`?Dv0lGiJ4g4l#e-VypcaAF1}!nDp?n^+1bB2%3-8d(L9I!@SZf8a zc)b=L)E4O1XeKoMAry>gH4qK`8vO%a6SX$8qR~gKzFliOqQo&R4k)be`lGBE)+=a{ zKt;2_8}u>AgL);b%e$hm#m*P2KZ)h z%xhOKI3~M`9|ZDs;P9jOD85|r#fpQ;@){V?ZVY+@gdklGVU{W`uF|`z^rclg>&~v< zSf$@lrEja!gEI`+Pkgr7sZ1t#F53B2rH~$(c|O`%ypQp^%v4GOPh&5IeODOHJ6^FM z{I@jzxy9?&5q!zwFCaX!?NUWP3T-^2hf?Vqhs(uEAu|Wg7Rycm&v~#14co4Rf0&&# Gdig*9eU^>@ diff --git a/42sh/obj/exec_dgreat.o b/42sh/obj/exec_dgreat.o deleted file mode 100644 index 4f5329280a2a26f5ae8422e5cdcdc29035f8c7d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3860 zcma)9ZEPIH8J^v{*}L=E=d&G>G~weK2b>^$=X}-_hY-N%Vgf>d)2alm&Ub73((|5s zyG~3q}8Abx;^K%huK)2glDPb27$3Is@zaMVyD2p=JRp4r*t z?g&jr_s;tzI)%sVrC?|yUQ`?I3}ZI_&}nF-tTYszHXxBg<& z-M59!BE-3qlR{alKmu9UW}_D3RjNg0ZpHgRmsKA-2XB z;)Tn2alFFxbj7jV!W6^%!F;E5d_y{{GZ&37z^jgJR~y_K-}4%8xyHM`O$+B)%X}N+ zn=TYv@&3_*cmE~g`43EAaK4{wydE9J?=BG!hfYDZ#uwH35zhCq_VW|fQp{L_2hg6B-y<2CGV(80Ew?}NO?yGi4{uko}h zl0r;|GWoglTXq#<>wNcXyi>Z<;*LNl{YZRVmo#0H!9p|m#h{A5kNysxXEW$7P-EeI zN%~4`Y`UmCny-JF-#4FmGl3Cb`y*iT^*yKabEJ*@)%To)26`y{k~mJh`tbbR@O*vv zxYp-JkJk_U1r7PRVe}IDeMi#y`cdusiT29Rtz+k-d+Et&Ifn9CbtJ#G9Z&J`pJBYIDi-PA1-yZX8jw3wH%f2%uidENlT;KM}yU>El_PNW2 z8q!Z0p;xNzL}teI$`h_r$`G#NjQgTio|yE7TP-<&#sEt4&PhBFXi!WcsEWNy1-}q< zQPK>%D5>U@$~CkE+|%3@#Y)w4#LjB1ghs_?0#=+X)Wmp6czmEpMwfAQsz*jrX=`b! z%jm|En^_pUjhoscsh=lrNcOdF?%BvRm%`Mh%{{oi*EXqgxrn50OeT?dR;QptY#~?x zAw;~#h@_H9;t7%HfbZrWDuYPlHa^D5MGX$(YlZ2 zwr)j}(P_+*Ma+Y<<4S)Bb<{jKeS})q=|HR8j3JC}x(YeQDr)^6%&Mb`J%(yK$n1^t zMbDVsiCy6Tq-lZKD-y&!M(r}VBwm5^1+|4{Z#wZ>s4X&k7mK#oN6;SuMX!v_gB=1z zw#nzfVsVQjS!a}tfZl;1d*bhcEtYE%AAtA6EZ1>Nj+Up>>QbqG;h&ieYlk36a@+#$_@PEqQTyKT7jH6j6>AL}yWmt5=k-ukC zowz-nqv*@-JeXi?|8ZX+2^~LtZ}dS)ib|7JhEc`ulIEwUvlWb?=3B6 z9^ZZHh3XZLAA9?%KYem))rs%he*4OY*Zk*=-Rr(RJo=l%FWw;k_8zc427L)iU=c0{ zafP{%qo7I9gP=!2&w^eC9R>XhbOOWxnb;J$@cMCOuF%Bv(I%!iP0U3cVHPG9P0YT9 zGz6JN6H`!|ctmL8nb9UD9!*THMc^opfM_}f(q7znnwSMT2u_VA=9KngBGJU$(pWqh zH1UGap)y%%V*YB=A?@`MxW;-;o94mwh&*iU$kV62nEy2K$Y|65OPd%{g4>NAs_2`D z2u&qSBV*Uy!kA4P>GoLs0K6E;<)9}|6XopL@Fo+RQt5}yTROtO2`AxWiUX((KhoAGKnt>wyV2G=)Rya&9TdTl(>`26901e|*LvXe}mzy~sN zU%zlrqWD8rsNo$AoRFD32C76l4Vi3%azs!X<9?F z?=}~gh_z4lS@CY!X+4eh5o^Y@Fhkz3!0xYrBeD$+I6~>a4;)eSZ`67Y zTtfdDIQ%T?vKqWWReRH@;}ff?o!|P6?Rp%I24**YT;Nl| nFJKwniHhS_U13+J9n@;Q@#hh5z9aa)<0}-O9`?AedK2t_;?*Z- diff --git a/42sh/obj/exec_great.o b/42sh/obj/exec_great.o deleted file mode 100644 index 49a86d0f973c19ccbcc2a936d6033f048430dc7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3856 zcma)9ZEPDw8lGKe)^?mYPEy)HDfk+osYL9Qwh&#zwFPo=Ly-^=K(uIa?2Y5%taIK? z8=$>b>giNpq`Q_c-4Aq73Cb@J5+ETE2vI~qfZz`WA%1`WsS>Hmm$)8P={?WvZ0ndp zJMug4$Gr2*J2UUhtUvhq=r2(rjEF!5Y5`42RA~^(g`nd!{ziEq7BuW-ACyoBrXY3D zh+^BmGvfzxpx-up=WS>7P@2^O@i=T-QV5H-7O{&gEVf;A#->ZQ=hu|Uwr{v&{VjhE zn?;DTk&{AMtUv-;*Jh&@;#H~zWp2j%SmT6!N}SyMa#p%OaWkl~aK0pc zB{nvlQy$ILzs~KROTT8|!g~2hz~t&Xj^}1cYx%41_!b&yXX-g|gn0Ggx!K{l`tT90 z&yF6c?|mB$x!Ga#61m;4r*ic}+V?B%m7877&WCoL%s^%!-B+mK*61G`fRb5tRc6I<;nfORXT}LCyHs=Xex@L@qaHeD zOWUejiuvrStGo$8r=VSwU0>uqU-Xy>eu2(L(PBBfmiZkwuTDdgg3%6Qy0F42ZtzNy!!bsi72$~p{TbkSAFdswwte*?4XsG<*}ngE%-u_>^$ z*%hbfM>H)kdqsQ)q{GxMfJ^*&NIc2rLbEp&e<{=!nY}%tHTnhge}GypiOzxT14TB= z{b13U#gVL&N=85jA;|97`(QnCW&C6CewgKIj`l1Vw;-xe7baFgjLA!thr<5@d#{64VJ+oo*0=1s29;%4bi#qZbv+|u ziyX_aPbeG)q#JvYb`sUu*)OqBhhra)CaUuQ4 z_8*_AE_vkeo0mTI)sHKV{?hu_7eBw^*sI%DpExl3mjlnPk?(#8EN(1!G>%2M7?cHF z2O0%UfF1z-6SN=n0_YIvQ_xWm1H1=}A{U-d2nr!-V)|$kQ=BH|B91T%6N@Hp=|UQU zIA~%DY7>tLO*}K&M4cw);v#Sq<~~h_LE4KOPZP612f>kOVoqrj6X(>a@GcYUlc~R(*S800FT^qUnBrfk4dXtk$ySm4jE$w|Mt?S@qs{qT&6+`v^4k^kpWPJAn)22;|_& zgVKWkWBD51(ZC6*dHNoXbQm(x8rv*etr6KdB%?#J&AL%8g%%x=(wEDvYo%!o$z}hM z?bbdtj>zsIX^vRCkG>=Lz~dtn-yZh3uR4qW1KhJE9smFU diff --git a/42sh/obj/exec_less.o b/42sh/obj/exec_less.o deleted file mode 100644 index 14dd6f7397ba46fb73612a572a8b771d10941d70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3848 zcma)9TWnm#8J@Gdb9UEjuh-t-q~yX92Pdd_*SS%bI3#W{+L%;oA)%-xJzeh}+Y6hs zX3yEgAxRU-2xVo7i@3a?mheE{KtY1Ow3Ub&HL6h6yfhDaA}UCca6|$Tb&E*)eRJl- z>m`tk_MiVU|9tb$%s(?{|M|a5*P=ogVSx%10ZmC%84$`3K=U+yM|mdZH@w6?D1i=4 zLF%Lt#j-qm+Vf>!-!<~Yt_3}iX0$*&4jV}dVbT^6N6CU>StWa{K4H0DO_?m~p&h+T^YN-J_1nb5p;M5p@y+Y=5X|>j`@%%E)H2^;MtSbcn!Pjcd)F*_rZ3Jw_W3%)p%MJ z2_Yr}nf%82EjtRab-qV6-WA;`)!_?Ien)&+hagjKUk-6ECxyHyvtDSy!y!w&))mfRf#`A-n!w;ns>dd)oFZt75xuwkUGDUG&RM?5{pm zD&#h8a3=+QRI?~Mo+!AU@T@VfX4}HmyzJR~MX~C5w&PiD`B}7}vOMl=p@x)GM(CBQ zGm)t~Zh6A7OBupd>~T-j$`g~GaH=I6&=^2T?hT2D01b*M1XZzjso)j-E=sDii;`+~ zsa!*g&t1(OQLI#5TkNmaN@!H9?z7@#p(e&l!sVkxGP;a=l4%)Erp)EZE~6Vs5z4~Y zZESA~Cm%>`Nvv((k>1ACmLjB0JJPtZH!V`-8WB!Dm`EVm%uYdvXb+eVAw(=~gp-K` z@q~zXz;{QQ${MOD8tPpp+M*Yr9|J{JMd!d?1cjfJZ-PZ* zCPy;AQ8EHL1wp1`AAv2C8{-_WA7;6kV}1^88@2l}riczgJWv0n@&Z{b%1?@`6z@n} z153&K;#|nXAekk?Fr@!b%Taq6(r45Lpo!=)h)JqTVm)9fc~5*5I9EunrGF;S)`fZ_ z@jhsO0?B(-G=GEmL#jQA4PY^Om-0~fce6LwTVbu{Xy#@5{uq^Mm~_H%e{48UAs{55 zD!%T&3di4m=L_b9+Gy~s@3N>bO|5;eqcr2+$|nYgF3=J>qJ%*PKKH`7IwR_8#b#?e zBjX#->zFysu?CJFOQhQOz2Erk%Aq?qIxBy5{OJ>;>*oIc>#mD;zVgM{<;BcvhpxU; zUHRI%(|5i7$<_6juC@K{gOB?@|I4AxU!U0h%!zlm$dAqf>))WSKyfU>3Q!L86VPtZ zBG1`+8{bGm9ps zpf>S{(8M#NO-wwRn2SrnQJDKQodanvZahuQ0v!aChbHEf_F^K@#N5(YJQ*}GuXU(Q zR+^Z<+QcJ9(*=;m;&G#iCs2=gN}G84v={TAUOY0|^nGa)MM`kH(c?y$@g<@xDnTk4 z&ps-Q>6DRbkH%ht7lT;=IzCUN>(_OE+v_qD{maUf3d|q;O5ke^ar@2KyD+~h$}CERJqMB91UW{%3PAsHQ#?dBtLHMHocl%8B?Zj~W(NcR0fc9^fA zaa5*()wC(eA6f$ zer66jd7tL1GzU}mH#FxMovd^j0B=&o>K2{XN^|=IEjstHxm{QbpBMO8@CsN)XQElUslGz|A7~FHc>n+a diff --git a/42sh/obj/exec_or_if.o b/42sh/obj/exec_or_if.o deleted file mode 100644 index d317d0cb5ae17124726a64cfb492366222726a2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6652 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 diff --git a/42sh/obj/ft_findexec.o b/42sh/obj/ft_findexec.o deleted file mode 100644 index 0e9cb0408b3d4c311c1620db4a6d6aa17b5d151d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4740 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 F_J8<*6es`y diff --git a/42sh/obj/ft_putast.o b/42sh/obj/ft_putast.o deleted file mode 100644 index 68bc619fd146569bb4c6b0f2091a63c26756021a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3896 zcmbtWZERCj7(VxQx9!@k>lkc^AXmP@*^Li%fiX5=T3`qn9}-1xy0+VjTU*+012PN* zR3;kX2gVFJ5~h8NcFda(oR>Mu2B)9|Jhube_B^aA|#W z<$ahX`8M0f!e%?rf zJUr5V^~VU6L+zvC{Y|Y-bgPQ4RMCA+EXPS$t`cSxBw&3`g6${2HkPm#Q#%PB#c-Yl zu>eeg{dE#9(NBgCRl@!z-HCpsqOXlbH7EL>itZnadY$O&D#~4!YcF%6&#CBxV^PzI z^5@L1YW`R>=tQ@vD7O?}xl`Jh zZ_ev>elz>^o5Jm#qK$8x+0n6OojDlKWD}{R*%WFFHJbCHeRz=XZfb-PTCym#aK6Z9 zq7D6#M6#hfXQc;nk!&s$6%CuS7}wAu?JkkbiC82T$q%u$0S>XXOgxszAd<(d#H8S$XkRKD7elE`3<)+2 zsx{t4Jp|_jt<~oWEcGw*&#hQpvjX?ZWe8omR@dMc zY)O%6R0(?BvxFpM_-ibM|y2{^$;v!q|mt^ zXQz3LVW9UJboA;q<+}ir^~FA(`;&Ctqt6t+SD<}B>t21PS9srndXQ$F`vrjE^_~G7 zqi2$zqk?+9?`_~;bcM+9GqfFCV*{<b3q00IxpXPPC`FlOz}6wJB$CQiB29v5jqE z3=~Q#Y_GE2w)NeY3%vEv>`x2~$(+Kmbd`?1j`m-2IG!?*WN0pkCfq;+Pp@B)kBu?b zOPwbH&$6wvTK?nmLHK^0*u3M!qt&BRj(&Y=`tb`_7EW25oc882<80&JgZ?XTq^1Qc z2H(1T&G+OZuRd`iY91Ya7h}#szJ>e>DZ?ankOh$CkPVP1WDqg};gJCdo}pR@+DQmq zJP&mcG;Ri6+#l)UA)|}u4p)ec$B8ZyNG_fTx_F4Bi(5?>w{aE_jayC^4}{F(nWT%y zRA!x$E}k?wBabVyc&_C@UJAOnFgfs__RoX8QTu@rLde@lilU}ARNLJtw4FgMSmE&= zMi%Fo3ORh0G}o`I+br4w!Kd|=mHFc*L;$(EXho)`{TZl4uW=5DrXFUzf6=~y82`38 zZ!n%{q@*JmJkz1x{PR-I17kN=m1dOt4jLZ!8pG{gYg7|+hRc1%@EGf;%~jzEbagR diff --git a/42sh/obj/ft_putast2.o b/42sh/obj/ft_putast2.o deleted file mode 100644 index 93e88ec6884b8419158e0a4b4bf50b4e0ca2f55d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4376 zcmb7IeP~ zB{^}%GP1ZX3vOVAg|SjdVJu^?1;$obH@2p%|CB<@U@dI0Erq7EkU&aXnr*Dv@Auw) z^3$ukWEY=%?)lwwe)qil^`89Zzpj237D5XMRFEL#qC}N~pnM6ErTqn^9C11>DIeDc zr=TQMoN3mJ^L1rFndZTvv4hLD+ZxcF7WtUVXk3Up2nEGSDz}(szE-c6tSJTf`COh} z)qj`aMmkyz(*RAgP@I^XGC^u%rn&o(!Tk?5`sY=^KNT|O;{)78>GI8#^DFW_$qDzA zZ>V|nKr8a)CMK%Iqny9y{9L{tD1uw%D_N6ehWPm;Cm*H8O@VS*<=2e`Rb4CQSIt>d z#oFij=6!o;Eb8!j>J|BBb9p;Oe||2XN>ALJFITC|6iq8P%k)0?yvJ33eJY{xo95^6 zl_!qa3+&JDMa8#K@twUzK0CikF7N02i;wT6TjZ-BudMjI|51F;s|ozuE%MKb5kNuQ+W^ zRzyoEzh)RK9-ZrVPSJ$*U5a3zsFed2m{33B?xHRx;Eg`KaQg^Jc-;OBQ@Qc-i!bu*fbCCBZZDJf zw_Djo%B6~75Argn!9#Y+C0i2Ng-biL3)e;bsYhHUhAz!Jkv7djPb&Ttr(9Wy_~Mae zE7eGu%i|d(NuM+Q{Y|Ld?~IVJb7Om9z7+{5|74T@2R~mPNpFnwDL~IixT4+Mw1&^y z%|0W`K1Rdm#bzJw8}*FA_@c_^Y_kt6ESg(29w)mr?>vuxt`*AxM0hf85ZF}Ng;x`g z|M9@k$R07eXLLwBuy15!@ZsIPDKT(QujqrM?#<7XYsJDAF#w=f3{XMuJD45XF9vzr zruObVJd!$Etkz0pE7g#JR=H3tS+){&6Cngdt0DJz7DSC74iqh^ZHl$aKr9iu zJ(ko~Ve9A_fUC4!ErD2X^#17P)}5`m%%sp2u%{jG)E!Nx#AlBP#Ra>rinh6w)@%|)7PTAqQDM))PDb3{6#KZ8o>TO+@MzCtKNhHGfe@|n75eF7^- zs~eUG^B|HzUv0bsmC!duUW5KJJvP(-P1m|t-w=$v1#27owlJHP*I~+FxDUu*(bPMm z??4&)I@{46W<5!+0<|gc=AfZT__y%#2x%cY;m{r!%(CH1D?t>;=9MqRhx-=WwnE#} z3!Nc|;*F*4kG+BN|M)PTvYKQle35E+?F8^j3F4JQJ{I;dKeo9Uf~w7IBM{!%d_kQ* z^yK-+lJDPk_U%{K{p8(`x7~K1b?1fqtw(=-^|O}mJo>^n&*xKT zzx^A;aAN-s`4AGsAZs9;K;FfpkUZolp&J z)*ondHlPp>!B-c9aMZMa$J$V990Q`c*D@}^{LEZ|pOMQKFfM5LRB}~Z(wS-J&WNZB z1RE@_$w(3*v>u~ zJtY&N3r=Srh{xqB_^lt78z*JgunZ4NBQ!1Bff>V6Vj$yDnLH;q0|@q^Z#;C$hGk$} z8jpD$W!pKq7H(}$+)d1+vEY#Mao%H&0b{k)jD9_Y$rGC}2lz|h?&yv>n!ojI#Or3x4U6viU*7_#tI?L*qE7*D1V1;Spu?Ommz!py~Hx zXK~Z~orv$r^a*J4VR3E0!;VhxRd$!MH!1sT(4YD$ICHet(Gn0-`Bw Ap8x;= diff --git a/42sh/obj/ft_split_whitespaces.o b/42sh/obj/ft_split_whitespaces.o deleted file mode 100644 index f8ea70a798ab89f4600d3986153f747d7a69993f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4200 zcmb_f|8G;*6~FJ<=Y`mbUjiBJO51r-2+)-zbTFWp5;WXB3Xu?P7@bOA9mh`0jN`?2 z!>UE1I8<@nZedfkN&8`~D)oy-|AG9#$fyWNm6-NJw;v)cNS#QeOtLgf^XRnfbMCt@ zU!JoqlXj%*bI+Iix#yhw?fLG5zx=a72+b$(gXTxe5`MyHps%9USov>gw$U+6@)(dS z15={xcZ(X%hC$ZqdD90-Wc9^?(>EXCkd-19&E_ckh%G;H}*TswV_m3oAW&E}A zxp<=rV54}cOmdiqc=5ik*60u~BIrvM-&?4kN`2kgagz5<_-!1gq-|udK8&^qe?DqY z!WaSPWjKY##6H{@k8^hSI=UOCKCAR+tGL*0mBuR8OmvP1TE(%7Ft2dLRyjInm7=wU zg8;Y6W0iS!DBjSlc+Hx=?~@`N=4PUcY?+D9G6TY#7vXQvFGyoNx@eVqE0-dgFvo90 zRUBJ{_Y*u&+05&0TJb^H9REt4veCTqa-9;MKd4hSn&U4)S&l9i=MnI2tK3&HulobV z8r&aQ-vacV3{;L*ta$IDrQNnlGftNA-dR)t<&Y4^FCld|5WvD!?u${sV(igb)es~A{wO7byO#j)y2NuLqGomzIoL(yRR;~E&5Z3%H z|5m5sZ}B;FCw{XHK(c!C6Kz_#P%YkCDix{=zsEezPA*4*`)T;x&7=HygioG4(;I#@ zF_KFSXTk?MyF0tXJL74*c)JgDL+IT5ROg;uA~zE6O5@ttoft^vQ<=f8WZuqY)2X~Y zI+V&Ma=7&pxz4!g>dOJDYjAY<{6MU0?^C%U5g&?;i1plAnNDQv(czJSob2~{ zdsL({d65$-!Cx-t1)PM|s%;N#Az!G)*cNKlHsfgPrZ~O@w@AD2g`Nopam)BS;kH@p z3HU-!2M+~zG#%e^1a~5l(3Oe@7<<=<4fTWYInW`o#eSX#<%I@4A)3UK%s{KZ%iIqs zowtX606)G#{1_VFf|7>iXk2$^(vY=%S|>BouV#NGmiF&*q*vZ&=>WUJ z_R@ze9b}tm$nr1fStmH)z79!i*Vqi$ixRe7!RFs%V~2vx@>$h(I6$WqfSZDL=ErO` zHBMz2$Xo-|s(^-Me4E)*_eAQzmB(Y8t&RfWRj$q-l zia)5|+4iUL*ZPk^=IRch$!dWgL1TIyjmP|)1&|CDe2xW>J16@vdFR9_So&XlI5uu= z3$XoLBk&t)D3W2ErJylLKI1vsZ(OA(z@I)#yCSqBLaomc%zooUff@>H zTy?lM!lqxQfblMw7_~V`4^7eI5&C+PI;N;ALVJ^Ra0Y1HRX&!8k}H%9+nJ;Yx$Sp5Xk3L2uks{9VO=p}3`ZkK!GQKkm_ol?*2FPAI+| wJcJ3{Gli~{-7|zwTVb+N5nq0*M0{lPQ@8w(Ny+<8N}rXN&%O{#%fHnB0{*V|F8}}l diff --git a/42sh/obj/ft_tokenize.o b/42sh/obj/ft_tokenize.o deleted file mode 100644 index 6c708728e7d1162bea836addfda5d49f77cf74da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4916 zcmc&%YiwLc6`s4hvv1$KwiC-Gk8bL`fM(ZCO|c*ZZ{khXuAQcSB>B;DS?^x2H(Bqx zdw1<5YN!>r#l}rZRf_miDH2HV1JQumh!7DaO{G>)+KBK7LVyuLq&!3@5(FAzzB6~O zy}k)F{9?4{oH=LCeD}=b%*?+1&p+MtF{Zc~7{~)U$HAf?l)FGF(*Hx*6|@@Wq>rrw zlMzK^KV7dF2P;y6(Di}jzJW#EuKie62#;cE1pvhcWs-zlbUmA{q-~AxIuiqlMSV_I z$D};xweV8FQy1M9YQQswsyW@Pl!Xm=dlP*-7TR~y>%2pcO(&DOBZM;G$Bg{^` zt4q8Yd&6JbThy0$*m&uop|UY9#=9gw8}H{5=1%eQ#o-clamIH+Ogdw68O4_a7Vx(* ze{$%zjjx<8<_z;zymuXY=!YR0=%TnS-e@`_LUhJwcQCVvVwlgd%i^4J9n)t@j87JPX1Mk2c;#Cff-FCb$ zNxU<10zZF;ct~Oa>5Ol`+`smCyKhZ0$9OZPQH-;qSBn$*Vpi9CIv1ygvEvf2LmJ0` zM_ck5_MZfD;29(Oa2cy>b#R_97bV_^#5*bRq{^_|c9SsK`Bumm1)_7j?J^&lj z5~m*DBhn zbB|sa9*${uKPkROc&VvBwx(u|TuaSVug(l!NzGQTPHtt|Q?!L%PtqvZJ2ZyWZ1P%a zsvRxspq*q_spT|{dgiUvO!6|?FQ;Z+7iNF}&zm|X@^H5I%FOptv!08oS$qcg^A~55 zH)fMJQd6(BK6-(0{!b-Ar%1G?XHRc*+$fv*QZd>dYmK!=H)aYr`Zl$F=rF6h3<_{aO42ut%=o-&Wl=f%S@wUz82+Qfhk>!gOR?!Q2v%*YE zWJ<+~0jrd{2@FO|uiy~Nrpw44VT4{N6?4&Q(ah(HMm9=VMY?n|Bk8i}LYd19`jlBo zR}9vf+>sdU8G!8R>Sg`O-E8keeVuIAVDGkMAKTfNOboD|WPiU^P3-Cv8p($T9~wxq zPD^Y{Y=5x7C()l`dlG%De|K_wSE7eu%y|>HY9T*Lb$k3Q!_oyB9xhrd3XIndNH}2v zENMz9!iJHe7ef?`h9}+tVn&pDWu4l{-D={Pjfz_hg)AjhC%{Q* z2XvUyzm7VFLR;ahdTM;Njj*poennykvq9+yT96yU6dhyroVlcl;%R7GqOuR;tgy}! zzc_5d>|VL~Yfnu3;pEzjMru$zTEIOgJ>8U#o-1G~p5z_9<*ntg`0;YF)qJJ=Q67nnLs)=@J^vCA4g>(B1-Xa6Py0Q>1PD88{12 z@cpRqo&1*&fp@^Nr0)n8Ae#BsPz7=&mYjFcG(QWCV0nV3`FUs*FW*Mf9M}N2Loo3M z|0D@Nj@|x53RQ7s(6xabCJNaU=4JCJWI#`LC3fP-f#3b+*SQ@ho}o=cFY+viCWib4 z5F~9X(qkYhG!>+e6GO4TDb?G4^MCQF118Zj0!N{7Q0#8T@lPNm#!x#BYWINX_Mqn} zrh(B7O+HlU(ml=N-+yIp{hzPD(e|0jGx=4Gn|`$UQfAo-*EhG>gLDEEPO(t4?Bs~?8Y>J0mg9m#YPCn zYC;{eDlc#-*vK`PB_0bNbfGtd)romLEPxJHaj#K$FnETCz1_TV3vc>5Z|>&NExhG8 zUx&(fxN9G0-Z!~F=)aHq;N;!H-QFDcpRu%V9`cUxfcGbSx%WZTySe8m4|D_X1YhYr z&hP2w!EWw~amD)yR{(Rs*thUye1FwfAQ9^(+Sz!zZW@8a9jJa9G6J~|5}~WKo=8YF z1&M@KJ0R(PY==aGs;!VnPIV(Bl2(mE;=odyA@MX;fkpqa>f7YSf2RzK8ybWH9zrvw29orOp zxoAu<>+OoC-f+5Fz^hce-t>GikGj~qdai7w7nFiwnoPG}ywams9UU^tw*NRDtg^v0 z#>BT4-jWMnqlcyKG-hP->4L2er85W2LK^RCigMxQY4?1rTEgR3YD<)fQaNikh?vvG L1)ahsm9c*Vjs(~* diff --git a/42sh/obj/get_lexer_state.o b/42sh/obj/get_lexer_state.o deleted file mode 100644 index 2a093a6d1ddf804c8e9bbdefd8696a47fd652cc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3088 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 bS1jlA1w5u{c07@hJ-LYF44pM~oi*(Lc7(o( diff --git a/42sh/obj/get_touch_toolz.o b/42sh/obj/get_touch_toolz.o deleted file mode 100644 index efab36269fe798105860b75e7ccbd69e4921da4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4408 zcmc&%U2I!L7M^Q+uI)In-L$lzRK+L-775$kEQQbpwt<37RK(BH(DI|Zj_ue+j&0f3 z{fUy@c9Q}otEH#{1PD=qcmweQ53IDi60MdMLRzGKLcCN$NUa1*g;*&-MfdyW&UNgY z0@;^kl$rB0=X`U{%$?)OKfnFr`=AhpUtmBFpw}ga1UlLk=*v|8Ksy(9CXUkw&6R;E z*ke?pS(aTmWIMbgKXAvs2UcX43;G<6cwBZ40BVVVIO5unT2{U=)hb#|yP?#Uwfn*G z`|s?SxH$jOn&%lzZ__I|N*AwE%PEBy??R8Y5PuByfy?64&CW2qRr&Vm_}owG#h;AN!K+O@rViK}-|sZuR-Iln(#g|h zJo$FTSI_3Wc&~c!M%IXDAFf|A-@j`-LvP^Z8u4)H6r?x4_f01)H{S>Q-84JYlW(pz zgFJ1kRXtd)<}GW_?v5px^BV8BT6qL`{3HW$hl2Is6-w501E=daSXOU6xL4oT;~MXb z#?zue`X!eqb?;lHTvdqPe9vgSu#TcW;COFFe0ocJ;^V$xN{EQ_VR7Fh|I#Fkcce~c4?M&g)&QbpUt$5%#yYlg%k6HVmb3Z z7_6|-krl|&s9JyvX4*kzwE&+*elAMV2IuIRSvZ||^wcz3Dt0AzM~F-3v#j!2yo^3v zxNDV_d~REnPkdEA@t-T7_WXrRyLDcj&%*p!_i%1SMn~r_3=KWJJ9f<3`g!bQ>%2=NX}MCX789*%vs|ne@(Cgv>x`?T>!m*$H;1C@j6vKbUkb`WV^^O) zx+AhPa&7;wSqG%>X~kXZQDVF{LdclljJZ|#qqjyPxTL|2&^RFYL0oV6qmc*^ahnHV zbk}+cqrB@2T$U#xLcGkPUtCXuc8^2U=)NyHMdOs7G$yCO8N-I*_dRpyDaBvJ2+2O7 zq&Q$9m0nWPCN2{A2m{**wIuu}XCN7|6_8jDNUR4Wra*irwX++WG0AdZY*(Sosl~Tz zzxqGaOkRhg!rUI9zvL*x7|cIGG!2slM+W3(>aW5OydJ|zD1AFaZ-HFyyD>}vI{HR^ z!y^1wNEW4=eZ!$JcScD&e8X`e=`G6`f;NT^>9{5Md$9ik>wm=j6eJkJMflBl23l1~ zSxs4S*r+pfZM}#_Iez-h_Q(gb;iDVUZ}4Y{56e8dIttJfI-A-L(07$2gxX~A?kmDw zlbCGYHM!pZV#6OD_6-C>V;+p%FC<>K5kWjQ&T&nCO#yTk`au3~V%w1?BPYK4Xz2Bq zFYe4Go}GK=%r#&BWp4X-bC`b`{Z;gL(0Q7lp#K}4M?x&_GwuKzPmn4e{#GiSeW!{C z!FrE&5}hiZu~zX5po*V^cH}8h#lzE9JTa{Hkzucmpp znYQ%9adqtnG-`SSRhvH&sS-aj#~QpJyi<=M1Q3;QA4vFEhYcC(3#DbyoRIkQn?)Jh zFE@a_VodrbWS_ZTnx-woW=V#i4UX-TaTUzA8ueWSIQ^si_-I+t^*n^S7R58^zaZGRJpcdz diff --git a/42sh/obj/get_touch_toolz_2.o b/42sh/obj/get_touch_toolz_2.o deleted file mode 100644 index dc0a06a01aef9278b76a1c803b885f6c049708fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5556 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 oVi_@% diff --git a/42sh/obj/is_builtin.o b/42sh/obj/is_builtin.o deleted file mode 100644 index 2161a2b4d827160565f747cd687c961b6e928558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4492 zcma)9e{5S<6~6D;&p%?vb`sWgTGDxP)^?EEZdXAlZD~e>UZ+&rMz>Z>=wUzqdd0Dg z{hVgikRoM+hQPESkR~*Z3TZG95`wL4+Juy<6N65OASBTEV-iCXn-ow%AR<7N?|bjQ z#D48)uXOG?-?`@=pL_2)_g(+$Uw{5@SO_H`(1C)WR0v%fgmxR~Y0VL@+YLuub)Iw3 zJPeV*1pHE$m6(lmh)RmZM3R11xwpoHDC#JUWniS7_DlCril@Q;sr|aQ{Q7RX^RRcjfTKGFT z_24HrEn3`cv|A-V&&}#@eIa`O>P^$J^85QzpS2J#Mf#lq^;vlS3dLf(Jjea)kI(b> z8|mg|{aKAllT-ZuKFtI}drPkO%QA2Nj{TGAb=~;dg+{g9xz^vLFDGj;*MCocU4OF$ z(+SZZpXX18CvNPo&}!AoMx!vx@UB_!M`e7cWI)yp<8%Eri>I9f_Q$s({f$e17jM#^ z6JM)f`u$z-`FrOk{n?MUuDjkhrN3w721esOC*g{|^KjRTOTlsJkFP81!CUWhgE#VL zHfOO;+vqmVSdEfl%pC2V;ni1KD%aqTDLI;Q?>&gV_{ue-(#Gk!6a4qfs*LZ5J1nk9 ze-a98XU&tzy?U!#4acK@y+YROu-w0V!ks<-KJjs1FeF55z%gX-+d&gha_iT@&x7+= z?+5iZ+LGLvy(2f4AJUiJ(HGa#`qCG!ygt2t6;1!DbN0)}*B37;OUKuB^Vj;tw}ZN} zrY}y4ph) zZ+U{`-}d3}`S6c@_$NO6st>RF@FgGi!ztb}>6w{_kEiF#?T*!Kq$jiaY(Bl)tmA6j zGnog-?%$W)d$;Jc&0Mi-)orVhvpR+pv!=*B)WO_b^-S}0sgT>huTv9MZ&=v)Ml~y< z<1*eC!mJhAq9Uw@EjrfOG7D5}ImC?eeA%ps7Nl0YX_h-3O!uV1oM;v78ur|=u}Y$4 zl?s5g~h3k#STL~m_;1J%8>!r>#jI| zUWkMyRH>q$B_J%C5lyV^40$-r&pqdfkvyi?*bV$uaMC1vG(Js1>5?KKo zcp6~jwg7F2g2zE*~FA(M7C1})9kyKaew{TfI=t@NXgiiY# zy03!*=@hlf5SKf|6LdNe8H6~@U?O}R4KGl-6OuN8?pdI~Sm=4MeDLlt%kMd;gCF98 zE&wfnf)iL!_!USDD!50@q{6F^zE8`nn%N%yBM^T*m{T*OVO~ED%Bz`l_%9yXt7gW- z{{VV}^Y*Ek-6FC8s9gYl4MKQ_whHkw#E`Dh!9D2Di30Vi70#Tm@v2nMFze9lL`K6A{@7KAZtWa8xk^rK%`ZEE%cd>CtL+YvS`##oR+Jv$2?H#rl#e zW&l-84C#wiLlv`P9E8SHpo-ZcRZM59nBQ_DE08KyfVBF5XB@_^bFX3D+hlptQD5_p zRXO{hQ07xgDjtqJ1uOp2C@8%_XIHO!uHJwL0*C=v^d}P+GV#UtZ=zQzzgU=b#&arTZ z_?>YjcOGQq?!u~&@Z&xFcQ2^Q$tTaqA82`%5e4aJu!9?KJiu9bHH^zCJ%J%958+| zvEcI1Ja`zGw=wjg8aT=(@mYyk^4RYLGn3;wI6_Yxk$4gurIpA_yc;|UoR)YyIJO{> zk{G^Gy25!;(%%n(5q9Xik{<+zeQ2k|J0u5l?0zQs=fRUOT;l**8I*)0ubqR?1D#vG z7ju7lamI(ap5AeUkThnpHd=BsgY(0M*?BIg}x kRQPUco3pJRGrmBLtyC4p)+=jsHXfjxGG3yavRM-U13O=AXaE2J diff --git a/42sh/obj/job_addprocess.o b/42sh/obj/job_addprocess.o deleted file mode 100644 index 23736aefd9a41c373f352a054438f6409bbfb36f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5048 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 diff --git a/42sh/obj/job_cmp_id.o b/42sh/obj/job_cmp_id.o deleted file mode 100644 index 0dd4403abe98f8d4f76581401ec3e06fafd03c00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3760 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 IuQ1N}FN~005C8xG diff --git a/42sh/obj/job_free.o b/42sh/obj/job_free.o deleted file mode 100644 index 36954c14496a07d96548a6514b4bd57d14533d30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3924 zcma)8TZ|M%6s_)=>FJ&KJ|K$-3@-SHu(JZ{Mtp!SIv^OMtQezdXM1{g8)s+6=^jMI zNP!(<5XM-Eh5l?qM&*VT^@us4|JTy^Rzh~!N4BQK?`+Y3R0FvG|Tdx?S3E! z`sQ`_Za$-j(vT8}$7SEj2*KE(>?8}DWtE+g=9uOA4QaBhp)G6gx-}dYEgWtN?K>4; zpvhjJCL_K8uTrz6xgGC2g%i#xb8|D>Iq^y(BMoO8_dhef5bq0xFPr}yI$d~P+$G=Nbxa=WEv{uutD=Rv&SzWy{()6grac zS9p148~`5c_9x_@I`cL>XWSZX;BE0pi1AP+Z`H3`m5A;8 z6{;TQs9^S}{Z5@HK7N-Rfs?_9X7IhBBdVSTaIw(`afmxX(;Jr{$$M-1z%1n9;^fc8 zUBBmxyXAowC!aW8oNOK`?rxG#fln28eVQvy9xG0MIz_K3dDl z$#2|v&!+q~r{TG^YJRYPpno8Lxm`iIFCQF$(!Xj&|5aBAuVELq)<%}wwW{B!RVd?F z9H-wFg<%h~3uBMeww6nURV%!45snJFJ5@jAmghd^2zHjwqbN0yBhm=HQmc;Tn^n&p zt2*Vpi&=mXzQx{?y;~ME*T*2#-STvdP{sJl6&NV_e#0GU`Y00L8m*MZ0(iLwF-F~n z=Ueqg&2~JxR9w%;Dw0+C0{IiQGABEY3Ag46+j1p}Zq2hm{V;ZEYZ8&nb;;Gq%ThO` zkS{TzE5rJ3T-&Q=s4+gJ#$2(!JD7v_b%}^%ZcHYTgJu?XAv(IXNG6#iq!5WThSzsf z8AK8%TVu$qRBJ58v2+U-V;M~&R(3HUuLVwy%OsOGGSwHO4uU#1Wg(@+GUg!KZ2^;g zcr&yrJ~U|e+y@6Ot7#E^?{;3qT9$tbpw%CeS`&R#-#h*qwa$I$MaulGe0KR}v?4MZ2~ zeP-fcXjf9ZMDNQb7C`c-_33@RB7P8qv8WM&+PiV>P-2$eh>F3D#?NCAe*F+U#Lq+%`9D&S5CM@Tt;$E_}>< zWe|P=b)+=ROx+NwX{csuU8rWD=2DwNH4C*jH4ODAs3Qk8pV|ho7srF3^uEE=GojiA zb&W{#E3cw=T+5sS&vwGMN2C*A_t9=@aSPnkauZ~6Ipax=bf7EVy|xG@FF|tTwrqjT zkaB60c!jwm69T+nT4&CsseSHgwCVU4^5Or}E>I60(Re9q!T^uqk5RH^V^qYZKd*eg z54h_^C+J(dXTJZOyTJJJX8*n4hI1>UKujl`mcyY)3KVACQmV-|n%cZs*WZL}&((xhq5M2)95#IqSfqW2; z;$_e~phKW)DTI5m+KNfXmYd9h|_V(lp}RtZfkKxJa)(8QEfCZ-on zOgV+cD}W}Ji}GSJ(!?YUv6R=&GhVD#da;O=7i*Lz?p4A6UslDDG0YCk2-;A<2r;9D zX{J4Pm(aH7v|K7~?on%84A1;=!kj*><_obllY3gfB^?w+aJ0Jk9-f+ZGLuHHaSf2x z_Ed{P(`yvms$FT8or1e^@S2$x?@_N{1%D@%lXsSbXuaro@3BVU-#^YfUOnGXP%?b@ z)n5b{qSHL_U|8~z4jkozflI~n13|sDP~eO!0^mW5WVM)?Ft^4GV?!)$+#c%!*EhuC z#yc?`qGs&U4SWK4Uk3tT&T9hmm$PsY*A3SOcB7#9rHU_99E|gfpB29dJWD{;lwYXQ iS5j!;^)t;Kn;pfU3ePV)73@3sn<4)&3I3A_r2ha@XD9jq diff --git a/42sh/obj/job_getprocess.o b/42sh/obj/job_getprocess.o deleted file mode 100644 index c92fdb89967d8637633773c47530ce6855e6b8a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4784 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 dZnYxJ0>o6PxS*UNEh(8aG;q{{qNn)93&I diff --git a/42sh/obj/job_getrank.o b/42sh/obj/job_getrank.o deleted file mode 100644 index 7dfe939a4a13bec2ef2b56428d382681bea2eb37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4388 zcmb7IYit}>6}~gOGyC-J`ccb?n{N*lpj>YG-@an4*^0&j=%_^rs5T$DwtNneBaC+ zv)-mnxYD`joNvzk_T0z0GumIg{kQ*wgirzk9V7^;Y3R}rv{jHrg74AZih2)@a}1jA zgHuqF1knt`DI9V<+w<=o*?;f-}5V?h1eGMM=t9X5k6mjY^+{5$oa3# z&*yth4!>SLt1?mLkXF7bHxTVPnZ=UK?<-h8xqVm7ub!_I3--JDI$GB2*_g-Q)L)fv zGH<#mw&v&a$?Xu==F8V=<$_VkPcprC&9_tLHzX5!?wa{|eATf7?gqE!cemtQC;9$x zoqTS7wY=HNXSeVL;!P{(nJw$*<>x$7yXt(uD*4KC)UDUahoW;STk{J1K!6T&CUEdH}%(n+|1#{3nLd9`F(MTDyO~9erDuSZk9rG0p{Wb zJ{7Jt9HhDV-1J;->hOY?zH2^tg!xY$zNjX@d2V`S{@BR;X(f4-xAmKMqQfwdkn1wc z%d>;-Z%r+VKdpY%o!rNwuIV2ffRov_C9`>>ut#MH+ zva`kwhbJUo$I&%>7h|_>!GpZx)UC0GgSvB!iE_Ru%GF9S?RMm!uUB)Yz|z?+DpNe*&fF48yK+mSQwtA+c6GXOi3;bex}JhtxIkS!j+@Z&Le2{L8QsAXU?9Uoie6 zyez$&)xL22SMd15>Ic-mRD3h67wGk=eLW(&3g!s}XltYEV16BDFc&=q#cTqbqPGKm z38sEi_&k&r)^-7j?nSo%KeQ_L22@X|BmQ^jBY;C)%;*Zdqx5cI4x3;-ORpO_h_>i) z*a1j*ZItU2rTaj5HB>09kvlPnE*FU@$zd3)v5Jwn0^TGax^5fXaPofNO~6eh^S+ye z+mp25uIJbk+;s8_a7XC2!yQaM?YkXthee8+h4$9$G;2huKNbA$60vp4sGOmybSLYR!IGz+82-i9G<%; zAL8mDiBIof9_}lJ+JEzVnD<=}d!_#do?Q1hLT4as&131ej>WaT^#8>0Wzr>ue0&uu zLWkDynTc{l!`xk*?;_S%7{a$N$Fe#*AkLSpHNTHO^Vof7j{NJ&vC^7X&vxy6@h_vP z>C@rgoqXZ7e{T(zQmOdCGY$2Y)UVC1-d8_+;rSmdtpCSLkA3)^fybv~Pw$ynqyOv^ z&gfWY?}>l@viCALd4jqj8zDoGyCGwc24ot-4dpJ(L4E^y1M)Vc4GE_qTOqq3_d^!I zhev{^yBiv<0+SHWf`nKfgjhBbIw_-g3?#(OV-(M+gjlwOSjo8j*m%MTapxt((?y6U zj^86_EPFz{2P7BkkPu5#MzMqm@r21JmL(w;jHKs@CBzz#QLH>dEJz8l3JG!bBt5Sr zLZ=`S;+;T<_lz9K8-oxp5(#l`gjgOj32qu8UJf$q{mx?uXN_kTBfK`}DN?LxJfv*O zqxT5qP)bR~Lt)N}`Q8Zm+7;3)Ey?ky%|z;p>L=UeXSOIIRu%JPP~J(jp;!1D5T)g- z1>YcMxxrU>wqe(^(#u*~2S2hBu^(v(0gyH12R~lHO`ksa83OXVC{tohd6BSDbIW!R zw);H;9JS_>dEsT-k>kA24;kQnWx&BmlqGn*7Dy^uFnUglHnbacM+;48QTfAk7$aa>R8z)kOC6v=l)~n{kM5q&q}>s>a|isF;2fEbvtwtfZu2~ pxk8TfA7jbJ^G+V$YL#NS;8ZJuUyJ_gdyZw}pM`3zhR-M={tHfGm&O19 diff --git a/42sh/obj/job_is_completed.o b/42sh/obj/job_is_completed.o deleted file mode 100644 index 52ebf04660f021f03cfe9efaa2ca44b5a771aca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5280 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 bIc>ZGdJZ4{f*%LEFV-q+0R%6D?HZ_V>H@++}yf zLQnY4cfQ~G&hLEZ+;hG;%Nzgs$0vpmN<^T7v_a|`sx$=UX2@lNpHW8RLB~msK?!Ye z3QCe7ifwzv{a(-x?44V8?YwG-tuwMgK2CeNLkPwO<1kfNY`ah#X^z^i*YF|R-g3|8 zyS^NDi;!oT8bBNL>8`LLdjd1$tJEAHXyyCuEN>ycV}>--dX`7Xmme8v6!&udv*Qc- z{w#;zC||i+s&Pmw-#LGigxDkX9acb`>J0V~)-~g6;d(n# zR|Au+miV07IM(Ue&Fa2#wP4%Zx6B;zoa9SOa1eYviUT-*@|(Bt702vS179~7VB53v z!ON0wNb>EHe9{y#A;!Wsb$H(@<*Luvx?U3ld_Nh?lXAU-pAjGT#dnDXfiU4qbj;T%>#Mxc{khj|^YVY3~r2*gBaz zP8rNiyq%kPRl2d`B03;LDYW0u9X<5ENIo#+lfXPqk9Xh!8CsrOau`A8j$RhY2YJ|E z+WIkSafz#h58MNmOD{}KO`(%3I==Pe+|geT+4+O-BTOsb81zuQLC_RmtAD;TD@K@^gALu?1CdZy05mU zkk77LYV zEss` zNqj!`h1jzAwyxW8{34oACA6&zKUwQ$nc89zNo{23$Sd4r^ zSncrL)QOtb zW6Q*ztI*HaFY0XhHru7@Nm8q&7V_yFn|NaWkvc__ow$*t>{ z*yup@1}t-)`4-e}t=Hm0xD0I(XZZtBIB97$(`HSXJ`b6S0{9%o-h z&GZQ4J~SuMX)HAMqWM=e^_)Rs#uHg(oB$eyn2R(j)c5-YAW;*^5%t4wRFbCt`56w=PL!zCrYyoB&N@5}0 zlB-d5i}saJdx)EgR)aQ`)FCRvAMq%AEJfc2FJmXFXW2L3JPWl;TWb9r+TWPv+`<=O z`CGVxoAxp+e|uM|nYi^PEPvB(<7d;KBH^>B{si3YHQ$38h_0|cgkFdf8-<&&K7o~? zwTgrhxMykg@hfz|;$+c&Y=$)l7AK2l)yx8GUT6(qXRLH+tyVLOr@w4;jhb05bkgg~ zQE68|rYrh7w2j+QSr}%fJIJbZ4g=`4!%FDiM6-*-^a5LC!6*It<{U^wDE!%C3GCp7 zf92wXkMIKSmUurj%gnK~TgT!@ZtDN>;duU3c9RT+0V+a=*6_Cq@`Z2X+CU?*2ou6L zImaa+d|Yr&WE(LT;+-h>Hq|Am;gPQSFHA1|=l8akdf#-q=Rf|h-_5^p-{Mz~J!k&@ zm0xskdF8t=J@ewh^&jc4-{H+Yeeq{&+s0D&oPXfo1BZ{rQt`d#PoH`1%DKM}r#^gm ztoPmMse?Cl6qh>bQwMvnNw+~ZLB0klK=wf%hCB^<9&!QlHslh7zxPRep<5yAAvwsm zAXUf_$P#WKyCRQG^LQF%_ zi}#8UubQN179_;9D7~1o2r-pOh#8s?kH4g6@*;Esm4uiv2r-LD=q;Fp=q+bt(jdev zBI%iO2r(5&h?#&8Q-g$fB?`0ti~JcQ$*dAy3+2FFLfM~EQgOpP z2`|pF0MhdTiKeE)pFy!Xk$On|QhRWTan#_e`VU}5`6$sY6ch}DC@t?vJPw^olMk$H z(`{s>l`XFw{M>BBz2D8+!QWT2Jb@!cw?0ZS6P}y>WBhFoMxl*ulCMb^ZNVt{tZnhc zmACy@W8mmd8@R}4APo5M@f5&8J`DCSl2o*4^qjUpH`AI?(z^ApX!GF0Ps&m)A*?tM^oFVS+Ll==}yh~Aszsun)NF!0l=W=R$Eh=s)fxI>oF5n);9+l ztNJ2S5|-SzA<%kO>ZMXIlp2bDy1WYdO4vyNVPSKIDe&Jnvuw!|x?`6Lc`uJmt&UcT gUaczZ5?=UtJeTlCrr?9zcE;;`pZe{qe>Z^Pzen`Z<^TWy diff --git a/42sh/obj/job_kill_all.o b/42sh/obj/job_kill_all.o deleted file mode 100644 index 85cac4ae77980a0613d2c28f767b7c46fe2019ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4180 zcma)8dyHIF89(>V+_^JzXJ=*~*5cB3V4<|M-C5d7H?qN9Y3mfWfdC6=(Ch5o*`2%0 z&J6e7=__a&+n8NSq)6}|6C(*hjm8jCjfwaGAEZ74Q4C@X@ehmzF|Ni)TMX;(cka3C z%ur}g@}2K-zVo}^Ip_P%JujU9`#Yu(T1=n=#X(I2T>*r48R#sH@6ooT!-12WgBIz) z6r>!DXto_x4h5kc>UZwB=g$A@k>o0Yc>L@$0MKcRi=$*wv+bG6bZgG`15cW4d-vTF zx9^RHMTGMz7ln3C#TRO_m#~o@;nfz(1>^I|^|^}wZoI=?`<1dnyte*=cnf7m zhS(ingr|-}TpX|5Y}P7vy}ZEi-nHH%D!wrlQ2L_rg?NqWd3nIy@qJI>U8V5$ULu~1 zuUU4w@&4F_H-CwE!Qtiw*ZYpbtEpZ8;w9pt=p^fhkv4C|3 zcB_8St^ktcTMLC)jr9eejgR8&`Pa3Qws5 z%dbWbK-y=TmOP&r^c)>CFwV?mPpX=I+!A%?n-3DrJ z`~<0E!R-$3BTto<{!%*jX5lGuhF&G(5A2uroGqOoQCuz^`|PsF9p8zOAEnS;_mk3z z{mZ2jsnXK^GZ4>gnTRhvAI_Hp`|=oBUfT28>(8#Ntdx%ZtnjIyPO!WRlaqJtFC3_N zzT2o5Mu$g+M+%#q8t#N`qa#p;cWxiPZnN+`r#Ro3-sUvwf!C-}w(oOmHM?A^4LhPZ z=h0BgB2)DB7HJpkMmoR*-SGzjf zZ^W|s#9+2p>q9!~!!Y(~UyEfe zi*xWx?-8-=zJ4mBD2ybkL8PvN?MBPOaC+4j*Oj&EYtT2d3W~8FP2-2MSKvdtFfm6A z%es-}2GY(hlKeGq%D|bY}SX8rU_}1+O_&n z#^fH~L2ZjZlo#<|a?g$aOh;Kkllne%S4q|L;DhAPrr#Zcpv^47) z2)_U&Ga9~cjYet@)TA{YsadFbs}!j@sB5j;p#Bz=%tI|$_d`5OwHNBB_4!EcgE}rU z{A7{Crq;t(SoWXj21Mo!uqoP;TI!SJTCPfF${9x}rnGnpr(z7CdkluuhZ0`_`;4*9 zd>mZv`37#^6VT*&6!f9E`AujJ=Uu_gJPl2r+?800`7$(lIzw2AFzRqS1ygE6>IYy( z65Dgf1lKEXZgNzIY@sb7W#`EsKg48|83sNqt(|je>Yj^RccmTwVm>GrY*k3~7x8x)n4HYJnC(JgM)1o&~)G`YY%>s0RTTKs!KtL7xDz zHZUYuENeh$ObwctGRnlPrisa}OsrCxShmW$#VV(X#i`(#(KNAClotz`Cf2tyJ*P~JPr-Ae z>BV$cCZ;S+%yKo6bxsq@UzvD!(R3W7g5WJe6Ym=3^?vziBG;I+n4y}wU5U}rn5Asm zk=uoKD6i!+X7VJw81Utwk++DmvJ&0SVj`RWf__s^SWiOig0C+ALkDib^ZGJ4UbXwD^bpq8+}YJ3L_*9S;*cUGSZn9}HJnP2n8Ks4Dfw zfD#YqsHabtC+g0YuZqx7JsO~3Kt>Syhlzw`p~Z5Vkxt)gT%P#0Va^)q#4ScXakG&e zGjxcl8kc?rppeu#j!LLY^opzESb@ vii6QF@w(z41kb?`HHvMj=OsHiU diff --git a/42sh/obj/job_notify_change.o b/42sh/obj/job_notify_change.o deleted file mode 100644 index 6db4d7e737d07f67e7fb94dd0921a57e260317c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4456 zcma)AZEPGz8J^wq-tPH6W1GmW>*QLuA!%ZtNkU__Zb;fBy0$?9Y3stC<5D`KYB-BKRNPLw)B_Jx0FtmcIgcdbC&+M#w zcTTBCdgq<@nRlLjcV^z%x%=fie}B&uLW>AgkUmJmK$V4{+yJ>s@B@n5A9S4K7?jWk zr=X+>qS&@yKH>-Mz!`8fNkdKf3F9m6;x7x1~BBjH{?ughDAYkaxx(&Z8I6^g}X`7qzVJHC+b zlHyn?U#(v8IHZ^FPA(wIITgi4IcY*nXM%Y|*LCA-7V6biYe`?1 zZ?53T5PRbb`P6c(fUnSKxMjOum}7X$-uIGO)vW(vg?valN!c6U1+_oI_kAF>w60;JXMG)S z4)5vP?fMh7ddar;?g|~LuPDB(0vq7tmV6ZZPpx?mUwPK9G_ktD0Nd_44`KnnBT(X; z;!~!;>(7R5>M-BjT3s^szV8mjw@C$aS-o%R1LEVnpi78&aKJJ6VTcQmueu0*jNOn= zK{^W`L0Nu8bb4LCJ(FK}J%4I(GJjfb@ce0!U)X(h;rQYU;;$T$Kb@57?95``c$L7y z?pO1tDO34{-{u!C25x7MzZs0ZBJCeCp8VN1z~ceZ@qoK_Urm3B`zwFyXOo}%sT{DA z*_YkB_mNL#50{&*npe+GO-xQqX4g9|j*RiCNf;AbH&1+QgJ?CK+(EB6?s#>->A7s% zbz1q=Rdh6JCEMpR z7n<0Ac4)$X%Vu;Ge7{*MwtXazZ&%zxRk&Wgnw1qfE460Jw;N5*DYxk2)>=O3rDEJ= z_$Y0+YEPC0tIh{1TN1YGty;BSE@jDF=XcGY^GbYlxj9$!TEekwG6vtF0*zyP5^!vZ zz;;915sm|oB~DCPQ$C$}OQu$%TrLS&2TTEg`Ei12a)Nns)Jw{Vn=QMpEho-tH=B4n z8*|u_sEQRQ{~@8R(r!x)8j(~cI+9wY4Pcw-695Oa9sQBio$z=(o58*fWEnm<9^cL^JcASsju?xZT_nUNDwNLroDZP)KZYToJ;LvT zme#b0e%@`%_DR%z`uWG0=-R4mpkLjZ^l9EzitB;A;8MK&cdR8Cni@ktWjI)2UK4!%(!y2J=i$0c#<+#(WRzSx8^rB=L73kxk|hd@rCGU2D7yWmwTH5OX7{*I=7BSg%73n**^$ z=+Conh!MR7%ck`a#&A1Y$7roa45HsWh_(i?)|hQ7NaRst7|OJwtk^*yKq`nuRl z&~p0Mb6S23OD@y~PRm7DCmG`H`dA|N8(4B_Hgb|u?2sXVQ{*4onMb$$6i_3LWC^g~ zdp`QcT$0;V?mg&y|~+y7c-R*6HL)__Yz`SC@&@>A?B!pn3#k(i;AAd6QPq31@V|5#G^+I;LUX6MKz&79)Z(A1G3E6>d@%?a2p)b|j-^5~g(yUX1r9 z$d$KAbM2ZMFT~DN=4t)jWROlmtcR~I{zwMx-Bc1aBW0*s&ou>C4aaTstDS4NnmJ|V zYFno6=tf#cdt3nIY;{q`$9CCW2M;5xu0s>EJkA1tw2^sB?LM^SMFu!BPErQ$Zp&BW zf_sN@2(A|}FcOOf-k?O%n$h2Hec8AvYGn>2b`=Qy7d`$6aVp-Cc&pJdQsEjl1jkz0i2j_!u<8yPNZm@W**v(0>~=#z%8X zuTy%B(onMhA4*R{r!gQbqiA%PVqcHVn{H=+vB&m$Z2ETktGIxw!rP=>@tSi5+$2i{ zzksV=z3P^Iua27~{!1u0hj3**WLF9`S4i(_*_Rh3X>?s`yGK;pg=R_E72GUw&#d4V NQZU|`Yw+eJ{s-rBl#T!Z diff --git a/42sh/obj/job_notify_new.o b/42sh/obj/job_notify_new.o deleted file mode 100644 index b1f5b6a485dc970a5db27c8771c3c825a016c3f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4568 zcmb7HYit}>6}~gOGduh6?)s6$A$78;owR{u?K*~7kQTed?FLd*O4AZ(HCd1Mm9BS} zomnStVj3k;6w9g95c;o_sHy-V0ikL|B?>AHP_-3MDMCC{L8#iu;ZdxjLQABY@0+>f z*xQtvt3CHT?z!Kbx%ZwsXMg>lzrPz2LJ0_Tpdjd34P6R^wi=Y7{yuF_)El@UeS965 zf|Qi=Ow-97aHIlens<(T;m#|%FP)GA@fgeYRv~oSg5ofl-%Qi8oqDNKkcMVFA7_Oe zFS;Q9Y$4PuqAQu^SZ=gYFaav{9d{4kam#|&*QIoci-b1Sga^|SNFT3UwOoJGT#9#m ziMJ4W!*yHSE%EU2vZJH*+yvL}>Ugh8gyrIuD)}m>G~*R{Akf~CQDnlNUdDcKU(l`^ zUp-qXaU77p0(T%o8$BG>`f<(yf`jx)UXyzi)tZ@UcW z<`0a|!>f+&b2qp-zDFfqkHq`RGV$E_YFVop@3|(t$CiobOxCXYz859lH|47TVwreI zVi&SGzLWBN`0razEZSL5Y}#L|I*#{r%tmE@sWN7oyLK#|aaQ7`r12r(@kpM;`ICFz zgqJIt`8syjo6vk8ye#pCB;HwxCsl!Ktmw<+e!i7U6&JDjeUlN-d#4O$PQLHg-X}h; zi+dMFy@?FI6Z8oDDL(^#4LGmU+d+#PAK}wt`*P&nnd#RvNB`EBc~F~#e`b2>?aa*7 z+cVoT)6bt3vxK0YnRy_IvAOAy*D^<^=0xJy07o9Y@w2YO$XsRyb4O+~Gb6JzwazOu zG2qX^YfUq7IUP>^vEljqd)7r_uRqpY+>q48%pXh=6 zW+k^jZHeC9HZXb%`>XrLvb_WSc2O+#p(-4cz3uj;F;S{GqE>)VD~*{BcRgFjaWs7u z<6HYNkah5}8ErVoCCAK{vjtJERthP%BSyYdw;i)quUa{qF6EN#;3+O+#5wp#ZrY{$ zbAsLC2TI)qY*g%0p^_U*5xK(8rZZk0O9)!^m0;d1)EMnbARdhpLI|Tp1mZi}sSF~`!aY!LibgRKVR}Xvd{JD) z7JN1Owk&{REUqYgP+~nEv<LNeSNAtpBC ziEOud%+&RlAG_z|Vu!b!xXTjzjtbwUpW&G`<7rGPU(;w_&^piOA};YIoAu1j(k> zt#)^c@DU7ZLH%{G8H#K5Ij~cpU`8kY8Bk!eu4Bqm5cPH8XTUT=;|A+p=za%1v^w-B zu+C7MaS{A>m_r>5>giB|Y_h?WRgo_0eC-v@3e$w{)1J7b0;VMW^nFMR;r<1px5 zq3?n9MK&2vgMSz1$Va#=&q8~G+GZ}x&!PQ<+7|B6d1&0rNE)#lzlFwqi1e!6*BGz( zS|47-c-7Z#P`i5;c0JOsc3&?v!fQW77yc34bVWM{S^pKfm#C*&iK?`{21DB$ekZg` z5ZgIT`zIx$Un^As{qVtsM2@41)9D35x<+TR?FTztC+U{%f#O4T{L^m5o|*kY5DT*k^kLAAAm)PwngC6MnC{;PJqP*? zXclxC6vt|>2l4#e3i={w9CR3T8pNH%PjG)&ZJ_Z!pov#RI|$7N(ZnIH6dH4uCLNue zct)C-@6wB>n_fKi(!{eu6AzCxF-vJ;@=6o$3z~S1ND~v6Cf+qNE+!34Oe7fuvxX+7 zqnya>r-^AOy^cVoi6>T?co)&c+e1!d!qLPGlqOzjG%=l|X-InUwvZ;?T=e3FBSR%D zO}tm67q2;*7@ssTw`t;b$%+5#B!_THdD=0C*~ diff --git a/42sh/obj/job_remove.o b/42sh/obj/job_remove.o deleted file mode 100644 index 5f68e0e7e8f8f04bd1ab2e6a0b9dc9014ef8034d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4512 zcmb7IYit}>6~43UnO%F=yX)8quAGLA5}PE{UN;Y7nz)Ti+-^!Dpd@{uR@3$D?CwPC zon>d7G;u7YO@-pRky;{t&>v7F2>C;Z5EYFC6wwx1N=pS2FI8794e~P;RThGB9VAct14@5~-*Hy@ z1U5JYB_qe_x@$h@N&`yQcaPt*`?4Lh-jogUF_t(8(!|=tVXC0$y5YDDt5%jkm@nXY zQuaTq1tWbOS!g1jqB${D)2-iF2jx+z@8#qcmIagnU)44|uP|Sf zFTAC^6>l;8=AwLsiHU}}kMD0`d;#CflIB|ZtXj$DkTBn?GQJCPzNgxK;=}kJ{4OYq z#@8s+%BFKA-wUA}`cA?pX{i_Gn=BY!h~fAGJ{g|4I$xn)ubO(TFv;+)nC~xSd|PEe zC$1Ww&u35U^*(SozKG1X)spWo*U0C^S1%Z0zJU;*mTY-*elzs`{P^4h^+o4gM{jY93>FzUL+1s0`*sIp32X5Fg(Q zx`ash8zzJAg`5URs^Kmn>gzN zyUuSpdJZn>V|1JwNB6m=@3~p8FF)t4u>4#nTtK{MK0i0}UVirX;PqJkw$8&x?}J(p zK?T5>{m)HXwS6+jvyUMn77&631;mei^R@E$K*VJq`%WSTiu320wA2Y`7 zCcAUzUAwaT%!Xsxwd}~y@X&B}jZwuOIXE&5V`$_0p&QqJcu2WD4#wxo`|Z8OLT=-F zry?$gEUcoiYAz8&xVontUzMze;~~JSmg5S?SDd$rAyVs(b4AYv2|Qv!ga%XbQn{O1|Fuv(;wtc+C^+guGyHh zY)2TnRjL-s!ZoNkK({@>&^-ipHLwj~81QI@V^j(aFK}*1WOC}JiRZBPnS4O$Quziz4k{fwn@s3SDGJ%sE5W`Q zWEnme|Svc)Nxc zDb;n6Rmt`)SmW&bWMoxFXwRV|_A075NaVWsSD|_%OWMBI+b@xJK?+4)9;uSP{Dk&3Dn%@-YTA4~gE8SOGL2 zPbkR&G@gOPlL{W3+#HylFyqNv0y70Ole|4J(=dCJpM&{4B%XnpP1e!;JIyYbBguyX za|z6CqLZNxu{)-uUV~1*g{nt%z7DmUcwABMrB*U!s+c!|m(F-Qs{9wn@=)F>Kph;` zKIR|guh+|TaPi+)_8AAM85@PBSV#Z;$vYdhtV(#)BL}8v2 zV&Y4PnMsICMnYUygt*is7t@*$vt4>|5fb96lo0co5Yt>j%yvRt1QKGp6XHUY^h`xU zOn&LbTqDFJmJk;eAttY!HglB_b69$PSnkA-7yPCeA&cCK$g!XV*`yr2Qz#E+luR-f ze;i(X?sCY;1@c_F6l`T;ES336G^$fP zgmP0(BPXq#wPEB_3lZmllhghC^8!!c$dcAu1D;ZK+@T8hW`6|QSQqjbh0*4Zkav!d zCsv2<9h|_&4EkhZ@nor$&FQVr%Ng?-cJv{T43^?1Riy=%qh` zM$m&lkoE~^%xLg9G~W5>W6%h1^bjF2ihi10Hrf{0X#hdNwVD0RvNB{3hHUz_`hOv0-yX8>57|O5xq7|eR&?C@ zidIA5#^e_8p=)Ja|LmIAU##Pw3Ag06kr?=Ep=!apoHKsA)G$rIWlYw2Me;l>M{iyx Gh4?@DdC-gi diff --git a/42sh/obj/job_update_id.o b/42sh/obj/job_update_id.o deleted file mode 100644 index a0818cdd0245eed26a78dcab8a9e78d4af8b4a22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3956 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 diff --git a/42sh/obj/job_wait.o b/42sh/obj/job_wait.o deleted file mode 100644 index 8eb10c592e85d5ec53430f86dd163a68fc151476..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3712 zcma)9YiJx*6uvW?*=!!&Y??l4D2r`;KxcQ8Mva>2M!UL&6r}bMgfi}9l1#dpS$AfW zv|%+gtz;VmEm#mltRPxJL{NXUe_9_f}FbI!gIoZtE22#|qX=3hBl#FQ=G<}#Wym&6or+j^uf~gu} z)tsh^l2y~iVFjS}ilS`W+rRVaiq$^u@EX_j1u9GKqz2N(%NZGa-HUg<#+tEjmx-53 zrwi&h#akPni)KpUc6l%yzXV_JUyg0|>B7->M&WXF{Ij8A1qBq}@ZhSnLX#mhTd6)R8E_N?$atcGiuLGTeJ+-EF zK_>u$c@|VX=oLh~)mASpIp3Wu|C*e+8cWVgUjd_Bx|uAWzf5jtshr9A2Mf@(BEs^L;t68r*ThT?>mv+_MW9 z$@${7Gn9TgaoKi&a}>7a#ElyNQS!GxKb5%3iA!^(8*{~LwqfTV@!9K$Z+6GUmLoC% z-4Ht$;*0o5FkKAFlB)Cw{!rgDUXq%_VLpXTFT>`(jGd$4gTO)Lf~ftJ4fmrHx!^DxE8q zI^?a{Db>i7MvZiMBBfcj(8$a}CJL3DF?6e7? z?$l2$H9Rn|XGeHkEts02hkGKiNGyDRCWr5U+!KQk>F$bjKJb6>Mt7U=jt);4quErn zyUQG5ZZ=HQEv97|f+bQcx|pc~I)>tku-Mv#1=C7dMUx4wLPxMo@&!Zw4Z&7nB~FnT zfpVn~Z}bHpZF;QfzUJ+1Pv8XmBqnmz_BMRgx@$yfGxG%>Z)(DY^siyt+Z^(QGbmyoMH9NFn2s|Fk1pt$W|z$1=H zjW4OZzV;2S!e7d!4hBSY4QWu*5zxteOoHBNniLn+iPmD%vrR>@Bjo@3No(&XhyNUe zZa?TH&~XqIf$S+?>Zur13{p|e)_^dm5~QL6aTV2xR8&5$s;(2XHM!O!M#`1+H2C%r zLd|gV5)STU!emGYHP;7@!HQyQ2Tk81l!XO%`&oZ5^osb@3b&WH!&YR+U?~WH2Up-J z&^tha=Z3Rr(JVwYJ(DYD)u^_$=b>7SdBD6w5mos2-@Q-h4uE#FkrAqTWsd4QcM5vi zG1gEyyS^4d5*q`XrPbo5Hp%brmDYbC$wN|mujD@@`TWC@7>G&%F+z)%B+=g|Z6wQ0 zux#wbnY|#b_aBo2&UCFatsjKpFOn}1mm0{k9-cmUioSz^OGhQ4C^n!PuTmu#lS_CY zp4BfpT-Lap21hOB0dV}ueO%w^aCr-t8^Dp3d<}^qQ~3vQ^nUpQIF{ry;DrC7!{v9m z{1!Ojm%+*IAlK8OgT1VAc?US*((gxlPbWCp-^17G$dNsrczVyn&bmL!`MsRe*9Lxg zrNgP)kPKoi^xz`~UL~@yM^1R;y&jq3sP?D0t7WFRM+T>&U}RL&RK`+;{rCsTZnMge urQ}oAh@u--Rx2=)vw8eOW(_g>J47AZ#?VZKe(L2^OI_5MmXXgxX8!_$IZSc@ diff --git a/42sh/obj/launch_process.o b/42sh/obj/launch_process.o deleted file mode 100644 index 3fdab7199aaeff0598b16ae18ec5ccb9fafb79e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6328 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 diff --git a/42sh/obj/lexer_backslash.o b/42sh/obj/lexer_backslash.o deleted file mode 100644 index 0e3a6241467419b8f59ac6b329d0063e2816a295..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3540 zcmb7GYitx%6uvXFvybj}TiRMd9&Q367}_mR8ln~1(#0)orSyR$V#e)u+AdvYo1NWK z2^bQLu|gs~qlt+c#l%E^sqqyJ28|{fH9^B4<0C#ojK)f0f|7{eH*<%!3ku%sIo~~J z&i(GW_nw)%pZ)dg-vJ>MO+Z0>kZ~O<20>c@IZNliwC6CG?I_2fc{bgY8amMoqhwB& z+`en~CwKPG*j{g!?2wPswpI(F(&rNg30^adA#<=iV%Vjk<1&oS+Y`N;y~o1i8Rw$V zev$dPmZKe7&-VE8g{lj zkLOLp%Isl!7p?aynP0oi=h$WQbNLE`yPX5B%x}BoTPFFwyFxxEzwu1AlCNCBr&rBv zoa|NXpPOIl?(s{m_esh3l-$6TSICE#&Y`T#Z=K)G!dveL;mhThE$qQMOGeq+o3n-t zBi%WB#9fjvCY{sZ<2Pjp^(RxVSg$#13>R^_?f}D>`#m@)`8Ggjuw61uM3`xuv-!wj!IyXP{|) z3ykL0HO;G63cHw%=gmp8=xSpylO4138GE!jE8+t-hQ~+t7IqJ1;;n1!QDGVgwo93k zDLRvz69egfV7jYY^d)=5?b~`g#cc!K9m!sCYi}~qFVe}rKDV2=t<$lH+XuGwCq<_V z9f?g_`_hTNl-QBz6@5L)Oi-2z;+>9uu3K#Ni^)-K2uN` zC00tNh!S?3u=53LBv!WU+=yik#YkxJrsBnt9nBO)sW4_*;CIoM$d`&vg2Uh_jvmUC zGR|B=nWtPAt=F|^t$$&3o>GUJP<@IP4Toq3>Tu6iN-t#i!4GK}634udFIBNz~B1h^DJRMpR#DO`=%u6mNMM?FWJTlpCC zaY`}BY84T&%CS&I5((Z#s@?&^r>xS3>D4SKMdO98YLj$m2cUi0z0kV$0JL9w5IUee z0UgwyfevXeKv!umLx;83p(EPc(AC}zH8Y#C;{+b4HOiL&MOPo1JmuJ5LBkqvV(vA! zLi^Q+M%!r3>*Fc{CmG=jeg_Et1Qq%nio>)8Rebs9YjxqDfy)rBHKEVF|%hMtAFoe%2*WYdE0%);inYNz1I;-+AkSMyu_zhEW0p~@47!-BoRPG2u>xciUpl&) zA>2hYRvKL_DH-)&=NG`vbFZDTGfKYJB%0H_V^#L`3T3iZsf`4JN99b55P8?1Bs+gz zju#>kt-Vj(RP7d_5Z@q16%Ruz%DHGYw8A+cO3upW%R~5gbK!0g@v>cvOMg7Kc75Ai zkA1ftcRsN;E^1yz&7)+hxCC$`q0n#%xKG^y=%X^_Hy#Ez&!>veg*#cRQS?aFA9~oo zMXztygYCNN->OGp)%eSLBT(G}IHfN_H?~Eug5xFCj|GWdcR@{UK=3s^>e~Jz5|>L{ wA`!r}{m)87U(`^^RtKDAifb!u!OPVw&bs!DVR;|%UUP3G1OFdQYlxKp06T#HSpWb4 diff --git a/42sh/obj/lexer_default.o b/42sh/obj/lexer_default.o deleted file mode 100644 index fce1b2678fe968e3381d80c6e2c1005cca73272b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4000 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 diff --git a/42sh/obj/lexer_great.o b/42sh/obj/lexer_great.o deleted file mode 100644 index 6b6d3d0c60b17c88564460144f26eb914f1536ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3872 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 W$M@6IEc|`9or2(dZ&%K}#Qz7>+Cmio diff --git a/42sh/obj/lexer_less.o b/42sh/obj/lexer_less.o deleted file mode 100644 index 55ca67fab76fe3232c02d08a5071fe50275f13d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3864 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 ABme*a diff --git a/42sh/obj/lexer_sep.o b/42sh/obj/lexer_sep.o deleted file mode 100644 index 0fc8b499c9e038ec6695c958f3853a64c4db740a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4008 zcmb7GeQX>@6`$R`+1vZ@-Pul4r%B5}5|c)??~(>&k&EkdeChgfX^rhmBR;gboY(f1 z%bvMiCuvD4(`zdZS0ZhJKLGLZ2SSK~K%!DysXzhILM4dASA-Bs{{S4Rh(HAjZ58u- zyR+BxC81%Yd0+G1Z{EzCncZK#@wcl%#w3M-pa;+wI7kv5Z4>$xGTxvWA#dO;#i02* zFd6kY8PN>GF;6+3?CI0FBhzo|zI29?KqEYw_Hv9d$_>gAF~1qcjCpKv&aj=jYchh)|_cyi+87}r$~>jgng;SuZwrQ zRCZJB%+JRY>D>fgXqqR3KTi98ZUm(HqTW1o;S%k!w^myA1&9}R{rq{_VWf-cTIu@hZv0Gg z6Is4T|Kwk(40>aYWt%UL#dAL%FJIB6tJs?6FWePlbCz>&>5ZSJKl+m_Jvqrj;qam4 z3A1ijYF2V+Fg=(~?kHFBP7VyEp$zWXJ-F*mX4lK9s(H$+d(^Pag~2jQ6>S8j=1$fg zoGGRD?6&8bX~4~PN{-3KatE@-!Zdhc{1BVUO|S>IHGL#0ZSPm;yZHGBVwE|{) ztX#7k6GMU{ZV04@4_)7Q27^kfF&Dul6g^XNO72`t>Xx?0dbtuysGDQmQV+@~2P7pHiF_ck7nN3aFeSDH zw=*yZ*B)skti)*Kz0vXBd+ zL{UzH29!rYx$+pOsx(1^%G02l@&(Y4@>S5V@(s|4@;%U~@*HTF|Ji1(e;MiU3mA~& z(r>{eE9p8G(t0e2omKkWobqOlDo`Nnlbb>s5u(! z2@*2baHprTIz;!SCGLN~Jevv&W3PSthefI%?Hk#b(W$k^lHM7MM|17}@u7I?8wd=I zUVe$G;2dSdVRUuI2$xP5alE1M@MQWpk&POCZ=5G9w?B8W|L?ypZ`l0IKhJMo;i*?% zIQ_miZ@b&NJ-zg)$d#A(Jd%i>_Ml~c8)kv7=WRQsvag(S~(aA)W6<%&pVWKJv6CDKdqO(CCQZ%=C z;8btnMTe5SsLaBPP6nAMS1}`%n@n^9gjW$NnFi5m7ttsmGLg6N`d{@6V&`eE-B_21 z8%-GNnqN`r;YlW)N=S)lP&+Fo*#ggrD}=MQ=D!Fm8%sPP@9*-?A5I*6W%eXICF#vr z7pO#Ypi332TwR>O-(Kre!cvQNJtgd^%H2cnUvIG=vQzHsYBTS-ADkzo*2|9%5Kb3f ze$Vc?LdJ0v4?7gvv4G4%-YW-1iAy{f{ufu(e4cly^E|5N`GyP+Ww@pumQ z=Xf9FWQOBX+5pA|KI`eKTPa-3exctXI2diU`bEL%_bCp8 r-$-mz+13u7UWfK^X3XO2Y&({Dl6hZGqheL?A#N4Z^>Dwh^qu}Ma<_Zm diff --git a/42sh/obj/lexer_special.o b/42sh/obj/lexer_special.o deleted file mode 100644 index 497c3be6c61cd53d45b2b736b6d33cc78efcb393..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3920 zcma)9Z)_aJ6@PnsySMkpcNaUP2?=mgLP#p?Gl@YKnBYr%VQuWh^`Fon&~iR+?1RhR z^>*!qe-({O#bJ<)O5qEFFMI+?;=EsN?@QcsH%ZwKxi94D{TCM7LNJ@OFRcH(1A%z zDK?^6mS-RJ{JyVGwEGM_B~TvZn2+xf#p#YQkh$19#@e z_6EZg;8Z2vYx;$upc4u@ECal9r6|m;cuP&**dC*Cw&*u`1bBt1shT~{_|5SJcrQwr z%f%}>hbla!6)!6`iRicTd;ciodjYwS=R3siTCn-?Jao!yi7drf$Al{_kM}@yxhQZmx+f%Cm>tni}2w@3%>Wcgs(U7mi!hghw+`B zHRl{DIn$OkJka1v-4ZV&jc)>vOY*O%KN)fho;_>f6>|}S%zFMbwA1E7 zFUI(`4aOGUOk;5Q3@`Z_on~=@zo7p1g*o+8!VK(Xv#w(zmT3SzoBD&X@XfZ=W4sY! zkyAvtSI*>p-5=lHJPzM8na1&ZQ;+c`1@kc`LK5tTzr&1g964>)b4CyVN4_|6)?7HL znDtX;{cS(Wg+FKR`BRQ>h0O5qfsxF-U2{tnC)3;2-PN7hRxINx>+J1@($%x0>xS** z){5D(eblb`+;XdSu~aB`6)8LEVsduoNaeoiLbhjzJ4?0&SJx|eHVx$W<|c zXgohkckUk>pna1gyYpjo`&d3VLBsj+alf0}Hy|{YKbhP=k*5J)?9T1EV|+L_Zqk9= z7>$qS_YCHSNdy#xLM6weLfQ4mv&tn1*B8Z#R}gCv$EB=Mu1$7m zYBH^FOs-MdQP-icq9)_T&RddIG#Hcx5lHrW`nlflx~M7(&rPPal0(=%0f_t8VAmQGz{9n*^vUWvi zvk~8d-Y9G9LYvc+i0(rF96YqEql4&%K;gS1oY{zBFt%|Q_dCIK#W(~J{TWyr6 z)$Avp{RL<9B#7;c!lQXEn_B0dM{C4i&4=eRtz}0vzP1(8AvGiwr73hG#^qXL8HVI2 zxz8^POK$vFcu$tDI=;O1t9OfQH~#uRf7^IM%f9vdhi^Q0n`^YHI5=Pl5OpnrqH_}CwTehj)5#JMYi=0SB3ryhd17S@5#IEQTF)JhXq z2AepcI9J>_>1^WCkX|CGFmaZpi3@?fxHk9|L=(w_SsSCurh{l!1CN4Ya_5bo0!Ortui@5>IFn|ven1l?HsysMG%F(ovPDG3) zxy~kdEUhrq`SWr6Sv{sj zhTw9m7Khf}rx{|ZK#uomdY`5OBE_B_+ztx2bf1Q?RR_|#k;R%rT5?F+fc4g+drhBq z?U1&8NQ)tyS3){=c%9gD>a6-3-N_|`&+mN3*Yzi*+$!bOQbO={>Mu&kzjjhE1dY25 nDqYv2^Ci$YPSznj%dY3xN63FRt&&s13*3}2;Uykdex&~gDFIWt diff --git a/42sh/obj/lexer_var.o b/42sh/obj/lexer_var.o deleted file mode 100644 index 0668ed3e08042ba723fdc1f1ed562bca8f86a402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3948 zcma)9U2GiH6}~gGGyCh^^$)?21eQ8LsIb>f(#UGv)SGz2+H8Jmdqb!a4V(4YyXj`u z-57O8@V@_^Jn&;k-vv_OzrM38tW5=i9%RgtPzrYZupeTayQ`+YNa z67Le4T=|@H&$;J*_uM(>-n;(O=bwDx7edhl7{~`&(7_TQw3|Q|Y5a=zTEHE6f^*P3 z9hia?qY=$C>()};?YsI+`tZyZ-RrH$4)M5bHtOO)IqmsSn&zx^tTAua>Q%>Vn&bDS zruJTT@o*a46xx#E%5_{_*T0Nct`r<|C*ILEZy`S6=Gt4EhZkS|*s-d$$avf1^YDHl zF|HS{WY1MNr4w&euKowP-?K6=XYl=G`mP#ZHE+*bwJ+nH>&W^3Q2S<~T@~*{zTkw| z8J~wI!xPuW%P%aHEz{1QV0d5J@0&8dQ5n{OYsTl|RgN8Z65JWzC5g91;t@3~S+ZwMGdq68Rfw(fJS3#?Rp9YXc@Fg_L+-${isoDu*>xwFX8V1Rk$7Vg??Z_v zRS_1V==CYR^Hwg|4r1qiACq|7Wib6+?(FBkB0heXI94c$Ef#%!J-IrOuC}KbA2Ff`Hs`bbP$KFhTm}#X~PLE*p2Cm@^oKLSp6(8U4 z8ds$EN5naE+j>t-K{$<-R_-I|wEFRYbRc%@+^`#h^lPR+SlP0+w$@Cqw$iJa<+p~9 z{xQYVoycYn?Mp0L)mo`yCq{;bhlUed3uRnMgCoOGhIVWl`o>+NRxKpU){<3qxw)9H z4i!W)SHr~Q{K?Ak*?e-xwpvkGCfsWEeBBb`>Ak63b_Oy#u}@5=4~qK^OpS~ExqZ9S zQ{tYfbZSOq)6>&#H?@D<(I~%{J1~!8HZ`3Qhf-5w`e1s`L@FzsU>Jrd z*>#aG*Xp8fmP-&dR}?CC-NKNRX07y)CCJP=D>Yxm5ps;s%N2V*(XeZ!dE1&z5YXmJ z$%m~_#1i$&4=fw_uB=JPLro)vgWxdEp3T?u&RT%rmq29RM^UUQN}`Alp}XWCVIb%1E}jlm8OYaoP!;0s(%Y+ z?+S+j6o?5r1UEpq5JH4{*R2%pg6~8x!AEewBF@i*bBqUdg!w!^A|mdlK-=vKhdZT( zo|*&mDR*lRKnkr0rf4>}s_`d*rkw=$X{W$-?F_h~HNpMbPrw7()8IkvS@4kdOYpGv z5_m*=1-#39GKKI~Qx3g>0X3%l6++R~Cl}sz^nZXuE8fP~V>xg`ee!{?Q|r#V+L2jm zJ--DP{`2(r1wMrc{0A(!2KF9EyD9W%h<>dn{1?b=@Yed&0TKQ?G~Qa;4eCH3ya~O7 z)HbLCaS;jbLjT|J&~FJ&p!+$xz9aq+y8b|b*n#h}e><3=1m+-uKLi^FDSJaB5dF%o z@EGKCG>vgZ&frdz6jwCSb2h!3D+XVHn&x1SKMSD;fgqN)(OL zT$}sm4F3Mj923hAN_)%kXrD_{=Um(%YwPi^<-;4E)JI1&K1T{JZw(i-4;MG_*f_?r zBVm#C;q?m`jI*>U6>`CJfFmA zYhKcoho*$G6j$OAf8YtZ&?b2P{Gyvy?|h3?H2!0CPnTPwLL}jm@o+Fe)l zQIYbMfa1gQK2-$W8xo2ZQ}jqEuwM@wlX~x{9vIbC<6b=qO*a~P_iK7Ty8cPscwUbi zzt%Nq0b^PBLmH!cpHZaAxL?2Zbv*`K*J0h5^UV5<7}yN!*CzGwsIDD`%NZCab#)Rx z%lggehM+yFE5>)!AU=?IhY<=f_#z~t9DEiMhiQ-p99tP&l=@Lf`lTW983upmO2hfu zxTo%r`YlpI(9d{AN?r^x7`(>rI#t}&q3`U_aZk1R-`JrGbFR*REDOb|;Nxjkowwe7 nc};6+A&=j`eEsR?Jj;CE&3VgtYT@lZywV^4cUbl;mJt5~WSU#P diff --git a/42sh/obj/lexer_word.o b/42sh/obj/lexer_word.o deleted file mode 100644 index 1fe43cd13bf29b051fd5add5e442074ecb9cd5ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3916 zcma)9eQX@X6`$R`*}L@@xU388$X6;(Ns^p9nTj$ z7u)>{@RWPv@_70A`LbiX`Qvo&Q|oDqhwK{v}oZUZe1yxI#S7 zzxjNj9k0I)@5~kA)o-6)b-mLH?{{hgSFR8bht7j+_ph6W6D3&hPh-B^MBCz9s2s;S z>vqFES#pcEJv!86D+Ux^N-56*k16>)@=v+khUd)LGgU;_A7I<9_rbKn+pF+a6rK`= zCB$6NCJ)YAx#W6??d$!q!pkaWws-oY&whq~+?OOxEPtcv{Cd<^)OkwcVq@;X4{-#w zxo`?rbtId+F58~WE&emN@OEEr@virBi;b1sQscec(r*418_STEb1#@;uMoMVyH-{R zx0ron;hac(pWZ&D8`>8}xI=^rQPNR64Qj5AO2-pW{CGo*i1rE&M^tExxpv{d+LkQuab_ z;Y{DR{*>W?PmPXF9ZH>WsDiN&+lu*g|IXT+aBSGs>iN1OhO!4TlcN*hqr->9c=m|6^_Hi@ zRCwNaeu$D=7x{9nF6wr<1XlA|q2ksZbSZAvN_RMd#I7@a^HrQHPYJnPac5Hvw^o{U zonnfBE}u`nc7?foRn#lraa`d0yrwu$I+bJ|f=4*In6Kx(xd6effM>z3Xlt~u#Ji;t zPnsL!YqTz8t{&2ixMkg7-H7xywhJS^3CAVW3)3!bZ-)_Q&$ifb_t$YMr4+hS4R_%K}g&A!ra?2j)Wv(b3&Blhp~^;ckKt;MB#uZ->+LhiN4uJX0bjc95a$ z_nAk7=U$(J7}9nad8&;Ph-UD?)D6BOhH(lsWPA@)8ux*k#si>X;}Ot^@fc{-coMY3 zcnZ`qehnHko(Am<-cccf*|e$C=+G0|KfpApKRo{zPyQDuq`9s1JuwMt>JNW=2cOp~$;nkq zThKZ}X`Q|`DPqw*XnzO`xg|P`<^?oEN5e5R!;uKFBj03u8;Gez=t=auAcWTrbld>8 zUfW~s1OFLSdpYA#w73#2!x^~>Z_)cWWAs-L53;i>d>BkdqP>`X$r=*0EHzkG+V}jDI;BUi++TX^6tRNy8VWAtd5!3F5J^ zk7>vL5GpTBJ|Pj*D5`ID@giS`XJz`&zg@oe-E(LA@2)>s+T7jq+Rj%CYd7k@tXBH& zx!+30PW+~jdi2gm-hXA|RlD5HzrXWq=g(l=-%yz<|3yt=(M*@!sEir6yMlTz>Z7Pn zp?dLwEd#a=9EG8UBp7j}V)&?HL~-0$m`YSJx0KbCQZY_k9||*#R$RLp=tU4B(^L&) zuF{Ip=Tm~hkWh_`mfn9xoowPY+Dc}UH%36}St^CKD@ZIOv5f1vO04E{D`V5^HC!cx=D$2&na z&Vj0x+(Nlg#8=y;M@gg`wQ5@F)1_SlyIVE2+iPj>md2gry&JuAMEc|j!Bd9h!xQ3n z__k;x8`TQ|A%yuux`_I>BLpL%$ymon(lSS6_n?dnO5MC!#vxs8He>?4b6T1+@{8uI z+zjcE_4+y>oV N*T(+}$1QTY{{u2+SN;G1 diff --git a/42sh/obj/line_return_toolz.o b/42sh/obj/line_return_toolz.o deleted file mode 100644 index ed542b13be4563e24d6b86119369c3c73f3b3964..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5768 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 diff --git a/42sh/obj/mark_job_as_running.o b/42sh/obj/mark_job_as_running.o deleted file mode 100644 index c4363f82a2c9780526f50da07d6d80e227034513..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4432 zcmb7HYit}>6}~gOGduhA?%GM+rcO85NgYVM&I4*eDGtPC8-i3q(}b#FSdZ81N!Po} z&aCT{R82@!>Kag6Qwdar`lEsf@eomgN~j2tN;IGXBH{-RK?;4OpaxS!aT_V-`)2NJ z?5#t?)t-AE_uTKE`#5**{_4$FFGhq=LIM>i4619Wav+qeK?^iqrj+7-!$a(Y66nAb zqz)QUOw%n*yT0t}w~g$-?UEiyvr-`5vSGvGNZ>@eVKZ79wFR?d{3SJc9U&qoa+|6yseUUx4=)33H`* zc6GeQF70@qw~Af$5ZmW##C-1q@&JBW&Np|N__!`e9UX-gQ;M95SZUrqZ z93nX9OYK)8?=8%{SeUtYp)gCjFAaIVaO~cB(Q*6^^e@bg%ok=wVP@nUM9^@5VLb;c z99w|P2HyqtLVw}t^Y<+*E*54Wdag8`=A|l402&7V$owmhEy8bh1Opa~!m;Ns!ofIj zY6lZAw|n>PAI(jb8jfA7=7t6a2L^NfRt2}l=Al6-1KYO_Y}qKBhLt~98{KTxs&1oJ z$xjv=cbPDlMaOJ3t5v&N9}mv0{GvR%b%2;3y6Xmwkof)%KXMtFEY* zA=K?L)8$?l8#sh!prU=-Rx}h{w_%SqU1X4Jj#r9hQK?nSIjTA0>EvEhx*5?@LH=kqS#Q2z9MOABJ3EZOFbcB*o)~7nPP%5pjNoABQj+Ht9V^$fCg;MX0 zzb}4$;sdyMLYh#e;g(K(UbZh&wGKh6z8cK$g_l655=zD6gb>0=icsp7PAWr4u4o_B zo8ob_#F&)vmM@+FiI%TM-((9EZ7D_JKppEa&<*IFCQv+n6U59aG+mESvzix7=LV07 zeM9}D`A4l~W3fDxAf_+NuF+K-=2Bco6_6p;RkbX}sr}l=8laMY@Tc`FK#%~}I zS$&7vn>MyUa;WvHz1<@EAR4u>{vy~M#kKl8*jGT|f=>JspwK2=N0+A|>eoe|0n-eP z8?5)BItx8=b>wBR?nu@+4}L4mkuC=II<${bTg6Z|L8?+)jZj2PzY}r@WUST8U@@w9 zMy~;j7#gwTL#PVTxRMx#@DeDRP=K2trl%&M8i`K?Y6@yPQ4G`$sND%0>T95A8fq@_ zAjEDgZZrdRDDhaJW}yy?BqJ$+q7fx^5xgS<-!74ifid`~p+vcYhLS!?7V&z_u_dZ# z8{wsINA)cj^q$BMzy@O*jh}#j8|K)%xGc{?J4tO5m*qKVKc=>sJM;%=+{@SiVmJN_ zjr$PGtG(A6F9g~kCSv?8(6*?(eXU)OZB={wg+_Sohp3{b;HE3uDaiUSQJtZl%Mew` zz5qk^d{7DP6^Nberu~Z&QLr2z-@z5}zDwl6^TD_IkBb9ec;>In2k(%B4}e&f_NCt5 z7hjLX|HlUjDprHK2!_IUf+BQq4WB2r`f=h@<^6}?Q-IbaC22YObUHEhr2gCo-9N=1J$&k}zMp^p?1q2rd-C{y9ynqA?(uK@;*Hav{@D{xAAa|R z!6OgEAK5+Lb5*9ap{cG`Cx&j zKr^7Pg1!s-Dd@MLbD#^L6jpm3i09|SpgTa5pd+9;5O)$k!Tsq2M>z_jiC07?2!%HV zO}sj|QYg$>nwZA2BNLk@=DYOb>86RNUYdATXyW0KCT1y3OkQc?eL)ki5ou!L(!@-W zaZ#j+i6n!VlP0F4?8xk=7t>IB@sgs6Csvwx7tzFPPIhF%(Zmdtra9@wbdn~XV|wxO zkS5+-H1Wcbp@tyR#A`-+ot0j^_oRurO)qYj?D)SHF0WCFL_;@H$k*tMF8m3#lY(g=2t}wzn2u zM^>fDhey8YH1bl*+uMfTv)tkwYIA`hZ^}O$E4;(-V8d{H#K~9Pzyv>@eh~H;M0qs}3XhCDfs4vDp1uQs1Q+yEIk*h!**d zmV&0;s70W~AgSV|0V0|;Et bOU{=w^|g|NdHS1@vrh-BpqMMH7~1{|2W+3j diff --git a/42sh/obj/move_to_line.o b/42sh/obj/move_to_line.o deleted file mode 100644 index dcadb73ad9997315af1bc166185e6dafa03d0e08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4976 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 diff --git a/42sh/obj/parse_dgreat.o b/42sh/obj/parse_dgreat.o deleted file mode 100644 index aa3d9954727d5c7b74c1e1ecab202ef8eb06ca26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4616 zcmb7IeQX>@6`#HH?%ny4^ZDD&r(5S!O?*z`w1L`1^t@+%X@7DGu=RLE# zm#-#iB#V!e5lV&Hs{a%eK@e0F2|`d+T7?pnh9U?;Livv%C`v^G0ir6RRn6}=J8Pe> zDG4LLdGmhr=FOYg_h#n&+y7kuFd~E&7N|fqph+E7I|$_-&@F-=Q?|zaj#C_i63DPA zNOc5JOw+Rtdw$!OAMYQ2d`=Epo9P4!?Qz;)CxwU+s1Ya0f?}FEYos)0x}GB;)7`;&*i)ZF+}U1cam47|Tp`YH-Ki^()WWW5t)&6Cby%oyd zzwgqX^lvhgt+w}-DtoO9l;Js6wST^U-jT`MuJ@g&}5r68NSJ|`1%~1zm*B@Y- z^Us5m%HB3*FNuRhg}6lUdB#s?!TO#R?@blkGu&4 zB+@Izc}=9JZdI9h(KmsChojffhN0tE%8x|BFzo37>-D=9`V6j>w_}3-Yk_am8?lu0 z>GDMY=an6KSEQ%anB#N0dodLHZz#R~8}x7LJW%e$MG0exoU7dbv+4d1(o+`(KmUt9 z9u@6-_B`=u`$5Zb^F_OTOJ`SSSNoc50q5KLEnN^gyEk@jSSws7o0`lxuI2d5%#Ar# z#_P7HFl`DKbJ{$Z*<3nR8$%wZ+jx+dcreDJjb$xt9ahCCPcPqdzS5)ZvH5G zP?;X@l#GL9ks#zk(H?6r*=~N!wsP$>SFlDs;pE50J>hy8hqeoOOyT-W85K6K&H`|| zn6sb*FJ#M|Z868uA(@;;R-7W2@iP7p*(z~}Y&ljg@1V!$uHv@H7K*MV4i%joIwdRl zEIXcY#Ar^qymLuj@c`#69b~WP4>YgX+D?~W)P&|%oGwK8tA}wIP2_d45S~wAp(;i+6 z3!%HKk-`?_ZY>i%-ddp`UPm(fhf$QtA{K~sWGFj*ChOn@F?(zUfcC_vp`g`ir^&*h zXD0Vc`Fp4#jbD(`eJ~Aa-`lfNP3W27cPP~t(FbYp5V+RhVg^X*QSzb94AD8UFgV)qXy<8Ee@Ca$7`+A7W^9Uu0DYSZo4J4`Xq}_<02Ux3KSVP^u~koi z>Cwo~!R{r}9KRndX{?L!liVcKNeebwHnz`5QF0-TQ0jstA~O)TQne}iFj&%98QTqh znl7!T{-c4kCe%?AdkoS>j$SLh=|yuGkkJx1!J@`;sUhv(%h3md(f4sSV+{KGC6xJ~p80J3wMF0g%gqfpe^6Zd>>n;He??EdwP=&Q z^wyi*Cz1;eo*h{8?xmNv>Tmr%+qAg+w|^eH{$cHjpIlw_kJpZEe!uJFSL2`g)`2tM z_}Asd+4g6TG1TJNlx3g|pdFwmK@8F3pyxr~2fYTm4Ei(ZJx~k|F9D@M+d)I1anMsB zW&>0N)1w6(g@H|ok*=Wo(ImvEZ3Rc6GlZB5Trdh_iV#Ch4P<-~V#uk1j2S`0yc~)DNZ~Jm<3L)^pv7LUf6&K`l;W!t zU#2)1?HOkkM_bgfQe_c%g(%ecpj#-rvofF1mHK?KRLYN3$-=CR1!0cj+37jC(xhx= jaychEq1s+CFF}L>{$Wzck4i}nN6hf$h96;g%ZmR3_@1-* diff --git a/42sh/obj/parse_dless.o b/42sh/obj/parse_dless.o deleted file mode 100644 index 8828a2d327a3b4c86e16a33a485a1814a3653fb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4540 zcma)AZERE589vwcy|&}TalTX15U+s(64-&zHd{kS80k#PB*q$wwpDkIeUlg*JN3PW zz@RJ2HqFb#iYC@|`_T%mXdh}P?SpCRhZyS=s!l3WrH)?{Qa6ohps@)dG^%FLbMCo` z z{>0GkN4;+0@jR#aer_ywc@3Y}p!WFk#f*e&`F^>~TZnBksA>kW%){eLkBybA1LR*G zpU3xoMRB)$xx#pnLu&a_e1RzER1_Cge3$V2)a$!#e5G_@!m>ZgS6B1AeyHBFJBzGu z%QuzI$PjDe^Z3;35O?NFPfzD9vyh%*cpq7BM8!9#0{YP%<8%3nWBcR_u8r@rif@(T z`}1A$$@r$znOeU6HGH@3lFvCbecSbZSMeQJPravJ1-hha-iNzhY&uC<8((+W9q6t1 z<>(TTYSr*%ic?spW0ngCbA_yF?%ZBIBBl7^3cLtDnUYQJxdOO`&zdyHOL)8P0MlH4 z9!x5}t%~oa$ER#O&Pmmj%G+=GTtPC{uJPJ&JGMttmA|ECuk1=yj$TVu%9m4>(Mzeh(QB!>X8u)1 zFT%Q*n)d}jg(f*Y-m>jPMkGgp*~y86#eLaya`Ps8 zQb<47LF5XKNZXEZ%rU2AS;AI2=U7uBQ!F@E!7=UJVf3If9ey{`C2R-@!p;{96Y+Av z&P^1oY@Bp?Yupi~+{C0KY$shJcRq(HY*#5#QQ+q>54=#!TJS*>vSlx}xR22xm7GRa zoFbcc((Vx1DszZzm8@*8gdSJhN*6>XU$iZ8uvp5XQ>wD7GLz|&7|#lu-&KlJ+|N0S z`>g^ZR+{T)ytIYZq^*v&=>BNT=!!OJ&B#Ar0${VYway>?ROI2vn))3rpGJcDb>UOc zjuw2DHZL>vRl*;ABoe`nG8zRPg6&W)1ug+Cnm-zekWYwk1AKS1&=|n}tm9^mbW}Nr zH?U#d11H1{A?n3?DwJVY$=bUmEFMiBpzYZU2dz;%MdkOMn4XmOPf^2~JSVODKn?3F z?=M;b--*3{r`1$MAFN$vXsy}C46stiX|>Q2dX`ndcm>M%6{_GHsPYhBZ-_UgxUV^U z1bTr`tFKptkD*Q`7|`=s6B7urk<==1DaDU)EoO z3Wf~MWUK*ftVb1m2-SH&`aPj{pgQ&D@O#jlSYI}=E+_sA@O>Dfb7Em|wBeBFYpAZE z(`X6Zfa)~*!wmPwba;RZSb^3VS`T6YBKQk5b($S|J)5E6@1c5#v_;lI#f>b0ApCh)n>c!% zjAjd(djJ{jktd--MvwH6{GZ_HoHzPD&Sp%&U(a%YW=N+Q0Kr*QhX4j24IP8(3_c>C z!5Q{#B@3Sc-Gf7Xi4|C<5MOW`pXK5c2{z-@{lZWRy?laFu!CfAZTCKK`1$8!Ol+C0 z&BvM}78nER40mKwiJ#p8ug zJ1P|fPdP%TAPV9JCv*mt8pxB15Gw_7XA$ByQv?5B#s-m%%sP@(6?LFX?kadOk+s9S zg*Fq@V)en$v+&|f_d;fFkZfVW`yhy+XzZK5&oroOxEO=4Pn?FQrrnA*pw>7CL|eLh z;5w1Xm$SIgC(CvzsjOtKf8fF8h<(UT$`8AZnx>b-X;2Ri>OSK!y#ZF(DC;3;K*nC( zZ%pWQuL2y=V*m#AMz}>`wGHZBBYFfFfHnYzBc0d1s`ta{8PR>Agx){s$lapSJ)2 diff --git a/42sh/obj/parse_great.o b/42sh/obj/parse_great.o deleted file mode 100644 index 3f64649e9de6229ad08e84231a9abee4a26e6b02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4616 zcma)AZEO_B8J@lK?%w&#`TU6k0lTpspn^L-14)h)Q%ny-C6~qowTYJV-P%4l?ws8{ zz6uGEm8vIKC{acEmsY4jN~@+)OQ@oJh|*LLB~p+gMf_@0r5{uUl^}#r6NNs{?5sa7 zq%iV3@4U~v^US-m@668mga2Or!W2Ra3sjIg$heNG3xaYVJT+fk^Wo>$* zZ~Nw;TLe5O6yKkWsji?A3L4Y_U$LB%a4p~av%H0PGBR_tY|rut__D*pj=hikv*Qc+ zeyV8hm9J15DRW3I-!NYw$~hIqbroN0lfRDWx?_A!wlr$HU*_wnS+CRTJW+MS zvpE@JZF~WrdL82KeA)5wqHUG3dl}xBp0`)UmsSD2cGviPzVh&H`GRZX%PPJe#rNqw z^2zwdv$6hW>92^7>w=?4h*-VkXYd`6 zP4MTrb{d+;7t>@AGP7_Bih5-;yYAW^%2fZJnYc2TsUEqOsa7s$szV=VCWo$NCY$+J z9l8YTQs#V!0ilV`=FG&QglK%88F9Yypcp%exlmia6hvty>Nwxq4-C#S-Bpac##})~I7=y<|?L zhJd-L(f#G!`D|+SN_R|1Ki@$VN}kBNp75+;&#`UcDqZmGy&_jGd3MRO+`=LBpt3xE zQL+xUiUeU7%caq-O35vZmh5~N>5BG>yW!xz!a{p6saij!&wAgD(7wZ zAPU)Xr&`?M=#WZIBP&jk&w5#Zh-_6jM7A6|UvSXlYgg%#$Q8@3E%uk4JUXSS_$oJ+ zb;L+sxcuT$yz(B-S>9up5V6vHe#T2%XiZvgyhRVk6UO{_lh%yP3?%_JYa8mr@ke5h z#uhbfY54~7Hmr+~g0{5agSC2=srQI*{IOUJd(CJRbTHeYdWo*RjNhR$ z-$qr0gt{ZVLv@9kqlcky6KV~0i|BJ`@yrRe!6o{87z=2%hq@EdHv?;KsJlbdn=$kp z16H@tY)A7rn&Bt)m!Zsv!I_LjfQ_Z7%(bX40MhS^d;ryeK`2RvB3dOZpOK>VG^}A-%V7!gHq3|V+8XJDN*KM-EzliB;qqSaxJG;#B9b%{N26`dbxs9u!Cgr zZU3`#{p%klnAkE~p_9JLtg(b@$KFPn$$vK=ejeK(t#m};M_R+DFD!K2+4*@y9zyCM zSq!S`%VumzVhy?kLvGzm}{M1{r9JbuYOVg%xfP%_@B29ula2G(I3UW_wzlcescZd z{9M=Z!?(c8Y+ndj0oeq30>TtM0yzQsCFCv0MaUD7E9uo@Uej>yz zrXU_Egt+#Ki^mJ0c2p_|o^pgvLKMUePUs9OHIOG2Ayx|F&LYHZrUw4Mj5U#s%sP@x z6?L3T<|z=3AdR&{+l6)@p(Ps3$P4h|JoiI(-6YlR+rj5R^u-fD41IG>aM#-h-;g*3 zPfhzQJ_ohNIUw5f%>$Q-T(OeJML$(>os_atg;nbwnvJ*z-IV;SyZBYkOUu-41%&b* zk{n|q_&#W3_o@2^j5@q%*YiF6E05nU+6QdMZ~D2808zq?njWi<^y&4+fZmkW&9oje zw(4_WMU9Fcfd*vk)WgQ8UjGKb0X+dAtvA9g4y!G#&mYiZY4~o{n*q#4_e;{h^9{X+ zzV+J6>aNuCawRBNv18{{c){vK#;a diff --git a/42sh/obj/parse_greatand.o b/42sh/obj/parse_greatand.o deleted file mode 100644 index ea85f5b23293978f9af85e523137d490dabea37f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4508 zcmb7Idu$v>8J|6S_wIc5`TU6OJe(eJ^O9npouo}@ozxC?xwt`;61RaAZO?aW`;zmX z*4%&W@-F{a=yxMc!GUU z0v(uwR7)d@X?oVA=gYpnw}0Q>>v|x)tpwt6*u4oK2g<{N54maPtf7e!)Abx_HqE~K zdhfY&-X*~K9w&uz$ng1sIlQZj`dU9cfm*)cZqm7bP}>WzIRl91oJ%-pWoL&DBIs` zaSZeH%nAE&-p-lkp1#15JQ4M^q|d}Nz++1O4Ed+_ybRA8HHRJSuHV5l7vBe+3a>}u z%_uyj3QT`AkjaDdR><2Dv3$Pc3U6x6g! zoZE0WXkpR;`>wSDgc@=|HM8f_FYJfi4SK>Y|4J!dcgBlpMb@0uy~ z|Guv@lb$-?^R?gf@@yyf?78;~$wQXo=8JZ6dq-zSXL3WffD5U8dnc5Rt(!Z#HVW6t zrp7alYdJnMM;t5TW$au>R-^`Dc2gsViwAO<)Yi@JsF1GnJ|b^>BIA0(Glx9KvV^O6 z-m}I;wrG2n?U`==C|XdN9uq0!Aj72*dZB2KBqwY)KVn#Gi~%p_}5@-X;~IafhCMh(a(ZkrKy7m4kR1PXQZedhQ`G-I-!a1 z9Mn7L+8FsfSi)Ev{UZ1&hP0mkUkbDhp|;BCeb6?u_eL4b4v6=|WHiOHU=iac=^^ny z!`|FdiM58K86)u5xekVANT*2{!c(ZY4&gf^C&606JLMXjVOtMTxCV3&_i_`z1??2# z3-97u&aX(g9*O$p-ZWad;gWEIWbt+X+x}Mik-svrWwwHM_%4h3(p27e4rL+!r}^-M z#@oJ;jwlr%O&H)ho{IdSArC>7AY!xdwZ+dF$HtdW;6w}W@qFv)!LOg*Uw3)MkKVl6 zb@jPo>(g(Xzv)+c>a`VH?AF;=x1LB;A9`_M!+XDb{&xMf*Rzc)OYi>k*p-i}PWADaa(vuHJ_3)BbV)^cl(gT4#;3Fs{7BIxg+ zYoI6sUIj{lc7X;#qo4;tJPmLWJRVKpC`@dcnCZ&I6s3t-+YFAvyr+pNzzL%;r)XlT zsgBGqnwWB`BRkN z>nq?kU_2M9#tOcU$S{%iml+}WBjC6^cBoX`fyKcFi*^$nE75)zI4+p>ZQxiWBc=E{ z#aAm1Cfm;_&Ube$Is}E6(*jlCVqc{5a$VSdTba(bh3$OrFVy?WbYTwT?dUn#QAdiI tT+YdkjR)oeURddHMzY=1HQ!YO9*dMb8*Uu{{ko diff --git a/42sh/obj/parse_less.o b/42sh/obj/parse_less.o deleted file mode 100644 index 7a14b1466f52f82509b169dbefdf17d1e3d0164f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4604 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 af=B`UizJsFm6jZgeBrGPKf7>`Mfop9A+8<( diff --git a/42sh/obj/parse_lessand.o b/42sh/obj/parse_lessand.o deleted file mode 100644 index 2d892b98bff1714d2cdd12bd19cfae54870b48b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4508 zcmb7Idu$v>8J|6S_wIatoFB2Bhf@6ifAL#mKM}VL<%6pUlxxxsI3SnM5dK$e!tmS z*LO{+8Tp&cP4^@a%#Fv)%b@3(> zNf}~gd_JDqjuqe~3Wcm?<`R<(?<4d5y^612g=2kUd>&qY?5Nz}%J>>pe%z?=zP~~| z8DAlhti;<@f%mHw;<+aa*PZXZ3h!HL)&IUiJRCX+SsCA3DnI=Bo~U2iS6`^u-(-Fg z^K{K(?nEY+GR*@+z9V@w>}j1I6Hfq-DftuRpW5>ZJS%OE+t^*NgK3uE2fYe!ufm&C zcuEzRe%hDG{qvU1|jB8Db zWIpFwIoEVDr_h4RbeTp88~H7b(6jm6L}xMQWF~S}s*`Y8YupufW+Lqh$4%J8&So%# z<1qy)a{St5VbA4L7JLwel$<4r#}W;a$zf#0AyNr9;dPNxkzJ%@Td9nV7LPlM=R`7_ zcPw!tZ>P{GSznne`lzwCzENvJ z3Iuv!Y|{4DRMp=Sxizx6c7OAyYjLu55m2W6&G^9VEK~IxMOFQtNCaoYXb^M=wt{&O zI6loZ9UkKr7&w?+~)Dq|t;Rhk{jtH!ROZXR1I;gb< zx}xDZUuz3=wTqfy1TBxkR=qyh3h}!TtG=K!{$R-9NXBNEjcurcH>0`$lfF8139Maj z3jYb51M6i2>vG^f!+sQ9bPg;G_BLGNJb>y78ja@AdtmLxj&L~8=}|B}6#OMv7cHwI-C$8;TbS@yY3dZ*dUT7k?2z7w2 zEumqssIf782ly;Q+D!k?`P!C1S9N$4+IIHdDx(>IcmyV+HIe`e88=7|iT^3~p7eWf z;AqAK{Pi?DXohr}f+0AK>I{s*+d>b5wFmdeHF%zFdx^p|pnGtToA^y=vxqOak88QK zBEcryqjwF)(JDU*THW#2`V<@lfE!_OJ-`W8B( z@FT4W16;>Lk)JcScHDcQ2N^!7hbzxzSW{m;#B`o~MB zcfH?x_8XBSPaHe71g4(!O+9-;yCL-Kf6Y##YO*f zAO`EBUkiMu&O3BM@E!?>AHh@8-mkAit#J&H_Tj?=?}%i!n8L$6R&?x`(qfq%yKgGD zI47N${GvO!|M_O|Um|#{08&0edeTe<&kHinpL%RSsTO=Qcpl!H$CIF~>ovxR-q^1P`}KfvyIu#a#whAx@Myno^y^Kqwm}Px=!UCrgtir0$A}*I zs=jsvO?&ipFw~9c8$#dHtE409&4(!mjQ#p*v^K!29lUKsUyp(M^?Ku8IaW)*z6Ne1 z##4b>ETFiA&@hwk7a1b>SHN+744eYTDhyz8u*IU=1jkZz-wuu|ru$~E-H0i^N%8fH zgR#HyoZ<(;8({DYucu|Iz|~%+Z>!L6snFSXd4In5m+M0nx-iG_dUWk%+LmG>m9mqQ p1>c;-8;c$ZH=mILwif@j$Y#c+CifS4z_%EF3E_2WmZgjk{{?8=q09gP diff --git a/42sh/obj/parse_separator.o b/42sh/obj/parse_separator.o deleted file mode 100644 index 0635d658b93f4526996606fe5d8633856389c899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4300 zcma)9ZEPIH8J<0Rckg`m`FwV4Cn3(YHjuRB&LP3I$|bdFLN6v%lwwFrs_pr1?YnTk zJ9hW-L6Zo{ZIx3{3*u8kNc<@IffSk_v{hB1rZoLTDprdMzp6<6P%1!th!(4;q|Y-u zYx|B+Jn}p5ywAMz%*^fk&WvCF&zm2bLTGIQ6{HxkYi8+ z8=QjDO%TPhJo~8Uw|)DLy$9}Cv4hqb)gT|Iy$AwH-7fAAe5fs}V9(U&EZ1`+Y*~Bm zn!NqyWtV{G32q8y%<%Q9I<%_2%vY}FCEUulyUAOKKX7x+rO6{$Uv6f`u@7^-&Fc&J z9#b4^9Yti7!6v>`igw> zxx8Fr>-qvd^*PqSm#fvvwpGc^b9o=xZ$qswqn5M&6W8bSRc8*#58S%GUn#y3#W%f1 zKDoYHF5k-c&lbL8Yvl8e)vmbTE)~DuQ@{FCYve=HNy^ssJ*na&*zad!%ilFhp>(sleO7$1`OM;!l0^7CyUZ%{utH{s7BrJ`XM`z6r%w zQ+&!4*nTl+QwRB0E>$FB>wc3F-#euib58Ad^kde?-vwPlMEwJfiywrH1LUVY1cS}~?W@5xwx_d=zh@WT7|k|LEM*(@x3i7uOWD(u1pgY-7hx?eTd%&w9cs%@sZ2 zdO3&OLR3|eZ2_PolT}bBHCiRqftb+(Jkm;_Cxs; zLWFy@wpcVuJ|QAq@ZHx-V;s5C!5cq1u*yN4L-P2^AC}qIDXwDxqU`gPtb-eS`Ira* z?aqU6(7LrpsMTmX)!sg2a?ekp*>+Gr3uT54&Sb0yYz(0?x1w4Eq^}RZ3N@%FB7cGA#Cp@j zx}5kQzz<@G&WVM=(Z(!!?nU)4bQ(8@IsKrqJE8;n0Uai|fz4?BnARjWz=8Zljho10 z{t#vdI}>^jlpZ#IMm0i6GkybQ{t?v-4IL=!uK=BFu@9?Ibe1H z{Sy7wMZW?SH?ND_4Lw2U6o-Bv)^oJdv>t)Qm71flgn0`(_zlgza0x1IULE0Pxq9G|)T=$n1}P2P$lCmL8J-Qyl$3F#6M+&0q%(%dbvm*$4zV zBa3hQxA9`}LY$#2;}bgNyEKg@)H?Pu%4+^k^5GT4qq~oeD7;uTVLfT-2*`m3-5u_rZdy`p1Hf{(uQaL_TKjQ&Q>=)`sWLqf2yZn+OVUtY3a8+ zPsTeBKR>nQjo&?YqyEyL@_ic{ufKEr%?~?H{^;U0Z@qB*h7U&XKNbD@)AyWt_}#^g z`Q)R=m%tmvkHS#i4%q{_3vvi@0`fTIS;z~JMaW+v|As`c;Hw~M$W4%GND=Za2(tk$ zlCvKgg>grSfv6w`5+TOc0DXjDSQ28Sa>FS6@`M-=Y9OP45CcOEWZn>BA}KE>0~}=j z0AiG@9%dJv8G~w;9yAFti$UOWWU!2cJqCZds1hY@~J zhc_vjN)W=@eYXqkXk3eTn&Ai499PlvebQXM931{)G8X@C=!?PgS9}J(A@M96HSL2~ z7ix`jK(v*I2Hp($a=n0ubh_?3X=SBLJI2SF5%-vzmKV5-|9bgGS$TKhaRO5L`lcy;B%_C>;1vFvJ_vkZN*@A}f#X8pxB-Kw zjI*Im{5C>7%t?jV#-PF`w#`Cg&ATjUbniN#`akE}Mq24>lpazVivGq=ltx=#f5cf5 z5Mn`5;{sFO_^bQJ(6ibWR?F`%tXVvd3I!)WUz2V8%=n+bT$+`Z^u{;g%MAZV;9V%h F{{T>rdI$gj diff --git a/42sh/obj/parse_subshell.o b/42sh/obj/parse_subshell.o deleted file mode 100644 index 90ea1422b51e395c5555ae9cac4df8f303be6893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4644 zcmb7IeQX>@6`wtO_wIcDIDf@X(0s=*%MSv73w1F0aNCYb44TEnZqJ+zTp-=6C>{Yz_7W(iP)# zv(BXLeHiccnjCs55#UwTSHzpi=46Pq@r8J5JH*xTva_>A+j6oq4DUnpeM7}Jr~-QV zs__MQrSWOG!L{+NR{613;a$2$JQ?3?Hdl*xXANFYW7Wz9&6@QK;`1M#z2bZ)72emC z*In0$heIqOYvcQu%HMFluQgvSzFcVr^YpEMC}zGg#Pz^1h;V)ckqPtg$)s8NrE+NsdOMZT z+va>3Mw|Ip89QrMevJUnRz`j!%{QDh51$(P;>&$GG0bzH+Ogxlds6#s*DI8q)IhpF z-Jj~s6>(Yh4fI1uZ@M|XVZHF&TxK@wdbS%d%PWt2Q+BbK&WX$z)Lv$Ce`z|O&1|~a zn-bD=(MA*;Ut~RB_|~}Z+P3f%FZlM1$dw%5c6`e#96%2$%V&~hU1YyhLN1n^$yC|# z3X_hVPZ6$YPx!(uOiua2^Rq6oivr{Do-Ov5+&nrZD+eq$m375LUU>Y7lKj#`w!={+ z_d?DU&|0;1&Fy+!bJAGR+^V%9zawcV+q9vEy5>(OZcW_SxV`;$+)8!2h$z+eb|mDc zC8EAo)HUChNZ{NUErJHoWncjWj#j%?*PKWYPl$LEY`3>l7{DoP;E_#qRT+rm$oSw| ziOF-_C~ji9p_l=ab@;XjETIY&+I6kTa@Y} zNA{ej)S5*fq+O4IYi%}1(5G3|8%M#6=TJqDqv9(i(i1xXmWs5+9|ylcRY#;p#J`Nz zJCr(M5FE{?(f>kbxb>@|oU;sdxBh)-qA`Ob8OxzIR-uZn zNA+8%^yRVFz`FIe_@BTzu)btqT@L&v^t<7rb6{c6+n6BEUQ~?FXpj8|tlQWaH=yF% z%D9CSNTKySrOlXth<+Q*1jR0$iK54%KLT4vO=ltlmNagPe+vAsRHcdFqO}LhXJjbt zhqRMYKO_;o0P%L3cEs)iOB(Cqp8@AG7&p@XbD`85>8X$34{0sE*UM-!XmVP{vP2Fn zW~`PL5`PW7OQH8CIGXVQ?Dc6nXofVJh9X)<^(82y+hP^4?&xiD4W4J;5K*`WG>;B* z6OTY*e9=3&mWwMAZ9{5)e%M5>{6vt4U-Cc~eCOA^_=_`4WtpGgX%I`bFXdX_ODG@5 zh95WH&>aLr;U`-Y2Dpw-2|sSgLr^`4*erZ`@zch!@f8#}!@~b+Vdb&0y~iGGJ$K!6 zZ@#aTi z$6j2x;U6as-tvC`p|2#qaP*;LPrh?@MK1O9!Hd9U7BQ7KfVP6TwcMIVLC=D|2RZ>d z3wi_e9w?50uLp78?*NT~ra+H?cp6|LF_(d(FtMp(rYjXwlqzOz7dQ&@o~pg5IAIj# z6je+$<;eV^ibE?$<_uL#B4x!%L6YYODyER?VP?^o$)-l(0iud$ijNW$7eo~=7v;#) zK@|^_Qt`x7#bd0nc>7SrYeK1bo~XKT*@{;RRlI2w7Oxkoc;l!bc*{}6Bv&dPaH@C{ zC`a~E#YI*sZXZ=VX3FvZWo#7L$gG1$bx|^bmXt7&wFCDGZ7!)L8>6vrz=|VX4?6lD z!B9f4;pXHMkvp5z^IC3dM0^*$n)ZHk6KaiPfV9hx4ZIw3#d01G^-S4wGfK)7HV$lF zs_`E7GV&YliJHd;9w@++?~e2ovmr1;8%I#RFCf$lJ`)0q;Gq+=i}sxD2F)PhgXz?@ zXnJEq>^pkG7}eVb_1GXRxJw5VVW{ diff --git a/42sh/obj/parse_word.o b/42sh/obj/parse_word.o deleted file mode 100644 index 22a0503cff60c484e7ce242fd8b3aec0c2722f98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4296 zcma)9ZERat89vwcz1NQO;W%lMu3v_Q0nzds?w~l?2ICbpo z-s^tRj-g7^taf8l+4#W^il$Z5B&KR?KL(m8q8gwHQHctH#E+tFsDe(cQw0$dEzfiA zxvuSXG)I2#`*Gg$oUivi=lJ*k`S7|agccU~fFhuI9iJ2kWhrQZ#?L4lTl|XW*ajug zfhkBGG@@9RXCLx>+1GdP+`Idx9!Nh_0`b`Gc>qZ0h0hnvuf3!UL+opPC_=1?2iiMIyY@Tl-=6m<606eYc+x;2i^44umy zKR@`bUyU*$Q{&?ge=T*ucHBa_l-fElI53!6mn-5F*|2pG%D|?(2Zq)Q*U6>lvyN*! zKC=#%o%}#fq$gl<)6)mbv-xa#)7|cjkZ!VG6iS}Rx}NZ?Nzbuu;VNG6>^YGumpr@V zS#IG7YVff=e%ZYJx9sl0G`tC76&e!Ik8C3geP70^1hHSJw`xIJMkYwy&O2)NJyj7e>zCEWg{ z_`UJ9t-HGJZ$%pFBBV^ax^Nq8YEbpnBHVsoJdQv%Is_fe9xxw5h-jA+yL9CVgr2cVK;bGIkN19qSDp>$2m&!2TGT=CLqioLkv^x)my;ysQFW{6|^jguLVmO zcg2Rl|3=dQ5oRIn!}1wvYGr7@nc3Klh1Ne_wtIkuh-T7RCs8IQnUpJW5gkWRBOm=$~u!)QJb z{VrIad7oT^S6DYf6s`f?%~5V*6&lB9Zs%IoR>Vx=jQqxE2DS3cCP&W5;@kX(2Fni69uPz280ZI}S3z%sE`Z(x{Rddrc9@l7f%|6 z#p8uuJaN<@CY6anu1rjDdhsMs4NodBo^Hy-%%T_5Of~#}5o;nE8Fgq;SJVkkoQ4v_ zv3BGkp&d$SiB>cE9K6`ka!}&m#JX`KxB;lFKsxo97<9bfcg-Cuxkho-l-L`U_wF{USn_2@99uj(z(I)`<0SPwyK zgSN`3=wARI9MiXq>D^;`Xs@0elg?diI;Jm$^O)XYL?6-nVCfyxSHd!E{3v8#LB#ja zAx6F7FgVVFZ7Qm^?T3yTY#0Z};5Tdm$3%^^;&&>(QgJX@|GMHs;Jo*OLa|O2d^6VT z%bN6UP5PQ9U073iY31`yZf;)6SYG_CFBYbxCf68y!M6|oD&Re6-P|+j!FLkc16KSG DZcuCG diff --git a/42sh/obj/print_and_del.o b/42sh/obj/print_and_del.o deleted file mode 100644 index 92cf2afdafc3bfff69c37f2aba19b1f057aecf27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7520 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 diff --git a/42sh/obj/process_cmp_pid.o b/42sh/obj/process_cmp_pid.o deleted file mode 100644 index a7d27a7644b45b631b801ad7b1d7ac863db39997..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3152 zcma)8U2GIp6uvXNGo9|V+bzXf!jDU~{Drbx3SuKfsRG$zH3a!FF*un{ciS!7-DPLC z6ru(aV;~rV5)+;bF_8y-fryET4FbSmxIZ z5JGLyn|S4_`b zTX4M}O1xL(20p$>JRCY7GMZmZo`-O~7ZUdplUgJ{r#gdmdRC)yyi}R6tg&6KGuBJI zv~+$3Jf^&&Be++fM(_$#R_csqli#g7tCngVS-73!4XeNZk{e8lK_ z&q%yq<)l6Ukoq5xANM8205jMaCf^4hknuYpm-1)uK5#3sL}8z|`WK@g%%A-&fA+Oo z`Lm6i`E!k1=l1kL+}x-ixjw=Jkscd6^n7}@Po>7cgi@$n}!ErWVa4w zH*XMb-N{W?$2U3EidV0ebG3TaDY&lX%+#z}X(H>0+(8#0xyj?z=?Ocxb;z9(kswj3 zc%mjeOZtV|)a+T|Oxbl&v%M)%m@7C%gas1l0&ICKiCssp@Pobyye&h}iW8*@hHAqT zu4j7{zzw}u zI6j~sgZFo+vB%;!_@kk50YcYCKxsWaxgW5t#Fx6gQwb{Ez<>Gxi}gxF8OUx9xD{|V*?cplb(hr!Q*xtkDzo7@Wt zVu9#l#iZ-BbW!49khs%~;^xbjfkmQ=yDulQE$L#lWE3k!7n?;!v5s`Hywb(~rE3-} zU2G(}*d7w=|0>Xi-Q`YVMnLjd5n>*NB~ec97s^~pNp-Xt=jAt6AoAkvpdjI~6eG#h zo9eTjK?4c#3u099DMm%PlkCK(@Ec$ya<}4|bjpnhTwS?_ThB==SK2bXZNA4n5eb1K zXUPXYa`)nb#;16rW~bOLepH|aGoYi}nmW2ExMtz^U%K|@#S`mNv_#@_tyABtE#0AY o@6~V%s92DAB3O`~lX9(;tE7Zr7W$V`as#?JgcQC9;j;q&f3I|@u>b%7 diff --git a/42sh/obj/process_format.o b/42sh/obj/process_format.o deleted file mode 100644 index 208d854eb3bf2908fbf013045f5c4a6d3da1c4bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5316 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 IqyWeM2hJ3BbN~PV diff --git a/42sh/obj/process_free.o b/42sh/obj/process_free.o deleted file mode 100644 index 7df5f946e4a5410c8630de1bbb990444a1eb7e7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3528 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 diff --git a/42sh/obj/process_redirect.o b/42sh/obj/process_redirect.o deleted file mode 100644 index 233c6b13bf2f760512943f9f29969dac8f720e5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3340 zcma)8U2GIp6uvXNGo5zZ-GwTm7M*0vU!=QjA<`&O3e;@1B#Qjh_%m*2x7~$hce6WN zih)Q{AT%WgH9q)Yf)74vBu1W;7!AZIiQ&P-MBjKI;Qlg& zob%mt&%JYJFWtWWPm>TzNMHbm!4(aI2?jk3o~3gE`c3y9oMH~hw}C0hF*-q(<>V$D zPxtJd1H(J-*uGYi3h_8?vDK3>j`%T@mX*zo)W@uvQ+3^zwQW!Tj_2k=e4H8S3CTL= z0)$W-^f|m@*>>GQyaJokKz}Y0FEcVy&5g6(`StmDCne@$@d~BUGE;(hw`6_$q&&vv zgHHPWTVTD_Old5KW(D!yoB8UH}$!lhM>hNrO z`ta=J+Z`fy)I>(lOnQ1?c6y@YD$~=`+h?Z_c1#WY?wV5rH~4gN!c<~M6L|g&3-A)m zh6HnJ;F?Uh+VgFC@`CyL`F_4==FrgY?dEu{S}T-GW?!;9*=??|i?|)S`nq8xH}ocZ z){0uyPUR+YcB)b>+qqiJs^+qVYR-0&wn*)&Aw4yApu9JmNp0w@`JP`c}7^FpW#T)uSdljbC65Gp|=otPvXFHGY=EQy6qbQ}Il1 z!|);OklF06q9p-GOP4B@tpi)Vg;Hi|Ws7_!;^!Edm+Zq&4fW zXsw>A>z`{eKj6$=0#yB?s$=~^WW5G-?SjN4UF)UIp3>gv*?LOKRZ>1CB?Q-|pOX^0 fh;fj_L)c)7M*=n$8u)4n%Py8{Ibmh%m0s~5+3whF diff --git a/42sh/obj/process_reset.o b/42sh/obj/process_reset.o deleted file mode 100644 index 980e0521f6cb97d05eb5639cb8a3ec2b4f55f962..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5116 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 B?(YBq diff --git a/42sh/obj/prompt.o b/42sh/obj/prompt.o deleted file mode 100644 index 8d0bcf53963d78750e66d46f9f47272f8441f324..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4764 zcmb7IZERE589w*g=f+NgZ3tzoRK%?brCM!=gwlwQ5k%bG09i61e01tAjz1D3f62av zq-(0EW>wrQB53M{HfimoYRc3h(P}^FHlfh6@v$HD$G)WfSTzl;Oq~F=9af8)J@38e z8t0M?c9L_S^SC4C}$^Rw!8_kLjgpDPG zlTr4GcABOqMs*LW@*6d z(xkgiFpG=wMTdq8iK8@r3;nbBek5oflrNP{=BSCCZ-+7XjJ+k|4TyQJVm?IZi~3iH zW``5Sd-*=Gt)bsH2}ke3qI{WX%y7}}pT#HKWB2Ea=JV--F932XZ|l{Fac@y-gqQLz9gJ!b0x_$O2g z{G)L(&cY^hBT?l_r#VNCRYc>P@Eq97Tss&$N)5#2jou&i8Br%Q8cW&EsKxvf@yYg$i@ zpSAj)h2>P~($wIEslGYOy~~xWmB=p)lk)f_S0!@B``tFML0ImcUWF2Zei1Ftv9-0J zDv_UGUtw0osEXHD&DLD4MBYF&hY?LOWQ)gtF>(h4)+nh{3^CnQr=MyC-&rSWD(|YX zzB}sF_)T?c%T?3CD)Szvbz+R1gi*hKWqy8MjYVMBM|S58yUM$j!Rq?C$@As$Dx2)P z;XO__Ak3;JztmOR;9b?zcKC0!pc?|URw-@x` zJP(qpDqT{`bCPOJO3j5utKrc57zzJ#@2&b~N5|&QjTvSZIy21QwnGR{TiT8cYYTP6 zH`PA=nt9s}KN~pEvz2Y9)7Zaz_x?Wr(L|w`%4Pjsq4rR_e_bq%D^7#=?U|G!73R%N>bF!y7t^BP^+FW;KIo{x zN`*oK2TeRxV5zLm3JIOzCzVNPI&Jr80q2k=?bQdgI}$fh!JE`S%Q&VsbGll z=$L^yLp_#=8tP+0Jti6fcF6&!`yET#EeBlg^On>n2b$fNE$QoWz~_G7lKSPq zayRiAoC9)TrTYU*`i2~M#7zf*QMX49_}#Z4k#Ekua$ueNbCg~~1kQbOpq(|ofuiD| zkJLzN92I-Ft5l#%gR*tElTKm^!+|i5qH(eK=WjK9d#~s9{%zWs9_Z*z9!EAN4H!bE zWK0e4pdm44j5*3QT$HRn4F@1E*606Yqkx0*a%4&r2l?(`9DfVYHEH@!>y7H@%%#K6 zzv`nCsSovA?GuwtU;AwJ>Yt7sVln@#FXT~IM*cqX&yatOd=;7InS7?rDeWC*~!<;aC{w#>rvP1T>cZ64sqt%#+{A*+;y5itmqu{%TdkU)a^l-p5*cg z?t9ko!>L1G;!WW2%ikpB@Tm&v60S>A#+U(&g}6BK2>3R0`i8+UT|OI!}gE{yVa zgorr}J_f}037)~&kUR;*6Fis)qUxa`AVw$H1;p3{p9JEL2>M0+QXz98{{zEEc7Fkq z-S2?Ja{);G{0fNoZ15*S|3jb)@-z^eJ2(ua{tf`iz8^^KRUq+h0TOS!&_4kryGMom zFc7W;9};?>(4$XE!BhC4UYQXX6)289@1+EpiT41+8zd(S&_XB}Rpa&gH04cR1 zlWgrv^1}<+N}Exr6WM;7O#8LIewR%aenM-eBB0)$%JuTMY_fI0nXU2FGKowqKgP7X z4=STr(&=9$RIGnckqmt{mdP`EaYeNv9%|`?j;E2RODCw9OqcLT!xIgUtE5p?d!uRi NUr97g`_J5w>_2+b2loH~ diff --git a/42sh/obj/put_job_in_background.o b/42sh/obj/put_job_in_background.o deleted file mode 100644 index ba69bfe9d14e9d478d76b165625b70aa60e4ff9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4044 zcmb7GTWlLe6rEjr*XyifyGdFKrL7?a0yJ?*fkr&q21;=uJXBiB2i4-N9cPQ<4ZG{o zB8oueRRI#ukMhAoLINQk5(0@IP$iJs@(@V;fIx^JN)a!CDp4MyoU=P?ViTZ@bmz{! zbMM(Zv-i%-2fu#zM@k4KA<%)6puHNp0toGRP>J$Cw9C`c#23;gmVqfqdFf|aL3Mi| z1u)Cnc*%7e|B~a;)p9^Q#YwhN-4eMG~mK?pzO+s7Ufd^F^WQpdjnyFiAs|3Bl4@Z5>5;ScVN zZ<(xzWfCuGw$>RBI@UWYzL~P!i5J&kj5lzMc)^aDIoDg4@r}qR#*YyXMI1tQ#`lEG z-#EV8y5nWGc*lBecN*&qtY+h8r%|!2@wF{W4E9UBf>b^SJe~s;m88w&@Y2AvXOWFAL8S_glC}{B^HBU z2nt}&bv*+<0M6eKpIsP+jh`U3EjXI`&wf*B_m`zz-{woZcOKc@JiKe?VUfGD2)8$T z(Vexobl(+6&Kyhb-gk&lyN-z50~riT4_w#-7An8y3@mrOo!|1-jZVE@7`SHrr59gy z<;K&+7>lYfK7Q>Lg>6;Ocicu{bZB^JxG-SXaS{xU4nr6^dt~UW(}nNZ#jWndpzSsS z&#f0{nt=t`avIh|*}k#nxy?pp$QH#-KA?)Vo87IIa`EgDe@e`0Dx5|j03bpb;S)?a z6){s|=TxkKf3fT#y{uS-%Zd?9lmlEI6U_j%5m=M;a!u6TMy(Kbgq?IeKd@#z*RJ|B zsXKmvFNBQoS79T$I7A;JBs_cbdXIT=-pQ%tvbKQzU^z2DMUkR`rKWv(-SQp2k z0HPW&!m7)N}I|C#3EJyFp!SJOoZdb*b7fj7Ks0kWxYIPa3ad^dqH{)PBSG7^4J$)sxl! zys;7^hf=@VzfkC(VsZ~iTcRHXdlHl^=>&cWlvu9+4)zvEUz&UeOfxjDT<=9kht%<@ z@4yzOdW^&1>!42cF(Ue1N@+f07{RDQX#rvoX?+96X^^o*-vX8gC9Y2vz*2@r?55D)iXH8Lp*t%~%O6JSWL{h_OYw z=&?4qCD_S~3DW?4hz4l0eJOYP9!2{#QXE`zwW z+|S2BFM{@hJ^~#C{Q}Bh`JE@}WHC|2 z>XKGWII372(uyTW70W@sDi}0X%t+~2kSeB+v|>fkiX|znSVL5?E~Sc@Llsj}s+e9> zG36u{Q;RAVleFTFQN<*cDpn9xEG(&FEmOr3mnv2;RV+>k|8H59LdGyVU_GnJ!;Cm> zEzULNmJLGLo>%gjl);MQhfV|?`I%TpkH&|g7|Z7GRxj?3Dg*x*wyO9NmWuLQwi~^| zZ-A7JdmGoTU2pRGDmHzuD5avaV)Wd0jlZMA1d5_1AEa~M=(zmxLB0v(8)0aQ|043i z7=_dtCov9hb?9+#gs_o$-4CQ+bO}p?=&pqTPaGP+jank7XnNN{{W2}9AJDqNQx|9_ z2ketjEZeN9+f*GJB38ozZiDAVeEu2Wh<9*h#C1NaAnT_}zC?1cQ2&$UybyCRj2r8J ZmKcs_%UEdD^IT6@e0@Qh>)`~9KLMKjMa=*J diff --git a/42sh/obj/put_job_in_foreground.o b/42sh/obj/put_job_in_foreground.o deleted file mode 100644 index d6b9d13d8bbd68a6570028054355bd35accb2cf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5456 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 M=8;n~{caNCf4=*J>i_@% diff --git a/42sh/obj/quotes_gest.o b/42sh/obj/quotes_gest.o deleted file mode 100644 index 17f7be69df6751c59fa4d0e8f54f0ec4e40faf10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4408 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 Vxc1wCYFd<*zcuXPY=Qs7`!5uNM!En1 diff --git a/42sh/obj/reduce_bquotes.o b/42sh/obj/reduce_bquotes.o deleted file mode 100644 index 3aaa01ac36a7f7281c8441ce0a42b7c14d0e0777..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4400 zcmb7IZERat89vw7$97^nNt3iqmu?t!lyz$2evSyzQnzt;lO|h8nyy1kw~lj@cysK` zzHZXdlC2qNp2yT`LJ09SAtw5xOq2L3ph=}5bz);w1Bvnn_0OgTiYOo2qIDuX&%Ngs z$Lm-)%6s1Pyyrd7dGGmle*5lU{~Z)U(*-h!A2KbG#UM!QAd579KzggrtvJOtNFD~K zpfu8mWSX`$YrAC^A50!T_+RXmCKv<~`Pl6&2*Nb@#p6_7GR-k-v@~HB?Sf-6&7KDm zL;JmI;qg4D_}&TJtnvyzuR!hbW%FsrT+8?FGH)TC4pp~y%F8@FzSQVw!8%I*RrKT9(`@Z-4D!y(N(ykAU&*jUHKI}|zZF~!g?@q;c zY=wMIeAB6PEnifvH;?a|E9A3}P2ci+w<^AGr~&-N3i+_<9Ln1Ge#6a)zNA%-^K!rv^)=e z3Yya}2&qo&f}*xyb=8NKM~w2D#{9J-M#Wi>#+L_PGs-8f8|Bi~i^Oe7qMg!-(k2}u_#o%=b+rU+$46YN`ovN*Gu!!d89f&|V z1?A*-7q~J38EYl^o-zNcBM<#D!NVoi-+yQzcGM~qGx=Pst8+`|me^hCEKbCZt}Ota zJGOOh-6V>IbUbU#T7`JQ8Y`tObM(Jj&i4D3w~iF=2ViG!j)IXvtZ6ZiEvi25@l_a97( z9#`#6>^m^rpBOg8p~R3F9!&1*P4o-fwDXTxIZ;%ayPQUw@E zIo|cWnlTUsTUfa<;YMpeg1Q+op0UN~qqw|Tivk_ARocfITBP346liZ)r8Q&ve11)D z2!}rz{uH*EewWZ2)??fH8%1x65ONKa-r!aSTB7V*7Z{Ol!?sY9m`+@M+CMBP5}1=3vpqIh}cYpbg!$N+kF#E%M=td;@__y<@}T}zhTJ=5TK!6R{AZELpCD_2=<5QvLAB}4!H+`!nWk2b%_fxoLbRG=W1y8 zd=Et4AvKtHq3HiyXaFi0@{`-|bSRABgaPCn_S6vwlWTKt?70`FE1O~C$kF~!2vc=i z;@Y-6X8#`_wx{qMXX53ni2$_31CZC0+dp~nO@i7F%_v#sDM`)53(kHfbNi33Z2a5r z(yi^!{o_*mPi6eomyhqfaohIX?OPsyD!lm0jxRJtj{dNvT5xSF_% z{P@_lkh>uqz(GhFauiaAaC-13IA3d^k?2MfhhLdEdo(!{N*{M(XyWuKuM2=QabGAC zCyOS|pL*js%N-`}5aq>nPOoba<;A^36So)60w#VEP24lei`$!~P6$U4i62c9_mT4Y zU-K8l$aAdWU7gfcBhj+tO{@0UkkDqEw5CWfbP8VVX+7kXcSyFh>rZYdrs#+{o6Cz^9J zc21IM`K^NM5o3>=#jSMxQO3el7Y6{x&hHa-T#-)F8#O8G_4?4acz3sq^vQK-+XnQJZn+6$eV{#nMtyQq;6b?!`V)P!y-(Jil);m7E$Y_8wy{rk z!UoF2H~s4aKbL;gq0eYwmqXDQD9P0@>3!hxy(P7huMT4`L=Oa8u45-OMx=ws6VBUR zT<{V&3XQGV@h^-DiXB{`7_5%V(DZ*1n*Lj$F?b!^;2~f>bJ$e13v5*Q4yB=-`sbDA zx@trNFR@q!#S=AndkyCLtM=brgZb;cy1ustAF9FQHCUMV-7%HI4~_}T&X?@z65b!n z7n(4~ZT=r%)UszRyod;~?8dCDSK}3(HwfQA?wiR>PffcICWXff7V2EKf;F8@rCkU% La~wZ<5ZiwM6}rt1 diff --git a/42sh/obj/reduce_parens.o b/42sh/obj/reduce_parens.o deleted file mode 100644 index 9ee29c88d08ef194c34760f0c61153c13b563b6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3980 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 diff --git a/42sh/obj/sigtstp_handler.o b/42sh/obj/sigtstp_handler.o deleted file mode 100644 index bff39d8ca36278979952e1c37b2be073b3e5fde7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4128 zcma)9Yit}>6}~g;*@ySxb?gLJZqqG^LrS~5sqIp?g%CsBZiGRlahiaNM(f$x-HFCC z+nsS+sDTC%zHjD^ zyE{#ZuXOG?=ey^Ab7tn8xx2r9_pSe?gisO!6J!ALf`+LC!MF}mqyGV;mI)VLmobqK zPC+TkeY)H5Olk%jmC$ohgb$j4lE4+)VZHXzohqM_@C=XWiqC4o3!#M6-L zcLpTUZXwk7%)rw1hPk-h(m^Wy{fB4ozh@)rd1*b#hlKH+7$2ZM%81W)jUZmv`}r37 zqJ@}F2VuQaUqr-LUtH{($N2oN&i9IB*esvrG+l0q^WDgTz_=vu_lnH#2;K+Z3&vIR z>(-r?>AjzCTdaoO84O8!=Bx58)r}yaaaG$=u>>Rh8hOW==?}-%`BwtB_=fTI4Jc0U? z?>xq5w)JKgZ#Uc!{~r8H^6is+7bKr_1#Z6`+0;?L*_IP9#_xAV_Crx7Ggb(9uYEv% zd@jMaFdG&YlOKbeK|Ei@1?UFd*H~@2e(B(WdlwEa+*h)kQm5-0rstI=tYCFe zcwM7<)LkqauH$!IyXsjj-}5_qyY4h>vs*F5EL*lTKmWjIOUKNvXSq&krn0B9r?lI! z@trBp?1596o~+z<^CsA;hdhu}TgTm_je2!@(rb&@CFwh^upD0?F+=!zpuA8ut*#d! zz-`O(g%>L3Z(@tox@Vm-!F0;heU?$Zi~0^g__ph`O3MzfV>a+qeBtm|^xCFv>z$U> z5FM-0yDxGPIyH#}W4YVK#dJi5oBSoWfe!c0?vmwt!qBazU2h5BpyCGI4FE$A5cqcF z8^SOUv5}6^u6KjP+2LgJI;M&1a1NP5Kp9ph3L{#gP)v>&hLtU-O|=4Wi?VMpQMfC6 zclIN>Pv+3CnouQhU5Z3Jix$Zs%Vt)M7mAG!(bcYv(O3um)?*=qk_?$Ed%J51!ntyCDF z3so>jKPEQ5I1!*cP)C3=q$mmX@zW0lb`$e}`gmuB-tZD;p&jQmkmOH`)GDSmNM=0! zRj4D{uFPZ5KY?hw)g2=97g#%yjdruTBb^z6MM~|X>W*AyJG?or-J8GH^)Ge83p%sLwqa^%37wK&!;T!O7q_>R}gQ-019|IfMo*IMsGnk17wckLc z(n)fss(}AVV|(f@nD4?&)>2F=12=JN_71a~a=Al#QA=_1@xZWZQV=?=r4$vqaiTj1^!d8T?dms3jNRp_BVVHy?rKS0%q zrxmS9trUH#RIuX_noPQOaJB{&d{(JZt-%PfWMH4GeEuy~LmfiA5}^Hi3B~tb!RY0` zRt%2?$|wUd_yJb%qc?$rVIVjVgdiseE0D(kkBl^ghY9PLIfN16T!7Cep|@x4O!n#T zzVh$i8l&T9-+p!6|AuwLvN};bv^X;Uqt|!+?VYc+Z%F>~Q~u!}e&y1c@1=kL^7+yI zFF*A2XP!TO`{h3lK5?4I!evMS58)=rG~`~$7a>cKHON`WvykT?zks|3c^jf3VHQ8k zpo(`w(}YimZ%aZfT|%rlbSnp|k`QZm8-cLS39;}c#L6VZmXQ$qiV#~(aY%lghPIbNYOWay3ZO0Q~7&3vpM@lJYGJ^Ve|7YSU% zPhuSYxRmYrl{UZ6;WpUl4SAHp84x_Cb@}@t7KskggTpfnl;s{X)^M&5@^-kSy>yGO;tS%p0-_I+7 eUnYJXsME4d-*tiwjSl`&`%R&@Odk&qoc{w%J9hH` diff --git a/42sh/obj/sigttin_handler.o b/42sh/obj/sigttin_handler.o deleted file mode 100644 index f6fdc33eed828e97bb186d29b7d1148c991706ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2552 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 KRCHe)HvbEMgj4PS diff --git a/42sh/obj/token_expand_var.o b/42sh/obj/token_expand_var.o deleted file mode 100644 index 134684b1015acba04d7b0a0eda100ea9bac9531b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3048 zcma)8U1%It6h1SXne1kh-A$sk)+!5$(SX^FHDau_Cfd|V+G40}t)PsP&2)F`W_H<~ zq-nJpn<@hW3X!c&Ye5S?zA;IaPGP1 z+;hKs?z!jQnTvn@`ENau5+XFwEg1f&F_{bia36b{J1A8ue7w0e;<<-Q*WK?n ziFe6^rJvS_hf60QgYk8U%e4~U#}NsX;nEoSqmIE+m zjxHJ}nO_di^HgJIV8J*!urM{LQ2bSnp=2~050PxZpmCKO&}VBVNHZ%m)Z^j-7uv)uw>X5jLbAD5Pvyh+nvC!hVQpRZR-c)z0J9&4efcK=Uw;M{TXH)9lPO6kM>4H6Jm(y@Qy$-=OS!2180*Q9|nM?uK4GneHPQ~F(T}6y zw^ZF;{{qB%b!&JUlKs>^wT;5>pvV4dzuFcKzmML}tUao>B}o4g-4m>~MBaqZ!rBiI zk@wK(O5{T}q2P@t`whSTSt6B!Je&8??E0s};XR9uK&CvGnz?KW&P5R}RpYPb!>cjh z#Eu|-j}%x!xWRSe<`OX`$HtP0@9c*AoZGvnPDB^K>3J#9IPp;?`PPePwDk8SjB&!= z27dtl415vHSz!!L&Lf*RwbF~z$tKRNH1UzKiO*2N z|6dmBu|wVoysJo-598F3pBv@KZc-)_N}{nodp<uESO_g7Fo2uD69$G97_^(c4-E-Ym+OSlJ$7P3NLg@50i75(2ww-rIs$;fSDf=$l-u}$s@J{tuD4g%5=NFmZ zQh-i%hR&HaMxgp>DzC!Jj*OI@!`y#;ehTkZIbpeY1$VT>DUEpV z$@~^2-X<0wv>)}8?Yn7y<*YmAcsJs`TNf?FhDd-{GuB0@{T|BZ{1hAWQ+TS3cgD+3 zOcWj4%^qTUH|+PUTz#`lXyYC83-C%K2mA&%=J&J2>y&uzGV%QUCbGFkJe@BTNa3AX zCSK*}#7+0xCGob(0-j$c9$q>hvN1nL9txG;-_1e3HDg16bEQMrXT`3%M+$D+ge)B;J6;8<2R?6o4I9I;A>)#e(Z2 zHtzR|#QRQ8ngSl_#4Ymc#Iqy=VnHC2Uk!d8@!Z!1NZJtMDR3=uzvQ|N*9P21-)qhM zYE55GSu@WsSToft*2ya6JS2FN_2O@$UkGdZsz|)d{H&8Z=B?>3Bi78<^Mv(nrBBbM zp8IN$?@?-KXy22m!%o>Nl-yK*x+mR}dN5bS%irDK10&tHF}>j-;gxflqBH4~GnLXo z$3=r2C!G_Sy&h&}#*UN@ll!E8~neH7tI$%9HKg+Iq17@r%@mIW29Rl7glZiM1Vb8Wm;YeSj!G@NbP zKr|G8H1=5RftIZ;Xptdw>Dbkd8?dj=H276ASBYKi!5n<5Iz=eHB^EE76^Y--=L*)pd8x1eF)GJnikSePiB3c z-$qyyqrO$e*rcBxf0I`08H~a(r!XD_ht`=VA*+y@n^uf!`xMy0XYrEO`!OrxZxb>dgw)NYt8wl%P%ZwQVt8qhS27U9H&YWPq=Bzq zOc0O6XF52ru3cjsF9iM+^h~`L`{MY+i+A_B_rCGxk83}j>-r;?dh7VY#l9DkEr&n( z%*cGpHoOo19Lzt8IWP-nV$*BD>%puKYd}A54-i{J7rP~0tS?<`$tp02Ev1V+moB!J zuBq#;S?OX+Bo&lx`JoXv$BesRg?1ZZbK20MYUZ?VB6ABfu~IkxNr2P+ uNMM^8DZ8XxCnW^q&C^oyZAieOs0~Vu>Fc$&utzKW0nR%`Y;Wnp7XJh72BFaa diff --git a/42sh/obj/token_init.o b/42sh/obj/token_init.o deleted file mode 100644 index 4bb6a561ce71ba28430da4b19973b4a1ae6bde44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2760 zcmb7GO>7%Q6n?YzZrnI=HVIUr6l9U|CmK7nk%$0=nEv2|R6?Z|Xuzw|_c_M2xs$jx$$vZqm$5w=g$h+=f0-10N*M7>c z{%T&vVr%Qaz%{>iq?td@ye=oAyFP9rE@^cdX5e=I`DT9Yv4k|Per-PeRSs7uJvB9b zEWPB`>ZOX89?cAAhST>rWxn@Aqrz z&&mN*o08{K!S-!(igu0ar86$Uv;`h?N%V?4 zQ~i1@Wg54pdPN^6PV1qGeopgl7O~WW$%i<}@qQ6YC6j@ocT+4i(GLaR2V)i=JE(XWZtNxKo33u?_C`E6ng^@>=&g+ z`&^i!b2pe;@o(gV)xbBwkqLK1uq8%1e}8aGh=7S0AVIj2dk%WH4X>O_HoqNt!R%W4 z%t^m<_H#Y^U6sd>OvL*!^A+Z+%rb{8k@nrpOft(#;@UEyKv)SiL%o@hb(l~H<%Q(K zgi0urEHJC6xPrf47CLx`*a>?pQl$fI8-;lhXO5F-n8NJpNL*kqth<*v@i%ZbHp0?V zE@i%=9qJCMNQC30QI1<7{z`RoE3gK$D0xnKvA|!A%_~eKZ*r!H@vR%j*BOUCuF))U5zt{IQ(DPxl5qLh1Bn#N1IHlwE|^-dnuj7iPlwTT`G79YYJ$zVet z1iJCAl6NV2yOJyrjDfcj66dXlJ0YRlqRO|nRVQoC$IqVUE>rOC$QO#N1-p!YwtoQ) C|63^l diff --git a/42sh/obj/token_print.o b/42sh/obj/token_print.o deleted file mode 100644 index 3170b43363af0749981073fcc52306ff930f8bce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3536 zcma)8ZERCj7(VxQx9!@|bsr#zkR~wDz}7N8BnrrIBV|B>$bcBhwQIYrP;QsrTNsQQ z!i-oaMl}BN7l{#n5M!by@!<3EoOic4SuRe`?KFoi%EGeA-54;X8(m}5lx6m^xL>sE5Wa%4x} z(y@KZq+XPcOM!TdW$qM*LpfOVA=mY|X=PJJuQcjn|z&EBVC=JebQMi+Jfw++I7Ffynq`E|L#QUCi zcPws)SQ%dtub9S1>(@EWk?PhrQocFAZZ-or&_#@+U@G{*y?F+7q&&A@!nCmcc z^)d16`1)hm^=ZCUC)H;^7h7kd^VBlkdNH-cS9L zfk~+%zIbLg&S~j6V{ghx==z5C(iLM8FC>i@fX6FJp#EgY6?n-$y(f#?brw|igP?q` zt0mr;#FMIk+EEL-uWd|;Gc!=B;EnJHZjYgt{{CIRIKQ3zDcpL6#J4WwfM29=Zqr)Ov=oo_t zqBsI^WO(Cf;g_M)N}+3X=zF#BbMz9Hb2abf`em*?vT^|OAKd&Dj}SewbSc=$r!ch- zcZ^1dyT&#QcY33R)1NzTuwc8*!DyjtywGvw`Yyr@{TSKt!(htTlONodOy`?g7nz~K z?o2vA*qzSho0=CV29ue1zA4h03e9ga=i8c3nAvzZog7GJ!&YWj($M?yF|b6jiEisteMIfq2(=+mPqL7cpAN_d3gj%%aYcXMbA7CBiv$Bs&bLM*nZ3}SxF`{`Vj|ub%i8-0no>fkQ0+_-NpY^(f!7Vt*y3l2}#t*Eg}n^Nf;FMgsY%DQM!wr+!~QmZH~_2>ZGt5SOi zbCr6u|7&V>EIMfEJJjmeVH0Stou}5YfLm((4!YmR)C*E)cnq-VYP~lH{u51&>Kx(C zLpnoksyfH({Q}ZeYSYv?K~e3#2$_$iYPS0d*in${Ro^i%k5?nMb_0`p9MiYd)_RCF zU0da4B#c8_&0QGnN@{J~g&l(tYiqcRdl|$_FlqI^%Vb_{4JBG)JnS&AYix>}mcpzA_=gY4~=KcBPVq?}f2bSK69DK`vDc(5qgIgD7TJNN0 zjh|cc`bjPP>k0Uu0{srU24dd*NXBf?B2YVM8)zqp=>rqYC0j2Bvr7{bE={~qnt0LE zKp4CVns|HCbWEC919Bm+guC@!%_>U7B62`ZZY?nVY|1P z_z;$Lap0lLw)C-$I3AEuM6!uOse%XFzvF{ynrI`gT18WRr!?&|&7aeP?oO?Gh30dw z*Xkg89kCJO6DPFV6`E_i+xv=EtuAcP0x)_yHP!7J=+qRK?~v-o`GhDq2W;jQW0$Gj z4sYHe^=F;m-C@b+Nj_V0Feb?Tk>rp?EhjmoUr`kSNF_fr1Cz-SdXJ^|$E-fx$XJO~ N*47jD*RKcb{s(|cAQ}Jw diff --git a/42sh/obj/toolz.o b/42sh/obj/toolz.o deleted file mode 100644 index fc36374683f06f9e3899bab7293224dd0cf974aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4676 zcmb7IeQX>@6`$F=**kya&d!%wwS^O;F%k7gODaY2wb+WU+FWc>+S)i!vp%oS_Eq-T z*mtq1Vqts^_~JOCK&n=vq7b205Q69*C^aS6DT*y5)F={&O8ns>P<)b+3_9RiLe1~Z z&bs!VL(@@a-@LEiym|9xZk)H?``i0I#<+*!gYHG27x;wG(e6e!h`&v{P--idm5sv# zlToiwex{jcSidt5H!N0Sf&6#IAA7-IL$Pzk<@S^*{cL@JO@X? zF>i_EX;W=0i+H-@UFlvEpi*O+OUeS6r72ib_&YwRtJ{xba z>lwMh?)WY#ynPDqoJ!ipYK!V+Q+z`)%Z+!#h45lJdc}N*^)*IfjX{GkiwZGQj0M?l@)5+09vfDJ9n>Kq)D7=@IuoHN6WbUnGOkFiD zym+74GmPD}9o+Xp$ZyM+ZNgZ<#&cL~cb_vRx^aFJNr~uQFH`6Bf-1me;8ANrd`h$> zKFW){3(M?-M9RC+n_*8-e*&cdsO%m`-`r@u)V-U9cQ|e}vVS!)tD%PJ!gORkn=ULy z^5i-b$=62;!PzQ|e@y`!v+4EAG{|0E!I#a9=QE2uJDxYPk(J!<*4NjK%x^*+Z}!Mm z6a4rTSuurQVPwZ0Xv2!+jhU8$F;ik>!V4@o^$8emmd=D1>^WNVnX5e8n$Il}{!9cu z%*ZZErLh<(&5s*V;swV;-s?%p)biE4z8-y^`SRJw?J$ zaEhvZF>;I6nuVbqE#QN15mZgTSwqq+dDe=On0pI;6o#Q%<78`v!0YWlujir z8uSdu<7O(>Mehu-i4k+OFOiCm;3~vD4G9#$4BR0NB?;>;B6fk z@gV0yd+uvLkYln3H+DgC&tnQ*doJ}O;wp(_-cEd|E!l+eHu?qQ_ehknSLFDm&3^Yu zKi_p_-$*EEye&=N1Dw{U+HS;$%#|V?UGpE6{^W z$>WzlSb&5cDuQH5or>Gl8SY9D`n#9Ak2?FrHAn%p=C~CkfPvRk=Ga zP5FyTu~K{=#fH{JeK$HaS|j0jkPWZ=ttFnZx{2vBD|G%;1IACHQ$9&fxu#16jjEVL zlvE}9f06i9w6K;suAuDHI@or0R6Pv^8&9ogTf6VV z?geG1*0rtO8?a;V+IVVxMRwoES~OM*L(cyb*nuyn9H4XeJfa+u(xOZc3oR@>y8nwOgf=VqdBOZGQ2)x-Mn!3q4E*{fQL0BpNmTe@9@V9_zeD&S zgkIM(f@cJK8?L9xRnsS-dszhZIk7h^?(PwxIpGTnuih&>zZBZpFAJW=Tn%to5mjk% z0Fmqui+y2H5fys7eoSviSbdnaU6fl#_Zh=86iYOQ`N9mW#{BD`IgIS}io|I{F3`&GmK2QJJm4*&oF diff --git a/42sh/obj/toolz2.o b/42sh/obj/toolz2.o deleted file mode 100644 index f267b6a32870a59f93003b1b59b1c9a3ba481ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3420 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 diff --git a/42sh/obj/toolz_termcaps.o b/42sh/obj/toolz_termcaps.o deleted file mode 100644 index c5c7fe9b8766888d9d333cd77de9752edc9faa03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5264 zcmc&%eQZ4;!Z)JkQ)bKiN6 z{SsQH{jn?GckcPPzjMw#_uY5>=Z`-4#3h906nLOlp^r&C{OD+l&_l%Ep$*oVigC8F zcwh?ZKAvY7x#;d3Ga!cXba2blGrTqW0R@6acoa*|JjSRJ`$=v!!-!;anRqhB0z00C zqq9C)ZOt^Pqmo5DebL^0%mAp;7{-QY+MoJr$?AEIOQS_X%h~WCs(`fc5~+x?x8oh9 z5KZ>OF7|5JDrt>Ci~$E$?p^XoZhz+Pp{KZX3>DJrun9g62I)J|`P2v%=Wz zP%$_?`Rm)aZ_~Wunc{`+v*q}q^T7!UtIW@pPxEu-Q1D90&*yA@;9??F7}MZ$V)B=! z&k56Ke}8|#yYv9L63TyJ%5UX(J~&0<&(MyvvB@@@?U&+CIWl@Emr~3N zm%In=gK#z&Z=*|xf|p9=^~3Vc@b69j3>BWk$3^dfg_wx~VEdsOg)s+J^XQr3&WneF z7fbMJmmXe!47Mu%$&(hI3a_w6cn|D>a(1xZgHI|s?H76(M5r)9 zI5+_ewM!4LUv2rp4ua}D7HM!|^1TY5BkoY)3>5CkJ+ylZ=UTeYCi_G_E!ycz1CM-OWHXWG1kRwQXkR>s>rQhnl}hZz zWh%2H5>96W5z)Lk3y|j6uGIFvaPz81vjd_(XT+j8gO1fS-4>Y7#`i``f@H5jxTK?D zIGZc+J5oENMlNOaMq{yfQpA%vLD!)Nv~Jgu$9=~-9%c-En}pFLVAb-Mof(G*AmiULJHWB z0u@Ms3Zxc=B*z)SS}LvUr-Zatn^~2$6)0=}h#8dG2W0m+WA@!3u2o^`FJmmLTra>- zKZUWbxnIY43`6G<_gfgA$I$Vtei6jwcB$17p>MW_pi&=6I^?hmR3n)tbbL>?f}zH3|9tgQ!*R!z;}1Lwc>;YO`uEZ4I0>T@P5_;nT6fS_6(@vR zJ&ZqLUR4<5?aZq+!B_=Ilw&1KYIDW<-`G&T)Ny}Mjq;Xe3Dht{yeGf~rchHZs z{w0&nnr|(;w)ZKa?e=NDI+uGCR+QrX==*P)%im+-3(@ZJeb@1odh72H*=<1o4cl=Z zbK23?^nGaJaXxd}JrBD9w&T3!w0jeFV{FIy&9YmIJ>wAHfu*K>?5W37{R2jZn*Gxx zn)BIAb37SIyV3vq~q_>ssBMbUXwN3WVPNQ9RVryC#7C-H+ z6UH~>J$ZRQrn@?%J|t`On0!FbNmr}955uKUR70^vDSUdX^uY5qIC7Jx|6#JP=B9iY zjy$b^UN2n*sl$sCK5Mr^0-vqYH$+dT{*rWU1wo4XJJ5|%NS+SaI4T!*$c9$Am{-I7 z;Edr8hhvSEmxi}V4N_mU2|4Ec7* zl|wYOu2oj)Uz5`P;8t06N;P;?S{GP_b{Je)y}|)CGznE?fs%1^zl1 zlK%^oz8@5=X*DS6SAgQzg*VJ}KByNCtVToP zdssmK{fHlD8+y-`p7|k5&-QJgtWuIyHlEIxa(%?c3uD&h(2|s{k0eOvbJm?xO#!d& ngSZ3c!gyPgu|zbNN-CZ0{z%i!D Date: Fri, 20 Jan 2017 18:17:57 +0100 Subject: [PATCH 03/67] add some work --- 42sh/includes/ft_readline.h | 3 +- 42sh/src/line-editing/libftprintf.a | Bin 337424 -> 0 bytes 42sh/src/line-editing/print_and_del.c | 56 +++++++++++++++---------- 42sh/src/line-editing/prompt.c | 2 +- 42sh/src/line-editing/reader.c | 4 +- 42sh/src/line-editing/readline.c | 6 +-- 42sh/src/line-editing/toolz.c | 16 ++++++- 42sh/src/line-editing/toolz2.c | 2 +- 42sh/src/line-editing/toolz_termcaps.c | 5 ++- 9 files changed, 63 insertions(+), 31 deletions(-) delete mode 100644 42sh/src/line-editing/libftprintf.a diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index a9e83df6..550c1959 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: sbenning +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/08 18:02:25 by sbenning #+# #+# */ -/* Updated: 2017/01/19 16:47:18 by gwojda ### ########.fr */ +/* Updated: 2017/01/20 17:35:02 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -58,6 +58,7 @@ typedef struct s_list_history struct s_list_history *next; } t_list_history; +int ft_is_next_char(char *str, char c); long long ft_pow(int nbr, int power); char *ft_strndup(char const *s, int n); char *ft_strdupi(char const *s); diff --git a/42sh/src/line-editing/libftprintf.a b/42sh/src/line-editing/libftprintf.a deleted file mode 100644 index 430239f15acf8a914387be4b1043d25005e17191..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337424 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 E7gUFMm;e9( diff --git a/42sh/src/line-editing/print_and_del.c b/42sh/src/line-editing/print_and_del.c index 2aea0b92..513852b8 100644 --- a/42sh/src/line-editing/print_and_del.c +++ b/42sh/src/line-editing/print_and_del.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:02:43 by gwojda #+# #+# */ -/* Updated: 2017/01/19 18:08:54 by gwojda ### ########.fr */ +/* Updated: 2017/01/20 17:49:25 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,8 +25,8 @@ void ft_print(char **str, int ret, size_t *i) } ft_putnc('\b', j - 1); ++(*i); -} -*/ +}*/ + void ft_print(char **str, int ret, size_t *i) { size_t len; @@ -39,34 +39,48 @@ void ft_print(char **str, int ret, size_t *i) boolean2 = 0; *str = ft_realloc_imput(*str, ret, *i); tmp_len = ft_strlen(*str); + sleep(1); ft_puttermcaps("cd"); - write(1, *str + *i, 1); - if ((ft_nb_last_line(*str, *i + 1) - + (len % ft_size_term()) == ft_size_term() - 1) && (*str)[*i + 1] == '\n') + sleep(1); + if (ft_is_next_char(*str, '\n') && + ft_nb_last_line(*str, *i + 1) + (len % ft_size_term()) == ft_size_term() - 2) { - ft_putchar(' '); + sleep(1); + write(1, *str + *i, 1); + sleep(1); + ft_putnc(' ', ft_size_term()); + sleep(1); + write(1, *str + *i + 1, ft_strlen(*str + *i + 1)); + sleep(1); + ft_puttermcaps("up"); boolean2 = 1; } - if ((*str)[*i + 1] == '\n' && (*str)[*i + 2] && ft_strlen(*str) > *i + 2) - write(1, *str + *i + 1, ft_strlen(*str + *i + 2)); else - write(1, *str + *i + 1, ft_strlen(*str + *i + 1)); + write(1, *str + *i, ft_strlen(*str + *i)); + sleep(1); ++(*i); while ((*str)[*i + len] && (*str)[*i + len] != '\n') ++len; - if ((*i && !(ft_nb_last_line(*str, *i) - + (len % ft_size_term()))) || ft_nb_last_line(*str, *i) - + (len % ft_size_term()) == ft_size_term() - 1) - { - --(tmp_len); + sleep(1); + if (len) + --len; +// if (ft_nb_last_line(*str, *i) + (len % ft_size_term()) == ft_size_term() - 1) +// { +// --(tmp_len); +// ft_move_to_beggin(*str, &tmp_len); +// boolean = 1; +// } +// else ft_move_to_beggin(*str, &tmp_len); - boolean = 1; - } - else - ft_move_to_beggin(*str, &tmp_len); - if (boolean2) - ft_puttermcaps("up"); +// ft_printf("\n\n\n%d\n\n\n\n", ft_nb_last_line(*str, *i) + (len % ft_size_term()) ); + sleep(1); + + if (boolean2) + ft_puttermcaps("up"); write(1, *str, *i); + if (boolean2) + ft_puttermcaps("do"); + sleep(1); if (boolean) ft_putstr(" \b"); } diff --git a/42sh/src/line-editing/prompt.c b/42sh/src/line-editing/prompt.c index f72dbc7a..ec630120 100644 --- a/42sh/src/line-editing/prompt.c +++ b/42sh/src/line-editing/prompt.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:51:33 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:48:32 by gwojda ### ########.fr */ +/* Updated: 2017/01/20 11:30:17 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/reader.c b/42sh/src/line-editing/reader.c index 48bc68e7..7c647b55 100644 --- a/42sh/src/line-editing/reader.c +++ b/42sh/src/line-editing/reader.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:52:57 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:43:13 by gwojda ### ########.fr */ +/* Updated: 2017/01/20 18:15:12 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -48,7 +48,7 @@ void ft_read_it(int input, size_t *pos, char **str) ++i; while (i < 4) { - if (t[i]) + if (t[i] && ft_isprint(t[i])) { *str = ft_realloc_imput(*str, t[i], *pos); ++(*pos); diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 40c33543..78daff55 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:43:16 by gwojda ### ########.fr */ +/* Updated: 2017/01/20 12:07:02 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -50,14 +50,14 @@ int ft_readline(void) static t_list_history *head = NULL; ft_prompt(); - if (tcsetattr(0, TCSADRAIN, ft_stats_term_termcaps()) == -1) + if (tcsetattr(0, TCSANOW, ft_stats_term_termcaps()) == -1) return (-1); data_singleton()->line.input = ft_lecture(head); ft_putstr("\n"); ft_check_quotes(&data_singleton()->line.input, head); if (data_singleton()->line.input) ft_push_back_history(&head, ft_create_history_list(data_singleton()->line.input)); - if (tcsetattr(0, TCSADRAIN, ft_save_stats_term()) == -1) + if (tcsetattr(0, TCSANOW, ft_save_stats_term()) == -1) return (-1); return (0); } diff --git a/42sh/src/line-editing/toolz.c b/42sh/src/line-editing/toolz.c index 45bab9f5..2dbe2a05 100644 --- a/42sh/src/line-editing/toolz.c +++ b/42sh/src/line-editing/toolz.c @@ -6,12 +6,26 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/16 17:06:30 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:43:28 by gwojda ### ########.fr */ +/* Updated: 2017/01/20 17:34:57 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" +int ft_is_next_char(char *str, char c) +{ + int i; + + i = 0; + while (str[i]) + { + if (str[i] == c) + return (1); + ++i; + } + return (0); +} + void ft_putnc(char c, int n) { int i; diff --git a/42sh/src/line-editing/toolz2.c b/42sh/src/line-editing/toolz2.c index bb667269..64b2d493 100644 --- a/42sh/src/line-editing/toolz2.c +++ b/42sh/src/line-editing/toolz2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/07 11:00:28 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:43:32 by gwojda ### ########.fr */ +/* Updated: 2017/01/20 12:36:28 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/toolz_termcaps.c b/42sh/src/line-editing/toolz_termcaps.c index 4607aeab..28d558a0 100644 --- a/42sh/src/line-editing/toolz_termcaps.c +++ b/42sh/src/line-editing/toolz_termcaps.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/08 12:35:11 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:43:23 by gwojda ### ########.fr */ +/* Updated: 2017/01/20 18:03:59 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -48,6 +48,8 @@ int ft_nb_last_line(char *str, size_t pos) int len; len = 0; + if (str[pos] == '\n') + --pos; if (!ft_get_ind_prev(str, pos)) len += data_singleton()->line.prompt_size; len += ft_get_size_prev(str, pos); @@ -79,6 +81,7 @@ void ft_move_to_beggin(char *str, size_t *pos) { if (str[*pos] == '\n') { + ft_printf("\n\n\nft_nb_line(str, *pos - 1) = %d\n\n\n", ft_nb_line(str, *pos - 1)); str_len = ft_nb_line(str, *pos - 1) + 1; while (str_len) { From ee7ddc5e14d57337a1f4054ddac46f9ab8fd2439 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 20 Jan 2017 19:34:18 +0100 Subject: [PATCH 04/67] builtin_read first commit --- 42sh/includes/builtin.h | 3 +- 42sh/includes/builtin_read.h | 55 +++++++++++++++++ 42sh/includes/lexer.h | 2 +- 42sh/src/builtin/builtin_read.c | 103 ++++++++++++++++++++++++++++++++ 42sh/src/builtin/is_builtin.c | 3 +- 42sh/src/main/main.c | 2 +- 6 files changed, 164 insertions(+), 4 deletions(-) create mode 100644 42sh/includes/builtin_read.h create mode 100644 42sh/src/builtin/builtin_read.c diff --git a/42sh/includes/builtin.h b/42sh/includes/builtin.h index 42f2543a..248a41ac 100644 --- a/42sh/includes/builtin.h +++ b/42sh/includes/builtin.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 17:21:56 by jhalford #+# #+# */ -/* Updated: 2017/01/09 16:57:22 by jhalford ### ########.fr */ +/* Updated: 2017/01/20 15:11:37 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,6 +15,7 @@ # include "types.h" # include "libft.h" +# include "builtin_read.h" t_execf *is_builtin(t_process *p); int builtin_env(const char *path, char *const argv[], char *const envp[]); diff --git a/42sh/includes/builtin_read.h b/42sh/includes/builtin_read.h new file mode 100644 index 00000000..c51f201d --- /dev/null +++ b/42sh/includes/builtin_read.h @@ -0,0 +1,55 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* builtin_read.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/20 15:02:39 by jhalford #+# #+# */ +/* Updated: 2017/01/20 19:32:45 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef BUILTIN_H +# define BUILTIN_H + +# include "types.h" +# include "libft.h" +# include "builtin.h" +# include "minishell.h" + +# define READ_OPT_LA (1 << 0) +# define READ_OPT_LD (1 << 1) +# define READ_OPT_LE (1 << 2) +# define READ_OPT_LI (1 << 3) +# define READ_OPT_LN (1 << 4) +# define READ_OPT_UN (1 << 5) +# define READ_OPT_LP (1 << 6) +# define READ_OPT_LR (1 << 7) +# define READ_OPT_LS (1 << 8) +# define READ_OPT_LT (1 << 9) +# define READ_OPT_LU (1 << 10) + +typedef struct s_read t_read; + +struct s_read +{ + char delim; + int nchars; + char *prompt; + int timeout; + int fd; +}; + +struct s_readopt +{ + char letter; + t_flag flag; + int (*get)(t_read *data, char *arg); +}; + +extern t_readopt g_readtab[]; + +int builtin_read(const char *path, char *const av[], char *const envp[]); + +#endif diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 03276719..32641bb4 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:50 by jhalford #+# #+# */ -/* Updated: 2017/01/12 14:57:41 by jhalford ### ########.fr */ +/* Updated: 2017/01/20 15:24:55 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/builtin/builtin_read.c b/42sh/src/builtin/builtin_read.c new file mode 100644 index 00000000..f9137519 --- /dev/null +++ b/42sh/src/builtin/builtin_read.c @@ -0,0 +1,103 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* builtin_read.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/20 15:01:45 by jhalford #+# #+# */ +/* Updated: 2017/01/20 19:32:44 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "builtin_read.h" + +t_readopt g_readtab[] = +{ + {'a', READ_OPT_LA, NULL}, + {'d', READ_OPT_LD, NULL}, + {'e', READ_OPT_LE, NULL}, + {'i', READ_OPT_LI, NULL}, + {'n', READ_OPT_LN, NULL}, + {'N', READ_OPT_UN, NULL}, + {'p', READ_OPT_LP, NULL}, + {'r', READ_OPT_LR, NULL}, + {'s', READ_OPT_LS, NULL}, + {'t', READ_OPT_LT, NULL}, + {'u', READ_OPT_LU, NULL}, + {0, 0, 0}, +}; + +void bt_read_init(t_read *data) +{ + data.delim = '\n'; + data.nchars = -1; + data.prompt = NULL; + data.timeout = -1; + data.fd = 0; +} + +t_readopt bt_read_getopt(char letter) +{ + int i; + + i = 0; + while (g_readtab[i].letter) + { + if (g_readtab[i].letter == letter) + return (g_readtab[i]); + } + return (NULL); +} + +int bt_read_parse(t_read *data, char **av) +{ + int i; + int j; + int k; + t_readopt opt; + + while (av[i]) + { + j = 0; + if (av[i][j++] == '-') + { + if (av[i][j] == '-') + { + i++; + break ; + } + while (av[i][j]) + { + if (!(opt = bt_read_getopt(av[i][j]))) + { + ft_dprintf(2, "%s: bad option: %c", SHELL_NAME, av[i][j]); + return (2); + } + data->opts |= opt.flag; + if (data->get) + { + (*data->get)(data, av[i + 1]); + break ; + } + j++; + } + } + i++; + } + if (av[i]) + bt_read_getnames(()) + return (0); +} + +int builtin_read(const char *path, char *const av[], char *const envp[]) +{ + t_read data; + int i; + + (void)path; + (void)envp; + bt_read_init(&data); + if ((i = bt_read_parse(&data, (char **)av))) + return (i); +} diff --git a/42sh/src/builtin/is_builtin.c b/42sh/src/builtin/is_builtin.c index 7dbdda0c..7b1e781e 100644 --- a/42sh/src/builtin/is_builtin.c +++ b/42sh/src/builtin/is_builtin.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:09:57 by jhalford #+# #+# */ -/* Updated: 2017/01/09 16:58:13 by jhalford ### ########.fr */ +/* Updated: 2017/01/20 15:01:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,6 +22,7 @@ t_stof g_builtin[] = { {"jobs", &builtin_jobs}, {"fg", &builtin_fg}, {"bg", &builtin_bg}, + {"read", &builtin_read}, {NULL, NULL}, }; diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 27e00034..fafa3727 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/12 14:02:30 by jhalford ### ########.fr */ +/* Updated: 2017/01/20 15:23:46 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From e8534584659585441056b3b9758f78d75e9e8f57 Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Sat, 21 Jan 2017 18:42:42 +0100 Subject: [PATCH 05/67] modif des termcaps : nouvelle version avec ajout/suppr/del/mouv par ligne (option fleche haut/fleche bas)/ home/end qui fonctionne. --- 42sh/includes/ft_readline.h | 18 +-- 42sh/src/line-editing/get_touch.c | 22 +--- 42sh/src/line-editing/get_touch_toolz.c | 17 +-- 42sh/src/line-editing/get_touch_toolz_2.c | 110 +++++++++-------- 42sh/src/line-editing/move_to_line.c | 114 +++++++++-------- 42sh/src/line-editing/print_and_del.c | 142 +++++----------------- 42sh/src/line-editing/tool_line.c | 60 +++++++++ 42sh/src/line-editing/tool_line_2.c | 26 ++++ 42sh/src/line-editing/toolz.c | 16 +-- 42sh/src/line-editing/toolz_parseur.c | 88 ++++++++++---- 42sh/src/line-editing/toolz_termcaps.c | 2 +- 11 files changed, 321 insertions(+), 294 deletions(-) create mode 100644 42sh/src/line-editing/tool_line.c create mode 100644 42sh/src/line-editing/tool_line_2.c diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index 550c1959..6f3cb1b2 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: sbenning +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/08 18:02:25 by sbenning #+# #+# */ -/* Updated: 2017/01/20 17:35:02 by gwojda ### ########.fr */ +/* Updated: 2017/01/20 19:08:51 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -58,7 +58,16 @@ typedef struct s_list_history struct s_list_history *next; } t_list_history; -int ft_is_next_char(char *str, char c); +void ft_get_beggin_with_curs(char *str, size_t *pos); +void ft_history(char **str, int ret, t_list_history **head, size_t *pos); +void ft_suppr(char **str, size_t *i); +void ft_del(char **str, size_t *i); +void ft_current_str(char *str, size_t pos); +int ft_strlen_next(char *str, size_t pos); +void ft_putall_current_str(char *str, size_t *pos); +void ft_get_next_str(char *str, size_t *pos); +void ft_get_beggin(char *str, size_t *pos); + long long ft_pow(int nbr, int power); char *ft_strndup(char const *s, int n); char *ft_strdupi(char const *s); @@ -83,10 +92,6 @@ void ft_init_line(void); void ft_read_it(int input, size_t *pos, char **str); void ft_check_quotes(char **s, t_list_history *head); int ft_check_quotes_num(char *s); -void ft_del_2(char **str, size_t *i); -void ft_del_1(char **str, size_t *i); -void ft_suppr_2(char **str, size_t *i); -void ft_suppr_1(char **str, size_t *i); void ft_print(char **str, int ret, size_t *i); void ft_move_to_line(int ret, size_t *pos, char *str); void ft_get_head(t_list_history **head); @@ -96,7 +101,6 @@ void ft_curse_move(char *str); void ft_move_suppr(char *str, size_t pos); void ft_move_dell(char *str, size_t pos); void ft_move_to_word(int ret, size_t *pos, char *str); -void ft_history(char **str, int ret, t_list_history **head); void ft_move_term(int ret, size_t *pos, char *str); void ft_move_left(size_t pos, char *str); void ft_home_end(char *str, int ret, size_t *pos); diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index d1d46075..958eba94 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:42:49 by gwojda ### ########.fr */ +/* Updated: 2017/01/21 11:12:55 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,19 +15,9 @@ static int ft_lecture_3(int ret, char **str, size_t *i) { if (ret == 127 && (*i) > 0) - { - if ((*str)[*i - 1] != '\n') - ft_suppr_1(str, i); - else - ft_suppr_2(str, i); - } + ft_suppr(str, i); else if (ret == TOUCHE_DELETE && (*str) && (*i) < ft_strlen((*str))) - { - if ((*str)[*i] != '\n') - ft_del_1(str, i); - else - ft_del_2(str, i); - } + ft_del(str, i); else return (0); return (1); @@ -69,11 +59,9 @@ char *ft_lecture(t_list_history *head) continue ; else if (ret == FLECHE_BAS || ret == FLECHE_HAUT) { + ft_history(&str, ret, &head, &i); if (str) - ft_putstr(str + i); - ft_history(&str, ret, &head); - if (str) - i = ft_strlen(str); + i = ft_strlen_next(str, i); else i = 0; } diff --git a/42sh/src/line-editing/get_touch_toolz.c b/42sh/src/line-editing/get_touch_toolz.c index 8a715fcc..cd304a95 100644 --- a/42sh/src/line-editing/get_touch_toolz.c +++ b/42sh/src/line-editing/get_touch_toolz.c @@ -6,17 +6,20 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:42:54 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:42:45 by gwojda ### ########.fr */ +/* Updated: 2017/01/21 11:40:51 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -static void ft_history_2(char **str, int ret, t_list_history **head) +void ft_history_2(char **str, int ret, t_list_history **head, size_t *pos) { if (*str) { - ft_curse_move(*str); + --(*pos); + ft_get_beggin_with_curs(*str, pos); + ft_puttermcaps("cd"); + *pos = 0; ft_strdel(str); } if (ret == FLECHE_BAS) @@ -28,15 +31,15 @@ static void ft_history_2(char **str, int ret, t_list_history **head) else *str = ft_strdup((*head)->str); if (*str) - ft_putstr(*str); + ft_current_str(*str, *pos); } } -void ft_history(char **str, int ret, t_list_history **head) +void ft_history(char **str, int ret, t_list_history **head, size_t *pos) { if (!*head) return ; - ft_history_2(str, ret, head); + ft_history_2(str, ret, head, pos); if (ret == FLECHE_HAUT) { if ((*head)->prev) @@ -46,7 +49,7 @@ void ft_history(char **str, int ret, t_list_history **head) else *str = ft_strdup((*head)->str); if (*str) - ft_putstr(*str); + ft_current_str(*str, *pos); } } diff --git a/42sh/src/line-editing/get_touch_toolz_2.c b/42sh/src/line-editing/get_touch_toolz_2.c index 778ac3d4..265add6f 100644 --- a/42sh/src/line-editing/get_touch_toolz_2.c +++ b/42sh/src/line-editing/get_touch_toolz_2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:43:58 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:42:41 by gwojda ### ########.fr */ +/* Updated: 2017/01/21 17:13:55 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,64 +22,60 @@ void ft_home_end(char *str, int ret, size_t *pos) { if (ret == TOUCHE_END && str) { - ft_putstr(str + *pos); - (*pos) = ft_strlen(str); + if (*pos) + { + --(*pos); + ft_get_beggin_with_curs(str, pos); + } + ft_puttermcaps("cd"); + while (str[*pos]) + ++(*pos); + ft_get_beggin(str, pos); + ft_current_str(str, *pos); + ft_get_next_str(str, pos); } else if (ret == TOUCHE_HOME) - ft_move_to_beggin(str, pos); -} - - -void ft_move_left(size_t pos, char *str) -{ - int i; - int nb; - int prompt_size; - - prompt_size = data_singleton()->line.prompt_size; - i = 1; - nb = ft_nb_last_line(str, pos - 1) + 3; - while (i < nb) { - ft_puttermcaps("nd"); - ++i; - } - if (!(pos - i) || i == 1) - { - while (--prompt_size + 3) - ft_puttermcaps("nd"); + if (*pos) + { + --(*pos); + ft_get_beggin_with_curs(str, pos); + if (str[*pos + 1] == '\n') + ft_puttermcaps("nd"); + } + ft_puttermcaps("cd"); + *pos = 0; + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + if (!str[*pos]) + --(*pos); + ft_get_beggin_with_curs(str, pos); } } void ft_move_term(int ret, size_t *pos, char *str) { - int len; - int str_len; + size_t tmp; - len = 0; - str_len = 0; - if (ret == FLECHE_DROITE && str && ft_strlen(str) > *pos - && str[(*pos)] == '\n') + if (ret == FLECHE_DROITE && str && ft_strlen(str) > *pos) { - ft_puttermcaps("do"); - ++(*pos); - } - else if (ret == FLECHE_GAUCHE && *pos > 0 - && str[(*pos) - 1] == '\n') - { - ft_puttermcaps("up"); - --(*pos); - str_len = ft_nb_line(str, *pos - 1); - len = ft_get_size_prev(str, *pos - 1) - (ft_size_term() * str_len); - if (ft_get_ind_prev(str, *pos - 1) == 0) - len += data_singleton()->line.prompt_size + 2; - while (--len + 1) - ft_puttermcaps("nd"); - } - else if (ret == FLECHE_DROITE && str && ft_strlen(str) > *pos) - { - ft_putchar(str[*pos]); - ++(*pos); + if (str[*pos] == '\n') + { + tmp = *pos - 1; + ft_get_beggin_with_curs(str, &tmp); + ft_puttermcaps("cd"); + ++(*pos); + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + if (!str[*pos]) + --(*pos); + ft_get_beggin_with_curs(str, pos); + } + else + { + ft_putchar(str[*pos]); + ++(*pos); + } if (ft_nb_last_line(str, *pos) == ft_size_term() - 1) { ft_putchar(' '); @@ -88,7 +84,19 @@ void ft_move_term(int ret, size_t *pos, char *str) } else if (ret == FLECHE_GAUCHE && *pos > 0) { - ft_puttermcaps("le"); - --(*pos); + if (str[*pos - 1] == '\n') + { + ft_puttermcaps("cd"); + (*pos) -= 2; + ft_get_beggin(str, pos); + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + ++(*pos); + } + else + { + ft_puttermcaps("le"); + --(*pos); + } } } diff --git a/42sh/src/line-editing/move_to_line.c b/42sh/src/line-editing/move_to_line.c index ec451eae..17f154ca 100644 --- a/42sh/src/line-editing/move_to_line.c +++ b/42sh/src/line-editing/move_to_line.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:21:40 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:43:01 by gwojda ### ########.fr */ +/* Updated: 2017/01/21 17:29:08 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,77 +14,73 @@ static void ft_up(size_t *pos, char *str) { - int i; - int j; - int len; - int tmp; - int size_window; + int i; + int len; - size_window = ft_size_term(); i = 0; - len = 0; - j = 0; - if (!*pos) - return ; - while (len < size_window && *pos - i) + if (str[*pos - 1] == '\n') { - if (i && str[*pos - i] == '\n') - { - ft_puttermcaps("up"); - tmp = ft_nb_last_line(str, *pos - 1 - i) + 3; - if (ft_get_ind_prev(str, *pos - 1 - i)) - tmp -= 2; - while (j < tmp - 1) - { - ft_puttermcaps("nd"); - ++j; - } - if (!ft_get_ind_prev(str, *pos - 1 - i)) - ft_putchar('\b'); - len += ft_size_term() - tmp; - } - else - { - ft_putchar('\b'); - len++; - } - i++; - } - if (!(*pos - i)) - { - (*pos) = 0; - return ; - } - if (j) - { - ft_puttermcaps("nd"); + ft_puttermcaps("cd"); + (*pos) -= 2; + ft_get_beggin(str, pos); + ft_current_str(str, *pos); + ft_get_next_str(str, pos); ++(*pos); } - *pos -= i; + else + { + len = ft_size_term(); + if (str[*pos - i] == '\n') + { + --len; + ft_puttermcaps("le"); + ++i; + } + while (*pos - i && str[*pos - i] != '\n' && --len + 1) + { + ft_puttermcaps("le"); + ++i; + } + if (str[*pos - i] == '\n') + { + ft_puttermcaps("nd"); + ++(*pos); + } + (*pos) -= i; + } } static void ft_down(size_t *pos, char *str) { - int len; - int size_window; - char boolean; + int i; + int len; - len = 0; - boolean = 0; - size_window = ft_size_term(); - while (str[*pos] && len < size_window) + i = 0; + if (str[*pos] == '\n') { - if (str[*pos] == '\n' && !boolean) + if (*pos) { - len += size_window - ft_nb_last_line(str, *pos - 1) - 2; - boolean = 1; + --(*pos); + ft_get_beggin_with_curs(str, pos); } - else if (str[*pos] == '\n' && boolean) - return ; - else - ++len; - ft_putchar(str[*pos]); - ++(*pos); + ft_puttermcaps("cd"); + ft_get_next_str(str, pos); + (*pos) += 2; + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + if (!(str[*pos])) + --(*pos); + ft_get_beggin_with_curs(str, pos); + } + else + { + len = ft_size_term(); + while (str[i + *pos] && str[i + *pos] != '\n' && --len + 1) + { + ft_putchar(str[i + *pos]); + ++i; + } + *pos += i; } } diff --git a/42sh/src/line-editing/print_and_del.c b/42sh/src/line-editing/print_and_del.c index 513852b8..9d2e437c 100644 --- a/42sh/src/line-editing/print_and_del.c +++ b/42sh/src/line-editing/print_and_del.c @@ -6,12 +6,12 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:02:43 by gwojda #+# #+# */ -/* Updated: 2017/01/20 17:49:25 by gwojda ### ########.fr */ +/* Updated: 2017/01/21 16:57:38 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -/* + void ft_print(char **str, int ret, size_t *i) { int j; @@ -25,128 +25,48 @@ void ft_print(char **str, int ret, size_t *i) } ft_putnc('\b', j - 1); ++(*i); -}*/ - -void ft_print(char **str, int ret, size_t *i) -{ - size_t len; - size_t tmp_len; - char boolean; - char boolean2; - - len = 0; - boolean = 0; - boolean2 = 0; - *str = ft_realloc_imput(*str, ret, *i); - tmp_len = ft_strlen(*str); - sleep(1); - ft_puttermcaps("cd"); - sleep(1); - if (ft_is_next_char(*str, '\n') && - ft_nb_last_line(*str, *i + 1) + (len % ft_size_term()) == ft_size_term() - 2) - { - sleep(1); - write(1, *str + *i, 1); - sleep(1); - ft_putnc(' ', ft_size_term()); - sleep(1); - write(1, *str + *i + 1, ft_strlen(*str + *i + 1)); - sleep(1); - ft_puttermcaps("up"); - boolean2 = 1; - } - else - write(1, *str + *i, ft_strlen(*str + *i)); - sleep(1); - ++(*i); - while ((*str)[*i + len] && (*str)[*i + len] != '\n') - ++len; - sleep(1); - if (len) - --len; -// if (ft_nb_last_line(*str, *i) + (len % ft_size_term()) == ft_size_term() - 1) -// { -// --(tmp_len); -// ft_move_to_beggin(*str, &tmp_len); -// boolean = 1; -// } -// else - ft_move_to_beggin(*str, &tmp_len); -// ft_printf("\n\n\n%d\n\n\n\n", ft_nb_last_line(*str, *i) + (len % ft_size_term()) ); - sleep(1); - - if (boolean2) - ft_puttermcaps("up"); - write(1, *str, *i); - if (boolean2) - ft_puttermcaps("do"); - sleep(1); - if (boolean) - ft_putstr(" \b"); } -void ft_suppr_1(char **str, size_t *i) +void ft_suppr(char **str, size_t *i) { - int j; + size_t tmp; - j = 0; - write(1, "\b", 1); - while (*((*str) + *i + j) && *((*str) + *i + j) != '\n') - { - ft_putchar(*((*str) + *i + j)); - ++j; - } --(*i); - write(1, " ", 1); - if (ft_nb_last_line(*str, *i) + j == ft_size_term() - 2) + tmp = *i; + *str = ft_remove_imput((*str), tmp); + ft_get_beggin_with_curs(*str, i); + ft_puttermcaps("cd"); + ft_current_str(*str, *i); + ft_get_next_str(*str, i); +/* if (ft_nb_last_line(*str, *i) == ft_size_term() - 2) { ft_puttermcaps("nd"); - ft_putnc('\b', j); + ft_putnc('\b', *i - tmp); } else - ft_putnc('\b', j + 1); - *str = ft_remove_imput((*str), (*i)); + ft_putnc('\b', *i - tmp + 1);*/ + ft_putnc('\b', *i - tmp); + (*i) = tmp; } -void ft_suppr_2(char **str, size_t *i) +void ft_del(char **str, size_t *i) { - int j; + size_t tmp; - j = 0; - ft_puttermcaps("up"); - ft_move_left(*i - 1, *str); - ft_puttermcaps("cd"); - ft_putstr(*str + *i); - ft_move_suppr(*str, *i); + tmp = *i; + *str = ft_remove_imput((*str), tmp); --(*i); - *str = ft_remove_imput((*str), (*i)); -} - -void ft_del_1(char **str, size_t *i) -{ - int j; - - j = 0; - while (*((*str) + *i + j + 1) && *((*str) + *i + j + 1) != '\n') - { - ft_putchar(*((*str) + *i + j + 1)); - ++j; - } - write(1, " ", 1); - if (ft_nb_last_line(*str, *i) + j == ft_size_term() - 2) - ft_putnc('\b', j); - else - ft_putnc('\b', j + 1); - (*str) = ft_remove_imput((*str), (*i)); -} - -void ft_del_2(char **str, size_t *i) -{ - int j; - - j = 1; + ft_get_beggin_with_curs(*str, i); ft_puttermcaps("cd"); - ft_putstr(*str + *i + 1); - ft_move_dell(*str, *i); - *str = ft_remove_imput((*str), (*i)); + ft_current_str(*str, *i); + ft_get_next_str(*str, i); +/* if (ft_nb_last_line(*str, *i) == ft_size_term() - 2) + { + ft_puttermcaps("nd"); + ft_putnc('\b', *i - tmp); + } + else + ft_putnc('\b', *i - tmp + 1);*/ + ft_putnc('\b', *i - tmp); + (*i) = tmp; } diff --git a/42sh/src/line-editing/tool_line.c b/42sh/src/line-editing/tool_line.c new file mode 100644 index 00000000..ac47c2f7 --- /dev/null +++ b/42sh/src/line-editing/tool_line.c @@ -0,0 +1,60 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* tool_line.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/20 18:20:23 by gwojda #+# #+# */ +/* Updated: 2017/01/21 17:04:13 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_get_beggin(char *str, size_t *pos) +{ + while ((*pos) && str[(*pos)] != '\n') + --(*pos); + if (str[(*pos)] == '\n') + ++(*pos); +} + +void ft_get_next_str(char *str, size_t *pos) +{ + while (str[(*pos)] && str[(*pos)] != '\n') + ++(*pos); + if (str[(*pos)] == '\n') + --(*pos); +} + +void ft_putall_current_str(char *str, size_t *pos) +{ + int len; + + len = 0; + ft_get_beggin(str, pos); + while (str[(*pos) + len] && str[(*pos) + len] != '\n') + ++len; + write(1, str + *pos, len); +} + +void ft_current_str(char *str, size_t pos) +{ + int len; + + len = 0; + while (str[pos + len] && str[pos + len] != '\n') + ++len; + write(1, str + pos, len); +} + +int ft_strlen_next(char *str, size_t pos) +{ + int len; + + len = 0; + while (str[pos + len] && str[pos + len] != '\n') + ++len; + return (len); +} diff --git a/42sh/src/line-editing/tool_line_2.c b/42sh/src/line-editing/tool_line_2.c new file mode 100644 index 00000000..f691a218 --- /dev/null +++ b/42sh/src/line-editing/tool_line_2.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* tool_line_2.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/20 19:07:52 by gwojda #+# #+# */ +/* Updated: 2017/01/21 16:52:48 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_get_beggin_with_curs(char *str, size_t *pos) +{ + while ((*pos) && str[(*pos)] != '\n') + { + --(*pos); + ft_puttermcaps("le"); + } + if (!*pos) + ft_puttermcaps("le"); + if (str[(*pos)] == '\n') + ++(*pos); +} diff --git a/42sh/src/line-editing/toolz.c b/42sh/src/line-editing/toolz.c index 2dbe2a05..c71ea256 100644 --- a/42sh/src/line-editing/toolz.c +++ b/42sh/src/line-editing/toolz.c @@ -6,26 +6,12 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/16 17:06:30 by gwojda #+# #+# */ -/* Updated: 2017/01/20 17:34:57 by gwojda ### ########.fr */ +/* Updated: 2017/01/20 18:54:46 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -int ft_is_next_char(char *str, char c) -{ - int i; - - i = 0; - while (str[i]) - { - if (str[i] == c) - return (1); - ++i; - } - return (0); -} - void ft_putnc(char c, int n) { int i; diff --git a/42sh/src/line-editing/toolz_parseur.c b/42sh/src/line-editing/toolz_parseur.c index 55c1881c..963ad457 100644 --- a/42sh/src/line-editing/toolz_parseur.c +++ b/42sh/src/line-editing/toolz_parseur.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/16 16:14:46 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:43:19 by gwojda ### ########.fr */ +/* Updated: 2017/01/21 18:16:56 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -52,40 +52,76 @@ char *ft_remove_imput(char *str, size_t pos) return (new_str2); } -static int ft_found_prev_word_pos(char *str, size_t *pos) -{ - size_t tmp; - - tmp = *pos; - while ((tmp) && (str[tmp] == ' ' || str[tmp] == '\n')) - --tmp; - while ((tmp) && str[tmp] != ' ' && str[tmp] != '\n') - --tmp; - return (tmp); -} - void ft_found_prev_word(char *str, size_t *pos) { - size_t tmp; + int i; - tmp = *pos; - ft_move_to_beggin(str, pos); - *pos = tmp; - tmp = ft_found_prev_word_pos(str, pos); - write(1, str, tmp); - *pos = tmp; + i = 0; + if (!*pos) + return ; + if (str[*pos - 1] == '\n') + { + ft_puttermcaps("cd"); + ft_get_beggin(str, pos); + --(*pos); + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + ++(*pos); + } + else + { + if (!(str[*pos - i] == '\n' || str[*pos - i] == ' ')) + { + ft_puttermcaps("le"); + --(*pos); + } + while (str[*pos - i] == '\n' || str[*pos - i] == ' ') + { + ft_puttermcaps("le"); + ++i; + } + while (*pos - i && str[*pos - i] != '\n' && str[*pos - i] != ' ') + { + ft_puttermcaps("le"); + ++i; + } + if (str[*pos - i] == '\n' || str[*pos - i] == ' ') + { + ft_puttermcaps("nd"); + ++(*pos); + } + (*pos) -= i; + } } void ft_found_next_word(char *str, size_t *pos) { - while (str[(*pos)] == ' ' || str[(*pos)] == '\n') + int i; + + i = 0; + if (str[*pos] == '\n') { - ft_putchar(str[(*pos)]); - ++(*pos); + sleep(1); + if (*pos) + { + --(*pos); + ft_get_beggin_with_curs(str, pos); + } + ft_puttermcaps("cd"); + ft_get_next_str(str, pos); + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + (*pos) -= 2; + ft_get_beggin_with_curs(str, pos); + (*pos) += 2; } - while (str[(*pos)] && str[(*pos)] != ' ' && str[(*pos)] != '\n') + else { - ft_putchar(str[(*pos)]); - ++(*pos); + while (str[i + *pos] && str[i + *pos] != '\n' && str[i + *pos] != ' ') + { + ft_putchar(str[i + *pos]); + ++i; + } + *pos += i; } } diff --git a/42sh/src/line-editing/toolz_termcaps.c b/42sh/src/line-editing/toolz_termcaps.c index 28d558a0..d33c3d35 100644 --- a/42sh/src/line-editing/toolz_termcaps.c +++ b/42sh/src/line-editing/toolz_termcaps.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/08 12:35:11 by gwojda #+# #+# */ -/* Updated: 2017/01/20 18:03:59 by gwojda ### ########.fr */ +/* Updated: 2017/01/21 14:31:47 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ From ad3ad6f31b7498d7f3a2ea86c7ce4fbb87aa8205 Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Sun, 22 Jan 2017 11:16:53 +0100 Subject: [PATCH 06/67] ajout rapide du ctrl C/ctrl D pour quitter rapidement le shell --- 42sh/includes/ft_readline.h | 4 +++- 42sh/obj/ast_free.o | Bin 0 -> 3596 bytes 42sh/obj/builtin_bg.o | Bin 0 -> 5336 bytes 42sh/obj/builtin_cd.o | Bin 0 -> 4988 bytes 42sh/obj/builtin_echo.o | Bin 0 -> 2676 bytes 42sh/obj/builtin_env.o | Bin 0 -> 2348 bytes 42sh/obj/builtin_exit.o | Bin 0 -> 4544 bytes 42sh/obj/builtin_fg.o | Bin 0 -> 5276 bytes 42sh/obj/builtin_jobs.o | Bin 0 -> 4920 bytes 42sh/obj/builtin_setenv.o | Bin 0 -> 3296 bytes 42sh/obj/builtin_unsetenv.o | Bin 0 -> 2808 bytes 42sh/obj/command_getoutput.o | Bin 0 -> 6472 bytes 42sh/obj/copy_cut_paste.o | Bin 0 -> 5184 bytes 42sh/obj/data_exit.o | Bin 0 -> 5160 bytes 42sh/obj/data_init.o | Bin 0 -> 5852 bytes 42sh/obj/data_singleton.o | Bin 0 -> 5356 bytes 42sh/obj/do_job_notification.o | Bin 0 -> 4948 bytes 42sh/obj/exec_ampersand.o | Bin 0 -> 3116 bytes 42sh/obj/exec_and_if.o | Bin 0 -> 6660 bytes 42sh/obj/exec_command.o | Bin 0 -> 5844 bytes 42sh/obj/exec_dgreat.o | Bin 0 -> 3860 bytes 42sh/obj/exec_great.o | Bin 0 -> 3856 bytes 42sh/obj/exec_less.o | Bin 0 -> 3848 bytes 42sh/obj/exec_or_if.o | Bin 0 -> 6652 bytes 42sh/obj/exec_pipe.o | Bin 0 -> 6416 bytes 42sh/obj/exec_semi.o | Bin 0 -> 2912 bytes 42sh/obj/ft_exec.o | Bin 0 -> 4688 bytes 42sh/obj/ft_findexec.o | Bin 0 -> 4740 bytes 42sh/obj/ft_parse.o | Bin 0 -> 5264 bytes 42sh/obj/ft_post_tokenize.o | Bin 0 -> 3404 bytes 42sh/obj/ft_putast.o | Bin 0 -> 3896 bytes 42sh/obj/ft_putast2.o | Bin 0 -> 4376 bytes 42sh/obj/ft_split_whitespaces.o | Bin 0 -> 4200 bytes 42sh/obj/ft_tokenize.o | Bin 0 -> 4916 bytes 42sh/obj/get_lexer_state.o | Bin 0 -> 3088 bytes 42sh/obj/get_touch.o | Bin 0 -> 5292 bytes 42sh/obj/get_touch_toolz.o | Bin 0 -> 4652 bytes 42sh/obj/get_touch_toolz_2.o | Bin 0 -> 5264 bytes 42sh/obj/is_builtin.o | Bin 0 -> 4492 bytes 42sh/obj/job_addprocess.o | Bin 0 -> 5048 bytes 42sh/obj/job_cmp_id.o | Bin 0 -> 3760 bytes 42sh/obj/job_format.o | Bin 0 -> 4020 bytes 42sh/obj/job_format_head.o | Bin 0 -> 4172 bytes 42sh/obj/job_free.o | Bin 0 -> 3924 bytes 42sh/obj/job_getprocess.o | Bin 0 -> 4784 bytes 42sh/obj/job_getrank.o | Bin 0 -> 4388 bytes 42sh/obj/job_is_completed.o | Bin 0 -> 5280 bytes 42sh/obj/job_is_stopped.o | Bin 0 -> 4796 bytes 42sh/obj/job_kill_all.o | Bin 0 -> 4180 bytes 42sh/obj/job_notify_change.o | Bin 0 -> 4456 bytes 42sh/obj/job_notify_new.o | Bin 0 -> 4568 bytes 42sh/obj/job_remove.o | Bin 0 -> 4512 bytes 42sh/obj/job_update_id.o | Bin 0 -> 3956 bytes 42sh/obj/job_update_status.o | Bin 0 -> 2732 bytes 42sh/obj/job_wait.o | Bin 0 -> 3712 bytes 42sh/obj/launch_process.o | Bin 0 -> 6328 bytes 42sh/obj/lexer_backslash.o | Bin 0 -> 3540 bytes 42sh/obj/lexer_default.o | Bin 0 -> 4000 bytes 42sh/obj/lexer_delim.o | Bin 0 -> 3600 bytes 42sh/obj/lexer_dquote.o | Bin 0 -> 3724 bytes 42sh/obj/lexer_great.o | Bin 0 -> 3872 bytes 42sh/obj/lexer_greatand.o | Bin 0 -> 3776 bytes 42sh/obj/lexer_less.o | Bin 0 -> 3864 bytes 42sh/obj/lexer_lessand.o | Bin 0 -> 3776 bytes 42sh/obj/lexer_number.o | Bin 0 -> 4280 bytes 42sh/obj/lexer_quote.o | Bin 0 -> 3608 bytes 42sh/obj/lexer_sep.o | Bin 0 -> 4008 bytes 42sh/obj/lexer_special.o | Bin 0 -> 3920 bytes 42sh/obj/lexer_var.o | Bin 0 -> 3948 bytes 42sh/obj/lexer_word.o | Bin 0 -> 3916 bytes 42sh/obj/line_return_toolz.o | Bin 0 -> 5768 bytes 42sh/obj/list_toolz.o | Bin 0 -> 4000 bytes 42sh/obj/main.o | Bin 0 -> 5176 bytes 42sh/obj/mark_job_as_running.o | Bin 0 -> 4432 bytes 42sh/obj/move_to_line.o | Bin 0 -> 5008 bytes 42sh/obj/parse_dgreat.o | Bin 0 -> 4616 bytes 42sh/obj/parse_dless.o | Bin 0 -> 4540 bytes 42sh/obj/parse_great.o | Bin 0 -> 4616 bytes 42sh/obj/parse_greatand.o | Bin 0 -> 4508 bytes 42sh/obj/parse_less.o | Bin 0 -> 4604 bytes 42sh/obj/parse_lessand.o | Bin 0 -> 4508 bytes 42sh/obj/parse_separator.o | Bin 0 -> 4300 bytes 42sh/obj/parse_subshell.o | Bin 0 -> 4644 bytes 42sh/obj/parse_word.o | Bin 0 -> 4296 bytes 42sh/obj/print_and_del.o | Bin 0 -> 4448 bytes 42sh/obj/process_cmp_pid.o | Bin 0 -> 3152 bytes 42sh/obj/process_format.o | Bin 0 -> 5316 bytes 42sh/obj/process_free.o | Bin 0 -> 3528 bytes 42sh/obj/process_mark_status.o | Bin 0 -> 4280 bytes 42sh/obj/process_redirect.o | Bin 0 -> 3340 bytes 42sh/obj/process_reset.o | Bin 0 -> 5116 bytes 42sh/obj/process_setexec.o | Bin 0 -> 4128 bytes 42sh/obj/process_setgroup.o | Bin 0 -> 4956 bytes 42sh/obj/prompt.o | Bin 0 -> 4764 bytes 42sh/obj/put_job_in_background.o | Bin 0 -> 4044 bytes 42sh/obj/put_job_in_foreground.o | Bin 0 -> 5456 bytes 42sh/obj/quotes_gest.o | Bin 0 -> 4408 bytes 42sh/obj/reader.o | Bin 0 -> 5096 bytes 42sh/obj/readline.o | Bin 0 -> 5488 bytes 42sh/obj/reduce_bquotes.o | Bin 0 -> 4400 bytes 42sh/obj/reduce_parens.o | Bin 0 -> 3980 bytes 42sh/obj/set_exitstatus.o | Bin 0 -> 2876 bytes 42sh/obj/shell_exit.o | Bin 0 -> 2620 bytes 42sh/obj/shell_get_avdata.o | Bin 0 -> 5464 bytes 42sh/obj/shell_get_opts.o | Bin 0 -> 3632 bytes 42sh/obj/shell_init.o | Bin 0 -> 3932 bytes 42sh/obj/sigchld_handler.o | Bin 0 -> 5180 bytes 42sh/obj/sigint_handler.o | Bin 0 -> 2608 bytes 42sh/obj/sigtstp_handler.o | Bin 0 -> 4128 bytes 42sh/obj/sigttin_handler.o | Bin 0 -> 2552 bytes 42sh/obj/sigttou_handler.o | Bin 0 -> 2552 bytes 42sh/obj/token_append.o | Bin 0 -> 2916 bytes 42sh/obj/token_cmp_type.o | Bin 0 -> 2676 bytes 42sh/obj/token_expand_var.o | Bin 0 -> 3048 bytes 42sh/obj/token_free.o | Bin 0 -> 3028 bytes 42sh/obj/token_init.o | Bin 0 -> 2760 bytes 42sh/obj/token_print.o | Bin 0 -> 3536 bytes 42sh/obj/tool_line.o | Bin 0 -> 4668 bytes 42sh/obj/tool_line_2.o | Bin 0 -> 2916 bytes 42sh/obj/toolz.o | Bin 0 -> 4676 bytes 42sh/obj/toolz2.o | Bin 0 -> 3420 bytes 42sh/obj/toolz_parseur.o | Bin 0 -> 6296 bytes 42sh/obj/toolz_termcaps.o | Bin 0 -> 5464 bytes 42sh/src/line-editing/get_touch.c | 4 +++- 124 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 42sh/obj/ast_free.o create mode 100644 42sh/obj/builtin_bg.o create mode 100644 42sh/obj/builtin_cd.o create mode 100644 42sh/obj/builtin_echo.o create mode 100644 42sh/obj/builtin_env.o create mode 100644 42sh/obj/builtin_exit.o create mode 100644 42sh/obj/builtin_fg.o create mode 100644 42sh/obj/builtin_jobs.o create mode 100644 42sh/obj/builtin_setenv.o create mode 100644 42sh/obj/builtin_unsetenv.o create mode 100644 42sh/obj/command_getoutput.o create mode 100644 42sh/obj/copy_cut_paste.o create mode 100644 42sh/obj/data_exit.o create mode 100644 42sh/obj/data_init.o create mode 100644 42sh/obj/data_singleton.o create mode 100644 42sh/obj/do_job_notification.o create mode 100644 42sh/obj/exec_ampersand.o create mode 100644 42sh/obj/exec_and_if.o create mode 100644 42sh/obj/exec_command.o create mode 100644 42sh/obj/exec_dgreat.o create mode 100644 42sh/obj/exec_great.o create mode 100644 42sh/obj/exec_less.o create mode 100644 42sh/obj/exec_or_if.o create mode 100644 42sh/obj/exec_pipe.o create mode 100644 42sh/obj/exec_semi.o create mode 100644 42sh/obj/ft_exec.o create mode 100644 42sh/obj/ft_findexec.o create mode 100644 42sh/obj/ft_parse.o create mode 100644 42sh/obj/ft_post_tokenize.o create mode 100644 42sh/obj/ft_putast.o create mode 100644 42sh/obj/ft_putast2.o create mode 100644 42sh/obj/ft_split_whitespaces.o create mode 100644 42sh/obj/ft_tokenize.o create mode 100644 42sh/obj/get_lexer_state.o create mode 100644 42sh/obj/get_touch.o create mode 100644 42sh/obj/get_touch_toolz.o create mode 100644 42sh/obj/get_touch_toolz_2.o create mode 100644 42sh/obj/is_builtin.o create mode 100644 42sh/obj/job_addprocess.o create mode 100644 42sh/obj/job_cmp_id.o create mode 100644 42sh/obj/job_format.o create mode 100644 42sh/obj/job_format_head.o create mode 100644 42sh/obj/job_free.o create mode 100644 42sh/obj/job_getprocess.o create mode 100644 42sh/obj/job_getrank.o create mode 100644 42sh/obj/job_is_completed.o create mode 100644 42sh/obj/job_is_stopped.o create mode 100644 42sh/obj/job_kill_all.o create mode 100644 42sh/obj/job_notify_change.o create mode 100644 42sh/obj/job_notify_new.o create mode 100644 42sh/obj/job_remove.o create mode 100644 42sh/obj/job_update_id.o create mode 100644 42sh/obj/job_update_status.o create mode 100644 42sh/obj/job_wait.o create mode 100644 42sh/obj/launch_process.o create mode 100644 42sh/obj/lexer_backslash.o create mode 100644 42sh/obj/lexer_default.o create mode 100644 42sh/obj/lexer_delim.o create mode 100644 42sh/obj/lexer_dquote.o create mode 100644 42sh/obj/lexer_great.o create mode 100644 42sh/obj/lexer_greatand.o create mode 100644 42sh/obj/lexer_less.o create mode 100644 42sh/obj/lexer_lessand.o create mode 100644 42sh/obj/lexer_number.o create mode 100644 42sh/obj/lexer_quote.o create mode 100644 42sh/obj/lexer_sep.o create mode 100644 42sh/obj/lexer_special.o create mode 100644 42sh/obj/lexer_var.o create mode 100644 42sh/obj/lexer_word.o create mode 100644 42sh/obj/line_return_toolz.o create mode 100644 42sh/obj/list_toolz.o create mode 100644 42sh/obj/main.o create mode 100644 42sh/obj/mark_job_as_running.o create mode 100644 42sh/obj/move_to_line.o create mode 100644 42sh/obj/parse_dgreat.o create mode 100644 42sh/obj/parse_dless.o create mode 100644 42sh/obj/parse_great.o create mode 100644 42sh/obj/parse_greatand.o create mode 100644 42sh/obj/parse_less.o create mode 100644 42sh/obj/parse_lessand.o create mode 100644 42sh/obj/parse_separator.o create mode 100644 42sh/obj/parse_subshell.o create mode 100644 42sh/obj/parse_word.o create mode 100644 42sh/obj/print_and_del.o create mode 100644 42sh/obj/process_cmp_pid.o create mode 100644 42sh/obj/process_format.o create mode 100644 42sh/obj/process_free.o create mode 100644 42sh/obj/process_mark_status.o create mode 100644 42sh/obj/process_redirect.o create mode 100644 42sh/obj/process_reset.o create mode 100644 42sh/obj/process_setexec.o create mode 100644 42sh/obj/process_setgroup.o create mode 100644 42sh/obj/prompt.o create mode 100644 42sh/obj/put_job_in_background.o create mode 100644 42sh/obj/put_job_in_foreground.o create mode 100644 42sh/obj/quotes_gest.o create mode 100644 42sh/obj/reader.o create mode 100644 42sh/obj/readline.o create mode 100644 42sh/obj/reduce_bquotes.o create mode 100644 42sh/obj/reduce_parens.o create mode 100644 42sh/obj/set_exitstatus.o create mode 100644 42sh/obj/shell_exit.o create mode 100644 42sh/obj/shell_get_avdata.o create mode 100644 42sh/obj/shell_get_opts.o create mode 100644 42sh/obj/shell_init.o create mode 100644 42sh/obj/sigchld_handler.o create mode 100644 42sh/obj/sigint_handler.o create mode 100644 42sh/obj/sigtstp_handler.o create mode 100644 42sh/obj/sigttin_handler.o create mode 100644 42sh/obj/sigttou_handler.o create mode 100644 42sh/obj/token_append.o create mode 100644 42sh/obj/token_cmp_type.o create mode 100644 42sh/obj/token_expand_var.o create mode 100644 42sh/obj/token_free.o create mode 100644 42sh/obj/token_init.o create mode 100644 42sh/obj/token_print.o create mode 100644 42sh/obj/tool_line.o create mode 100644 42sh/obj/tool_line_2.o create mode 100644 42sh/obj/toolz.o create mode 100644 42sh/obj/toolz2.o create mode 100644 42sh/obj/toolz_parseur.o create mode 100644 42sh/obj/toolz_termcaps.o diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index 6f3cb1b2..5f968480 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: sbenning +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/08 18:02:25 by sbenning #+# #+# */ -/* Updated: 2017/01/20 19:08:51 by gwojda ### ########.fr */ +/* Updated: 2017/01/22 11:13:43 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -34,6 +34,8 @@ # define FLECHE_GAUCHE 4479771 # define FLECHE_DROITE 4414235 # define TOUCHE_DELETE 2117294875 +# define TOUCHE_CTRL_C 3 +# define TOUCHE_CTRL_D 4 # define TOUCHE_HOME 4741915 # define TOUCHE_END 4610843 # define TOUCHE_TAB 9 diff --git a/42sh/obj/ast_free.o b/42sh/obj/ast_free.o new file mode 100644 index 0000000000000000000000000000000000000000..d3bbdd4d4d0bc796d6badaeaf1396e9741445153 GIT binary patch literal 3596 zcmb7HYm8Gx6rS7m-geui-DP>nv#>l9XqTrOF~|ncQqUM)iehd`dv~|E+^)SXECkK! zfzcP`s4%fpjBa~^Z% zn=^OL%yhrGdhU8q2+c3hfCJ!89Zehzx(9rj&RfuF3?}X47?5YvO^(qCGR>0JRdRLL zUbF1+HT|}y9Z(AKIBnMuA$;@&L^p*;rkS%gmfK9HRFp2$T>4ncst3Jp;o(f?qCky? zD=S(F>)9S&Mij%B?=#*RFVorC zVVQPjGt;|iy??6w?pJATzhizbUSZ=Vxxv->O;sOhvcmi1F7af3otbPkUb+hJ=exu! zZR;F#y|%);qCVjDyTrqxlaST%E}x{!xRvfk!%Wi~RUq>KG6Svz3Q?6y#@!=el|!8N<)^D7cciUh;qiR|echUz^%< zI@NPFp4#*5<iIDz3S=E7VKuGfO;A zPqP-=Ikw;O#db#ftx#;&up8E~P^t&K=Y$IZzex2Qk3aQg3lCy^<;ryr$G2ETCttAR z&55Q&Q+#^11GmSl<|Y`4d2cJghum5b-?lCTRoOO#AN zNzJ*TvEI=kg&Zau4w2Dv$}*#+Ric15;5QxvT^ z;qdt(YxUZcXoK#L))`}>_1aKuzb^sjP;GJ8AH6TKFfy(70hX{Xe9E!B0XOr!0jAE^ z(ikC@H@IW)giaRz=%PpjWfqFTFGNj)=8r}qgcKq?1l`LUXf&fvBO@#N#G6cl+bBY; zMo}wfQh*lA)@=?b{YJ5R4sG3PbZIe7^ZWL9ZIC)2a9EugX_e6ieEZv9r&a$dTA>@= zXl<~6ys;O8F}@AKT@b-gh>^y7Xx;(`8fp$fj0(&RAAvkU*L+{22y?EVXf5zHhJ^7Q z)T1;<20w?;L&hnHlk^Oa`~XoGm>K>JawL`+NDyHRv^QuaX~m(vOsff&FeX7ILSR_U zSvh)2_#)(5MoeS;RnMC4YYc>WlsB+%2D1rXLZ==u+ThXY9TBO82n8m{Ksn7sf{cP! zLQdkOq5Uv}4QLE4#2_55)h#J19;*vU+3t1q^*aYYt7`(nrZYX^Tk zKH<>XXAV7C-#dErTzlL{3-zy#{yz15Q}^!3fxo{U^Zu!ev+HWNe0=VD__-(Eefm%~ zesIUH7=Iq@!$%qpo(^6JegvEWm%uN9S?Y(u$H3o%{{VA$@F(|f1SE)6NEZu}mp6!; zM;G^Vr1Z$zq>II>2C~ZNV%exDRwP|4TNTA#x>$$G#qy`C8?0QHl#9iolHhq^6r)uX zPX=8)EDc}~i=Qr@2Q~1la@@1b+y6JJ~hu+L^fR^R9~MOFGNeU?nU2{A?i66e<8*vUO=m9*P=tvYMcYC zd2fkGmYrfUZ)ZEoIV+i;+q__)$Jyp2-7<^CZ_et zt$H%8FHGx;TJ_~=J(AX=M!P-?ofFc!Kdo!VNuPlwVv3z$%r>h9685ZnU1=nhoT}t_ sB_SARyrLxkFN+aK5l>u&DfLQQn5}qVOU0bk;i}O2J_|mC@}(ByKl|baI{*Lx literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_bg.o b/42sh/obj/builtin_bg.o new file mode 100644 index 0000000000000000000000000000000000000000..92476142285fc803d6888b784457487a7af8ce73 GIT binary patch literal 5336 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 baAm*KCv(9yYfV?)JG1Lf$`SlsbD7(J?r2iV literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_env.o b/42sh/obj/builtin_env.o new file mode 100644 index 0000000000000000000000000000000000000000..4dce0ec7f0777c078cf2fa62624b6d108305f5c5 GIT binary patch literal 2348 zcma)7&1(};5TCcnrXNX@XcZJiqSRVJlT->8KU=JlN)_#g9|u`B+q6kZHzC=yRV;c? zF}HdUR6Ka_kMOAY2Y41dDtHk*7QgDu+j;3`TWtpB&6~-*-~Q&kc`qM+eEZV|AOe5` zY7n)o35?Q8>#SdCmM92>_aB-oPuCEE)FWJ@F>ve1FIn z_y?Yu%~o;?#J8EB!kb{2R`Ck2^*&^vQ_N}Smi%12Qg%)ru%F*M#_M6c zt1aS5er410<9+er)mp@JZkIQ$w}W?khWR~j5f3k&g!J<(F`lY-ZA(0>G>>&UM$KL< z*wcnFHo{b-dB%7N4)$T+(bMn?EpLUdUvhb4rh=#IE-;Md_uvg@4>4Yb@z{khKwizs zs`sE+uqC3u-c`mM=S7bZk0jW!IX~K$I3KO-;0)hM;>qm)hkpl*X#|q zG@r`Uzx2P&)R$K?_1gDLed_D2_rr7(5@Tc6E+rOnm1?16CkB)0WIEAj74iBW9ZaK> z95|NjKMd81mCDu%MWw#!Iv?sbvY{$a1BnG#Oq0T_`MEGR*P-L|GYy^*62aQ9c-MF(o z5Qv@$hjEAW7*HhCD-FEFop6t%U2anZj_}^Bzuy4r1#h&C3W#erFI^-oKR^?z;}EoICiJIdUf`fp6d*G(oKc5J7K@YO#@v^6 zdf?*$qAj_gO}Z&fYboSkyN2S$-zta7Csozcr4kUr%cbKVB()#;0O|XW!&c(y-65P$ zpi-?Ar~3JlQ?(SLB02OwCT;i?VvE`9!ZZk`NfbSCXB@;*T*M=7?JJl?-`R`W_nV;B z)>Ix0N8^vQb6xy51(z{LgEWpp{ET+tDCirg!qd{=ZCUJTNkcu2c=|D+Yn|;qnuhBE gj=KP%6x&|5``Dr(gwScWgcg&K^b3mNy&wR80b0lfiU0rr literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_exit.o b/42sh/obj/builtin_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..f08787f4e736556d36d7be239e3d61bc45835cfb GIT binary patch literal 4544 zcmb7Idu$v>8K1rL-rINQM?#9za8;V%K>bMSP^%+#%ZEfNavY;8pgzE+hxMA!YIW%(J zP*HIZBWR&O0Oz-^Y=&XFUfp&kmC-Po;|t>2r^a7Z-y2}8#HP(Kiq=G9(g3J*L3~F> z?z=m17nhavT@^@#t&eReG%&U%lW=TG;4Tyf<5N^1Ue^Z$-Z<-c-Sq zA-)q{kQeWcSE$u0mf;kp7~X%y_h%K~xC*G}UE}ldsuM@$2Dip{m&&)B6`s3BJQ-iD zV7B5-w%~nfjdDODtq z>VZri)LX@NBx39L_NsaqQNfG@k1h2M@o`;HIzlAcUJ+{__0j#Xs@pyN)&Dn&QvK`wkTa}6!VU_0&95{S1H*M8jyXxeI`v?06 zbG>E-M^oSMAe8>09sS$43Ab(zOf>9@XFCBmtQp(uH^so1i`fH{4_1#B3j;$t+_G@0 zo?Wu7qOcuLsADs7=~MQL~FH=LITU zZ{2|bvr(_(#|(J-lf0>F5yymQ)u-&LD@?;KRSJ{BGs!r?s7ixrNDK5zpqs)p;jtW! zTn7fuV}eN7D=eDqeI(y-RDQkIp>0Wb>EU!X(v$AcI+0DGei%Eoy@_!8_T-0??@#UT zx&wz(cu0iP`@3igp@iCW5mFxeyKp59HK~!C;k+lAL^VY-f)25*lEv49`M^RXy0maQ znIt3%uYDPR82BmHbNjLbZin=;gHDIcG7`qJn#LdLxC!XD0j!h1pG@w7D2k{Y77t=z zt%#Jkg$(T@K9l`3O7=aW1P1LepEz1Z`!QMg;5sitLqj?uQzV(no$ z<-D(zKfSE!p~d1UY8}LYHh!8~*K59Z?>7;l);+*DBfQr1w&?RovTGf+3A9jH4wHw!hF{yfxAQ0;&^oMsGC?S#5lWEko}P%Nrt zN8r|R2wk_x90cRH#$sAzhFt4BCEetVCn?6!&k*7K2x9|DM z^v*YzW``l?K};$790ak+d;{;7+I3v|u&st0{PtRWV!*&{hcELRuXV;3#>28rUVzvD z*cdNrOa3{*+qNCVD|GOY$C8gd9ed^MH-7z(7oY3i_u{9{ef@W4ch499exb+AojKus z*1oY3+L9fc=<505AGiMPXD4=EyYhJX#>h)|daotUoH+9A$+s^6hndU7;o5BkFi;^bRqJn4L(8NMgUd(iwSc1yLI;DxFtKeBCG_iV= z7fXgFrlx{tozukSQ(i0?npjE7#1Ls>9xD@TjHa{bl<9w^O>{-dVwP&^SR_tU3zA8D z=suy%WVLK68smw;pf`f9UST>dEd|G_7)fVOh3;xs&tSQ8A;AZcrd`8Puc1-FzZK5} z-2G;y!K-qh;noL~Hela6{Gn!xd(0g${I_?LC+wo>@qo7mexu@g{blBqKL;`jKwbAx z+612x2HyttYNf>!C1S`6-gi`YI1~)X2z-C!Iq>}!&S-if5!B0s UwiJpr{HKIhYM#=+{B{)o0amcBIsgCw literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_fg.o b/42sh/obj/builtin_fg.o new file mode 100644 index 0000000000000000000000000000000000000000..9da2139c8804a78f406ed21e1b0527b34b9027e4 GIT binary patch literal 5276 zcmb7IdvFuS8Q+t9r?X^PGPWs{M+6QOT5J;njmxX1LFqvVP16`i8+wt?k}Qx|frtwUe0s5FE(=?@-K4>Q)A)yWJbO>!SrN7_Z z%E$_7=#KZk{eAoGZ@=C9_Pdpz|My@26A(i23p`L8P{&j}VyGxnQ4Qh`D33OI9cQFX z6@yc-M&&rubdoz92_Q`K&iJM~ui$EHADuuUAAQ+7NeKKA?4_s{)3l0CA!DbdqMonH z(=Yq`=}b-W)wJ0(&4FZpDQ$w(?J>>O8&}qrVgVtMa`hX|9zoW2bT)QqT7kHy`D1(u;D?!_ijny#QU+ zze2)JCyVdr`*z)aZ4Y~VHP5T^4J9ns#d`m$eDZaO59dqd^Vy_nCx+ECkc z(2fuF&*RJWZ*gC6y?-xBzUw95=r!`W{^b)^J>R7|zSGyp=j_a1b-mMd&$0XEuD^GU zd^p4|Wxan-$oQzPccgmo<@zD&-mjG#!a5zZWN**d1E#rd^%YYgPD;L*R2~K&kIX{E zpM2+ae91vGRlwWz2Gr++HzZ%L$L&cgtfZPFRN#lt-x z;2-zJ-I9>!2%VpT+6#M9U4T3S$@cB2wS`l#$|clxeQ3MSD8FWmoX;B-H$fW}VU**S zjPmdqqg*;|l>1&dD&8QAQR$sxjGR%7kxL?S-+XAErH{tJCCf0kaj^Xs2x)sFe*Q8_ zIezrqMc7ms4h~;1)YBYPj-QmI@zci04qZg{w^LsMtnAR;zH#^K-6Gy9&vH;Z%BQY))}kGG`43g`JCS$@O^ijBTdUU6$zXD`I?idV6lmK%#r`qT-;q(l0W$ zBk~DnP*{VBf=Fx=NqbvffXot(>58H!Qkg>0)j*%k6dh6Y1Q!g?g_LG7b8k}cVLCi- zi2@RVs|3#G>~yST7c*%)IS}L2Ht!F`!DKdT=F^!0ktpq*DN1+Jfy=mM4Cn7vFuXUa!R8@tt;cg%$qKr}a zeGlBT)x{_91lm+`5t9?p?K{R%gYN-@89-@y9Z#U%?_zpoQXVrj_#Zg7=PY4s51#1E z^W-aSfA%^@_dG?|K8BG(P4m&9{SqSZBHMX9G)4OZ6@OuyT8$}5e+Q3!sEyMa%MhE? zxxqt_oJF1I>kz@WfF329@9WTm?P!fbqki1i(G-jUJxi7u3Es5*`KGP1H`pvp`&@Z!#%D`u%7>16{*R{XsO3qv^j}zwHqpER!a|>}E9xMn z(!$TQ9&kq-V6#!tN+jNk$0JZQezfrkhK0GO z?;>pMttB1;H?kqSs6?q9OI$ye-{$|vhW847p4&)I;$Js53`V0( z+eS;iIniHRZPQMD<;0UupPBpiGrO0(yKwJ;(1YtzGqhiQ#_8*Co%YRtyfDp*J+%80 zco|_cQExz9jk*za3+gZ`V}ft)C#a`Te~T#)JL`ix^IsV+^BdvI7_s8Yo+ zrizg-2lACr#atj&Ok`9sw@D|MQmA6$kycEKR52Gy`u`QG0fZsL8P;Br`JNOLN;P(s zd+!j+j;IoC3h0at&M_VJ(mzRa`EvDpAyzd2|=R5%B! zQg>y-J;=(Ic$Mfb6${-Gb!Tqu`Q$`Rac8mH^nQO$u!LUJ+^cZ!!YtXM(>2Ib=8Zrb zr%hgl02&bSxqee#8S5-@9!>Z9;~B~u4gfmb`8|6aSnzwrA5qjm&>!^8R#Z*XyHvlX z?=Pvrv+8v1h#E+#KJ8XDaF_ZK?Nv3hPYrBRV|b=i^<{OkwgN_L)!=efKZ3!xYMazX zZBUIu7g&xFw}Nb~I#v5VrFNGZI;$O0do+C(@N!LmO!d8{D!=v3!X69pRqikj$Ywm? z-HOjb!tKsp54SInc(%mM2go^{Z$cvfbn^R-ci8zu$NYjCTXN@TKvS5-5e zblj_^nR3j8lgkKmC{ftzb|s2tp=8_q-(SOyPe3-ptleo|kr%{{jHLS0w-d literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_jobs.o b/42sh/obj/builtin_jobs.o new file mode 100644 index 0000000000000000000000000000000000000000..1260e07f2bf29b914f14d323653398a628896728 GIT binary patch literal 4920 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 Ir_)&XKh(C^ZU6uP literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_unsetenv.o b/42sh/obj/builtin_unsetenv.o new file mode 100644 index 0000000000000000000000000000000000000000..c95cd843017e0b98a66f7bcdc9953a9d4db6f49c GIT binary patch literal 2808 zcma)8O>7%g5T0G6fhPdJ#gmdfW(2Sh(o0ciAGeakPvX_p%RxIg49SL<$@Fe!p!Wx7wk<-Jkq>* zGjHDaX6F6u{`BYX|M&qUA7F#rhg@aYB$1KsMcyXk9q3a&wn}r5gpQa%93>-?rrG9_ z?e<;$RBrmzf4b;h<{iQ#=;3|D#p`IhJVgEGb;AkK8=t@vW!xK2uU5;ZX6f@3 z-mZM#7^{JZ-IEEtaf;rcI9XP#m$!@siw_47&HWjOUN< zInTg#&@{8C&D3yrh2H%hT;h169B-84aTP)UMbRfI&R@A?If&kTw>aKce9|)F5!rW$ zkLnU5hY&g-QSkR5pXK-I8M@>@o2p4(QNjV-k~ zb?Xw`qIqgFck_B~gOF7tx1qLcNUHHf~A?+aYdtz%0g>o{^#Z3X$@F^{#CUE7)7 z8eVgtSGJ#xp5IT7tsG7rX*Jdz`zBSXm0MrADm8QKn;*B^?N)BX(Ka?0Q9F25UAdNd z<-0MutjWpA)5ntwX02YTSjmx8CY4D(VwCZP85+r;k{UjgI`}BmYeqWXD3$G!B_tlI zx@nu%Ldt;jR2>o0vx}9vf}S2eR4)Se-tmHxWkXfBi(nM>8t4mvQ>##dIqHBkAUzaG zFkd95+!q;;;#e^`g~qrv+V6`z9eO78aQJBA`7rJf1DTtSCh(yg?o!zx_#)4RLb%6D z6v)AUz!C5>mc>2J0oo1-!($|nsM>3S^~o0s=Sdr&iKxByE@^SDO*ctPe2*F^3KJh((c6H%ZExvOlOja zu95@_N`{{^x^!-wndSFFM)ISxqo|)mrmQJmst8?SB+8pilrA^@UnG89g`!38PU2ff zKwTsPl+K(0X(=Yf!v4T2deKVvBWM05uy$K)J&Z+S@5qPuiQk7W(MN_Su$830BKxqF zXbohky5zSg=2Em??^l8-I)i8%$Q-VobTn`Wq~)Ot8=d^JQ5a z4f|0`Ot5&CJutxnSJ>b*3uM`VGRtB(a#xnIEaH5^d@a_eG1<4U>I>Vlg5lv>?<3=~ zL-gl`8#8n_O0*9>DKBtISW#*?aX+CthpS^45;)SSgSP8o&}MA< dB{b%%pcQmm*Xku}wrtuJ3!EVwE0|@(`4<`pf$;zU literal 0 HcmV?d00001 diff --git a/42sh/obj/command_getoutput.o b/42sh/obj/command_getoutput.o new file mode 100644 index 0000000000000000000000000000000000000000..41121df3932b98c65f7a5bbab3c00694be00a91c GIT binary patch literal 6472 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/copy_cut_paste.o b/42sh/obj/copy_cut_paste.o new file mode 100644 index 0000000000000000000000000000000000000000..9d52813aa02108fed745a7403c68dd9e2acad41d GIT binary patch literal 5184 zcmb7Ie{5679lvMip6w*qP6Am6gnAvYF<~ck84Jveq{Y+2A`>c*1qu3aY~vU?w&foo zFtV|@w0Sj5pp9-qZRyaa?T-~z(>ASLH$Y54`Df8IZTvB5sH75++R^ooEo-ZGpYOeU ziT#olcFNuNzCZ4B-|zSC-JSEt_uu)*#hBt`Xiyta{VJLOD$1u(f5=65(Z=6oio0kG ziYj?vGO8^kMA7w9a;#+bO@4P|aQ8fK^#bGw3gMA2Jpfoif(CY+h*flbs93ZZP+i~F zx4Um%;Ff;4=S56H3kk(qTXa2MEEUq(loaZEy?>Tp7RF9b?P$gv^(_2JB!|i=9iT!3 z|Gv@p#MkDmJ}ZGC>8Cd$(?@jsCM`CA#2p)cxRA(l-gvCwwBcWisIquIo-X&1#CiN%GB z{|nFB7x%}D<@1@Oo{f!=dkg&ghxG5XbZFIm{WI}$Lx;oy+x`2N{JvI8yo(QrC;ZFD z;&!|XHoQMQAYSQ6e$jZZNxZAlzkfX-9u5ToY4^{d!vn>N_thmPU(?#wH=Y|ooF%=S zJ)F)abbZIR8e8^?#5*8`w}D5W%pmrk{B&%1$zlCq0jp~cu%8Ehd9YaP+v}af5d(1i z49lqmnfrdzS%GMe_a%vUPr1og>^0b_zd{;BnYX5ZQ%ExeJ=Eq1B{1HaTs%dm;%W*8M zC=j-G6%kg@rB6vdu!vr9+`$0?0V!j5v&;;ZZ)Qi$ltWe_^h?g&6v$hX!UNC%OBC><&vI{6-&ub zoOSLg0;Dr_ICm%!>+F8CILt~Tc@`gz6<9i3Vh2lld~B4+7&W7;kSwu$uE>h%qe;C) z50O{_C!#L-OfH)Wl(WTjDw|9M2!Wm`X?BQZl3Av-C~LfJ-0AhJE4(dAD?)dKAZ%57 z8=cfddCn17{AY-;RTa`xp^*HH^O6)Pyt0Wd~u*-CZ}v z(~dFb6iD|3O$-V%%07;&^+Zs?ij%sZ<8C=qXzj#Ti4#Ag0gbv>t^Gjx)!; zEey`01(&Y~?n%rAZuk|!(dWeYchRVHWUGpLhy)F;DG(|*g=>HwD1%ehD;PUQ^C|0T z>>Td;I$WW1JI*A2NtPkDvjMv3`!Z5_~(g15vvFq65PB$ zWJATe!H6e+$QR4!2eF|mgeu(|R44|*aYEXFyOZ#!kdC$^>3?;5?Y-X}`_czp$0wV< z_ukZsc;M`@1muTNpGAEEl{OINlYF2w)7g(gxg`;$do>9dK08xH>mo(8CS*m6BnQ&| zBN1Urt4|8kB~t-wtH>{dKY z{oBl-^<}a?um5Ss<4erFW7=(l-Po*YC;ecH*=1n2^FOAY^k;$H5SGcoz6nc3`M|pb ztwKJdD)zIMb(V{T&U7}ODJPPh=`Z$dtd|sz6gzeK-d%7k1JKlkhG}QW(-jPD5#}+^ zF7%vR74B|yZ{RL9%JJt^Q@n96SJe{ts&DW%5=FUBJ zjdD+zyC%3pEpy*qVdnfH`-)#v2;leP!+`b2ro~bi%(ukr~Hc z?t#cLf#6@lyixv{F#p19d|i|`hULs;k1&ui$4Tye4q=HjwV7VL$Umi4cspbrVZKsi zV$C4$p5Tv!ITGenFP`U1FV?%Z42W}4z=89GPd+z8(S&Ymn74?i6!nZl#hzlU73=I{ zEO-wq-2i$E)C>9sDE4;nbxALP;{FSs1I0-bdfB+!(Sg^_qHUlbPL z=?zE5=!%yi^&v}?^FoX%LiB1Rv4Ah-^r2)bmCgzgEa~wl28mZA&@DwGnPK|jLb{X` RlI)P4!OK*qM=L^N{{<{iVcGxy literal 0 HcmV?d00001 diff --git a/42sh/obj/data_exit.o b/42sh/obj/data_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..ab50d8652b931278bcd64c24070f17cc3713c5e0 GIT binary patch literal 5160 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 a!H?Q}y{gm>egu~aZlx@2bSl;$p!^qKEO&$e literal 0 HcmV?d00001 diff --git a/42sh/obj/data_singleton.o b/42sh/obj/data_singleton.o new file mode 100644 index 0000000000000000000000000000000000000000..67a435d99dee1047d915e0ab87d39caf3d62b0ba GIT binary patch literal 5356 zcmb7IeT-CB6~FJzd-G;?W@l$V_$bT5z$`0R_5)bTN+V@k+Aa-^m2Z=l*V(skcZbf- zjPu@X0f{zJ8@{xyhDH;N*qGSHe`o`SCN!Zoh9J?>7-LaGNQg;e(`Z|5V=?IOci(-p zyCYb<$+_p8-#ho*bHC1g@4fZu`!_5hw1_|jGC=1{R2dM;9iSoVw@E_9zt8lRypq6-tf->iu1w zVJ*aK(*q4$%&-Xk<%WkV?j*-QGrrK@)u8Qd`^y(cOKei_?=>}9!(0TEAH)N`73-mv z`lj(!a>X$h3sdi}y>5Kh8v}pS>YMtT$T>2^Tlovu@w5Hq%H@J<7jqK~@4w=kuj1RO z0{Yiy#uxZ24eyoGkx%L=={5MF?2|t<)I^zJ@)1x&q!v|rtJ@BCf$mcFBLNbJ$*fWnWatv2fKTq z4@yt}%AOU=gjaETCvy2>??}$i*lciVzizQXOcOkqVHlLiU$ER>gm3f zE=OH0dik-UJCfn>i@ZPmiP8vq@!iTqzT^qV&dZ7N9WuCa?2-f=TO!a4q3#IBfkn-y zoO|}h^Gr`(*>y*RtOHL0Fg2D?@@nJDO^R~PAD0t6s%ChUvn57H@jBSFn#Nw67NOTQaFwRlL}DGp=2>|3IRx5b z%E(%~Bon&~42Wk`#N@e8ise!hV(O(ti14+fmJ35b+kPBaW7C)6MvHs}O@~2^&GAV1 zW+aR;AZ7*CE>QCRs0-GoX)CM(g!e((Dm^Q#Dx@3K`t@wg`g-_mwVq8|2cVgVPrFOc z&b59BZ4R|HdNyPI0@{Pr2J~#7^?PV}YG2T^1J%0laey)b=P{D~H=@oQiwjMdg(z-34nh_L>l>K64R0-wUaa&lc13 zkD z)ZjPyMyNJIjU_LHY6@yP`F5x_L7kht40RUUrlDq%pF+KxYBSV7 zz$9U5sYNhr>POWk8oR-+5RYlGYv3_0{Q;RJTSORbTr)SrYCdGWBi;qpXDqWg$K2k= zot%+X(BxV#=Zp+MyND)6H`m|+Xk0C$huixhNStt^SI^G3z7%SG-0a&zZH1ogtgWko z9l2B(m*CL+BdT?<(lgC;qP2Vgpyhg43FBjktvmw;zkFI5lbME;W25%?IM`0J%PN7( zU9yzX?}aA!(=tZ?G&H%_KCfq!*0a#$4#GIo!q^U9wd1bO!8&dk9KwXjGy_wCBqR$l zO+01=<#v2`(`d&kV?6y^r>*^aA6{yAGROA6`9$Zh{G<7fs=g$>ZMe1l z^wqAvc7404{o}*q9noLk>(4&%?knd{k95pwcDr_*dis-tFU2ljIMcS_!dK7#Wd6l; z`|BUM9k1_Sef>(qvHc6-cN`P-HPClJJoTqQ=Rtn}{T*asetG=6K|F+8K%*e8{ZY`5 zK(B&+33>sp2p0I3SvGb#H6br z<~Bl{4ds$)ix88Wvf@=jh-XTL#{)=+CsJ84T@qscR1otlAs#FR@$?bmfmA&*I}&2j zR93uU2=UTURy@6gc-tu}CTv2?;|gMGBE)Q^8uHR2#4A);F^@@TDtg`ngt$MH6;m`J z9)0DD>5~u>wz6V=B*aXspleVG@j_G$c`p*;&8@6>8xUezR%hnwDgOoy0_|8dX?6jUo~*oOvKw;X9A$t4nDNQk0K!^^2NM- zf9)BkclkIFM}52E=0^A(69D`!2_(D< zb_h`Qi2w!W1$0pfjAp(@<7Z3X%S?+577HQ*R}v{&&i#hG`BgGt^Fg*tO|3Jt?IRA8csl`72V Y(^SmD%)tnIB3IxKw>rE>es&7+AMpzZ761SM literal 0 HcmV?d00001 diff --git a/42sh/obj/do_job_notification.o b/42sh/obj/do_job_notification.o new file mode 100644 index 0000000000000000000000000000000000000000..9dd64dd4e02d646cdb91a74c19569a75e3682ca5 GIT binary patch literal 4948 zcma)AYit}>6}~gOGduRK*BjdnPMpUk&Z7yjoo8#cAvkSPZ9)odh}#5O4eQylcf)#j z*_ln_riRcw6xRenBP1$>RHR4*R354V0z@E%q9{TL1pQHdfGp9d4U`h`BQ-6;eBYfr zX1z&Bu5|9X-?`_0bME8Zz4mY4`}==lLTC|z3KE4}G*G1>C<`DN;#-tg;z7rh@(D3G z1tq1%*|zT<_7#A#?R`7<@B1GPTb&F7g?x^vdlC!*pg?P0NP$MdU&(uguN@`XH4 zsQzg)92sbRE<`*zcc?aEgH-m|_KwH5?|o?2%U5x|qx3#bZf==F8S)j&j`V8e8{&f3 zl?R&YK+wD?Uv_Ay>K@|y&5bYQ`f0=Z{rxI^Q0}S5&Ls(o(k* zL9<~$g83qeC1qoLFR1ey#y8e_J3gm8ih25Wt@Ko(l(X$UJL*SVRD5Y=d=Y$1nMG~E zJ%wgNd~V(zu3~qC0gd;;l;Rr*y2VAsry%c`eAuQA&vUU*l8lY>O{;wPMtA_#MYrM> z@o`a>I*+XvFeR?*dEMGT*(}JJAG;A8yxW#tM3OY zW4sQKnb`SOW|G3@wal^cYohh|YwS7wp#(mQ&TB#Ev>g3&ZbRnumY+cVcrn|PgVQ@E z^~}UCLSh&u@0-{;CH;?0gKs(f5CUfbzUj$+*;UuP`smy)IjUdTGLr*V=Gc^$q4mVA zxiXU(_+8dA6B+9&#;Vu{Qk>bQhTAGDdb@~pLhkBfH$*-1+eYvs?XqU=< zVYuLA{X)6a>xk{VY0`W4Joa$Gwr}%BFE4KLX;CQo;-K&ulkj9+$cf4bt3uB9d8o5hWSbpA4A`_09a$g0 zr9(9zSA}m67qcUxSjNm{MbhCy)${F2wd}YaU5W+I#}}mHTDb60+V%=hyMk5y2Njlt zwUSpDDY>~cnM-^X_@m_{uu#ST847Fh@;Qu3+9R7HzqFPOVzS9Br(mC#@>ts_P4F zp0+aCZbXtPvnx4IYr`4Wdtq$T2AU(u`{MV{FHqScXtrVYiFzAq&WkO$zrjb3l z4D9!Utd$>*$G7pWIgX2ncM(3ppzQ_{TOxb?@;g=Tjc*-*e-7Bqg$I{d| z78n0aJ^$@|_!HfsgueX6(}W3a;PK0}!I6T{9)%#sf~t6omWyUC1kt z*C1~~-h;Ft;51|tgd2ANG6g<#2_EwK&?ww`ns_9XiD^O;vqzb@>ooBgC=)l2CZ1kp zV)oL+gvR~D!h=o|cV3xz$Y|oh<0}b;*-sO%1I5L3q^T2?@?s{_#1p2xn4L5+sT4g= zEKN)W<;4V~iE~vZCL>ME3PsN=i6$OdW#ZL96R#UJkQWC{yib&gxj++FSp~sOqsc*~ zy#C*LjNz>D%wj}XIB%4o4vo+}rYzdidxds5rKJ)v>r3!r#EaN*okTM;YP=BJlc|&X zgDpWqVQ=88i@%UTdq3HNTH`k$TEk-puM4MG^ zgA!@g472$WL;sG^e85;_`bKQnXf{7$q|Duhwbjtkj9JT#B%ra?hyZr#tJ{q(;8^cV zhGpiB`88t!V6@k0H4hkVK{JA8*8%*(>^2g;#`0&4)x*Zx-NqKcXXlPmW8$XOAqO|@ z##bYi-9~eyZ9ke@braixaIZkHUp?ocG3lPO&@pHxChebv#`JnB(3oJ)Cjx!fN1?HJ zJ=+xi05te|c->mi_XgPPQ+k!sOO%G9zsYNddNXt@15#xLbR87C8ZggheZSv;Pd4Ce z10HO^D&o^SG8p(^m=^|N@BmPU%MUoHXP_+*!Z yauxhH$sZ0ltL|v|kQ=n+<9^J>!xI152uuYJM|BjBd>>Cs83ZhzU#?Vuh4?Qv3kwkd literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_ampersand.o b/42sh/obj/exec_ampersand.o new file mode 100644 index 0000000000000000000000000000000000000000..dad02cc2e4400dd61e9a0aaa9fa2820c3abbd65f GIT binary patch literal 3116 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 HP=xp|snZLt literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_command.o b/42sh/obj/exec_command.o new file mode 100644 index 0000000000000000000000000000000000000000..176695299a195d3ac3e3f03f15ed945a814c19a7 GIT binary patch literal 5844 zcma)Adu&_P89#P%AGQ~ z7Sys%>8eH<6AyJv+8?WUZ9{At8)!^}4XtRQLkuPm12Ij}3L*#?5Ai4AA>_Tdk-TT6L|Ec=7UUh5uEBojBD-PWt7r45A&1yY6mA`w> z(x2>KDV47Fx30?Hn#1@&`Foo{o7FQ4>TC>-<#CHPqV7^ zO&3QoPS36scIOHi+upM2w5bpy%3nf(C*Y4=-H-jJ*1XD}Gh%1USY5wDbv!tv{Pin; zt za_p2CA9%Upz@^fH?)%N;*i<+v>v0ZOeTr<2cwZO%j%#srq z_-tT0IY|k~!1QE4XIF~J$^I2PrM&Ni^t+N_dFO=@JtGid7C){$n$JyifnT@?Wnkrf`tyNfquQax)| zyCZ^TfrZEwJdtue;n_o8*>Qxcc+PW1MY>q$HdRXjvA&(7vk!{UbG5Jcv#%;|L) zSvFU8Pj|+%^Es@6>oYa$qQDD;H;O5QJEuIFE4m_W=cHdRO@>aS?V<#*qKfAOJuT8{ zSj?=AoDZ&|oOO6|OOAu-VeWhKfly;;S-e@RiCcPGyfM^-qaE%B*c9rI*2KRayC`;U z-R9;?>JXqb5mwMMGb5yNU)WkQ$Vh9;}gP?&iAIx_lgxMUbiN|8}htN?E+s(~X z`VfGkyhgF50Zuq^tOH$r@&y;QnOIIML{&ai%qtHHA=Lh~}lJwhj%p zuye8428iNYIIMoKHf6M|6Dxr-ZStASgB#XNSPy{E)!ShZY6u-9s|nw+XGH3^A+HVJ zQThwDMjfu9ja&&HYKp=Ow4Fz(HGfK4heYA46=R+G28kEp1t(6P#14olE=Wfwm&t zQ5#ta?HEWqPxj_Th^wg1kM)6>+7f9Y{V!$hO+cluudy}#ByBH2riXMI=?&Tc z&^V-Mf>R!JG>Qo|Bd?-t2OLB(p;n|8R!69HaMS76Lo`N^y$P$>Ip%v{t+A%aC*a57 zJ~n3;$K)!A)%ZG_rq6#}&hYQJdY4sHWhXM~#0hgtImWG$j`9oRw^O!ayUV2Y9zc=hh`uUH25yZ2w^>B*ZAGAZ{8$+(-)IsUyUL$O%Vc{|PZ7aPE6}!VjzvBb?I(16b$0>?i2gBc}_d}Tw{3?XS$8;U~JYJ8SR}r=o3Z5o- zYozlP-e!9$Zn;NkJ-Ib~7tTf8o82DyG^nx!F6O*m@V-F<^5N1w!YiC#3o_PRJy4)v z3QMUn-a)<*FZjMB|0(drnVN`zw!G>46>)XPTdClci+SHL?|Q1Te)peZ6~-cL0R zAuSgDvli6{wZ`?Dv0lGiJ4g4l#e-VypcaAF1}!nDp?n^+1bB2%3-8d(L9I!@SZf8a zc)b=L)E4O1XeKoMAry>gH4qK`8vO%a6SX$8qR~gKzFliOqQo&R4k)be`lGBE)+=a{ zKt;2_8}u>AgL);b%e$hm#m*P2KZ)h z%xhOKI3~M`9|ZDs;P9jOD85|r#fpQ;@){V?ZVY+@gdklGVU{W`uF|`z^rclg>&~v< zSf$@lrEja!gEI`+Pkgr7sZ1t#F53B2rH~$(c|O`%ypQp^%v4GOPh&5IeODOHJ6^FM z{I@jzxy9?&5q!zwFCaX!?NUWP3T-^2hf?Vqhs(uEAu|Wg7Rycm&v~#14co4Rf0&&# Gdig*9eU^>@ literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_dgreat.o b/42sh/obj/exec_dgreat.o new file mode 100644 index 0000000000000000000000000000000000000000..4f5329280a2a26f5ae8422e5cdcdc29035f8c7d8 GIT binary patch literal 3860 zcma)9ZEPIH8J^v{*}L=E=d&G>G~weK2b>^$=X}-_hY-N%Vgf>d)2alm&Ub73((|5s zyG~3q}8Abx;^K%huK)2glDPb27$3Is@zaMVyD2p=JRp4r*t z?g&jr_s;tzI)%sVrC?|yUQ`?I3}ZI_&}nF-tTYszHXxBg<& z-M59!BE-3qlR{alKmu9UW}_D3RjNg0ZpHgRmsKA-2XB z;)Tn2alFFxbj7jV!W6^%!F;E5d_y{{GZ&37z^jgJR~y_K-}4%8xyHM`O$+B)%X}N+ zn=TYv@&3_*cmE~g`43EAaK4{wydE9J?=BG!hfYDZ#uwH35zhCq_VW|fQp{L_2hg6B-y<2CGV(80Ew?}NO?yGi4{uko}h zl0r;|GWoglTXq#<>wNcXyi>Z<;*LNl{YZRVmo#0H!9p|m#h{A5kNysxXEW$7P-EeI zN%~4`Y`UmCny-JF-#4FmGl3Cb`y*iT^*yKabEJ*@)%To)26`y{k~mJh`tbbR@O*vv zxYp-JkJk_U1r7PRVe}IDeMi#y`cdusiT29Rtz+k-d+Et&Ifn9CbtJ#G9Z&J`pJBYIDi-PA1-yZX8jw3wH%f2%uidENlT;KM}yU>El_PNW2 z8q!Z0p;xNzL}teI$`h_r$`G#NjQgTio|yE7TP-<&#sEt4&PhBFXi!WcsEWNy1-}q< zQPK>%D5>U@$~CkE+|%3@#Y)w4#LjB1ghs_?0#=+X)Wmp6czmEpMwfAQsz*jrX=`b! z%jm|En^_pUjhoscsh=lrNcOdF?%BvRm%`Mh%{{oi*EXqgxrn50OeT?dR;QptY#~?x zAw;~#h@_H9;t7%HfbZrWDuYPlHa^D5MGX$(YlZ2 zwr)j}(P_+*Ma+Y<<4S)Bb<{jKeS})q=|HR8j3JC}x(YeQDr)^6%&Mb`J%(yK$n1^t zMbDVsiCy6Tq-lZKD-y&!M(r}VBwm5^1+|4{Z#wZ>s4X&k7mK#oN6;SuMX!v_gB=1z zw#nzfVsVQjS!a}tfZl;1d*bhcEtYE%AAtA6EZ1>Nj+Up>>QbqG;h&ieYlk36a@+#$_@PEqQTyKT7jH6j6>AL}yWmt5=k-ukC zowz-nqv*@-JeXi?|8ZX+2^~LtZ}dS)ib|7JhEc`ulIEwUvlWb?=3B6 z9^ZZHh3XZLAA9?%KYem))rs%he*4OY*Zk*=-Rr(RJo=l%FWw;k_8zc427L)iU=c0{ zafP{%qo7I9gP=!2&w^eC9R>XhbOOWxnb;J$@cMCOuF%Bv(I%!iP0U3cVHPG9P0YT9 zGz6JN6H`!|ctmL8nb9UD9!*THMc^opfM_}f(q7znnwSMT2u_VA=9KngBGJU$(pWqh zH1UGap)y%%V*YB=A?@`MxW;-;o94mwh&*iU$kV62nEy2K$Y|65OPd%{g4>NAs_2`D z2u&qSBV*Uy!kA4P>GoLs0K6E;<)9}|6XopL@Fo+RQt5}yTROtO2`AxWiUX((KhoAGKnt>wyV2G=)Rya&9TdTl(>`26901e|*LvXe}mzy~sN zU%zlrqWD8rsNo$AoRFD32C76l4Vi3%azs!X<9?F z?=}~gh_z4lS@CY!X+4eh5o^Y@Fhkz3!0xYrBeD$+I6~>a4;)eSZ`67Y zTtfdDIQ%T?vKqWWReRH@;}ff?o!|P6?Rp%I24**YT;Nl| nFJKwniHhS_U13+J9n@;Q@#hh5z9aa)<0}-O9`?AedK2t_;?*Z- literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_great.o b/42sh/obj/exec_great.o new file mode 100644 index 0000000000000000000000000000000000000000..49a86d0f973c19ccbcc2a936d6033f048430dc7e GIT binary patch literal 3856 zcma)9ZEPDw8lGKe)^?mYPEy)HDfk+osYL9Qwh&#zwFPo=Ly-^=K(uIa?2Y5%taIK? z8=$>b>giNpq`Q_c-4Aq73Cb@J5+ETE2vI~qfZz`WA%1`WsS>Hmm$)8P={?WvZ0ndp zJMug4$Gr2*J2UUhtUvhq=r2(rjEF!5Y5`42RA~^(g`nd!{ziEq7BuW-ACyoBrXY3D zh+^BmGvfzxpx-up=WS>7P@2^O@i=T-QV5H-7O{&gEVf;A#->ZQ=hu|Uwr{v&{VjhE zn?;DTk&{AMtUv-;*Jh&@;#H~zWp2j%SmT6!N}SyMa#p%OaWkl~aK0pc zB{nvlQy$ILzs~KROTT8|!g~2hz~t&Xj^}1cYx%41_!b&yXX-g|gn0Ggx!K{l`tT90 z&yF6c?|mB$x!Ga#61m;4r*ic}+V?B%m7877&WCoL%s^%!-B+mK*61G`fRb5tRc6I<;nfORXT}LCyHs=Xex@L@qaHeD zOWUejiuvrStGo$8r=VSwU0>uqU-Xy>eu2(L(PBBfmiZkwuTDdgg3%6Qy0F42ZtzNy!!bsi72$~p{TbkSAFdswwte*?4XsG<*}ngE%-u_>^$ z*%hbfM>H)kdqsQ)q{GxMfJ^*&NIc2rLbEp&e<{=!nY}%tHTnhge}GypiOzxT14TB= z{b13U#gVL&N=85jA;|97`(QnCW&C6CewgKIj`l1Vw;-xe7baFgjLA!thr<5@d#{64VJ+oo*0=1s29;%4bi#qZbv+|u ziyX_aPbeG)q#JvYb`sUu*)OqBhhra)CaUuQ4 z_8*_AE_vkeo0mTI)sHKV{?hu_7eBw^*sI%DpExl3mjlnPk?(#8EN(1!G>%2M7?cHF z2O0%UfF1z-6SN=n0_YIvQ_xWm1H1=}A{U-d2nr!-V)|$kQ=BH|B91T%6N@Hp=|UQU zIA~%DY7>tLO*}K&M4cw);v#Sq<~~h_LE4KOPZP612f>kOVoqrj6X(>a@GcYUlc~R(*S800FT^qUnBrfk4dXtk$ySm4jE$w|Mt?S@qs{qT&6+`v^4k^kpWPJAn)22;|_& zgVKWkWBD51(ZC6*dHNoXbQm(x8rv*etr6KdB%?#J&AL%8g%%x=(wEDvYo%!o$z}hM z?bbdtj>zsIX^vRCkG>=Lz~dtn-yZh3uR4qW1KhJE9smFU literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_less.o b/42sh/obj/exec_less.o new file mode 100644 index 0000000000000000000000000000000000000000..14dd6f7397ba46fb73612a572a8b771d10941d70 GIT binary patch literal 3848 zcma)9TWnm#8J@Gdb9UEjuh-t-q~yX92Pdd_*SS%bI3#W{+L%;oA)%-xJzeh}+Y6hs zX3yEgAxRU-2xVo7i@3a?mheE{KtY1Ow3Ub&HL6h6yfhDaA}UCca6|$Tb&E*)eRJl- z>m`tk_MiVU|9tb$%s(?{|M|a5*P=ogVSx%10ZmC%84$`3K=U+yM|mdZH@w6?D1i=4 zLF%Lt#j-qm+Vf>!-!<~Yt_3}iX0$*&4jV}dVbT^6N6CU>StWa{K4H0DO_?m~p&h+T^YN-J_1nb5p;M5p@y+Y=5X|>j`@%%E)H2^;MtSbcn!Pjcd)F*_rZ3Jw_W3%)p%MJ z2_Yr}nf%82EjtRab-qV6-WA;`)!_?Ien)&+hagjKUk-6ECxyHyvtDSy!y!w&))mfRf#`A-n!w;ns>dd)oFZt75xuwkUGDUG&RM?5{pm zD&#h8a3=+QRI?~Mo+!AU@T@VfX4}HmyzJR~MX~C5w&PiD`B}7}vOMl=p@x)GM(CBQ zGm)t~Zh6A7OBupd>~T-j$`g~GaH=I6&=^2T?hT2D01b*M1XZzjso)j-E=sDii;`+~ zsa!*g&t1(OQLI#5TkNmaN@!H9?z7@#p(e&l!sVkxGP;a=l4%)Erp)EZE~6Vs5z4~Y zZESA~Cm%>`Nvv((k>1ACmLjB0JJPtZH!V`-8WB!Dm`EVm%uYdvXb+eVAw(=~gp-K` z@q~zXz;{QQ${MOD8tPpp+M*Yr9|J{JMd!d?1cjfJZ-PZ* zCPy;AQ8EHL1wp1`AAv2C8{-_WA7;6kV}1^88@2l}riczgJWv0n@&Z{b%1?@`6z@n} z153&K;#|nXAekk?Fr@!b%Taq6(r45Lpo!=)h)JqTVm)9fc~5*5I9EunrGF;S)`fZ_ z@jhsO0?B(-G=GEmL#jQA4PY^Om-0~fce6LwTVbu{Xy#@5{uq^Mm~_H%e{48UAs{55 zD!%T&3di4m=L_b9+Gy~s@3N>bO|5;eqcr2+$|nYgF3=J>qJ%*PKKH`7IwR_8#b#?e zBjX#->zFysu?CJFOQhQOz2Erk%Aq?qIxBy5{OJ>;>*oIc>#mD;zVgM{<;BcvhpxU; zUHRI%(|5i7$<_6juC@K{gOB?@|I4AxU!U0h%!zlm$dAqf>))WSKyfU>3Q!L86VPtZ zBG1`+8{bGm9ps zpf>S{(8M#NO-wwRn2SrnQJDKQodanvZahuQ0v!aChbHEf_F^K@#N5(YJQ*}GuXU(Q zR+^Z<+QcJ9(*=;m;&G#iCs2=gN}G84v={TAUOY0|^nGa)MM`kH(c?y$@g<@xDnTk4 z&ps-Q>6DRbkH%ht7lT;=IzCUN>(_OE+v_qD{maUf3d|q;O5ke^ar@2KyD+~h$}CERJqMB91UW{%3PAsHQ#?dBtLHMHocl%8B?Zj~W(NcR0fc9^fA zaa5*()wC(eA6f$ zer66jd7tL1GzU}mH#FxMovd^j0B=&o>K2{XN^|=IEjstHxm{QbpBMO8@CsN)XQElUslGz|A7~FHc>n+a literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_or_if.o b/42sh/obj/exec_or_if.o new file mode 100644 index 0000000000000000000000000000000000000000..0ddce9a1479cb21927b67c0c6867634a28270622 GIT binary patch literal 6652 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 M=)>mfrxV!yFD`ou$N&HU literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_pipe.o b/42sh/obj/exec_pipe.o new file mode 100644 index 0000000000000000000000000000000000000000..626631d350a608ba20788e519307db460cfa670f GIT binary patch literal 6416 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 TI>zAi^d$>v2_%0RKurGwEBY5) literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_semi.o b/42sh/obj/exec_semi.o new file mode 100644 index 0000000000000000000000000000000000000000..183cd9e9f028de31be6958342ada01cd0a57153d GIT binary patch literal 2912 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_findexec.o b/42sh/obj/ft_findexec.o new file mode 100644 index 0000000000000000000000000000000000000000..0e9cb0408b3d4c311c1620db4a6d6aa17b5d151d GIT binary patch literal 4740 zcma)AeQaCR6~FJ<_t`H_Z0D1gTn=m(Y~7&@LUD9*+H-xN~gR zA8jc_tD1JiL}+DG5lEYav`ym=HYP+T)S)GeiU!csY8#AA+LS*sshL1RNJF7$biZ@o zed&vvuD#N|=bqm^=XcNjeAm8k`J*pc1Jx&2#P_v~<**^gvgf043O#|Og|ln!66kXn^5Llf>w zJ9L*~S6Agrj*OJ7Lo|OY<8%1lmNYlZm(6DisLLu6T-zE^INPsCSDrt0}Vt>b(DCiyCl6;~bat#beVPEO$Eo8-eG z7L@hzz2~WueHP!9a6s9WDuVI1SEnAQB@Y(8z8JGWmoMNOWEhy>@sM@MD|`%i{k z$7hY1nG#mlcBsD(B9gC9^0AQ3=cob3#+*9I<@1}(3KJ}UX1mcjIakJ9jU;-h&H zcVWOjNEG~90=BdQYi%RGu-TR9HglD8+H$4c$-Zvc14~)qrCT)I-9v4Ml(-R*!2D8H8 z#90bqIst9A-I%UkGHU0A1$mzkJ)Ea_ujwH*h%P74W#fg=@7t8g%kj{OuM^kP-}o^J zm%}oB?GH}p7Z)SfHCmpQi`0Sbu^jjG#6?WyQZ4b?;(B6m8fuAG7k~SOm{{p@KCuJ? z8rzaFd2Z;tZ^qeHx`!e=ckUaE9I{H~Y#|@%>FDg}jNF;Z;qr|2bVBLqy1Qf3MpiDR z;?@x>70*=63{DBvJ5nsZw+zqt=;6YFbTZy`cX^Dt3|ML`Sz^Ux1!y*Bu`J8xD=eKY zvF-hPXk(|%Oxl+8b;=d;qY<(YE#>S{%dU-7Gt$V)%QnmUo?R~R~4Sr&E{Q<|0AgRR^X3~TFx%}NW7gW3VGMd@qs1h)jf8TeXbf9rj? zV?CUy66$Zor?hK@%0rA$Z3FWJ?+pZS8Ti%!u_+kyw<>`EvEeRgf=PcXDLuG98d?=k z&}j=O3b8bP6|VQdwu$HhfqPL6wxZgLI6}gK+hk#3N#|??_mX|D`sv2O(~FK1rERtl zW&PudIe@Zn9}JX`@*5H!^_e2Q&y*0U(8hAhnpb@$eUP-~*HJGyH zO=l1)zH6>Ds`mxt5K#u ziJAp>bwG{!_2(V!0W})de+G@ZRd=e|7F3qnW zht?(A!ul^J2~mB!ft(>^ zqejc*S48Y#ie0?wjfb`xRCh8qq)4`IKXrb-(ENAWd}2pIcGxD&?MqO-ulTaL_-|y> z1Ov)#WQats46G3(N31wALbq|^_ChB~iH;0Cr2H<7zS5PwJN_Be0^V25k*-G`d17Jy zKiQKD|9CRcd2A{WS@+=&Q<2k8O!SSO40K*tdf}Jve)g-!-~0R={QipkZ{+_XhcOvZ z549CyBlD_gRg zd%9O5u*J`@74HD_Vt)iX#^}~|n8YWm3=CU&x$bq@(zazfJnZBNDcsxO-_6%ld4o2< z{S~fjlRTsi^R=gV%PAhJaP<>@i}nt%v%G1T`;K$3Hp)Hw`E4+28{jR&+=Ehkf!_*( z_23wIiF25&+s~Wf;~(aCe8T;`uz#E11z__44-fF*an1+$I_=y1c3?3F3u_O6e}Fe> z`-N;=malUUa8>gZhk4M`avaqGG%Ay71EwCsIf?=Ui)CpAAcv&9U*hy#!SG}4keHqr z9R%37{|ypr8l#serYiOvBu;XSzDhXVu_z=?dh8xZxN31J?~w8%Db4wYl4qbvpgK;cjOpwiN#KC>L{CJke6QLfN9X zmV{H|MW=e8ki|RDw%+Vk#7l~B&}2#$9&WB(O0PaE55^7syB^%0=E84+${8xe2A<-cOV;WDj5NOLJS{|AZ@JB!crD9dfRK#G@!tZzPxryUt ztQ_^b-}!y#JHPXt*XNU7{?D~{gFHdeb0lgh`#;1raY z>StL_`k2xrK!&40T`v-E0&c?I0+AtZ+qA7u36lvc&;c@ z9Kn$9LGY=NXPr?4U%J0IXxUCd+QIj5*F*Qu_{4l}^;yMxgOi(El!t5d__Fz=G*t3^ zjSF5@j)u#CTb-9L(cfQ4@0atP6Q9TT8%1-ge3{%po?R;AbGTS2e^62Eu5$6Wv3_c+ z=Z&wB$PK3L_wwzkSg*Dkm#^$QFW+z?DMPG`&*M|uAwHNdF*1@(Te-wA!+XzsA5ih_ zRROhsV0F9SE%G^sM&_OGb;b9zTJ_7f z$cIZTDJ$dKug-@z-#y;NpWWb!{Y~bFF;B-T<_=_XDa+cqeb!Zo(~2*yjHBS=mH9o+ zpW5>ZzVwhaP{8iG9V+w7ImOqh_)aT61w}-NA+Jt7bAK~A$yhmGc3|14f|*qFoqV78 zxGvHq;s(Otn;=v0k3wIphd`6|K}dO_FJ->GRqi)mz0WND)f{`H(=0u4!z>l2E_6@O z%^WXInPb~T?UN+E(ESdLSN|j{}1%w+F`dH&AO_}4H%w!)t{{qino26fw zrJuTkl)5L)vA0C+F)oHV59z@W8du83zR7tU#ydmiIOdFrPG2c?pY!Ip5M9Q*C&tcc zrS6HVz0=dvs%5a2SC$urM6v@iy|2Bqan zmf6&?nz6)ZYF?#+;aug2o}a6`m<8iIckbzp?@t%(Ogc6 zIYVUgxxu*nWO9xe5d1n;zf(x3(ZSUjCp|2Z`J9u^IhLI{j23(>hZizYK&FsJV98U= z*_pvyIu$2XHa*~oLS}G?tl5n1fK)0)Cvtp&kWNP9SP9$7>4g8)U7J zPGvYfSKCVGL^7MV)8atBkV2zWMOP(<5(P1k5;h+c6mJCuC}Btx5HM;Pp)Jtviq`A? zXv}DiF3{?*f4&XEAKg*^k?Kv6%@H3GhF{ZmAVCC{i5>O#B1PzpsQ9C77Q(34{Lx6n z1;HBGm7oJ1L(2iTMIvwu*P@RQRSQA261P60OI%%xgHc1bNMsw_qKnGdYTFQ9oz_|9 zjnsiKShr^V-PB)Ee?)AkJ8laYZ1ZEq4q4%ZN8R}(8p0N5-tiIfzm@^rk|=8 zX^OmrZ)7!y(!BChgybk8@z4++&;qy0`^u@+C zs3yHGcoUif>vIOy<-p9@MYeHZ5oYfi4WCdj{1nZn@L^xA-e`bo($>$e+D6Xfc35Ag z!##4<&ZF8wxG>7)iD`ES8P-jj+UP%mS`HhlwG(mZexfx%LZ1fQO4kOX8!D#V73_tU zYrc~H4|u56*AfW!0j*>2RdVdDs6GOd))-Adg|s`QhvZ+z-osw+J2_f-5dNVd*bFU9 zCmv#1yi=v^ImFhuCIg81PK_Lun7a=%5)oaX}HsmG2J-N~H*GEc+DXrTwt_LFQ| zP8t;RV_hb&Jl+^~<|mmpO&Iu63$a(WtDFgRkHBq$y)Z7jHC zvJjIOKU35Hj}IRi{H1GAfGC@*}^%VS$d}L z(`O!CFtz0Q*Ke-9`C@+QbFWR@@$=uEU$JC;ZfUG~|4TisZ(RD;X8qOQCL5YdfB(mk zYwuQl=6jPXuK)PR#<$muJ`;I;`m>uJIsN#VFT8oBIT?TM$Xgr(6XWq)3)v2N7_txY z1cVFzbqJ5F_+Pc8>mdYhBWa`Dz5)^RDy< zzHafyH9b)EFFjP$gGP^ze|}?75B<)`3Y}M=Fv3QIAp)I=4IHre< zALzcbdb1JQuP;GM%N9L)RMn8oT>ppm?y-+<<8f-8@t5`6|b z41Ew9vyKiyBjH5%LSwI@CUgk80~*OI+NyMu(rABys84fT!A-MV5XIFz7rLA zUj-KKgWF0C7Saj4mgVWR=73Z-ZQEW;dEHLKJK^LD!kT%>D+0UNZx5xjSz&pnR#;B{ v@pR5g4v)C6diUXOB{?qse}xZf)mgrW*%3$I8o(d3iQ!KYG2`y+ba!z(v&_sw zp<%u9B+5T?TnxvR2R^!@tIk@pjr3hS+v0# zXj`;Fal5nP4Q5p*M1Oo9o|nc)<7F$AvZmB|Wbw{hRN(;`-tDiR>9;j8VuRV*l}weRx_?88A^@cY^;u*u?QR zaXgvhag{+WdVP}9=eMLgi2n7Ca=dGN((3>qI`x3~C@;=k7;_Ut!7m1X0)K+K3;8l6 z!H{euS}!qAapTY<`#UoAtC_LiN zFJl`GX7#*0U>bvRZg17FHEV;svcp>GxHK`#RMTZ`NHfy|wo)-HTd|EdG`)0COR21f zE(N*2f9Ff`KFzdBhAwxfx>8;86KWYZS!Z__l+?O4snt(D94NiR!u)h$zp*EuO|M&H z6`B8Ytfbp4TefUwE9DY|!>oz(;TWNp4ZR>&b*og+wY*G# zIz6lOYN^Gn$xO{=!aSiP-YNy+$xvH-o-iLiw1 zLmF|8Y%^O$W>B9ioYs4(r;oE|5O(f{gOCu0NCd=*%3eo*3oW$bc}M#dZBU%ZUm$HB zxiV>xnqcSZ;Stdo#Ya^jAG(t+stek> zMvuha{qsVbeYEtrDxVlRb9u#$vm@*8j9~m7@W|Luay44}AOQbj7F>xMpx$uAEm zL0VgsYV1%TAxKM`{*u~5TcqR`DZWb*H%hV4gcOD$7%E8OXRk`jLdPF8cvft0m4uJP zD3%4lQ((x>2}pcn;bB*Hj&gk~B*N*W+aHm1J`D-~P?}468c1KtC4{4&;Bq5mfI_v>=tno1c F_J8<*6es`y literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_putast.o b/42sh/obj/ft_putast.o new file mode 100644 index 0000000000000000000000000000000000000000..68bc619fd146569bb4c6b0f2091a63c26756021a GIT binary patch literal 3896 zcmbtWZERCj7(VxQx9!@k>lkc^AXmP@*^Li%fiX5=T3`qn9}-1xy0+VjTU*+012PN* zR3;kX2gVFJ5~h8NcFda(oR>Mu2B)9|Jhube_B^aA|#W z<$ahX`8M0f!e%?rf zJUr5V^~VU6L+zvC{Y|Y-bgPQ4RMCA+EXPS$t`cSxBw&3`g6${2HkPm#Q#%PB#c-Yl zu>eeg{dE#9(NBgCRl@!z-HCpsqOXlbH7EL>itZnadY$O&D#~4!YcF%6&#CBxV^PzI z^5@L1YW`R>=tQ@vD7O?}xl`Jh zZ_ev>elz>^o5Jm#qK$8x+0n6OojDlKWD}{R*%WFFHJbCHeRz=XZfb-PTCym#aK6Z9 zq7D6#M6#hfXQc;nk!&s$6%CuS7}wAu?JkkbiC82T$q%u$0S>XXOgxszAd<(d#H8S$XkRKD7elE`3<)+2 zsx{t4Jp|_jt<~oWEcGw*&#hQpvjX?ZWe8omR@dMc zY)O%6R0(?BvxFpM_-ibM|y2{^$;v!q|mt^ zXQz3LVW9UJboA;q<+}ir^~FA(`;&Ctqt6t+SD<}B>t21PS9srndXQ$F`vrjE^_~G7 zqi2$zqk?+9?`_~;bcM+9GqfFCV*{<b3q00IxpXPPC`FlOz}6wJB$CQiB29v5jqE z3=~Q#Y_GE2w)NeY3%vEv>`x2~$(+Kmbd`?1j`m-2IG!?*WN0pkCfq;+Pp@B)kBu?b zOPwbH&$6wvTK?nmLHK^0*u3M!qt&BRj(&Y=`tb`_7EW25oc882<80&JgZ?XTq^1Qc z2H(1T&G+OZuRd`iY91Ya7h}#szJ>e>DZ?ankOh$CkPVP1WDqg};gJCdo}pR@+DQmq zJP&mcG;Ri6+#l)UA)|}u4p)ec$B8ZyNG_fTx_F4Bi(5?>w{aE_jayC^4}{F(nWT%y zRA!x$E}k?wBabVyc&_C@UJAOnFgfs__RoX8QTu@rLde@lilU}ARNLJtw4FgMSmE&= zMi%Fo3ORh0G}o`I+br4w!Kd|=mHFc*L;$(EXho)`{TZl4uW=5DrXFUzf6=~y82`38 zZ!n%{q@*JmJkz1x{PR-I17kN=m1dOt4jLZ!8pG{gYg7|+hRc1%@EGf;%~jzEbagR literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_putast2.o b/42sh/obj/ft_putast2.o new file mode 100644 index 0000000000000000000000000000000000000000..93e88ec6884b8419158e0a4b4bf50b4e0ca2f55d GIT binary patch literal 4376 zcmb7IeP~ zB{^}%GP1ZX3vOVAg|SjdVJu^?1;$obH@2p%|CB<@U@dI0Erq7EkU&aXnr*Dv@Auw) z^3$ukWEY=%?)lwwe)qil^`89Zzpj237D5XMRFEL#qC}N~pnM6ErTqn^9C11>DIeDc zr=TQMoN3mJ^L1rFndZTvv4hLD+ZxcF7WtUVXk3Up2nEGSDz}(szE-c6tSJTf`COh} z)qj`aMmkyz(*RAgP@I^XGC^u%rn&o(!Tk?5`sY=^KNT|O;{)78>GI8#^DFW_$qDzA zZ>V|nKr8a)CMK%Iqny9y{9L{tD1uw%D_N6ehWPm;Cm*H8O@VS*<=2e`Rb4CQSIt>d z#oFij=6!o;Eb8!j>J|BBb9p;Oe||2XN>ALJFITC|6iq8P%k)0?yvJ33eJY{xo95^6 zl_!qa3+&JDMa8#K@twUzK0CikF7N02i;wT6TjZ-BudMjI|51F;s|ozuE%MKb5kNuQ+W^ zRzyoEzh)RK9-ZrVPSJ$*U5a3zsFed2m{33B?xHRx;Eg`KaQg^Jc-;OBQ@Qc-i!bu*fbCCBZZDJf zw_Djo%B6~75Argn!9#Y+C0i2Ng-biL3)e;bsYhHUhAz!Jkv7djPb&Ttr(9Wy_~Mae zE7eGu%i|d(NuM+Q{Y|Ld?~IVJb7Om9z7+{5|74T@2R~mPNpFnwDL~IixT4+Mw1&^y z%|0W`K1Rdm#bzJw8}*FA_@c_^Y_kt6ESg(29w)mr?>vuxt`*AxM0hf85ZF}Ng;x`g z|M9@k$R07eXLLwBuy15!@ZsIPDKT(QujqrM?#<7XYsJDAF#w=f3{XMuJD45XF9vzr zruObVJd!$Etkz0pE7g#JR=H3tS+){&6Cngdt0DJz7DSC74iqh^ZHl$aKr9iu zJ(ko~Ve9A_fUC4!ErD2X^#17P)}5`m%%sp2u%{jG)E!Nx#AlBP#Ra>rinh6w)@%|)7PTAqQDM))PDb3{6#KZ8o>TO+@MzCtKNhHGfe@|n75eF7^- zs~eUG^B|HzUv0bsmC!duUW5KJJvP(-P1m|t-w=$v1#27owlJHP*I~+FxDUu*(bPMm z??4&)I@{46W<5!+0<|gc=AfZT__y%#2x%cY;m{r!%(CH1D?t>;=9MqRhx-=WwnE#} z3!Nc|;*F*4kG+BN|M)PTvYKQle35E+?F8^j3F4JQJ{I;dKeo9Uf~w7IBM{!%d_kQ* z^yK-+lJDPk_U%{K{p8(`x7~K1b?1fqtw(=-^|O}mJo>^n&*xKT zzx^A;aAN-s`4AGsAZs9;K;FfpkUZolp&J z)*ondHlPp>!B-c9aMZMa$J$V990Q`c*D@}^{LEZ|pOMQKFfM5LRB}~Z(wS-J&WNZB z1RE@_$w(3*v>u~ zJtY&N3r=Srh{xqB_^lt78z*JgunZ4NBQ!1Bff>V6Vj$yDnLH;q0|@q^Z#;C$hGk$} z8jpD$W!pKq7H(}$+)d1+vEY#Mao%H&0b{k)jD9_Y$rGC}2lz|h?&yv>n!ojI#Or3x4U6viU*7_#tI?L*qE7*D1V1;Spu?Ommz!py~Hx zXK~Z~orv$r^a*J4VR3E0!;VhxRd$!MH!1sT(4YD$ICHet(Gn0-`Bw Ap8x;= literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_split_whitespaces.o b/42sh/obj/ft_split_whitespaces.o new file mode 100644 index 0000000000000000000000000000000000000000..f8ea70a798ab89f4600d3986153f747d7a69993f GIT binary patch literal 4200 zcmb_f|8G;*6~FJ<=Y`mbUjiBJO51r-2+)-zbTFWp5;WXB3Xu?P7@bOA9mh`0jN`?2 z!>UE1I8<@nZedfkN&8`~D)oy-|AG9#$fyWNm6-NJw;v)cNS#QeOtLgf^XRnfbMCt@ zU!JoqlXj%*bI+Iix#yhw?fLG5zx=a72+b$(gXTxe5`MyHps%9USov>gw$U+6@)(dS z15={xcZ(X%hC$ZqdD90-Wc9^?(>EXCkd-19&E_ckh%G;H}*TswV_m3oAW&E}A zxp<=rV54}cOmdiqc=5ik*60u~BIrvM-&?4kN`2kgagz5<_-!1gq-|udK8&^qe?DqY z!WaSPWjKY##6H{@k8^hSI=UOCKCAR+tGL*0mBuR8OmvP1TE(%7Ft2dLRyjInm7=wU zg8;Y6W0iS!DBjSlc+Hx=?~@`N=4PUcY?+D9G6TY#7vXQvFGyoNx@eVqE0-dgFvo90 zRUBJ{_Y*u&+05&0TJb^H9REt4veCTqa-9;MKd4hSn&U4)S&l9i=MnI2tK3&HulobV z8r&aQ-vacV3{;L*ta$IDrQNnlGftNA-dR)t<&Y4^FCld|5WvD!?u${sV(igb)es~A{wO7byO#j)y2NuLqGomzIoL(yRR;~E&5Z3%H z|5m5sZ}B;FCw{XHK(c!C6Kz_#P%YkCDix{=zsEezPA*4*`)T;x&7=HygioG4(;I#@ zF_KFSXTk?MyF0tXJL74*c)JgDL+IT5ROg;uA~zE6O5@ttoft^vQ<=f8WZuqY)2X~Y zI+V&Ma=7&pxz4!g>dOJDYjAY<{6MU0?^C%U5g&?;i1plAnNDQv(czJSob2~{ zdsL({d65$-!Cx-t1)PM|s%;N#Az!G)*cNKlHsfgPrZ~O@w@AD2g`Nopam)BS;kH@p z3HU-!2M+~zG#%e^1a~5l(3Oe@7<<=<4fTWYInW`o#eSX#<%I@4A)3UK%s{KZ%iIqs zowtX606)G#{1_VFf|7>iXk2$^(vY=%S|>BouV#NGmiF&*q*vZ&=>WUJ z_R@ze9b}tm$nr1fStmH)z79!i*Vqi$ixRe7!RFs%V~2vx@>$h(I6$WqfSZDL=ErO` zHBMz2$Xo-|s(^-Me4E)*_eAQzmB(Y8t&RfWRj$q-l zia)5|+4iUL*ZPk^=IRch$!dWgL1TIyjmP|)1&|CDe2xW>J16@vdFR9_So&XlI5uu= z3$XoLBk&t)D3W2ErJylLKI1vsZ(OA(z@I)#yCSqBLaomc%zooUff@>H zTy?lM!lqxQfblMw7_~V`4^7eI5&C+PI;N;ALVJ^Ra0Y1HRX&!8k}H%9+nJ;Yx$Sp5Xk3L2uks{9VO=p}3`ZkK!GQKkm_ol?*2FPAI+| wJcJ3{Gli~{-7|zwTVb+N5nq0*M0{lPQ@8w(Ny+<8N}rXN&%O{#%fHnB0{*V|F8}}l literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_tokenize.o b/42sh/obj/ft_tokenize.o new file mode 100644 index 0000000000000000000000000000000000000000..6c708728e7d1162bea836addfda5d49f77cf74da GIT binary patch literal 4916 zcmc&%YiwLc6`s4hvv1$KwiC-Gk8bL`fM(ZCO|c*ZZ{khXuAQcSB>B;DS?^x2H(Bqx zdw1<5YN!>r#l}rZRf_miDH2HV1JQumh!7DaO{G>)+KBK7LVyuLq&!3@5(FAzzB6~O zy}k)F{9?4{oH=LCeD}=b%*?+1&p+MtF{Zc~7{~)U$HAf?l)FGF(*Hx*6|@@Wq>rrw zlMzK^KV7dF2P;y6(Di}jzJW#EuKie62#;cE1pvhcWs-zlbUmA{q-~AxIuiqlMSV_I z$D};xweV8FQy1M9YQQswsyW@Pl!Xm=dlP*-7TR~y>%2pcO(&DOBZM;G$Bg{^` zt4q8Yd&6JbThy0$*m&uop|UY9#=9gw8}H{5=1%eQ#o-clamIH+Ogdw68O4_a7Vx(* ze{$%zjjx<8<_z;zymuXY=!YR0=%TnS-e@`_LUhJwcQCVvVwlgd%i^4J9n)t@j87JPX1Mk2c;#Cff-FCb$ zNxU<10zZF;ct~Oa>5Ol`+`smCyKhZ0$9OZPQH-;qSBn$*Vpi9CIv1ygvEvf2LmJ0` zM_ck5_MZfD;29(Oa2cy>b#R_97bV_^#5*bRq{^_|c9SsK`Bumm1)_7j?J^&lj z5~m*DBhn zbB|sa9*${uKPkROc&VvBwx(u|TuaSVug(l!NzGQTPHtt|Q?!L%PtqvZJ2ZyWZ1P%a zsvRxspq*q_spT|{dgiUvO!6|?FQ;Z+7iNF}&zm|X@^H5I%FOptv!08oS$qcg^A~55 zH)fMJQd6(BK6-(0{!b-Ar%1G?XHRc*+$fv*QZd>dYmK!=H)aYr`Zl$F=rF6h3<_{aO42ut%=o-&Wl=f%S@wUz82+Qfhk>!gOR?!Q2v%*YE zWJ<+~0jrd{2@FO|uiy~Nrpw44VT4{N6?4&Q(ah(HMm9=VMY?n|Bk8i}LYd19`jlBo zR}9vf+>sdU8G!8R>Sg`O-E8keeVuIAVDGkMAKTfNOboD|WPiU^P3-Cv8p($T9~wxq zPD^Y{Y=5x7C()l`dlG%De|K_wSE7eu%y|>HY9T*Lb$k3Q!_oyB9xhrd3XIndNH}2v zENMz9!iJHe7ef?`h9}+tVn&pDWu4l{-D={Pjfz_hg)AjhC%{Q* z2XvUyzm7VFLR;ahdTM;Njj*poennykvq9+yT96yU6dhyroVlcl;%R7GqOuR;tgy}! zzc_5d>|VL~Yfnu3;pEzjMru$zTEIOgJ>8U#o-1G~p5z_9<*ntg`0;YF)qJJ=Q67nnLs)=@J^vCA4g>(B1-Xa6Py0Q>1PD88{12 z@cpRqo&1*&fp@^Nr0)n8Ae#BsPz7=&mYjFcG(QWCV0nV3`FUs*FW*Mf9M}N2Loo3M z|0D@Nj@|x53RQ7s(6xabCJNaU=4JCJWI#`LC3fP-f#3b+*SQ@ho}o=cFY+viCWib4 z5F~9X(qkYhG!>+e6GO4TDb?G4^MCQF118Zj0!N{7Q0#8T@lPNm#!x#BYWINX_Mqn} zrh(B7O+HlU(ml=N-+yIp{hzPD(e|0jGx=4Gn|`$UQfAo-*EhG>gLDEEPO(t4?Bs~?8Y>J0mg9m#YPCn zYC;{eDlc#-*vK`PB_0bNbfGtd)romLEPxJHaj#K$FnETCz1_TV3vc>5Z|>&NExhG8 zUx&(fxN9G0-Z!~F=)aHq;N;!H-QFDcpRu%V9`cUxfcGbSx%WZTySe8m4|D_X1YhYr z&hP2w!EWw~amD)yR{(Rs*thUye1FwfAQ9^(+Sz!zZW@8a9jJa9G6J~|5}~WKo=8YF z1&M@KJ0R(PY==aGs;!VnPIV(Bl2(mE;=odyA@MX;fkpqa>f7YSf2RzK8ybWH9zrvw29orOp zxoAu<>+OoC-f+5Fz^hce-t>GikGj~qdai7w7nFiwnoPG}ywams9UU^tw*NRDtg^v0 z#>BT4-jWMnqlcyKG-hP->4L2er85W2LK^RCigMxQY4?1rTEgR3YD<)fQaNikh?vvG L1)ahsm9c*Vjs(~* literal 0 HcmV?d00001 diff --git a/42sh/obj/get_lexer_state.o b/42sh/obj/get_lexer_state.o new file mode 100644 index 0000000000000000000000000000000000000000..2a093a6d1ddf804c8e9bbdefd8696a47fd652cc6 GIT binary patch literal 3088 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 VB28OHkD^nuwue@WO?Z*9KLDYl?iBz4 literal 0 HcmV?d00001 diff --git a/42sh/obj/get_touch_toolz_2.o b/42sh/obj/get_touch_toolz_2.o new file mode 100644 index 0000000000000000000000000000000000000000..4b5da18492db39640cd3d12fd9e77aa9ea1fa3c5 GIT binary patch literal 5264 zcmb7IeQaA-6~E8+eRkr+&PPAVC|;C~R@8CUl`d@VXw+nSHO(07SJJL}bLoz1PVt*8ANCkmNU_gWhgsm+6&VBbK z@rzf&Rqs9boO{mi{?5JkUElNqq(1wz;NboK06(5>FDhzJVd5tnD{8EYnkiybFn6er}>ef#Q(+{EY_2Jkn$e zv$gWgMKcK_zZCBQb+I>Ntu^I3w2Ju-L}P-You7p#=`8~is$Ft~qGG4|?RGJ!1~DcHcaXu;6$n<&Y58c}}M?0@0rDl*Id)Wbr2OsN4iU z>yt4pW=rcL?n1Bmp;OozR97Qov{dgvUV^00>_ODUh4Q7k^om&QRk^=cEB!$meXs6E zMC!-Xl-|}(7jKqEZkDc2QH(HZrLLLMo7(8>b%(C>qqO=zb&>{|j1Op~k=au5eXX>2 z>WPu}n-1R3{A15!TpJykW&V?2rtU=7ls4K9t;y0RJlg2xIj!W;CPrqpiQ<%)Q9He@ z9r>7j3YtJ{_w4bof>^ABi6mkb#7+ zF^v_M$((5P^#HcSz8`JaKdn@pG56zU)4?6U`wX@h`!R)83{V%mEEY4`y>9<_wXk;0 zmN*+2FP zK)o73BkZqw&?|MlBa~9twdo%~e_{md)`@jH3q_<(XJq^tOT$*tLI@&qq4v|*>21Rh z0t!4p%nd(>R&txH=99;%xb@0di#SbW0lRSt>}&XT+~OQqhoSAzl~|l*;w){j4*Eq4 z?Ao=jJ8;;@z2)}cWz|)Tr5O)So4eo#R7?BcEHdL%#8j(_OO8mU2cG- zG6k0DWAto_C8If(GYV`ln`imdFg)-x8;|C2zw1&@XETXFF_TXvGDbW=!G(cArqnCz zeU04dt5chN^-2TInxhrQ24#D-(|3>eUhk)Cb~b(BNL+kAGFX4&kBv=pe0`rS{22)uE}VNgtBjl zM%x9-F%j1;;|4`sJH-)-n4z6!;Etys`6)%+<0CYcu6OQoJD{jvA%o(k0nb`AUxV&k z=V?Lr9J-E&)e8`Ad_>yr4h>fEb3{K$bU9KXo5IXD3iWYg&;91XO^?6#>)HGE@80@R zCv5cEr?nC*0QoQ~6_E?%*M(;K5Js!itvSg?#Xcv^_5b*AU{GB_U?`Laad*P%!VfUv zQK2!~ZW{mLjXVDK^0Ci;*mnGs_p5)u))WgocZ_l&?oXkFQm53_xIJg!MMQ5yJ@qfKhI7_u!a96)2Q0bUx(O289j^t1=f1J*Qvcj%v^3Mb13qyt>*G;%n3bZ|di25BI1^ z?p7la(Q&B}ew#YUZ-;b6xKq8v{k_}=tvbw|ksf%)Q#{4wHJU9z8YGX zH%biy4s;Rk#bmddrWS5Bi1&o~sx#Db^)2q~y~tg?h$H-BW&A~f?h|lL2y#sz88DeC z>RHbIK`GzKo4{gSKX2~gp?rYVYMN~Bm{xJ8@dVGOk z)r;KIEAShEzZS!5uts6N0^~`FliYEhmN9??TKf5h2=_+jN!P(E!dD93E}#IAa%lj^)sSFC z`%#guHMx^E^<^tN2a;DN9V!kk`#ug*6=T8gK;ks5dhhn|AIv{F31Cr7tp^cJMJVMvP8At~+vB*i@-^_^1R2uX2&#YaJLzom}@@|Td52i<)X|2!nc)8A<1 zzYY?Yeem0mfKbm#X-IiU%DbfuNqL8q6i;#6r3^?3A?)JE5#!&5?uX-c8bEmxm2~S4 zL|5oEMr8*o*{q_YvsgziW%_2DZr$}({BGNLvrRv0(=#^xIh)RO`D!CcH&~yMNZ<`N zlqw|kSTUEk9OwlXiw>GPIcD(Zz4$LMiiBs*$Sml12Z|?NIjX?I^Dk{=%&vI&(bJIp e79NWFP%c$4gfY{nr=$6TF8;PAulc7XWB&!jY?QVD literal 0 HcmV?d00001 diff --git a/42sh/obj/is_builtin.o b/42sh/obj/is_builtin.o new file mode 100644 index 0000000000000000000000000000000000000000..2161a2b4d827160565f747cd687c961b6e928558 GIT binary patch literal 4492 zcma)9e{5S<6~6D;&p%?vb`sWgTGDxP)^?EEZdXAlZD~e>UZ+&rMz>Z>=wUzqdd0Dg z{hVgikRoM+hQPESkR~*Z3TZG95`wL4+Juy<6N65OASBTEV-iCXn-ow%AR<7N?|bjQ z#D48)uXOG?-?`@=pL_2)_g(+$Uw{5@SO_H`(1C)WR0v%fgmxR~Y0VL@+YLuub)Iw3 zJPeV*1pHE$m6(lmh)RmZM3R11xwpoHDC#JUWniS7_DlCril@Q;sr|aQ{Q7RX^RRcjfTKGFT z_24HrEn3`cv|A-V&&}#@eIa`O>P^$J^85QzpS2J#Mf#lq^;vlS3dLf(Jjea)kI(b> z8|mg|{aKAllT-ZuKFtI}drPkO%QA2Nj{TGAb=~;dg+{g9xz^vLFDGj;*MCocU4OF$ z(+SZZpXX18CvNPo&}!AoMx!vx@UB_!M`e7cWI)yp<8%Eri>I9f_Q$s({f$e17jM#^ z6JM)f`u$z-`FrOk{n?MUuDjkhrN3w721esOC*g{|^KjRTOTlsJkFP81!CUWhgE#VL zHfOO;+vqmVSdEfl%pC2V;ni1KD%aqTDLI;Q?>&gV_{ue-(#Gk!6a4qfs*LZ5J1nk9 ze-a98XU&tzy?U!#4acK@y+YROu-w0V!ks<-KJjs1FeF55z%gX-+d&gha_iT@&x7+= z?+5iZ+LGLvy(2f4AJUiJ(HGa#`qCG!ygt2t6;1!DbN0)}*B37;OUKuB^Vj;tw}ZN} zrY}y4ph) zZ+U{`-}d3}`S6c@_$NO6st>RF@FgGi!ztb}>6w{_kEiF#?T*!Kq$jiaY(Bl)tmA6j zGnog-?%$W)d$;Jc&0Mi-)orVhvpR+pv!=*B)WO_b^-S}0sgT>huTv9MZ&=v)Ml~y< z<1*eC!mJhAq9Uw@EjrfOG7D5}ImC?eeA%ps7Nl0YX_h-3O!uV1oM;v78ur|=u}Y$4 zl?s5g~h3k#STL~m_;1J%8>!r>#jI| zUWkMyRH>q$B_J%C5lyV^40$-r&pqdfkvyi?*bV$uaMC1vG(Js1>5?KKo zcp6~jwg7F2g2zE*~FA(M7C1})9kyKaew{TfI=t@NXgiiY# zy03!*=@hlf5SKf|6LdNe8H6~@U?O}R4KGl-6OuN8?pdI~Sm=4MeDLlt%kMd;gCF98 zE&wfnf)iL!_!USDD!50@q{6F^zE8`nn%N%yBM^T*m{T*OVO~ED%Bz`l_%9yXt7gW- z{{VV}^Y*Ek-6FC8s9gYl4MKQ_whHkw#E`Dh!9D2Di30Vi70#Tm@v2nMFze9lL`K6A{@7KAZtWa8xk^rK%`ZEE%cd>CtL+YvS`##oR+Jv$2?H#rl#e zW&l-84C#wiLlv`P9E8SHpo-ZcRZM59nBQ_DE08KyfVBF5XB@_^bFX3D+hlptQD5_p zRXO{hQ07xgDjtqJ1uOp2C@8%_XIHO!uHJwL0*C=v^d}P+GV#UtZ=zQzzgU=b#&arTZ z_?>YjcOGQq?!u~&@Z&xFcQ2^Q$tTaqA82`%5e4aJu!9?KJiu9bHH^zCJ%J%958+| zvEcI1Ja`zGw=wjg8aT=(@mYyk^4RYLGn3;wI6_Yxk$4gurIpA_yc;|UoR)YyIJO{> zk{G^Gy25!;(%%n(5q9Xik{<+zeQ2k|J0u5l?0zQs=fRUOT;l**8I*)0ubqR?1D#vG z7ju7lamI(ap5AeUkThnpHd=BsgY(0M*?BIg}x kRQPUco3pJRGrmBLtyC4p)+=jsHXfjxGG3yavRM-U13O=AXaE2J literal 0 HcmV?d00001 diff --git a/42sh/obj/job_addprocess.o b/42sh/obj/job_addprocess.o new file mode 100644 index 0000000000000000000000000000000000000000..23736aefd9a41c373f352a054438f6409bbfb36f GIT binary patch literal 5048 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/job_cmp_id.o b/42sh/obj/job_cmp_id.o new file mode 100644 index 0000000000000000000000000000000000000000..0dd4403abe98f8d4f76581401ec3e06fafd03c00 GIT binary patch literal 3760 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 IuQ1N}FN~005C8xG literal 0 HcmV?d00001 diff --git a/42sh/obj/job_free.o b/42sh/obj/job_free.o new file mode 100644 index 0000000000000000000000000000000000000000..36954c14496a07d96548a6514b4bd57d14533d30 GIT binary patch literal 3924 zcma)8TZ|M%6s_)=>FJ&KJ|K$-3@-SHu(JZ{Mtp!SIv^OMtQezdXM1{g8)s+6=^jMI zNP!(<5XM-Eh5l?qM&*VT^@us4|JTy^Rzh~!N4BQK?`+Y3R0FvG|Tdx?S3E! z`sQ`_Za$-j(vT8}$7SEj2*KE(>?8}DWtE+g=9uOA4QaBhp)G6gx-}dYEgWtN?K>4; zpvhjJCL_K8uTrz6xgGC2g%i#xb8|D>Iq^y(BMoO8_dhef5bq0xFPr}yI$d~P+$G=Nbxa=WEv{uutD=Rv&SzWy{()6grac zS9p148~`5c_9x_@I`cL>XWSZX;BE0pi1AP+Z`H3`m5A;8 z6{;TQs9^S}{Z5@HK7N-Rfs?_9X7IhBBdVSTaIw(`afmxX(;Jr{$$M-1z%1n9;^fc8 zUBBmxyXAowC!aW8oNOK`?rxG#fln28eVQvy9xG0MIz_K3dDl z$#2|v&!+q~r{TG^YJRYPpno8Lxm`iIFCQF$(!Xj&|5aBAuVELq)<%}wwW{B!RVd?F z9H-wFg<%h~3uBMeww6nURV%!45snJFJ5@jAmghd^2zHjwqbN0yBhm=HQmc;Tn^n&p zt2*Vpi&=mXzQx{?y;~ME*T*2#-STvdP{sJl6&NV_e#0GU`Y00L8m*MZ0(iLwF-F~n z=Ueqg&2~JxR9w%;Dw0+C0{IiQGABEY3Ag46+j1p}Zq2hm{V;ZEYZ8&nb;;Gq%ThO` zkS{TzE5rJ3T-&Q=s4+gJ#$2(!JD7v_b%}^%ZcHYTgJu?XAv(IXNG6#iq!5WThSzsf z8AK8%TVu$qRBJ58v2+U-V;M~&R(3HUuLVwy%OsOGGSwHO4uU#1Wg(@+GUg!KZ2^;g zcr&yrJ~U|e+y@6Ot7#E^?{;3qT9$tbpw%CeS`&R#-#h*qwa$I$MaulGe0KR}v?4MZ2~ zeP-fcXjf9ZMDNQb7C`c-_33@RB7P8qv8WM&+PiV>P-2$eh>F3D#?NCAe*F+U#Lq+%`9D&S5CM@Tt;$E_}>< zWe|P=b)+=ROx+NwX{csuU8rWD=2DwNH4C*jH4ODAs3Qk8pV|ho7srF3^uEE=GojiA zb&W{#E3cw=T+5sS&vwGMN2C*A_t9=@aSPnkauZ~6Ipax=bf7EVy|xG@FF|tTwrqjT zkaB60c!jwm69T+nT4&CsseSHgwCVU4^5Or}E>I60(Re9q!T^uqk5RH^V^qYZKd*eg z54h_^C+J(dXTJZOyTJJJX8*n4hI1>UKujl`mcyY)3KVACQmV-|n%cZs*WZL}&((xhq5M2)95#IqSfqW2; z;$_e~phKW)DTI5m+KNfXmYd9h|_V(lp}RtZfkKxJa)(8QEfCZ-on zOgV+cD}W}Ji}GSJ(!?YUv6R=&GhVD#da;O=7i*Lz?p4A6UslDDG0YCk2-;A<2r;9D zX{J4Pm(aH7v|K7~?on%84A1;=!kj*><_obllY3gfB^?w+aJ0Jk9-f+ZGLuHHaSf2x z_Ed{P(`yvms$FT8or1e^@S2$x?@_N{1%D@%lXsSbXuaro@3BVU-#^YfUOnGXP%?b@ z)n5b{qSHL_U|8~z4jkozflI~n13|sDP~eO!0^mW5WVM)?Ft^4GV?!)$+#c%!*EhuC z#yc?`qGs&U4SWK4Uk3tT&T9hmm$PsY*A3SOcB7#9rHU_99E|gfpB29dJWD{;lwYXQ iS5j!;^)t;Kn;pfU3ePV)73@3sn<4)&3I3A_r2ha@XD9jq literal 0 HcmV?d00001 diff --git a/42sh/obj/job_getprocess.o b/42sh/obj/job_getprocess.o new file mode 100644 index 0000000000000000000000000000000000000000..c92fdb89967d8637633773c47530ce6855e6b8a1 GIT binary patch literal 4784 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 dZnYxJ0>o6PxS*UNEh(8aG;q{{qNn)93&I literal 0 HcmV?d00001 diff --git a/42sh/obj/job_getrank.o b/42sh/obj/job_getrank.o new file mode 100644 index 0000000000000000000000000000000000000000..7dfe939a4a13bec2ef2b56428d382681bea2eb37 GIT binary patch literal 4388 zcmb7IYit}>6}~gOGyC-J`ccb?n{N*lpj>YG-@an4*^0&j=%_^rs5T$DwtNneBaC+ zv)-mnxYD`joNvzk_T0z0GumIg{kQ*wgirzk9V7^;Y3R}rv{jHrg74AZih2)@a}1jA zgHuqF1knt`DI9V<+w<=o*?;f-}5V?h1eGMM=t9X5k6mjY^+{5$oa3# z&*yth4!>SLt1?mLkXF7bHxTVPnZ=UK?<-h8xqVm7ub!_I3--JDI$GB2*_g-Q)L)fv zGH<#mw&v&a$?Xu==F8V=<$_VkPcprC&9_tLHzX5!?wa{|eATf7?gqE!cemtQC;9$x zoqTS7wY=HNXSeVL;!P{(nJw$*<>x$7yXt(uD*4KC)UDUahoW;STk{J1K!6T&CUEdH}%(n+|1#{3nLd9`F(MTDyO~9erDuSZk9rG0p{Wb zJ{7Jt9HhDV-1J;->hOY?zH2^tg!xY$zNjX@d2V`S{@BR;X(f4-xAmKMqQfwdkn1wc z%d>;-Z%r+VKdpY%o!rNwuIV2ffRov_C9`>>ut#MH+ zva`kwhbJUo$I&%>7h|_>!GpZx)UC0GgSvB!iE_Ru%GF9S?RMm!uUB)Yz|z?+DpNe*&fF48yK+mSQwtA+c6GXOi3;bex}JhtxIkS!j+@Z&Le2{L8QsAXU?9Uoie6 zyez$&)xL22SMd15>Ic-mRD3h67wGk=eLW(&3g!s}XltYEV16BDFc&=q#cTqbqPGKm z38sEi_&k&r)^-7j?nSo%KeQ_L22@X|BmQ^jBY;C)%;*Zdqx5cI4x3;-ORpO_h_>i) z*a1j*ZItU2rTaj5HB>09kvlPnE*FU@$zd3)v5Jwn0^TGax^5fXaPofNO~6eh^S+ye z+mp25uIJbk+;s8_a7XC2!yQaM?YkXthee8+h4$9$G;2huKNbA$60vp4sGOmybSLYR!IGz+82-i9G<%; zAL8mDiBIof9_}lJ+JEzVnD<=}d!_#do?Q1hLT4as&131ej>WaT^#8>0Wzr>ue0&uu zLWkDynTc{l!`xk*?;_S%7{a$N$Fe#*AkLSpHNTHO^Vof7j{NJ&vC^7X&vxy6@h_vP z>C@rgoqXZ7e{T(zQmOdCGY$2Y)UVC1-d8_+;rSmdtpCSLkA3)^fybv~Pw$ynqyOv^ z&gfWY?}>l@viCALd4jqj8zDoGyCGwc24ot-4dpJ(L4E^y1M)Vc4GE_qTOqq3_d^!I zhev{^yBiv<0+SHWf`nKfgjhBbIw_-g3?#(OV-(M+gjlwOSjo8j*m%MTapxt((?y6U zj^86_EPFz{2P7BkkPu5#MzMqm@r21JmL(w;jHKs@CBzz#QLH>dEJz8l3JG!bBt5Sr zLZ=`S;+;T<_lz9K8-oxp5(#l`gjgOj32qu8UJf$q{mx?uXN_kTBfK`}DN?LxJfv*O zqxT5qP)bR~Lt)N}`Q8Zm+7;3)Ey?ky%|z;p>L=UeXSOIIRu%JPP~J(jp;!1D5T)g- z1>YcMxxrU>wqe(^(#u*~2S2hBu^(v(0gyH12R~lHO`ksa83OXVC{tohd6BSDbIW!R zw);H;9JS_>dEsT-k>kA24;kQnWx&BmlqGn*7Dy^uFnUglHnbacM+;48QTfAk7$aa>R8z)kOC6v=l)~n{kM5q&q}>s>a|isF;2fEbvtwtfZu2~ pxk8TfA7jbJ^G+V$YL#NS;8ZJuUyJ_gdyZw}pM`3zhR-M={tHfGm&O19 literal 0 HcmV?d00001 diff --git a/42sh/obj/job_is_completed.o b/42sh/obj/job_is_completed.o new file mode 100644 index 0000000000000000000000000000000000000000..52ebf04660f021f03cfe9efaa2ca44b5a771aca5 GIT binary patch literal 5280 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 bIc>ZGdJZ4{f*%LEFV-q+0R%6D?HZ_V>H@++}yf zLQnY4cfQ~G&hLEZ+;hG;%Nzgs$0vpmN<^T7v_a|`sx$=UX2@lNpHW8RLB~msK?!Ye z3QCe7ifwzv{a(-x?44V8?YwG-tuwMgK2CeNLkPwO<1kfNY`ah#X^z^i*YF|R-g3|8 zyS^NDi;!oT8bBNL>8`LLdjd1$tJEAHXyyCuEN>ycV}>--dX`7Xmme8v6!&udv*Qc- z{w#;zC||i+s&Pmw-#LGigxDkX9acb`>J0V~)-~g6;d(n# zR|Au+miV07IM(Ue&Fa2#wP4%Zx6B;zoa9SOa1eYviUT-*@|(Bt702vS179~7VB53v z!ON0wNb>EHe9{y#A;!Wsb$H(@<*Luvx?U3ld_Nh?lXAU-pAjGT#dnDXfiU4qbj;T%>#Mxc{khj|^YVY3~r2*gBaz zP8rNiyq%kPRl2d`B03;LDYW0u9X<5ENIo#+lfXPqk9Xh!8CsrOau`A8j$RhY2YJ|E z+WIkSafz#h58MNmOD{}KO`(%3I==Pe+|geT+4+O-BTOsb81zuQLC_RmtAD;TD@K@^gALu?1CdZy05mU zkk77LYV zEss` zNqj!`h1jzAwyxW8{34oACA6&zKUwQ$nc89zNo{23$Sd4r^ zSncrL)QOtb zW6Q*ztI*HaFY0XhHru7@Nm8q&7V_yFn|NaWkvc__ow$*t>{ z*yup@1}t-)`4-e}t=Hm0xD0I(XZZtBIB97$(`HSXJ`b6S0{9%o-h z&GZQ4J~SuMX)HAMqWM=e^_)Rs#uHg(oB$eyn2R(j)c5-YAW;*^5%t4wRFbCt`56w=PL!zCrYyoB&N@5}0 zlB-d5i}saJdx)EgR)aQ`)FCRvAMq%AEJfc2FJmXFXW2L3JPWl;TWb9r+TWPv+`<=O z`CGVxoAxp+e|uM|nYi^PEPvB(<7d;KBH^>B{si3YHQ$38h_0|cgkFdf8-<&&K7o~? zwTgrhxMykg@hfz|;$+c&Y=$)l7AK2l)yx8GUT6(qXRLH+tyVLOr@w4;jhb05bkgg~ zQE68|rYrh7w2j+QSr}%fJIJbZ4g=`4!%FDiM6-*-^a5LC!6*It<{U^wDE!%C3GCp7 zf92wXkMIKSmUurj%gnK~TgT!@ZtDN>;duU3c9RT+0V+a=*6_Cq@`Z2X+CU?*2ou6L zImaa+d|Yr&WE(LT;+-h>Hq|Am;gPQSFHA1|=l8akdf#-q=Rf|h-_5^p-{Mz~J!k&@ zm0xskdF8t=J@ewh^&jc4-{H+Yeeq{&+s0D&oPXfo1BZ{rQt`d#PoH`1%DKM}r#^gm ztoPmMse?Cl6qh>bQwMvnNw+~ZLB0klK=wf%hCB^<9&!QlHslh7zxPRep<5yAAvwsm zAXUf_$P#WKyCRQG^LQF%_ zi}#8UubQN179_;9D7~1o2r-pOh#8s?kH4g6@*;Esm4uiv2r-LD=q;Fp=q+bt(jdev zBI%iO2r(5&h?#&8Q-g$fB?`0ti~JcQ$*dAy3+2FFLfM~EQgOpP z2`|pF0MhdTiKeE)pFy!Xk$On|QhRWTan#_e`VU}5`6$sY6ch}DC@t?vJPw^olMk$H z(`{s>l`XFw{M>BBz2D8+!QWT2Jb@!cw?0ZS6P}y>WBhFoMxl*ulCMb^ZNVt{tZnhc zmACy@W8mmd8@R}4APo5M@f5&8J`DCSl2o*4^qjUpH`AI?(z^ApX!GF0Ps&m)A*?tM^oFVS+Ll==}yh~Aszsun)NF!0l=W=R$Eh=s)fxI>oF5n);9+l ztNJ2S5|-SzA<%kO>ZMXIlp2bDy1WYdO4vyNVPSKIDe&Jnvuw!|x?`6Lc`uJmt&UcT gUaczZ5?=UtJeTlCrr?9zcE;;`pZe{qe>Z^Pzen`Z<^TWy literal 0 HcmV?d00001 diff --git a/42sh/obj/job_kill_all.o b/42sh/obj/job_kill_all.o new file mode 100644 index 0000000000000000000000000000000000000000..85cac4ae77980a0613d2c28f767b7c46fe2019ea GIT binary patch literal 4180 zcma)8dyHIF89(>V+_^JzXJ=*~*5cB3V4<|M-C5d7H?qN9Y3mfWfdC6=(Ch5o*`2%0 z&J6e7=__a&+n8NSq)6}|6C(*hjm8jCjfwaGAEZ74Q4C@X@ehmzF|Ni)TMX;(cka3C z%ur}g@}2K-zVo}^Ip_P%JujU9`#Yu(T1=n=#X(I2T>*r48R#sH@6ooT!-12WgBIz) z6r>!DXto_x4h5kc>UZwB=g$A@k>o0Yc>L@$0MKcRi=$*wv+bG6bZgG`15cW4d-vTF zx9^RHMTGMz7ln3C#TRO_m#~o@;nfz(1>^I|^|^}wZoI=?`<1dnyte*=cnf7m zhS(ingr|-}TpX|5Y}P7vy}ZEi-nHH%D!wrlQ2L_rg?NqWd3nIy@qJI>U8V5$ULu~1 zuUU4w@&4F_H-CwE!Qtiw*ZYpbtEpZ8;w9pt=p^fhkv4C|3 zcB_8St^ktcTMLC)jr9eejgR8&`Pa3Qws5 z%dbWbK-y=TmOP&r^c)>CFwV?mPpX=I+!A%?n-3DrJ z`~<0E!R-$3BTto<{!%*jX5lGuhF&G(5A2uroGqOoQCuz^`|PsF9p8zOAEnS;_mk3z z{mZ2jsnXK^GZ4>gnTRhvAI_Hp`|=oBUfT28>(8#Ntdx%ZtnjIyPO!WRlaqJtFC3_N zzT2o5Mu$g+M+%#q8t#N`qa#p;cWxiPZnN+`r#Ro3-sUvwf!C-}w(oOmHM?A^4LhPZ z=h0BgB2)DB7HJpkMmoR*-SGzjf zZ^W|s#9+2p>q9!~!!Y(~UyEfe zi*xWx?-8-=zJ4mBD2ybkL8PvN?MBPOaC+4j*Oj&EYtT2d3W~8FP2-2MSKvdtFfm6A z%es-}2GY(hlKeGq%D|bY}SX8rU_}1+O_&n z#^fH~L2ZjZlo#<|a?g$aOh;Kkllne%S4q|L;DhAPrr#Zcpv^47) z2)_U&Ga9~cjYet@)TA{YsadFbs}!j@sB5j;p#Bz=%tI|$_d`5OwHNBB_4!EcgE}rU z{A7{Crq;t(SoWXj21Mo!uqoP;TI!SJTCPfF${9x}rnGnpr(z7CdkluuhZ0`_`;4*9 zd>mZv`37#^6VT*&6!f9E`AujJ=Uu_gJPl2r+?800`7$(lIzw2AFzRqS1ygE6>IYy( z65Dgf1lKEXZgNzIY@sb7W#`EsKg48|83sNqt(|je>Yj^RccmTwVm>GrY*k3~7x8x)n4HYJnC(JgM)1o&~)G`YY%>s0RTTKs!KtL7xDz zHZUYuENeh$ObwctGRnlPrisa}OsrCxShmW$#VV(X#i`(#(KNAClotz`Cf2tyJ*P~JPr-Ae z>BV$cCZ;S+%yKo6bxsq@UzvD!(R3W7g5WJe6Ym=3^?vziBG;I+n4y}wU5U}rn5Asm zk=uoKD6i!+X7VJw81Utwk++DmvJ&0SVj`RWf__s^SWiOig0C+ALkDib^ZGJ4UbXwD^bpq8+}YJ3L_*9S;*cUGSZn9}HJnP2n8Ks4Dfw zfD#YqsHabtC+g0YuZqx7JsO~3Kt>Syhlzw`p~Z5Vkxt)gT%P#0Va^)q#4ScXakG&e zGjxcl8kc?rppeu#j!LLY^opzESb@ vii6QF@w(z41kb?`HHvMj=OsHiU literal 0 HcmV?d00001 diff --git a/42sh/obj/job_notify_change.o b/42sh/obj/job_notify_change.o new file mode 100644 index 0000000000000000000000000000000000000000..6db4d7e737d07f67e7fb94dd0921a57e260317c7 GIT binary patch literal 4456 zcma)AZEPGz8J^wq-tPH6W1GmW>*QLuA!%ZtNkU__Zb;fBy0$?9Y3stC<5D`KYB-BKRNPLw)B_Jx0FtmcIgcdbC&+M#w zcTTBCdgq<@nRlLjcV^z%x%=fie}B&uLW>AgkUmJmK$V4{+yJ>s@B@n5A9S4K7?jWk zr=X+>qS&@yKH>-Mz!`8fNkdKf3F9m6;x7x1~BBjH{?ughDAYkaxx(&Z8I6^g}X`7qzVJHC+b zlHyn?U#(v8IHZ^FPA(wIITgi4IcY*nXM%Y|*LCA-7V6biYe`?1 zZ?53T5PRbb`P6c(fUnSKxMjOum}7X$-uIGO)vW(vg?valN!c6U1+_oI_kAF>w60;JXMG)S z4)5vP?fMh7ddar;?g|~LuPDB(0vq7tmV6ZZPpx?mUwPK9G_ktD0Nd_44`KnnBT(X; z;!~!;>(7R5>M-BjT3s^szV8mjw@C$aS-o%R1LEVnpi78&aKJJ6VTcQmueu0*jNOn= zK{^W`L0Nu8bb4LCJ(FK}J%4I(GJjfb@ce0!U)X(h;rQYU;;$T$Kb@57?95``c$L7y z?pO1tDO34{-{u!C25x7MzZs0ZBJCeCp8VN1z~ceZ@qoK_Urm3B`zwFyXOo}%sT{DA z*_YkB_mNL#50{&*npe+GO-xQqX4g9|j*RiCNf;AbH&1+QgJ?CK+(EB6?s#>->A7s% zbz1q=Rdh6JCEMpR z7n<0Ac4)$X%Vu;Ge7{*MwtXazZ&%zxRk&Wgnw1qfE460Jw;N5*DYxk2)>=O3rDEJ= z_$Y0+YEPC0tIh{1TN1YGty;BSE@jDF=XcGY^GbYlxj9$!TEekwG6vtF0*zyP5^!vZ zz;;915sm|oB~DCPQ$C$}OQu$%TrLS&2TTEg`Ei12a)Nns)Jw{Vn=QMpEho-tH=B4n z8*|u_sEQRQ{~@8R(r!x)8j(~cI+9wY4Pcw-695Oa9sQBio$z=(o58*fWEnm<9^cL^JcASsju?xZT_nUNDwNLroDZP)KZYToJ;LvT zme#b0e%@`%_DR%z`uWG0=-R4mpkLjZ^l9EzitB;A;8MK&cdR8Cni@ktWjI)2UK4!%(!y2J=i$0c#<+#(WRzSx8^rB=L73kxk|hd@rCGU2D7yWmwTH5OX7{*I=7BSg%73n**^$ z=+Conh!MR7%ck`a#&A1Y$7roa45HsWh_(i?)|hQ7NaRst7|OJwtk^*yKq`nuRl z&~p0Mb6S23OD@y~PRm7DCmG`H`dA|N8(4B_Hgb|u?2sXVQ{*4onMb$$6i_3LWC^g~ zdp`QcT$0;V?mg&y|~+y7c-R*6HL)__Yz`SC@&@>A?B!pn3#k(i;AAd6QPq31@V|5#G^+I;LUX6MKz&79)Z(A1G3E6>d@%?a2p)b|j-^5~g(yUX1r9 z$d$KAbM2ZMFT~DN=4t)jWROlmtcR~I{zwMx-Bc1aBW0*s&ou>C4aaTstDS4NnmJ|V zYFno6=tf#cdt3nIY;{q`$9CCW2M;5xu0s>EJkA1tw2^sB?LM^SMFu!BPErQ$Zp&BW zf_sN@2(A|}FcOOf-k?O%n$h2Hec8AvYGn>2b`=Qy7d`$6aVp-Cc&pJdQsEjl1jkz0i2j_!u<8yPNZm@W**v(0>~=#z%8X zuTy%B(onMhA4*R{r!gQbqiA%PVqcHVn{H=+vB&m$Z2ETktGIxw!rP=>@tSi5+$2i{ zzksV=z3P^Iua27~{!1u0hj3**WLF9`S4i(_*_Rh3X>?s`yGK;pg=R_E72GUw&#d4V NQZU|`Yw+eJ{s-rBl#T!Z literal 0 HcmV?d00001 diff --git a/42sh/obj/job_notify_new.o b/42sh/obj/job_notify_new.o new file mode 100644 index 0000000000000000000000000000000000000000..b1f5b6a485dc970a5db27c8771c3c825a016c3f9 GIT binary patch literal 4568 zcmb7HYit}>6}~gOGduh6?)s6$A$78;owR{u?K*~7kQTed?FLd*O4AZ(HCd1Mm9BS} zomnStVj3k;6w9g95c;o_sHy-V0ikL|B?>AHP_-3MDMCC{L8#iu;ZdxjLQABY@0+>f z*xQtvt3CHT?z!Kbx%ZwsXMg>lzrPz2LJ0_Tpdjd34P6R^wi=Y7{yuF_)El@UeS965 zf|Qi=Ow-97aHIlens<(T;m#|%FP)GA@fgeYRv~oSg5ofl-%Qi8oqDNKkcMVFA7_Oe zFS;Q9Y$4PuqAQu^SZ=gYFaav{9d{4kam#|&*QIoci-b1Sga^|SNFT3UwOoJGT#9#m ziMJ4W!*yHSE%EU2vZJH*+yvL}>Ugh8gyrIuD)}m>G~*R{Akf~CQDnlNUdDcKU(l`^ zUp-qXaU77p0(T%o8$BG>`f<(yf`jx)UXyzi)tZ@UcW z<`0a|!>f+&b2qp-zDFfqkHq`RGV$E_YFVop@3|(t$CiobOxCXYz859lH|47TVwreI zVi&SGzLWBN`0razEZSL5Y}#L|I*#{r%tmE@sWN7oyLK#|aaQ7`r12r(@kpM;`ICFz zgqJIt`8syjo6vk8ye#pCB;HwxCsl!Ktmw<+e!i7U6&JDjeUlN-d#4O$PQLHg-X}h; zi+dMFy@?FI6Z8oDDL(^#4LGmU+d+#PAK}wt`*P&nnd#RvNB`EBc~F~#e`b2>?aa*7 z+cVoT)6bt3vxK0YnRy_IvAOAy*D^<^=0xJy07o9Y@w2YO$XsRyb4O+~Gb6JzwazOu zG2qX^YfUq7IUP>^vEljqd)7r_uRqpY+>q48%pXh=6 zW+k^jZHeC9HZXb%`>XrLvb_WSc2O+#p(-4cz3uj;F;S{GqE>)VD~*{BcRgFjaWs7u z<6HYNkah5}8ErVoCCAK{vjtJERthP%BSyYdw;i)quUa{qF6EN#;3+O+#5wp#ZrY{$ zbAsLC2TI)qY*g%0p^_U*5xK(8rZZk0O9)!^m0;d1)EMnbARdhpLI|Tp1mZi}sSF~`!aY!LibgRKVR}Xvd{JD) z7JN1Owk&{REUqYgP+~nEv<LNeSNAtpBC ziEOud%+&RlAG_z|Vu!b!xXTjzjtbwUpW&G`<7rGPU(;w_&^piOA};YIoAu1j(k> zt#)^c@DU7ZLH%{G8H#K5Ij~cpU`8kY8Bk!eu4Bqm5cPH8XTUT=;|A+p=za%1v^w-B zu+C7MaS{A>m_r>5>giB|Y_h?WRgo_0eC-v@3e$w{)1J7b0;VMW^nFMR;r<1px5 zq3?n9MK&2vgMSz1$Va#=&q8~G+GZ}x&!PQ<+7|B6d1&0rNE)#lzlFwqi1e!6*BGz( zS|47-c-7Z#P`i5;c0JOsc3&?v!fQW77yc34bVWM{S^pKfm#C*&iK?`{21DB$ekZg` z5ZgIT`zIx$Un^As{qVtsM2@41)9D35x<+TR?FTztC+U{%f#O4T{L^m5o|*kY5DT*k^kLAAAm)PwngC6MnC{;PJqP*? zXclxC6vt|>2l4#e3i={w9CR3T8pNH%PjG)&ZJ_Z!pov#RI|$7N(ZnIH6dH4uCLNue zct)C-@6wB>n_fKi(!{eu6AzCxF-vJ;@=6o$3z~S1ND~v6Cf+qNE+!34Oe7fuvxX+7 zqnya>r-^AOy^cVoi6>T?co)&c+e1!d!qLPGlqOzjG%=l|X-InUwvZ;?T=e3FBSR%D zO}tm67q2;*7@ssTw`t;b$%+5#B!_THdD=0C*~ literal 0 HcmV?d00001 diff --git a/42sh/obj/job_remove.o b/42sh/obj/job_remove.o new file mode 100644 index 0000000000000000000000000000000000000000..5f68e0e7e8f8f04bd1ab2e6a0b9dc9014ef8034d GIT binary patch literal 4512 zcmb7IYit}>6~43UnO%F=yX)8quAGLA5}PE{UN;Y7nz)Ti+-^!Dpd@{uR@3$D?CwPC zon>d7G;u7YO@-pRky;{t&>v7F2>C;Z5EYFC6wwx1N=pS2FI8794e~P;RThGB9VAct14@5~-*Hy@ z1U5JYB_qe_x@$h@N&`yQcaPt*`?4Lh-jogUF_t(8(!|=tVXC0$y5YDDt5%jkm@nXY zQuaTq1tWbOS!g1jqB${D)2-iF2jx+z@8#qcmIagnU)44|uP|Sf zFTAC^6>l;8=AwLsiHU}}kMD0`d;#CflIB|ZtXj$DkTBn?GQJCPzNgxK;=}kJ{4OYq z#@8s+%BFKA-wUA}`cA?pX{i_Gn=BY!h~fAGJ{g|4I$xn)ubO(TFv;+)nC~xSd|PEe zC$1Ww&u35U^*(SozKG1X)spWo*U0C^S1%Z0zJU;*mTY-*elzs`{P^4h^+o4gM{jY93>FzUL+1s0`*sIp32X5Fg(Q zx`ash8zzJAg`5URs^Kmn>gzN zyUuSpdJZn>V|1JwNB6m=@3~p8FF)t4u>4#nTtK{MK0i0}UVirX;PqJkw$8&x?}J(p zK?T5>{m)HXwS6+jvyUMn77&631;mei^R@E$K*VJq`%WSTiu320wA2Y`7 zCcAUzUAwaT%!Xsxwd}~y@X&B}jZwuOIXE&5V`$_0p&QqJcu2WD4#wxo`|Z8OLT=-F zry?$gEUcoiYAz8&xVontUzMze;~~JSmg5S?SDd$rAyVs(b4AYv2|Qv!ga%XbQn{O1|Fuv(;wtc+C^+guGyHh zY)2TnRjL-s!ZoNkK({@>&^-ipHLwj~81QI@V^j(aFK}*1WOC}JiRZBPnS4O$Quziz4k{fwn@s3SDGJ%sE5W`Q zWEnme|Svc)Nxc zDb;n6Rmt`)SmW&bWMoxFXwRV|_A075NaVWsSD|_%OWMBI+b@xJK?+4)9;uSP{Dk&3Dn%@-YTA4~gE8SOGL2 zPbkR&G@gOPlL{W3+#HylFyqNv0y70Ole|4J(=dCJpM&{4B%XnpP1e!;JIyYbBguyX za|z6CqLZNxu{)-uUV~1*g{nt%z7DmUcwABMrB*U!s+c!|m(F-Qs{9wn@=)F>Kph;` zKIR|guh+|TaPi+)_8AAM85@PBSV#Z;$vYdhtV(#)BL}8v2 zV&Y4PnMsICMnYUygt*is7t@*$vt4>|5fb96lo0co5Yt>j%yvRt1QKGp6XHUY^h`xU zOn&LbTqDFJmJk;eAttY!HglB_b69$PSnkA-7yPCeA&cCK$g!XV*`yr2Qz#E+luR-f ze;i(X?sCY;1@c_F6l`T;ES336G^$fP zgmP0(BPXq#wPEB_3lZmllhghC^8!!c$dcAu1D;ZK+@T8hW`6|QSQqjbh0*4Zkav!d zCsv2<9h|_&4EkhZ@nor$&FQVr%Ng?-cJv{T43^?1Riy=%qh` zM$m&lkoE~^%xLg9G~W5>W6%h1^bjF2ihi10Hrf{0X#hdNwVD0RvNB{3hHUz_`hOv0-yX8>57|O5xq7|eR&?C@ zidIA5#^e_8p=)Ja|LmIAU##Pw3Ag06kr?=Ep=!apoHKsA)G$rIWlYw2Me;l>M{iyx Gh4?@DdC-gi literal 0 HcmV?d00001 diff --git a/42sh/obj/job_update_id.o b/42sh/obj/job_update_id.o new file mode 100644 index 0000000000000000000000000000000000000000..a0818cdd0245eed26a78dcab8a9e78d4af8b4a22 GIT binary patch literal 3956 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/job_wait.o b/42sh/obj/job_wait.o new file mode 100644 index 0000000000000000000000000000000000000000..8eb10c592e85d5ec53430f86dd163a68fc151476 GIT binary patch literal 3712 zcma)9YiJx*6uvW?*=!!&Y??l4D2r`;KxcQ8Mva>2M!UL&6r}bMgfi}9l1#dpS$AfW zv|%+gtz;VmEm#mltRPxJL{NXUe_9_f}FbI!gIoZtE22#|qX=3hBl#FQ=G<}#Wym&6or+j^uf~gu} z)tsh^l2y~iVFjS}ilS`W+rRVaiq$^u@EX_j1u9GKqz2N(%NZGa-HUg<#+tEjmx-53 zrwi&h#akPni)KpUc6l%yzXV_JUyg0|>B7->M&WXF{Ij8A1qBq}@ZhSnLX#mhTd6)R8E_N?$atcGiuLGTeJ+-EF zK_>u$c@|VX=oLh~)mASpIp3Wu|C*e+8cWVgUjd_Bx|uAWzf5jtshr9A2Mf@(BEs^L;t68r*ThT?>mv+_MW9 z$@${7Gn9TgaoKi&a}>7a#ElyNQS!GxKb5%3iA!^(8*{~LwqfTV@!9K$Z+6GUmLoC% z-4Ht$;*0o5FkKAFlB)Cw{!rgDUXq%_VLpXTFT>`(jGd$4gTO)Lf~ftJ4fmrHx!^DxE8q zI^?a{Db>i7MvZiMBBfcj(8$a}CJL3DF?6e7? z?$l2$H9Rn|XGeHkEts02hkGKiNGyDRCWr5U+!KQk>F$bjKJb6>Mt7U=jt);4quErn zyUQG5ZZ=HQEv97|f+bQcx|pc~I)>tku-Mv#1=C7dMUx4wLPxMo@&!Zw4Z&7nB~FnT zfpVn~Z}bHpZF;QfzUJ+1Pv8XmBqnmz_BMRgx@$yfGxG%>Z)(DY^siyt+Z^(QGbmyoMH9NFn2s|Fk1pt$W|z$1=H zjW4OZzV;2S!e7d!4hBSY4QWu*5zxteOoHBNniLn+iPmD%vrR>@Bjo@3No(&XhyNUe zZa?TH&~XqIf$S+?>Zur13{p|e)_^dm5~QL6aTV2xR8&5$s;(2XHM!O!M#`1+H2C%r zLd|gV5)STU!emGYHP;7@!HQyQ2Tk81l!XO%`&oZ5^osb@3b&WH!&YR+U?~WH2Up-J z&^tha=Z3Rr(JVwYJ(DYD)u^_$=b>7SdBD6w5mos2-@Q-h4uE#FkrAqTWsd4QcM5vi zG1gEyyS^4d5*q`XrPbo5Hp%brmDYbC$wN|mujD@@`TWC@7>G&%F+z)%B+=g|Z6wQ0 zux#wbnY|#b_aBo2&UCFatsjKpFOn}1mm0{k9-cmUioSz^OGhQ4C^n!PuTmu#lS_CY zp4BfpT-Lap21hOB0dV}ueO%w^aCr-t8^Dp3d<}^qQ~3vQ^nUpQIF{ry;DrC7!{v9m z{1!Ojm%+*IAlK8OgT1VAc?US*((gxlPbWCp-^17G$dNsrczVyn&bmL!`MsRe*9Lxg zrNgP)kPKoi^xz`~UL~@yM^1R;y&jq3sP?D0t7WFRM+T>&U}RL&RK`+;{rCsTZnMge urQ}oAh@u--Rx2=)vw8eOW(_g>J47AZ#?VZKe(L2^OI_5MmXXgxX8!_$IZSc@ literal 0 HcmV?d00001 diff --git a/42sh/obj/launch_process.o b/42sh/obj/launch_process.o new file mode 100644 index 0000000000000000000000000000000000000000..3fdab7199aaeff0598b16ae18ec5ccb9fafb79e8 GIT binary patch literal 6328 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_backslash.o b/42sh/obj/lexer_backslash.o new file mode 100644 index 0000000000000000000000000000000000000000..0e3a6241467419b8f59ac6b329d0063e2816a295 GIT binary patch literal 3540 zcmb7GYitx%6uvXFvybj}TiRMd9&Q367}_mR8ln~1(#0)orSyR$V#e)u+AdvYo1NWK z2^bQLu|gs~qlt+c#l%E^sqqyJ28|{fH9^B4<0C#ojK)f0f|7{eH*<%!3ku%sIo~~J z&i(GW_nw)%pZ)dg-vJ>MO+Z0>kZ~O<20>c@IZNliwC6CG?I_2fc{bgY8amMoqhwB& z+`en~CwKPG*j{g!?2wPswpI(F(&rNg30^adA#<=iV%Vjk<1&oS+Y`N;y~o1i8Rw$V zev$dPmZKe7&-VE8g{lj zkLOLp%Isl!7p?aynP0oi=h$WQbNLE`yPX5B%x}BoTPFFwyFxxEzwu1AlCNCBr&rBv zoa|NXpPOIl?(s{m_esh3l-$6TSICE#&Y`T#Z=K)G!dveL;mhThE$qQMOGeq+o3n-t zBi%WB#9fjvCY{sZ<2Pjp^(RxVSg$#13>R^_?f}D>`#m@)`8Ggjuw61uM3`xuv-!wj!IyXP{|) z3ykL0HO;G63cHw%=gmp8=xSpylO4138GE!jE8+t-hQ~+t7IqJ1;;n1!QDGVgwo93k zDLRvz69egfV7jYY^d)=5?b~`g#cc!K9m!sCYi}~qFVe}rKDV2=t<$lH+XuGwCq<_V z9f?g_`_hTNl-QBz6@5L)Oi-2z;+>9uu3K#Ni^)-K2uN` zC00tNh!S?3u=53LBv!WU+=yik#YkxJrsBnt9nBO)sW4_*;CIoM$d`&vg2Uh_jvmUC zGR|B=nWtPAt=F|^t$$&3o>GUJP<@IP4Toq3>Tu6iN-t#i!4GK}634udFIBNz~B1h^DJRMpR#DO`=%u6mNMM?FWJTlpCC zaY`}BY84T&%CS&I5((Z#s@?&^r>xS3>D4SKMdO98YLj$m2cUi0z0kV$0JL9w5IUee z0UgwyfevXeKv!umLx;83p(EPc(AC}zH8Y#C;{+b4HOiL&MOPo1JmuJ5LBkqvV(vA! zLi^Q+M%!r3>*Fc{CmG=jeg_Et1Qq%nio>)8Rebs9YjxqDfy)rBHKEVF|%hMtAFoe%2*WYdE0%);inYNz1I;-+AkSMyu_zhEW0p~@47!-BoRPG2u>xciUpl&) zA>2hYRvKL_DH-)&=NG`vbFZDTGfKYJB%0H_V^#L`3T3iZsf`4JN99b55P8?1Bs+gz zju#>kt-Vj(RP7d_5Z@q16%Ruz%DHGYw8A+cO3upW%R~5gbK!0g@v>cvOMg7Kc75Ai zkA1ftcRsN;E^1yz&7)+hxCC$`q0n#%xKG^y=%X^_Hy#Ez&!>veg*#cRQS?aFA9~oo zMXztygYCNN->OGp)%eSLBT(G}IHfN_H?~Eug5xFCj|GWdcR@{UK=3s^>e~Jz5|>L{ wA`!r}{m)87U(`^^RtKDAifb!u!OPVw&bs!DVR;|%UUP3G1OFdQYlxKp06T#HSpWb4 literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_default.o b/42sh/obj/lexer_default.o new file mode 100644 index 0000000000000000000000000000000000000000..fce1b2678fe968e3381d80c6e2c1005cca73272b GIT binary patch literal 4000 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_great.o b/42sh/obj/lexer_great.o new file mode 100644 index 0000000000000000000000000000000000000000..6b6d3d0c60b17c88564460144f26eb914f1536ef GIT binary patch literal 3872 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 W$M@6IEc|`9or2(dZ&%K}#Qz7>+Cmio literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_less.o b/42sh/obj/lexer_less.o new file mode 100644 index 0000000000000000000000000000000000000000..55ca67fab76fe3232c02d08a5071fe50275f13d0 GIT binary patch literal 3864 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 ABme*a literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_sep.o b/42sh/obj/lexer_sep.o new file mode 100644 index 0000000000000000000000000000000000000000..0fc8b499c9e038ec6695c958f3853a64c4db740a GIT binary patch literal 4008 zcmb7GeQX>@6`$R`+1vZ@-Pul4r%B5}5|c)??~(>&k&EkdeChgfX^rhmBR;gboY(f1 z%bvMiCuvD4(`zdZS0ZhJKLGLZ2SSK~K%!DysXzhILM4dASA-Bs{{S4Rh(HAjZ58u- zyR+BxC81%Yd0+G1Z{EzCncZK#@wcl%#w3M-pa;+wI7kv5Z4>$xGTxvWA#dO;#i02* zFd6kY8PN>GF;6+3?CI0FBhzo|zI29?KqEYw_Hv9d$_>gAF~1qcjCpKv&aj=jYchh)|_cyi+87}r$~>jgng;SuZwrQ zRCZJB%+JRY>D>fgXqqR3KTi98ZUm(HqTW1o;S%k!w^myA1&9}R{rq{_VWf-cTIu@hZv0Gg z6Is4T|Kwk(40>aYWt%UL#dAL%FJIB6tJs?6FWePlbCz>&>5ZSJKl+m_Jvqrj;qam4 z3A1ijYF2V+Fg=(~?kHFBP7VyEp$zWXJ-F*mX4lK9s(H$+d(^Pag~2jQ6>S8j=1$fg zoGGRD?6&8bX~4~PN{-3KatE@-!Zdhc{1BVUO|S>IHGL#0ZSPm;yZHGBVwE|{) ztX#7k6GMU{ZV04@4_)7Q27^kfF&Dul6g^XNO72`t>Xx?0dbtuysGDQmQV+@~2P7pHiF_ck7nN3aFeSDH zw=*yZ*B)skti)*Kz0vXBd+ zL{UzH29!rYx$+pOsx(1^%G02l@&(Y4@>S5V@(s|4@;%U~@*HTF|Ji1(e;MiU3mA~& z(r>{eE9p8G(t0e2omKkWobqOlDo`Nnlbb>s5u(! z2@*2baHprTIz;!SCGLN~Jevv&W3PSthefI%?Hk#b(W$k^lHM7MM|17}@u7I?8wd=I zUVe$G;2dSdVRUuI2$xP5alE1M@MQWpk&POCZ=5G9w?B8W|L?ypZ`l0IKhJMo;i*?% zIQ_miZ@b&NJ-zg)$d#A(Jd%i>_Ml~c8)kv7=WRQsvag(S~(aA)W6<%&pVWKJv6CDKdqO(CCQZ%=C z;8btnMTe5SsLaBPP6nAMS1}`%n@n^9gjW$NnFi5m7ttsmGLg6N`d{@6V&`eE-B_21 z8%-GNnqN`r;YlW)N=S)lP&+Fo*#ggrD}=MQ=D!Fm8%sPP@9*-?A5I*6W%eXICF#vr z7pO#Ypi332TwR>O-(Kre!cvQNJtgd^%H2cnUvIG=vQzHsYBTS-ADkzo*2|9%5Kb3f ze$Vc?LdJ0v4?7gvv4G4%-YW-1iAy{f{ufu(e4cly^E|5N`GyP+Ww@pumQ z=Xf9FWQOBX+5pA|KI`eKTPa-3exctXI2diU`bEL%_bCp8 r-$-mz+13u7UWfK^X3XO2Y&({Dl6hZGqheL?A#N4Z^>Dwh^qu}Ma<_Zm literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_special.o b/42sh/obj/lexer_special.o new file mode 100644 index 0000000000000000000000000000000000000000..497c3be6c61cd53d45b2b736b6d33cc78efcb393 GIT binary patch literal 3920 zcma)9Z)_aJ6@PnsySMkpcNaUP2?=mgLP#p?Gl@YKnBYr%VQuWh^`Fon&~iR+?1RhR z^>*!qe-({O#bJ<)O5qEFFMI+?;=EsN?@QcsH%ZwKxi94D{TCM7LNJ@OFRcH(1A%z zDK?^6mS-RJ{JyVGwEGM_B~TvZn2+xf#p#YQkh$19#@e z_6EZg;8Z2vYx;$upc4u@ECal9r6|m;cuP&**dC*Cw&*u`1bBt1shT~{_|5SJcrQwr z%f%}>hbla!6)!6`iRicTd;ciodjYwS=R3siTCn-?Jao!yi7drf$Al{_kM}@yxhQZmx+f%Cm>tni}2w@3%>Wcgs(U7mi!hghw+`B zHRl{DIn$OkJka1v-4ZV&jc)>vOY*O%KN)fho;_>f6>|}S%zFMbwA1E7 zFUI(`4aOGUOk;5Q3@`Z_on~=@zo7p1g*o+8!VK(Xv#w(zmT3SzoBD&X@XfZ=W4sY! zkyAvtSI*>p-5=lHJPzM8na1&ZQ;+c`1@kc`LK5tTzr&1g964>)b4CyVN4_|6)?7HL znDtX;{cS(Wg+FKR`BRQ>h0O5qfsxF-U2{tnC)3;2-PN7hRxINx>+J1@($%x0>xS** z){5D(eblb`+;XdSu~aB`6)8LEVsduoNaeoiLbhjzJ4?0&SJx|eHVx$W<|c zXgohkckUk>pna1gyYpjo`&d3VLBsj+alf0}Hy|{YKbhP=k*5J)?9T1EV|+L_Zqk9= z7>$qS_YCHSNdy#xLM6weLfQ4mv&tn1*B8Z#R}gCv$EB=Mu1$7m zYBH^FOs-MdQP-icq9)_T&RddIG#Hcx5lHrW`nlflx~M7(&rPPal0(=%0f_t8VAmQGz{9n*^vUWvi zvk~8d-Y9G9LYvc+i0(rF96YqEql4&%K;gS1oY{zBFt%|Q_dCIK#W(~J{TWyr6 z)$Avp{RL<9B#7;c!lQXEn_B0dM{C4i&4=eRtz}0vzP1(8AvGiwr73hG#^qXL8HVI2 zxz8^POK$vFcu$tDI=;O1t9OfQH~#uRf7^IM%f9vdhi^Q0n`^YHI5=Pl5OpnrqH_}CwTehj)5#JMYi=0SB3ryhd17S@5#IEQTF)JhXq z2AepcI9J>_>1^WCkX|CGFmaZpi3@?fxHk9|L=(w_SsSCurh{l!1CN4Ya_5bo0!Ortui@5>IFn|ven1l?HsysMG%F(ovPDG3) zxy~kdEUhrq`SWr6Sv{sj zhTw9m7Khf}rx{|ZK#uomdY`5OBE_B_+ztx2bf1Q?RR_|#k;R%rT5?F+fc4g+drhBq z?U1&8NQ)tyS3){=c%9gD>a6-3-N_|`&+mN3*Yzi*+$!bOQbO={>Mu&kzjjhE1dY25 nDqYv2^Ci$YPSznj%dY3xN63FRt&&s13*3}2;Uykdex&~gDFIWt literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_var.o b/42sh/obj/lexer_var.o new file mode 100644 index 0000000000000000000000000000000000000000..0668ed3e08042ba723fdc1f1ed562bca8f86a402 GIT binary patch literal 3948 zcma)9U2GiH6}~gGGyCh^^$)?21eQ8LsIb>f(#UGv)SGz2+H8Jmdqb!a4V(4YyXj`u z-57O8@V@_^Jn&;k-vv_OzrM38tW5=i9%RgtPzrYZupeTayQ`+YNa z67Le4T=|@H&$;J*_uM(>-n;(O=bwDx7edhl7{~`&(7_TQw3|Q|Y5a=zTEHE6f^*P3 z9hia?qY=$C>()};?YsI+`tZyZ-RrH$4)M5bHtOO)IqmsSn&zx^tTAua>Q%>Vn&bDS zruJTT@o*a46xx#E%5_{_*T0Nct`r<|C*ILEZy`S6=Gt4EhZkS|*s-d$$avf1^YDHl zF|HS{WY1MNr4w&euKowP-?K6=XYl=G`mP#ZHE+*bwJ+nH>&W^3Q2S<~T@~*{zTkw| z8J~wI!xPuW%P%aHEz{1QV0d5J@0&8dQ5n{OYsTl|RgN8Z65JWzC5g91;t@3~S+ZwMGdq68Rfw(fJS3#?Rp9YXc@Fg_L+-${isoDu*>xwFX8V1Rk$7Vg??Z_v zRS_1V==CYR^Hwg|4r1qiACq|7Wib6+?(FBkB0heXI94c$Ef#%!J-IrOuC}KbA2Ff`Hs`bbP$KFhTm}#X~PLE*p2Cm@^oKLSp6(8U4 z8ds$EN5naE+j>t-K{$<-R_-I|wEFRYbRc%@+^`#h^lPR+SlP0+w$@Cqw$iJa<+p~9 z{xQYVoycYn?Mp0L)mo`yCq{;bhlUed3uRnMgCoOGhIVWl`o>+NRxKpU){<3qxw)9H z4i!W)SHr~Q{K?Ak*?e-xwpvkGCfsWEeBBb`>Ak63b_Oy#u}@5=4~qK^OpS~ExqZ9S zQ{tYfbZSOq)6>&#H?@D<(I~%{J1~!8HZ`3Qhf-5w`e1s`L@FzsU>Jrd z*>#aG*Xp8fmP-&dR}?CC-NKNRX07y)CCJP=D>Yxm5ps;s%N2V*(XeZ!dE1&z5YXmJ z$%m~_#1i$&4=fw_uB=JPLro)vgWxdEp3T?u&RT%rmq29RM^UUQN}`Alp}XWCVIb%1E}jlm8OYaoP!;0s(%Y+ z?+S+j6o?5r1UEpq5JH4{*R2%pg6~8x!AEewBF@i*bBqUdg!w!^A|mdlK-=vKhdZT( zo|*&mDR*lRKnkr0rf4>}s_`d*rkw=$X{W$-?F_h~HNpMbPrw7()8IkvS@4kdOYpGv z5_m*=1-#39GKKI~Qx3g>0X3%l6++R~Cl}sz^nZXuE8fP~V>xg`ee!{?Q|r#V+L2jm zJ--DP{`2(r1wMrc{0A(!2KF9EyD9W%h<>dn{1?b=@Yed&0TKQ?G~Qa;4eCH3ya~O7 z)HbLCaS;jbLjT|J&~FJ&p!+$xz9aq+y8b|b*n#h}e><3=1m+-uKLi^FDSJaB5dF%o z@EGKCG>vgZ&frdz6jwCSb2h!3D+XVHn&x1SKMSD;fgqN)(OL zT$}sm4F3Mj923hAN_)%kXrD_{=Um(%YwPi^<-;4E)JI1&K1T{JZw(i-4;MG_*f_?r zBVm#C;q?m`jI*>U6>`CJfFmA zYhKcoho*$G6j$OAf8YtZ&?b2P{Gyvy?|h3?H2!0CPnTPwLL}jm@o+Fe)l zQIYbMfa1gQK2-$W8xo2ZQ}jqEuwM@wlX~x{9vIbC<6b=qO*a~P_iK7Ty8cPscwUbi zzt%Nq0b^PBLmH!cpHZaAxL?2Zbv*`K*J0h5^UV5<7}yN!*CzGwsIDD`%NZCab#)Rx z%lggehM+yFE5>)!AU=?IhY<=f_#z~t9DEiMhiQ-p99tP&l=@Lf`lTW983upmO2hfu zxTo%r`YlpI(9d{AN?r^x7`(>rI#t}&q3`U_aZk1R-`JrGbFR*REDOb|;Nxjkowwe7 nc};6+A&=j`eEsR?Jj;CE&3VgtYT@lZywV^4cUbl;mJt5~WSU#P literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_word.o b/42sh/obj/lexer_word.o new file mode 100644 index 0000000000000000000000000000000000000000..1fe43cd13bf29b051fd5add5e442074ecb9cd5ca GIT binary patch literal 3916 zcma)9eQX@X6`$R`*}L@@xU388$X6;(Ns^p9nTj$ z7u)>{@RWPv@_70A`LbiX`Qvo&Q|oDqhwK{v}oZUZe1yxI#S7 zzxjNj9k0I)@5~kA)o-6)b-mLH?{{hgSFR8bht7j+_ph6W6D3&hPh-B^MBCz9s2s;S z>vqFES#pcEJv!86D+Ux^N-56*k16>)@=v+khUd)LGgU;_A7I<9_rbKn+pF+a6rK`= zCB$6NCJ)YAx#W6??d$!q!pkaWws-oY&whq~+?OOxEPtcv{Cd<^)OkwcVq@;X4{-#w zxo`?rbtId+F58~WE&emN@OEEr@virBi;b1sQscec(r*418_STEb1#@;uMoMVyH-{R zx0ron;hac(pWZ&D8`>8}xI=^rQPNR64Qj5AO2-pW{CGo*i1rE&M^tExxpv{d+LkQuab_ z;Y{DR{*>W?PmPXF9ZH>WsDiN&+lu*g|IXT+aBSGs>iN1OhO!4TlcN*hqr->9c=m|6^_Hi@ zRCwNaeu$D=7x{9nF6wr<1XlA|q2ksZbSZAvN_RMd#I7@a^HrQHPYJnPac5Hvw^o{U zonnfBE}u`nc7?foRn#lraa`d0yrwu$I+bJ|f=4*In6Kx(xd6effM>z3Xlt~u#Ji;t zPnsL!YqTz8t{&2ixMkg7-H7xywhJS^3CAVW3)3!bZ-)_Q&$ifb_t$YMr4+hS4R_%K}g&A!ra?2j)Wv(b3&Blhp~^;ckKt;MB#uZ->+LhiN4uJX0bjc95a$ z_nAk7=U$(J7}9nad8&;Ph-UD?)D6BOhH(lsWPA@)8ux*k#si>X;}Ot^@fc{-coMY3 zcnZ`qehnHko(Am<-cccf*|e$C=+G0|KfpApKRo{zPyQDuq`9s1JuwMt>JNW=2cOp~$;nkq zThKZ}X`Q|`DPqw*XnzO`xg|P`<^?oEN5e5R!;uKFBj03u8;Gez=t=auAcWTrbld>8 zUfW~s1OFLSdpYA#w73#2!x^~>Z_)cWWAs-L53;i>d>BkdqP>`X$r=*0EHzkG+V}jDI;BUi++TX^6tRNy8VWAtd5!3F5J^ zk7>vL5GpTBJ|Pj*D5`ID@giS`XJz`&zg@oe-E(LA@2)>s+T7jq+Rj%CYd7k@tXBH& zx!+30PW+~jdi2gm-hXA|RlD5HzrXWq=g(l=-%yz<|3yt=(M*@!sEir6yMlTz>Z7Pn zp?dLwEd#a=9EG8UBp7j}V)&?HL~-0$m`YSJx0KbCQZY_k9||*#R$RLp=tU4B(^L&) zuF{Ip=Tm~hkWh_`mfn9xoowPY+Dc}UH%36}St^CKD@ZIOv5f1vO04E{D`V5^HC!cx=D$2&na z&Vj0x+(Nlg#8=y;M@gg`wQ5@F)1_SlyIVE2+iPj>md2gry&JuAMEc|j!Bd9h!xQ3n z__k;x8`TQ|A%yuux`_I>BLpL%$ymon(lSS6_n?dnO5MC!#vxs8He>?4b6T1+@{8uI z+zjcE_4+y>oV N*T(+}$1QTY{{u2+SN;G1 literal 0 HcmV?d00001 diff --git a/42sh/obj/line_return_toolz.o b/42sh/obj/line_return_toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..ed542b13be4563e24d6b86119369c3c73f3b3964 GIT binary patch literal 5768 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/main.o b/42sh/obj/main.o new file mode 100644 index 0000000000000000000000000000000000000000..90b3f8baf1d8cdda48f5b559a9f1ac21b2cfe99a GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/mark_job_as_running.o b/42sh/obj/mark_job_as_running.o new file mode 100644 index 0000000000000000000000000000000000000000..c4363f82a2c9780526f50da07d6d80e227034513 GIT binary patch literal 4432 zcmb7HYit}>6}~gOGduhA?%GM+rcO85NgYVM&I4*eDGtPC8-i3q(}b#FSdZ81N!Po} z&aCT{R82@!>Kag6Qwdar`lEsf@eomgN~j2tN;IGXBH{-RK?;4OpaxS!aT_V-`)2NJ z?5#t?)t-AE_uTKE`#5**{_4$FFGhq=LIM>i4619Wav+qeK?^iqrj+7-!$a(Y66nAb zqz)QUOw%n*yT0t}w~g$-?UEiyvr-`5vSGvGNZ>@eVKZ79wFR?d{3SJc9U&qoa+|6yseUUx4=)33H`* zc6GeQF70@qw~Af$5ZmW##C-1q@&JBW&Np|N__!`e9UX-gQ;M95SZUrqZ z93nX9OYK)8?=8%{SeUtYp)gCjFAaIVaO~cB(Q*6^^e@bg%ok=wVP@nUM9^@5VLb;c z99w|P2HyqtLVw}t^Y<+*E*54Wdag8`=A|l402&7V$owmhEy8bh1Opa~!m;Ns!ofIj zY6lZAw|n>PAI(jb8jfA7=7t6a2L^NfRt2}l=Al6-1KYO_Y}qKBhLt~98{KTxs&1oJ z$xjv=cbPDlMaOJ3t5v&N9}mv0{GvR%b%2;3y6Xmwkof)%KXMtFEY* zA=K?L)8$?l8#sh!prU=-Rx}h{w_%SqU1X4Jj#r9hQK?nSIjTA0>EvEhx*5?@LH=kqS#Q2z9MOABJ3EZOFbcB*o)~7nPP%5pjNoABQj+Ht9V^$fCg;MX0 zzb}4$;sdyMLYh#e;g(K(UbZh&wGKh6z8cK$g_l655=zD6gb>0=icsp7PAWr4u4o_B zo8ob_#F&)vmM@+FiI%TM-((9EZ7D_JKppEa&<*IFCQv+n6U59aG+mESvzix7=LV07 zeM9}D`A4l~W3fDxAf_+NuF+K-=2Bco6_6p;RkbX}sr}l=8laMY@Tc`FK#%~}I zS$&7vn>MyUa;WvHz1<@EAR4u>{vy~M#kKl8*jGT|f=>JspwK2=N0+A|>eoe|0n-eP z8?5)BItx8=b>wBR?nu@+4}L4mkuC=II<${bTg6Z|L8?+)jZj2PzY}r@WUST8U@@w9 zMy~;j7#gwTL#PVTxRMx#@DeDRP=K2trl%&M8i`K?Y6@yPQ4G`$sND%0>T95A8fq@_ zAjEDgZZrdRDDhaJW}yy?BqJ$+q7fx^5xgS<-!74ifid`~p+vcYhLS!?7V&z_u_dZ# z8{wsINA)cj^q$BMzy@O*jh}#j8|K)%xGc{?J4tO5m*qKVKc=>sJM;%=+{@SiVmJN_ zjr$PGtG(A6F9g~kCSv?8(6*?(eXU)OZB={wg+_Sohp3{b;HE3uDaiUSQJtZl%Mew` zz5qk^d{7DP6^Nberu~Z&QLr2z-@z5}zDwl6^TD_IkBb9ec;>In2k(%B4}e&f_NCt5 z7hjLX|HlUjDprHK2!_IUf+BQq4WB2r`f=h@<^6}?Q-IbaC22YObUHEhr2gCo-9N=1J$&k}zMp^p?1q2rd-C{y9ynqA?(uK@;*Hav{@D{xAAa|R z!6OgEAK5+Lb5*9ap{cG`Cx&j zKr^7Pg1!s-Dd@MLbD#^L6jpm3i09|SpgTa5pd+9;5O)$k!Tsq2M>z_jiC07?2!%HV zO}sj|QYg$>nwZA2BNLk@=DYOb>86RNUYdATXyW0KCT1y3OkQc?eL)ki5ou!L(!@-W zaZ#j+i6n!VlP0F4?8xk=7t>IB@sgs6Csvwx7tzFPPIhF%(Zmdtra9@wbdn~XV|wxO zkS5+-H1Wcbp@tyR#A`-+ot0j^_oRurO)qYj?D)SHF0WCFL_;@H$k*tMF8m3#lY(g=2t}wzn2u zM^>fDhey8YH1bl*+uMfTv)tkwYIA`hZ^}O$E4;(-V8d{H#K~9Pzyv>@eh~H;M0qs}3XhCDfs4vDp1uQs1Q+yEIk*h!**d zmV&0;s70W~AgSV|0V0|;Et bOU{=w^|g|NdHS1@vrh-BpqMMH7~1{|2W+3j literal 0 HcmV?d00001 diff --git a/42sh/obj/move_to_line.o b/42sh/obj/move_to_line.o new file mode 100644 index 0000000000000000000000000000000000000000..8aa53d834aadbd98a84c0c32602c1b84cb4004ca GIT binary patch literal 5008 zcmb7IZ){uD6~E8+eRk}`&Yvb^4WjPI$}*8S?Gl=Sn>A2R50gq2BW)_i9**tWW{z$7 zPm;1kYvP90jUuHCB)&}R_F?N_lLlf4wlSrnq7l+G__9CWDvgO`%0|}@khO^Hcka6{ zwOx0FtKNI=`E!5goO`bCyXl{<|LapbV~UkwK)0bUa|~W|v@f7*#NVbp=`s{oq>ae~ zlTmM!>vTOIoytoFMAsh+j6QagH)lVlK+p(}Vma8v*c~LWu~S6Mrt9HcKAT9zq@Wtl z#Ho||S#u(JiwU%~J`x=(#B_iPiLM_yHuUH>wya*1ab1*>vsHKyS3v5zftO5&YvO%} zk}GSEILjDgS`#lcHkOS}(Ee4%XX2fdFx$mTq)w!1Nj2X4GQJ~pD9|p+_%=`vhasvN zUpADAMRT{}^{K`pbKFsH&bDYxyzx+2gjgM)i6_HjpN$vFWRg)m6&k1TZppV_#%CVU z*3XR3z)O!kB??>}-_Ippr%bQ3O*|1_CKRs5`(qW}FSm)8KbfhS?|&rTTQa`)wuy%y zv4E_O?^XJ-qnY_W*I@8vV^w{_>2c(l*9)o1L@J`|!-vXj*jl ztMH<6{X`bkH5OFg2LtlZE=jz0_ZE(j;2Midl^|Qc-$Y6vR_D7S@m`QoTmT-mBZyC) z$%^=BU&LMLGJZ&;Y)2o3JxMk|UjU`+^awgNvY}3Rl)Ky#%(mY~w9-Gc;<~pq^NCg} zT-8b=t6Fhpm3ijr!d@H1Fgx=}N5|tso_U18w1t_g+CpJwzx zUh+Qi)(Ow9)5I~;pH`aLAcvO&>m&x`hPH5@R{Xa@5T4)L_7^vtp7~>>TRiYF(i9${ zgq>Y0u3EH`U3%LvRfsGAb#ED8FqJ}~72j60Qtw(jwoDk60;}4>VXUds!XxWi*L&K+ z2zhr3?{^vAr{R4euv%Q+gt=I@5LhoRE2Y5t8U??1`OHPE14^?NE&%14R=m#69R9#_ z`hnW&g#tNggA-xZ3ac##04{DY&+`|dIve=lf+9yIh9$))L^#5dQI?9ZA^JXfhlh_I_D)2zxkNhU9q8%p>Ggg&oWw`9d!QFgPv5?t zy`YI-*|c=s^`->346lKHb~Fgfa{+6uj4ag<;)@l54Yf9S8c->@2jv- zJDJrz=yKt1w0jt>akPOLnArbe@&pPwW{lOddx@Y88$^uei_oxy$b32~M|E(@F-5Uj z&P~sV`Az_V%ghUIx533<5!^%M#FoK8tzF_NN9i4hz#pxCXD+VGh* zqTk#k9ql{me|=@ohi^{z-{?Jc#`S}1?{ljvvBe~A7oblN(KlXkQX6zx1Z ziD+j#LD6Q>Nko;9BHDfuQ9a~B+H(@ohD)pem!=&lQ0Q18nmojWP|?iedBM=!qBqal z>}~Yswkc0P%9N=_rLo@bSb{BucqjUWkBtp9e?)A^-S~{qb#-xEnAk6gj$5eHk)eA(!dFvdFHuarzuzeP~CGHIJCO`KC zc}t#mtni&dzT3}t1$mpFch2#9{oJ?2`qYMRzVHBliW;}5IE7O<8Ft3Hui%GH_es7}@;B%_!v61|0$4N zp?ME|Tk>86L+v!W2YR#7L%NI=ALnwO=H>iXs`y8$czP6<+fP*SOvlqF7R~Ep(O3+R zoXJE!u7?ZRoKR#6`Fu1x9u8#;o(xm?(^vfW5Uqq|Hk!K0V}W=Hkq*x)BH~?D=|#wm O=M>NdSAGE@MD{-jlZ#CN literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_dgreat.o b/42sh/obj/parse_dgreat.o new file mode 100644 index 0000000000000000000000000000000000000000..aa3d9954727d5c7b74c1e1ecab202ef8eb06ca26 GIT binary patch literal 4616 zcmb7IeQX>@6`#HH?%ny4^ZDD&r(5S!O?*z`w1L`1^t@+%X@7DGu=RLE# zm#-#iB#V!e5lV&Hs{a%eK@e0F2|`d+T7?pnh9U?;Livv%C`v^G0ir6RRn6}=J8Pe> zDG4LLdGmhr=FOYg_h#n&+y7kuFd~E&7N|fqph+E7I|$_-&@F-=Q?|zaj#C_i63DPA zNOc5JOw+Rtdw$!OAMYQ2d`=Epo9P4!?Qz;)CxwU+s1Ya0f?}FEYos)0x}GB;)7`;&*i)ZF+}U1cam47|Tp`YH-Ki^()WWW5t)&6Cby%oyd zzwgqX^lvhgt+w}-DtoO9l;Js6wST^U-jT`MuJ@g&}5r68NSJ|`1%~1zm*B@Y- z^Us5m%HB3*FNuRhg}6lUdB#s?!TO#R?@blkGu&4 zB+@Izc}=9JZdI9h(KmsChojffhN0tE%8x|BFzo37>-D=9`V6j>w_}3-Yk_am8?lu0 z>GDMY=an6KSEQ%anB#N0dodLHZz#R~8}x7LJW%e$MG0exoU7dbv+4d1(o+`(KmUt9 z9u@6-_B`=u`$5Zb^F_OTOJ`SSSNoc50q5KLEnN^gyEk@jSSws7o0`lxuI2d5%#Ar# z#_P7HFl`DKbJ{$Z*<3nR8$%wZ+jx+dcreDJjb$xt9ahCCPcPqdzS5)ZvH5G zP?;X@l#GL9ks#zk(H?6r*=~N!wsP$>SFlDs;pE50J>hy8hqeoOOyT-W85K6K&H`|| zn6sb*FJ#M|Z868uA(@;;R-7W2@iP7p*(z~}Y&ljg@1V!$uHv@H7K*MV4i%joIwdRl zEIXcY#Ar^qymLuj@c`#69b~WP4>YgX+D?~W)P&|%oGwK8tA}wIP2_d45S~wAp(;i+6 z3!%HKk-`?_ZY>i%-ddp`UPm(fhf$QtA{K~sWGFj*ChOn@F?(zUfcC_vp`g`ir^&*h zXD0Vc`Fp4#jbD(`eJ~Aa-`lfNP3W27cPP~t(FbYp5V+RhVg^X*QSzb94AD8UFgV)qXy<8Ee@Ca$7`+A7W^9Uu0DYSZo4J4`Xq}_<02Ux3KSVP^u~koi z>Cwo~!R{r}9KRndX{?L!liVcKNeebwHnz`5QF0-TQ0jstA~O)TQne}iFj&%98QTqh znl7!T{-c4kCe%?AdkoS>j$SLh=|yuGkkJx1!J@`;sUhv(%h3md(f4sSV+{KGC6xJ~p80J3wMF0g%gqfpe^6Zd>>n;He??EdwP=&Q z^wyi*Cz1;eo*h{8?xmNv>Tmr%+qAg+w|^eH{$cHjpIlw_kJpZEe!uJFSL2`g)`2tM z_}Asd+4g6TG1TJNlx3g|pdFwmK@8F3pyxr~2fYTm4Ei(ZJx~k|F9D@M+d)I1anMsB zW&>0N)1w6(g@H|ok*=Wo(ImvEZ3Rc6GlZB5Trdh_iV#Ch4P<-~V#uk1j2S`0yc~)DNZ~Jm<3L)^pv7LUf6&K`l;W!t zU#2)1?HOkkM_bgfQe_c%g(%ecpj#-rvofF1mHK?KRLYN3$-=CR1!0cj+37jC(xhx= jaychEq1s+CFF}L>{$Wzck4i}nN6hf$h96;g%ZmR3_@1-* literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_dless.o b/42sh/obj/parse_dless.o new file mode 100644 index 0000000000000000000000000000000000000000..8828a2d327a3b4c86e16a33a485a1814a3653fb9 GIT binary patch literal 4540 zcma)AZERE589vwcy|&}TalTX15U+s(64-&zHd{kS80k#PB*q$wwpDkIeUlg*JN3PW zz@RJ2HqFb#iYC@|`_T%mXdh}P?SpCRhZyS=s!l3WrH)?{Qa6ohps@)dG^%FLbMCo` z z{>0GkN4;+0@jR#aer_ywc@3Y}p!WFk#f*e&`F^>~TZnBksA>kW%){eLkBybA1LR*G zpU3xoMRB)$xx#pnLu&a_e1RzER1_Cge3$V2)a$!#e5G_@!m>ZgS6B1AeyHBFJBzGu z%QuzI$PjDe^Z3;35O?NFPfzD9vyh%*cpq7BM8!9#0{YP%<8%3nWBcR_u8r@rif@(T z`}1A$$@r$znOeU6HGH@3lFvCbecSbZSMeQJPravJ1-hha-iNzhY&uC<8((+W9q6t1 z<>(TTYSr*%ic?spW0ngCbA_yF?%ZBIBBl7^3cLtDnUYQJxdOO`&zdyHOL)8P0MlH4 z9!x5}t%~oa$ER#O&Pmmj%G+=GTtPC{uJPJ&JGMttmA|ECuk1=yj$TVu%9m4>(Mzeh(QB!>X8u)1 zFT%Q*n)d}jg(f*Y-m>jPMkGgp*~y86#eLaya`Ps8 zQb<47LF5XKNZXEZ%rU2AS;AI2=U7uBQ!F@E!7=UJVf3If9ey{`C2R-@!p;{96Y+Av z&P^1oY@Bp?Yupi~+{C0KY$shJcRq(HY*#5#QQ+q>54=#!TJS*>vSlx}xR22xm7GRa zoFbcc((Vx1DszZzm8@*8gdSJhN*6>XU$iZ8uvp5XQ>wD7GLz|&7|#lu-&KlJ+|N0S z`>g^ZR+{T)ytIYZq^*v&=>BNT=!!OJ&B#Ar0${VYway>?ROI2vn))3rpGJcDb>UOc zjuw2DHZL>vRl*;ABoe`nG8zRPg6&W)1ug+Cnm-zekWYwk1AKS1&=|n}tm9^mbW}Nr zH?U#d11H1{A?n3?DwJVY$=bUmEFMiBpzYZU2dz;%MdkOMn4XmOPf^2~JSVODKn?3F z?=M;b--*3{r`1$MAFN$vXsy}C46stiX|>Q2dX`ndcm>M%6{_GHsPYhBZ-_UgxUV^U z1bTr`tFKptkD*Q`7|`=s6B7urk<==1DaDU)EoO z3Wf~MWUK*ftVb1m2-SH&`aPj{pgQ&D@O#jlSYI}=E+_sA@O>Dfb7Em|wBeBFYpAZE z(`X6Zfa)~*!wmPwba;RZSb^3VS`T6YBKQk5b($S|J)5E6@1c5#v_;lI#f>b0ApCh)n>c!% zjAjd(djJ{jktd--MvwH6{GZ_HoHzPD&Sp%&U(a%YW=N+Q0Kr*QhX4j24IP8(3_c>C z!5Q{#B@3Sc-Gf7Xi4|C<5MOW`pXK5c2{z-@{lZWRy?laFu!CfAZTCKK`1$8!Ol+C0 z&BvM}78nER40mKwiJ#p8ug zJ1P|fPdP%TAPV9JCv*mt8pxB15Gw_7XA$ByQv?5B#s-m%%sP@(6?LFX?kadOk+s9S zg*Fq@V)en$v+&|f_d;fFkZfVW`yhy+XzZK5&oroOxEO=4Pn?FQrrnA*pw>7CL|eLh z;5w1Xm$SIgC(CvzsjOtKf8fF8h<(UT$`8AZnx>b-X;2Ri>OSK!y#ZF(DC;3;K*nC( zZ%pWQuL2y=V*m#AMz}>`wGHZBBYFfFfHnYzBc0d1s`ta{8PR>Agx){s$lapSJ)2 literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_great.o b/42sh/obj/parse_great.o new file mode 100644 index 0000000000000000000000000000000000000000..3f64649e9de6229ad08e84231a9abee4a26e6b02 GIT binary patch literal 4616 zcma)AZEO_B8J@lK?%w&#`TU6k0lTpspn^L-14)h)Q%ny-C6~qowTYJV-P%4l?ws8{ zz6uGEm8vIKC{acEmsY4jN~@+)OQ@oJh|*LLB~p+gMf_@0r5{uUl^}#r6NNs{?5sa7 zq%iV3@4U~v^US-m@668mga2Or!W2Ra3sjIg$heNG3xaYVJT+fk^Wo>$* zZ~Nw;TLe5O6yKkWsji?A3L4Y_U$LB%a4p~av%H0PGBR_tY|rut__D*pj=hikv*Qc+ zeyV8hm9J15DRW3I-!NYw$~hIqbroN0lfRDWx?_A!wlr$HU*_wnS+CRTJW+MS zvpE@JZF~WrdL82KeA)5wqHUG3dl}xBp0`)UmsSD2cGviPzVh&H`GRZX%PPJe#rNqw z^2zwdv$6hW>92^7>w=?4h*-VkXYd`6 zP4MTrb{d+;7t>@AGP7_Bih5-;yYAW^%2fZJnYc2TsUEqOsa7s$szV=VCWo$NCY$+J z9l8YTQs#V!0ilV`=FG&QglK%88F9Yypcp%exlmia6hvty>Nwxq4-C#S-Bpac##})~I7=y<|?L zhJd-L(f#G!`D|+SN_R|1Ki@$VN}kBNp75+;&#`UcDqZmGy&_jGd3MRO+`=LBpt3xE zQL+xUiUeU7%caq-O35vZmh5~N>5BG>yW!xz!a{p6saij!&wAgD(7wZ zAPU)Xr&`?M=#WZIBP&jk&w5#Zh-_6jM7A6|UvSXlYgg%#$Q8@3E%uk4JUXSS_$oJ+ zb;L+sxcuT$yz(B-S>9up5V6vHe#T2%XiZvgyhRVk6UO{_lh%yP3?%_JYa8mr@ke5h z#uhbfY54~7Hmr+~g0{5agSC2=srQI*{IOUJd(CJRbTHeYdWo*RjNhR$ z-$qr0gt{ZVLv@9kqlcky6KV~0i|BJ`@yrRe!6o{87z=2%hq@EdHv?;KsJlbdn=$kp z16H@tY)A7rn&Bt)m!Zsv!I_LjfQ_Z7%(bX40MhS^d;ryeK`2RvB3dOZpOK>VG^}A-%V7!gHq3|V+8XJDN*KM-EzliB;qqSaxJG;#B9b%{N26`dbxs9u!Cgr zZU3`#{p%klnAkE~p_9JLtg(b@$KFPn$$vK=ejeK(t#m};M_R+DFD!K2+4*@y9zyCM zSq!S`%VumzVhy?kLvGzm}{M1{r9JbuYOVg%xfP%_@B29ula2G(I3UW_wzlcescZd z{9M=Z!?(c8Y+ndj0oeq30>TtM0yzQsCFCv0MaUD7E9uo@Uej>yz zrXU_Egt+#Ki^mJ0c2p_|o^pgvLKMUePUs9OHIOG2Ayx|F&LYHZrUw4Mj5U#s%sP@x z6?L3T<|z=3AdR&{+l6)@p(Ps3$P4h|JoiI(-6YlR+rj5R^u-fD41IG>aM#-h-;g*3 zPfhzQJ_ohNIUw5f%>$Q-T(OeJML$(>os_atg;nbwnvJ*z-IV;SyZBYkOUu-41%&b* zk{n|q_&#W3_o@2^j5@q%*YiF6E05nU+6QdMZ~D2808zq?njWi<^y&4+fZmkW&9oje zw(4_WMU9Fcfd*vk)WgQ8UjGKb0X+dAtvA9g4y!G#&mYiZY4~o{n*q#4_e;{h^9{X+ zzV+J6>aNuCawRBNv18{{c){vK#;a literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_greatand.o b/42sh/obj/parse_greatand.o new file mode 100644 index 0000000000000000000000000000000000000000..ea85f5b23293978f9af85e523137d490dabea37f GIT binary patch literal 4508 zcmb7Idu$v>8J|6S_wIc5`TU6OJe(eJ^O9npouo}@ozxC?xwt`;61RaAZO?aW`;zmX z*4%&W@-F{a=yxMc!GUU z0v(uwR7)d@X?oVA=gYpnw}0Q>>v|x)tpwt6*u4oK2g<{N54maPtf7e!)Abx_HqE~K zdhfY&-X*~K9w&uz$ng1sIlQZj`dU9cfm*)cZqm7bP}>WzIRl91oJ%-pWoL&DBIs` zaSZeH%nAE&-p-lkp1#15JQ4M^q|d}Nz++1O4Ed+_ybRA8HHRJSuHV5l7vBe+3a>}u z%_uyj3QT`AkjaDdR><2Dv3$Pc3U6x6g! zoZE0WXkpR;`>wSDgc@=|HM8f_FYJfi4SK>Y|4J!dcgBlpMb@0uy~ z|Guv@lb$-?^R?gf@@yyf?78;~$wQXo=8JZ6dq-zSXL3WffD5U8dnc5Rt(!Z#HVW6t zrp7alYdJnMM;t5TW$au>R-^`Dc2gsViwAO<)Yi@JsF1GnJ|b^>BIA0(Glx9KvV^O6 z-m}I;wrG2n?U`==C|XdN9uq0!Aj72*dZB2KBqwY)KVn#Gi~%p_}5@-X;~IafhCMh(a(ZkrKy7m4kR1PXQZedhQ`G-I-!a1 z9Mn7L+8FsfSi)Ev{UZ1&hP0mkUkbDhp|;BCeb6?u_eL4b4v6=|WHiOHU=iac=^^ny z!`|FdiM58K86)u5xekVANT*2{!c(ZY4&gf^C&606JLMXjVOtMTxCV3&_i_`z1??2# z3-97u&aX(g9*O$p-ZWad;gWEIWbt+X+x}Mik-svrWwwHM_%4h3(p27e4rL+!r}^-M z#@oJ;jwlr%O&H)ho{IdSArC>7AY!xdwZ+dF$HtdW;6w}W@qFv)!LOg*Uw3)MkKVl6 zb@jPo>(g(Xzv)+c>a`VH?AF;=x1LB;A9`_M!+XDb{&xMf*Rzc)OYi>k*p-i}PWADaa(vuHJ_3)BbV)^cl(gT4#;3Fs{7BIxg+ zYoI6sUIj{lc7X;#qo4;tJPmLWJRVKpC`@dcnCZ&I6s3t-+YFAvyr+pNzzL%;r)XlT zsgBGqnwWB`BRkN z>nq?kU_2M9#tOcU$S{%iml+}WBjC6^cBoX`fyKcFi*^$nE75)zI4+p>ZQxiWBc=E{ z#aAm1Cfm;_&Ube$Is}E6(*jlCVqc{5a$VSdTba(bh3$OrFVy?WbYTwT?dUn#QAdiI tT+YdkjR)oeURddHMzY=1HQ!YO9*dMb8*Uu{{ko literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_less.o b/42sh/obj/parse_less.o new file mode 100644 index 0000000000000000000000000000000000000000..7a14b1466f52f82509b169dbefdf17d1e3d0164f GIT binary patch literal 4604 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 af=B`UizJsFm6jZgeBrGPKf7>`Mfop9A+8<( literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_lessand.o b/42sh/obj/parse_lessand.o new file mode 100644 index 0000000000000000000000000000000000000000..2d892b98bff1714d2cdd12bd19cfae54870b48b3 GIT binary patch literal 4508 zcmb7Idu$v>8J|6S_wIatoFB2Bhf@6ifAL#mKM}VL<%6pUlxxxsI3SnM5dK$e!tmS z*LO{+8Tp&cP4^@a%#Fv)%b@3(> zNf}~gd_JDqjuqe~3Wcm?<`R<(?<4d5y^612g=2kUd>&qY?5Nz}%J>>pe%z?=zP~~| z8DAlhti;<@f%mHw;<+aa*PZXZ3h!HL)&IUiJRCX+SsCA3DnI=Bo~U2iS6`^u-(-Fg z^K{K(?nEY+GR*@+z9V@w>}j1I6Hfq-DftuRpW5>ZJS%OE+t^*NgK3uE2fYe!ufm&C zcuEzRe%hDG{qvU1|jB8Db zWIpFwIoEVDr_h4RbeTp88~H7b(6jm6L}xMQWF~S}s*`Y8YupufW+Lqh$4%J8&So%# z<1qy)a{St5VbA4L7JLwel$<4r#}W;a$zf#0AyNr9;dPNxkzJ%@Td9nV7LPlM=R`7_ zcPw!tZ>P{GSznne`lzwCzENvJ z3Iuv!Y|{4DRMp=Sxizx6c7OAyYjLu55m2W6&G^9VEK~IxMOFQtNCaoYXb^M=wt{&O zI6loZ9UkKr7&w?+~)Dq|t;Rhk{jtH!ROZXR1I;gb< zx}xDZUuz3=wTqfy1TBxkR=qyh3h}!TtG=K!{$R-9NXBNEjcurcH>0`$lfF8139Maj z3jYb51M6i2>vG^f!+sQ9bPg;G_BLGNJb>y78ja@AdtmLxj&L~8=}|B}6#OMv7cHwI-C$8;TbS@yY3dZ*dUT7k?2z7w2 zEumqssIf782ly;Q+D!k?`P!C1S9N$4+IIHdDx(>IcmyV+HIe`e88=7|iT^3~p7eWf z;AqAK{Pi?DXohr}f+0AK>I{s*+d>b5wFmdeHF%zFdx^p|pnGtToA^y=vxqOak88QK zBEcryqjwF)(JDU*THW#2`V<@lfE!_OJ-`W8B( z@FT4W16;>Lk)JcScHDcQ2N^!7hbzxzSW{m;#B`o~MB zcfH?x_8XBSPaHe71g4(!O+9-;yCL-Kf6Y##YO*f zAO`EBUkiMu&O3BM@E!?>AHh@8-mkAit#J&H_Tj?=?}%i!n8L$6R&?x`(qfq%yKgGD zI47N${GvO!|M_O|Um|#{08&0edeTe<&kHinpL%RSsTO=Qcpl!H$CIF~>ovxR-q^1P`}KfvyIu#a#whAx@Myno^y^Kqwm}Px=!UCrgtir0$A}*I zs=jsvO?&ipFw~9c8$#dHtE409&4(!mjQ#p*v^K!29lUKsUyp(M^?Ku8IaW)*z6Ne1 z##4b>ETFiA&@hwk7a1b>SHN+744eYTDhyz8u*IU=1jkZz-wuu|ru$~E-H0i^N%8fH zgR#HyoZ<(;8({DYucu|Iz|~%+Z>!L6snFSXd4In5m+M0nx-iG_dUWk%+LmG>m9mqQ p1>c;-8;c$ZH=mILwif@j$Y#c+CifS4z_%EF3E_2WmZgjk{{?8=q09gP literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_separator.o b/42sh/obj/parse_separator.o new file mode 100644 index 0000000000000000000000000000000000000000..0635d658b93f4526996606fe5d8633856389c899 GIT binary patch literal 4300 zcma)9ZEPIH8J<0Rckg`m`FwV4Cn3(YHjuRB&LP3I$|bdFLN6v%lwwFrs_pr1?YnTk zJ9hW-L6Zo{ZIx3{3*u8kNc<@IffSk_v{hB1rZoLTDprdMzp6<6P%1!th!(4;q|Y-u zYx|B+Jn}p5ywAMz%*^fk&WvCF&zm2bLTGIQ6{HxkYi8+ z8=QjDO%TPhJo~8Uw|)DLy$9}Cv4hqb)gT|Iy$AwH-7fAAe5fs}V9(U&EZ1`+Y*~Bm zn!NqyWtV{G32q8y%<%Q9I<%_2%vY}FCEUulyUAOKKX7x+rO6{$Uv6f`u@7^-&Fc&J z9#b4^9Yti7!6v>`igw> zxx8Fr>-qvd^*PqSm#fvvwpGc^b9o=xZ$qswqn5M&6W8bSRc8*#58S%GUn#y3#W%f1 zKDoYHF5k-c&lbL8Yvl8e)vmbTE)~DuQ@{FCYve=HNy^ssJ*na&*zad!%ilFhp>(sleO7$1`OM;!l0^7CyUZ%{utH{s7BrJ`XM`z6r%w zQ+&!4*nTl+QwRB0E>$FB>wc3F-#euib58Ad^kde?-vwPlMEwJfiywrH1LUVY1cS}~?W@5xwx_d=zh@WT7|k|LEM*(@x3i7uOWD(u1pgY-7hx?eTd%&w9cs%@sZ2 zdO3&OLR3|eZ2_PolT}bBHCiRqftb+(Jkm;_Cxs; zLWFy@wpcVuJ|QAq@ZHx-V;s5C!5cq1u*yN4L-P2^AC}qIDXwDxqU`gPtb-eS`Ira* z?aqU6(7LrpsMTmX)!sg2a?ekp*>+Gr3uT54&Sb0yYz(0?x1w4Eq^}RZ3N@%FB7cGA#Cp@j zx}5kQzz<@G&WVM=(Z(!!?nU)4bQ(8@IsKrqJE8;n0Uai|fz4?BnARjWz=8Zljho10 z{t#vdI}>^jlpZ#IMm0i6GkybQ{t?v-4IL=!uK=BFu@9?Ibe1H z{Sy7wMZW?SH?ND_4Lw2U6o-Bv)^oJdv>t)Qm71flgn0`(_zlgza0x1IULE0Pxq9G|)T=$n1}P2P$lCmL8J-Qyl$3F#6M+&0q%(%dbvm*$4zV zBa3hQxA9`}LY$#2;}bgNyEKg@)H?Pu%4+^k^5GT4qq~oeD7;uTVLfT-2*`m3-5u_rZdy`p1Hf{(uQaL_TKjQ&Q>=)`sWLqf2yZn+OVUtY3a8+ zPsTeBKR>nQjo&?YqyEyL@_ic{ufKEr%?~?H{^;U0Z@qB*h7U&XKNbD@)AyWt_}#^g z`Q)R=m%tmvkHS#i4%q{_3vvi@0`fTIS;z~JMaW+v|As`c;Hw~M$W4%GND=Za2(tk$ zlCvKgg>grSfv6w`5+TOc0DXjDSQ28Sa>FS6@`M-=Y9OP45CcOEWZn>BA}KE>0~}=j z0AiG@9%dJv8G~w;9yAFti$UOWWU!2cJqCZds1hY@~J zhc_vjN)W=@eYXqkXk3eTn&Ai499PlvebQXM931{)G8X@C=!?PgS9}J(A@M96HSL2~ z7ix`jK(v*I2Hp($a=n0ubh_?3X=SBLJI2SF5%-vzmKV5-|9bgGS$TKhaRO5L`lcy;B%_C>;1vFvJ_vkZN*@A}f#X8pxB-Kw zjI*Im{5C>7%t?jV#-PF`w#`Cg&ATjUbniN#`akE}Mq24>lpazVivGq=ltx=#f5cf5 z5Mn`5;{sFO_^bQJ(6ibWR?F`%tXVvd3I!)WUz2V8%=n+bT$+`Z^u{;g%MAZV;9V%h F{{T>rdI$gj literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_subshell.o b/42sh/obj/parse_subshell.o new file mode 100644 index 0000000000000000000000000000000000000000..90ea1422b51e395c5555ae9cac4df8f303be6893 GIT binary patch literal 4644 zcmb7IeQX>@6`wtO_wIcDIDf@X(0s=*%MSv73w1F0aNCYb44TEnZqJ+zTp-=6C>{Yz_7W(iP)# zv(BXLeHiccnjCs55#UwTSHzpi=46Pq@r8J5JH*xTva_>A+j6oq4DUnpeM7}Jr~-QV zs__MQrSWOG!L{+NR{613;a$2$JQ?3?Hdl*xXANFYW7Wz9&6@QK;`1M#z2bZ)72emC z*In0$heIqOYvcQu%HMFluQgvSzFcVr^YpEMC}zGg#Pz^1h;V)ckqPtg$)s8NrE+NsdOMZT z+va>3Mw|Ip89QrMevJUnRz`j!%{QDh51$(P;>&$GG0bzH+Ogxlds6#s*DI8q)IhpF z-Jj~s6>(Yh4fI1uZ@M|XVZHF&TxK@wdbS%d%PWt2Q+BbK&WX$z)Lv$Ce`z|O&1|~a zn-bD=(MA*;Ut~RB_|~}Z+P3f%FZlM1$dw%5c6`e#96%2$%V&~hU1YyhLN1n^$yC|# z3X_hVPZ6$YPx!(uOiua2^Rq6oivr{Do-Ov5+&nrZD+eq$m375LUU>Y7lKj#`w!={+ z_d?DU&|0;1&Fy+!bJAGR+^V%9zawcV+q9vEy5>(OZcW_SxV`;$+)8!2h$z+eb|mDc zC8EAo)HUChNZ{NUErJHoWncjWj#j%?*PKWYPl$LEY`3>l7{DoP;E_#qRT+rm$oSw| ziOF-_C~ji9p_l=ab@;XjETIY&+I6kTa@Y} zNA{ej)S5*fq+O4IYi%}1(5G3|8%M#6=TJqDqv9(i(i1xXmWs5+9|ylcRY#;p#J`Nz zJCr(M5FE{?(f>kbxb>@|oU;sdxBh)-qA`Ob8OxzIR-uZn zNA+8%^yRVFz`FIe_@BTzu)btqT@L&v^t<7rb6{c6+n6BEUQ~?FXpj8|tlQWaH=yF% z%D9CSNTKySrOlXth<+Q*1jR0$iK54%KLT4vO=ltlmNagPe+vAsRHcdFqO}LhXJjbt zhqRMYKO_;o0P%L3cEs)iOB(Cqp8@AG7&p@XbD`85>8X$34{0sE*UM-!XmVP{vP2Fn zW~`PL5`PW7OQH8CIGXVQ?Dc6nXofVJh9X)<^(82y+hP^4?&xiD4W4J;5K*`WG>;B* z6OTY*e9=3&mWwMAZ9{5)e%M5>{6vt4U-Cc~eCOA^_=_`4WtpGgX%I`bFXdX_ODG@5 zh95WH&>aLr;U`-Y2Dpw-2|sSgLr^`4*erZ`@zch!@f8#}!@~b+Vdb&0y~iGGJ$K!6 zZ@#aTi z$6j2x;U6as-tvC`p|2#qaP*;LPrh?@MK1O9!Hd9U7BQ7KfVP6TwcMIVLC=D|2RZ>d z3wi_e9w?50uLp78?*NT~ra+H?cp6|LF_(d(FtMp(rYjXwlqzOz7dQ&@o~pg5IAIj# z6je+$<;eV^ibE?$<_uL#B4x!%L6YYODyER?VP?^o$)-l(0iud$ijNW$7eo~=7v;#) zK@|^_Qt`x7#bd0nc>7SrYeK1bo~XKT*@{;RRlI2w7Oxkoc;l!bc*{}6Bv&dPaH@C{ zC`a~E#YI*sZXZ=VX3FvZWo#7L$gG1$bx|^bmXt7&wFCDGZ7!)L8>6vrz=|VX4?6lD z!B9f4;pXHMkvp5z^IC3dM0^*$n)ZHk6KaiPfV9hx4ZIw3#d01G^-S4wGfK)7HV$lF zs_`E7GV&YliJHd;9w@++?~e2ovmr1;8%I#RFCf$lJ`)0q;Gq+=i}sxD2F)PhgXz?@ zXnJEq>^pkG7}eVb_1GXRxJw5VVW{ literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_word.o b/42sh/obj/parse_word.o new file mode 100644 index 0000000000000000000000000000000000000000..22a0503cff60c484e7ce242fd8b3aec0c2722f98 GIT binary patch literal 4296 zcma)9ZERat89vwcz1NQO;W%lMu3v_Q0nzds?w~l?2ICbpo z-s^tRj-g7^taf8l+4#W^il$Z5B&KR?KL(m8q8gwHQHctH#E+tFsDe(cQw0$dEzfiA zxvuSXG)I2#`*Gg$oUivi=lJ*k`S7|agccU~fFhuI9iJ2kWhrQZ#?L4lTl|XW*ajug zfhkBGG@@9RXCLx>+1GdP+`Idx9!Nh_0`b`Gc>qZ0h0hnvuf3!UL+opPC_=1?2iiMIyY@Tl-=6m<606eYc+x;2i^44umy zKR@`bUyU*$Q{&?ge=T*ucHBa_l-fElI53!6mn-5F*|2pG%D|?(2Zq)Q*U6>lvyN*! zKC=#%o%}#fq$gl<)6)mbv-xa#)7|cjkZ!VG6iS}Rx}NZ?Nzbuu;VNG6>^YGumpr@V zS#IG7YVff=e%ZYJx9sl0G`tC76&e!Ik8C3geP70^1hHSJw`xIJMkYwy&O2)NJyj7e>zCEWg{ z_`UJ9t-HGJZ$%pFBBV^ax^Nq8YEbpnBHVsoJdQv%Is_fe9xxw5h-jA+yL9CVgr2cVK;bGIkN19qSDp>$2m&!2TGT=CLqioLkv^x)my;ysQFW{6|^jguLVmO zcg2Rl|3=dQ5oRIn!}1wvYGr7@nc3Klh1Ne_wtIkuh-T7RCs8IQnUpJW5gkWRBOm=$~u!)QJb z{VrIad7oT^S6DYf6s`f?%~5V*6&lB9Zs%IoR>Vx=jQqxE2DS3cCP&W5;@kX(2Fni69uPz280ZI}S3z%sE`Z(x{Rddrc9@l7f%|6 z#p8uuJaN<@CY6anu1rjDdhsMs4NodBo^Hy-%%T_5Of~#}5o;nE8Fgq;SJVkkoQ4v_ zv3BGkp&d$SiB>cE9K6`ka!}&m#JX`KxB;lFKsxo97<9bfcg-Cuxkho-l-L`U_wF{USn_2@99uj(z(I)`<0SPwyK zgSN`3=wARI9MiXq>D^;`Xs@0elg?diI;Jm$^O)XYL?6-nVCfyxSHd!E{3v8#LB#ja zAx6F7FgVVFZ7Qm^?T3yTY#0Z};5Tdm$3%^^;&&>(QgJX@|GMHs;Jo*OLa|O2d^6VT z%bN6UP5PQ9U073iY31`yZf;)6SYG_CFBYbxCf68y!M6|oD&Re6-P|+j!FLkc16KSG DZcuCG literal 0 HcmV?d00001 diff --git a/42sh/obj/print_and_del.o b/42sh/obj/print_and_del.o new file mode 100644 index 0000000000000000000000000000000000000000..69c97fe1643b1db60f26465c3e96695764edf553 GIT binary patch literal 4448 zcmb_gU2Gdw7QQp~oj5UUAl37Vp~*YsNlb zC0=HFx?&xr_3Mn!#XBtHTPvUoEYQ-tV^&&8ABv6b;M<#N$7N|_l7?}mJTE8}yI=!+}H=itpw z9}yeujc-Wahs`q0YpcW)@s%^C7w-WN-lpD_*3XI0K3-lnUsK|pmoN{m5)YSHKzidF z(HtN*U#)MY_{`ZEA*YZ&|XwtGA#@eWC00(f*JFXQ~lqv<&>R^B*V!R|T^ z-gIrXC$6v8PdV zq})I<2x;lhfxZPwtbq=Z1v{U z6}@?16T;?HOK*l-*QE`0`?=E}IR;_9S!?OO^}1PG4E@2sqke^*p1c%#{&oS80tApI zVWH^eBrMhj>Q{RvLa$wzI95bhEHwFb9 zYlxL3EeQs`q3KOZVVn#d@yokZ?4LA|x)dN2og!&2f&>N(n7%dDYJAlAn`?+Er!MOa z6@f+$o)2w0iG0}d@vaadO|RE4Afv=G@$Lt#JExP&PZ6(~WqYV%M)vJHFc~>&RjP&A zQe-@qh$SLh%p%HsbUXnjHo7CW{pYM&G2?VsqE@zG<7YWu#*edYWN@>yRxxI>_*4}b z@!YZ5BiT%RbVoJM4%>#XqCvG*E>~y(Yeql9Wz@8KWI64>6Kzo0%`TySEp2vuiyh4ggj?MXzfDg3>acIhc z0)2GZ-7uhOM&PZ=JROJA@f|SuVl+g~9(GHX`fx-uY!Z+Zf&BI$$ zv{NA5&q>=ghR?6S`-Z#rVE8JA>NDEgAYB0zqhIdPAr)ngN*%UFG?FPyW2gs9Bq08i z57%3BpZ>zyIXw0q{btZBGK+o)o%AtuYGNTkX(_3RltBM1xbNpAA8O0Z>BhAh8>({D z*Af^SsWw3G8JYgdF_`Kp6=GdmSKrLq&SRFrGMHTWu&6T0Fpc`RP5R^o+{S*&HPcwy)G zSf`|Vyc##;d(2xMf#;}Vc{&@iyn&%Z!n*0Wh~^6^+}{(}&WCFJHZ9E~Nj{R~ccpoE zlKYl5a`#Xp(PA^Brlfe#XPv$9w?h zwxpM(+sq+9V%9XffW6N&QeGDFsOE6W)z^ ze_%chRuttB!jg;g^aUKwg6AQXfG%(dGs1&*qdkz6!j~52^6YzUx50-zYmI+ zUepF9zo$XT?@>_l8wVx7ouK5m4V3)Wfs!8;Df0UbD9(0t8)!G^KS5!l{YBEIq;*N} zku)yph@``kPDmP&6hz>?DCw_3Lzuw5r*!X#ciWug7o;E$+NKu8x1E2&qkqoBzwY55 z_V8g3PuT7F%)pzWV$IARwT!|{xrQf#5M+w@%ezhDJTyp`vutD9%H{BgI99OphFPmr xg%g}@t1@F|$_`J4CH%c3{wF}5u&h{k)X?*Uc<0SRBe;t93XSOjBV{F%{U5`O+s*(0 literal 0 HcmV?d00001 diff --git a/42sh/obj/process_cmp_pid.o b/42sh/obj/process_cmp_pid.o new file mode 100644 index 0000000000000000000000000000000000000000..a7d27a7644b45b631b801ad7b1d7ac863db39997 GIT binary patch literal 3152 zcma)8U2GIp6uvXNGo9|V+bzXf!jDU~{Drbx3SuKfsRG$zH3a!FF*un{ciS!7-DPLC z6ru(aV;~rV5)+;bF_8y-fryET4FbSmxIZ z5JGLyn|S4_`b zTX4M}O1xL(20p$>JRCY7GMZmZo`-O~7ZUdplUgJ{r#gdmdRC)yyi}R6tg&6KGuBJI zv~+$3Jf^&&Be++fM(_$#R_csqli#g7tCngVS-73!4XeNZk{e8lK_ z&q%yq<)l6Ukoq5xANM8205jMaCf^4hknuYpm-1)uK5#3sL}8z|`WK@g%%A-&fA+Oo z`Lm6i`E!k1=l1kL+}x-ixjw=Jkscd6^n7}@Po>7cgi@$n}!ErWVa4w zH*XMb-N{W?$2U3EidV0ebG3TaDY&lX%+#z}X(H>0+(8#0xyj?z=?Ocxb;z9(kswj3 zc%mjeOZtV|)a+T|Oxbl&v%M)%m@7C%gas1l0&ICKiCssp@Pobyye&h}iW8*@hHAqT zu4j7{zzw}u zI6j~sgZFo+vB%;!_@kk50YcYCKxsWaxgW5t#Fx6gQwb{Ez<>Gxi}gxF8OUx9xD{|V*?cplb(hr!Q*xtkDzo7@Wt zVu9#l#iZ-BbW!49khs%~;^xbjfkmQ=yDulQE$L#lWE3k!7n?;!v5s`Hywb(~rE3-} zU2G(}*d7w=|0>Xi-Q`YVMnLjd5n>*NB~ec97s^~pNp-Xt=jAt6AoAkvpdjI~6eG#h zo9eTjK?4c#3u099DMm%PlkCK(@Ec$ya<}4|bjpnhTwS?_ThB==SK2bXZNA4n5eb1K zXUPXYa`)nb#;16rW~bOLepH|aGoYi}nmW2ExMtz^U%K|@#S`mNv_#@_tyABtE#0AY o@6~V%s92DAB3O`~lX9(;tE7Zr7W$V`as#?JgcQC9;j;q&f3I|@u>b%7 literal 0 HcmV?d00001 diff --git a/42sh/obj/process_format.o b/42sh/obj/process_format.o new file mode 100644 index 0000000000000000000000000000000000000000..208d854eb3bf2908fbf013045f5c4a6d3da1c4bc GIT binary patch literal 5316 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 IqyWeM2hJ3BbN~PV literal 0 HcmV?d00001 diff --git a/42sh/obj/process_free.o b/42sh/obj/process_free.o new file mode 100644 index 0000000000000000000000000000000000000000..7df5f946e4a5410c8630de1bbb990444a1eb7e7f GIT binary patch literal 3528 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/process_redirect.o b/42sh/obj/process_redirect.o new file mode 100644 index 0000000000000000000000000000000000000000..233c6b13bf2f760512943f9f29969dac8f720e5c GIT binary patch literal 3340 zcma)8U2GIp6uvXNGo5zZ-GwTm7M*0vU!=QjA<`&O3e;@1B#Qjh_%m*2x7~$hce6WN zih)Q{AT%WgH9q)Yf)74vBu1W;7!AZIiQ&P-MBjKI;Qlg& zob%mt&%JYJFWtWWPm>TzNMHbm!4(aI2?jk3o~3gE`c3y9oMH~hw}C0hF*-q(<>V$D zPxtJd1H(J-*uGYi3h_8?vDK3>j`%T@mX*zo)W@uvQ+3^zwQW!Tj_2k=e4H8S3CTL= z0)$W-^f|m@*>>GQyaJokKz}Y0FEcVy&5g6(`StmDCne@$@d~BUGE;(hw`6_$q&&vv zgHHPWTVTD_Old5KW(D!yoB8UH}$!lhM>hNrO z`ta=J+Z`fy)I>(lOnQ1?c6y@YD$~=`+h?Z_c1#WY?wV5rH~4gN!c<~M6L|g&3-A)m zh6HnJ;F?Uh+VgFC@`CyL`F_4==FrgY?dEu{S}T-GW?!;9*=??|i?|)S`nq8xH}ocZ z){0uyPUR+YcB)b>+qqiJs^+qVYR-0&wn*)&Aw4yApu9JmNp0w@`JP`c}7^FpW#T)uSdljbC65Gp|=otPvXFHGY=EQy6qbQ}Il1 z!|);OklF06q9p-GOP4B@tpi)Vg;Hi|Ws7_!;^!Edm+Zq&4fW zXsw>A>z`{eKj6$=0#yB?s$=~^WW5G-?SjN4UF)UIp3>gv*?LOKRZ>1CB?Q-|pOX^0 fh;fj_L)c)7M*=n$8u)4n%Py8{Ibmh%m0s~5+3whF literal 0 HcmV?d00001 diff --git a/42sh/obj/process_reset.o b/42sh/obj/process_reset.o new file mode 100644 index 0000000000000000000000000000000000000000..f155753d46d227af47f69a9a9f35ea2347b963da GIT binary patch literal 5116 zcmb7HeT-CB6~FJzym>P_v$M0id~98|44q|x0z1p{wMD65!E6JK4J{vklssnNyxn;) zJ2TFEvjvLD#@5nWRH`BRNB^M4M6r!u0rU?sRaC5vR$^n+8q(NmtCWbXDOHl+``ObbnkOTex&AaZO)I*8$vC$u=eWX2z3(7e0uvu2o8ETAJo?n-cWo_EI zaofkk$1-jzC-eY1q2ik`5JEi(kkDVbYD-|Izn@IA7Ghg`il;!FW)b=;3=P$tF|L1l ze4)Qrl$)FN=T?TR95U12S9ySFgX*mM6M=pN`=_8A##b*?MjY>Ye}CuUO=$l?OaCzD4Rh zyOqE1-=seoU#(!z^tWY(zn5>)pMRis!}V5`zh9_xzIK!TkaW`J%=p%(f`x|bJ=dxh zKFMaBuU#F*I(@5AdC;vCEosV`Q3_@9FyG2_1;h$!9pWVoG$Zp-b z3!RSDRZM4*>L-4?bDiwU1{?>QUun4Y|v;}nJL15W`kxt37!Ce~LN6Sab0k{dj% zc6gY(C5DS`1zi=#qqZ5l%0rM$?yjviOKx|`DVHs|*LI^`$1YiL;z?AkS!>l6rrV83 zIuq+mw`y(31icqvo3^1Tl3thmaB@-VqsYd{DxoXjZX{E*MUWYDzydQNV(nTaoisQG zw~1yEN#EU0WdJ!D?}mD3GKnV%X_gGknt0<#P9XT~rzQp(9N0WD1D>TdjkC5az^rTG zDnqZy-f4 zQD|5BY>l4lFuw_@ncKfs&t=UQp{=Jjpy&F`*PvO{?$C1sri(DIqFn3iBDvpdBFfqm zy@W3QDReO{ei+P%8ZnGG1~D=}{uGh8(E;S!5TmOSr@=DOKJyH?bkNUm&q8CkQ3M|s z#vtrpf*NT{yi8QT&HS^n(7RzTjJ>e<8!g%sm%)x3tIaFm^k`rq!qj0vj|LVJH@U!P zKn50)F&AJV>#-1Hot~=+<1`+$f+8PE%mv#M>oU8*IXX6h|l(DqWB%^6QXJ4|g3W)w|E1M)bqzP{GpP%q+5)vB^;f7#Y+5Par{XT6L&vKiWsF~nHTGq?{LPs`}#>%9|_d=K(^Zl3u-sP*w> z9}2Yz~x)An9)B9O}B~{%ZscT;JpOVrjDgPbL=&=|Hp>$WI?k)Y*;bkh=CjUeLyut!`h+YL_xfL zra`3rw2rLNeo zKIYFk{>FFDoho+CZFPEfo_yrWW8aAX;rSoT+VuP<&wXv)3z^O{Z#!LQ4z0d=q3PJ6 z`S4r9Mn44lJm_iANzggaA3>Ku0%y|>;z`~C+6uBjb`Vr_n=rzz4P!l$) z3)Ba?3$z2|f)0Vc0OD`iDG=)?r{UYs4MJnpB*X$Xhky{Qsf1W&l@&9I5VK1`{4NkG zf$;5OV{s$IdZ!?MLC_+6kC6GX+u zY$C+;QdX>egjfs}#G*-vS)w4O5+P=nnvtcB5FaTkel7?xXOtCFkq|#!%8J#O5R0;c zSZ4^a^r(R^K_#>vow8z4lF+0t7Ii|bUCN5}mJst;`C=_3#OkZ8IDinVsDk(@BgC(p z8pw|vA%2FH6-zrI)>yTxEUAQ8YL(S#HIUz4x|f#&OEB$)f|*76e!s0B8gtpuBMyOYn+36_*a5| z2)o?i^*G<~>UpK*-IW7trX${g872Vomij|hm)wb88_Y23R$O@%?JY5%rC}fr`>-n% z`AZT2{KW_)+-mXrQSs~5asUJqK*oko$aph@zX{-|fo0EE#=&nufU4U*6quJWMLjUW zEdk*KZMKnUy2mhM&l*~6iyp)N;M*H)(DJnbkL4BbQJh5-W^#+kdG6#O(ZWtO7V#-6 WL!SEoC*=Pe{$?s8Wyh~p#D4(|D)+Pi literal 0 HcmV?d00001 diff --git a/42sh/obj/process_setexec.o b/42sh/obj/process_setexec.o new file mode 100644 index 0000000000000000000000000000000000000000..00a361d8193d64283f6ad0c200f778fe3e63a0c4 GIT binary patch literal 4128 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 B?(YBq literal 0 HcmV?d00001 diff --git a/42sh/obj/prompt.o b/42sh/obj/prompt.o new file mode 100644 index 0000000000000000000000000000000000000000..8d0bcf53963d78750e66d46f9f47272f8441f324 GIT binary patch literal 4764 zcmb7IZERE589w*g=f+NgZ3tzoRK%?brCM!=gwlwQ5k%bG09i61e01tAjz1D3f62av zq-(0EW>wrQB53M{HfimoYRc3h(P}^FHlfh6@v$HD$G)WfSTzl;Oq~F=9af8)J@38e z8t0M?c9L_S^SC4C}$^Rw!8_kLjgpDPG zlTr4GcABOqMs*LW@*6d z(xkgiFpG=wMTdq8iK8@r3;nbBek5oflrNP{=BSCCZ-+7XjJ+k|4TyQJVm?IZi~3iH zW``5Sd-*=Gt)bsH2}ke3qI{WX%y7}}pT#HKWB2Ea=JV--F932XZ|l{Fac@y-gqQLz9gJ!b0x_$O2g z{G)L(&cY^hBT?l_r#VNCRYc>P@Eq97Tss&$N)5#2jou&i8Br%Q8cW&EsKxvf@yYg$i@ zpSAj)h2>P~($wIEslGYOy~~xWmB=p)lk)f_S0!@B``tFML0ImcUWF2Zei1Ftv9-0J zDv_UGUtw0osEXHD&DLD4MBYF&hY?LOWQ)gtF>(h4)+nh{3^CnQr=MyC-&rSWD(|YX zzB}sF_)T?c%T?3CD)Szvbz+R1gi*hKWqy8MjYVMBM|S58yUM$j!Rq?C$@As$Dx2)P z;XO__Ak3;JztmOR;9b?zcKC0!pc?|URw-@x` zJP(qpDqT{`bCPOJO3j5utKrc57zzJ#@2&b~N5|&QjTvSZIy21QwnGR{TiT8cYYTP6 zH`PA=nt9s}KN~pEvz2Y9)7Zaz_x?Wr(L|w`%4Pjsq4rR_e_bq%D^7#=?U|G!73R%N>bF!y7t^BP^+FW;KIo{x zN`*oK2TeRxV5zLm3JIOzCzVNPI&Jr80q2k=?bQdgI}$fh!JE`S%Q&VsbGll z=$L^yLp_#=8tP+0Jti6fcF6&!`yET#EeBlg^On>n2b$fNE$QoWz~_G7lKSPq zayRiAoC9)TrTYU*`i2~M#7zf*QMX49_}#Z4k#Ekua$ueNbCg~~1kQbOpq(|ofuiD| zkJLzN92I-Ft5l#%gR*tElTKm^!+|i5qH(eK=WjK9d#~s9{%zWs9_Z*z9!EAN4H!bE zWK0e4pdm44j5*3QT$HRn4F@1E*606Yqkx0*a%4&r2l?(`9DfVYHEH@!>y7H@%%#K6 zzv`nCsSovA?GuwtU;AwJ>Yt7sVln@#FXT~IM*cqX&yatOd=;7InS7?rDeWC*~!<;aC{w#>rvP1T>cZ64sqt%#+{A*+;y5itmqu{%TdkU)a^l-p5*cg z?t9ko!>L1G;!WW2%ikpB@Tm&v60S>A#+U(&g}6BK2>3R0`i8+UT|OI!}gE{yVa zgorr}J_f}037)~&kUR;*6Fis)qUxa`AVw$H1;p3{p9JEL2>M0+QXz98{{zEEc7Fkq z-S2?Ja{);G{0fNoZ15*S|3jb)@-z^eJ2(ua{tf`iz8^^KRUq+h0TOS!&_4kryGMom zFc7W;9};?>(4$XE!BhC4UYQXX6)289@1+EpiT41+8zd(S&_XB}Rpa&gH04cR1 zlWgrv^1}<+N}Exr6WM;7O#8LIewR%aenM-eBB0)$%JuTMY_fI0nXU2FGKowqKgP7X z4=STr(&=9$RIGnckqmt{mdP`EaYeNv9%|`?j;E2RODCw9OqcLT!xIgUtE5p?d!uRi NUr97g`_J5w>_2+b2loH~ literal 0 HcmV?d00001 diff --git a/42sh/obj/put_job_in_background.o b/42sh/obj/put_job_in_background.o new file mode 100644 index 0000000000000000000000000000000000000000..ba69bfe9d14e9d478d76b165625b70aa60e4ff9d GIT binary patch literal 4044 zcmb7GTWlLe6rEjr*XyifyGdFKrL7?a0yJ?*fkr&q21;=uJXBiB2i4-N9cPQ<4ZG{o zB8oueRRI#ukMhAoLINQk5(0@IP$iJs@(@V;fIx^JN)a!CDp4MyoU=P?ViTZ@bmz{! zbMM(Zv-i%-2fu#zM@k4KA<%)6puHNp0toGRP>J$Cw9C`c#23;gmVqfqdFf|aL3Mi| z1u)Cnc*%7e|B~a;)p9^Q#YwhN-4eMG~mK?pzO+s7Ufd^F^WQpdjnyFiAs|3Bl4@Z5>5;ScVN zZ<(xzWfCuGw$>RBI@UWYzL~P!i5J&kj5lzMc)^aDIoDg4@r}qR#*YyXMI1tQ#`lEG z-#EV8y5nWGc*lBecN*&qtY+h8r%|!2@wF{W4E9UBf>b^SJe~s;m88w&@Y2AvXOWFAL8S_glC}{B^HBU z2nt}&bv*+<0M6eKpIsP+jh`U3EjXI`&wf*B_m`zz-{woZcOKc@JiKe?VUfGD2)8$T z(Vexobl(+6&Kyhb-gk&lyN-z50~riT4_w#-7An8y3@mrOo!|1-jZVE@7`SHrr59gy z<;K&+7>lYfK7Q>Lg>6;Ocicu{bZB^JxG-SXaS{xU4nr6^dt~UW(}nNZ#jWndpzSsS z&#f0{nt=t`avIh|*}k#nxy?pp$QH#-KA?)Vo87IIa`EgDe@e`0Dx5|j03bpb;S)?a z6){s|=TxkKf3fT#y{uS-%Zd?9lmlEI6U_j%5m=M;a!u6TMy(Kbgq?IeKd@#z*RJ|B zsXKmvFNBQoS79T$I7A;JBs_cbdXIT=-pQ%tvbKQzU^z2DMUkR`rKWv(-SQp2k z0HPW&!m7)N}I|C#3EJyFp!SJOoZdb*b7fj7Ks0kWxYIPa3ad^dqH{)PBSG7^4J$)sxl! zys;7^hf=@VzfkC(VsZ~iTcRHXdlHl^=>&cWlvu9+4)zvEUz&UeOfxjDT<=9kht%<@ z@4yzOdW^&1>!42cF(Ue1N@+f07{RDQX#rvoX?+96X^^o*-vX8gC9Y2vz*2@r?55D)iXH8Lp*t%~%O6JSWL{h_OYw z=&?4qCD_S~3DW?4hz4l0eJOYP9!2{#QXE`zwW z+|S2BFM{@hJ^~#C{Q}Bh`JE@}WHC|2 z>XKGWII372(uyTW70W@sDi}0X%t+~2kSeB+v|>fkiX|znSVL5?E~Sc@Llsj}s+e9> zG36u{Q;RAVleFTFQN<*cDpn9xEG(&FEmOr3mnv2;RV+>k|8H59LdGyVU_GnJ!;Cm> zEzULNmJLGLo>%gjl);MQhfV|?`I%TpkH&|g7|Z7GRxj?3Dg*x*wyO9NmWuLQwi~^| zZ-A7JdmGoTU2pRGDmHzuD5avaV)Wd0jlZMA1d5_1AEa~M=(zmxLB0v(8)0aQ|043i z7=_dtCov9hb?9+#gs_o$-4CQ+bO}p?=&pqTPaGP+jank7XnNN{{W2}9AJDqNQx|9_ z2ketjEZeN9+f*GJB38ozZiDAVeEu2Wh<9*h#C1NaAnT_}zC?1cQ2&$UybyCRj2r8J ZmKcs_%UEdD^IT6@e0@Qh>)`~9KLMKjMa=*J literal 0 HcmV?d00001 diff --git a/42sh/obj/put_job_in_foreground.o b/42sh/obj/put_job_in_foreground.o new file mode 100644 index 0000000000000000000000000000000000000000..d6b9d13d8bbd68a6570028054355bd35accb2cf3 GIT binary patch literal 5456 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 M=8;n~{caNCf4=*J>i_@% literal 0 HcmV?d00001 diff --git a/42sh/obj/quotes_gest.o b/42sh/obj/quotes_gest.o new file mode 100644 index 0000000000000000000000000000000000000000..923a075ceb71d2d1289037db387d852fb3573815 GIT binary patch literal 4408 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/readline.o b/42sh/obj/readline.o new file mode 100644 index 0000000000000000000000000000000000000000..e17edb2d6a2851aecced2639fe6ca844058505ad GIT binary patch literal 5488 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 La~wZ<5ZiwM6}rt1 literal 0 HcmV?d00001 diff --git a/42sh/obj/reduce_parens.o b/42sh/obj/reduce_parens.o new file mode 100644 index 0000000000000000000000000000000000000000..9ee29c88d08ef194c34760f0c61153c13b563b6e GIT binary patch literal 3980 zcmb7HZEPGz8J^v}S)YCO-T9+#f}7MLB@`9=+{8t0 z3gC9}itf}Lr!?d3WC78hR{8!^#djY2r^mgyg?Cor zDN)3Pmyfo9Od zpv{f>l2i(tO}8A6TeYj!(m&Ex-7mQH+>y&xZSk5_tG=_Gxh!z2t$OvERo`dT{$SPK ze20KmE%Uauv@Q})4`W%Y4ym3_LVIO7v%)~ErNt|-evQL==89G4lvNB@t*?v_GjR@S ziF#&b>5^88OPOt@;swwp#TkqE>A= z*nx1_2jC6oMXdIPXt1)%w|dE{{no1e4zn-$bFe7)W{uUvm=o)n_pPPhq`&;@F}^+h zhYvq`r2nK-t`z6o{*l3*pSqM|tOCY5BRId{6>?~1M`3OO$)@-w-z zs1%=c1XT_AB3G(-m|7}=RRWfub3F%+irfB7cDBb0k}Kop`bx(bI~!MsnlAME}tPD4}*U8#uNI@}<( z`9CPma%EObL|H@8EwrKlg5&Q|N()tb|moOq} zWBQJ$d=8_pQ~I2~BPk3XO_ySqSp}0({XCfIcbfSPsv_!%5!ZiwXpg=CgPzcQps4=* z{P%o$3xb9;^R6#(%~t*SV;@lJ+y)z@i3qsfrKE?Mrrtdmcpi>Z>LDmRtsY8uP!c-* z^^c=72GG3%m9aJQ8rT-2Oa2V}7;QaF_YFunN_Q~b|3G?*QZLhOGfEh*Kqt2w3mCqI zVdP8Z-@sa;Itnm!ZNED6zZGzv&C)emxrJFg-reaBK*0Le*#?vt%G7nbUWyN(0Ok z^Mb~sL={h$QgNrLVgY)=(fo4<&ZDYSECjt+8#R$PxA74M9i=wBU(yFtq9e-)?&o6k*!x8KxVQK6kmYRUGN=mmH& zgS$Z2)`_yQ5#D7n7EeB-f4(F9ww{KsE-t`R)831Bpx3wtNGrPeQni3zQ`cW;k*Ze8 zDWy*pcaMCgQByfxN%?Pa1^dq@eQ<_I4eu`AbsQkPy@4%o#~7zcJ*^NT2qB{5c7prO zNN7^FMPHJ4Rb`)}8{pN%CEWYnKySXN_)f*QD-Ona zX6T2pNU&2a3BE}b_ch7mO)}5cX8#A9#QSt zorXeCAPT~=DkTSwh!1f=0*M1i95`5jM9Ts42lS8&A_ur|s%XLd-t4SnZ&H${ynP?@ z<~Q%n$BTdc`_F&d8B>A`A8;GErs9(TgB}5EWIu#LGy$|BV>}y}j5tn%AkH0g!Etrh zzBqRI;+E}cHK`CDL2vG341Z)Sk?@FfqvRAVdqz4qZ^f%gznBaC5zf!NI(q(WBkGRSmZbdLhX;2Hq=%O;7-EJW?;LG*6CI_^YNZ|V^r@+$IZyl9 znxBVvMPlp~&$6crG{ukism$-D#Cuofm+o-S1@0a5E9&-)S=x?ws3n@Q2Yak{RyRb7 z{`@>VZyR^V)92>$Cb#ujN^e`ehh=_4vfh7o&CkUvOkEQP?9cCt#5*GKPK2ehC0cfb z^QQdfbiM;6zx{mM?y?)U}RmZOhB${%eAmpogi~l z=*!<9)GCv=5mM8t;Ge{DGVHc?LX5;#HtO}dcB{Pc6_zP~D;F4kjuxoKwQ9q)xLz6i z+8wU;5|mc$(N0d@i>*+R+VYQ?t3Qb0lIfWCJUhik>G>wc$1hDJ=FMWsD%gp^WICBn zJZ0q3bNUCkulgEy-Qqf463#O66Y;G=CPRY@oaw%!B)MN>hQ!_UT*RpzQ;CLy= zT4R_S$}HPqy3~!FUSvwQ(ih#Y2BY!NqtR}q2L}>J!r7yYbOfW%M@~kb>^#+pORBPf zbe!9dUOCWWsz+Eb`a&dvV-Cd_1u(in?o|$pi`~hdfrsd4vn-C6|9LE<(K-f43MajQ9Wrg6MrIxbi`!;(tFq3pda7()$r3@xfaourGkA zF3Oi`md%ICBNx>wUH_L!J654=5xqql^~FJ|L)i zz2?mtjmF;#obGZr)6FTs(il~g`_V3Z6ChKy-%IMVfx#a2#c)Cm42ABfO8Cn_1Zyz%ox4c?XOO@d{tyy5^{+u< ztNT}6fA8CnZLp~x#PuGAMCa(I1E6{IlmQn?N%@47k4Xt3#)qZshKz~yX@s$3;3kv3 z;A5n&dl!2Z)aye zd=LKm{oet`c$z^2d<^)m22BAN=p?X?_91i<1A%@bA7uk3L(bzMkPxB06-IhwUtV0f zyk{%TA_eg=)1R zYCeV}@hX(xMZ!CQn+bGgDB2fL4_t54@K)_$Ki)@)^;QW_f=11Ocqm5y@v{yLsSOs@AU!ZRr7 zGg_~8NPbus`4(n}Wdw$w0CvG2OaCLt>mVTy_7-rQaJ|U;pNP2E!TPe^-PSw5<@H;y zeF7f8qSqZPq<-rKEcn;ssCVyu84Yz8A4(V5P~Y@-y7mKlb?)Z754zujw;b*+{;7Aq z&0o9Ua=guU>!$6tCuXLDLaXY#?N-&@XipSpt(NVZ?VxVEuCTY9@bskY7-m7!EUz1m zSKb>dnQR^}X<=#U%A18vyBRpXSE!VxN>hc?rVB4iu`&flX>O)8J$VR1c{zZ<^6CwL z%`(b!GeMp0&A|9LpU558(z$%*@!U9n1j?E!F;vbCr*p4lU(G%{a&`n3i!Xn)#e-OS zHp0|RIgcihMUoB!W2%E+S%x7##vxdLXI@7P#R!iS+0mxHc;3w71TqR_2_1mqv1lh_ zcYywn&!Y$igeQT+!Adg?{$aE1D7*piMIRZA4J{bg(nD$j{=p^2xAHtcGB9`>yiS4F z6TtO<5N2mb6^za2@*k%zjH)w!4SZ6v=A8eX8)X~_x`4SlIV`rZaCBq}L%TbX9^+bS zczbZWqdobqR?ghk=4x8%qQ*1dq=o^67gwKxREJzqHJ_iyCRK$D% z_c6S`$H2xriuOw&!7o!L`3%XYNP>{#FO$SM)&De(jYj>bN}_p{$=(JHV-!6NO5DDX zu<<>Kk24WF`NA?nLta59LNl;KBZN;KQ42-G2;UPbxZ>BCqH7+6db^4^FgJQgtQGB*5mQ+r0d;f zXKWHkE7TB_G^B-6+DcW`6!j-j@u`SZ(Sm}~Dg@LIY9qC%LO}uv+8|OY1qy1@bKbmh z>?M5qq&xTC^X|KI-|xOR^N07|{BMg8T1?;pii3_Ac;rAR7lI1ZKcxIV9afxFHjxgW zf|OP5Y&&pw21)_5?VCro-F!}uq=QPJKgRO-93dDRl)K5IV%v@%G`wm_0nPp*Ke8=s zCd{a1$o1JO;u&*CCrdV*${O3g?w0j8T|aGgzmlF%4eL$*P(90KM##b*o&HmnK@^}0b`U`f|&)eTNwcegn>+sD_=ntD% zx@?Z`L@MlP)ZfD$s^jNa)BHNM3G_3tC#!dO)iK-NeBC)yNNu5(Q{YMXW2moV{i!)` z^5>TA@djo$Y|xw!a?0PZ@+Ue~UQv1yODL)$pWeS-ReEgh?`_IoRRuE)e=MgzBtDLd z%!SEtBQf~-pm$Y%TQXOOLFkA>+z6Uk_zKdj4$n0B2zg6k|7(Rkr*e;r*J)MQKk{zj z0BJZ2`Sh`oQ}kSLMotwD+;F;ZApUITne3kT`Z9YzP5j{M!mR3b&q_CY-W8d>Trmem zPVG6O?H@Vy#%%48vuDrFbXwT+o7}BO`})Ls?!w&W&0BBCO}P!;*F|fr)^MTSGwH;%{fmJK~ zvS_vvPPy0+v=@ObnIAH@IwgvYk|VroKw(PM>VXfV@k+5IDz$1UCm*b?aQ*{ZGCyQq zwLTe$dIRe>uzl}NS8yrANHRZUMd9vr9e|SgAuHA@IADswq%WlC78_1k?5K^xj!$1c zy)jWQ@!^fx0T*JifgNH;DxzAs0u{vo=ilgLfbBi*HT=LvM2_pT9~I9J;7l^7Rt;Qq zMDZ|SMm^KF(q*qFtG-vNx??$Zzsf^9n5d26ErHvZ@M^wrY)=kU;E=(MW7j0$*b;$W ziF8Le4lJg9$|>R7m_+EwueB_*D^7`eF(}Ic9#=FSUZ!A21dz-lW-ZSK6^rI*A}NcjaWKscBR|34r~{_ zA7F8p}SY-@8Kkgx@=Mx9zLoix~7 z2&)Z78#<{BAv+{wT{5g|&0v=$rxDzWQq$H3t=p#EqAsmzd~0SAUbP0EvwVFrc@@O= zxv07nfp!=&vd&(~gcFYvi^WVJQeqhy3U_`~qU+Rj3W@-2>lb08W$xfJra!Rrb_(r# z@Pt;s77etHG(1DAJVvdvlkbV|#>1%KVQTSxWDnwji;ZX-Y56kPpr$Xk?t#F@`bs@7 zESj;gzDmzq)&o)9YCWH|z76dn)?K0J=Ub0MTSje-p3hk)plzo%q~`~%zeD>9wJY`f zkX1uS7jX#I#`1sBM4bIF*f}F^E{4_jAjTFN4->J>H9!tSjIT=k8Y~+hw2p$aQG5kM zJPwH=#u2b3%o4^8I8%7e3wxsbkkA@!h*nbY%e zYa=ucnYoCbw?Gi2a zGfS}I*u}aNSAq>1OD*mQE@|U(j>z@U1Rg&cWxQakh+pF6mn#$#pQG z=P$NKBW;iiyc}uE^?c9tyc$@MOGNxNI5bb=@mW~Ka_w}Yb(mQ59ogt1;z@{|+>`OS zlo*q_7*fDSU5UHEwwb-wSHa~fS;FY=gC^J0QbzwBXmYJxrsq@E!_edkLO*%&DSU2y z0dJNU8FFMISwbxQno2#Id6d~lrWEl0&}3FyLd|V)**H7X|Hs)do*W2wFIg}+h|9zU z)4<0Kk|hfI4h=I3;$4sTn|2WHY4YO64`aTUr3>=Kpar0XpuxNMC665Ny0fXNClCGf zg@3>Ja;EDS|Jagkw7A{h+&tdBGG5O9$(hsj;M;%fa&iytKKiAe=Y#va?n!-dcFSmI z*Wr`BZ}lF`be;KHx!e5RHNm_?uRn3@@L2Z+?QZWaPu}y+zMoltJ^sr%*B!t8*pDuL zA=~xzzufMpcdvf`<<^IGFNEJR2K6q`*Fir7aW@|Wy##s_#G7O%s29X_xfx`G8lb(P z?}9jY&wyS8y$X5<)QW-X1`UF)1#Ja+pxvNvfF1@N1~Gr~HCzon;3&+RgqW4*5r8#_ z5Yw!(;!YyO-K8L&1%!A!;AmrEawEiiryw32gm^?K_sracnBo+~GKTagftD`hndoe-0wZ`<9&YI)Z`0Y?v#Pxi>(kkL^=sRr-#=VG zx=iSr_I|oeXeej~(xT57d}cV6N#39bCjG{M(gwVhLs!g3{9R2Z00wOJ1>gL2gKr?b zWWuX@vZlYxO)YIhaXhdaZgGqsE+N1Vkx;_j7au9rpi!%YK==;G81-oxt1SHH0FFdh z@dITXek_Ej`X+z^^9o+k2#s)6KsaHEWi%tv`Wd6e{JFWwXfrn&#zx$(HW`UYqr-gF z(AOF5=JTk2%2=??Xjx|%X4!~8@C8GU?YiGc#1h*K-F!+nF}6b71fTHSw?5=^nXCc# ztqHj~pm?w1Ov$L1(?#Be2RY|910gCrQf8=9o~a8P1B#!64!-o{S0p~9s-=n>)T+X6 Io*Vf3AMubdd;kCd literal 0 HcmV?d00001 diff --git a/42sh/obj/shell_get_opts.o b/42sh/obj/shell_get_opts.o new file mode 100644 index 0000000000000000000000000000000000000000..2a597e896f368a1ff80bd629cc4f3db035f8c01d GIT binary patch literal 3632 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/sigtstp_handler.o b/42sh/obj/sigtstp_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..bff39d8ca36278979952e1c37b2be073b3e5fde7 GIT binary patch literal 4128 zcma)9Yit}>6}~g;*@ySxb?gLJZqqG^LrS~5sqIp?g%CsBZiGRlahiaNM(f$x-HFCC z+nsS+sDTC%zHjD^ zyE{#ZuXOG?=ey^Ab7tn8xx2r9_pSe?gisO!6J!ALf`+LC!MF}mqyGV;mI)VLmobqK zPC+TkeY)H5Olk%jmC$ohgb$j4lE4+)VZHXzohqM_@C=XWiqC4o3!#M6-L zcLpTUZXwk7%)rw1hPk-h(m^Wy{fB4ozh@)rd1*b#hlKH+7$2ZM%81W)jUZmv`}r37 zqJ@}F2VuQaUqr-LUtH{($N2oN&i9IB*esvrG+l0q^WDgTz_=vu_lnH#2;K+Z3&vIR z>(-r?>AjzCTdaoO84O8!=Bx58)r}yaaaG$=u>>Rh8hOW==?}-%`BwtB_=fTI4Jc0U? z?>xq5w)JKgZ#Uc!{~r8H^6is+7bKr_1#Z6`+0;?L*_IP9#_xAV_Crx7Ggb(9uYEv% zd@jMaFdG&YlOKbeK|Ei@1?UFd*H~@2e(B(WdlwEa+*h)kQm5-0rstI=tYCFe zcwM7<)LkqauH$!IyXsjj-}5_qyY4h>vs*F5EL*lTKmWjIOUKNvXSq&krn0B9r?lI! z@trBp?1596o~+z<^CsA;hdhu}TgTm_je2!@(rb&@CFwh^upD0?F+=!zpuA8ut*#d! zz-`O(g%>L3Z(@tox@Vm-!F0;heU?$Zi~0^g__ph`O3MzfV>a+qeBtm|^xCFv>z$U> z5FM-0yDxGPIyH#}W4YVK#dJi5oBSoWfe!c0?vmwt!qBazU2h5BpyCGI4FE$A5cqcF z8^SOUv5}6^u6KjP+2LgJI;M&1a1NP5Kp9ph3L{#gP)v>&hLtU-O|=4Wi?VMpQMfC6 zclIN>Pv+3CnouQhU5Z3Jix$Zs%Vt)M7mAG!(bcYv(O3um)?*=qk_?$Ed%J51!ntyCDF z3so>jKPEQ5I1!*cP)C3=q$mmX@zW0lb`$e}`gmuB-tZD;p&jQmkmOH`)GDSmNM=0! zRj4D{uFPZ5KY?hw)g2=97g#%yjdruTBb^z6MM~|X>W*AyJG?or-J8GH^)Ge83p%sLwqa^%37wK&!;T!O7q_>R}gQ-019|IfMo*IMsGnk17wckLc z(n)fss(}AVV|(f@nD4?&)>2F=12=JN_71a~a=Al#QA=_1@xZWZQV=?=r4$vqaiTj1^!d8T?dms3jNRp_BVVHy?rKS0%q zrxmS9trUH#RIuX_noPQOaJB{&d{(JZt-%PfWMH4GeEuy~LmfiA5}^Hi3B~tb!RY0` zRt%2?$|wUd_yJb%qc?$rVIVjVgdiseE0D(kkBl^ghY9PLIfN16T!7Cep|@x4O!n#T zzVh$i8l&T9-+p!6|AuwLvN};bv^X;Uqt|!+?VYc+Z%F>~Q~u!}e&y1c@1=kL^7+yI zFF*A2XP!TO`{h3lK5?4I!evMS58)=rG~`~$7a>cKHON`WvykT?zks|3c^jf3VHQ8k zpo(`w(}YimZ%aZfT|%rlbSnp|k`QZm8-cLS39;}c#L6VZmXQ$qiV#~(aY%lghPIbNYOWay3ZO0Q~7&3vpM@lJYGJ^Ve|7YSU% zPhuSYxRmYrl{UZ6;WpUl4SAHp84x_Cb@}@t7KskggTpfnl;s{X)^M&5@^-kSy>yGO;tS%p0-_I+7 eUnYJXsME4d-*tiwjSl`&`%R&@Odk&qoc{w%J9hH` literal 0 HcmV?d00001 diff --git a/42sh/obj/sigttin_handler.o b/42sh/obj/sigttin_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..f6fdc33eed828e97bb186d29b7d1148c991706ef GIT binary patch literal 2552 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 KRCHe)HvbEMgj4PS literal 0 HcmV?d00001 diff --git a/42sh/obj/token_expand_var.o b/42sh/obj/token_expand_var.o new file mode 100644 index 0000000000000000000000000000000000000000..134684b1015acba04d7b0a0eda100ea9bac9531b GIT binary patch literal 3048 zcma)8U1%It6h1SXne1kh-A$sk)+!5$(SX^FHDau_Cfd|V+G40}t)PsP&2)F`W_H<~ zq-nJpn<@hW3X!c&Ye5S?zA;IaPGP1 z+;hKs?z!jQnTvn@`ENau5+XFwEg1f&F_{bia36b{J1A8ue7w0e;<<-Q*WK?n ziFe6^rJvS_hf60QgYk8U%e4~U#}NsX;nEoSqmIE+m zjxHJ}nO_di^HgJIV8J*!urM{LQ2bSnp=2~050PxZpmCKO&}VBVNHZ%m)Z^j-7uv)uw>X5jLbAD5Pvyh+nvC!hVQpRZR-c)z0J9&4efcK=Uw;M{TXH)9lPO6kM>4H6Jm(y@Qy$-=OS!2180*Q9|nM?uK4GneHPQ~F(T}6y zw^ZF;{{qB%b!&JUlKs>^wT;5>pvV4dzuFcKzmML}tUao>B}o4g-4m>~MBaqZ!rBiI zk@wK(O5{T}q2P@t`whSTSt6B!Je&8??E0s};XR9uK&CvGnz?KW&P5R}RpYPb!>cjh z#Eu|-j}%x!xWRSe<`OX`$HtP0@9c*AoZGvnPDB^K>3J#9IPp;?`PPePwDk8SjB&!= z27dtl415vHSz!!L&Lf*RwbF~z$tKRNH1UzKiO*2N z|6dmBu|wVoysJo-598F3pBv@KZc-)_N}{nodp<uESO_g7Fo2uD69$G97_^(c4-E-Ym+OSlJ$7P3NLg@50i75(2ww-rIs$;fSDf=$l-u}$s@J{tuD4g%5=NFmZ zQh-i%hR&HaMxgp>DzC!Jj*OI@!`y#;ehTkZIbpeY1$VT>DUEpV z$@~^2-X<0wv>)}8?Yn7y<*YmAcsJs`TNf?FhDd-{GuB0@{T|BZ{1hAWQ+TS3cgD+3 zOcWj4%^qTUH|+PUTz#`lXyYC83-C%K2mA&%=J&J2>y&uzGV%QUCbGFkJe@BTNa3AX zCSK*}#7+0xCGob(0-j$c9$q>hvN1nL9txG;-_1e3HDg16bEQMrXT`3%M+$D+ge)B;J6;8<2R?6o4I9I;A>)#e(Z2 zHtzR|#QRQ8ngSl_#4Ymc#Iqy=VnHC2Uk!d8@!Z!1NZJtMDR3=uzvQ|N*9P21-)qhM zYE55GSu@WsSToft*2ya6JS2FN_2O@$UkGdZsz|)d{H&8Z=B?>3Bi78<^Mv(nrBBbM zp8IN$?@?-KXy22m!%o>Nl-yK*x+mR}dN5bS%irDK10&tHF}>j-;gxflqBH4~GnLXo z$3=r2C!G_Sy&h&}#*UN@ll!E8~neH7tI$%9HKg+Iq17@r%@mIW29Rl7glZiM1Vb8Wm;YeSj!G@NbP zKr|G8H1=5RftIZ;Xptdw>Dbkd8?dj=H276ASBYKi!5n<5Iz=eHB^EE76^Y--=L*)pd8x1eF)GJnikSePiB3c z-$qyyqrO$e*rcBxf0I`08H~a(r!XD_ht`=VA*+y@n^uf!`xMy0XYrEO`!OrxZxb>dgw)NYt8wl%P%ZwQVt8qhS27U9H&YWPq=Bzq zOc0O6XF52ru3cjsF9iM+^h~`L`{MY+i+A_B_rCGxk83}j>-r;?dh7VY#l9DkEr&n( z%*cGpHoOo19Lzt8IWP-nV$*BD>%puKYd}A54-i{J7rP~0tS?<`$tp02Ev1V+moB!J zuBq#;S?OX+Bo&lx`JoXv$BesRg?1ZZbK20MYUZ?VB6ABfu~IkxNr2P+ uNMM^8DZ8XxCnW^q&C^oyZAieOs0~Vu>Fc$&utzKW0nR%`Y;Wnp7XJh72BFaa literal 0 HcmV?d00001 diff --git a/42sh/obj/token_init.o b/42sh/obj/token_init.o new file mode 100644 index 0000000000000000000000000000000000000000..4bb6a561ce71ba28430da4b19973b4a1ae6bde44 GIT binary patch literal 2760 zcmb7GO>7%Q6n?YzZrnI=HVIUr6l9U|CmK7nk%$0=nEv2|R6?Z|Xuzw|_c_M2xs$jx$$vZqm$5w=g$h+=f0-10N*M7>c z{%T&vVr%Qaz%{>iq?td@ye=oAyFP9rE@^cdX5e=I`DT9Yv4k|Per-PeRSs7uJvB9b zEWPB`>ZOX89?cAAhST>rWxn@Aqrz z&&mN*o08{K!S-!(igu0ar86$Uv;`h?N%V?4 zQ~i1@Wg54pdPN^6PV1qGeopgl7O~WW$%i<}@qQ6YC6j@ocT+4i(GLaR2V)i=JE(XWZtNxKo33u?_C`E6ng^@>=&g+ z`&^i!b2pe;@o(gV)xbBwkqLK1uq8%1e}8aGh=7S0AVIj2dk%WH4X>O_HoqNt!R%W4 z%t^m<_H#Y^U6sd>OvL*!^A+Z+%rb{8k@nrpOft(#;@UEyKv)SiL%o@hb(l~H<%Q(K zgi0urEHJC6xPrf47CLx`*a>?pQl$fI8-;lhXO5F-n8NJpNL*kqth<*v@i%ZbHp0?V zE@i%=9qJCMNQC30QI1<7{z`RoE3gK$D0xnKvA|!A%_~eKZ*r!H@vR%j*BOUCuF))U5zt{IQ(DPxl5qLh1Bn#N1IHlwE|^-dnuj7iPlwTT`G79YYJ$zVet z1iJCAl6NV2yOJyrjDfcj66dXlJ0YRlqRO|nRVQoC$IqVUE>rOC$QO#N1-p!YwtoQ) C|63^l literal 0 HcmV?d00001 diff --git a/42sh/obj/token_print.o b/42sh/obj/token_print.o new file mode 100644 index 0000000000000000000000000000000000000000..3170b43363af0749981073fcc52306ff930f8bce GIT binary patch literal 3536 zcma)8ZERCj7(VxQx9!@|bsr#zkR~wDz}7N8BnrrIBV|B>$bcBhwQIYrP;QsrTNsQQ z!i-oaMl}BN7l{#n5M!by@!<3EoOic4SuRe`?KFoi%EGeA-54;X8(m}5lx6m^xL>sE5Wa%4x} z(y@KZq+XPcOM!TdW$qM*LpfOVA=mY|X=PJJuQcjn|z&EBVC=JebQMi+Jfw++I7Ffynq`E|L#QUCi zcPws)SQ%dtub9S1>(@EWk?PhrQocFAZZ-or&_#@+U@G{*y?F+7q&&A@!nCmcc z^)d16`1)hm^=ZCUC)H;^7h7kd^VBlkdNH-cS9L zfk~+%zIbLg&S~j6V{ghx==z5C(iLM8FC>i@fX6FJp#EgY6?n-$y(f#?brw|igP?q` zt0mr;#FMIk+EEL-uWd|;Gc!=B;EnJHZjYgt{{CIRIKQ3zDcpL6#J4WwfM29=Zqr)Ov=oo_t zqBsI^WO(Cf;g_M)N}+3X=zF#BbMz9Hb2abf`em*?vT^|OAKd&Dj}SewbSc=$r!ch- zcZ^1dyT&#QcY33R)1NzTuwc8*!DyjtywGvw`Yyr@{TSKt!(htTlONodOy`?g7nz~K z?o2vA*qzSho0=CV29ue1zA4h03e9ga=i8c3nAvzZog7GJ!&YWj($M?yF|b6jiEisteMIfq2(=+mPqL7cpAN_d3gj%%aYcXMbA7CBiv$Bs&bLM*nZ3}SxF`{`Vj|ub%i8-0no>fkQ0+_-NpY^(f!7Vt*y3l2}#t*Eg}n^Nf;FMgsY%DQM!wr+!~QmZH~_2>ZGt5SOi zbCr6u|7&V>EIMfEJJjmeVH0Stou}5YfLm((4!YmR)C*E)cnq-VYP~lH{u51&>Kx(C zLpnoksyfH({Q}ZeYSYv?K~e3#2$_$iYPS0d*in${Ro^i%k5?nMb_0`p9MiYd)_RCF zU0da4B#c8_&0QGnN@{J~g&l(tYiqcRdl|$_FlqI^%Vb_{4JBG)JnS&AYix>}mcpzA_=gY4~=KcBPVq?}f2bSK69DK`vDc(5qgIgD7TJNN0 zjh|cc`bjPP>k0Uu0{srU24dd*NXBf?B2YVM8)zqp=>rqYC0j2Bvr7{bE={~qnt0LE zKp4CVns|HCbWEC919Bm+guC@!%_>U7B62`ZZY?nVY|1P z_z;$Lap0lLw)C-$I3AEuM6!uOse%XFzvF{ynrI`gT18WRr!?&|&7aeP?oO?Gh30dw z*Xkg89kCJO6DPFV6`E_i+xv=EtuAcP0x)_yHP!7J=+qRK?~v-o`GhDq2W;jQW0$Gj z4sYHe^=F;m-C@b+Nj_V0Feb?Tk>rp?EhjmoUr`kSNF_fr1Cz-SdXJ^|$E-fx$XJO~ N*47jD*RKcb{s(|cAQ}Jw literal 0 HcmV?d00001 diff --git a/42sh/obj/tool_line.o b/42sh/obj/tool_line.o new file mode 100644 index 0000000000000000000000000000000000000000..82f044aeed96190e122b56da79d05090a2172739 GIT binary patch literal 4668 zcmcInZ){uD6~E8UeRkv4FHPFCtXpG7U?WgFEg4kI+EQqySF4c_YqJWd9**NUuH0wK zf11!0Evs9W)JRLUp$P$lO%qI02OHA(G77CSl|TDHrA>$r`_KMxDX1GHM6;}7a;oTz9e&@?fqmC`cl43R84(^W`{xcJ$Tu+4MBHXsW69A{$|@A| zN@Q8Pzq9MXZ@JUL#aUp|q7BWmeiK5nOyg=V~~Tu;YTh*Ml= zmj`W$cQ~FDW{nWSaM50iUM@m^#9&agw3&-Bm1%Z?sW1#a~3CEWq) zWxRVhY0MI7h_}YSTs+Z;_s0gjhgXSLd@R>8-bKcnXNSJGN<17o1=;A|t8_Tg+<5O> z=kPVZ4e=(jhY@GdD%q21d(5)-?yk`lA28kvESvxy9htrBh2T;(;3X%l@jR;Q7+6;Q zeK5u6^%CRxgM1G#k8)4&P?75SP1_2wG2R1w9oPB)RoGmSFKR0vUtn6Ph%lC?z z;YH)b7hr8xhL+3<$ndi9#s;l?wSCZd>cZemY4Oz1;x9GhB&~e8tE%ZY%jZ|jS^wpi zS5{V)YW0AW0axVYRz9EeV=XcTN9@@KiWH@vrnJ=WXc4%j~KinVs zY9fO#(zc!bV8R1C!rN~bg?u8C!LiJQxD74lGg&(oD%pi}%1(}j$O;fbTd&<3?2_JKhrT7aUhBlh z@q{7l)CSwV!FvN=4}4|qH*uYNrSPy|56*AfKpiU^P4;w=k=`r3!EXctxQBd(AUl6I zh=YszzDTQ4p@p9|EZzcl5<%PJ5cTW6ma13a6FjMnJc5yCXqwk^dg@g*{w{#P<$kZY z9}ui(4nNdFY7tnB90I3psR;19TjnnyM;jSaCwA zNHOlC#n4p#K>w;ZAyic`{wedWudLqWEBW?$blgwo2F9nS1I6q`Hrnu!B|K_0P4UzG z?=Ic8c=p)WuJupP1b+1C#Vv`@Q^&?2pF}@}{v7&m&?(L2CuP4I6pd0&BC0|!351}U zk%%hDA}SS$sCI1l8jGf{YyGD%eF(vI8wf|1LX9awDx8lZJj;p>{{*28F%ljO?A0x5VTf zQF(hzZjH)*wSpI(dVVMaFUU?<8Zo&kO7@ywmf{r!y6)Gq3sdVA%;qz)XHMQ4Bcv@+ z+1G$!K(SjnpaA?EfpAu?8ln9mWGw3Ops?a$q#75>w)3b6(Lt&*=v@xg?_m0gvjOxE znZCr7FGHRFXhT&`F};Urgz0Te>9t0B(@Y;_I>5ELf+wd1d z@$OmL!F-5yh>*T}whw@>F~=6fW2g2VLp(i=s*fQO)V_O&Z}B>E?f6M$P3F_Zq!9lG DybEDr literal 0 HcmV?d00001 diff --git a/42sh/obj/tool_line_2.o b/42sh/obj/tool_line_2.o new file mode 100644 index 0000000000000000000000000000000000000000..66660dc7f555c911a5ad5cb7af70fdca6ea2e6c6 GIT binary patch literal 2916 zcmb7GO>7%Q6rQm&YbQ=^Hz`$rP`ih=fJD4WC=ivjBx-|}kccWYZICD-T;ARL{_wbz+3|<@$v=38xh1au-NP9I2Nmx9*LJ89(K(0 zn15}267P(_*eaf7j}&l75btXd-@L%PF5+8~>#<3`PTJ0zrHy#6*JMM878Ss2qQ*nk zZ!~RqAqL}*FaNc)f&6SXw0#6mjOMr)_Xw1K-pc}w5b9}^s)%6Di?}G(_*X4gEHwB(h z3BcxLAEn%XdCT??gZX-w6ZkEOL5m{aAz4E83&%AqIpDC}jEll6hX9rjG$`LZ%znr+d2T=6co)vu-MF0K7 zw>xO%K|@z!{)evV^756Q<!e)YWRl&pfScBEQUt?JW89&VVH zj#f}ohuc$a&ybR1Xt+!*X2x>iMbO+rAyJTf;GoxCzOXzlb zFy73<@uadhzMVF~QiW1rY@%Ha;rNl*OR=XKUxs>w83_r)tIhDLB?t<3fP~}6Vlh~F zWhYqt5m1?H!2TAGdY4?Iw?Dv0Uc*L^eCJjVgEY|7xKK1fX*hIk99|6Qk3b7r@qJJ8 z9=f`BpwA|tQE1&5ib-fHz~Oz$RS;KzLvOL`AR~baxbF9bw=`S{-e0qJ#Y{A zvKIiz6gmK{AB%c$ENr0a|M95<4CEaM282hP5(Oj!dyF6++EHSCzFa)C{LRJZAAWT2 zm%WBMe{l$GnErdfSZz!d^S}!11O~#i(S()2BMgMKK@%2Bcwza_gkZw!zw(Gcj50PD z;gMK2M5!T}8=V*+bUaCujgjaac;Pfp0;_)`Qnf0Vopi^OAB2u?lYdWs2cHlbhnCWZ z@omsjoCBB!&kfPaB}cPtBVW##n)O`A3$>Qgg_6d_ds2JE0L}l9%Hft3M+Fq`(yhnZ zdlXJk7HfzeW%WugOZKweb8J^HYwl$GCt2t>7Ez+dSXk**Zm`fGi=G8TFN0rL`H3~Y z$zrH=vZhIFBT5!s8C7nC6v*l_OaNiD;MRuup1?~R^#P&3=i ePZHP&+5>W(3Q2BuiQtD~*>z24)JPZczsA3Q+MhlE literal 0 HcmV?d00001 diff --git a/42sh/obj/toolz.o b/42sh/obj/toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..fc36374683f06f9e3899bab7293224dd0cf974aa GIT binary patch literal 4676 zcmb7IeQX>@6`$F=**kya&d!%wwS^O;F%k7gODaY2wb+WU+FWc>+S)i!vp%oS_Eq-T z*mtq1Vqts^_~JOCK&n=vq7b205Q69*C^aS6DT*y5)F={&O8ns>P<)b+3_9RiLe1~Z z&bs!VL(@@a-@LEiym|9xZk)H?``i0I#<+*!gYHG27x;wG(e6e!h`&v{P--idm5sv# zlToiwex{jcSidt5H!N0Sf&6#IAA7-IL$Pzk<@S^*{cL@JO@X? zF>i_EX;W=0i+H-@UFlvEpi*O+OUeS6r72ib_&YwRtJ{xba z>lwMh?)WY#ynPDqoJ!ipYK!V+Q+z`)%Z+!#h45lJdc}N*^)*IfjX{GkiwZGQj0M?l@)5+09vfDJ9n>Kq)D7=@IuoHN6WbUnGOkFiD zym+74GmPD}9o+Xp$ZyM+ZNgZ<#&cL~cb_vRx^aFJNr~uQFH`6Bf-1me;8ANrd`h$> zKFW){3(M?-M9RC+n_*8-e*&cdsO%m`-`r@u)V-U9cQ|e}vVS!)tD%PJ!gORkn=ULy z^5i-b$=62;!PzQ|e@y`!v+4EAG{|0E!I#a9=QE2uJDxYPk(J!<*4NjK%x^*+Z}!Mm z6a4rTSuurQVPwZ0Xv2!+jhU8$F;ik>!V4@o^$8emmd=D1>^WNVnX5e8n$Il}{!9cu z%*ZZErLh<(&5s*V;swV;-s?%p)biE4z8-y^`SRJw?J$ zaEhvZF>;I6nuVbqE#QN15mZgTSwqq+dDe=On0pI;6o#Q%<78`v!0YWlujir z8uSdu<7O(>Mehu-i4k+OFOiCm;3~vD4G9#$4BR0NB?;>;B6fk z@gV0yd+uvLkYln3H+DgC&tnQ*doJ}O;wp(_-cEd|E!l+eHu?qQ_ehknSLFDm&3^Yu zKi_p_-$*EEye&=N1Dw{U+HS;$%#|V?UGpE6{^W z$>WzlSb&5cDuQH5or>Gl8SY9D`n#9Ak2?FrHAn%p=C~CkfPvRk=Ga zP5FyTu~K{=#fH{JeK$HaS|j0jkPWZ=ttFnZx{2vBD|G%;1IACHQ$9&fxu#16jjEVL zlvE}9f06i9w6K;suAuDHI@or0R6Pv^8&9ogTf6VV z?geG1*0rtO8?a;V+IVVxMRwoES~OM*L(cyb*nuyn9H4XeJfa+u(xOZc3oR@>y8nwOgf=VqdBOZGQ2)x-Mn!3q4E*{fQL0BpNmTe@9@V9_zeD&S zgkIM(f@cJK8?L9xRnsS-dszhZIk7h^?(PwxIpGTnuih&>zZBZpFAJW=Tn%to5mjk% z0Fmqui+y2H5fys7eoSviSbdnaU6fl#_Zh=86iYOQ`N9mW#{BD`IgIS}io|I{F3`&GmK2QJJm4*&oF literal 0 HcmV?d00001 diff --git a/42sh/obj/toolz2.o b/42sh/obj/toolz2.o new file mode 100644 index 0000000000000000000000000000000000000000..f267b6a32870a59f93003b1b59b1c9a3ba481ce3 GIT binary patch literal 3420 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 J`Nl<@{{i$a3U~kj literal 0 HcmV?d00001 diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index 958eba94..cd1de32d 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/01/21 11:12:55 by gwojda ### ########.fr */ +/* Updated: 2017/01/22 11:15:54 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -55,6 +55,8 @@ char *ft_lecture(t_list_history *head) read(0, &ret, sizeof(int)); // if (ret == TOUCHE_TAB) // ret = ft_completion(&str, &i); + if (ret == TOUCHE_CTRL_C || ret == TOUCHE_CTRL_D) + exit(1); if (ft_lecture_2(ret, &str, &i)) continue ; else if (ret == FLECHE_BAS || ret == FLECHE_HAUT) From 704896b7571812289dad3dce2efa410fa92d25a1 Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Sun, 22 Jan 2017 11:16:59 +0100 Subject: [PATCH 07/67] ajout rapide du ctrl C/ctrl D pour quitter rapidement le shell --- 42sh/obj/ast_free.o | Bin 3596 -> 0 bytes 42sh/obj/builtin_bg.o | Bin 5336 -> 0 bytes 42sh/obj/builtin_cd.o | Bin 4988 -> 0 bytes 42sh/obj/builtin_echo.o | Bin 2676 -> 0 bytes 42sh/obj/builtin_env.o | Bin 2348 -> 0 bytes 42sh/obj/builtin_exit.o | Bin 4544 -> 0 bytes 42sh/obj/builtin_fg.o | Bin 5276 -> 0 bytes 42sh/obj/builtin_jobs.o | Bin 4920 -> 0 bytes 42sh/obj/builtin_setenv.o | Bin 3296 -> 0 bytes 42sh/obj/builtin_unsetenv.o | Bin 2808 -> 0 bytes 42sh/obj/command_getoutput.o | Bin 6472 -> 0 bytes 42sh/obj/copy_cut_paste.o | Bin 5184 -> 0 bytes 42sh/obj/data_exit.o | Bin 5160 -> 0 bytes 42sh/obj/data_init.o | Bin 5852 -> 0 bytes 42sh/obj/data_singleton.o | Bin 5356 -> 0 bytes 42sh/obj/do_job_notification.o | Bin 4948 -> 0 bytes 42sh/obj/exec_ampersand.o | Bin 3116 -> 0 bytes 42sh/obj/exec_and_if.o | Bin 6660 -> 0 bytes 42sh/obj/exec_command.o | Bin 5844 -> 0 bytes 42sh/obj/exec_dgreat.o | Bin 3860 -> 0 bytes 42sh/obj/exec_great.o | Bin 3856 -> 0 bytes 42sh/obj/exec_less.o | Bin 3848 -> 0 bytes 42sh/obj/exec_or_if.o | Bin 6652 -> 0 bytes 42sh/obj/exec_pipe.o | Bin 6416 -> 0 bytes 42sh/obj/exec_semi.o | Bin 2912 -> 0 bytes 42sh/obj/ft_exec.o | Bin 4688 -> 0 bytes 42sh/obj/ft_findexec.o | Bin 4740 -> 0 bytes 42sh/obj/ft_parse.o | Bin 5264 -> 0 bytes 42sh/obj/ft_post_tokenize.o | Bin 3404 -> 0 bytes 42sh/obj/ft_putast.o | Bin 3896 -> 0 bytes 42sh/obj/ft_putast2.o | Bin 4376 -> 0 bytes 42sh/obj/ft_split_whitespaces.o | Bin 4200 -> 0 bytes 42sh/obj/ft_tokenize.o | Bin 4916 -> 0 bytes 42sh/obj/get_lexer_state.o | Bin 3088 -> 0 bytes 42sh/obj/get_touch.o | Bin 5292 -> 0 bytes 42sh/obj/get_touch_toolz.o | Bin 4652 -> 0 bytes 42sh/obj/get_touch_toolz_2.o | Bin 5264 -> 0 bytes 42sh/obj/is_builtin.o | Bin 4492 -> 0 bytes 42sh/obj/job_addprocess.o | Bin 5048 -> 0 bytes 42sh/obj/job_cmp_id.o | Bin 3760 -> 0 bytes 42sh/obj/job_format.o | Bin 4020 -> 0 bytes 42sh/obj/job_format_head.o | Bin 4172 -> 0 bytes 42sh/obj/job_free.o | Bin 3924 -> 0 bytes 42sh/obj/job_getprocess.o | Bin 4784 -> 0 bytes 42sh/obj/job_getrank.o | Bin 4388 -> 0 bytes 42sh/obj/job_is_completed.o | Bin 5280 -> 0 bytes 42sh/obj/job_is_stopped.o | Bin 4796 -> 0 bytes 42sh/obj/job_kill_all.o | Bin 4180 -> 0 bytes 42sh/obj/job_notify_change.o | Bin 4456 -> 0 bytes 42sh/obj/job_notify_new.o | Bin 4568 -> 0 bytes 42sh/obj/job_remove.o | Bin 4512 -> 0 bytes 42sh/obj/job_update_id.o | Bin 3956 -> 0 bytes 42sh/obj/job_update_status.o | Bin 2732 -> 0 bytes 42sh/obj/job_wait.o | Bin 3712 -> 0 bytes 42sh/obj/launch_process.o | Bin 6328 -> 0 bytes 42sh/obj/lexer_backslash.o | Bin 3540 -> 0 bytes 42sh/obj/lexer_default.o | Bin 4000 -> 0 bytes 42sh/obj/lexer_delim.o | Bin 3600 -> 0 bytes 42sh/obj/lexer_dquote.o | Bin 3724 -> 0 bytes 42sh/obj/lexer_great.o | Bin 3872 -> 0 bytes 42sh/obj/lexer_greatand.o | Bin 3776 -> 0 bytes 42sh/obj/lexer_less.o | Bin 3864 -> 0 bytes 42sh/obj/lexer_lessand.o | Bin 3776 -> 0 bytes 42sh/obj/lexer_number.o | Bin 4280 -> 0 bytes 42sh/obj/lexer_quote.o | Bin 3608 -> 0 bytes 42sh/obj/lexer_sep.o | Bin 4008 -> 0 bytes 42sh/obj/lexer_special.o | Bin 3920 -> 0 bytes 42sh/obj/lexer_var.o | Bin 3948 -> 0 bytes 42sh/obj/lexer_word.o | Bin 3916 -> 0 bytes 42sh/obj/line_return_toolz.o | Bin 5768 -> 0 bytes 42sh/obj/list_toolz.o | Bin 4000 -> 0 bytes 42sh/obj/main.o | Bin 5176 -> 0 bytes 42sh/obj/mark_job_as_running.o | Bin 4432 -> 0 bytes 42sh/obj/move_to_line.o | Bin 5008 -> 0 bytes 42sh/obj/parse_dgreat.o | Bin 4616 -> 0 bytes 42sh/obj/parse_dless.o | Bin 4540 -> 0 bytes 42sh/obj/parse_great.o | Bin 4616 -> 0 bytes 42sh/obj/parse_greatand.o | Bin 4508 -> 0 bytes 42sh/obj/parse_less.o | Bin 4604 -> 0 bytes 42sh/obj/parse_lessand.o | Bin 4508 -> 0 bytes 42sh/obj/parse_separator.o | Bin 4300 -> 0 bytes 42sh/obj/parse_subshell.o | Bin 4644 -> 0 bytes 42sh/obj/parse_word.o | Bin 4296 -> 0 bytes 42sh/obj/print_and_del.o | Bin 4448 -> 0 bytes 42sh/obj/process_cmp_pid.o | Bin 3152 -> 0 bytes 42sh/obj/process_format.o | Bin 5316 -> 0 bytes 42sh/obj/process_free.o | Bin 3528 -> 0 bytes 42sh/obj/process_mark_status.o | Bin 4280 -> 0 bytes 42sh/obj/process_redirect.o | Bin 3340 -> 0 bytes 42sh/obj/process_reset.o | Bin 5116 -> 0 bytes 42sh/obj/process_setexec.o | Bin 4128 -> 0 bytes 42sh/obj/process_setgroup.o | Bin 4956 -> 0 bytes 42sh/obj/prompt.o | Bin 4764 -> 0 bytes 42sh/obj/put_job_in_background.o | Bin 4044 -> 0 bytes 42sh/obj/put_job_in_foreground.o | Bin 5456 -> 0 bytes 42sh/obj/quotes_gest.o | Bin 4408 -> 0 bytes 42sh/obj/reader.o | Bin 5096 -> 0 bytes 42sh/obj/readline.o | Bin 5488 -> 0 bytes 42sh/obj/reduce_bquotes.o | Bin 4400 -> 0 bytes 42sh/obj/reduce_parens.o | Bin 3980 -> 0 bytes 42sh/obj/set_exitstatus.o | Bin 2876 -> 0 bytes 42sh/obj/shell_exit.o | Bin 2620 -> 0 bytes 42sh/obj/shell_get_avdata.o | Bin 5464 -> 0 bytes 42sh/obj/shell_get_opts.o | Bin 3632 -> 0 bytes 42sh/obj/shell_init.o | Bin 3932 -> 0 bytes 42sh/obj/sigchld_handler.o | Bin 5180 -> 0 bytes 42sh/obj/sigint_handler.o | Bin 2608 -> 0 bytes 42sh/obj/sigtstp_handler.o | Bin 4128 -> 0 bytes 42sh/obj/sigttin_handler.o | Bin 2552 -> 0 bytes 42sh/obj/sigttou_handler.o | Bin 2552 -> 0 bytes 42sh/obj/token_append.o | Bin 2916 -> 0 bytes 42sh/obj/token_cmp_type.o | Bin 2676 -> 0 bytes 42sh/obj/token_expand_var.o | Bin 3048 -> 0 bytes 42sh/obj/token_free.o | Bin 3028 -> 0 bytes 42sh/obj/token_init.o | Bin 2760 -> 0 bytes 42sh/obj/token_print.o | Bin 3536 -> 0 bytes 42sh/obj/tool_line.o | Bin 4668 -> 0 bytes 42sh/obj/tool_line_2.o | Bin 2916 -> 0 bytes 42sh/obj/toolz.o | Bin 4676 -> 0 bytes 42sh/obj/toolz2.o | Bin 3420 -> 0 bytes 42sh/obj/toolz_parseur.o | Bin 6296 -> 0 bytes 42sh/obj/toolz_termcaps.o | Bin 5464 -> 0 bytes 122 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 42sh/obj/ast_free.o delete mode 100644 42sh/obj/builtin_bg.o delete mode 100644 42sh/obj/builtin_cd.o delete mode 100644 42sh/obj/builtin_echo.o delete mode 100644 42sh/obj/builtin_env.o delete mode 100644 42sh/obj/builtin_exit.o delete mode 100644 42sh/obj/builtin_fg.o delete mode 100644 42sh/obj/builtin_jobs.o delete mode 100644 42sh/obj/builtin_setenv.o delete mode 100644 42sh/obj/builtin_unsetenv.o delete mode 100644 42sh/obj/command_getoutput.o delete mode 100644 42sh/obj/copy_cut_paste.o delete mode 100644 42sh/obj/data_exit.o delete mode 100644 42sh/obj/data_init.o delete mode 100644 42sh/obj/data_singleton.o delete mode 100644 42sh/obj/do_job_notification.o delete mode 100644 42sh/obj/exec_ampersand.o delete mode 100644 42sh/obj/exec_and_if.o delete mode 100644 42sh/obj/exec_command.o delete mode 100644 42sh/obj/exec_dgreat.o delete mode 100644 42sh/obj/exec_great.o delete mode 100644 42sh/obj/exec_less.o delete mode 100644 42sh/obj/exec_or_if.o delete mode 100644 42sh/obj/exec_pipe.o delete mode 100644 42sh/obj/exec_semi.o delete mode 100644 42sh/obj/ft_exec.o delete mode 100644 42sh/obj/ft_findexec.o delete mode 100644 42sh/obj/ft_parse.o delete mode 100644 42sh/obj/ft_post_tokenize.o delete mode 100644 42sh/obj/ft_putast.o delete mode 100644 42sh/obj/ft_putast2.o delete mode 100644 42sh/obj/ft_split_whitespaces.o delete mode 100644 42sh/obj/ft_tokenize.o delete mode 100644 42sh/obj/get_lexer_state.o delete mode 100644 42sh/obj/get_touch.o delete mode 100644 42sh/obj/get_touch_toolz.o delete mode 100644 42sh/obj/get_touch_toolz_2.o delete mode 100644 42sh/obj/is_builtin.o delete mode 100644 42sh/obj/job_addprocess.o delete mode 100644 42sh/obj/job_cmp_id.o delete mode 100644 42sh/obj/job_format.o delete mode 100644 42sh/obj/job_format_head.o delete mode 100644 42sh/obj/job_free.o delete mode 100644 42sh/obj/job_getprocess.o delete mode 100644 42sh/obj/job_getrank.o delete mode 100644 42sh/obj/job_is_completed.o delete mode 100644 42sh/obj/job_is_stopped.o delete mode 100644 42sh/obj/job_kill_all.o delete mode 100644 42sh/obj/job_notify_change.o delete mode 100644 42sh/obj/job_notify_new.o delete mode 100644 42sh/obj/job_remove.o delete mode 100644 42sh/obj/job_update_id.o delete mode 100644 42sh/obj/job_update_status.o delete mode 100644 42sh/obj/job_wait.o delete mode 100644 42sh/obj/launch_process.o delete mode 100644 42sh/obj/lexer_backslash.o delete mode 100644 42sh/obj/lexer_default.o delete mode 100644 42sh/obj/lexer_delim.o delete mode 100644 42sh/obj/lexer_dquote.o delete mode 100644 42sh/obj/lexer_great.o delete mode 100644 42sh/obj/lexer_greatand.o delete mode 100644 42sh/obj/lexer_less.o delete mode 100644 42sh/obj/lexer_lessand.o delete mode 100644 42sh/obj/lexer_number.o delete mode 100644 42sh/obj/lexer_quote.o delete mode 100644 42sh/obj/lexer_sep.o delete mode 100644 42sh/obj/lexer_special.o delete mode 100644 42sh/obj/lexer_var.o delete mode 100644 42sh/obj/lexer_word.o delete mode 100644 42sh/obj/line_return_toolz.o delete mode 100644 42sh/obj/list_toolz.o delete mode 100644 42sh/obj/main.o delete mode 100644 42sh/obj/mark_job_as_running.o delete mode 100644 42sh/obj/move_to_line.o delete mode 100644 42sh/obj/parse_dgreat.o delete mode 100644 42sh/obj/parse_dless.o delete mode 100644 42sh/obj/parse_great.o delete mode 100644 42sh/obj/parse_greatand.o delete mode 100644 42sh/obj/parse_less.o delete mode 100644 42sh/obj/parse_lessand.o delete mode 100644 42sh/obj/parse_separator.o delete mode 100644 42sh/obj/parse_subshell.o delete mode 100644 42sh/obj/parse_word.o delete mode 100644 42sh/obj/print_and_del.o delete mode 100644 42sh/obj/process_cmp_pid.o delete mode 100644 42sh/obj/process_format.o delete mode 100644 42sh/obj/process_free.o delete mode 100644 42sh/obj/process_mark_status.o delete mode 100644 42sh/obj/process_redirect.o delete mode 100644 42sh/obj/process_reset.o delete mode 100644 42sh/obj/process_setexec.o delete mode 100644 42sh/obj/process_setgroup.o delete mode 100644 42sh/obj/prompt.o delete mode 100644 42sh/obj/put_job_in_background.o delete mode 100644 42sh/obj/put_job_in_foreground.o delete mode 100644 42sh/obj/quotes_gest.o delete mode 100644 42sh/obj/reader.o delete mode 100644 42sh/obj/readline.o delete mode 100644 42sh/obj/reduce_bquotes.o delete mode 100644 42sh/obj/reduce_parens.o delete mode 100644 42sh/obj/set_exitstatus.o delete mode 100644 42sh/obj/shell_exit.o delete mode 100644 42sh/obj/shell_get_avdata.o delete mode 100644 42sh/obj/shell_get_opts.o delete mode 100644 42sh/obj/shell_init.o delete mode 100644 42sh/obj/sigchld_handler.o delete mode 100644 42sh/obj/sigint_handler.o delete mode 100644 42sh/obj/sigtstp_handler.o delete mode 100644 42sh/obj/sigttin_handler.o delete mode 100644 42sh/obj/sigttou_handler.o delete mode 100644 42sh/obj/token_append.o delete mode 100644 42sh/obj/token_cmp_type.o delete mode 100644 42sh/obj/token_expand_var.o delete mode 100644 42sh/obj/token_free.o delete mode 100644 42sh/obj/token_init.o delete mode 100644 42sh/obj/token_print.o delete mode 100644 42sh/obj/tool_line.o delete mode 100644 42sh/obj/tool_line_2.o delete mode 100644 42sh/obj/toolz.o delete mode 100644 42sh/obj/toolz2.o delete mode 100644 42sh/obj/toolz_parseur.o delete mode 100644 42sh/obj/toolz_termcaps.o diff --git a/42sh/obj/ast_free.o b/42sh/obj/ast_free.o deleted file mode 100644 index d3bbdd4d4d0bc796d6badaeaf1396e9741445153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3596 zcmb7HYm8Gx6rS7m-geui-DP>nv#>l9XqTrOF~|ncQqUM)iehd`dv~|E+^)SXECkK! zfzcP`s4%fpjBa~^Z% zn=^OL%yhrGdhU8q2+c3hfCJ!89Zehzx(9rj&RfuF3?}X47?5YvO^(qCGR>0JRdRLL zUbF1+HT|}y9Z(AKIBnMuA$;@&L^p*;rkS%gmfK9HRFp2$T>4ncst3Jp;o(f?qCky? zD=S(F>)9S&Mij%B?=#*RFVorC zVVQPjGt;|iy??6w?pJATzhizbUSZ=Vxxv->O;sOhvcmi1F7af3otbPkUb+hJ=exu! zZR;F#y|%);qCVjDyTrqxlaST%E}x{!xRvfk!%Wi~RUq>KG6Svz3Q?6y#@!=el|!8N<)^D7cciUh;qiR|echUz^%< zI@NPFp4#*5<iIDz3S=E7VKuGfO;A zPqP-=Ikw;O#db#ftx#;&up8E~P^t&K=Y$IZzex2Qk3aQg3lCy^<;ryr$G2ETCttAR z&55Q&Q+#^11GmSl<|Y`4d2cJghum5b-?lCTRoOO#AN zNzJ*TvEI=kg&Zau4w2Dv$}*#+Ric15;5QxvT^ z;qdt(YxUZcXoK#L))`}>_1aKuzb^sjP;GJ8AH6TKFfy(70hX{Xe9E!B0XOr!0jAE^ z(ikC@H@IW)giaRz=%PpjWfqFTFGNj)=8r}qgcKq?1l`LUXf&fvBO@#N#G6cl+bBY; zMo}wfQh*lA)@=?b{YJ5R4sG3PbZIe7^ZWL9ZIC)2a9EugX_e6ieEZv9r&a$dTA>@= zXl<~6ys;O8F}@AKT@b-gh>^y7Xx;(`8fp$fj0(&RAAvkU*L+{22y?EVXf5zHhJ^7Q z)T1;<20w?;L&hnHlk^Oa`~XoGm>K>JawL`+NDyHRv^QuaX~m(vOsff&FeX7ILSR_U zSvh)2_#)(5MoeS;RnMC4YYc>WlsB+%2D1rXLZ==u+ThXY9TBO82n8m{Ksn7sf{cP! zLQdkOq5Uv}4QLE4#2_55)h#J19;*vU+3t1q^*aYYt7`(nrZYX^Tk zKH<>XXAV7C-#dErTzlL{3-zy#{yz15Q}^!3fxo{U^Zu!ev+HWNe0=VD__-(Eefm%~ zesIUH7=Iq@!$%qpo(^6JegvEWm%uN9S?Y(u$H3o%{{VA$@F(|f1SE)6NEZu}mp6!; zM;G^Vr1Z$zq>II>2C~ZNV%exDRwP|4TNTA#x>$$G#qy`C8?0QHl#9iolHhq^6r)uX zPX=8)EDc}~i=Qr@2Q~1la@@1b+y6JJ~hu+L^fR^R9~MOFGNeU?nU2{A?i66e<8*vUO=m9*P=tvYMcYC zd2fkGmYrfUZ)ZEoIV+i;+q__)$Jyp2-7<^CZ_et zt$H%8FHGx;TJ_~=J(AX=M!P-?ofFc!Kdo!VNuPlwVv3z$%r>h9685ZnU1=nhoT}t_ sB_SARyrLxkFN+aK5l>u&DfLQQn5}qVOU0bk;i}O2J_|mC@}(ByKl|baI{*Lx diff --git a/42sh/obj/builtin_bg.o b/42sh/obj/builtin_bg.o deleted file mode 100644 index 92476142285fc803d6888b784457487a7af8ce73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5336 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 baAm*KCv(9yYfV?)JG1Lf$`SlsbD7(J?r2iV diff --git a/42sh/obj/builtin_env.o b/42sh/obj/builtin_env.o deleted file mode 100644 index 4dce0ec7f0777c078cf2fa62624b6d108305f5c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2348 zcma)7&1(};5TCcnrXNX@XcZJiqSRVJlT->8KU=JlN)_#g9|u`B+q6kZHzC=yRV;c? zF}HdUR6Ka_kMOAY2Y41dDtHk*7QgDu+j;3`TWtpB&6~-*-~Q&kc`qM+eEZV|AOe5` zY7n)o35?Q8>#SdCmM92>_aB-oPuCEE)FWJ@F>ve1FIn z_y?Yu%~o;?#J8EB!kb{2R`Ck2^*&^vQ_N}Smi%12Qg%)ru%F*M#_M6c zt1aS5er410<9+er)mp@JZkIQ$w}W?khWR~j5f3k&g!J<(F`lY-ZA(0>G>>&UM$KL< z*wcnFHo{b-dB%7N4)$T+(bMn?EpLUdUvhb4rh=#IE-;Md_uvg@4>4Yb@z{khKwizs zs`sE+uqC3u-c`mM=S7bZk0jW!IX~K$I3KO-;0)hM;>qm)hkpl*X#|q zG@r`Uzx2P&)R$K?_1gDLed_D2_rr7(5@Tc6E+rOnm1?16CkB)0WIEAj74iBW9ZaK> z95|NjKMd81mCDu%MWw#!Iv?sbvY{$a1BnG#Oq0T_`MEGR*P-L|GYy^*62aQ9c-MF(o z5Qv@$hjEAW7*HhCD-FEFop6t%U2anZj_}^Bzuy4r1#h&C3W#erFI^-oKR^?z;}EoICiJIdUf`fp6d*G(oKc5J7K@YO#@v^6 zdf?*$qAj_gO}Z&fYboSkyN2S$-zta7Csozcr4kUr%cbKVB()#;0O|XW!&c(y-65P$ zpi-?Ar~3JlQ?(SLB02OwCT;i?VvE`9!ZZk`NfbSCXB@;*T*M=7?JJl?-`R`W_nV;B z)>Ix0N8^vQb6xy51(z{LgEWpp{ET+tDCirg!qd{=ZCUJTNkcu2c=|D+Yn|;qnuhBE gj=KP%6x&|5``Dr(gwScWgcg&K^b3mNy&wR80b0lfiU0rr diff --git a/42sh/obj/builtin_exit.o b/42sh/obj/builtin_exit.o deleted file mode 100644 index f08787f4e736556d36d7be239e3d61bc45835cfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4544 zcmb7Idu$v>8K1rL-rINQM?#9za8;V%K>bMSP^%+#%ZEfNavY;8pgzE+hxMA!YIW%(J zP*HIZBWR&O0Oz-^Y=&XFUfp&kmC-Po;|t>2r^a7Z-y2}8#HP(Kiq=G9(g3J*L3~F> z?z=m17nhavT@^@#t&eReG%&U%lW=TG;4Tyf<5N^1Ue^Z$-Z<-c-Sq zA-)q{kQeWcSE$u0mf;kp7~X%y_h%K~xC*G}UE}ldsuM@$2Dip{m&&)B6`s3BJQ-iD zV7B5-w%~nfjdDODtq z>VZri)LX@NBx39L_NsaqQNfG@k1h2M@o`;HIzlAcUJ+{__0j#Xs@pyN)&Dn&QvK`wkTa}6!VU_0&95{S1H*M8jyXxeI`v?06 zbG>E-M^oSMAe8>09sS$43Ab(zOf>9@XFCBmtQp(uH^so1i`fH{4_1#B3j;$t+_G@0 zo?Wu7qOcuLsADs7=~MQL~FH=LITU zZ{2|bvr(_(#|(J-lf0>F5yymQ)u-&LD@?;KRSJ{BGs!r?s7ixrNDK5zpqs)p;jtW! zTn7fuV}eN7D=eDqeI(y-RDQkIp>0Wb>EU!X(v$AcI+0DGei%Eoy@_!8_T-0??@#UT zx&wz(cu0iP`@3igp@iCW5mFxeyKp59HK~!C;k+lAL^VY-f)25*lEv49`M^RXy0maQ znIt3%uYDPR82BmHbNjLbZin=;gHDIcG7`qJn#LdLxC!XD0j!h1pG@w7D2k{Y77t=z zt%#Jkg$(T@K9l`3O7=aW1P1LepEz1Z`!QMg;5sitLqj?uQzV(no$ z<-D(zKfSE!p~d1UY8}LYHh!8~*K59Z?>7;l);+*DBfQr1w&?RovTGf+3A9jH4wHw!hF{yfxAQ0;&^oMsGC?S#5lWEko}P%Nrt zN8r|R2wk_x90cRH#$sAzhFt4BCEetVCn?6!&k*7K2x9|DM z^v*YzW``l?K};$790ak+d;{;7+I3v|u&st0{PtRWV!*&{hcELRuXV;3#>28rUVzvD z*cdNrOa3{*+qNCVD|GOY$C8gd9ed^MH-7z(7oY3i_u{9{ef@W4ch499exb+AojKus z*1oY3+L9fc=<505AGiMPXD4=EyYhJX#>h)|daotUoH+9A$+s^6hndU7;o5BkFi;^bRqJn4L(8NMgUd(iwSc1yLI;DxFtKeBCG_iV= z7fXgFrlx{tozukSQ(i0?npjE7#1Ls>9xD@TjHa{bl<9w^O>{-dVwP&^SR_tU3zA8D z=suy%WVLK68smw;pf`f9UST>dEd|G_7)fVOh3;xs&tSQ8A;AZcrd`8Puc1-FzZK5} z-2G;y!K-qh;noL~Hela6{Gn!xd(0g${I_?LC+wo>@qo7mexu@g{blBqKL;`jKwbAx z+612x2HyttYNf>!C1S`6-gi`YI1~)X2z-C!Iq>}!&S-if5!B0s UwiJpr{HKIhYM#=+{B{)o0amcBIsgCw diff --git a/42sh/obj/builtin_fg.o b/42sh/obj/builtin_fg.o deleted file mode 100644 index 9da2139c8804a78f406ed21e1b0527b34b9027e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5276 zcmb7IdvFuS8Q+t9r?X^PGPWs{M+6QOT5J;njmxX1LFqvVP16`i8+wt?k}Qx|frtwUe0s5FE(=?@-K4>Q)A)yWJbO>!SrN7_Z z%E$_7=#KZk{eAoGZ@=C9_Pdpz|My@26A(i23p`L8P{&j}VyGxnQ4Qh`D33OI9cQFX z6@yc-M&&rubdoz92_Q`K&iJM~ui$EHADuuUAAQ+7NeKKA?4_s{)3l0CA!DbdqMonH z(=Yq`=}b-W)wJ0(&4FZpDQ$w(?J>>O8&}qrVgVtMa`hX|9zoW2bT)QqT7kHy`D1(u;D?!_ijny#QU+ zze2)JCyVdr`*z)aZ4Y~VHP5T^4J9ns#d`m$eDZaO59dqd^Vy_nCx+ECkc z(2fuF&*RJWZ*gC6y?-xBzUw95=r!`W{^b)^J>R7|zSGyp=j_a1b-mMd&$0XEuD^GU zd^p4|Wxan-$oQzPccgmo<@zD&-mjG#!a5zZWN**d1E#rd^%YYgPD;L*R2~K&kIX{E zpM2+ae91vGRlwWz2Gr++HzZ%L$L&cgtfZPFRN#lt-x z;2-zJ-I9>!2%VpT+6#M9U4T3S$@cB2wS`l#$|clxeQ3MSD8FWmoX;B-H$fW}VU**S zjPmdqqg*;|l>1&dD&8QAQR$sxjGR%7kxL?S-+XAErH{tJCCf0kaj^Xs2x)sFe*Q8_ zIezrqMc7ms4h~;1)YBYPj-QmI@zci04qZg{w^LsMtnAR;zH#^K-6Gy9&vH;Z%BQY))}kGG`43g`JCS$@O^ijBTdUU6$zXD`I?idV6lmK%#r`qT-;q(l0W$ zBk~DnP*{VBf=Fx=NqbvffXot(>58H!Qkg>0)j*%k6dh6Y1Q!g?g_LG7b8k}cVLCi- zi2@RVs|3#G>~yST7c*%)IS}L2Ht!F`!DKdT=F^!0ktpq*DN1+Jfy=mM4Cn7vFuXUa!R8@tt;cg%$qKr}a zeGlBT)x{_91lm+`5t9?p?K{R%gYN-@89-@y9Z#U%?_zpoQXVrj_#Zg7=PY4s51#1E z^W-aSfA%^@_dG?|K8BG(P4m&9{SqSZBHMX9G)4OZ6@OuyT8$}5e+Q3!sEyMa%MhE? zxxqt_oJF1I>kz@WfF329@9WTm?P!fbqki1i(G-jUJxi7u3Es5*`KGP1H`pvp`&@Z!#%D`u%7>16{*R{XsO3qv^j}zwHqpER!a|>}E9xMn z(!$TQ9&kq-V6#!tN+jNk$0JZQezfrkhK0GO z?;>pMttB1;H?kqSs6?q9OI$ye-{$|vhW847p4&)I;$Js53`V0( z+eS;iIniHRZPQMD<;0UupPBpiGrO0(yKwJ;(1YtzGqhiQ#_8*Co%YRtyfDp*J+%80 zco|_cQExz9jk*za3+gZ`V}ft)C#a`Te~T#)JL`ix^IsV+^BdvI7_s8Yo+ zrizg-2lACr#atj&Ok`9sw@D|MQmA6$kycEKR52Gy`u`QG0fZsL8P;Br`JNOLN;P(s zd+!j+j;IoC3h0at&M_VJ(mzRa`EvDpAyzd2|=R5%B! zQg>y-J;=(Ic$Mfb6${-Gb!Tqu`Q$`Rac8mH^nQO$u!LUJ+^cZ!!YtXM(>2Ib=8Zrb zr%hgl02&bSxqee#8S5-@9!>Z9;~B~u4gfmb`8|6aSnzwrA5qjm&>!^8R#Z*XyHvlX z?=Pvrv+8v1h#E+#KJ8XDaF_ZK?Nv3hPYrBRV|b=i^<{OkwgN_L)!=efKZ3!xYMazX zZBUIu7g&xFw}Nb~I#v5VrFNGZI;$O0do+C(@N!LmO!d8{D!=v3!X69pRqikj$Ywm? z-HOjb!tKsp54SInc(%mM2go^{Z$cvfbn^R-ci8zu$NYjCTXN@TKvS5-5e zblj_^nR3j8lgkKmC{ftzb|s2tp=8_q-(SOyPe3-ptleo|kr%{{jHLS0w-d diff --git a/42sh/obj/builtin_jobs.o b/42sh/obj/builtin_jobs.o deleted file mode 100644 index 1260e07f2bf29b914f14d323653398a628896728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4920 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 Ir_)&XKh(C^ZU6uP diff --git a/42sh/obj/builtin_unsetenv.o b/42sh/obj/builtin_unsetenv.o deleted file mode 100644 index c95cd843017e0b98a66f7bcdc9953a9d4db6f49c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcma)8O>7%g5T0G6fhPdJ#gmdfW(2Sh(o0ciAGeakPvX_p%RxIg49SL<$@Fe!p!Wx7wk<-Jkq>* zGjHDaX6F6u{`BYX|M&qUA7F#rhg@aYB$1KsMcyXk9q3a&wn}r5gpQa%93>-?rrG9_ z?e<;$RBrmzf4b;h<{iQ#=;3|D#p`IhJVgEGb;AkK8=t@vW!xK2uU5;ZX6f@3 z-mZM#7^{JZ-IEEtaf;rcI9XP#m$!@siw_47&HWjOUN< zInTg#&@{8C&D3yrh2H%hT;h169B-84aTP)UMbRfI&R@A?If&kTw>aKce9|)F5!rW$ zkLnU5hY&g-QSkR5pXK-I8M@>@o2p4(QNjV-k~ zb?Xw`qIqgFck_B~gOF7tx1qLcNUHHf~A?+aYdtz%0g>o{^#Z3X$@F^{#CUE7)7 z8eVgtSGJ#xp5IT7tsG7rX*Jdz`zBSXm0MrADm8QKn;*B^?N)BX(Ka?0Q9F25UAdNd z<-0MutjWpA)5ntwX02YTSjmx8CY4D(VwCZP85+r;k{UjgI`}BmYeqWXD3$G!B_tlI zx@nu%Ldt;jR2>o0vx}9vf}S2eR4)Se-tmHxWkXfBi(nM>8t4mvQ>##dIqHBkAUzaG zFkd95+!q;;;#e^`g~qrv+V6`z9eO78aQJBA`7rJf1DTtSCh(yg?o!zx_#)4RLb%6D z6v)AUz!C5>mc>2J0oo1-!($|nsM>3S^~o0s=Sdr&iKxByE@^SDO*ctPe2*F^3KJh((c6H%ZExvOlOja zu95@_N`{{^x^!-wndSFFM)ISxqo|)mrmQJmst8?SB+8pilrA^@UnG89g`!38PU2ff zKwTsPl+K(0X(=Yf!v4T2deKVvBWM05uy$K)J&Z+S@5qPuiQk7W(MN_Su$830BKxqF zXbohky5zSg=2Em??^l8-I)i8%$Q-VobTn`Wq~)Ot8=d^JQ5a z4f|0`Ot5&CJutxnSJ>b*3uM`VGRtB(a#xnIEaH5^d@a_eG1<4U>I>Vlg5lv>?<3=~ zL-gl`8#8n_O0*9>DKBtISW#*?aX+CthpS^45;)SSgSP8o&}MA< dB{b%%pcQmm*Xku}wrtuJ3!EVwE0|@(`4<`pf$;zU diff --git a/42sh/obj/command_getoutput.o b/42sh/obj/command_getoutput.o deleted file mode 100644 index 41121df3932b98c65f7a5bbab3c00694be00a91c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6472 zcma)A4RBP|6~1qi_ja@UNOto_1R`q_5l8YPKNNdWbsK4+Eu*cDg|Wr{KnJR}6vd&{Hls`{wjHsKZE?hr7M!AGT9sD%efQlLk`)VY z=G=46ch5QZ|J?W9OCP@TkzWX{LZARug7)etq98oyfMV1?;khp2Rvc6|o{pG;6jpwg z<=D47N&&O18?Rb+<0;*fo@OWTFdq9dbG#6;iAu4Cxc69AqTuAy*^~mx<9Ts7E@dSpH|2X{0!DZL8t9sKAuh4 zg^$NemW^+rw=q@SSx%!O# zbK~W@m&*k%@84r8UaN|?_AKMc{`JQbe0v(0D3BC==Bj7w{*MderY=WeY;OMF|%1dLVw_^7kU4vzg4aqYd8xpb7 zRqw}2dtNmya0eLU>=1{^ei21cdMUPcZ&$1|xY@PYC2cBQ3&4A!EBn~cyl`x& zOZvvv&s~U~#)dZ0AXf6ZsHa{Thz-eB-G(^+((hvHH!(VDT%W5EO~#K6&!Yu;dq4%h z^B9`m4`Ze8p**zYIND=BOJCiv4&zu!qy!fUi(Uo?- zkj`bJUG1Iiozba@3=(ZyS0|MAnbX@ZzEBkMiH?kYyPfaA$?A*aNTqBiS9JP|PJ2Rh zEG-~FM`|FqyeHlJn^0qAsil-gB z4<1>^&N>z?rMczs{KWG(*b;=E$z@Z~Vz!V@W$m6Q<7VunBl77~FQX!MHrKkquK}gY#=M%kRd9E9FEDN$s_lW)!i*(QEY4B7GV8(P* z#2vi7bQc{YXU9rr;wh0#=L?S2pU)-i0>Mlg^IdS6nqiUUJCxIhnSzC#?@Q+jB4MSa zzmp(C=!BJ%K*Ev;^o*w`L?Qu;k#%qv+)5YvZ5wmJ(hcAOr#j=%SBn0)(<>(` zsb(t4QDftzvnVj3m{>VoT0}d)x=ydC4jU7zBU&wvqOTobtu`-MQGI!6cIX20nz~OT z4_4^Hr=V-<@TM_yjH=fNqDHHzsJ{DVs=EfZP_4JnGHQ1Wtbm|3NY{#u2M6+08?Q&BsNFWOlIr+ByS|$T zR#9!T*d_f%6h@AP=BGj65DK3#)`01iRqF`(^7s02YJ`RK6gwS@d zFZr9zCzQ8;GGqOWm3R~LM>(L^pj|`_-3^#WpKg5b@a&6v%7@VxnhCy&4iVvZO&IxG<)fB2V1K^zJ(3q_hl3OW^x;x+! z;#Lwmy~C4$#mtZvX@&4E5YyB!h{!BY9S1cKnd_<5P{Wa{JhcXDQ-q8EU;2ijMk6-V zNtiG*0<|l$(o<`p&J(rVsMCO%e$8J6GkI3(MQsCQo;5R|88?FmG-;Y8RHX%Hp!zG2 zgUz9hV4cQ==ELA@+qj7H{wO55qSNFWLfZxxqm47Y6B^gVz=mxypMu6|HLzhPnY%p= z8#Ze0^|Xt9Ev+M~XH56COcnZ01Pnfd;)jeEtz!_a{`UatU-t^3AAs1vO{l*?iG9K( z-!PwtRla1A^Ocs5iy2b>W7{E_{ccrwyF|zO5-Rt_`_#$N@y}$#-vuoo?+XMIgMJwJ ze9-Z#hy0I+7zR>`QUyLcuN<}peX1(Q0JQaLw`urPrUibb^qS; zPrJG3J3l;WUwESN+bf;>e-QZ7QwOK~W9!n}wua4>PyY1C((sJR-teB)vrc^f(D92) zN8Vk%XzI}yJ|8(eVSL1%^3C`5Pn<9#+q~(O=O_OqxM}q_7AKpJZ_hO+qMKIVvU$bU z#?6O!KDVOv#TRzfFL>d$;qPsJeBTG}d=$LPc_7{VliB*db(rJ_K|ccR0r5D!3HleP z3M*$LHw=p8t5GmC#McH1#}r`F~|btL4%-&KtBdO3wjxJ z2=s4I5EHrv?r2u-zgBQOJiCN=AUTzIc=ib~B{WJz<}X4_XbNJoAjF-mAf`7$%y=pm zM@xt~MOkscgqVDk6|W9L+@#8i*9IZxSOxJ)AjDfj^`1$P5c8sn#q>ysIaE3FI1u9D zSB|`n2=Rtej=T^F@rF{+Mg{TiRIzvq(TW!nw;diP213l!%IXQIgm{%Ih&mx&ehT8P zLWmcQip3m6h`C8wG3gRwB3BS^B|^Nc6vX?V5XY*<$a|9zFIZ*8q< zvSNZH#FVTcCPG3?tqNkAB*fI&3XX@#pAhd|6`ofFA>J9vkvB3SUg8S+e+k5oT{0Fa+)?O|Ur1$^z=ii6H|8r4 z&B*V!_Fle~x~`BhbLu+{3MRWhp2ydsYs4=gSHd@r#Sf8uF5?0t{yO~S2afA5e-ODQ znS$dA>T3lGjNQCMj${+o^r~P*Rp5{w+^$bDUeW!Fbkiv6b=&obu}qIboNhRJbdlaT zM>lut^^V?X%!SD^ic#aUP#xV2v{N;q)#Yjwlet^45J^fcHUz0mH#ZYzQlf{|-*Rr`Rv>$H9qXA7@h;{P@V?7X&}o6DzDl z?+Pm!PiNpS{{&#K;&+Do2g6F_?YM*g!ufA0Lxlr2qf` diff --git a/42sh/obj/copy_cut_paste.o b/42sh/obj/copy_cut_paste.o deleted file mode 100644 index 9d52813aa02108fed745a7403c68dd9e2acad41d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5184 zcmb7Ie{5679lvMip6w*qP6Am6gnAvYF<~ck84Jveq{Y+2A`>c*1qu3aY~vU?w&foo zFtV|@w0Sj5pp9-qZRyaa?T-~z(>ASLH$Y54`Df8IZTvB5sH75++R^ooEo-ZGpYOeU ziT#olcFNuNzCZ4B-|zSC-JSEt_uu)*#hBt`Xiyta{VJLOD$1u(f5=65(Z=6oio0kG ziYj?vGO8^kMA7w9a;#+bO@4P|aQ8fK^#bGw3gMA2Jpfoif(CY+h*flbs93ZZP+i~F zx4Um%;Ff;4=S56H3kk(qTXa2MEEUq(loaZEy?>Tp7RF9b?P$gv^(_2JB!|i=9iT!3 z|Gv@p#MkDmJ}ZGC>8Cd$(?@jsCM`CA#2p)cxRA(l-gvCwwBcWisIquIo-X&1#CiN%GB z{|nFB7x%}D<@1@Oo{f!=dkg&ghxG5XbZFIm{WI}$Lx;oy+x`2N{JvI8yo(QrC;ZFD z;&!|XHoQMQAYSQ6e$jZZNxZAlzkfX-9u5ToY4^{d!vn>N_thmPU(?#wH=Y|ooF%=S zJ)F)abbZIR8e8^?#5*8`w}D5W%pmrk{B&%1$zlCq0jp~cu%8Ehd9YaP+v}af5d(1i z49lqmnfrdzS%GMe_a%vUPr1og>^0b_zd{;BnYX5ZQ%ExeJ=Eq1B{1HaTs%dm;%W*8M zC=j-G6%kg@rB6vdu!vr9+`$0?0V!j5v&;;ZZ)Qi$ltWe_^h?g&6v$hX!UNC%OBC><&vI{6-&ub zoOSLg0;Dr_ICm%!>+F8CILt~Tc@`gz6<9i3Vh2lld~B4+7&W7;kSwu$uE>h%qe;C) z50O{_C!#L-OfH)Wl(WTjDw|9M2!Wm`X?BQZl3Av-C~LfJ-0AhJE4(dAD?)dKAZ%57 z8=cfddCn17{AY-;RTa`xp^*HH^O6)Pyt0Wd~u*-CZ}v z(~dFb6iD|3O$-V%%07;&^+Zs?ij%sZ<8C=qXzj#Ti4#Ag0gbv>t^Gjx)!; zEey`01(&Y~?n%rAZuk|!(dWeYchRVHWUGpLhy)F;DG(|*g=>HwD1%ehD;PUQ^C|0T z>>Td;I$WW1JI*A2NtPkDvjMv3`!Z5_~(g15vvFq65PB$ zWJATe!H6e+$QR4!2eF|mgeu(|R44|*aYEXFyOZ#!kdC$^>3?;5?Y-X}`_czp$0wV< z_ukZsc;M`@1muTNpGAEEl{OINlYF2w)7g(gxg`;$do>9dK08xH>mo(8CS*m6BnQ&| zBN1Urt4|8kB~t-wtH>{dKY z{oBl-^<}a?um5Ss<4erFW7=(l-Po*YC;ecH*=1n2^FOAY^k;$H5SGcoz6nc3`M|pb ztwKJdD)zIMb(V{T&U7}ODJPPh=`Z$dtd|sz6gzeK-d%7k1JKlkhG}QW(-jPD5#}+^ zF7%vR74B|yZ{RL9%JJt^Q@n96SJe{ts&DW%5=FUBJ zjdD+zyC%3pEpy*qVdnfH`-)#v2;leP!+`b2ro~bi%(ukr~Hc z?t#cLf#6@lyixv{F#p19d|i|`hULs;k1&ui$4Tye4q=HjwV7VL$Umi4cspbrVZKsi zV$C4$p5Tv!ITGenFP`U1FV?%Z42W}4z=89GPd+z8(S&Ymn74?i6!nZl#hzlU73=I{ zEO-wq-2i$E)C>9sDE4;nbxALP;{FSs1I0-bdfB+!(Sg^_qHUlbPL z=?zE5=!%yi^&v}?^FoX%LiB1Rv4Ah-^r2)bmCgzgEa~wl28mZA&@DwGnPK|jLb{X` RlI)P4!OK*qM=L^N{{<{iVcGxy diff --git a/42sh/obj/data_exit.o b/42sh/obj/data_exit.o deleted file mode 100644 index ab50d8652b931278bcd64c24070f17cc3713c5e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5160 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 a!H?Q}y{gm>egu~aZlx@2bSl;$p!^qKEO&$e diff --git a/42sh/obj/data_singleton.o b/42sh/obj/data_singleton.o deleted file mode 100644 index 67a435d99dee1047d915e0ab87d39caf3d62b0ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5356 zcmb7IeT-CB6~FJzd-G;?W@l$V_$bT5z$`0R_5)bTN+V@k+Aa-^m2Z=l*V(skcZbf- zjPu@X0f{zJ8@{xyhDH;N*qGSHe`o`SCN!Zoh9J?>7-LaGNQg;e(`Z|5V=?IOci(-p zyCYb<$+_p8-#ho*bHC1g@4fZu`!_5hw1_|jGC=1{R2dM;9iSoVw@E_9zt8lRypq6-tf->iu1w zVJ*aK(*q4$%&-Xk<%WkV?j*-QGrrK@)u8Qd`^y(cOKei_?=>}9!(0TEAH)N`73-mv z`lj(!a>X$h3sdi}y>5Kh8v}pS>YMtT$T>2^Tlovu@w5Hq%H@J<7jqK~@4w=kuj1RO z0{Yiy#uxZ24eyoGkx%L=={5MF?2|t<)I^zJ@)1x&q!v|rtJ@BCf$mcFBLNbJ$*fWnWatv2fKTq z4@yt}%AOU=gjaETCvy2>??}$i*lciVzizQXOcOkqVHlLiU$ER>gm3f zE=OH0dik-UJCfn>i@ZPmiP8vq@!iTqzT^qV&dZ7N9WuCa?2-f=TO!a4q3#IBfkn-y zoO|}h^Gr`(*>y*RtOHL0Fg2D?@@nJDO^R~PAD0t6s%ChUvn57H@jBSFn#Nw67NOTQaFwRlL}DGp=2>|3IRx5b z%E(%~Bon&~42Wk`#N@e8ise!hV(O(ti14+fmJ35b+kPBaW7C)6MvHs}O@~2^&GAV1 zW+aR;AZ7*CE>QCRs0-GoX)CM(g!e((Dm^Q#Dx@3K`t@wg`g-_mwVq8|2cVgVPrFOc z&b59BZ4R|HdNyPI0@{Pr2J~#7^?PV}YG2T^1J%0laey)b=P{D~H=@oQiwjMdg(z-34nh_L>l>K64R0-wUaa&lc13 zkD z)ZjPyMyNJIjU_LHY6@yP`F5x_L7kht40RUUrlDq%pF+KxYBSV7 zz$9U5sYNhr>POWk8oR-+5RYlGYv3_0{Q;RJTSORbTr)SrYCdGWBi;qpXDqWg$K2k= zot%+X(BxV#=Zp+MyND)6H`m|+Xk0C$huixhNStt^SI^G3z7%SG-0a&zZH1ogtgWko z9l2B(m*CL+BdT?<(lgC;qP2Vgpyhg43FBjktvmw;zkFI5lbME;W25%?IM`0J%PN7( zU9yzX?}aA!(=tZ?G&H%_KCfq!*0a#$4#GIo!q^U9wd1bO!8&dk9KwXjGy_wCBqR$l zO+01=<#v2`(`d&kV?6y^r>*^aA6{yAGROA6`9$Zh{G<7fs=g$>ZMe1l z^wqAvc7404{o}*q9noLk>(4&%?knd{k95pwcDr_*dis-tFU2ljIMcS_!dK7#Wd6l; z`|BUM9k1_Sef>(qvHc6-cN`P-HPClJJoTqQ=Rtn}{T*asetG=6K|F+8K%*e8{ZY`5 zK(B&+33>sp2p0I3SvGb#H6br z<~Bl{4ds$)ix88Wvf@=jh-XTL#{)=+CsJ84T@qscR1otlAs#FR@$?bmfmA&*I}&2j zR93uU2=UTURy@6gc-tu}CTv2?;|gMGBE)Q^8uHR2#4A);F^@@TDtg`ngt$MH6;m`J z9)0DD>5~u>wz6V=B*aXspleVG@j_G$c`p*;&8@6>8xUezR%hnwDgOoy0_|8dX?6jUo~*oOvKw;X9A$t4nDNQk0K!^^2NM- zf9)BkclkIFM}52E=0^A(69D`!2_(D< zb_h`Qi2w!W1$0pfjAp(@<7Z3X%S?+577HQ*R}v{&&i#hG`BgGt^Fg*tO|3Jt?IRA8csl`72V Y(^SmD%)tnIB3IxKw>rE>es&7+AMpzZ761SM diff --git a/42sh/obj/do_job_notification.o b/42sh/obj/do_job_notification.o deleted file mode 100644 index 9dd64dd4e02d646cdb91a74c19569a75e3682ca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4948 zcma)AYit}>6}~gOGduRK*BjdnPMpUk&Z7yjoo8#cAvkSPZ9)odh}#5O4eQylcf)#j z*_ln_riRcw6xRenBP1$>RHR4*R354V0z@E%q9{TL1pQHdfGp9d4U`h`BQ-6;eBYfr zX1z&Bu5|9X-?`_0bME8Zz4mY4`}==lLTC|z3KE4}G*G1>C<`DN;#-tg;z7rh@(D3G z1tq1%*|zT<_7#A#?R`7<@B1GPTb&F7g?x^vdlC!*pg?P0NP$MdU&(uguN@`XH4 zsQzg)92sbRE<`*zcc?aEgH-m|_KwH5?|o?2%U5x|qx3#bZf==F8S)j&j`V8e8{&f3 zl?R&YK+wD?Uv_Ay>K@|y&5bYQ`f0=Z{rxI^Q0}S5&Ls(o(k* zL9<~$g83qeC1qoLFR1ey#y8e_J3gm8ih25Wt@Ko(l(X$UJL*SVRD5Y=d=Y$1nMG~E zJ%wgNd~V(zu3~qC0gd;;l;Rr*y2VAsry%c`eAuQA&vUU*l8lY>O{;wPMtA_#MYrM> z@o`a>I*+XvFeR?*dEMGT*(}JJAG;A8yxW#tM3OY zW4sQKnb`SOW|G3@wal^cYohh|YwS7wp#(mQ&TB#Ev>g3&ZbRnumY+cVcrn|PgVQ@E z^~}UCLSh&u@0-{;CH;?0gKs(f5CUfbzUj$+*;UuP`smy)IjUdTGLr*V=Gc^$q4mVA zxiXU(_+8dA6B+9&#;Vu{Qk>bQhTAGDdb@~pLhkBfH$*-1+eYvs?XqU=< zVYuLA{X)6a>xk{VY0`W4Joa$Gwr}%BFE4KLX;CQo;-K&ulkj9+$cf4bt3uB9d8o5hWSbpA4A`_09a$g0 zr9(9zSA}m67qcUxSjNm{MbhCy)${F2wd}YaU5W+I#}}mHTDb60+V%=hyMk5y2Njlt zwUSpDDY>~cnM-^X_@m_{uu#ST847Fh@;Qu3+9R7HzqFPOVzS9Br(mC#@>ts_P4F zp0+aCZbXtPvnx4IYr`4Wdtq$T2AU(u`{MV{FHqScXtrVYiFzAq&WkO$zrjb3l z4D9!Utd$>*$G7pWIgX2ncM(3ppzQ_{TOxb?@;g=Tjc*-*e-7Bqg$I{d| z78n0aJ^$@|_!HfsgueX6(}W3a;PK0}!I6T{9)%#sf~t6omWyUC1kt z*C1~~-h;Ft;51|tgd2ANG6g<#2_EwK&?ww`ns_9XiD^O;vqzb@>ooBgC=)l2CZ1kp zV)oL+gvR~D!h=o|cV3xz$Y|oh<0}b;*-sO%1I5L3q^T2?@?s{_#1p2xn4L5+sT4g= zEKN)W<;4V~iE~vZCL>ME3PsN=i6$OdW#ZL96R#UJkQWC{yib&gxj++FSp~sOqsc*~ zy#C*LjNz>D%wj}XIB%4o4vo+}rYzdidxds5rKJ)v>r3!r#EaN*okTM;YP=BJlc|&X zgDpWqVQ=88i@%UTdq3HNTH`k$TEk-puM4MG^ zgA!@g472$WL;sG^e85;_`bKQnXf{7$q|Duhwbjtkj9JT#B%ra?hyZr#tJ{q(;8^cV zhGpiB`88t!V6@k0H4hkVK{JA8*8%*(>^2g;#`0&4)x*Zx-NqKcXXlPmW8$XOAqO|@ z##bYi-9~eyZ9ke@braixaIZkHUp?ocG3lPO&@pHxChebv#`JnB(3oJ)Cjx!fN1?HJ zJ=+xi05te|c->mi_XgPPQ+k!sOO%G9zsYNddNXt@15#xLbR87C8ZggheZSv;Pd4Ce z10HO^D&o^SG8p(^m=^|N@BmPU%MUoHXP_+*!Z yauxhH$sZ0ltL|v|kQ=n+<9^J>!xI152uuYJM|BjBd>>Cs83ZhzU#?Vuh4?Qv3kwkd diff --git a/42sh/obj/exec_ampersand.o b/42sh/obj/exec_ampersand.o deleted file mode 100644 index dad02cc2e4400dd61e9a0aaa9fa2820c3abbd65f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3116 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 HP=xp|snZLt diff --git a/42sh/obj/exec_command.o b/42sh/obj/exec_command.o deleted file mode 100644 index 176695299a195d3ac3e3f03f15ed945a814c19a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5844 zcma)Adu&_P89#P%AGQ~ z7Sys%>8eH<6AyJv+8?WUZ9{At8)!^}4XtRQLkuPm12Ij}3L*#?5Ai4AA>_Tdk-TT6L|Ec=7UUh5uEBojBD-PWt7r45A&1yY6mA`w> z(x2>KDV47Fx30?Hn#1@&`Foo{o7FQ4>TC>-<#CHPqV7^ zO&3QoPS36scIOHi+upM2w5bpy%3nf(C*Y4=-H-jJ*1XD}Gh%1USY5wDbv!tv{Pin; zt za_p2CA9%Upz@^fH?)%N;*i<+v>v0ZOeTr<2cwZO%j%#srq z_-tT0IY|k~!1QE4XIF~J$^I2PrM&Ni^t+N_dFO=@JtGid7C){$n$JyifnT@?Wnkrf`tyNfquQax)| zyCZ^TfrZEwJdtue;n_o8*>Qxcc+PW1MY>q$HdRXjvA&(7vk!{UbG5Jcv#%;|L) zSvFU8Pj|+%^Es@6>oYa$qQDD;H;O5QJEuIFE4m_W=cHdRO@>aS?V<#*qKfAOJuT8{ zSj?=AoDZ&|oOO6|OOAu-VeWhKfly;;S-e@RiCcPGyfM^-qaE%B*c9rI*2KRayC`;U z-R9;?>JXqb5mwMMGb5yNU)WkQ$Vh9;}gP?&iAIx_lgxMUbiN|8}htN?E+s(~X z`VfGkyhgF50Zuq^tOH$r@&y;QnOIIML{&ai%qtHHA=Lh~}lJwhj%p zuye8428iNYIIMoKHf6M|6Dxr-ZStASgB#XNSPy{E)!ShZY6u-9s|nw+XGH3^A+HVJ zQThwDMjfu9ja&&HYKp=Ow4Fz(HGfK4heYA46=R+G28kEp1t(6P#14olE=Wfwm&t zQ5#ta?HEWqPxj_Th^wg1kM)6>+7f9Y{V!$hO+cluudy}#ByBH2riXMI=?&Tc z&^V-Mf>R!JG>Qo|Bd?-t2OLB(p;n|8R!69HaMS76Lo`N^y$P$>Ip%v{t+A%aC*a57 zJ~n3;$K)!A)%ZG_rq6#}&hYQJdY4sHWhXM~#0hgtImWG$j`9oRw^O!ayUV2Y9zc=hh`uUH25yZ2w^>B*ZAGAZ{8$+(-)IsUyUL$O%Vc{|PZ7aPE6}!VjzvBb?I(16b$0>?i2gBc}_d}Tw{3?XS$8;U~JYJ8SR}r=o3Z5o- zYozlP-e!9$Zn;NkJ-Ib~7tTf8o82DyG^nx!F6O*m@V-F<^5N1w!YiC#3o_PRJy4)v z3QMUn-a)<*FZjMB|0(drnVN`zw!G>46>)XPTdClci+SHL?|Q1Te)peZ6~-cL0R zAuSgDvli6{wZ`?Dv0lGiJ4g4l#e-VypcaAF1}!nDp?n^+1bB2%3-8d(L9I!@SZf8a zc)b=L)E4O1XeKoMAry>gH4qK`8vO%a6SX$8qR~gKzFliOqQo&R4k)be`lGBE)+=a{ zKt;2_8}u>AgL);b%e$hm#m*P2KZ)h z%xhOKI3~M`9|ZDs;P9jOD85|r#fpQ;@){V?ZVY+@gdklGVU{W`uF|`z^rclg>&~v< zSf$@lrEja!gEI`+Pkgr7sZ1t#F53B2rH~$(c|O`%ypQp^%v4GOPh&5IeODOHJ6^FM z{I@jzxy9?&5q!zwFCaX!?NUWP3T-^2hf?Vqhs(uEAu|Wg7Rycm&v~#14co4Rf0&&# Gdig*9eU^>@ diff --git a/42sh/obj/exec_dgreat.o b/42sh/obj/exec_dgreat.o deleted file mode 100644 index 4f5329280a2a26f5ae8422e5cdcdc29035f8c7d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3860 zcma)9ZEPIH8J^v{*}L=E=d&G>G~weK2b>^$=X}-_hY-N%Vgf>d)2alm&Ub73((|5s zyG~3q}8Abx;^K%huK)2glDPb27$3Is@zaMVyD2p=JRp4r*t z?g&jr_s;tzI)%sVrC?|yUQ`?I3}ZI_&}nF-tTYszHXxBg<& z-M59!BE-3qlR{alKmu9UW}_D3RjNg0ZpHgRmsKA-2XB z;)Tn2alFFxbj7jV!W6^%!F;E5d_y{{GZ&37z^jgJR~y_K-}4%8xyHM`O$+B)%X}N+ zn=TYv@&3_*cmE~g`43EAaK4{wydE9J?=BG!hfYDZ#uwH35zhCq_VW|fQp{L_2hg6B-y<2CGV(80Ew?}NO?yGi4{uko}h zl0r;|GWoglTXq#<>wNcXyi>Z<;*LNl{YZRVmo#0H!9p|m#h{A5kNysxXEW$7P-EeI zN%~4`Y`UmCny-JF-#4FmGl3Cb`y*iT^*yKabEJ*@)%To)26`y{k~mJh`tbbR@O*vv zxYp-JkJk_U1r7PRVe}IDeMi#y`cdusiT29Rtz+k-d+Et&Ifn9CbtJ#G9Z&J`pJBYIDi-PA1-yZX8jw3wH%f2%uidENlT;KM}yU>El_PNW2 z8q!Z0p;xNzL}teI$`h_r$`G#NjQgTio|yE7TP-<&#sEt4&PhBFXi!WcsEWNy1-}q< zQPK>%D5>U@$~CkE+|%3@#Y)w4#LjB1ghs_?0#=+X)Wmp6czmEpMwfAQsz*jrX=`b! z%jm|En^_pUjhoscsh=lrNcOdF?%BvRm%`Mh%{{oi*EXqgxrn50OeT?dR;QptY#~?x zAw;~#h@_H9;t7%HfbZrWDuYPlHa^D5MGX$(YlZ2 zwr)j}(P_+*Ma+Y<<4S)Bb<{jKeS})q=|HR8j3JC}x(YeQDr)^6%&Mb`J%(yK$n1^t zMbDVsiCy6Tq-lZKD-y&!M(r}VBwm5^1+|4{Z#wZ>s4X&k7mK#oN6;SuMX!v_gB=1z zw#nzfVsVQjS!a}tfZl;1d*bhcEtYE%AAtA6EZ1>Nj+Up>>QbqG;h&ieYlk36a@+#$_@PEqQTyKT7jH6j6>AL}yWmt5=k-ukC zowz-nqv*@-JeXi?|8ZX+2^~LtZ}dS)ib|7JhEc`ulIEwUvlWb?=3B6 z9^ZZHh3XZLAA9?%KYem))rs%he*4OY*Zk*=-Rr(RJo=l%FWw;k_8zc427L)iU=c0{ zafP{%qo7I9gP=!2&w^eC9R>XhbOOWxnb;J$@cMCOuF%Bv(I%!iP0U3cVHPG9P0YT9 zGz6JN6H`!|ctmL8nb9UD9!*THMc^opfM_}f(q7znnwSMT2u_VA=9KngBGJU$(pWqh zH1UGap)y%%V*YB=A?@`MxW;-;o94mwh&*iU$kV62nEy2K$Y|65OPd%{g4>NAs_2`D z2u&qSBV*Uy!kA4P>GoLs0K6E;<)9}|6XopL@Fo+RQt5}yTROtO2`AxWiUX((KhoAGKnt>wyV2G=)Rya&9TdTl(>`26901e|*LvXe}mzy~sN zU%zlrqWD8rsNo$AoRFD32C76l4Vi3%azs!X<9?F z?=}~gh_z4lS@CY!X+4eh5o^Y@Fhkz3!0xYrBeD$+I6~>a4;)eSZ`67Y zTtfdDIQ%T?vKqWWReRH@;}ff?o!|P6?Rp%I24**YT;Nl| nFJKwniHhS_U13+J9n@;Q@#hh5z9aa)<0}-O9`?AedK2t_;?*Z- diff --git a/42sh/obj/exec_great.o b/42sh/obj/exec_great.o deleted file mode 100644 index 49a86d0f973c19ccbcc2a936d6033f048430dc7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3856 zcma)9ZEPDw8lGKe)^?mYPEy)HDfk+osYL9Qwh&#zwFPo=Ly-^=K(uIa?2Y5%taIK? z8=$>b>giNpq`Q_c-4Aq73Cb@J5+ETE2vI~qfZz`WA%1`WsS>Hmm$)8P={?WvZ0ndp zJMug4$Gr2*J2UUhtUvhq=r2(rjEF!5Y5`42RA~^(g`nd!{ziEq7BuW-ACyoBrXY3D zh+^BmGvfzxpx-up=WS>7P@2^O@i=T-QV5H-7O{&gEVf;A#->ZQ=hu|Uwr{v&{VjhE zn?;DTk&{AMtUv-;*Jh&@;#H~zWp2j%SmT6!N}SyMa#p%OaWkl~aK0pc zB{nvlQy$ILzs~KROTT8|!g~2hz~t&Xj^}1cYx%41_!b&yXX-g|gn0Ggx!K{l`tT90 z&yF6c?|mB$x!Ga#61m;4r*ic}+V?B%m7877&WCoL%s^%!-B+mK*61G`fRb5tRc6I<;nfORXT}LCyHs=Xex@L@qaHeD zOWUejiuvrStGo$8r=VSwU0>uqU-Xy>eu2(L(PBBfmiZkwuTDdgg3%6Qy0F42ZtzNy!!bsi72$~p{TbkSAFdswwte*?4XsG<*}ngE%-u_>^$ z*%hbfM>H)kdqsQ)q{GxMfJ^*&NIc2rLbEp&e<{=!nY}%tHTnhge}GypiOzxT14TB= z{b13U#gVL&N=85jA;|97`(QnCW&C6CewgKIj`l1Vw;-xe7baFgjLA!thr<5@d#{64VJ+oo*0=1s29;%4bi#qZbv+|u ziyX_aPbeG)q#JvYb`sUu*)OqBhhra)CaUuQ4 z_8*_AE_vkeo0mTI)sHKV{?hu_7eBw^*sI%DpExl3mjlnPk?(#8EN(1!G>%2M7?cHF z2O0%UfF1z-6SN=n0_YIvQ_xWm1H1=}A{U-d2nr!-V)|$kQ=BH|B91T%6N@Hp=|UQU zIA~%DY7>tLO*}K&M4cw);v#Sq<~~h_LE4KOPZP612f>kOVoqrj6X(>a@GcYUlc~R(*S800FT^qUnBrfk4dXtk$ySm4jE$w|Mt?S@qs{qT&6+`v^4k^kpWPJAn)22;|_& zgVKWkWBD51(ZC6*dHNoXbQm(x8rv*etr6KdB%?#J&AL%8g%%x=(wEDvYo%!o$z}hM z?bbdtj>zsIX^vRCkG>=Lz~dtn-yZh3uR4qW1KhJE9smFU diff --git a/42sh/obj/exec_less.o b/42sh/obj/exec_less.o deleted file mode 100644 index 14dd6f7397ba46fb73612a572a8b771d10941d70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3848 zcma)9TWnm#8J@Gdb9UEjuh-t-q~yX92Pdd_*SS%bI3#W{+L%;oA)%-xJzeh}+Y6hs zX3yEgAxRU-2xVo7i@3a?mheE{KtY1Ow3Ub&HL6h6yfhDaA}UCca6|$Tb&E*)eRJl- z>m`tk_MiVU|9tb$%s(?{|M|a5*P=ogVSx%10ZmC%84$`3K=U+yM|mdZH@w6?D1i=4 zLF%Lt#j-qm+Vf>!-!<~Yt_3}iX0$*&4jV}dVbT^6N6CU>StWa{K4H0DO_?m~p&h+T^YN-J_1nb5p;M5p@y+Y=5X|>j`@%%E)H2^;MtSbcn!Pjcd)F*_rZ3Jw_W3%)p%MJ z2_Yr}nf%82EjtRab-qV6-WA;`)!_?Ien)&+hagjKUk-6ECxyHyvtDSy!y!w&))mfRf#`A-n!w;ns>dd)oFZt75xuwkUGDUG&RM?5{pm zD&#h8a3=+QRI?~Mo+!AU@T@VfX4}HmyzJR~MX~C5w&PiD`B}7}vOMl=p@x)GM(CBQ zGm)t~Zh6A7OBupd>~T-j$`g~GaH=I6&=^2T?hT2D01b*M1XZzjso)j-E=sDii;`+~ zsa!*g&t1(OQLI#5TkNmaN@!H9?z7@#p(e&l!sVkxGP;a=l4%)Erp)EZE~6Vs5z4~Y zZESA~Cm%>`Nvv((k>1ACmLjB0JJPtZH!V`-8WB!Dm`EVm%uYdvXb+eVAw(=~gp-K` z@q~zXz;{QQ${MOD8tPpp+M*Yr9|J{JMd!d?1cjfJZ-PZ* zCPy;AQ8EHL1wp1`AAv2C8{-_WA7;6kV}1^88@2l}riczgJWv0n@&Z{b%1?@`6z@n} z153&K;#|nXAekk?Fr@!b%Taq6(r45Lpo!=)h)JqTVm)9fc~5*5I9EunrGF;S)`fZ_ z@jhsO0?B(-G=GEmL#jQA4PY^Om-0~fce6LwTVbu{Xy#@5{uq^Mm~_H%e{48UAs{55 zD!%T&3di4m=L_b9+Gy~s@3N>bO|5;eqcr2+$|nYgF3=J>qJ%*PKKH`7IwR_8#b#?e zBjX#->zFysu?CJFOQhQOz2Erk%Aq?qIxBy5{OJ>;>*oIc>#mD;zVgM{<;BcvhpxU; zUHRI%(|5i7$<_6juC@K{gOB?@|I4AxU!U0h%!zlm$dAqf>))WSKyfU>3Q!L86VPtZ zBG1`+8{bGm9ps zpf>S{(8M#NO-wwRn2SrnQJDKQodanvZahuQ0v!aChbHEf_F^K@#N5(YJQ*}GuXU(Q zR+^Z<+QcJ9(*=;m;&G#iCs2=gN}G84v={TAUOY0|^nGa)MM`kH(c?y$@g<@xDnTk4 z&ps-Q>6DRbkH%ht7lT;=IzCUN>(_OE+v_qD{maUf3d|q;O5ke^ar@2KyD+~h$}CERJqMB91UW{%3PAsHQ#?dBtLHMHocl%8B?Zj~W(NcR0fc9^fA zaa5*()wC(eA6f$ zer66jd7tL1GzU}mH#FxMovd^j0B=&o>K2{XN^|=IEjstHxm{QbpBMO8@CsN)XQElUslGz|A7~FHc>n+a diff --git a/42sh/obj/exec_or_if.o b/42sh/obj/exec_or_if.o deleted file mode 100644 index 0ddce9a1479cb21927b67c0c6867634a28270622..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6652 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 M=)>mfrxV!yFD`ou$N&HU diff --git a/42sh/obj/exec_pipe.o b/42sh/obj/exec_pipe.o deleted file mode 100644 index 626631d350a608ba20788e519307db460cfa670f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6416 zcma)B3vg7`89sNDd-vY#CfPhdGz3<{%Ss-+BMO2gx7d)5M1PzCkO;HA>V2LR| z+xDG}z7jxe`>Kw$SDliJT$VxLAs%Cyd6vQ`7q?Jfd~7@A`2{!IqZFlhMVu9?{R##% z>IseF$=Y_>>FVpT0V-Q;d-*lXuDo=_>S-0%Ys&ElC3r9#16jn&DL%;z(XolS0Fc%K{ZIu+kVDxS_W#uwn_ zy4J}BE{*S}3U8{yyW>mZ$@ucgR4LxeC3rvol6d~6{AtJgp27>M#eDTk;^8Hhkfre* zuL=fQ9Phz;HSklUWPMY)4H&0y_hoN%vuWF2x%`x=5EH5cDXx?!fyW&6684{3^AbF# z*X}N0bpwaee9*4&mMXjn;{rS-3T*G*B2PN<{<>L-SUTQ~3h#glW-aje9Q=a#I4^RF zBf-Qo_z5V7V9!@;8-#73)u#m z@DGC>F9lsnH)-`3S`7`H80>g)q-ozJan1(&l-*1`h5G8!v8WRy>K^I3b>MA`Vt4gz zT!zF@2O>)#kl}b@Fo7^+IC zFRuR93({b-o9!RiyvfN7Oq(;?i*N4AWd=5PW%>rDHP20Nc5wUw9K2+GW)#K z1GKL3;Mdx7V{TnK**b5I*DKhG#20SX7fH_-zTM>)97lMHy1uhPq;gr`$@;eE-h>uZ zw$HaAS-@*5m5?*JY)`x|>$yEyCmknT#_9G&!R_hwMR(ehe#{fX^OFT%q?3LUy-DH) z#L4!HRBy5%l7*fWtA3Ho`yQ;iGs&Ky2ic88=UeF884@obZZ_ZNi+llDM8(R40wYPh zfF$Lhq2$=%DM>Py!7-oo`#d38Cs|1Kigmdz*s=Cx?WRS(hn1TiJpn}#QO%u$hNO>M zNLQbaB-`y4Jl{q{DaYeDGA^c=(SoQ+6 zDO+kFXNq!4q*AaLnR+>c0PymTlNPcL00PCSV2YeK5@51lI(%Rh?c|6*C&DYBZ*g zPz#i`+R}=$szs3tBQv5a>Mo8VE9)YpR4eLm*_by*)TfHFswI&K@}yBMXb>I`5}9yhvmT*edC(2fo!KK**c15g?sF zH6uNut#%v$XCUr6U4~OXT@rB&2WxObnaoxqDrS-3Sr!mk7q6)!XIW99UCqm}R;}Gb zQWmv3?^zzvNLHN~u_iqcu3rU{}V z{0Zc3DCLvF9P#)YN9JfHZ^B z1)-*PYX`U=VqWw`Wle`PVepP`?54xJKs2=QtKdH-J6YGLHp7QOIO*YeW&=np+-6My zrDu2!+is5jB){B}~z@G!#N>kG(gPNK&T|kwkg^!~7Yv7GW^IDKL^E@jB$}MZ2 z&&lqFB$sg(r*}Q1G&Y;r%<0_(i3?%2aLW#WlS|whYMN->T9n$jfwvW<*`cPXBTHst zv&|HS3&60C>IPUDahUG4>r76aqpHw*lGOk%I?Ng{N63&cOH5Ch4oWke(lZbhT&)Gmk-~t@5eiTw*No- zcBLEr@3@V8(|4deh_VaiC6qT%-b2x_Q1vLxd5ch1pHQ;^D1SOlDLu$tl(A%8IA3Qt`l}6;B4G z;&Dh7bBG!vQyx{!f+`5+AgY*@lp_ywsurSBR?M_iF?%a3W>l(}qm_#JmMZ38)gzBl zs+jtf70()~c=#yQ|H~3#WB|Us@ECcr^bb%*bYzN|L%Zopp>2$5v1r)jMrAO}0uLQ0 z(r2G3f86S-Vt0hTS{dXyA@;*IBzVo$wEtFBqUH``v|90l51(PFOdr1lTKl|0tCCvX zx$O(aYP?Nes~!B1GsY5naq6oMUyVSQA9O9f=vxFX;4z2l!wmu!XM>w{<@G$UlgI(v z?b`(>ndWy^px_5nz~QEkZ>p?c$Ylb>2t1M~J}dE+1U=9*9vSqnzHcDFA_JsCpvNhK z*5E0t)^w}F{JtJGeB*NcY~vAqQm0t6~CLBnI0&2Nd(W_Pl=;F_&Vk}5~A3`pp8~Vrz<*1Q4rZa8Ai0b6f$qZ#phfw zqeS7B$aabR^%D8w5}7CLXuP>4@|F^rwxjJYFOh|fy~poSJDc;f=WQG~nkB{5*)? TI>zAi^d$>v2_%0RKurGwEBY5) diff --git a/42sh/obj/exec_semi.o b/42sh/obj/exec_semi.o deleted file mode 100644 index 183cd9e9f028de31be6958342ada01cd0a57153d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2912 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 diff --git a/42sh/obj/ft_findexec.o b/42sh/obj/ft_findexec.o deleted file mode 100644 index 0e9cb0408b3d4c311c1620db4a6d6aa17b5d151d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4740 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 F_J8<*6es`y diff --git a/42sh/obj/ft_putast.o b/42sh/obj/ft_putast.o deleted file mode 100644 index 68bc619fd146569bb4c6b0f2091a63c26756021a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3896 zcmbtWZERCj7(VxQx9!@k>lkc^AXmP@*^Li%fiX5=T3`qn9}-1xy0+VjTU*+012PN* zR3;kX2gVFJ5~h8NcFda(oR>Mu2B)9|Jhube_B^aA|#W z<$ahX`8M0f!e%?rf zJUr5V^~VU6L+zvC{Y|Y-bgPQ4RMCA+EXPS$t`cSxBw&3`g6${2HkPm#Q#%PB#c-Yl zu>eeg{dE#9(NBgCRl@!z-HCpsqOXlbH7EL>itZnadY$O&D#~4!YcF%6&#CBxV^PzI z^5@L1YW`R>=tQ@vD7O?}xl`Jh zZ_ev>elz>^o5Jm#qK$8x+0n6OojDlKWD}{R*%WFFHJbCHeRz=XZfb-PTCym#aK6Z9 zq7D6#M6#hfXQc;nk!&s$6%CuS7}wAu?JkkbiC82T$q%u$0S>XXOgxszAd<(d#H8S$XkRKD7elE`3<)+2 zsx{t4Jp|_jt<~oWEcGw*&#hQpvjX?ZWe8omR@dMc zY)O%6R0(?BvxFpM_-ibM|y2{^$;v!q|mt^ zXQz3LVW9UJboA;q<+}ir^~FA(`;&Ctqt6t+SD<}B>t21PS9srndXQ$F`vrjE^_~G7 zqi2$zqk?+9?`_~;bcM+9GqfFCV*{<b3q00IxpXPPC`FlOz}6wJB$CQiB29v5jqE z3=~Q#Y_GE2w)NeY3%vEv>`x2~$(+Kmbd`?1j`m-2IG!?*WN0pkCfq;+Pp@B)kBu?b zOPwbH&$6wvTK?nmLHK^0*u3M!qt&BRj(&Y=`tb`_7EW25oc882<80&JgZ?XTq^1Qc z2H(1T&G+OZuRd`iY91Ya7h}#szJ>e>DZ?ankOh$CkPVP1WDqg};gJCdo}pR@+DQmq zJP&mcG;Ri6+#l)UA)|}u4p)ec$B8ZyNG_fTx_F4Bi(5?>w{aE_jayC^4}{F(nWT%y zRA!x$E}k?wBabVyc&_C@UJAOnFgfs__RoX8QTu@rLde@lilU}ARNLJtw4FgMSmE&= zMi%Fo3ORh0G}o`I+br4w!Kd|=mHFc*L;$(EXho)`{TZl4uW=5DrXFUzf6=~y82`38 zZ!n%{q@*JmJkz1x{PR-I17kN=m1dOt4jLZ!8pG{gYg7|+hRc1%@EGf;%~jzEbagR diff --git a/42sh/obj/ft_putast2.o b/42sh/obj/ft_putast2.o deleted file mode 100644 index 93e88ec6884b8419158e0a4b4bf50b4e0ca2f55d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4376 zcmb7IeP~ zB{^}%GP1ZX3vOVAg|SjdVJu^?1;$obH@2p%|CB<@U@dI0Erq7EkU&aXnr*Dv@Auw) z^3$ukWEY=%?)lwwe)qil^`89Zzpj237D5XMRFEL#qC}N~pnM6ErTqn^9C11>DIeDc zr=TQMoN3mJ^L1rFndZTvv4hLD+ZxcF7WtUVXk3Up2nEGSDz}(szE-c6tSJTf`COh} z)qj`aMmkyz(*RAgP@I^XGC^u%rn&o(!Tk?5`sY=^KNT|O;{)78>GI8#^DFW_$qDzA zZ>V|nKr8a)CMK%Iqny9y{9L{tD1uw%D_N6ehWPm;Cm*H8O@VS*<=2e`Rb4CQSIt>d z#oFij=6!o;Eb8!j>J|BBb9p;Oe||2XN>ALJFITC|6iq8P%k)0?yvJ33eJY{xo95^6 zl_!qa3+&JDMa8#K@twUzK0CikF7N02i;wT6TjZ-BudMjI|51F;s|ozuE%MKb5kNuQ+W^ zRzyoEzh)RK9-ZrVPSJ$*U5a3zsFed2m{33B?xHRx;Eg`KaQg^Jc-;OBQ@Qc-i!bu*fbCCBZZDJf zw_Djo%B6~75Argn!9#Y+C0i2Ng-biL3)e;bsYhHUhAz!Jkv7djPb&Ttr(9Wy_~Mae zE7eGu%i|d(NuM+Q{Y|Ld?~IVJb7Om9z7+{5|74T@2R~mPNpFnwDL~IixT4+Mw1&^y z%|0W`K1Rdm#bzJw8}*FA_@c_^Y_kt6ESg(29w)mr?>vuxt`*AxM0hf85ZF}Ng;x`g z|M9@k$R07eXLLwBuy15!@ZsIPDKT(QujqrM?#<7XYsJDAF#w=f3{XMuJD45XF9vzr zruObVJd!$Etkz0pE7g#JR=H3tS+){&6Cngdt0DJz7DSC74iqh^ZHl$aKr9iu zJ(ko~Ve9A_fUC4!ErD2X^#17P)}5`m%%sp2u%{jG)E!Nx#AlBP#Ra>rinh6w)@%|)7PTAqQDM))PDb3{6#KZ8o>TO+@MzCtKNhHGfe@|n75eF7^- zs~eUG^B|HzUv0bsmC!duUW5KJJvP(-P1m|t-w=$v1#27owlJHP*I~+FxDUu*(bPMm z??4&)I@{46W<5!+0<|gc=AfZT__y%#2x%cY;m{r!%(CH1D?t>;=9MqRhx-=WwnE#} z3!Nc|;*F*4kG+BN|M)PTvYKQle35E+?F8^j3F4JQJ{I;dKeo9Uf~w7IBM{!%d_kQ* z^yK-+lJDPk_U%{K{p8(`x7~K1b?1fqtw(=-^|O}mJo>^n&*xKT zzx^A;aAN-s`4AGsAZs9;K;FfpkUZolp&J z)*ondHlPp>!B-c9aMZMa$J$V990Q`c*D@}^{LEZ|pOMQKFfM5LRB}~Z(wS-J&WNZB z1RE@_$w(3*v>u~ zJtY&N3r=Srh{xqB_^lt78z*JgunZ4NBQ!1Bff>V6Vj$yDnLH;q0|@q^Z#;C$hGk$} z8jpD$W!pKq7H(}$+)d1+vEY#Mao%H&0b{k)jD9_Y$rGC}2lz|h?&yv>n!ojI#Or3x4U6viU*7_#tI?L*qE7*D1V1;Spu?Ommz!py~Hx zXK~Z~orv$r^a*J4VR3E0!;VhxRd$!MH!1sT(4YD$ICHet(Gn0-`Bw Ap8x;= diff --git a/42sh/obj/ft_split_whitespaces.o b/42sh/obj/ft_split_whitespaces.o deleted file mode 100644 index f8ea70a798ab89f4600d3986153f747d7a69993f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4200 zcmb_f|8G;*6~FJ<=Y`mbUjiBJO51r-2+)-zbTFWp5;WXB3Xu?P7@bOA9mh`0jN`?2 z!>UE1I8<@nZedfkN&8`~D)oy-|AG9#$fyWNm6-NJw;v)cNS#QeOtLgf^XRnfbMCt@ zU!JoqlXj%*bI+Iix#yhw?fLG5zx=a72+b$(gXTxe5`MyHps%9USov>gw$U+6@)(dS z15={xcZ(X%hC$ZqdD90-Wc9^?(>EXCkd-19&E_ckh%G;H}*TswV_m3oAW&E}A zxp<=rV54}cOmdiqc=5ik*60u~BIrvM-&?4kN`2kgagz5<_-!1gq-|udK8&^qe?DqY z!WaSPWjKY##6H{@k8^hSI=UOCKCAR+tGL*0mBuR8OmvP1TE(%7Ft2dLRyjInm7=wU zg8;Y6W0iS!DBjSlc+Hx=?~@`N=4PUcY?+D9G6TY#7vXQvFGyoNx@eVqE0-dgFvo90 zRUBJ{_Y*u&+05&0TJb^H9REt4veCTqa-9;MKd4hSn&U4)S&l9i=MnI2tK3&HulobV z8r&aQ-vacV3{;L*ta$IDrQNnlGftNA-dR)t<&Y4^FCld|5WvD!?u${sV(igb)es~A{wO7byO#j)y2NuLqGomzIoL(yRR;~E&5Z3%H z|5m5sZ}B;FCw{XHK(c!C6Kz_#P%YkCDix{=zsEezPA*4*`)T;x&7=HygioG4(;I#@ zF_KFSXTk?MyF0tXJL74*c)JgDL+IT5ROg;uA~zE6O5@ttoft^vQ<=f8WZuqY)2X~Y zI+V&Ma=7&pxz4!g>dOJDYjAY<{6MU0?^C%U5g&?;i1plAnNDQv(czJSob2~{ zdsL({d65$-!Cx-t1)PM|s%;N#Az!G)*cNKlHsfgPrZ~O@w@AD2g`Nopam)BS;kH@p z3HU-!2M+~zG#%e^1a~5l(3Oe@7<<=<4fTWYInW`o#eSX#<%I@4A)3UK%s{KZ%iIqs zowtX606)G#{1_VFf|7>iXk2$^(vY=%S|>BouV#NGmiF&*q*vZ&=>WUJ z_R@ze9b}tm$nr1fStmH)z79!i*Vqi$ixRe7!RFs%V~2vx@>$h(I6$WqfSZDL=ErO` zHBMz2$Xo-|s(^-Me4E)*_eAQzmB(Y8t&RfWRj$q-l zia)5|+4iUL*ZPk^=IRch$!dWgL1TIyjmP|)1&|CDe2xW>J16@vdFR9_So&XlI5uu= z3$XoLBk&t)D3W2ErJylLKI1vsZ(OA(z@I)#yCSqBLaomc%zooUff@>H zTy?lM!lqxQfblMw7_~V`4^7eI5&C+PI;N;ALVJ^Ra0Y1HRX&!8k}H%9+nJ;Yx$Sp5Xk3L2uks{9VO=p}3`ZkK!GQKkm_ol?*2FPAI+| wJcJ3{Gli~{-7|zwTVb+N5nq0*M0{lPQ@8w(Ny+<8N}rXN&%O{#%fHnB0{*V|F8}}l diff --git a/42sh/obj/ft_tokenize.o b/42sh/obj/ft_tokenize.o deleted file mode 100644 index 6c708728e7d1162bea836addfda5d49f77cf74da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4916 zcmc&%YiwLc6`s4hvv1$KwiC-Gk8bL`fM(ZCO|c*ZZ{khXuAQcSB>B;DS?^x2H(Bqx zdw1<5YN!>r#l}rZRf_miDH2HV1JQumh!7DaO{G>)+KBK7LVyuLq&!3@5(FAzzB6~O zy}k)F{9?4{oH=LCeD}=b%*?+1&p+MtF{Zc~7{~)U$HAf?l)FGF(*Hx*6|@@Wq>rrw zlMzK^KV7dF2P;y6(Di}jzJW#EuKie62#;cE1pvhcWs-zlbUmA{q-~AxIuiqlMSV_I z$D};xweV8FQy1M9YQQswsyW@Pl!Xm=dlP*-7TR~y>%2pcO(&DOBZM;G$Bg{^` zt4q8Yd&6JbThy0$*m&uop|UY9#=9gw8}H{5=1%eQ#o-clamIH+Ogdw68O4_a7Vx(* ze{$%zjjx<8<_z;zymuXY=!YR0=%TnS-e@`_LUhJwcQCVvVwlgd%i^4J9n)t@j87JPX1Mk2c;#Cff-FCb$ zNxU<10zZF;ct~Oa>5Ol`+`smCyKhZ0$9OZPQH-;qSBn$*Vpi9CIv1ygvEvf2LmJ0` zM_ck5_MZfD;29(Oa2cy>b#R_97bV_^#5*bRq{^_|c9SsK`Bumm1)_7j?J^&lj z5~m*DBhn zbB|sa9*${uKPkROc&VvBwx(u|TuaSVug(l!NzGQTPHtt|Q?!L%PtqvZJ2ZyWZ1P%a zsvRxspq*q_spT|{dgiUvO!6|?FQ;Z+7iNF}&zm|X@^H5I%FOptv!08oS$qcg^A~55 zH)fMJQd6(BK6-(0{!b-Ar%1G?XHRc*+$fv*QZd>dYmK!=H)aYr`Zl$F=rF6h3<_{aO42ut%=o-&Wl=f%S@wUz82+Qfhk>!gOR?!Q2v%*YE zWJ<+~0jrd{2@FO|uiy~Nrpw44VT4{N6?4&Q(ah(HMm9=VMY?n|Bk8i}LYd19`jlBo zR}9vf+>sdU8G!8R>Sg`O-E8keeVuIAVDGkMAKTfNOboD|WPiU^P3-Cv8p($T9~wxq zPD^Y{Y=5x7C()l`dlG%De|K_wSE7eu%y|>HY9T*Lb$k3Q!_oyB9xhrd3XIndNH}2v zENMz9!iJHe7ef?`h9}+tVn&pDWu4l{-D={Pjfz_hg)AjhC%{Q* z2XvUyzm7VFLR;ahdTM;Njj*poennykvq9+yT96yU6dhyroVlcl;%R7GqOuR;tgy}! zzc_5d>|VL~Yfnu3;pEzjMru$zTEIOgJ>8U#o-1G~p5z_9<*ntg`0;YF)qJJ=Q67nnLs)=@J^vCA4g>(B1-Xa6Py0Q>1PD88{12 z@cpRqo&1*&fp@^Nr0)n8Ae#BsPz7=&mYjFcG(QWCV0nV3`FUs*FW*Mf9M}N2Loo3M z|0D@Nj@|x53RQ7s(6xabCJNaU=4JCJWI#`LC3fP-f#3b+*SQ@ho}o=cFY+viCWib4 z5F~9X(qkYhG!>+e6GO4TDb?G4^MCQF118Zj0!N{7Q0#8T@lPNm#!x#BYWINX_Mqn} zrh(B7O+HlU(ml=N-+yIp{hzPD(e|0jGx=4Gn|`$UQfAo-*EhG>gLDEEPO(t4?Bs~?8Y>J0mg9m#YPCn zYC;{eDlc#-*vK`PB_0bNbfGtd)romLEPxJHaj#K$FnETCz1_TV3vc>5Z|>&NExhG8 zUx&(fxN9G0-Z!~F=)aHq;N;!H-QFDcpRu%V9`cUxfcGbSx%WZTySe8m4|D_X1YhYr z&hP2w!EWw~amD)yR{(Rs*thUye1FwfAQ9^(+Sz!zZW@8a9jJa9G6J~|5}~WKo=8YF z1&M@KJ0R(PY==aGs;!VnPIV(Bl2(mE;=odyA@MX;fkpqa>f7YSf2RzK8ybWH9zrvw29orOp zxoAu<>+OoC-f+5Fz^hce-t>GikGj~qdai7w7nFiwnoPG}ywams9UU^tw*NRDtg^v0 z#>BT4-jWMnqlcyKG-hP->4L2er85W2LK^RCigMxQY4?1rTEgR3YD<)fQaNikh?vvG L1)ahsm9c*Vjs(~* diff --git a/42sh/obj/get_lexer_state.o b/42sh/obj/get_lexer_state.o deleted file mode 100644 index 2a093a6d1ddf804c8e9bbdefd8696a47fd652cc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3088 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 VB28OHkD^nuwue@WO?Z*9KLDYl?iBz4 diff --git a/42sh/obj/get_touch_toolz_2.o b/42sh/obj/get_touch_toolz_2.o deleted file mode 100644 index 4b5da18492db39640cd3d12fd9e77aa9ea1fa3c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5264 zcmb7IeQaA-6~E8+eRkr+&PPAVC|;C~R@8CUl`d@VXw+nSHO(07SJJL}bLoz1PVt*8ANCkmNU_gWhgsm+6&VBbK z@rzf&Rqs9boO{mi{?5JkUElNqq(1wz;NboK06(5>FDhzJVd5tnD{8EYnkiybFn6er}>ef#Q(+{EY_2Jkn$e zv$gWgMKcK_zZCBQb+I>Ntu^I3w2Ju-L}P-You7p#=`8~is$Ft~qGG4|?RGJ!1~DcHcaXu;6$n<&Y58c}}M?0@0rDl*Id)Wbr2OsN4iU z>yt4pW=rcL?n1Bmp;OozR97Qov{dgvUV^00>_ODUh4Q7k^om&QRk^=cEB!$meXs6E zMC!-Xl-|}(7jKqEZkDc2QH(HZrLLLMo7(8>b%(C>qqO=zb&>{|j1Op~k=au5eXX>2 z>WPu}n-1R3{A15!TpJykW&V?2rtU=7ls4K9t;y0RJlg2xIj!W;CPrqpiQ<%)Q9He@ z9r>7j3YtJ{_w4bof>^ABi6mkb#7+ zF^v_M$((5P^#HcSz8`JaKdn@pG56zU)4?6U`wX@h`!R)83{V%mEEY4`y>9<_wXk;0 zmN*+2FP zK)o73BkZqw&?|MlBa~9twdo%~e_{md)`@jH3q_<(XJq^tOT$*tLI@&qq4v|*>21Rh z0t!4p%nd(>R&txH=99;%xb@0di#SbW0lRSt>}&XT+~OQqhoSAzl~|l*;w){j4*Eq4 z?Ao=jJ8;;@z2)}cWz|)Tr5O)So4eo#R7?BcEHdL%#8j(_OO8mU2cG- zG6k0DWAto_C8If(GYV`ln`imdFg)-x8;|C2zw1&@XETXFF_TXvGDbW=!G(cArqnCz zeU04dt5chN^-2TInxhrQ24#D-(|3>eUhk)Cb~b(BNL+kAGFX4&kBv=pe0`rS{22)uE}VNgtBjl zM%x9-F%j1;;|4`sJH-)-n4z6!;Etys`6)%+<0CYcu6OQoJD{jvA%o(k0nb`AUxV&k z=V?Lr9J-E&)e8`Ad_>yr4h>fEb3{K$bU9KXo5IXD3iWYg&;91XO^?6#>)HGE@80@R zCv5cEr?nC*0QoQ~6_E?%*M(;K5Js!itvSg?#Xcv^_5b*AU{GB_U?`Laad*P%!VfUv zQK2!~ZW{mLjXVDK^0Ci;*mnGs_p5)u))WgocZ_l&?oXkFQm53_xIJg!MMQ5yJ@qfKhI7_u!a96)2Q0bUx(O289j^t1=f1J*Qvcj%v^3Mb13qyt>*G;%n3bZ|di25BI1^ z?p7la(Q&B}ew#YUZ-;b6xKq8v{k_}=tvbw|ksf%)Q#{4wHJU9z8YGX zH%biy4s;Rk#bmddrWS5Bi1&o~sx#Db^)2q~y~tg?h$H-BW&A~f?h|lL2y#sz88DeC z>RHbIK`GzKo4{gSKX2~gp?rYVYMN~Bm{xJ8@dVGOk z)r;KIEAShEzZS!5uts6N0^~`FliYEhmN9??TKf5h2=_+jN!P(E!dD93E}#IAa%lj^)sSFC z`%#guHMx^E^<^tN2a;DN9V!kk`#ug*6=T8gK;ks5dhhn|AIv{F31Cr7tp^cJMJVMvP8At~+vB*i@-^_^1R2uX2&#YaJLzom}@@|Td52i<)X|2!nc)8A<1 zzYY?Yeem0mfKbm#X-IiU%DbfuNqL8q6i;#6r3^?3A?)JE5#!&5?uX-c8bEmxm2~S4 zL|5oEMr8*o*{q_YvsgziW%_2DZr$}({BGNLvrRv0(=#^xIh)RO`D!CcH&~yMNZ<`N zlqw|kSTUEk9OwlXiw>GPIcD(Zz4$LMiiBs*$Sml12Z|?NIjX?I^Dk{=%&vI&(bJIp e79NWFP%c$4gfY{nr=$6TF8;PAulc7XWB&!jY?QVD diff --git a/42sh/obj/is_builtin.o b/42sh/obj/is_builtin.o deleted file mode 100644 index 2161a2b4d827160565f747cd687c961b6e928558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4492 zcma)9e{5S<6~6D;&p%?vb`sWgTGDxP)^?EEZdXAlZD~e>UZ+&rMz>Z>=wUzqdd0Dg z{hVgikRoM+hQPESkR~*Z3TZG95`wL4+Juy<6N65OASBTEV-iCXn-ow%AR<7N?|bjQ z#D48)uXOG?-?`@=pL_2)_g(+$Uw{5@SO_H`(1C)WR0v%fgmxR~Y0VL@+YLuub)Iw3 zJPeV*1pHE$m6(lmh)RmZM3R11xwpoHDC#JUWniS7_DlCril@Q;sr|aQ{Q7RX^RRcjfTKGFT z_24HrEn3`cv|A-V&&}#@eIa`O>P^$J^85QzpS2J#Mf#lq^;vlS3dLf(Jjea)kI(b> z8|mg|{aKAllT-ZuKFtI}drPkO%QA2Nj{TGAb=~;dg+{g9xz^vLFDGj;*MCocU4OF$ z(+SZZpXX18CvNPo&}!AoMx!vx@UB_!M`e7cWI)yp<8%Eri>I9f_Q$s({f$e17jM#^ z6JM)f`u$z-`FrOk{n?MUuDjkhrN3w721esOC*g{|^KjRTOTlsJkFP81!CUWhgE#VL zHfOO;+vqmVSdEfl%pC2V;ni1KD%aqTDLI;Q?>&gV_{ue-(#Gk!6a4qfs*LZ5J1nk9 ze-a98XU&tzy?U!#4acK@y+YROu-w0V!ks<-KJjs1FeF55z%gX-+d&gha_iT@&x7+= z?+5iZ+LGLvy(2f4AJUiJ(HGa#`qCG!ygt2t6;1!DbN0)}*B37;OUKuB^Vj;tw}ZN} zrY}y4ph) zZ+U{`-}d3}`S6c@_$NO6st>RF@FgGi!ztb}>6w{_kEiF#?T*!Kq$jiaY(Bl)tmA6j zGnog-?%$W)d$;Jc&0Mi-)orVhvpR+pv!=*B)WO_b^-S}0sgT>huTv9MZ&=v)Ml~y< z<1*eC!mJhAq9Uw@EjrfOG7D5}ImC?eeA%ps7Nl0YX_h-3O!uV1oM;v78ur|=u}Y$4 zl?s5g~h3k#STL~m_;1J%8>!r>#jI| zUWkMyRH>q$B_J%C5lyV^40$-r&pqdfkvyi?*bV$uaMC1vG(Js1>5?KKo zcp6~jwg7F2g2zE*~FA(M7C1})9kyKaew{TfI=t@NXgiiY# zy03!*=@hlf5SKf|6LdNe8H6~@U?O}R4KGl-6OuN8?pdI~Sm=4MeDLlt%kMd;gCF98 zE&wfnf)iL!_!USDD!50@q{6F^zE8`nn%N%yBM^T*m{T*OVO~ED%Bz`l_%9yXt7gW- z{{VV}^Y*Ek-6FC8s9gYl4MKQ_whHkw#E`Dh!9D2Di30Vi70#Tm@v2nMFze9lL`K6A{@7KAZtWa8xk^rK%`ZEE%cd>CtL+YvS`##oR+Jv$2?H#rl#e zW&l-84C#wiLlv`P9E8SHpo-ZcRZM59nBQ_DE08KyfVBF5XB@_^bFX3D+hlptQD5_p zRXO{hQ07xgDjtqJ1uOp2C@8%_XIHO!uHJwL0*C=v^d}P+GV#UtZ=zQzzgU=b#&arTZ z_?>YjcOGQq?!u~&@Z&xFcQ2^Q$tTaqA82`%5e4aJu!9?KJiu9bHH^zCJ%J%958+| zvEcI1Ja`zGw=wjg8aT=(@mYyk^4RYLGn3;wI6_Yxk$4gurIpA_yc;|UoR)YyIJO{> zk{G^Gy25!;(%%n(5q9Xik{<+zeQ2k|J0u5l?0zQs=fRUOT;l**8I*)0ubqR?1D#vG z7ju7lamI(ap5AeUkThnpHd=BsgY(0M*?BIg}x kRQPUco3pJRGrmBLtyC4p)+=jsHXfjxGG3yavRM-U13O=AXaE2J diff --git a/42sh/obj/job_addprocess.o b/42sh/obj/job_addprocess.o deleted file mode 100644 index 23736aefd9a41c373f352a054438f6409bbfb36f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5048 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 diff --git a/42sh/obj/job_cmp_id.o b/42sh/obj/job_cmp_id.o deleted file mode 100644 index 0dd4403abe98f8d4f76581401ec3e06fafd03c00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3760 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 IuQ1N}FN~005C8xG diff --git a/42sh/obj/job_free.o b/42sh/obj/job_free.o deleted file mode 100644 index 36954c14496a07d96548a6514b4bd57d14533d30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3924 zcma)8TZ|M%6s_)=>FJ&KJ|K$-3@-SHu(JZ{Mtp!SIv^OMtQezdXM1{g8)s+6=^jMI zNP!(<5XM-Eh5l?qM&*VT^@us4|JTy^Rzh~!N4BQK?`+Y3R0FvG|Tdx?S3E! z`sQ`_Za$-j(vT8}$7SEj2*KE(>?8}DWtE+g=9uOA4QaBhp)G6gx-}dYEgWtN?K>4; zpvhjJCL_K8uTrz6xgGC2g%i#xb8|D>Iq^y(BMoO8_dhef5bq0xFPr}yI$d~P+$G=Nbxa=WEv{uutD=Rv&SzWy{()6grac zS9p148~`5c_9x_@I`cL>XWSZX;BE0pi1AP+Z`H3`m5A;8 z6{;TQs9^S}{Z5@HK7N-Rfs?_9X7IhBBdVSTaIw(`afmxX(;Jr{$$M-1z%1n9;^fc8 zUBBmxyXAowC!aW8oNOK`?rxG#fln28eVQvy9xG0MIz_K3dDl z$#2|v&!+q~r{TG^YJRYPpno8Lxm`iIFCQF$(!Xj&|5aBAuVELq)<%}wwW{B!RVd?F z9H-wFg<%h~3uBMeww6nURV%!45snJFJ5@jAmghd^2zHjwqbN0yBhm=HQmc;Tn^n&p zt2*Vpi&=mXzQx{?y;~ME*T*2#-STvdP{sJl6&NV_e#0GU`Y00L8m*MZ0(iLwF-F~n z=Ueqg&2~JxR9w%;Dw0+C0{IiQGABEY3Ag46+j1p}Zq2hm{V;ZEYZ8&nb;;Gq%ThO` zkS{TzE5rJ3T-&Q=s4+gJ#$2(!JD7v_b%}^%ZcHYTgJu?XAv(IXNG6#iq!5WThSzsf z8AK8%TVu$qRBJ58v2+U-V;M~&R(3HUuLVwy%OsOGGSwHO4uU#1Wg(@+GUg!KZ2^;g zcr&yrJ~U|e+y@6Ot7#E^?{;3qT9$tbpw%CeS`&R#-#h*qwa$I$MaulGe0KR}v?4MZ2~ zeP-fcXjf9ZMDNQb7C`c-_33@RB7P8qv8WM&+PiV>P-2$eh>F3D#?NCAe*F+U#Lq+%`9D&S5CM@Tt;$E_}>< zWe|P=b)+=ROx+NwX{csuU8rWD=2DwNH4C*jH4ODAs3Qk8pV|ho7srF3^uEE=GojiA zb&W{#E3cw=T+5sS&vwGMN2C*A_t9=@aSPnkauZ~6Ipax=bf7EVy|xG@FF|tTwrqjT zkaB60c!jwm69T+nT4&CsseSHgwCVU4^5Or}E>I60(Re9q!T^uqk5RH^V^qYZKd*eg z54h_^C+J(dXTJZOyTJJJX8*n4hI1>UKujl`mcyY)3KVACQmV-|n%cZs*WZL}&((xhq5M2)95#IqSfqW2; z;$_e~phKW)DTI5m+KNfXmYd9h|_V(lp}RtZfkKxJa)(8QEfCZ-on zOgV+cD}W}Ji}GSJ(!?YUv6R=&GhVD#da;O=7i*Lz?p4A6UslDDG0YCk2-;A<2r;9D zX{J4Pm(aH7v|K7~?on%84A1;=!kj*><_obllY3gfB^?w+aJ0Jk9-f+ZGLuHHaSf2x z_Ed{P(`yvms$FT8or1e^@S2$x?@_N{1%D@%lXsSbXuaro@3BVU-#^YfUOnGXP%?b@ z)n5b{qSHL_U|8~z4jkozflI~n13|sDP~eO!0^mW5WVM)?Ft^4GV?!)$+#c%!*EhuC z#yc?`qGs&U4SWK4Uk3tT&T9hmm$PsY*A3SOcB7#9rHU_99E|gfpB29dJWD{;lwYXQ iS5j!;^)t;Kn;pfU3ePV)73@3sn<4)&3I3A_r2ha@XD9jq diff --git a/42sh/obj/job_getprocess.o b/42sh/obj/job_getprocess.o deleted file mode 100644 index c92fdb89967d8637633773c47530ce6855e6b8a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4784 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 dZnYxJ0>o6PxS*UNEh(8aG;q{{qNn)93&I diff --git a/42sh/obj/job_getrank.o b/42sh/obj/job_getrank.o deleted file mode 100644 index 7dfe939a4a13bec2ef2b56428d382681bea2eb37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4388 zcmb7IYit}>6}~gOGyC-J`ccb?n{N*lpj>YG-@an4*^0&j=%_^rs5T$DwtNneBaC+ zv)-mnxYD`joNvzk_T0z0GumIg{kQ*wgirzk9V7^;Y3R}rv{jHrg74AZih2)@a}1jA zgHuqF1knt`DI9V<+w<=o*?;f-}5V?h1eGMM=t9X5k6mjY^+{5$oa3# z&*yth4!>SLt1?mLkXF7bHxTVPnZ=UK?<-h8xqVm7ub!_I3--JDI$GB2*_g-Q)L)fv zGH<#mw&v&a$?Xu==F8V=<$_VkPcprC&9_tLHzX5!?wa{|eATf7?gqE!cemtQC;9$x zoqTS7wY=HNXSeVL;!P{(nJw$*<>x$7yXt(uD*4KC)UDUahoW;STk{J1K!6T&CUEdH}%(n+|1#{3nLd9`F(MTDyO~9erDuSZk9rG0p{Wb zJ{7Jt9HhDV-1J;->hOY?zH2^tg!xY$zNjX@d2V`S{@BR;X(f4-xAmKMqQfwdkn1wc z%d>;-Z%r+VKdpY%o!rNwuIV2ffRov_C9`>>ut#MH+ zva`kwhbJUo$I&%>7h|_>!GpZx)UC0GgSvB!iE_Ru%GF9S?RMm!uUB)Yz|z?+DpNe*&fF48yK+mSQwtA+c6GXOi3;bex}JhtxIkS!j+@Z&Le2{L8QsAXU?9Uoie6 zyez$&)xL22SMd15>Ic-mRD3h67wGk=eLW(&3g!s}XltYEV16BDFc&=q#cTqbqPGKm z38sEi_&k&r)^-7j?nSo%KeQ_L22@X|BmQ^jBY;C)%;*Zdqx5cI4x3;-ORpO_h_>i) z*a1j*ZItU2rTaj5HB>09kvlPnE*FU@$zd3)v5Jwn0^TGax^5fXaPofNO~6eh^S+ye z+mp25uIJbk+;s8_a7XC2!yQaM?YkXthee8+h4$9$G;2huKNbA$60vp4sGOmybSLYR!IGz+82-i9G<%; zAL8mDiBIof9_}lJ+JEzVnD<=}d!_#do?Q1hLT4as&131ej>WaT^#8>0Wzr>ue0&uu zLWkDynTc{l!`xk*?;_S%7{a$N$Fe#*AkLSpHNTHO^Vof7j{NJ&vC^7X&vxy6@h_vP z>C@rgoqXZ7e{T(zQmOdCGY$2Y)UVC1-d8_+;rSmdtpCSLkA3)^fybv~Pw$ynqyOv^ z&gfWY?}>l@viCALd4jqj8zDoGyCGwc24ot-4dpJ(L4E^y1M)Vc4GE_qTOqq3_d^!I zhev{^yBiv<0+SHWf`nKfgjhBbIw_-g3?#(OV-(M+gjlwOSjo8j*m%MTapxt((?y6U zj^86_EPFz{2P7BkkPu5#MzMqm@r21JmL(w;jHKs@CBzz#QLH>dEJz8l3JG!bBt5Sr zLZ=`S;+;T<_lz9K8-oxp5(#l`gjgOj32qu8UJf$q{mx?uXN_kTBfK`}DN?LxJfv*O zqxT5qP)bR~Lt)N}`Q8Zm+7;3)Ey?ky%|z;p>L=UeXSOIIRu%JPP~J(jp;!1D5T)g- z1>YcMxxrU>wqe(^(#u*~2S2hBu^(v(0gyH12R~lHO`ksa83OXVC{tohd6BSDbIW!R zw);H;9JS_>dEsT-k>kA24;kQnWx&BmlqGn*7Dy^uFnUglHnbacM+;48QTfAk7$aa>R8z)kOC6v=l)~n{kM5q&q}>s>a|isF;2fEbvtwtfZu2~ pxk8TfA7jbJ^G+V$YL#NS;8ZJuUyJ_gdyZw}pM`3zhR-M={tHfGm&O19 diff --git a/42sh/obj/job_is_completed.o b/42sh/obj/job_is_completed.o deleted file mode 100644 index 52ebf04660f021f03cfe9efaa2ca44b5a771aca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5280 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 bIc>ZGdJZ4{f*%LEFV-q+0R%6D?HZ_V>H@++}yf zLQnY4cfQ~G&hLEZ+;hG;%Nzgs$0vpmN<^T7v_a|`sx$=UX2@lNpHW8RLB~msK?!Ye z3QCe7ifwzv{a(-x?44V8?YwG-tuwMgK2CeNLkPwO<1kfNY`ah#X^z^i*YF|R-g3|8 zyS^NDi;!oT8bBNL>8`LLdjd1$tJEAHXyyCuEN>ycV}>--dX`7Xmme8v6!&udv*Qc- z{w#;zC||i+s&Pmw-#LGigxDkX9acb`>J0V~)-~g6;d(n# zR|Au+miV07IM(Ue&Fa2#wP4%Zx6B;zoa9SOa1eYviUT-*@|(Bt702vS179~7VB53v z!ON0wNb>EHe9{y#A;!Wsb$H(@<*Luvx?U3ld_Nh?lXAU-pAjGT#dnDXfiU4qbj;T%>#Mxc{khj|^YVY3~r2*gBaz zP8rNiyq%kPRl2d`B03;LDYW0u9X<5ENIo#+lfXPqk9Xh!8CsrOau`A8j$RhY2YJ|E z+WIkSafz#h58MNmOD{}KO`(%3I==Pe+|geT+4+O-BTOsb81zuQLC_RmtAD;TD@K@^gALu?1CdZy05mU zkk77LYV zEss` zNqj!`h1jzAwyxW8{34oACA6&zKUwQ$nc89zNo{23$Sd4r^ zSncrL)QOtb zW6Q*ztI*HaFY0XhHru7@Nm8q&7V_yFn|NaWkvc__ow$*t>{ z*yup@1}t-)`4-e}t=Hm0xD0I(XZZtBIB97$(`HSXJ`b6S0{9%o-h z&GZQ4J~SuMX)HAMqWM=e^_)Rs#uHg(oB$eyn2R(j)c5-YAW;*^5%t4wRFbCt`56w=PL!zCrYyoB&N@5}0 zlB-d5i}saJdx)EgR)aQ`)FCRvAMq%AEJfc2FJmXFXW2L3JPWl;TWb9r+TWPv+`<=O z`CGVxoAxp+e|uM|nYi^PEPvB(<7d;KBH^>B{si3YHQ$38h_0|cgkFdf8-<&&K7o~? zwTgrhxMykg@hfz|;$+c&Y=$)l7AK2l)yx8GUT6(qXRLH+tyVLOr@w4;jhb05bkgg~ zQE68|rYrh7w2j+QSr}%fJIJbZ4g=`4!%FDiM6-*-^a5LC!6*It<{U^wDE!%C3GCp7 zf92wXkMIKSmUurj%gnK~TgT!@ZtDN>;duU3c9RT+0V+a=*6_Cq@`Z2X+CU?*2ou6L zImaa+d|Yr&WE(LT;+-h>Hq|Am;gPQSFHA1|=l8akdf#-q=Rf|h-_5^p-{Mz~J!k&@ zm0xskdF8t=J@ewh^&jc4-{H+Yeeq{&+s0D&oPXfo1BZ{rQt`d#PoH`1%DKM}r#^gm ztoPmMse?Cl6qh>bQwMvnNw+~ZLB0klK=wf%hCB^<9&!QlHslh7zxPRep<5yAAvwsm zAXUf_$P#WKyCRQG^LQF%_ zi}#8UubQN179_;9D7~1o2r-pOh#8s?kH4g6@*;Esm4uiv2r-LD=q;Fp=q+bt(jdev zBI%iO2r(5&h?#&8Q-g$fB?`0ti~JcQ$*dAy3+2FFLfM~EQgOpP z2`|pF0MhdTiKeE)pFy!Xk$On|QhRWTan#_e`VU}5`6$sY6ch}DC@t?vJPw^olMk$H z(`{s>l`XFw{M>BBz2D8+!QWT2Jb@!cw?0ZS6P}y>WBhFoMxl*ulCMb^ZNVt{tZnhc zmACy@W8mmd8@R}4APo5M@f5&8J`DCSl2o*4^qjUpH`AI?(z^ApX!GF0Ps&m)A*?tM^oFVS+Ll==}yh~Aszsun)NF!0l=W=R$Eh=s)fxI>oF5n);9+l ztNJ2S5|-SzA<%kO>ZMXIlp2bDy1WYdO4vyNVPSKIDe&Jnvuw!|x?`6Lc`uJmt&UcT gUaczZ5?=UtJeTlCrr?9zcE;;`pZe{qe>Z^Pzen`Z<^TWy diff --git a/42sh/obj/job_kill_all.o b/42sh/obj/job_kill_all.o deleted file mode 100644 index 85cac4ae77980a0613d2c28f767b7c46fe2019ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4180 zcma)8dyHIF89(>V+_^JzXJ=*~*5cB3V4<|M-C5d7H?qN9Y3mfWfdC6=(Ch5o*`2%0 z&J6e7=__a&+n8NSq)6}|6C(*hjm8jCjfwaGAEZ74Q4C@X@ehmzF|Ni)TMX;(cka3C z%ur}g@}2K-zVo}^Ip_P%JujU9`#Yu(T1=n=#X(I2T>*r48R#sH@6ooT!-12WgBIz) z6r>!DXto_x4h5kc>UZwB=g$A@k>o0Yc>L@$0MKcRi=$*wv+bG6bZgG`15cW4d-vTF zx9^RHMTGMz7ln3C#TRO_m#~o@;nfz(1>^I|^|^}wZoI=?`<1dnyte*=cnf7m zhS(ingr|-}TpX|5Y}P7vy}ZEi-nHH%D!wrlQ2L_rg?NqWd3nIy@qJI>U8V5$ULu~1 zuUU4w@&4F_H-CwE!Qtiw*ZYpbtEpZ8;w9pt=p^fhkv4C|3 zcB_8St^ktcTMLC)jr9eejgR8&`Pa3Qws5 z%dbWbK-y=TmOP&r^c)>CFwV?mPpX=I+!A%?n-3DrJ z`~<0E!R-$3BTto<{!%*jX5lGuhF&G(5A2uroGqOoQCuz^`|PsF9p8zOAEnS;_mk3z z{mZ2jsnXK^GZ4>gnTRhvAI_Hp`|=oBUfT28>(8#Ntdx%ZtnjIyPO!WRlaqJtFC3_N zzT2o5Mu$g+M+%#q8t#N`qa#p;cWxiPZnN+`r#Ro3-sUvwf!C-}w(oOmHM?A^4LhPZ z=h0BgB2)DB7HJpkMmoR*-SGzjf zZ^W|s#9+2p>q9!~!!Y(~UyEfe zi*xWx?-8-=zJ4mBD2ybkL8PvN?MBPOaC+4j*Oj&EYtT2d3W~8FP2-2MSKvdtFfm6A z%es-}2GY(hlKeGq%D|bY}SX8rU_}1+O_&n z#^fH~L2ZjZlo#<|a?g$aOh;Kkllne%S4q|L;DhAPrr#Zcpv^47) z2)_U&Ga9~cjYet@)TA{YsadFbs}!j@sB5j;p#Bz=%tI|$_d`5OwHNBB_4!EcgE}rU z{A7{Crq;t(SoWXj21Mo!uqoP;TI!SJTCPfF${9x}rnGnpr(z7CdkluuhZ0`_`;4*9 zd>mZv`37#^6VT*&6!f9E`AujJ=Uu_gJPl2r+?800`7$(lIzw2AFzRqS1ygE6>IYy( z65Dgf1lKEXZgNzIY@sb7W#`EsKg48|83sNqt(|je>Yj^RccmTwVm>GrY*k3~7x8x)n4HYJnC(JgM)1o&~)G`YY%>s0RTTKs!KtL7xDz zHZUYuENeh$ObwctGRnlPrisa}OsrCxShmW$#VV(X#i`(#(KNAClotz`Cf2tyJ*P~JPr-Ae z>BV$cCZ;S+%yKo6bxsq@UzvD!(R3W7g5WJe6Ym=3^?vziBG;I+n4y}wU5U}rn5Asm zk=uoKD6i!+X7VJw81Utwk++DmvJ&0SVj`RWf__s^SWiOig0C+ALkDib^ZGJ4UbXwD^bpq8+}YJ3L_*9S;*cUGSZn9}HJnP2n8Ks4Dfw zfD#YqsHabtC+g0YuZqx7JsO~3Kt>Syhlzw`p~Z5Vkxt)gT%P#0Va^)q#4ScXakG&e zGjxcl8kc?rppeu#j!LLY^opzESb@ vii6QF@w(z41kb?`HHvMj=OsHiU diff --git a/42sh/obj/job_notify_change.o b/42sh/obj/job_notify_change.o deleted file mode 100644 index 6db4d7e737d07f67e7fb94dd0921a57e260317c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4456 zcma)AZEPGz8J^wq-tPH6W1GmW>*QLuA!%ZtNkU__Zb;fBy0$?9Y3stC<5D`KYB-BKRNPLw)B_Jx0FtmcIgcdbC&+M#w zcTTBCdgq<@nRlLjcV^z%x%=fie}B&uLW>AgkUmJmK$V4{+yJ>s@B@n5A9S4K7?jWk zr=X+>qS&@yKH>-Mz!`8fNkdKf3F9m6;x7x1~BBjH{?ughDAYkaxx(&Z8I6^g}X`7qzVJHC+b zlHyn?U#(v8IHZ^FPA(wIITgi4IcY*nXM%Y|*LCA-7V6biYe`?1 zZ?53T5PRbb`P6c(fUnSKxMjOum}7X$-uIGO)vW(vg?valN!c6U1+_oI_kAF>w60;JXMG)S z4)5vP?fMh7ddar;?g|~LuPDB(0vq7tmV6ZZPpx?mUwPK9G_ktD0Nd_44`KnnBT(X; z;!~!;>(7R5>M-BjT3s^szV8mjw@C$aS-o%R1LEVnpi78&aKJJ6VTcQmueu0*jNOn= zK{^W`L0Nu8bb4LCJ(FK}J%4I(GJjfb@ce0!U)X(h;rQYU;;$T$Kb@57?95``c$L7y z?pO1tDO34{-{u!C25x7MzZs0ZBJCeCp8VN1z~ceZ@qoK_Urm3B`zwFyXOo}%sT{DA z*_YkB_mNL#50{&*npe+GO-xQqX4g9|j*RiCNf;AbH&1+QgJ?CK+(EB6?s#>->A7s% zbz1q=Rdh6JCEMpR z7n<0Ac4)$X%Vu;Ge7{*MwtXazZ&%zxRk&Wgnw1qfE460Jw;N5*DYxk2)>=O3rDEJ= z_$Y0+YEPC0tIh{1TN1YGty;BSE@jDF=XcGY^GbYlxj9$!TEekwG6vtF0*zyP5^!vZ zz;;915sm|oB~DCPQ$C$}OQu$%TrLS&2TTEg`Ei12a)Nns)Jw{Vn=QMpEho-tH=B4n z8*|u_sEQRQ{~@8R(r!x)8j(~cI+9wY4Pcw-695Oa9sQBio$z=(o58*fWEnm<9^cL^JcASsju?xZT_nUNDwNLroDZP)KZYToJ;LvT zme#b0e%@`%_DR%z`uWG0=-R4mpkLjZ^l9EzitB;A;8MK&cdR8Cni@ktWjI)2UK4!%(!y2J=i$0c#<+#(WRzSx8^rB=L73kxk|hd@rCGU2D7yWmwTH5OX7{*I=7BSg%73n**^$ z=+Conh!MR7%ck`a#&A1Y$7roa45HsWh_(i?)|hQ7NaRst7|OJwtk^*yKq`nuRl z&~p0Mb6S23OD@y~PRm7DCmG`H`dA|N8(4B_Hgb|u?2sXVQ{*4onMb$$6i_3LWC^g~ zdp`QcT$0;V?mg&y|~+y7c-R*6HL)__Yz`SC@&@>A?B!pn3#k(i;AAd6QPq31@V|5#G^+I;LUX6MKz&79)Z(A1G3E6>d@%?a2p)b|j-^5~g(yUX1r9 z$d$KAbM2ZMFT~DN=4t)jWROlmtcR~I{zwMx-Bc1aBW0*s&ou>C4aaTstDS4NnmJ|V zYFno6=tf#cdt3nIY;{q`$9CCW2M;5xu0s>EJkA1tw2^sB?LM^SMFu!BPErQ$Zp&BW zf_sN@2(A|}FcOOf-k?O%n$h2Hec8AvYGn>2b`=Qy7d`$6aVp-Cc&pJdQsEjl1jkz0i2j_!u<8yPNZm@W**v(0>~=#z%8X zuTy%B(onMhA4*R{r!gQbqiA%PVqcHVn{H=+vB&m$Z2ETktGIxw!rP=>@tSi5+$2i{ zzksV=z3P^Iua27~{!1u0hj3**WLF9`S4i(_*_Rh3X>?s`yGK;pg=R_E72GUw&#d4V NQZU|`Yw+eJ{s-rBl#T!Z diff --git a/42sh/obj/job_notify_new.o b/42sh/obj/job_notify_new.o deleted file mode 100644 index b1f5b6a485dc970a5db27c8771c3c825a016c3f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4568 zcmb7HYit}>6}~gOGduh6?)s6$A$78;owR{u?K*~7kQTed?FLd*O4AZ(HCd1Mm9BS} zomnStVj3k;6w9g95c;o_sHy-V0ikL|B?>AHP_-3MDMCC{L8#iu;ZdxjLQABY@0+>f z*xQtvt3CHT?z!Kbx%ZwsXMg>lzrPz2LJ0_Tpdjd34P6R^wi=Y7{yuF_)El@UeS965 zf|Qi=Ow-97aHIlens<(T;m#|%FP)GA@fgeYRv~oSg5ofl-%Qi8oqDNKkcMVFA7_Oe zFS;Q9Y$4PuqAQu^SZ=gYFaav{9d{4kam#|&*QIoci-b1Sga^|SNFT3UwOoJGT#9#m ziMJ4W!*yHSE%EU2vZJH*+yvL}>Ugh8gyrIuD)}m>G~*R{Akf~CQDnlNUdDcKU(l`^ zUp-qXaU77p0(T%o8$BG>`f<(yf`jx)UXyzi)tZ@UcW z<`0a|!>f+&b2qp-zDFfqkHq`RGV$E_YFVop@3|(t$CiobOxCXYz859lH|47TVwreI zVi&SGzLWBN`0razEZSL5Y}#L|I*#{r%tmE@sWN7oyLK#|aaQ7`r12r(@kpM;`ICFz zgqJIt`8syjo6vk8ye#pCB;HwxCsl!Ktmw<+e!i7U6&JDjeUlN-d#4O$PQLHg-X}h; zi+dMFy@?FI6Z8oDDL(^#4LGmU+d+#PAK}wt`*P&nnd#RvNB`EBc~F~#e`b2>?aa*7 z+cVoT)6bt3vxK0YnRy_IvAOAy*D^<^=0xJy07o9Y@w2YO$XsRyb4O+~Gb6JzwazOu zG2qX^YfUq7IUP>^vEljqd)7r_uRqpY+>q48%pXh=6 zW+k^jZHeC9HZXb%`>XrLvb_WSc2O+#p(-4cz3uj;F;S{GqE>)VD~*{BcRgFjaWs7u z<6HYNkah5}8ErVoCCAK{vjtJERthP%BSyYdw;i)quUa{qF6EN#;3+O+#5wp#ZrY{$ zbAsLC2TI)qY*g%0p^_U*5xK(8rZZk0O9)!^m0;d1)EMnbARdhpLI|Tp1mZi}sSF~`!aY!LibgRKVR}Xvd{JD) z7JN1Owk&{REUqYgP+~nEv<LNeSNAtpBC ziEOud%+&RlAG_z|Vu!b!xXTjzjtbwUpW&G`<7rGPU(;w_&^piOA};YIoAu1j(k> zt#)^c@DU7ZLH%{G8H#K5Ij~cpU`8kY8Bk!eu4Bqm5cPH8XTUT=;|A+p=za%1v^w-B zu+C7MaS{A>m_r>5>giB|Y_h?WRgo_0eC-v@3e$w{)1J7b0;VMW^nFMR;r<1px5 zq3?n9MK&2vgMSz1$Va#=&q8~G+GZ}x&!PQ<+7|B6d1&0rNE)#lzlFwqi1e!6*BGz( zS|47-c-7Z#P`i5;c0JOsc3&?v!fQW77yc34bVWM{S^pKfm#C*&iK?`{21DB$ekZg` z5ZgIT`zIx$Un^As{qVtsM2@41)9D35x<+TR?FTztC+U{%f#O4T{L^m5o|*kY5DT*k^kLAAAm)PwngC6MnC{;PJqP*? zXclxC6vt|>2l4#e3i={w9CR3T8pNH%PjG)&ZJ_Z!pov#RI|$7N(ZnIH6dH4uCLNue zct)C-@6wB>n_fKi(!{eu6AzCxF-vJ;@=6o$3z~S1ND~v6Cf+qNE+!34Oe7fuvxX+7 zqnya>r-^AOy^cVoi6>T?co)&c+e1!d!qLPGlqOzjG%=l|X-InUwvZ;?T=e3FBSR%D zO}tm67q2;*7@ssTw`t;b$%+5#B!_THdD=0C*~ diff --git a/42sh/obj/job_remove.o b/42sh/obj/job_remove.o deleted file mode 100644 index 5f68e0e7e8f8f04bd1ab2e6a0b9dc9014ef8034d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4512 zcmb7IYit}>6~43UnO%F=yX)8quAGLA5}PE{UN;Y7nz)Ti+-^!Dpd@{uR@3$D?CwPC zon>d7G;u7YO@-pRky;{t&>v7F2>C;Z5EYFC6wwx1N=pS2FI8794e~P;RThGB9VAct14@5~-*Hy@ z1U5JYB_qe_x@$h@N&`yQcaPt*`?4Lh-jogUF_t(8(!|=tVXC0$y5YDDt5%jkm@nXY zQuaTq1tWbOS!g1jqB${D)2-iF2jx+z@8#qcmIagnU)44|uP|Sf zFTAC^6>l;8=AwLsiHU}}kMD0`d;#CflIB|ZtXj$DkTBn?GQJCPzNgxK;=}kJ{4OYq z#@8s+%BFKA-wUA}`cA?pX{i_Gn=BY!h~fAGJ{g|4I$xn)ubO(TFv;+)nC~xSd|PEe zC$1Ww&u35U^*(SozKG1X)spWo*U0C^S1%Z0zJU;*mTY-*elzs`{P^4h^+o4gM{jY93>FzUL+1s0`*sIp32X5Fg(Q zx`ash8zzJAg`5URs^Kmn>gzN zyUuSpdJZn>V|1JwNB6m=@3~p8FF)t4u>4#nTtK{MK0i0}UVirX;PqJkw$8&x?}J(p zK?T5>{m)HXwS6+jvyUMn77&631;mei^R@E$K*VJq`%WSTiu320wA2Y`7 zCcAUzUAwaT%!Xsxwd}~y@X&B}jZwuOIXE&5V`$_0p&QqJcu2WD4#wxo`|Z8OLT=-F zry?$gEUcoiYAz8&xVontUzMze;~~JSmg5S?SDd$rAyVs(b4AYv2|Qv!ga%XbQn{O1|Fuv(;wtc+C^+guGyHh zY)2TnRjL-s!ZoNkK({@>&^-ipHLwj~81QI@V^j(aFK}*1WOC}JiRZBPnS4O$Quziz4k{fwn@s3SDGJ%sE5W`Q zWEnme|Svc)Nxc zDb;n6Rmt`)SmW&bWMoxFXwRV|_A075NaVWsSD|_%OWMBI+b@xJK?+4)9;uSP{Dk&3Dn%@-YTA4~gE8SOGL2 zPbkR&G@gOPlL{W3+#HylFyqNv0y70Ole|4J(=dCJpM&{4B%XnpP1e!;JIyYbBguyX za|z6CqLZNxu{)-uUV~1*g{nt%z7DmUcwABMrB*U!s+c!|m(F-Qs{9wn@=)F>Kph;` zKIR|guh+|TaPi+)_8AAM85@PBSV#Z;$vYdhtV(#)BL}8v2 zV&Y4PnMsICMnYUygt*is7t@*$vt4>|5fb96lo0co5Yt>j%yvRt1QKGp6XHUY^h`xU zOn&LbTqDFJmJk;eAttY!HglB_b69$PSnkA-7yPCeA&cCK$g!XV*`yr2Qz#E+luR-f ze;i(X?sCY;1@c_F6l`T;ES336G^$fP zgmP0(BPXq#wPEB_3lZmllhghC^8!!c$dcAu1D;ZK+@T8hW`6|QSQqjbh0*4Zkav!d zCsv2<9h|_&4EkhZ@nor$&FQVr%Ng?-cJv{T43^?1Riy=%qh` zM$m&lkoE~^%xLg9G~W5>W6%h1^bjF2ihi10Hrf{0X#hdNwVD0RvNB{3hHUz_`hOv0-yX8>57|O5xq7|eR&?C@ zidIA5#^e_8p=)Ja|LmIAU##Pw3Ag06kr?=Ep=!apoHKsA)G$rIWlYw2Me;l>M{iyx Gh4?@DdC-gi diff --git a/42sh/obj/job_update_id.o b/42sh/obj/job_update_id.o deleted file mode 100644 index a0818cdd0245eed26a78dcab8a9e78d4af8b4a22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3956 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 diff --git a/42sh/obj/job_wait.o b/42sh/obj/job_wait.o deleted file mode 100644 index 8eb10c592e85d5ec53430f86dd163a68fc151476..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3712 zcma)9YiJx*6uvW?*=!!&Y??l4D2r`;KxcQ8Mva>2M!UL&6r}bMgfi}9l1#dpS$AfW zv|%+gtz;VmEm#mltRPxJL{NXUe_9_f}FbI!gIoZtE22#|qX=3hBl#FQ=G<}#Wym&6or+j^uf~gu} z)tsh^l2y~iVFjS}ilS`W+rRVaiq$^u@EX_j1u9GKqz2N(%NZGa-HUg<#+tEjmx-53 zrwi&h#akPni)KpUc6l%yzXV_JUyg0|>B7->M&WXF{Ij8A1qBq}@ZhSnLX#mhTd6)R8E_N?$atcGiuLGTeJ+-EF zK_>u$c@|VX=oLh~)mASpIp3Wu|C*e+8cWVgUjd_Bx|uAWzf5jtshr9A2Mf@(BEs^L;t68r*ThT?>mv+_MW9 z$@${7Gn9TgaoKi&a}>7a#ElyNQS!GxKb5%3iA!^(8*{~LwqfTV@!9K$Z+6GUmLoC% z-4Ht$;*0o5FkKAFlB)Cw{!rgDUXq%_VLpXTFT>`(jGd$4gTO)Lf~ftJ4fmrHx!^DxE8q zI^?a{Db>i7MvZiMBBfcj(8$a}CJL3DF?6e7? z?$l2$H9Rn|XGeHkEts02hkGKiNGyDRCWr5U+!KQk>F$bjKJb6>Mt7U=jt);4quErn zyUQG5ZZ=HQEv97|f+bQcx|pc~I)>tku-Mv#1=C7dMUx4wLPxMo@&!Zw4Z&7nB~FnT zfpVn~Z}bHpZF;QfzUJ+1Pv8XmBqnmz_BMRgx@$yfGxG%>Z)(DY^siyt+Z^(QGbmyoMH9NFn2s|Fk1pt$W|z$1=H zjW4OZzV;2S!e7d!4hBSY4QWu*5zxteOoHBNniLn+iPmD%vrR>@Bjo@3No(&XhyNUe zZa?TH&~XqIf$S+?>Zur13{p|e)_^dm5~QL6aTV2xR8&5$s;(2XHM!O!M#`1+H2C%r zLd|gV5)STU!emGYHP;7@!HQyQ2Tk81l!XO%`&oZ5^osb@3b&WH!&YR+U?~WH2Up-J z&^tha=Z3Rr(JVwYJ(DYD)u^_$=b>7SdBD6w5mos2-@Q-h4uE#FkrAqTWsd4QcM5vi zG1gEyyS^4d5*q`XrPbo5Hp%brmDYbC$wN|mujD@@`TWC@7>G&%F+z)%B+=g|Z6wQ0 zux#wbnY|#b_aBo2&UCFatsjKpFOn}1mm0{k9-cmUioSz^OGhQ4C^n!PuTmu#lS_CY zp4BfpT-Lap21hOB0dV}ueO%w^aCr-t8^Dp3d<}^qQ~3vQ^nUpQIF{ry;DrC7!{v9m z{1!Ojm%+*IAlK8OgT1VAc?US*((gxlPbWCp-^17G$dNsrczVyn&bmL!`MsRe*9Lxg zrNgP)kPKoi^xz`~UL~@yM^1R;y&jq3sP?D0t7WFRM+T>&U}RL&RK`+;{rCsTZnMge urQ}oAh@u--Rx2=)vw8eOW(_g>J47AZ#?VZKe(L2^OI_5MmXXgxX8!_$IZSc@ diff --git a/42sh/obj/launch_process.o b/42sh/obj/launch_process.o deleted file mode 100644 index 3fdab7199aaeff0598b16ae18ec5ccb9fafb79e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6328 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 diff --git a/42sh/obj/lexer_backslash.o b/42sh/obj/lexer_backslash.o deleted file mode 100644 index 0e3a6241467419b8f59ac6b329d0063e2816a295..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3540 zcmb7GYitx%6uvXFvybj}TiRMd9&Q367}_mR8ln~1(#0)orSyR$V#e)u+AdvYo1NWK z2^bQLu|gs~qlt+c#l%E^sqqyJ28|{fH9^B4<0C#ojK)f0f|7{eH*<%!3ku%sIo~~J z&i(GW_nw)%pZ)dg-vJ>MO+Z0>kZ~O<20>c@IZNliwC6CG?I_2fc{bgY8amMoqhwB& z+`en~CwKPG*j{g!?2wPswpI(F(&rNg30^adA#<=iV%Vjk<1&oS+Y`N;y~o1i8Rw$V zev$dPmZKe7&-VE8g{lj zkLOLp%Isl!7p?aynP0oi=h$WQbNLE`yPX5B%x}BoTPFFwyFxxEzwu1AlCNCBr&rBv zoa|NXpPOIl?(s{m_esh3l-$6TSICE#&Y`T#Z=K)G!dveL;mhThE$qQMOGeq+o3n-t zBi%WB#9fjvCY{sZ<2Pjp^(RxVSg$#13>R^_?f}D>`#m@)`8Ggjuw61uM3`xuv-!wj!IyXP{|) z3ykL0HO;G63cHw%=gmp8=xSpylO4138GE!jE8+t-hQ~+t7IqJ1;;n1!QDGVgwo93k zDLRvz69egfV7jYY^d)=5?b~`g#cc!K9m!sCYi}~qFVe}rKDV2=t<$lH+XuGwCq<_V z9f?g_`_hTNl-QBz6@5L)Oi-2z;+>9uu3K#Ni^)-K2uN` zC00tNh!S?3u=53LBv!WU+=yik#YkxJrsBnt9nBO)sW4_*;CIoM$d`&vg2Uh_jvmUC zGR|B=nWtPAt=F|^t$$&3o>GUJP<@IP4Toq3>Tu6iN-t#i!4GK}634udFIBNz~B1h^DJRMpR#DO`=%u6mNMM?FWJTlpCC zaY`}BY84T&%CS&I5((Z#s@?&^r>xS3>D4SKMdO98YLj$m2cUi0z0kV$0JL9w5IUee z0UgwyfevXeKv!umLx;83p(EPc(AC}zH8Y#C;{+b4HOiL&MOPo1JmuJ5LBkqvV(vA! zLi^Q+M%!r3>*Fc{CmG=jeg_Et1Qq%nio>)8Rebs9YjxqDfy)rBHKEVF|%hMtAFoe%2*WYdE0%);inYNz1I;-+AkSMyu_zhEW0p~@47!-BoRPG2u>xciUpl&) zA>2hYRvKL_DH-)&=NG`vbFZDTGfKYJB%0H_V^#L`3T3iZsf`4JN99b55P8?1Bs+gz zju#>kt-Vj(RP7d_5Z@q16%Ruz%DHGYw8A+cO3upW%R~5gbK!0g@v>cvOMg7Kc75Ai zkA1ftcRsN;E^1yz&7)+hxCC$`q0n#%xKG^y=%X^_Hy#Ez&!>veg*#cRQS?aFA9~oo zMXztygYCNN->OGp)%eSLBT(G}IHfN_H?~Eug5xFCj|GWdcR@{UK=3s^>e~Jz5|>L{ wA`!r}{m)87U(`^^RtKDAifb!u!OPVw&bs!DVR;|%UUP3G1OFdQYlxKp06T#HSpWb4 diff --git a/42sh/obj/lexer_default.o b/42sh/obj/lexer_default.o deleted file mode 100644 index fce1b2678fe968e3381d80c6e2c1005cca73272b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4000 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 diff --git a/42sh/obj/lexer_great.o b/42sh/obj/lexer_great.o deleted file mode 100644 index 6b6d3d0c60b17c88564460144f26eb914f1536ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3872 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 W$M@6IEc|`9or2(dZ&%K}#Qz7>+Cmio diff --git a/42sh/obj/lexer_less.o b/42sh/obj/lexer_less.o deleted file mode 100644 index 55ca67fab76fe3232c02d08a5071fe50275f13d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3864 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 ABme*a diff --git a/42sh/obj/lexer_sep.o b/42sh/obj/lexer_sep.o deleted file mode 100644 index 0fc8b499c9e038ec6695c958f3853a64c4db740a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4008 zcmb7GeQX>@6`$R`+1vZ@-Pul4r%B5}5|c)??~(>&k&EkdeChgfX^rhmBR;gboY(f1 z%bvMiCuvD4(`zdZS0ZhJKLGLZ2SSK~K%!DysXzhILM4dASA-Bs{{S4Rh(HAjZ58u- zyR+BxC81%Yd0+G1Z{EzCncZK#@wcl%#w3M-pa;+wI7kv5Z4>$xGTxvWA#dO;#i02* zFd6kY8PN>GF;6+3?CI0FBhzo|zI29?KqEYw_Hv9d$_>gAF~1qcjCpKv&aj=jYchh)|_cyi+87}r$~>jgng;SuZwrQ zRCZJB%+JRY>D>fgXqqR3KTi98ZUm(HqTW1o;S%k!w^myA1&9}R{rq{_VWf-cTIu@hZv0Gg z6Is4T|Kwk(40>aYWt%UL#dAL%FJIB6tJs?6FWePlbCz>&>5ZSJKl+m_Jvqrj;qam4 z3A1ijYF2V+Fg=(~?kHFBP7VyEp$zWXJ-F*mX4lK9s(H$+d(^Pag~2jQ6>S8j=1$fg zoGGRD?6&8bX~4~PN{-3KatE@-!Zdhc{1BVUO|S>IHGL#0ZSPm;yZHGBVwE|{) ztX#7k6GMU{ZV04@4_)7Q27^kfF&Dul6g^XNO72`t>Xx?0dbtuysGDQmQV+@~2P7pHiF_ck7nN3aFeSDH zw=*yZ*B)skti)*Kz0vXBd+ zL{UzH29!rYx$+pOsx(1^%G02l@&(Y4@>S5V@(s|4@;%U~@*HTF|Ji1(e;MiU3mA~& z(r>{eE9p8G(t0e2omKkWobqOlDo`Nnlbb>s5u(! z2@*2baHprTIz;!SCGLN~Jevv&W3PSthefI%?Hk#b(W$k^lHM7MM|17}@u7I?8wd=I zUVe$G;2dSdVRUuI2$xP5alE1M@MQWpk&POCZ=5G9w?B8W|L?ypZ`l0IKhJMo;i*?% zIQ_miZ@b&NJ-zg)$d#A(Jd%i>_Ml~c8)kv7=WRQsvag(S~(aA)W6<%&pVWKJv6CDKdqO(CCQZ%=C z;8btnMTe5SsLaBPP6nAMS1}`%n@n^9gjW$NnFi5m7ttsmGLg6N`d{@6V&`eE-B_21 z8%-GNnqN`r;YlW)N=S)lP&+Fo*#ggrD}=MQ=D!Fm8%sPP@9*-?A5I*6W%eXICF#vr z7pO#Ypi332TwR>O-(Kre!cvQNJtgd^%H2cnUvIG=vQzHsYBTS-ADkzo*2|9%5Kb3f ze$Vc?LdJ0v4?7gvv4G4%-YW-1iAy{f{ufu(e4cly^E|5N`GyP+Ww@pumQ z=Xf9FWQOBX+5pA|KI`eKTPa-3exctXI2diU`bEL%_bCp8 r-$-mz+13u7UWfK^X3XO2Y&({Dl6hZGqheL?A#N4Z^>Dwh^qu}Ma<_Zm diff --git a/42sh/obj/lexer_special.o b/42sh/obj/lexer_special.o deleted file mode 100644 index 497c3be6c61cd53d45b2b736b6d33cc78efcb393..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3920 zcma)9Z)_aJ6@PnsySMkpcNaUP2?=mgLP#p?Gl@YKnBYr%VQuWh^`Fon&~iR+?1RhR z^>*!qe-({O#bJ<)O5qEFFMI+?;=EsN?@QcsH%ZwKxi94D{TCM7LNJ@OFRcH(1A%z zDK?^6mS-RJ{JyVGwEGM_B~TvZn2+xf#p#YQkh$19#@e z_6EZg;8Z2vYx;$upc4u@ECal9r6|m;cuP&**dC*Cw&*u`1bBt1shT~{_|5SJcrQwr z%f%}>hbla!6)!6`iRicTd;ciodjYwS=R3siTCn-?Jao!yi7drf$Al{_kM}@yxhQZmx+f%Cm>tni}2w@3%>Wcgs(U7mi!hghw+`B zHRl{DIn$OkJka1v-4ZV&jc)>vOY*O%KN)fho;_>f6>|}S%zFMbwA1E7 zFUI(`4aOGUOk;5Q3@`Z_on~=@zo7p1g*o+8!VK(Xv#w(zmT3SzoBD&X@XfZ=W4sY! zkyAvtSI*>p-5=lHJPzM8na1&ZQ;+c`1@kc`LK5tTzr&1g964>)b4CyVN4_|6)?7HL znDtX;{cS(Wg+FKR`BRQ>h0O5qfsxF-U2{tnC)3;2-PN7hRxINx>+J1@($%x0>xS** z){5D(eblb`+;XdSu~aB`6)8LEVsduoNaeoiLbhjzJ4?0&SJx|eHVx$W<|c zXgohkckUk>pna1gyYpjo`&d3VLBsj+alf0}Hy|{YKbhP=k*5J)?9T1EV|+L_Zqk9= z7>$qS_YCHSNdy#xLM6weLfQ4mv&tn1*B8Z#R}gCv$EB=Mu1$7m zYBH^FOs-MdQP-icq9)_T&RddIG#Hcx5lHrW`nlflx~M7(&rPPal0(=%0f_t8VAmQGz{9n*^vUWvi zvk~8d-Y9G9LYvc+i0(rF96YqEql4&%K;gS1oY{zBFt%|Q_dCIK#W(~J{TWyr6 z)$Avp{RL<9B#7;c!lQXEn_B0dM{C4i&4=eRtz}0vzP1(8AvGiwr73hG#^qXL8HVI2 zxz8^POK$vFcu$tDI=;O1t9OfQH~#uRf7^IM%f9vdhi^Q0n`^YHI5=Pl5OpnrqH_}CwTehj)5#JMYi=0SB3ryhd17S@5#IEQTF)JhXq z2AepcI9J>_>1^WCkX|CGFmaZpi3@?fxHk9|L=(w_SsSCurh{l!1CN4Ya_5bo0!Ortui@5>IFn|ven1l?HsysMG%F(ovPDG3) zxy~kdEUhrq`SWr6Sv{sj zhTw9m7Khf}rx{|ZK#uomdY`5OBE_B_+ztx2bf1Q?RR_|#k;R%rT5?F+fc4g+drhBq z?U1&8NQ)tyS3){=c%9gD>a6-3-N_|`&+mN3*Yzi*+$!bOQbO={>Mu&kzjjhE1dY25 nDqYv2^Ci$YPSznj%dY3xN63FRt&&s13*3}2;Uykdex&~gDFIWt diff --git a/42sh/obj/lexer_var.o b/42sh/obj/lexer_var.o deleted file mode 100644 index 0668ed3e08042ba723fdc1f1ed562bca8f86a402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3948 zcma)9U2GiH6}~gGGyCh^^$)?21eQ8LsIb>f(#UGv)SGz2+H8Jmdqb!a4V(4YyXj`u z-57O8@V@_^Jn&;k-vv_OzrM38tW5=i9%RgtPzrYZupeTayQ`+YNa z67Le4T=|@H&$;J*_uM(>-n;(O=bwDx7edhl7{~`&(7_TQw3|Q|Y5a=zTEHE6f^*P3 z9hia?qY=$C>()};?YsI+`tZyZ-RrH$4)M5bHtOO)IqmsSn&zx^tTAua>Q%>Vn&bDS zruJTT@o*a46xx#E%5_{_*T0Nct`r<|C*ILEZy`S6=Gt4EhZkS|*s-d$$avf1^YDHl zF|HS{WY1MNr4w&euKowP-?K6=XYl=G`mP#ZHE+*bwJ+nH>&W^3Q2S<~T@~*{zTkw| z8J~wI!xPuW%P%aHEz{1QV0d5J@0&8dQ5n{OYsTl|RgN8Z65JWzC5g91;t@3~S+ZwMGdq68Rfw(fJS3#?Rp9YXc@Fg_L+-${isoDu*>xwFX8V1Rk$7Vg??Z_v zRS_1V==CYR^Hwg|4r1qiACq|7Wib6+?(FBkB0heXI94c$Ef#%!J-IrOuC}KbA2Ff`Hs`bbP$KFhTm}#X~PLE*p2Cm@^oKLSp6(8U4 z8ds$EN5naE+j>t-K{$<-R_-I|wEFRYbRc%@+^`#h^lPR+SlP0+w$@Cqw$iJa<+p~9 z{xQYVoycYn?Mp0L)mo`yCq{;bhlUed3uRnMgCoOGhIVWl`o>+NRxKpU){<3qxw)9H z4i!W)SHr~Q{K?Ak*?e-xwpvkGCfsWEeBBb`>Ak63b_Oy#u}@5=4~qK^OpS~ExqZ9S zQ{tYfbZSOq)6>&#H?@D<(I~%{J1~!8HZ`3Qhf-5w`e1s`L@FzsU>Jrd z*>#aG*Xp8fmP-&dR}?CC-NKNRX07y)CCJP=D>Yxm5ps;s%N2V*(XeZ!dE1&z5YXmJ z$%m~_#1i$&4=fw_uB=JPLro)vgWxdEp3T?u&RT%rmq29RM^UUQN}`Alp}XWCVIb%1E}jlm8OYaoP!;0s(%Y+ z?+S+j6o?5r1UEpq5JH4{*R2%pg6~8x!AEewBF@i*bBqUdg!w!^A|mdlK-=vKhdZT( zo|*&mDR*lRKnkr0rf4>}s_`d*rkw=$X{W$-?F_h~HNpMbPrw7()8IkvS@4kdOYpGv z5_m*=1-#39GKKI~Qx3g>0X3%l6++R~Cl}sz^nZXuE8fP~V>xg`ee!{?Q|r#V+L2jm zJ--DP{`2(r1wMrc{0A(!2KF9EyD9W%h<>dn{1?b=@Yed&0TKQ?G~Qa;4eCH3ya~O7 z)HbLCaS;jbLjT|J&~FJ&p!+$xz9aq+y8b|b*n#h}e><3=1m+-uKLi^FDSJaB5dF%o z@EGKCG>vgZ&frdz6jwCSb2h!3D+XVHn&x1SKMSD;fgqN)(OL zT$}sm4F3Mj923hAN_)%kXrD_{=Um(%YwPi^<-;4E)JI1&K1T{JZw(i-4;MG_*f_?r zBVm#C;q?m`jI*>U6>`CJfFmA zYhKcoho*$G6j$OAf8YtZ&?b2P{Gyvy?|h3?H2!0CPnTPwLL}jm@o+Fe)l zQIYbMfa1gQK2-$W8xo2ZQ}jqEuwM@wlX~x{9vIbC<6b=qO*a~P_iK7Ty8cPscwUbi zzt%Nq0b^PBLmH!cpHZaAxL?2Zbv*`K*J0h5^UV5<7}yN!*CzGwsIDD`%NZCab#)Rx z%lggehM+yFE5>)!AU=?IhY<=f_#z~t9DEiMhiQ-p99tP&l=@Lf`lTW983upmO2hfu zxTo%r`YlpI(9d{AN?r^x7`(>rI#t}&q3`U_aZk1R-`JrGbFR*REDOb|;Nxjkowwe7 nc};6+A&=j`eEsR?Jj;CE&3VgtYT@lZywV^4cUbl;mJt5~WSU#P diff --git a/42sh/obj/lexer_word.o b/42sh/obj/lexer_word.o deleted file mode 100644 index 1fe43cd13bf29b051fd5add5e442074ecb9cd5ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3916 zcma)9eQX@X6`$R`*}L@@xU388$X6;(Ns^p9nTj$ z7u)>{@RWPv@_70A`LbiX`Qvo&Q|oDqhwK{v}oZUZe1yxI#S7 zzxjNj9k0I)@5~kA)o-6)b-mLH?{{hgSFR8bht7j+_ph6W6D3&hPh-B^MBCz9s2s;S z>vqFES#pcEJv!86D+Ux^N-56*k16>)@=v+khUd)LGgU;_A7I<9_rbKn+pF+a6rK`= zCB$6NCJ)YAx#W6??d$!q!pkaWws-oY&whq~+?OOxEPtcv{Cd<^)OkwcVq@;X4{-#w zxo`?rbtId+F58~WE&emN@OEEr@virBi;b1sQscec(r*418_STEb1#@;uMoMVyH-{R zx0ron;hac(pWZ&D8`>8}xI=^rQPNR64Qj5AO2-pW{CGo*i1rE&M^tExxpv{d+LkQuab_ z;Y{DR{*>W?PmPXF9ZH>WsDiN&+lu*g|IXT+aBSGs>iN1OhO!4TlcN*hqr->9c=m|6^_Hi@ zRCwNaeu$D=7x{9nF6wr<1XlA|q2ksZbSZAvN_RMd#I7@a^HrQHPYJnPac5Hvw^o{U zonnfBE}u`nc7?foRn#lraa`d0yrwu$I+bJ|f=4*In6Kx(xd6effM>z3Xlt~u#Ji;t zPnsL!YqTz8t{&2ixMkg7-H7xywhJS^3CAVW3)3!bZ-)_Q&$ifb_t$YMr4+hS4R_%K}g&A!ra?2j)Wv(b3&Blhp~^;ckKt;MB#uZ->+LhiN4uJX0bjc95a$ z_nAk7=U$(J7}9nad8&;Ph-UD?)D6BOhH(lsWPA@)8ux*k#si>X;}Ot^@fc{-coMY3 zcnZ`qehnHko(Am<-cccf*|e$C=+G0|KfpApKRo{zPyQDuq`9s1JuwMt>JNW=2cOp~$;nkq zThKZ}X`Q|`DPqw*XnzO`xg|P`<^?oEN5e5R!;uKFBj03u8;Gez=t=auAcWTrbld>8 zUfW~s1OFLSdpYA#w73#2!x^~>Z_)cWWAs-L53;i>d>BkdqP>`X$r=*0EHzkG+V}jDI;BUi++TX^6tRNy8VWAtd5!3F5J^ zk7>vL5GpTBJ|Pj*D5`ID@giS`XJz`&zg@oe-E(LA@2)>s+T7jq+Rj%CYd7k@tXBH& zx!+30PW+~jdi2gm-hXA|RlD5HzrXWq=g(l=-%yz<|3yt=(M*@!sEir6yMlTz>Z7Pn zp?dLwEd#a=9EG8UBp7j}V)&?HL~-0$m`YSJx0KbCQZY_k9||*#R$RLp=tU4B(^L&) zuF{Ip=Tm~hkWh_`mfn9xoowPY+Dc}UH%36}St^CKD@ZIOv5f1vO04E{D`V5^HC!cx=D$2&na z&Vj0x+(Nlg#8=y;M@gg`wQ5@F)1_SlyIVE2+iPj>md2gry&JuAMEc|j!Bd9h!xQ3n z__k;x8`TQ|A%yuux`_I>BLpL%$ymon(lSS6_n?dnO5MC!#vxs8He>?4b6T1+@{8uI z+zjcE_4+y>oV N*T(+}$1QTY{{u2+SN;G1 diff --git a/42sh/obj/line_return_toolz.o b/42sh/obj/line_return_toolz.o deleted file mode 100644 index ed542b13be4563e24d6b86119369c3c73f3b3964..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5768 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 diff --git a/42sh/obj/main.o b/42sh/obj/main.o deleted file mode 100644 index 90b3f8baf1d8cdda48f5b559a9f1ac21b2cfe99a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5176 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 diff --git a/42sh/obj/mark_job_as_running.o b/42sh/obj/mark_job_as_running.o deleted file mode 100644 index c4363f82a2c9780526f50da07d6d80e227034513..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4432 zcmb7HYit}>6}~gOGduhA?%GM+rcO85NgYVM&I4*eDGtPC8-i3q(}b#FSdZ81N!Po} z&aCT{R82@!>Kag6Qwdar`lEsf@eomgN~j2tN;IGXBH{-RK?;4OpaxS!aT_V-`)2NJ z?5#t?)t-AE_uTKE`#5**{_4$FFGhq=LIM>i4619Wav+qeK?^iqrj+7-!$a(Y66nAb zqz)QUOw%n*yT0t}w~g$-?UEiyvr-`5vSGvGNZ>@eVKZ79wFR?d{3SJc9U&qoa+|6yseUUx4=)33H`* zc6GeQF70@qw~Af$5ZmW##C-1q@&JBW&Np|N__!`e9UX-gQ;M95SZUrqZ z93nX9OYK)8?=8%{SeUtYp)gCjFAaIVaO~cB(Q*6^^e@bg%ok=wVP@nUM9^@5VLb;c z99w|P2HyqtLVw}t^Y<+*E*54Wdag8`=A|l402&7V$owmhEy8bh1Opa~!m;Ns!ofIj zY6lZAw|n>PAI(jb8jfA7=7t6a2L^NfRt2}l=Al6-1KYO_Y}qKBhLt~98{KTxs&1oJ z$xjv=cbPDlMaOJ3t5v&N9}mv0{GvR%b%2;3y6Xmwkof)%KXMtFEY* zA=K?L)8$?l8#sh!prU=-Rx}h{w_%SqU1X4Jj#r9hQK?nSIjTA0>EvEhx*5?@LH=kqS#Q2z9MOABJ3EZOFbcB*o)~7nPP%5pjNoABQj+Ht9V^$fCg;MX0 zzb}4$;sdyMLYh#e;g(K(UbZh&wGKh6z8cK$g_l655=zD6gb>0=icsp7PAWr4u4o_B zo8ob_#F&)vmM@+FiI%TM-((9EZ7D_JKppEa&<*IFCQv+n6U59aG+mESvzix7=LV07 zeM9}D`A4l~W3fDxAf_+NuF+K-=2Bco6_6p;RkbX}sr}l=8laMY@Tc`FK#%~}I zS$&7vn>MyUa;WvHz1<@EAR4u>{vy~M#kKl8*jGT|f=>JspwK2=N0+A|>eoe|0n-eP z8?5)BItx8=b>wBR?nu@+4}L4mkuC=II<${bTg6Z|L8?+)jZj2PzY}r@WUST8U@@w9 zMy~;j7#gwTL#PVTxRMx#@DeDRP=K2trl%&M8i`K?Y6@yPQ4G`$sND%0>T95A8fq@_ zAjEDgZZrdRDDhaJW}yy?BqJ$+q7fx^5xgS<-!74ifid`~p+vcYhLS!?7V&z_u_dZ# z8{wsINA)cj^q$BMzy@O*jh}#j8|K)%xGc{?J4tO5m*qKVKc=>sJM;%=+{@SiVmJN_ zjr$PGtG(A6F9g~kCSv?8(6*?(eXU)OZB={wg+_Sohp3{b;HE3uDaiUSQJtZl%Mew` zz5qk^d{7DP6^Nberu~Z&QLr2z-@z5}zDwl6^TD_IkBb9ec;>In2k(%B4}e&f_NCt5 z7hjLX|HlUjDprHK2!_IUf+BQq4WB2r`f=h@<^6}?Q-IbaC22YObUHEhr2gCo-9N=1J$&k}zMp^p?1q2rd-C{y9ynqA?(uK@;*Hav{@D{xAAa|R z!6OgEAK5+Lb5*9ap{cG`Cx&j zKr^7Pg1!s-Dd@MLbD#^L6jpm3i09|SpgTa5pd+9;5O)$k!Tsq2M>z_jiC07?2!%HV zO}sj|QYg$>nwZA2BNLk@=DYOb>86RNUYdATXyW0KCT1y3OkQc?eL)ki5ou!L(!@-W zaZ#j+i6n!VlP0F4?8xk=7t>IB@sgs6Csvwx7tzFPPIhF%(Zmdtra9@wbdn~XV|wxO zkS5+-H1Wcbp@tyR#A`-+ot0j^_oRurO)qYj?D)SHF0WCFL_;@H$k*tMF8m3#lY(g=2t}wzn2u zM^>fDhey8YH1bl*+uMfTv)tkwYIA`hZ^}O$E4;(-V8d{H#K~9Pzyv>@eh~H;M0qs}3XhCDfs4vDp1uQs1Q+yEIk*h!**d zmV&0;s70W~AgSV|0V0|;Et bOU{=w^|g|NdHS1@vrh-BpqMMH7~1{|2W+3j diff --git a/42sh/obj/move_to_line.o b/42sh/obj/move_to_line.o deleted file mode 100644 index 8aa53d834aadbd98a84c0c32602c1b84cb4004ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5008 zcmb7IZ){uD6~E8+eRk}`&Yvb^4WjPI$}*8S?Gl=Sn>A2R50gq2BW)_i9**tWW{z$7 zPm;1kYvP90jUuHCB)&}R_F?N_lLlf4wlSrnq7l+G__9CWDvgO`%0|}@khO^Hcka6{ zwOx0FtKNI=`E!5goO`bCyXl{<|LapbV~UkwK)0bUa|~W|v@f7*#NVbp=`s{oq>ae~ zlTmM!>vTOIoytoFMAsh+j6QagH)lVlK+p(}Vma8v*c~LWu~S6Mrt9HcKAT9zq@Wtl z#Ho||S#u(JiwU%~J`x=(#B_iPiLM_yHuUH>wya*1ab1*>vsHKyS3v5zftO5&YvO%} zk}GSEILjDgS`#lcHkOS}(Ee4%XX2fdFx$mTq)w!1Nj2X4GQJ~pD9|p+_%=`vhasvN zUpADAMRT{}^{K`pbKFsH&bDYxyzx+2gjgM)i6_HjpN$vFWRg)m6&k1TZppV_#%CVU z*3XR3z)O!kB??>}-_Ippr%bQ3O*|1_CKRs5`(qW}FSm)8KbfhS?|&rTTQa`)wuy%y zv4E_O?^XJ-qnY_W*I@8vV^w{_>2c(l*9)o1L@J`|!-vXj*jl ztMH<6{X`bkH5OFg2LtlZE=jz0_ZE(j;2Midl^|Qc-$Y6vR_D7S@m`QoTmT-mBZyC) z$%^=BU&LMLGJZ&;Y)2o3JxMk|UjU`+^awgNvY}3Rl)Ky#%(mY~w9-Gc;<~pq^NCg} zT-8b=t6Fhpm3ijr!d@H1Fgx=}N5|tso_U18w1t_g+CpJwzx zUh+Qi)(Ow9)5I~;pH`aLAcvO&>m&x`hPH5@R{Xa@5T4)L_7^vtp7~>>TRiYF(i9${ zgq>Y0u3EH`U3%LvRfsGAb#ED8FqJ}~72j60Qtw(jwoDk60;}4>VXUds!XxWi*L&K+ z2zhr3?{^vAr{R4euv%Q+gt=I@5LhoRE2Y5t8U??1`OHPE14^?NE&%14R=m#69R9#_ z`hnW&g#tNggA-xZ3ac##04{DY&+`|dIve=lf+9yIh9$))L^#5dQI?9ZA^JXfhlh_I_D)2zxkNhU9q8%p>Ggg&oWw`9d!QFgPv5?t zy`YI-*|c=s^`->346lKHb~Fgfa{+6uj4ag<;)@l54Yf9S8c->@2jv- zJDJrz=yKt1w0jt>akPOLnArbe@&pPwW{lOddx@Y88$^uei_oxy$b32~M|E(@F-5Uj z&P~sV`Az_V%ghUIx533<5!^%M#FoK8tzF_NN9i4hz#pxCXD+VGh* zqTk#k9ql{me|=@ohi^{z-{?Jc#`S}1?{ljvvBe~A7oblN(KlXkQX6zx1Z ziD+j#LD6Q>Nko;9BHDfuQ9a~B+H(@ohD)pem!=&lQ0Q18nmojWP|?iedBM=!qBqal z>}~Yswkc0P%9N=_rLo@bSb{BucqjUWkBtp9e?)A^-S~{qb#-xEnAk6gj$5eHk)eA(!dFvdFHuarzuzeP~CGHIJCO`KC zc}t#mtni&dzT3}t1$mpFch2#9{oJ?2`qYMRzVHBliW;}5IE7O<8Ft3Hui%GH_es7}@;B%_!v61|0$4N zp?ME|Tk>86L+v!W2YR#7L%NI=ALnwO=H>iXs`y8$czP6<+fP*SOvlqF7R~Ep(O3+R zoXJE!u7?ZRoKR#6`Fu1x9u8#;o(xm?(^vfW5Uqq|Hk!K0V}W=Hkq*x)BH~?D=|#wm O=M>NdSAGE@MD{-jlZ#CN diff --git a/42sh/obj/parse_dgreat.o b/42sh/obj/parse_dgreat.o deleted file mode 100644 index aa3d9954727d5c7b74c1e1ecab202ef8eb06ca26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4616 zcmb7IeQX>@6`#HH?%ny4^ZDD&r(5S!O?*z`w1L`1^t@+%X@7DGu=RLE# zm#-#iB#V!e5lV&Hs{a%eK@e0F2|`d+T7?pnh9U?;Livv%C`v^G0ir6RRn6}=J8Pe> zDG4LLdGmhr=FOYg_h#n&+y7kuFd~E&7N|fqph+E7I|$_-&@F-=Q?|zaj#C_i63DPA zNOc5JOw+Rtdw$!OAMYQ2d`=Epo9P4!?Qz;)CxwU+s1Ya0f?}FEYos)0x}GB;)7`;&*i)ZF+}U1cam47|Tp`YH-Ki^()WWW5t)&6Cby%oyd zzwgqX^lvhgt+w}-DtoO9l;Js6wST^U-jT`MuJ@g&}5r68NSJ|`1%~1zm*B@Y- z^Us5m%HB3*FNuRhg}6lUdB#s?!TO#R?@blkGu&4 zB+@Izc}=9JZdI9h(KmsChojffhN0tE%8x|BFzo37>-D=9`V6j>w_}3-Yk_am8?lu0 z>GDMY=an6KSEQ%anB#N0dodLHZz#R~8}x7LJW%e$MG0exoU7dbv+4d1(o+`(KmUt9 z9u@6-_B`=u`$5Zb^F_OTOJ`SSSNoc50q5KLEnN^gyEk@jSSws7o0`lxuI2d5%#Ar# z#_P7HFl`DKbJ{$Z*<3nR8$%wZ+jx+dcreDJjb$xt9ahCCPcPqdzS5)ZvH5G zP?;X@l#GL9ks#zk(H?6r*=~N!wsP$>SFlDs;pE50J>hy8hqeoOOyT-W85K6K&H`|| zn6sb*FJ#M|Z868uA(@;;R-7W2@iP7p*(z~}Y&ljg@1V!$uHv@H7K*MV4i%joIwdRl zEIXcY#Ar^qymLuj@c`#69b~WP4>YgX+D?~W)P&|%oGwK8tA}wIP2_d45S~wAp(;i+6 z3!%HKk-`?_ZY>i%-ddp`UPm(fhf$QtA{K~sWGFj*ChOn@F?(zUfcC_vp`g`ir^&*h zXD0Vc`Fp4#jbD(`eJ~Aa-`lfNP3W27cPP~t(FbYp5V+RhVg^X*QSzb94AD8UFgV)qXy<8Ee@Ca$7`+A7W^9Uu0DYSZo4J4`Xq}_<02Ux3KSVP^u~koi z>Cwo~!R{r}9KRndX{?L!liVcKNeebwHnz`5QF0-TQ0jstA~O)TQne}iFj&%98QTqh znl7!T{-c4kCe%?AdkoS>j$SLh=|yuGkkJx1!J@`;sUhv(%h3md(f4sSV+{KGC6xJ~p80J3wMF0g%gqfpe^6Zd>>n;He??EdwP=&Q z^wyi*Cz1;eo*h{8?xmNv>Tmr%+qAg+w|^eH{$cHjpIlw_kJpZEe!uJFSL2`g)`2tM z_}Asd+4g6TG1TJNlx3g|pdFwmK@8F3pyxr~2fYTm4Ei(ZJx~k|F9D@M+d)I1anMsB zW&>0N)1w6(g@H|ok*=Wo(ImvEZ3Rc6GlZB5Trdh_iV#Ch4P<-~V#uk1j2S`0yc~)DNZ~Jm<3L)^pv7LUf6&K`l;W!t zU#2)1?HOkkM_bgfQe_c%g(%ecpj#-rvofF1mHK?KRLYN3$-=CR1!0cj+37jC(xhx= jaychEq1s+CFF}L>{$Wzck4i}nN6hf$h96;g%ZmR3_@1-* diff --git a/42sh/obj/parse_dless.o b/42sh/obj/parse_dless.o deleted file mode 100644 index 8828a2d327a3b4c86e16a33a485a1814a3653fb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4540 zcma)AZERE589vwcy|&}TalTX15U+s(64-&zHd{kS80k#PB*q$wwpDkIeUlg*JN3PW zz@RJ2HqFb#iYC@|`_T%mXdh}P?SpCRhZyS=s!l3WrH)?{Qa6ohps@)dG^%FLbMCo` z z{>0GkN4;+0@jR#aer_ywc@3Y}p!WFk#f*e&`F^>~TZnBksA>kW%){eLkBybA1LR*G zpU3xoMRB)$xx#pnLu&a_e1RzER1_Cge3$V2)a$!#e5G_@!m>ZgS6B1AeyHBFJBzGu z%QuzI$PjDe^Z3;35O?NFPfzD9vyh%*cpq7BM8!9#0{YP%<8%3nWBcR_u8r@rif@(T z`}1A$$@r$znOeU6HGH@3lFvCbecSbZSMeQJPravJ1-hha-iNzhY&uC<8((+W9q6t1 z<>(TTYSr*%ic?spW0ngCbA_yF?%ZBIBBl7^3cLtDnUYQJxdOO`&zdyHOL)8P0MlH4 z9!x5}t%~oa$ER#O&Pmmj%G+=GTtPC{uJPJ&JGMttmA|ECuk1=yj$TVu%9m4>(Mzeh(QB!>X8u)1 zFT%Q*n)d}jg(f*Y-m>jPMkGgp*~y86#eLaya`Ps8 zQb<47LF5XKNZXEZ%rU2AS;AI2=U7uBQ!F@E!7=UJVf3If9ey{`C2R-@!p;{96Y+Av z&P^1oY@Bp?Yupi~+{C0KY$shJcRq(HY*#5#QQ+q>54=#!TJS*>vSlx}xR22xm7GRa zoFbcc((Vx1DszZzm8@*8gdSJhN*6>XU$iZ8uvp5XQ>wD7GLz|&7|#lu-&KlJ+|N0S z`>g^ZR+{T)ytIYZq^*v&=>BNT=!!OJ&B#Ar0${VYway>?ROI2vn))3rpGJcDb>UOc zjuw2DHZL>vRl*;ABoe`nG8zRPg6&W)1ug+Cnm-zekWYwk1AKS1&=|n}tm9^mbW}Nr zH?U#d11H1{A?n3?DwJVY$=bUmEFMiBpzYZU2dz;%MdkOMn4XmOPf^2~JSVODKn?3F z?=M;b--*3{r`1$MAFN$vXsy}C46stiX|>Q2dX`ndcm>M%6{_GHsPYhBZ-_UgxUV^U z1bTr`tFKptkD*Q`7|`=s6B7urk<==1DaDU)EoO z3Wf~MWUK*ftVb1m2-SH&`aPj{pgQ&D@O#jlSYI}=E+_sA@O>Dfb7Em|wBeBFYpAZE z(`X6Zfa)~*!wmPwba;RZSb^3VS`T6YBKQk5b($S|J)5E6@1c5#v_;lI#f>b0ApCh)n>c!% zjAjd(djJ{jktd--MvwH6{GZ_HoHzPD&Sp%&U(a%YW=N+Q0Kr*QhX4j24IP8(3_c>C z!5Q{#B@3Sc-Gf7Xi4|C<5MOW`pXK5c2{z-@{lZWRy?laFu!CfAZTCKK`1$8!Ol+C0 z&BvM}78nER40mKwiJ#p8ug zJ1P|fPdP%TAPV9JCv*mt8pxB15Gw_7XA$ByQv?5B#s-m%%sP@(6?LFX?kadOk+s9S zg*Fq@V)en$v+&|f_d;fFkZfVW`yhy+XzZK5&oroOxEO=4Pn?FQrrnA*pw>7CL|eLh z;5w1Xm$SIgC(CvzsjOtKf8fF8h<(UT$`8AZnx>b-X;2Ri>OSK!y#ZF(DC;3;K*nC( zZ%pWQuL2y=V*m#AMz}>`wGHZBBYFfFfHnYzBc0d1s`ta{8PR>Agx){s$lapSJ)2 diff --git a/42sh/obj/parse_great.o b/42sh/obj/parse_great.o deleted file mode 100644 index 3f64649e9de6229ad08e84231a9abee4a26e6b02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4616 zcma)AZEO_B8J@lK?%w&#`TU6k0lTpspn^L-14)h)Q%ny-C6~qowTYJV-P%4l?ws8{ zz6uGEm8vIKC{acEmsY4jN~@+)OQ@oJh|*LLB~p+gMf_@0r5{uUl^}#r6NNs{?5sa7 zq%iV3@4U~v^US-m@668mga2Or!W2Ra3sjIg$heNG3xaYVJT+fk^Wo>$* zZ~Nw;TLe5O6yKkWsji?A3L4Y_U$LB%a4p~av%H0PGBR_tY|rut__D*pj=hikv*Qc+ zeyV8hm9J15DRW3I-!NYw$~hIqbroN0lfRDWx?_A!wlr$HU*_wnS+CRTJW+MS zvpE@JZF~WrdL82KeA)5wqHUG3dl}xBp0`)UmsSD2cGviPzVh&H`GRZX%PPJe#rNqw z^2zwdv$6hW>92^7>w=?4h*-VkXYd`6 zP4MTrb{d+;7t>@AGP7_Bih5-;yYAW^%2fZJnYc2TsUEqOsa7s$szV=VCWo$NCY$+J z9l8YTQs#V!0ilV`=FG&QglK%88F9Yypcp%exlmia6hvty>Nwxq4-C#S-Bpac##})~I7=y<|?L zhJd-L(f#G!`D|+SN_R|1Ki@$VN}kBNp75+;&#`UcDqZmGy&_jGd3MRO+`=LBpt3xE zQL+xUiUeU7%caq-O35vZmh5~N>5BG>yW!xz!a{p6saij!&wAgD(7wZ zAPU)Xr&`?M=#WZIBP&jk&w5#Zh-_6jM7A6|UvSXlYgg%#$Q8@3E%uk4JUXSS_$oJ+ zb;L+sxcuT$yz(B-S>9up5V6vHe#T2%XiZvgyhRVk6UO{_lh%yP3?%_JYa8mr@ke5h z#uhbfY54~7Hmr+~g0{5agSC2=srQI*{IOUJd(CJRbTHeYdWo*RjNhR$ z-$qr0gt{ZVLv@9kqlcky6KV~0i|BJ`@yrRe!6o{87z=2%hq@EdHv?;KsJlbdn=$kp z16H@tY)A7rn&Bt)m!Zsv!I_LjfQ_Z7%(bX40MhS^d;ryeK`2RvB3dOZpOK>VG^}A-%V7!gHq3|V+8XJDN*KM-EzliB;qqSaxJG;#B9b%{N26`dbxs9u!Cgr zZU3`#{p%klnAkE~p_9JLtg(b@$KFPn$$vK=ejeK(t#m};M_R+DFD!K2+4*@y9zyCM zSq!S`%VumzVhy?kLvGzm}{M1{r9JbuYOVg%xfP%_@B29ula2G(I3UW_wzlcescZd z{9M=Z!?(c8Y+ndj0oeq30>TtM0yzQsCFCv0MaUD7E9uo@Uej>yz zrXU_Egt+#Ki^mJ0c2p_|o^pgvLKMUePUs9OHIOG2Ayx|F&LYHZrUw4Mj5U#s%sP@x z6?L3T<|z=3AdR&{+l6)@p(Ps3$P4h|JoiI(-6YlR+rj5R^u-fD41IG>aM#-h-;g*3 zPfhzQJ_ohNIUw5f%>$Q-T(OeJML$(>os_atg;nbwnvJ*z-IV;SyZBYkOUu-41%&b* zk{n|q_&#W3_o@2^j5@q%*YiF6E05nU+6QdMZ~D2808zq?njWi<^y&4+fZmkW&9oje zw(4_WMU9Fcfd*vk)WgQ8UjGKb0X+dAtvA9g4y!G#&mYiZY4~o{n*q#4_e;{h^9{X+ zzV+J6>aNuCawRBNv18{{c){vK#;a diff --git a/42sh/obj/parse_greatand.o b/42sh/obj/parse_greatand.o deleted file mode 100644 index ea85f5b23293978f9af85e523137d490dabea37f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4508 zcmb7Idu$v>8J|6S_wIc5`TU6OJe(eJ^O9npouo}@ozxC?xwt`;61RaAZO?aW`;zmX z*4%&W@-F{a=yxMc!GUU z0v(uwR7)d@X?oVA=gYpnw}0Q>>v|x)tpwt6*u4oK2g<{N54maPtf7e!)Abx_HqE~K zdhfY&-X*~K9w&uz$ng1sIlQZj`dU9cfm*)cZqm7bP}>WzIRl91oJ%-pWoL&DBIs` zaSZeH%nAE&-p-lkp1#15JQ4M^q|d}Nz++1O4Ed+_ybRA8HHRJSuHV5l7vBe+3a>}u z%_uyj3QT`AkjaDdR><2Dv3$Pc3U6x6g! zoZE0WXkpR;`>wSDgc@=|HM8f_FYJfi4SK>Y|4J!dcgBlpMb@0uy~ z|Guv@lb$-?^R?gf@@yyf?78;~$wQXo=8JZ6dq-zSXL3WffD5U8dnc5Rt(!Z#HVW6t zrp7alYdJnMM;t5TW$au>R-^`Dc2gsViwAO<)Yi@JsF1GnJ|b^>BIA0(Glx9KvV^O6 z-m}I;wrG2n?U`==C|XdN9uq0!Aj72*dZB2KBqwY)KVn#Gi~%p_}5@-X;~IafhCMh(a(ZkrKy7m4kR1PXQZedhQ`G-I-!a1 z9Mn7L+8FsfSi)Ev{UZ1&hP0mkUkbDhp|;BCeb6?u_eL4b4v6=|WHiOHU=iac=^^ny z!`|FdiM58K86)u5xekVANT*2{!c(ZY4&gf^C&606JLMXjVOtMTxCV3&_i_`z1??2# z3-97u&aX(g9*O$p-ZWad;gWEIWbt+X+x}Mik-svrWwwHM_%4h3(p27e4rL+!r}^-M z#@oJ;jwlr%O&H)ho{IdSArC>7AY!xdwZ+dF$HtdW;6w}W@qFv)!LOg*Uw3)MkKVl6 zb@jPo>(g(Xzv)+c>a`VH?AF;=x1LB;A9`_M!+XDb{&xMf*Rzc)OYi>k*p-i}PWADaa(vuHJ_3)BbV)^cl(gT4#;3Fs{7BIxg+ zYoI6sUIj{lc7X;#qo4;tJPmLWJRVKpC`@dcnCZ&I6s3t-+YFAvyr+pNzzL%;r)XlT zsgBGqnwWB`BRkN z>nq?kU_2M9#tOcU$S{%iml+}WBjC6^cBoX`fyKcFi*^$nE75)zI4+p>ZQxiWBc=E{ z#aAm1Cfm;_&Ube$Is}E6(*jlCVqc{5a$VSdTba(bh3$OrFVy?WbYTwT?dUn#QAdiI tT+YdkjR)oeURddHMzY=1HQ!YO9*dMb8*Uu{{ko diff --git a/42sh/obj/parse_less.o b/42sh/obj/parse_less.o deleted file mode 100644 index 7a14b1466f52f82509b169dbefdf17d1e3d0164f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4604 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 af=B`UizJsFm6jZgeBrGPKf7>`Mfop9A+8<( diff --git a/42sh/obj/parse_lessand.o b/42sh/obj/parse_lessand.o deleted file mode 100644 index 2d892b98bff1714d2cdd12bd19cfae54870b48b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4508 zcmb7Idu$v>8J|6S_wIatoFB2Bhf@6ifAL#mKM}VL<%6pUlxxxsI3SnM5dK$e!tmS z*LO{+8Tp&cP4^@a%#Fv)%b@3(> zNf}~gd_JDqjuqe~3Wcm?<`R<(?<4d5y^612g=2kUd>&qY?5Nz}%J>>pe%z?=zP~~| z8DAlhti;<@f%mHw;<+aa*PZXZ3h!HL)&IUiJRCX+SsCA3DnI=Bo~U2iS6`^u-(-Fg z^K{K(?nEY+GR*@+z9V@w>}j1I6Hfq-DftuRpW5>ZJS%OE+t^*NgK3uE2fYe!ufm&C zcuEzRe%hDG{qvU1|jB8Db zWIpFwIoEVDr_h4RbeTp88~H7b(6jm6L}xMQWF~S}s*`Y8YupufW+Lqh$4%J8&So%# z<1qy)a{St5VbA4L7JLwel$<4r#}W;a$zf#0AyNr9;dPNxkzJ%@Td9nV7LPlM=R`7_ zcPw!tZ>P{GSznne`lzwCzENvJ z3Iuv!Y|{4DRMp=Sxizx6c7OAyYjLu55m2W6&G^9VEK~IxMOFQtNCaoYXb^M=wt{&O zI6loZ9UkKr7&w?+~)Dq|t;Rhk{jtH!ROZXR1I;gb< zx}xDZUuz3=wTqfy1TBxkR=qyh3h}!TtG=K!{$R-9NXBNEjcurcH>0`$lfF8139Maj z3jYb51M6i2>vG^f!+sQ9bPg;G_BLGNJb>y78ja@AdtmLxj&L~8=}|B}6#OMv7cHwI-C$8;TbS@yY3dZ*dUT7k?2z7w2 zEumqssIf782ly;Q+D!k?`P!C1S9N$4+IIHdDx(>IcmyV+HIe`e88=7|iT^3~p7eWf z;AqAK{Pi?DXohr}f+0AK>I{s*+d>b5wFmdeHF%zFdx^p|pnGtToA^y=vxqOak88QK zBEcryqjwF)(JDU*THW#2`V<@lfE!_OJ-`W8B( z@FT4W16;>Lk)JcScHDcQ2N^!7hbzxzSW{m;#B`o~MB zcfH?x_8XBSPaHe71g4(!O+9-;yCL-Kf6Y##YO*f zAO`EBUkiMu&O3BM@E!?>AHh@8-mkAit#J&H_Tj?=?}%i!n8L$6R&?x`(qfq%yKgGD zI47N${GvO!|M_O|Um|#{08&0edeTe<&kHinpL%RSsTO=Qcpl!H$CIF~>ovxR-q^1P`}KfvyIu#a#whAx@Myno^y^Kqwm}Px=!UCrgtir0$A}*I zs=jsvO?&ipFw~9c8$#dHtE409&4(!mjQ#p*v^K!29lUKsUyp(M^?Ku8IaW)*z6Ne1 z##4b>ETFiA&@hwk7a1b>SHN+744eYTDhyz8u*IU=1jkZz-wuu|ru$~E-H0i^N%8fH zgR#HyoZ<(;8({DYucu|Iz|~%+Z>!L6snFSXd4In5m+M0nx-iG_dUWk%+LmG>m9mqQ p1>c;-8;c$ZH=mILwif@j$Y#c+CifS4z_%EF3E_2WmZgjk{{?8=q09gP diff --git a/42sh/obj/parse_separator.o b/42sh/obj/parse_separator.o deleted file mode 100644 index 0635d658b93f4526996606fe5d8633856389c899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4300 zcma)9ZEPIH8J<0Rckg`m`FwV4Cn3(YHjuRB&LP3I$|bdFLN6v%lwwFrs_pr1?YnTk zJ9hW-L6Zo{ZIx3{3*u8kNc<@IffSk_v{hB1rZoLTDprdMzp6<6P%1!th!(4;q|Y-u zYx|B+Jn}p5ywAMz%*^fk&WvCF&zm2bLTGIQ6{HxkYi8+ z8=QjDO%TPhJo~8Uw|)DLy$9}Cv4hqb)gT|Iy$AwH-7fAAe5fs}V9(U&EZ1`+Y*~Bm zn!NqyWtV{G32q8y%<%Q9I<%_2%vY}FCEUulyUAOKKX7x+rO6{$Uv6f`u@7^-&Fc&J z9#b4^9Yti7!6v>`igw> zxx8Fr>-qvd^*PqSm#fvvwpGc^b9o=xZ$qswqn5M&6W8bSRc8*#58S%GUn#y3#W%f1 zKDoYHF5k-c&lbL8Yvl8e)vmbTE)~DuQ@{FCYve=HNy^ssJ*na&*zad!%ilFhp>(sleO7$1`OM;!l0^7CyUZ%{utH{s7BrJ`XM`z6r%w zQ+&!4*nTl+QwRB0E>$FB>wc3F-#euib58Ad^kde?-vwPlMEwJfiywrH1LUVY1cS}~?W@5xwx_d=zh@WT7|k|LEM*(@x3i7uOWD(u1pgY-7hx?eTd%&w9cs%@sZ2 zdO3&OLR3|eZ2_PolT}bBHCiRqftb+(Jkm;_Cxs; zLWFy@wpcVuJ|QAq@ZHx-V;s5C!5cq1u*yN4L-P2^AC}qIDXwDxqU`gPtb-eS`Ira* z?aqU6(7LrpsMTmX)!sg2a?ekp*>+Gr3uT54&Sb0yYz(0?x1w4Eq^}RZ3N@%FB7cGA#Cp@j zx}5kQzz<@G&WVM=(Z(!!?nU)4bQ(8@IsKrqJE8;n0Uai|fz4?BnARjWz=8Zljho10 z{t#vdI}>^jlpZ#IMm0i6GkybQ{t?v-4IL=!uK=BFu@9?Ibe1H z{Sy7wMZW?SH?ND_4Lw2U6o-Bv)^oJdv>t)Qm71flgn0`(_zlgza0x1IULE0Pxq9G|)T=$n1}P2P$lCmL8J-Qyl$3F#6M+&0q%(%dbvm*$4zV zBa3hQxA9`}LY$#2;}bgNyEKg@)H?Pu%4+^k^5GT4qq~oeD7;uTVLfT-2*`m3-5u_rZdy`p1Hf{(uQaL_TKjQ&Q>=)`sWLqf2yZn+OVUtY3a8+ zPsTeBKR>nQjo&?YqyEyL@_ic{ufKEr%?~?H{^;U0Z@qB*h7U&XKNbD@)AyWt_}#^g z`Q)R=m%tmvkHS#i4%q{_3vvi@0`fTIS;z~JMaW+v|As`c;Hw~M$W4%GND=Za2(tk$ zlCvKgg>grSfv6w`5+TOc0DXjDSQ28Sa>FS6@`M-=Y9OP45CcOEWZn>BA}KE>0~}=j z0AiG@9%dJv8G~w;9yAFti$UOWWU!2cJqCZds1hY@~J zhc_vjN)W=@eYXqkXk3eTn&Ai499PlvebQXM931{)G8X@C=!?PgS9}J(A@M96HSL2~ z7ix`jK(v*I2Hp($a=n0ubh_?3X=SBLJI2SF5%-vzmKV5-|9bgGS$TKhaRO5L`lcy;B%_C>;1vFvJ_vkZN*@A}f#X8pxB-Kw zjI*Im{5C>7%t?jV#-PF`w#`Cg&ATjUbniN#`akE}Mq24>lpazVivGq=ltx=#f5cf5 z5Mn`5;{sFO_^bQJ(6ibWR?F`%tXVvd3I!)WUz2V8%=n+bT$+`Z^u{;g%MAZV;9V%h F{{T>rdI$gj diff --git a/42sh/obj/parse_subshell.o b/42sh/obj/parse_subshell.o deleted file mode 100644 index 90ea1422b51e395c5555ae9cac4df8f303be6893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4644 zcmb7IeQX>@6`wtO_wIcDIDf@X(0s=*%MSv73w1F0aNCYb44TEnZqJ+zTp-=6C>{Yz_7W(iP)# zv(BXLeHiccnjCs55#UwTSHzpi=46Pq@r8J5JH*xTva_>A+j6oq4DUnpeM7}Jr~-QV zs__MQrSWOG!L{+NR{613;a$2$JQ?3?Hdl*xXANFYW7Wz9&6@QK;`1M#z2bZ)72emC z*In0$heIqOYvcQu%HMFluQgvSzFcVr^YpEMC}zGg#Pz^1h;V)ckqPtg$)s8NrE+NsdOMZT z+va>3Mw|Ip89QrMevJUnRz`j!%{QDh51$(P;>&$GG0bzH+Ogxlds6#s*DI8q)IhpF z-Jj~s6>(Yh4fI1uZ@M|XVZHF&TxK@wdbS%d%PWt2Q+BbK&WX$z)Lv$Ce`z|O&1|~a zn-bD=(MA*;Ut~RB_|~}Z+P3f%FZlM1$dw%5c6`e#96%2$%V&~hU1YyhLN1n^$yC|# z3X_hVPZ6$YPx!(uOiua2^Rq6oivr{Do-Ov5+&nrZD+eq$m375LUU>Y7lKj#`w!={+ z_d?DU&|0;1&Fy+!bJAGR+^V%9zawcV+q9vEy5>(OZcW_SxV`;$+)8!2h$z+eb|mDc zC8EAo)HUChNZ{NUErJHoWncjWj#j%?*PKWYPl$LEY`3>l7{DoP;E_#qRT+rm$oSw| ziOF-_C~ji9p_l=ab@;XjETIY&+I6kTa@Y} zNA{ej)S5*fq+O4IYi%}1(5G3|8%M#6=TJqDqv9(i(i1xXmWs5+9|ylcRY#;p#J`Nz zJCr(M5FE{?(f>kbxb>@|oU;sdxBh)-qA`Ob8OxzIR-uZn zNA+8%^yRVFz`FIe_@BTzu)btqT@L&v^t<7rb6{c6+n6BEUQ~?FXpj8|tlQWaH=yF% z%D9CSNTKySrOlXth<+Q*1jR0$iK54%KLT4vO=ltlmNagPe+vAsRHcdFqO}LhXJjbt zhqRMYKO_;o0P%L3cEs)iOB(Cqp8@AG7&p@XbD`85>8X$34{0sE*UM-!XmVP{vP2Fn zW~`PL5`PW7OQH8CIGXVQ?Dc6nXofVJh9X)<^(82y+hP^4?&xiD4W4J;5K*`WG>;B* z6OTY*e9=3&mWwMAZ9{5)e%M5>{6vt4U-Cc~eCOA^_=_`4WtpGgX%I`bFXdX_ODG@5 zh95WH&>aLr;U`-Y2Dpw-2|sSgLr^`4*erZ`@zch!@f8#}!@~b+Vdb&0y~iGGJ$K!6 zZ@#aTi z$6j2x;U6as-tvC`p|2#qaP*;LPrh?@MK1O9!Hd9U7BQ7KfVP6TwcMIVLC=D|2RZ>d z3wi_e9w?50uLp78?*NT~ra+H?cp6|LF_(d(FtMp(rYjXwlqzOz7dQ&@o~pg5IAIj# z6je+$<;eV^ibE?$<_uL#B4x!%L6YYODyER?VP?^o$)-l(0iud$ijNW$7eo~=7v;#) zK@|^_Qt`x7#bd0nc>7SrYeK1bo~XKT*@{;RRlI2w7Oxkoc;l!bc*{}6Bv&dPaH@C{ zC`a~E#YI*sZXZ=VX3FvZWo#7L$gG1$bx|^bmXt7&wFCDGZ7!)L8>6vrz=|VX4?6lD z!B9f4;pXHMkvp5z^IC3dM0^*$n)ZHk6KaiPfV9hx4ZIw3#d01G^-S4wGfK)7HV$lF zs_`E7GV&YliJHd;9w@++?~e2ovmr1;8%I#RFCf$lJ`)0q;Gq+=i}sxD2F)PhgXz?@ zXnJEq>^pkG7}eVb_1GXRxJw5VVW{ diff --git a/42sh/obj/parse_word.o b/42sh/obj/parse_word.o deleted file mode 100644 index 22a0503cff60c484e7ce242fd8b3aec0c2722f98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4296 zcma)9ZERat89vwcz1NQO;W%lMu3v_Q0nzds?w~l?2ICbpo z-s^tRj-g7^taf8l+4#W^il$Z5B&KR?KL(m8q8gwHQHctH#E+tFsDe(cQw0$dEzfiA zxvuSXG)I2#`*Gg$oUivi=lJ*k`S7|agccU~fFhuI9iJ2kWhrQZ#?L4lTl|XW*ajug zfhkBGG@@9RXCLx>+1GdP+`Idx9!Nh_0`b`Gc>qZ0h0hnvuf3!UL+opPC_=1?2iiMIyY@Tl-=6m<606eYc+x;2i^44umy zKR@`bUyU*$Q{&?ge=T*ucHBa_l-fElI53!6mn-5F*|2pG%D|?(2Zq)Q*U6>lvyN*! zKC=#%o%}#fq$gl<)6)mbv-xa#)7|cjkZ!VG6iS}Rx}NZ?Nzbuu;VNG6>^YGumpr@V zS#IG7YVff=e%ZYJx9sl0G`tC76&e!Ik8C3geP70^1hHSJw`xIJMkYwy&O2)NJyj7e>zCEWg{ z_`UJ9t-HGJZ$%pFBBV^ax^Nq8YEbpnBHVsoJdQv%Is_fe9xxw5h-jA+yL9CVgr2cVK;bGIkN19qSDp>$2m&!2TGT=CLqioLkv^x)my;ysQFW{6|^jguLVmO zcg2Rl|3=dQ5oRIn!}1wvYGr7@nc3Klh1Ne_wtIkuh-T7RCs8IQnUpJW5gkWRBOm=$~u!)QJb z{VrIad7oT^S6DYf6s`f?%~5V*6&lB9Zs%IoR>Vx=jQqxE2DS3cCP&W5;@kX(2Fni69uPz280ZI}S3z%sE`Z(x{Rddrc9@l7f%|6 z#p8uuJaN<@CY6anu1rjDdhsMs4NodBo^Hy-%%T_5Of~#}5o;nE8Fgq;SJVkkoQ4v_ zv3BGkp&d$SiB>cE9K6`ka!}&m#JX`KxB;lFKsxo97<9bfcg-Cuxkho-l-L`U_wF{USn_2@99uj(z(I)`<0SPwyK zgSN`3=wARI9MiXq>D^;`Xs@0elg?diI;Jm$^O)XYL?6-nVCfyxSHd!E{3v8#LB#ja zAx6F7FgVVFZ7Qm^?T3yTY#0Z};5Tdm$3%^^;&&>(QgJX@|GMHs;Jo*OLa|O2d^6VT z%bN6UP5PQ9U073iY31`yZf;)6SYG_CFBYbxCf68y!M6|oD&Re6-P|+j!FLkc16KSG DZcuCG diff --git a/42sh/obj/print_and_del.o b/42sh/obj/print_and_del.o deleted file mode 100644 index 69c97fe1643b1db60f26465c3e96695764edf553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4448 zcmb_gU2Gdw7QQp~oj5UUAl37Vp~*YsNlb zC0=HFx?&xr_3Mn!#XBtHTPvUoEYQ-tV^&&8ABv6b;M<#N$7N|_l7?}mJTE8}yI=!+}H=itpw z9}yeujc-Wahs`q0YpcW)@s%^C7w-WN-lpD_*3XI0K3-lnUsK|pmoN{m5)YSHKzidF z(HtN*U#)MY_{`ZEA*YZ&|XwtGA#@eWC00(f*JFXQ~lqv<&>R^B*V!R|T^ z-gIrXC$6v8PdV zq})I<2x;lhfxZPwtbq=Z1v{U z6}@?16T;?HOK*l-*QE`0`?=E}IR;_9S!?OO^}1PG4E@2sqke^*p1c%#{&oS80tApI zVWH^eBrMhj>Q{RvLa$wzI95bhEHwFb9 zYlxL3EeQs`q3KOZVVn#d@yokZ?4LA|x)dN2og!&2f&>N(n7%dDYJAlAn`?+Er!MOa z6@f+$o)2w0iG0}d@vaadO|RE4Afv=G@$Lt#JExP&PZ6(~WqYV%M)vJHFc~>&RjP&A zQe-@qh$SLh%p%HsbUXnjHo7CW{pYM&G2?VsqE@zG<7YWu#*edYWN@>yRxxI>_*4}b z@!YZ5BiT%RbVoJM4%>#XqCvG*E>~y(Yeql9Wz@8KWI64>6Kzo0%`TySEp2vuiyh4ggj?MXzfDg3>acIhc z0)2GZ-7uhOM&PZ=JROJA@f|SuVl+g~9(GHX`fx-uY!Z+Zf&BI$$ zv{NA5&q>=ghR?6S`-Z#rVE8JA>NDEgAYB0zqhIdPAr)ngN*%UFG?FPyW2gs9Bq08i z57%3BpZ>zyIXw0q{btZBGK+o)o%AtuYGNTkX(_3RltBM1xbNpAA8O0Z>BhAh8>({D z*Af^SsWw3G8JYgdF_`Kp6=GdmSKrLq&SRFrGMHTWu&6T0Fpc`RP5R^o+{S*&HPcwy)G zSf`|Vyc##;d(2xMf#;}Vc{&@iyn&%Z!n*0Wh~^6^+}{(}&WCFJHZ9E~Nj{R~ccpoE zlKYl5a`#Xp(PA^Brlfe#XPv$9w?h zwxpM(+sq+9V%9XffW6N&QeGDFsOE6W)z^ ze_%chRuttB!jg;g^aUKwg6AQXfG%(dGs1&*qdkz6!j~52^6YzUx50-zYmI+ zUepF9zo$XT?@>_l8wVx7ouK5m4V3)Wfs!8;Df0UbD9(0t8)!G^KS5!l{YBEIq;*N} zku)yph@``kPDmP&6hz>?DCw_3Lzuw5r*!X#ciWug7o;E$+NKu8x1E2&qkqoBzwY55 z_V8g3PuT7F%)pzWV$IARwT!|{xrQf#5M+w@%ezhDJTyp`vutD9%H{BgI99OphFPmr xg%g}@t1@F|$_`J4CH%c3{wF}5u&h{k)X?*Uc<0SRBe;t93XSOjBV{F%{U5`O+s*(0 diff --git a/42sh/obj/process_cmp_pid.o b/42sh/obj/process_cmp_pid.o deleted file mode 100644 index a7d27a7644b45b631b801ad7b1d7ac863db39997..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3152 zcma)8U2GIp6uvXNGo9|V+bzXf!jDU~{Drbx3SuKfsRG$zH3a!FF*un{ciS!7-DPLC z6ru(aV;~rV5)+;bF_8y-fryET4FbSmxIZ z5JGLyn|S4_`b zTX4M}O1xL(20p$>JRCY7GMZmZo`-O~7ZUdplUgJ{r#gdmdRC)yyi}R6tg&6KGuBJI zv~+$3Jf^&&Be++fM(_$#R_csqli#g7tCngVS-73!4XeNZk{e8lK_ z&q%yq<)l6Ukoq5xANM8205jMaCf^4hknuYpm-1)uK5#3sL}8z|`WK@g%%A-&fA+Oo z`Lm6i`E!k1=l1kL+}x-ixjw=Jkscd6^n7}@Po>7cgi@$n}!ErWVa4w zH*XMb-N{W?$2U3EidV0ebG3TaDY&lX%+#z}X(H>0+(8#0xyj?z=?Ocxb;z9(kswj3 zc%mjeOZtV|)a+T|Oxbl&v%M)%m@7C%gas1l0&ICKiCssp@Pobyye&h}iW8*@hHAqT zu4j7{zzw}u zI6j~sgZFo+vB%;!_@kk50YcYCKxsWaxgW5t#Fx6gQwb{Ez<>Gxi}gxF8OUx9xD{|V*?cplb(hr!Q*xtkDzo7@Wt zVu9#l#iZ-BbW!49khs%~;^xbjfkmQ=yDulQE$L#lWE3k!7n?;!v5s`Hywb(~rE3-} zU2G(}*d7w=|0>Xi-Q`YVMnLjd5n>*NB~ec97s^~pNp-Xt=jAt6AoAkvpdjI~6eG#h zo9eTjK?4c#3u099DMm%PlkCK(@Ec$ya<}4|bjpnhTwS?_ThB==SK2bXZNA4n5eb1K zXUPXYa`)nb#;16rW~bOLepH|aGoYi}nmW2ExMtz^U%K|@#S`mNv_#@_tyABtE#0AY o@6~V%s92DAB3O`~lX9(;tE7Zr7W$V`as#?JgcQC9;j;q&f3I|@u>b%7 diff --git a/42sh/obj/process_format.o b/42sh/obj/process_format.o deleted file mode 100644 index 208d854eb3bf2908fbf013045f5c4a6d3da1c4bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5316 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 IqyWeM2hJ3BbN~PV diff --git a/42sh/obj/process_free.o b/42sh/obj/process_free.o deleted file mode 100644 index 7df5f946e4a5410c8630de1bbb990444a1eb7e7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3528 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 diff --git a/42sh/obj/process_redirect.o b/42sh/obj/process_redirect.o deleted file mode 100644 index 233c6b13bf2f760512943f9f29969dac8f720e5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3340 zcma)8U2GIp6uvXNGo5zZ-GwTm7M*0vU!=QjA<`&O3e;@1B#Qjh_%m*2x7~$hce6WN zih)Q{AT%WgH9q)Yf)74vBu1W;7!AZIiQ&P-MBjKI;Qlg& zob%mt&%JYJFWtWWPm>TzNMHbm!4(aI2?jk3o~3gE`c3y9oMH~hw}C0hF*-q(<>V$D zPxtJd1H(J-*uGYi3h_8?vDK3>j`%T@mX*zo)W@uvQ+3^zwQW!Tj_2k=e4H8S3CTL= z0)$W-^f|m@*>>GQyaJokKz}Y0FEcVy&5g6(`StmDCne@$@d~BUGE;(hw`6_$q&&vv zgHHPWTVTD_Old5KW(D!yoB8UH}$!lhM>hNrO z`ta=J+Z`fy)I>(lOnQ1?c6y@YD$~=`+h?Z_c1#WY?wV5rH~4gN!c<~M6L|g&3-A)m zh6HnJ;F?Uh+VgFC@`CyL`F_4==FrgY?dEu{S}T-GW?!;9*=??|i?|)S`nq8xH}ocZ z){0uyPUR+YcB)b>+qqiJs^+qVYR-0&wn*)&Aw4yApu9JmNp0w@`JP`c}7^FpW#T)uSdljbC65Gp|=otPvXFHGY=EQy6qbQ}Il1 z!|);OklF06q9p-GOP4B@tpi)Vg;Hi|Ws7_!;^!Edm+Zq&4fW zXsw>A>z`{eKj6$=0#yB?s$=~^WW5G-?SjN4UF)UIp3>gv*?LOKRZ>1CB?Q-|pOX^0 fh;fj_L)c)7M*=n$8u)4n%Py8{Ibmh%m0s~5+3whF diff --git a/42sh/obj/process_reset.o b/42sh/obj/process_reset.o deleted file mode 100644 index f155753d46d227af47f69a9a9f35ea2347b963da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5116 zcmb7HeT-CB6~FJzym>P_v$M0id~98|44q|x0z1p{wMD65!E6JK4J{vklssnNyxn;) zJ2TFEvjvLD#@5nWRH`BRNB^M4M6r!u0rU?sRaC5vR$^n+8q(NmtCWbXDOHl+``ObbnkOTex&AaZO)I*8$vC$u=eWX2z3(7e0uvu2o8ETAJo?n-cWo_EI zaofkk$1-jzC-eY1q2ik`5JEi(kkDVbYD-|Izn@IA7Ghg`il;!FW)b=;3=P$tF|L1l ze4)Qrl$)FN=T?TR95U12S9ySFgX*mM6M=pN`=_8A##b*?MjY>Ye}CuUO=$l?OaCzD4Rh zyOqE1-=seoU#(!z^tWY(zn5>)pMRis!}V5`zh9_xzIK!TkaW`J%=p%(f`x|bJ=dxh zKFMaBuU#F*I(@5AdC;vCEosV`Q3_@9FyG2_1;h$!9pWVoG$Zp-b z3!RSDRZM4*>L-4?bDiwU1{?>QUun4Y|v;}nJL15W`kxt37!Ce~LN6Sab0k{dj% zc6gY(C5DS`1zi=#qqZ5l%0rM$?yjviOKx|`DVHs|*LI^`$1YiL;z?AkS!>l6rrV83 zIuq+mw`y(31icqvo3^1Tl3thmaB@-VqsYd{DxoXjZX{E*MUWYDzydQNV(nTaoisQG zw~1yEN#EU0WdJ!D?}mD3GKnV%X_gGknt0<#P9XT~rzQp(9N0WD1D>TdjkC5az^rTG zDnqZy-f4 zQD|5BY>l4lFuw_@ncKfs&t=UQp{=Jjpy&F`*PvO{?$C1sri(DIqFn3iBDvpdBFfqm zy@W3QDReO{ei+P%8ZnGG1~D=}{uGh8(E;S!5TmOSr@=DOKJyH?bkNUm&q8CkQ3M|s z#vtrpf*NT{yi8QT&HS^n(7RzTjJ>e<8!g%sm%)x3tIaFm^k`rq!qj0vj|LVJH@U!P zKn50)F&AJV>#-1Hot~=+<1`+$f+8PE%mv#M>oU8*IXX6h|l(DqWB%^6QXJ4|g3W)w|E1M)bqzP{GpP%q+5)vB^;f7#Y+5Par{XT6L&vKiWsF~nHTGq?{LPs`}#>%9|_d=K(^Zl3u-sP*w> z9}2Yz~x)An9)B9O}B~{%ZscT;JpOVrjDgPbL=&=|Hp>$WI?k)Y*;bkh=CjUeLyut!`h+YL_xfL zra`3rw2rLNeo zKIYFk{>FFDoho+CZFPEfo_yrWW8aAX;rSoT+VuP<&wXv)3z^O{Z#!LQ4z0d=q3PJ6 z`S4r9Mn44lJm_iANzggaA3>Ku0%y|>;z`~C+6uBjb`Vr_n=rzz4P!l$) z3)Ba?3$z2|f)0Vc0OD`iDG=)?r{UYs4MJnpB*X$Xhky{Qsf1W&l@&9I5VK1`{4NkG zf$;5OV{s$IdZ!?MLC_+6kC6GX+u zY$C+;QdX>egjfs}#G*-vS)w4O5+P=nnvtcB5FaTkel7?xXOtCFkq|#!%8J#O5R0;c zSZ4^a^r(R^K_#>vow8z4lF+0t7Ii|bUCN5}mJst;`C=_3#OkZ8IDinVsDk(@BgC(p z8pw|vA%2FH6-zrI)>yTxEUAQ8YL(S#HIUz4x|f#&OEB$)f|*76e!s0B8gtpuBMyOYn+36_*a5| z2)o?i^*G<~>UpK*-IW7trX${g872Vomij|hm)wb88_Y23R$O@%?JY5%rC}fr`>-n% z`AZT2{KW_)+-mXrQSs~5asUJqK*oko$aph@zX{-|fo0EE#=&nufU4U*6quJWMLjUW zEdk*KZMKnUy2mhM&l*~6iyp)N;M*H)(DJnbkL4BbQJh5-W^#+kdG6#O(ZWtO7V#-6 WL!SEoC*=Pe{$?s8Wyh~p#D4(|D)+Pi diff --git a/42sh/obj/process_setexec.o b/42sh/obj/process_setexec.o deleted file mode 100644 index 00a361d8193d64283f6ad0c200f778fe3e63a0c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4128 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 B?(YBq diff --git a/42sh/obj/prompt.o b/42sh/obj/prompt.o deleted file mode 100644 index 8d0bcf53963d78750e66d46f9f47272f8441f324..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4764 zcmb7IZERE589w*g=f+NgZ3tzoRK%?brCM!=gwlwQ5k%bG09i61e01tAjz1D3f62av zq-(0EW>wrQB53M{HfimoYRc3h(P}^FHlfh6@v$HD$G)WfSTzl;Oq~F=9af8)J@38e z8t0M?c9L_S^SC4C}$^Rw!8_kLjgpDPG zlTr4GcABOqMs*LW@*6d z(xkgiFpG=wMTdq8iK8@r3;nbBek5oflrNP{=BSCCZ-+7XjJ+k|4TyQJVm?IZi~3iH zW``5Sd-*=Gt)bsH2}ke3qI{WX%y7}}pT#HKWB2Ea=JV--F932XZ|l{Fac@y-gqQLz9gJ!b0x_$O2g z{G)L(&cY^hBT?l_r#VNCRYc>P@Eq97Tss&$N)5#2jou&i8Br%Q8cW&EsKxvf@yYg$i@ zpSAj)h2>P~($wIEslGYOy~~xWmB=p)lk)f_S0!@B``tFML0ImcUWF2Zei1Ftv9-0J zDv_UGUtw0osEXHD&DLD4MBYF&hY?LOWQ)gtF>(h4)+nh{3^CnQr=MyC-&rSWD(|YX zzB}sF_)T?c%T?3CD)Szvbz+R1gi*hKWqy8MjYVMBM|S58yUM$j!Rq?C$@As$Dx2)P z;XO__Ak3;JztmOR;9b?zcKC0!pc?|URw-@x` zJP(qpDqT{`bCPOJO3j5utKrc57zzJ#@2&b~N5|&QjTvSZIy21QwnGR{TiT8cYYTP6 zH`PA=nt9s}KN~pEvz2Y9)7Zaz_x?Wr(L|w`%4Pjsq4rR_e_bq%D^7#=?U|G!73R%N>bF!y7t^BP^+FW;KIo{x zN`*oK2TeRxV5zLm3JIOzCzVNPI&Jr80q2k=?bQdgI}$fh!JE`S%Q&VsbGll z=$L^yLp_#=8tP+0Jti6fcF6&!`yET#EeBlg^On>n2b$fNE$QoWz~_G7lKSPq zayRiAoC9)TrTYU*`i2~M#7zf*QMX49_}#Z4k#Ekua$ueNbCg~~1kQbOpq(|ofuiD| zkJLzN92I-Ft5l#%gR*tElTKm^!+|i5qH(eK=WjK9d#~s9{%zWs9_Z*z9!EAN4H!bE zWK0e4pdm44j5*3QT$HRn4F@1E*606Yqkx0*a%4&r2l?(`9DfVYHEH@!>y7H@%%#K6 zzv`nCsSovA?GuwtU;AwJ>Yt7sVln@#FXT~IM*cqX&yatOd=;7InS7?rDeWC*~!<;aC{w#>rvP1T>cZ64sqt%#+{A*+;y5itmqu{%TdkU)a^l-p5*cg z?t9ko!>L1G;!WW2%ikpB@Tm&v60S>A#+U(&g}6BK2>3R0`i8+UT|OI!}gE{yVa zgorr}J_f}037)~&kUR;*6Fis)qUxa`AVw$H1;p3{p9JEL2>M0+QXz98{{zEEc7Fkq z-S2?Ja{);G{0fNoZ15*S|3jb)@-z^eJ2(ua{tf`iz8^^KRUq+h0TOS!&_4kryGMom zFc7W;9};?>(4$XE!BhC4UYQXX6)289@1+EpiT41+8zd(S&_XB}Rpa&gH04cR1 zlWgrv^1}<+N}Exr6WM;7O#8LIewR%aenM-eBB0)$%JuTMY_fI0nXU2FGKowqKgP7X z4=STr(&=9$RIGnckqmt{mdP`EaYeNv9%|`?j;E2RODCw9OqcLT!xIgUtE5p?d!uRi NUr97g`_J5w>_2+b2loH~ diff --git a/42sh/obj/put_job_in_background.o b/42sh/obj/put_job_in_background.o deleted file mode 100644 index ba69bfe9d14e9d478d76b165625b70aa60e4ff9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4044 zcmb7GTWlLe6rEjr*XyifyGdFKrL7?a0yJ?*fkr&q21;=uJXBiB2i4-N9cPQ<4ZG{o zB8oueRRI#ukMhAoLINQk5(0@IP$iJs@(@V;fIx^JN)a!CDp4MyoU=P?ViTZ@bmz{! zbMM(Zv-i%-2fu#zM@k4KA<%)6puHNp0toGRP>J$Cw9C`c#23;gmVqfqdFf|aL3Mi| z1u)Cnc*%7e|B~a;)p9^Q#YwhN-4eMG~mK?pzO+s7Ufd^F^WQpdjnyFiAs|3Bl4@Z5>5;ScVN zZ<(xzWfCuGw$>RBI@UWYzL~P!i5J&kj5lzMc)^aDIoDg4@r}qR#*YyXMI1tQ#`lEG z-#EV8y5nWGc*lBecN*&qtY+h8r%|!2@wF{W4E9UBf>b^SJe~s;m88w&@Y2AvXOWFAL8S_glC}{B^HBU z2nt}&bv*+<0M6eKpIsP+jh`U3EjXI`&wf*B_m`zz-{woZcOKc@JiKe?VUfGD2)8$T z(Vexobl(+6&Kyhb-gk&lyN-z50~riT4_w#-7An8y3@mrOo!|1-jZVE@7`SHrr59gy z<;K&+7>lYfK7Q>Lg>6;Ocicu{bZB^JxG-SXaS{xU4nr6^dt~UW(}nNZ#jWndpzSsS z&#f0{nt=t`avIh|*}k#nxy?pp$QH#-KA?)Vo87IIa`EgDe@e`0Dx5|j03bpb;S)?a z6){s|=TxkKf3fT#y{uS-%Zd?9lmlEI6U_j%5m=M;a!u6TMy(Kbgq?IeKd@#z*RJ|B zsXKmvFNBQoS79T$I7A;JBs_cbdXIT=-pQ%tvbKQzU^z2DMUkR`rKWv(-SQp2k z0HPW&!m7)N}I|C#3EJyFp!SJOoZdb*b7fj7Ks0kWxYIPa3ad^dqH{)PBSG7^4J$)sxl! zys;7^hf=@VzfkC(VsZ~iTcRHXdlHl^=>&cWlvu9+4)zvEUz&UeOfxjDT<=9kht%<@ z@4yzOdW^&1>!42cF(Ue1N@+f07{RDQX#rvoX?+96X^^o*-vX8gC9Y2vz*2@r?55D)iXH8Lp*t%~%O6JSWL{h_OYw z=&?4qCD_S~3DW?4hz4l0eJOYP9!2{#QXE`zwW z+|S2BFM{@hJ^~#C{Q}Bh`JE@}WHC|2 z>XKGWII372(uyTW70W@sDi}0X%t+~2kSeB+v|>fkiX|znSVL5?E~Sc@Llsj}s+e9> zG36u{Q;RAVleFTFQN<*cDpn9xEG(&FEmOr3mnv2;RV+>k|8H59LdGyVU_GnJ!;Cm> zEzULNmJLGLo>%gjl);MQhfV|?`I%TpkH&|g7|Z7GRxj?3Dg*x*wyO9NmWuLQwi~^| zZ-A7JdmGoTU2pRGDmHzuD5avaV)Wd0jlZMA1d5_1AEa~M=(zmxLB0v(8)0aQ|043i z7=_dtCov9hb?9+#gs_o$-4CQ+bO}p?=&pqTPaGP+jank7XnNN{{W2}9AJDqNQx|9_ z2ketjEZeN9+f*GJB38ozZiDAVeEu2Wh<9*h#C1NaAnT_}zC?1cQ2&$UybyCRj2r8J ZmKcs_%UEdD^IT6@e0@Qh>)`~9KLMKjMa=*J diff --git a/42sh/obj/put_job_in_foreground.o b/42sh/obj/put_job_in_foreground.o deleted file mode 100644 index d6b9d13d8bbd68a6570028054355bd35accb2cf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5456 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 M=8;n~{caNCf4=*J>i_@% diff --git a/42sh/obj/quotes_gest.o b/42sh/obj/quotes_gest.o deleted file mode 100644 index 923a075ceb71d2d1289037db387d852fb3573815..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4408 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 diff --git a/42sh/obj/readline.o b/42sh/obj/readline.o deleted file mode 100644 index e17edb2d6a2851aecced2639fe6ca844058505ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5488 zcmb7ITWnOv8J@H2bG#ROyGbiM2B zIW`8-%8^MG$BIfNqM}Gmcp!p@q^g=eAW+q)O>t<|q(yn5l~PqHBB_!lQl&Px;(p(p znPt5;h5qu)H~)41nKQTbo1cDgtx*UgEKs2|pd>9+DHPB$loO_G&RdPg192yPKsm)D zreIk>A;`9Ucgzpk0l#P4BYUp%y7dl|05KkOIgSAB6f}r&f+pMU_dLx2ZF_6ao}TN1 zyvk$gb&=p0HK}ei3xCJ+D}~aalGyg_{B&L+rEiT?U1dYdwbZr;-2Rb48$qQA`90jT z`vI*MS5yM7!bNrQU^pwJj#n%@^TyjzJ2+Szj#j(Ujd|nc`ui*HsGPr9`RRCXDDPX1 zS19c-)1`jAOZhQDhRPxv3;3573eg-i=gqH@D-F8%(Dm__sr44P3bDOOx2iaAyrG;U zQ@l|;y)JGZFE>0~bnQ}Zi0RGA?+Yrwzo~R~+%&%+Ub+8({J{13T~qN^t9ThTY1Prr zSuZvD4d&Gk9e#oi$>r4jT>ye)l&B~ASB2D6fBb7YsHo=}} z?yfd`TR8F<{2B_0<7H_;;pb9aqIK)EH#>Rdr{Y~YWT&^Jh>D%watFD`e!U-*X<2!c zoS=Pn;{9ZHqI(7;TApO)XS1j#r)8M6GucUb!DOfIriTkt6-XyuOCsit<8gF1 zji+K~ryg3Ged4bNug#!SG^gY$z0lKXRGVwXoWAE9kIXX2|KjAElW$}ve6mY)blT)x@hQowJ&!s%9)DT8^%S zqn1pK1-{v5WH;H#3%8sdmjNBVtugk2xQ+O4pqliVFb_WVR?$3^jn;W1Y?m((g@?lbzCXOv_z!x>|2*-g> z)!fPFD#9xqc6q8Wwm0m$147oYL!>~!JVYL;3g0dkJm1cvDpw8(ua3q2En^Pznk?}R zv){K1r2^fsmBDZ{xaV`ehc^zQQdH%n$jJ?R6zi!G9F(!ZSd(Zq!-=Hz#l!+*AvS9$ z1K~nrODvq&5Z@U8a?|$K`>>Y6>qR)Ry_KR6_H09o*p6Lpwi@9?JPs-LiPfx4%r2NT zE{2H=0$pS^berRG90gIsplfUu)c1mqQx%VIMzg8v0;ahd8%&}aJI>fG88JIarYQcy z^tp^g1TBOUcM(9@0AyW#MRh9SL4`)&R~TTC!OPDGe-kxZp(W9|I zYY2@$qZmy_s9jjxNs?^_8?jDkHUTzioz!d#*rnDPu>U|Yl3-KTMKs&cKW0DF-evts zvkSp)5sg>DkI=f&hRxgh&98dO*C47m#K~zk)Hu0M*LMmqjbDPP1FdD14;i3 zKp1_S;TKw^M*I%Ma>VV?@GvG_Qb-^Ddftq_y>#j{J^>hEZu6%pSQibCX{UxCK+^Oa zst=$JcQ5FCA}N_f_4uPd`|?wDbOBA^*eY_@jY$$#IlZC_hJe4dpEq&Kl$2#|p%x*nC^@oFF!R z#dBS;*^5HrCm^3vdM-jXGgN{&+vJHPJx0aO86(H@|Jd*bW@%$^5a)$+6&5DuC-|bA zFUGB%GxD6b2nrt}4FkUvZ^xcJ^5TzYHeNj2w)Lqqk;^Af|L&8Ek58Za#gV%|>l}Y7 z?xdbQauT+$pj<$?jPgFp3?2(w5ZP!9&uIr?#B?cG2xbApa56g0N%ItnGHI5OaNc!#_>PXkh$*g`jj>+Svd)>Stlyf=5GNrH17p@v znEIx$-mTg!hfSo$#|*IfQX^x>QLoHMOWh(2iE zbsilemq*N%k(5lS^--DC+8t)dhw%hbx(9~6uv)pp44*TXBX0&-R}B(6ZyF<^D5eub zJclYNMEWHl?(g(zAWqZt3qZ`niW5NW`ZV_)PTKT$6^;UNBBV<|+Br)8EnqX`Uj<@5 z7x9>;UpEk^Pnx@)_RE3nHvz;tOGkk?gVOH>A9#hlUSanK#h+973J^C$`X`D%t?+pu zerBbo0)A)+2wLHwqWwO}iWLtld32xsZ-5B|)Gw4Xir4pd44qJ~uV$XA zJgzi-sCgyh{-a)>JsT814kR5#sc{#(>-Z&gJoj*|y&5m10Z~`0SL4!Z!Szt9FV)%e zJJ#xjjlDZO;^poBob#RPi<(jgd)#-mNItOx>k59g`?5LTn_0T%T?Bi4r0nA#54P`k zE*{r-m7_VRo3dY@|7)`ca(>SC@I$2N`sGp(x$c3^sPpuek*{~Dob4bL!H*Vdi>~93 cR9qQaA6=5U{;PmyT9uK%GVGyTk^j5RrKT9(`@Z-4D!y(N(ykAU&*jUHKI}|zZF~!g?@q;c zY=wMIeAB6PEnifvH;?a|E9A3}P2ci+w<^AGr~&-N3i+_<9Ln1Ge#6a)zNA%-^K!rv^)=e z3Yya}2&qo&f}*xyb=8NKM~w2D#{9J-M#Wi>#+L_PGs-8f8|Bi~i^Oe7qMg!-(k2}u_#o%=b+rU+$46YN`ovN*Gu!!d89f&|V z1?A*-7q~J38EYl^o-zNcBM<#D!NVoi-+yQzcGM~qGx=Pst8+`|me^hCEKbCZt}Ota zJGOOh-6V>IbUbU#T7`JQ8Y`tObM(Jj&i4D3w~iF=2ViG!j)IXvtZ6ZiEvi25@l_a97( z9#`#6>^m^rpBOg8p~R3F9!&1*P4o-fwDXTxIZ;%ayPQUw@E zIo|cWnlTUsTUfa<;YMpeg1Q+op0UN~qqw|Tivk_ARocfITBP346liZ)r8Q&ve11)D z2!}rz{uH*EewWZ2)??fH8%1x65ONKa-r!aSTB7V*7Z{Ol!?sY9m`+@M+CMBP5}1=3vpqIh}cYpbg!$N+kF#E%M=td;@__y<@}T}zhTJ=5TK!6R{AZELpCD_2=<5QvLAB}4!H+`!nWk2b%_fxoLbRG=W1y8 zd=Et4AvKtHq3HiyXaFi0@{`-|bSRABgaPCn_S6vwlWTKt?70`FE1O~C$kF~!2vc=i z;@Y-6X8#`_wx{qMXX53ni2$_31CZC0+dp~nO@i7F%_v#sDM`)53(kHfbNi33Z2a5r z(yi^!{o_*mPi6eomyhqfaohIX?OPsyD!lm0jxRJtj{dNvT5xSF_% z{P@_lkh>uqz(GhFauiaAaC-13IA3d^k?2MfhhLdEdo(!{N*{M(XyWuKuM2=QabGAC zCyOS|pL*js%N-`}5aq>nPOoba<;A^36So)60w#VEP24lei`$!~P6$U4i62c9_mT4Y zU-K8l$aAdWU7gfcBhj+tO{@0UkkDqEw5CWfbP8VVX+7kXcSyFh>rZYdrs#+{o6Cz^9J zc21IM`K^NM5o3>=#jSMxQO3el7Y6{x&hHa-T#-)F8#O8G_4?4acz3sq^vQK-+XnQJZn+6$eV{#nMtyQq;6b?!`V)P!y-(Jil);m7E$Y_8wy{rk z!UoF2H~s4aKbL;gq0eYwmqXDQD9P0@>3!hxy(P7huMT4`L=Oa8u45-OMx=ws6VBUR zT<{V&3XQGV@h^-DiXB{`7_5%V(DZ*1n*Lj$F?b!^;2~f>bJ$e13v5*Q4yB=-`sbDA zx@trNFR@q!#S=AndkyCLtM=brgZb;cy1ustAF9FQHCUMV-7%HI4~_}T&X?@z65b!n z7n(4~ZT=r%)UszRyod;~?8dCDSK}3(HwfQA?wiR>PffcICWXff7V2EKf;F8@rCkU% La~wZ<5ZiwM6}rt1 diff --git a/42sh/obj/reduce_parens.o b/42sh/obj/reduce_parens.o deleted file mode 100644 index 9ee29c88d08ef194c34760f0c61153c13b563b6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3980 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 Io*Vf3AMubdd;kCd diff --git a/42sh/obj/shell_get_opts.o b/42sh/obj/shell_get_opts.o deleted file mode 100644 index 2a597e896f368a1ff80bd629cc4f3db035f8c01d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3632 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 diff --git a/42sh/obj/sigtstp_handler.o b/42sh/obj/sigtstp_handler.o deleted file mode 100644 index bff39d8ca36278979952e1c37b2be073b3e5fde7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4128 zcma)9Yit}>6}~g;*@ySxb?gLJZqqG^LrS~5sqIp?g%CsBZiGRlahiaNM(f$x-HFCC z+nsS+sDTC%zHjD^ zyE{#ZuXOG?=ey^Ab7tn8xx2r9_pSe?gisO!6J!ALf`+LC!MF}mqyGV;mI)VLmobqK zPC+TkeY)H5Olk%jmC$ohgb$j4lE4+)VZHXzohqM_@C=XWiqC4o3!#M6-L zcLpTUZXwk7%)rw1hPk-h(m^Wy{fB4ozh@)rd1*b#hlKH+7$2ZM%81W)jUZmv`}r37 zqJ@}F2VuQaUqr-LUtH{($N2oN&i9IB*esvrG+l0q^WDgTz_=vu_lnH#2;K+Z3&vIR z>(-r?>AjzCTdaoO84O8!=Bx58)r}yaaaG$=u>>Rh8hOW==?}-%`BwtB_=fTI4Jc0U? z?>xq5w)JKgZ#Uc!{~r8H^6is+7bKr_1#Z6`+0;?L*_IP9#_xAV_Crx7Ggb(9uYEv% zd@jMaFdG&YlOKbeK|Ei@1?UFd*H~@2e(B(WdlwEa+*h)kQm5-0rstI=tYCFe zcwM7<)LkqauH$!IyXsjj-}5_qyY4h>vs*F5EL*lTKmWjIOUKNvXSq&krn0B9r?lI! z@trBp?1596o~+z<^CsA;hdhu}TgTm_je2!@(rb&@CFwh^upD0?F+=!zpuA8ut*#d! zz-`O(g%>L3Z(@tox@Vm-!F0;heU?$Zi~0^g__ph`O3MzfV>a+qeBtm|^xCFv>z$U> z5FM-0yDxGPIyH#}W4YVK#dJi5oBSoWfe!c0?vmwt!qBazU2h5BpyCGI4FE$A5cqcF z8^SOUv5}6^u6KjP+2LgJI;M&1a1NP5Kp9ph3L{#gP)v>&hLtU-O|=4Wi?VMpQMfC6 zclIN>Pv+3CnouQhU5Z3Jix$Zs%Vt)M7mAG!(bcYv(O3um)?*=qk_?$Ed%J51!ntyCDF z3so>jKPEQ5I1!*cP)C3=q$mmX@zW0lb`$e}`gmuB-tZD;p&jQmkmOH`)GDSmNM=0! zRj4D{uFPZ5KY?hw)g2=97g#%yjdruTBb^z6MM~|X>W*AyJG?or-J8GH^)Ge83p%sLwqa^%37wK&!;T!O7q_>R}gQ-019|IfMo*IMsGnk17wckLc z(n)fss(}AVV|(f@nD4?&)>2F=12=JN_71a~a=Al#QA=_1@xZWZQV=?=r4$vqaiTj1^!d8T?dms3jNRp_BVVHy?rKS0%q zrxmS9trUH#RIuX_noPQOaJB{&d{(JZt-%PfWMH4GeEuy~LmfiA5}^Hi3B~tb!RY0` zRt%2?$|wUd_yJb%qc?$rVIVjVgdiseE0D(kkBl^ghY9PLIfN16T!7Cep|@x4O!n#T zzVh$i8l&T9-+p!6|AuwLvN};bv^X;Uqt|!+?VYc+Z%F>~Q~u!}e&y1c@1=kL^7+yI zFF*A2XP!TO`{h3lK5?4I!evMS58)=rG~`~$7a>cKHON`WvykT?zks|3c^jf3VHQ8k zpo(`w(}YimZ%aZfT|%rlbSnp|k`QZm8-cLS39;}c#L6VZmXQ$qiV#~(aY%lghPIbNYOWay3ZO0Q~7&3vpM@lJYGJ^Ve|7YSU% zPhuSYxRmYrl{UZ6;WpUl4SAHp84x_Cb@}@t7KskggTpfnl;s{X)^M&5@^-kSy>yGO;tS%p0-_I+7 eUnYJXsME4d-*tiwjSl`&`%R&@Odk&qoc{w%J9hH` diff --git a/42sh/obj/sigttin_handler.o b/42sh/obj/sigttin_handler.o deleted file mode 100644 index f6fdc33eed828e97bb186d29b7d1148c991706ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2552 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 KRCHe)HvbEMgj4PS diff --git a/42sh/obj/token_expand_var.o b/42sh/obj/token_expand_var.o deleted file mode 100644 index 134684b1015acba04d7b0a0eda100ea9bac9531b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3048 zcma)8U1%It6h1SXne1kh-A$sk)+!5$(SX^FHDau_Cfd|V+G40}t)PsP&2)F`W_H<~ zq-nJpn<@hW3X!c&Ye5S?zA;IaPGP1 z+;hKs?z!jQnTvn@`ENau5+XFwEg1f&F_{bia36b{J1A8ue7w0e;<<-Q*WK?n ziFe6^rJvS_hf60QgYk8U%e4~U#}NsX;nEoSqmIE+m zjxHJ}nO_di^HgJIV8J*!urM{LQ2bSnp=2~050PxZpmCKO&}VBVNHZ%m)Z^j-7uv)uw>X5jLbAD5Pvyh+nvC!hVQpRZR-c)z0J9&4efcK=Uw;M{TXH)9lPO6kM>4H6Jm(y@Qy$-=OS!2180*Q9|nM?uK4GneHPQ~F(T}6y zw^ZF;{{qB%b!&JUlKs>^wT;5>pvV4dzuFcKzmML}tUao>B}o4g-4m>~MBaqZ!rBiI zk@wK(O5{T}q2P@t`whSTSt6B!Je&8??E0s};XR9uK&CvGnz?KW&P5R}RpYPb!>cjh z#Eu|-j}%x!xWRSe<`OX`$HtP0@9c*AoZGvnPDB^K>3J#9IPp;?`PPePwDk8SjB&!= z27dtl415vHSz!!L&Lf*RwbF~z$tKRNH1UzKiO*2N z|6dmBu|wVoysJo-598F3pBv@KZc-)_N}{nodp<uESO_g7Fo2uD69$G97_^(c4-E-Ym+OSlJ$7P3NLg@50i75(2ww-rIs$;fSDf=$l-u}$s@J{tuD4g%5=NFmZ zQh-i%hR&HaMxgp>DzC!Jj*OI@!`y#;ehTkZIbpeY1$VT>DUEpV z$@~^2-X<0wv>)}8?Yn7y<*YmAcsJs`TNf?FhDd-{GuB0@{T|BZ{1hAWQ+TS3cgD+3 zOcWj4%^qTUH|+PUTz#`lXyYC83-C%K2mA&%=J&J2>y&uzGV%QUCbGFkJe@BTNa3AX zCSK*}#7+0xCGob(0-j$c9$q>hvN1nL9txG;-_1e3HDg16bEQMrXT`3%M+$D+ge)B;J6;8<2R?6o4I9I;A>)#e(Z2 zHtzR|#QRQ8ngSl_#4Ymc#Iqy=VnHC2Uk!d8@!Z!1NZJtMDR3=uzvQ|N*9P21-)qhM zYE55GSu@WsSToft*2ya6JS2FN_2O@$UkGdZsz|)d{H&8Z=B?>3Bi78<^Mv(nrBBbM zp8IN$?@?-KXy22m!%o>Nl-yK*x+mR}dN5bS%irDK10&tHF}>j-;gxflqBH4~GnLXo z$3=r2C!G_Sy&h&}#*UN@ll!E8~neH7tI$%9HKg+Iq17@r%@mIW29Rl7glZiM1Vb8Wm;YeSj!G@NbP zKr|G8H1=5RftIZ;Xptdw>Dbkd8?dj=H276ASBYKi!5n<5Iz=eHB^EE76^Y--=L*)pd8x1eF)GJnikSePiB3c z-$qyyqrO$e*rcBxf0I`08H~a(r!XD_ht`=VA*+y@n^uf!`xMy0XYrEO`!OrxZxb>dgw)NYt8wl%P%ZwQVt8qhS27U9H&YWPq=Bzq zOc0O6XF52ru3cjsF9iM+^h~`L`{MY+i+A_B_rCGxk83}j>-r;?dh7VY#l9DkEr&n( z%*cGpHoOo19Lzt8IWP-nV$*BD>%puKYd}A54-i{J7rP~0tS?<`$tp02Ev1V+moB!J zuBq#;S?OX+Bo&lx`JoXv$BesRg?1ZZbK20MYUZ?VB6ABfu~IkxNr2P+ uNMM^8DZ8XxCnW^q&C^oyZAieOs0~Vu>Fc$&utzKW0nR%`Y;Wnp7XJh72BFaa diff --git a/42sh/obj/token_init.o b/42sh/obj/token_init.o deleted file mode 100644 index 4bb6a561ce71ba28430da4b19973b4a1ae6bde44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2760 zcmb7GO>7%Q6n?YzZrnI=HVIUr6l9U|CmK7nk%$0=nEv2|R6?Z|Xuzw|_c_M2xs$jx$$vZqm$5w=g$h+=f0-10N*M7>c z{%T&vVr%Qaz%{>iq?td@ye=oAyFP9rE@^cdX5e=I`DT9Yv4k|Per-PeRSs7uJvB9b zEWPB`>ZOX89?cAAhST>rWxn@Aqrz z&&mN*o08{K!S-!(igu0ar86$Uv;`h?N%V?4 zQ~i1@Wg54pdPN^6PV1qGeopgl7O~WW$%i<}@qQ6YC6j@ocT+4i(GLaR2V)i=JE(XWZtNxKo33u?_C`E6ng^@>=&g+ z`&^i!b2pe;@o(gV)xbBwkqLK1uq8%1e}8aGh=7S0AVIj2dk%WH4X>O_HoqNt!R%W4 z%t^m<_H#Y^U6sd>OvL*!^A+Z+%rb{8k@nrpOft(#;@UEyKv)SiL%o@hb(l~H<%Q(K zgi0urEHJC6xPrf47CLx`*a>?pQl$fI8-;lhXO5F-n8NJpNL*kqth<*v@i%ZbHp0?V zE@i%=9qJCMNQC30QI1<7{z`RoE3gK$D0xnKvA|!A%_~eKZ*r!H@vR%j*BOUCuF))U5zt{IQ(DPxl5qLh1Bn#N1IHlwE|^-dnuj7iPlwTT`G79YYJ$zVet z1iJCAl6NV2yOJyrjDfcj66dXlJ0YRlqRO|nRVQoC$IqVUE>rOC$QO#N1-p!YwtoQ) C|63^l diff --git a/42sh/obj/token_print.o b/42sh/obj/token_print.o deleted file mode 100644 index 3170b43363af0749981073fcc52306ff930f8bce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3536 zcma)8ZERCj7(VxQx9!@|bsr#zkR~wDz}7N8BnrrIBV|B>$bcBhwQIYrP;QsrTNsQQ z!i-oaMl}BN7l{#n5M!by@!<3EoOic4SuRe`?KFoi%EGeA-54;X8(m}5lx6m^xL>sE5Wa%4x} z(y@KZq+XPcOM!TdW$qM*LpfOVA=mY|X=PJJuQcjn|z&EBVC=JebQMi+Jfw++I7Ffynq`E|L#QUCi zcPws)SQ%dtub9S1>(@EWk?PhrQocFAZZ-or&_#@+U@G{*y?F+7q&&A@!nCmcc z^)d16`1)hm^=ZCUC)H;^7h7kd^VBlkdNH-cS9L zfk~+%zIbLg&S~j6V{ghx==z5C(iLM8FC>i@fX6FJp#EgY6?n-$y(f#?brw|igP?q` zt0mr;#FMIk+EEL-uWd|;Gc!=B;EnJHZjYgt{{CIRIKQ3zDcpL6#J4WwfM29=Zqr)Ov=oo_t zqBsI^WO(Cf;g_M)N}+3X=zF#BbMz9Hb2abf`em*?vT^|OAKd&Dj}SewbSc=$r!ch- zcZ^1dyT&#QcY33R)1NzTuwc8*!DyjtywGvw`Yyr@{TSKt!(htTlONodOy`?g7nz~K z?o2vA*qzSho0=CV29ue1zA4h03e9ga=i8c3nAvzZog7GJ!&YWj($M?yF|b6jiEisteMIfq2(=+mPqL7cpAN_d3gj%%aYcXMbA7CBiv$Bs&bLM*nZ3}SxF`{`Vj|ub%i8-0no>fkQ0+_-NpY^(f!7Vt*y3l2}#t*Eg}n^Nf;FMgsY%DQM!wr+!~QmZH~_2>ZGt5SOi zbCr6u|7&V>EIMfEJJjmeVH0Stou}5YfLm((4!YmR)C*E)cnq-VYP~lH{u51&>Kx(C zLpnoksyfH({Q}ZeYSYv?K~e3#2$_$iYPS0d*in${Ro^i%k5?nMb_0`p9MiYd)_RCF zU0da4B#c8_&0QGnN@{J~g&l(tYiqcRdl|$_FlqI^%Vb_{4JBG)JnS&AYix>}mcpzA_=gY4~=KcBPVq?}f2bSK69DK`vDc(5qgIgD7TJNN0 zjh|cc`bjPP>k0Uu0{srU24dd*NXBf?B2YVM8)zqp=>rqYC0j2Bvr7{bE={~qnt0LE zKp4CVns|HCbWEC919Bm+guC@!%_>U7B62`ZZY?nVY|1P z_z;$Lap0lLw)C-$I3AEuM6!uOse%XFzvF{ynrI`gT18WRr!?&|&7aeP?oO?Gh30dw z*Xkg89kCJO6DPFV6`E_i+xv=EtuAcP0x)_yHP!7J=+qRK?~v-o`GhDq2W;jQW0$Gj z4sYHe^=F;m-C@b+Nj_V0Feb?Tk>rp?EhjmoUr`kSNF_fr1Cz-SdXJ^|$E-fx$XJO~ N*47jD*RKcb{s(|cAQ}Jw diff --git a/42sh/obj/tool_line.o b/42sh/obj/tool_line.o deleted file mode 100644 index 82f044aeed96190e122b56da79d05090a2172739..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4668 zcmcInZ){uD6~E8UeRkv4FHPFCtXpG7U?WgFEg4kI+EQqySF4c_YqJWd9**NUuH0wK zf11!0Evs9W)JRLUp$P$lO%qI02OHA(G77CSl|TDHrA>$r`_KMxDX1GHM6;}7a;oTz9e&@?fqmC`cl43R84(^W`{xcJ$Tu+4MBHXsW69A{$|@A| zN@Q8Pzq9MXZ@JUL#aUp|q7BWmeiK5nOyg=V~~Tu;YTh*Ml= zmj`W$cQ~FDW{nWSaM50iUM@m^#9&agw3&-Bm1%Z?sW1#a~3CEWq) zWxRVhY0MI7h_}YSTs+Z;_s0gjhgXSLd@R>8-bKcnXNSJGN<17o1=;A|t8_Tg+<5O> z=kPVZ4e=(jhY@GdD%q21d(5)-?yk`lA28kvESvxy9htrBh2T;(;3X%l@jR;Q7+6;Q zeK5u6^%CRxgM1G#k8)4&P?75SP1_2wG2R1w9oPB)RoGmSFKR0vUtn6Ph%lC?z z;YH)b7hr8xhL+3<$ndi9#s;l?wSCZd>cZemY4Oz1;x9GhB&~e8tE%ZY%jZ|jS^wpi zS5{V)YW0AW0axVYRz9EeV=XcTN9@@KiWH@vrnJ=WXc4%j~KinVs zY9fO#(zc!bV8R1C!rN~bg?u8C!LiJQxD74lGg&(oD%pi}%1(}j$O;fbTd&<3?2_JKhrT7aUhBlh z@q{7l)CSwV!FvN=4}4|qH*uYNrSPy|56*AfKpiU^P4;w=k=`r3!EXctxQBd(AUl6I zh=YszzDTQ4p@p9|EZzcl5<%PJ5cTW6ma13a6FjMnJc5yCXqwk^dg@g*{w{#P<$kZY z9}ui(4nNdFY7tnB90I3psR;19TjnnyM;jSaCwA zNHOlC#n4p#K>w;ZAyic`{wedWudLqWEBW?$blgwo2F9nS1I6q`Hrnu!B|K_0P4UzG z?=Ic8c=p)WuJupP1b+1C#Vv`@Q^&?2pF}@}{v7&m&?(L2CuP4I6pd0&BC0|!351}U zk%%hDA}SS$sCI1l8jGf{YyGD%eF(vI8wf|1LX9awDx8lZJj;p>{{*28F%ljO?A0x5VTf zQF(hzZjH)*wSpI(dVVMaFUU?<8Zo&kO7@ywmf{r!y6)Gq3sdVA%;qz)XHMQ4Bcv@+ z+1G$!K(SjnpaA?EfpAu?8ln9mWGw3Ops?a$q#75>w)3b6(Lt&*=v@xg?_m0gvjOxE znZCr7FGHRFXhT&`F};Urgz0Te>9t0B(@Y;_I>5ELf+wd1d z@$OmL!F-5yh>*T}whw@>F~=6fW2g2VLp(i=s*fQO)V_O&Z}B>E?f6M$P3F_Zq!9lG DybEDr diff --git a/42sh/obj/tool_line_2.o b/42sh/obj/tool_line_2.o deleted file mode 100644 index 66660dc7f555c911a5ad5cb7af70fdca6ea2e6c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2916 zcmb7GO>7%Q6rQm&YbQ=^Hz`$rP`ih=fJD4WC=ivjBx-|}kccWYZICD-T;ARL{_wbz+3|<@$v=38xh1au-NP9I2Nmx9*LJ89(K(0 zn15}267P(_*eaf7j}&l75btXd-@L%PF5+8~>#<3`PTJ0zrHy#6*JMM878Ss2qQ*nk zZ!~RqAqL}*FaNc)f&6SXw0#6mjOMr)_Xw1K-pc}w5b9}^s)%6Di?}G(_*X4gEHwB(h z3BcxLAEn%XdCT??gZX-w6ZkEOL5m{aAz4E83&%AqIpDC}jEll6hX9rjG$`LZ%znr+d2T=6co)vu-MF0K7 zw>xO%K|@z!{)evV^756Q<!e)YWRl&pfScBEQUt?JW89&VVH zj#f}ohuc$a&ybR1Xt+!*X2x>iMbO+rAyJTf;GoxCzOXzlb zFy73<@uadhzMVF~QiW1rY@%Ha;rNl*OR=XKUxs>w83_r)tIhDLB?t<3fP~}6Vlh~F zWhYqt5m1?H!2TAGdY4?Iw?Dv0Uc*L^eCJjVgEY|7xKK1fX*hIk99|6Qk3b7r@qJJ8 z9=f`BpwA|tQE1&5ib-fHz~Oz$RS;KzLvOL`AR~baxbF9bw=`S{-e0qJ#Y{A zvKIiz6gmK{AB%c$ENr0a|M95<4CEaM282hP5(Oj!dyF6++EHSCzFa)C{LRJZAAWT2 zm%WBMe{l$GnErdfSZz!d^S}!11O~#i(S()2BMgMKK@%2Bcwza_gkZw!zw(Gcj50PD z;gMK2M5!T}8=V*+bUaCujgjaac;Pfp0;_)`Qnf0Vopi^OAB2u?lYdWs2cHlbhnCWZ z@omsjoCBB!&kfPaB}cPtBVW##n)O`A3$>Qgg_6d_ds2JE0L}l9%Hft3M+Fq`(yhnZ zdlXJk7HfzeW%WugOZKweb8J^HYwl$GCt2t>7Ez+dSXk**Zm`fGi=G8TFN0rL`H3~Y z$zrH=vZhIFBT5!s8C7nC6v*l_OaNiD;MRuup1?~R^#P&3=i ePZHP&+5>W(3Q2BuiQtD~*>z24)JPZczsA3Q+MhlE diff --git a/42sh/obj/toolz.o b/42sh/obj/toolz.o deleted file mode 100644 index fc36374683f06f9e3899bab7293224dd0cf974aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4676 zcmb7IeQX>@6`$F=**kya&d!%wwS^O;F%k7gODaY2wb+WU+FWc>+S)i!vp%oS_Eq-T z*mtq1Vqts^_~JOCK&n=vq7b205Q69*C^aS6DT*y5)F={&O8ns>P<)b+3_9RiLe1~Z z&bs!VL(@@a-@LEiym|9xZk)H?``i0I#<+*!gYHG27x;wG(e6e!h`&v{P--idm5sv# zlToiwex{jcSidt5H!N0Sf&6#IAA7-IL$Pzk<@S^*{cL@JO@X? zF>i_EX;W=0i+H-@UFlvEpi*O+OUeS6r72ib_&YwRtJ{xba z>lwMh?)WY#ynPDqoJ!ipYK!V+Q+z`)%Z+!#h45lJdc}N*^)*IfjX{GkiwZGQj0M?l@)5+09vfDJ9n>Kq)D7=@IuoHN6WbUnGOkFiD zym+74GmPD}9o+Xp$ZyM+ZNgZ<#&cL~cb_vRx^aFJNr~uQFH`6Bf-1me;8ANrd`h$> zKFW){3(M?-M9RC+n_*8-e*&cdsO%m`-`r@u)V-U9cQ|e}vVS!)tD%PJ!gORkn=ULy z^5i-b$=62;!PzQ|e@y`!v+4EAG{|0E!I#a9=QE2uJDxYPk(J!<*4NjK%x^*+Z}!Mm z6a4rTSuurQVPwZ0Xv2!+jhU8$F;ik>!V4@o^$8emmd=D1>^WNVnX5e8n$Il}{!9cu z%*ZZErLh<(&5s*V;swV;-s?%p)biE4z8-y^`SRJw?J$ zaEhvZF>;I6nuVbqE#QN15mZgTSwqq+dDe=On0pI;6o#Q%<78`v!0YWlujir z8uSdu<7O(>Mehu-i4k+OFOiCm;3~vD4G9#$4BR0NB?;>;B6fk z@gV0yd+uvLkYln3H+DgC&tnQ*doJ}O;wp(_-cEd|E!l+eHu?qQ_ehknSLFDm&3^Yu zKi_p_-$*EEye&=N1Dw{U+HS;$%#|V?UGpE6{^W z$>WzlSb&5cDuQH5or>Gl8SY9D`n#9Ak2?FrHAn%p=C~CkfPvRk=Ga zP5FyTu~K{=#fH{JeK$HaS|j0jkPWZ=ttFnZx{2vBD|G%;1IACHQ$9&fxu#16jjEVL zlvE}9f06i9w6K;suAuDHI@or0R6Pv^8&9ogTf6VV z?geG1*0rtO8?a;V+IVVxMRwoES~OM*L(cyb*nuyn9H4XeJfa+u(xOZc3oR@>y8nwOgf=VqdBOZGQ2)x-Mn!3q4E*{fQL0BpNmTe@9@V9_zeD&S zgkIM(f@cJK8?L9xRnsS-dszhZIk7h^?(PwxIpGTnuih&>zZBZpFAJW=Tn%to5mjk% z0Fmqui+y2H5fys7eoSviSbdnaU6fl#_Zh=86iYOQ`N9mW#{BD`IgIS}io|I{F3`&GmK2QJJm4*&oF diff --git a/42sh/obj/toolz2.o b/42sh/obj/toolz2.o deleted file mode 100644 index f267b6a32870a59f93003b1b59b1c9a3ba481ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3420 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 J`Nl<@{{i$a3U~kj From a73755aac7aa06a41c8741d81814f1d8959fb4c4 Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Sun, 22 Jan 2017 17:28:11 +0100 Subject: [PATCH 08/67] ajout de opt x/c/v pour copier/coller la suite de la ligne affichee + correction de quelques bugs sur opt fleches haut/bas/gauche/droite + ajout d'un mode visu (f5 lance l'affichage complet de la str, f6 quitte ce mode) --- 42sh/includes/ft_readline.h | 5 +- 42sh/obj/ast_free.o | Bin 0 -> 3596 bytes 42sh/obj/builtin_bg.o | Bin 0 -> 5336 bytes 42sh/obj/builtin_cd.o | Bin 0 -> 4988 bytes 42sh/obj/builtin_echo.o | Bin 0 -> 2676 bytes 42sh/obj/builtin_env.o | Bin 0 -> 2348 bytes 42sh/obj/builtin_exit.o | Bin 0 -> 4544 bytes 42sh/obj/builtin_fg.o | Bin 0 -> 5276 bytes 42sh/obj/builtin_jobs.o | Bin 0 -> 4920 bytes 42sh/obj/builtin_setenv.o | Bin 0 -> 3296 bytes 42sh/obj/builtin_unsetenv.o | Bin 0 -> 2808 bytes 42sh/obj/command_getoutput.o | Bin 0 -> 6472 bytes 42sh/obj/copy_cut_paste.o | Bin 0 -> 5452 bytes 42sh/obj/data_exit.o | Bin 0 -> 5160 bytes 42sh/obj/data_init.o | Bin 0 -> 5852 bytes 42sh/obj/data_singleton.o | Bin 0 -> 5356 bytes 42sh/obj/do_job_notification.o | Bin 0 -> 4948 bytes 42sh/obj/exec_ampersand.o | Bin 0 -> 3116 bytes 42sh/obj/exec_and_if.o | Bin 0 -> 6660 bytes 42sh/obj/exec_command.o | Bin 0 -> 5844 bytes 42sh/obj/exec_dgreat.o | Bin 0 -> 3860 bytes 42sh/obj/exec_great.o | Bin 0 -> 3856 bytes 42sh/obj/exec_less.o | Bin 0 -> 3848 bytes 42sh/obj/exec_or_if.o | Bin 0 -> 6652 bytes 42sh/obj/exec_pipe.o | Bin 0 -> 6416 bytes 42sh/obj/exec_semi.o | Bin 0 -> 2912 bytes 42sh/obj/ft_exec.o | Bin 0 -> 4688 bytes 42sh/obj/ft_findexec.o | Bin 0 -> 4740 bytes 42sh/obj/ft_parse.o | Bin 0 -> 5264 bytes 42sh/obj/ft_post_tokenize.o | Bin 0 -> 3404 bytes 42sh/obj/ft_putast.o | Bin 0 -> 3896 bytes 42sh/obj/ft_putast2.o | Bin 0 -> 4376 bytes 42sh/obj/ft_split_whitespaces.o | Bin 0 -> 4200 bytes 42sh/obj/ft_tokenize.o | Bin 0 -> 4916 bytes 42sh/obj/get_lexer_state.o | Bin 0 -> 3088 bytes 42sh/obj/get_touch.o | Bin 0 -> 5404 bytes 42sh/obj/get_touch_toolz.o | Bin 0 -> 4652 bytes 42sh/obj/get_touch_toolz_2.o | Bin 0 -> 5264 bytes 42sh/obj/is_builtin.o | Bin 0 -> 4492 bytes 42sh/obj/job_addprocess.o | Bin 0 -> 5048 bytes 42sh/obj/job_cmp_id.o | Bin 0 -> 3760 bytes 42sh/obj/job_format.o | Bin 0 -> 4020 bytes 42sh/obj/job_format_head.o | Bin 0 -> 4172 bytes 42sh/obj/job_free.o | Bin 0 -> 3924 bytes 42sh/obj/job_getprocess.o | Bin 0 -> 4784 bytes 42sh/obj/job_getrank.o | Bin 0 -> 4388 bytes 42sh/obj/job_is_completed.o | Bin 0 -> 5280 bytes 42sh/obj/job_is_stopped.o | Bin 0 -> 4796 bytes 42sh/obj/job_kill_all.o | Bin 0 -> 4180 bytes 42sh/obj/job_notify_change.o | Bin 0 -> 4456 bytes 42sh/obj/job_notify_new.o | Bin 0 -> 4568 bytes 42sh/obj/job_remove.o | Bin 0 -> 4512 bytes 42sh/obj/job_update_id.o | Bin 0 -> 3956 bytes 42sh/obj/job_update_status.o | Bin 0 -> 2732 bytes 42sh/obj/job_wait.o | Bin 0 -> 3712 bytes 42sh/obj/launch_process.o | Bin 0 -> 6328 bytes 42sh/obj/lexer_backslash.o | Bin 0 -> 3540 bytes 42sh/obj/lexer_default.o | Bin 0 -> 4000 bytes 42sh/obj/lexer_delim.o | Bin 0 -> 3600 bytes 42sh/obj/lexer_dquote.o | Bin 0 -> 3724 bytes 42sh/obj/lexer_great.o | Bin 0 -> 3872 bytes 42sh/obj/lexer_greatand.o | Bin 0 -> 3776 bytes 42sh/obj/lexer_less.o | Bin 0 -> 3864 bytes 42sh/obj/lexer_lessand.o | Bin 0 -> 3776 bytes 42sh/obj/lexer_number.o | Bin 0 -> 4280 bytes 42sh/obj/lexer_quote.o | Bin 0 -> 3608 bytes 42sh/obj/lexer_sep.o | Bin 0 -> 4008 bytes 42sh/obj/lexer_special.o | Bin 0 -> 3920 bytes 42sh/obj/lexer_var.o | Bin 0 -> 3948 bytes 42sh/obj/lexer_word.o | Bin 0 -> 3916 bytes 42sh/obj/line_return_toolz.o | Bin 0 -> 5768 bytes 42sh/obj/list_toolz.o | Bin 0 -> 4000 bytes 42sh/obj/main.o | Bin 0 -> 5176 bytes 42sh/obj/mark_job_as_running.o | Bin 0 -> 4432 bytes 42sh/obj/move_to_line.o | Bin 0 -> 5008 bytes 42sh/obj/parse_dgreat.o | Bin 0 -> 4616 bytes 42sh/obj/parse_dless.o | Bin 0 -> 4540 bytes 42sh/obj/parse_great.o | Bin 0 -> 4616 bytes 42sh/obj/parse_greatand.o | Bin 0 -> 4508 bytes 42sh/obj/parse_less.o | Bin 0 -> 4604 bytes 42sh/obj/parse_lessand.o | Bin 0 -> 4508 bytes 42sh/obj/parse_separator.o | Bin 0 -> 4300 bytes 42sh/obj/parse_subshell.o | Bin 0 -> 4644 bytes 42sh/obj/parse_word.o | Bin 0 -> 4296 bytes 42sh/obj/print_and_del.o | Bin 0 -> 4448 bytes 42sh/obj/process_cmp_pid.o | Bin 0 -> 3152 bytes 42sh/obj/process_format.o | Bin 0 -> 5316 bytes 42sh/obj/process_free.o | Bin 0 -> 3528 bytes 42sh/obj/process_mark_status.o | Bin 0 -> 4280 bytes 42sh/obj/process_redirect.o | Bin 0 -> 3340 bytes 42sh/obj/process_reset.o | Bin 0 -> 5116 bytes 42sh/obj/process_setexec.o | Bin 0 -> 4128 bytes 42sh/obj/process_setgroup.o | Bin 0 -> 4956 bytes 42sh/obj/prompt.o | Bin 0 -> 4764 bytes 42sh/obj/put_job_in_background.o | Bin 0 -> 4044 bytes 42sh/obj/put_job_in_foreground.o | Bin 0 -> 5456 bytes 42sh/obj/quotes_gest.o | Bin 0 -> 4408 bytes 42sh/obj/reader.o | Bin 0 -> 5096 bytes 42sh/obj/readline.o | Bin 0 -> 5488 bytes 42sh/obj/reduce_bquotes.o | Bin 0 -> 4400 bytes 42sh/obj/reduce_parens.o | Bin 0 -> 3980 bytes 42sh/obj/set_exitstatus.o | Bin 0 -> 2876 bytes 42sh/obj/shell_exit.o | Bin 0 -> 2620 bytes 42sh/obj/shell_get_avdata.o | Bin 0 -> 5464 bytes 42sh/obj/shell_get_opts.o | Bin 0 -> 3632 bytes 42sh/obj/shell_init.o | Bin 0 -> 3932 bytes 42sh/obj/sigchld_handler.o | Bin 0 -> 5180 bytes 42sh/obj/sigint_handler.o | Bin 0 -> 2608 bytes 42sh/obj/sigtstp_handler.o | Bin 0 -> 4128 bytes 42sh/obj/sigttin_handler.o | Bin 0 -> 2552 bytes 42sh/obj/sigttou_handler.o | Bin 0 -> 2552 bytes 42sh/obj/token_append.o | Bin 0 -> 2916 bytes 42sh/obj/token_cmp_type.o | Bin 0 -> 2676 bytes 42sh/obj/token_expand_var.o | Bin 0 -> 3048 bytes 42sh/obj/token_free.o | Bin 0 -> 3028 bytes 42sh/obj/token_init.o | Bin 0 -> 2760 bytes 42sh/obj/token_print.o | Bin 0 -> 3536 bytes 42sh/obj/tool_line.o | Bin 0 -> 4668 bytes 42sh/obj/tool_line_2.o | Bin 0 -> 5452 bytes 42sh/obj/toolz.o | Bin 0 -> 4676 bytes 42sh/obj/toolz2.o | Bin 0 -> 3420 bytes 42sh/obj/toolz_parseur.o | Bin 0 -> 6916 bytes 42sh/obj/toolz_termcaps.o | Bin 0 -> 5464 bytes 42sh/src/line-editing/copy_cut_paste.c | 63 +++++++++++++++---------- 42sh/src/line-editing/get_touch.c | 6 ++- 42sh/src/line-editing/print_and_del.c | 2 +- 42sh/src/line-editing/readline.c | 4 +- 42sh/src/line-editing/tool_line_2.c | 54 ++++++++++++++++++++- 42sh/src/line-editing/toolz_parseur.c | 28 ++++++++--- 129 files changed, 125 insertions(+), 37 deletions(-) create mode 100644 42sh/obj/ast_free.o create mode 100644 42sh/obj/builtin_bg.o create mode 100644 42sh/obj/builtin_cd.o create mode 100644 42sh/obj/builtin_echo.o create mode 100644 42sh/obj/builtin_env.o create mode 100644 42sh/obj/builtin_exit.o create mode 100644 42sh/obj/builtin_fg.o create mode 100644 42sh/obj/builtin_jobs.o create mode 100644 42sh/obj/builtin_setenv.o create mode 100644 42sh/obj/builtin_unsetenv.o create mode 100644 42sh/obj/command_getoutput.o create mode 100644 42sh/obj/copy_cut_paste.o create mode 100644 42sh/obj/data_exit.o create mode 100644 42sh/obj/data_init.o create mode 100644 42sh/obj/data_singleton.o create mode 100644 42sh/obj/do_job_notification.o create mode 100644 42sh/obj/exec_ampersand.o create mode 100644 42sh/obj/exec_and_if.o create mode 100644 42sh/obj/exec_command.o create mode 100644 42sh/obj/exec_dgreat.o create mode 100644 42sh/obj/exec_great.o create mode 100644 42sh/obj/exec_less.o create mode 100644 42sh/obj/exec_or_if.o create mode 100644 42sh/obj/exec_pipe.o create mode 100644 42sh/obj/exec_semi.o create mode 100644 42sh/obj/ft_exec.o create mode 100644 42sh/obj/ft_findexec.o create mode 100644 42sh/obj/ft_parse.o create mode 100644 42sh/obj/ft_post_tokenize.o create mode 100644 42sh/obj/ft_putast.o create mode 100644 42sh/obj/ft_putast2.o create mode 100644 42sh/obj/ft_split_whitespaces.o create mode 100644 42sh/obj/ft_tokenize.o create mode 100644 42sh/obj/get_lexer_state.o create mode 100644 42sh/obj/get_touch.o create mode 100644 42sh/obj/get_touch_toolz.o create mode 100644 42sh/obj/get_touch_toolz_2.o create mode 100644 42sh/obj/is_builtin.o create mode 100644 42sh/obj/job_addprocess.o create mode 100644 42sh/obj/job_cmp_id.o create mode 100644 42sh/obj/job_format.o create mode 100644 42sh/obj/job_format_head.o create mode 100644 42sh/obj/job_free.o create mode 100644 42sh/obj/job_getprocess.o create mode 100644 42sh/obj/job_getrank.o create mode 100644 42sh/obj/job_is_completed.o create mode 100644 42sh/obj/job_is_stopped.o create mode 100644 42sh/obj/job_kill_all.o create mode 100644 42sh/obj/job_notify_change.o create mode 100644 42sh/obj/job_notify_new.o create mode 100644 42sh/obj/job_remove.o create mode 100644 42sh/obj/job_update_id.o create mode 100644 42sh/obj/job_update_status.o create mode 100644 42sh/obj/job_wait.o create mode 100644 42sh/obj/launch_process.o create mode 100644 42sh/obj/lexer_backslash.o create mode 100644 42sh/obj/lexer_default.o create mode 100644 42sh/obj/lexer_delim.o create mode 100644 42sh/obj/lexer_dquote.o create mode 100644 42sh/obj/lexer_great.o create mode 100644 42sh/obj/lexer_greatand.o create mode 100644 42sh/obj/lexer_less.o create mode 100644 42sh/obj/lexer_lessand.o create mode 100644 42sh/obj/lexer_number.o create mode 100644 42sh/obj/lexer_quote.o create mode 100644 42sh/obj/lexer_sep.o create mode 100644 42sh/obj/lexer_special.o create mode 100644 42sh/obj/lexer_var.o create mode 100644 42sh/obj/lexer_word.o create mode 100644 42sh/obj/line_return_toolz.o create mode 100644 42sh/obj/list_toolz.o create mode 100644 42sh/obj/main.o create mode 100644 42sh/obj/mark_job_as_running.o create mode 100644 42sh/obj/move_to_line.o create mode 100644 42sh/obj/parse_dgreat.o create mode 100644 42sh/obj/parse_dless.o create mode 100644 42sh/obj/parse_great.o create mode 100644 42sh/obj/parse_greatand.o create mode 100644 42sh/obj/parse_less.o create mode 100644 42sh/obj/parse_lessand.o create mode 100644 42sh/obj/parse_separator.o create mode 100644 42sh/obj/parse_subshell.o create mode 100644 42sh/obj/parse_word.o create mode 100644 42sh/obj/print_and_del.o create mode 100644 42sh/obj/process_cmp_pid.o create mode 100644 42sh/obj/process_format.o create mode 100644 42sh/obj/process_free.o create mode 100644 42sh/obj/process_mark_status.o create mode 100644 42sh/obj/process_redirect.o create mode 100644 42sh/obj/process_reset.o create mode 100644 42sh/obj/process_setexec.o create mode 100644 42sh/obj/process_setgroup.o create mode 100644 42sh/obj/prompt.o create mode 100644 42sh/obj/put_job_in_background.o create mode 100644 42sh/obj/put_job_in_foreground.o create mode 100644 42sh/obj/quotes_gest.o create mode 100644 42sh/obj/reader.o create mode 100644 42sh/obj/readline.o create mode 100644 42sh/obj/reduce_bquotes.o create mode 100644 42sh/obj/reduce_parens.o create mode 100644 42sh/obj/set_exitstatus.o create mode 100644 42sh/obj/shell_exit.o create mode 100644 42sh/obj/shell_get_avdata.o create mode 100644 42sh/obj/shell_get_opts.o create mode 100644 42sh/obj/shell_init.o create mode 100644 42sh/obj/sigchld_handler.o create mode 100644 42sh/obj/sigint_handler.o create mode 100644 42sh/obj/sigtstp_handler.o create mode 100644 42sh/obj/sigttin_handler.o create mode 100644 42sh/obj/sigttou_handler.o create mode 100644 42sh/obj/token_append.o create mode 100644 42sh/obj/token_cmp_type.o create mode 100644 42sh/obj/token_expand_var.o create mode 100644 42sh/obj/token_free.o create mode 100644 42sh/obj/token_init.o create mode 100644 42sh/obj/token_print.o create mode 100644 42sh/obj/tool_line.o create mode 100644 42sh/obj/tool_line_2.o create mode 100644 42sh/obj/toolz.o create mode 100644 42sh/obj/toolz2.o create mode 100644 42sh/obj/toolz_parseur.o create mode 100644 42sh/obj/toolz_termcaps.o diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index 5f968480..ee0dcca6 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: sbenning +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/08 18:02:25 by sbenning #+# #+# */ -/* Updated: 2017/01/22 11:13:43 by gwojda ### ########.fr */ +/* Updated: 2017/01/22 14:34:41 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -46,6 +46,8 @@ # define TOUCHE_OPT_V 10127586 # define TOUCHE_OPT_C 42947 # define TOUCHE_OPT_X 8948194 +# define TOUCHE_F5 892427035 +# define TOUCHE_F6 925981467 typedef struct s_line { @@ -60,6 +62,7 @@ typedef struct s_list_history struct s_list_history *next; } t_list_history; +void ft_printall(char *str, size_t *pos); void ft_get_beggin_with_curs(char *str, size_t *pos); void ft_history(char **str, int ret, t_list_history **head, size_t *pos); void ft_suppr(char **str, size_t *i); diff --git a/42sh/obj/ast_free.o b/42sh/obj/ast_free.o new file mode 100644 index 0000000000000000000000000000000000000000..d3bbdd4d4d0bc796d6badaeaf1396e9741445153 GIT binary patch literal 3596 zcmb7HYm8Gx6rS7m-geui-DP>nv#>l9XqTrOF~|ncQqUM)iehd`dv~|E+^)SXECkK! zfzcP`s4%fpjBa~^Z% zn=^OL%yhrGdhU8q2+c3hfCJ!89Zehzx(9rj&RfuF3?}X47?5YvO^(qCGR>0JRdRLL zUbF1+HT|}y9Z(AKIBnMuA$;@&L^p*;rkS%gmfK9HRFp2$T>4ncst3Jp;o(f?qCky? zD=S(F>)9S&Mij%B?=#*RFVorC zVVQPjGt;|iy??6w?pJATzhizbUSZ=Vxxv->O;sOhvcmi1F7af3otbPkUb+hJ=exu! zZR;F#y|%);qCVjDyTrqxlaST%E}x{!xRvfk!%Wi~RUq>KG6Svz3Q?6y#@!=el|!8N<)^D7cciUh;qiR|echUz^%< zI@NPFp4#*5<iIDz3S=E7VKuGfO;A zPqP-=Ikw;O#db#ftx#;&up8E~P^t&K=Y$IZzex2Qk3aQg3lCy^<;ryr$G2ETCttAR z&55Q&Q+#^11GmSl<|Y`4d2cJghum5b-?lCTRoOO#AN zNzJ*TvEI=kg&Zau4w2Dv$}*#+Ric15;5QxvT^ z;qdt(YxUZcXoK#L))`}>_1aKuzb^sjP;GJ8AH6TKFfy(70hX{Xe9E!B0XOr!0jAE^ z(ikC@H@IW)giaRz=%PpjWfqFTFGNj)=8r}qgcKq?1l`LUXf&fvBO@#N#G6cl+bBY; zMo}wfQh*lA)@=?b{YJ5R4sG3PbZIe7^ZWL9ZIC)2a9EugX_e6ieEZv9r&a$dTA>@= zXl<~6ys;O8F}@AKT@b-gh>^y7Xx;(`8fp$fj0(&RAAvkU*L+{22y?EVXf5zHhJ^7Q z)T1;<20w?;L&hnHlk^Oa`~XoGm>K>JawL`+NDyHRv^QuaX~m(vOsff&FeX7ILSR_U zSvh)2_#)(5MoeS;RnMC4YYc>WlsB+%2D1rXLZ==u+ThXY9TBO82n8m{Ksn7sf{cP! zLQdkOq5Uv}4QLE4#2_55)h#J19;*vU+3t1q^*aYYt7`(nrZYX^Tk zKH<>XXAV7C-#dErTzlL{3-zy#{yz15Q}^!3fxo{U^Zu!ev+HWNe0=VD__-(Eefm%~ zesIUH7=Iq@!$%qpo(^6JegvEWm%uN9S?Y(u$H3o%{{VA$@F(|f1SE)6NEZu}mp6!; zM;G^Vr1Z$zq>II>2C~ZNV%exDRwP|4TNTA#x>$$G#qy`C8?0QHl#9iolHhq^6r)uX zPX=8)EDc}~i=Qr@2Q~1la@@1b+y6JJ~hu+L^fR^R9~MOFGNeU?nU2{A?i66e<8*vUO=m9*P=tvYMcYC zd2fkGmYrfUZ)ZEoIV+i;+q__)$Jyp2-7<^CZ_et zt$H%8FHGx;TJ_~=J(AX=M!P-?ofFc!Kdo!VNuPlwVv3z$%r>h9685ZnU1=nhoT}t_ sB_SARyrLxkFN+aK5l>u&DfLQQn5}qVOU0bk;i}O2J_|mC@}(ByKl|baI{*Lx literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_bg.o b/42sh/obj/builtin_bg.o new file mode 100644 index 0000000000000000000000000000000000000000..92476142285fc803d6888b784457487a7af8ce73 GIT binary patch literal 5336 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 baAm*KCv(9yYfV?)JG1Lf$`SlsbD7(J?r2iV literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_env.o b/42sh/obj/builtin_env.o new file mode 100644 index 0000000000000000000000000000000000000000..4dce0ec7f0777c078cf2fa62624b6d108305f5c5 GIT binary patch literal 2348 zcma)7&1(};5TCcnrXNX@XcZJiqSRVJlT->8KU=JlN)_#g9|u`B+q6kZHzC=yRV;c? zF}HdUR6Ka_kMOAY2Y41dDtHk*7QgDu+j;3`TWtpB&6~-*-~Q&kc`qM+eEZV|AOe5` zY7n)o35?Q8>#SdCmM92>_aB-oPuCEE)FWJ@F>ve1FIn z_y?Yu%~o;?#J8EB!kb{2R`Ck2^*&^vQ_N}Smi%12Qg%)ru%F*M#_M6c zt1aS5er410<9+er)mp@JZkIQ$w}W?khWR~j5f3k&g!J<(F`lY-ZA(0>G>>&UM$KL< z*wcnFHo{b-dB%7N4)$T+(bMn?EpLUdUvhb4rh=#IE-;Md_uvg@4>4Yb@z{khKwizs zs`sE+uqC3u-c`mM=S7bZk0jW!IX~K$I3KO-;0)hM;>qm)hkpl*X#|q zG@r`Uzx2P&)R$K?_1gDLed_D2_rr7(5@Tc6E+rOnm1?16CkB)0WIEAj74iBW9ZaK> z95|NjKMd81mCDu%MWw#!Iv?sbvY{$a1BnG#Oq0T_`MEGR*P-L|GYy^*62aQ9c-MF(o z5Qv@$hjEAW7*HhCD-FEFop6t%U2anZj_}^Bzuy4r1#h&C3W#erFI^-oKR^?z;}EoICiJIdUf`fp6d*G(oKc5J7K@YO#@v^6 zdf?*$qAj_gO}Z&fYboSkyN2S$-zta7Csozcr4kUr%cbKVB()#;0O|XW!&c(y-65P$ zpi-?Ar~3JlQ?(SLB02OwCT;i?VvE`9!ZZk`NfbSCXB@;*T*M=7?JJl?-`R`W_nV;B z)>Ix0N8^vQb6xy51(z{LgEWpp{ET+tDCirg!qd{=ZCUJTNkcu2c=|D+Yn|;qnuhBE gj=KP%6x&|5``Dr(gwScWgcg&K^b3mNy&wR80b0lfiU0rr literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_exit.o b/42sh/obj/builtin_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..f08787f4e736556d36d7be239e3d61bc45835cfb GIT binary patch literal 4544 zcmb7Idu$v>8K1rL-rINQM?#9za8;V%K>bMSP^%+#%ZEfNavY;8pgzE+hxMA!YIW%(J zP*HIZBWR&O0Oz-^Y=&XFUfp&kmC-Po;|t>2r^a7Z-y2}8#HP(Kiq=G9(g3J*L3~F> z?z=m17nhavT@^@#t&eReG%&U%lW=TG;4Tyf<5N^1Ue^Z$-Z<-c-Sq zA-)q{kQeWcSE$u0mf;kp7~X%y_h%K~xC*G}UE}ldsuM@$2Dip{m&&)B6`s3BJQ-iD zV7B5-w%~nfjdDODtq z>VZri)LX@NBx39L_NsaqQNfG@k1h2M@o`;HIzlAcUJ+{__0j#Xs@pyN)&Dn&QvK`wkTa}6!VU_0&95{S1H*M8jyXxeI`v?06 zbG>E-M^oSMAe8>09sS$43Ab(zOf>9@XFCBmtQp(uH^so1i`fH{4_1#B3j;$t+_G@0 zo?Wu7qOcuLsADs7=~MQL~FH=LITU zZ{2|bvr(_(#|(J-lf0>F5yymQ)u-&LD@?;KRSJ{BGs!r?s7ixrNDK5zpqs)p;jtW! zTn7fuV}eN7D=eDqeI(y-RDQkIp>0Wb>EU!X(v$AcI+0DGei%Eoy@_!8_T-0??@#UT zx&wz(cu0iP`@3igp@iCW5mFxeyKp59HK~!C;k+lAL^VY-f)25*lEv49`M^RXy0maQ znIt3%uYDPR82BmHbNjLbZin=;gHDIcG7`qJn#LdLxC!XD0j!h1pG@w7D2k{Y77t=z zt%#Jkg$(T@K9l`3O7=aW1P1LepEz1Z`!QMg;5sitLqj?uQzV(no$ z<-D(zKfSE!p~d1UY8}LYHh!8~*K59Z?>7;l);+*DBfQr1w&?RovTGf+3A9jH4wHw!hF{yfxAQ0;&^oMsGC?S#5lWEko}P%Nrt zN8r|R2wk_x90cRH#$sAzhFt4BCEetVCn?6!&k*7K2x9|DM z^v*YzW``l?K};$790ak+d;{;7+I3v|u&st0{PtRWV!*&{hcELRuXV;3#>28rUVzvD z*cdNrOa3{*+qNCVD|GOY$C8gd9ed^MH-7z(7oY3i_u{9{ef@W4ch499exb+AojKus z*1oY3+L9fc=<505AGiMPXD4=EyYhJX#>h)|daotUoH+9A$+s^6hndU7;o5BkFi;^bRqJn4L(8NMgUd(iwSc1yLI;DxFtKeBCG_iV= z7fXgFrlx{tozukSQ(i0?npjE7#1Ls>9xD@TjHa{bl<9w^O>{-dVwP&^SR_tU3zA8D z=suy%WVLK68smw;pf`f9UST>dEd|G_7)fVOh3;xs&tSQ8A;AZcrd`8Puc1-FzZK5} z-2G;y!K-qh;noL~Hela6{Gn!xd(0g${I_?LC+wo>@qo7mexu@g{blBqKL;`jKwbAx z+612x2HyttYNf>!C1S`6-gi`YI1~)X2z-C!Iq>}!&S-if5!B0s UwiJpr{HKIhYM#=+{B{)o0amcBIsgCw literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_fg.o b/42sh/obj/builtin_fg.o new file mode 100644 index 0000000000000000000000000000000000000000..9da2139c8804a78f406ed21e1b0527b34b9027e4 GIT binary patch literal 5276 zcmb7IdvFuS8Q+t9r?X^PGPWs{M+6QOT5J;njmxX1LFqvVP16`i8+wt?k}Qx|frtwUe0s5FE(=?@-K4>Q)A)yWJbO>!SrN7_Z z%E$_7=#KZk{eAoGZ@=C9_Pdpz|My@26A(i23p`L8P{&j}VyGxnQ4Qh`D33OI9cQFX z6@yc-M&&rubdoz92_Q`K&iJM~ui$EHADuuUAAQ+7NeKKA?4_s{)3l0CA!DbdqMonH z(=Yq`=}b-W)wJ0(&4FZpDQ$w(?J>>O8&}qrVgVtMa`hX|9zoW2bT)QqT7kHy`D1(u;D?!_ijny#QU+ zze2)JCyVdr`*z)aZ4Y~VHP5T^4J9ns#d`m$eDZaO59dqd^Vy_nCx+ECkc z(2fuF&*RJWZ*gC6y?-xBzUw95=r!`W{^b)^J>R7|zSGyp=j_a1b-mMd&$0XEuD^GU zd^p4|Wxan-$oQzPccgmo<@zD&-mjG#!a5zZWN**d1E#rd^%YYgPD;L*R2~K&kIX{E zpM2+ae91vGRlwWz2Gr++HzZ%L$L&cgtfZPFRN#lt-x z;2-zJ-I9>!2%VpT+6#M9U4T3S$@cB2wS`l#$|clxeQ3MSD8FWmoX;B-H$fW}VU**S zjPmdqqg*;|l>1&dD&8QAQR$sxjGR%7kxL?S-+XAErH{tJCCf0kaj^Xs2x)sFe*Q8_ zIezrqMc7ms4h~;1)YBYPj-QmI@zci04qZg{w^LsMtnAR;zH#^K-6Gy9&vH;Z%BQY))}kGG`43g`JCS$@O^ijBTdUU6$zXD`I?idV6lmK%#r`qT-;q(l0W$ zBk~DnP*{VBf=Fx=NqbvffXot(>58H!Qkg>0)j*%k6dh6Y1Q!g?g_LG7b8k}cVLCi- zi2@RVs|3#G>~yST7c*%)IS}L2Ht!F`!DKdT=F^!0ktpq*DN1+Jfy=mM4Cn7vFuXUa!R8@tt;cg%$qKr}a zeGlBT)x{_91lm+`5t9?p?K{R%gYN-@89-@y9Z#U%?_zpoQXVrj_#Zg7=PY4s51#1E z^W-aSfA%^@_dG?|K8BG(P4m&9{SqSZBHMX9G)4OZ6@OuyT8$}5e+Q3!sEyMa%MhE? zxxqt_oJF1I>kz@WfF329@9WTm?P!fbqki1i(G-jUJxi7u3Es5*`KGP1H`pvp`&@Z!#%D`u%7>16{*R{XsO3qv^j}zwHqpER!a|>}E9xMn z(!$TQ9&kq-V6#!tN+jNk$0JZQezfrkhK0GO z?;>pMttB1;H?kqSs6?q9OI$ye-{$|vhW847p4&)I;$Js53`V0( z+eS;iIniHRZPQMD<;0UupPBpiGrO0(yKwJ;(1YtzGqhiQ#_8*Co%YRtyfDp*J+%80 zco|_cQExz9jk*za3+gZ`V}ft)C#a`Te~T#)JL`ix^IsV+^BdvI7_s8Yo+ zrizg-2lACr#atj&Ok`9sw@D|MQmA6$kycEKR52Gy`u`QG0fZsL8P;Br`JNOLN;P(s zd+!j+j;IoC3h0at&M_VJ(mzRa`EvDpAyzd2|=R5%B! zQg>y-J;=(Ic$Mfb6${-Gb!Tqu`Q$`Rac8mH^nQO$u!LUJ+^cZ!!YtXM(>2Ib=8Zrb zr%hgl02&bSxqee#8S5-@9!>Z9;~B~u4gfmb`8|6aSnzwrA5qjm&>!^8R#Z*XyHvlX z?=Pvrv+8v1h#E+#KJ8XDaF_ZK?Nv3hPYrBRV|b=i^<{OkwgN_L)!=efKZ3!xYMazX zZBUIu7g&xFw}Nb~I#v5VrFNGZI;$O0do+C(@N!LmO!d8{D!=v3!X69pRqikj$Ywm? z-HOjb!tKsp54SInc(%mM2go^{Z$cvfbn^R-ci8zu$NYjCTXN@TKvS5-5e zblj_^nR3j8lgkKmC{ftzb|s2tp=8_q-(SOyPe3-ptleo|kr%{{jHLS0w-d literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_jobs.o b/42sh/obj/builtin_jobs.o new file mode 100644 index 0000000000000000000000000000000000000000..1260e07f2bf29b914f14d323653398a628896728 GIT binary patch literal 4920 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 Ir_)&XKh(C^ZU6uP literal 0 HcmV?d00001 diff --git a/42sh/obj/builtin_unsetenv.o b/42sh/obj/builtin_unsetenv.o new file mode 100644 index 0000000000000000000000000000000000000000..c95cd843017e0b98a66f7bcdc9953a9d4db6f49c GIT binary patch literal 2808 zcma)8O>7%g5T0G6fhPdJ#gmdfW(2Sh(o0ciAGeakPvX_p%RxIg49SL<$@Fe!p!Wx7wk<-Jkq>* zGjHDaX6F6u{`BYX|M&qUA7F#rhg@aYB$1KsMcyXk9q3a&wn}r5gpQa%93>-?rrG9_ z?e<;$RBrmzf4b;h<{iQ#=;3|D#p`IhJVgEGb;AkK8=t@vW!xK2uU5;ZX6f@3 z-mZM#7^{JZ-IEEtaf;rcI9XP#m$!@siw_47&HWjOUN< zInTg#&@{8C&D3yrh2H%hT;h169B-84aTP)UMbRfI&R@A?If&kTw>aKce9|)F5!rW$ zkLnU5hY&g-QSkR5pXK-I8M@>@o2p4(QNjV-k~ zb?Xw`qIqgFck_B~gOF7tx1qLcNUHHf~A?+aYdtz%0g>o{^#Z3X$@F^{#CUE7)7 z8eVgtSGJ#xp5IT7tsG7rX*Jdz`zBSXm0MrADm8QKn;*B^?N)BX(Ka?0Q9F25UAdNd z<-0MutjWpA)5ntwX02YTSjmx8CY4D(VwCZP85+r;k{UjgI`}BmYeqWXD3$G!B_tlI zx@nu%Ldt;jR2>o0vx}9vf}S2eR4)Se-tmHxWkXfBi(nM>8t4mvQ>##dIqHBkAUzaG zFkd95+!q;;;#e^`g~qrv+V6`z9eO78aQJBA`7rJf1DTtSCh(yg?o!zx_#)4RLb%6D z6v)AUz!C5>mc>2J0oo1-!($|nsM>3S^~o0s=Sdr&iKxByE@^SDO*ctPe2*F^3KJh((c6H%ZExvOlOja zu95@_N`{{^x^!-wndSFFM)ISxqo|)mrmQJmst8?SB+8pilrA^@UnG89g`!38PU2ff zKwTsPl+K(0X(=Yf!v4T2deKVvBWM05uy$K)J&Z+S@5qPuiQk7W(MN_Su$830BKxqF zXbohky5zSg=2Em??^l8-I)i8%$Q-VobTn`Wq~)Ot8=d^JQ5a z4f|0`Ot5&CJutxnSJ>b*3uM`VGRtB(a#xnIEaH5^d@a_eG1<4U>I>Vlg5lv>?<3=~ zL-gl`8#8n_O0*9>DKBtISW#*?aX+CthpS^45;)SSgSP8o&}MA< dB{b%%pcQmm*Xku}wrtuJ3!EVwE0|@(`4<`pf$;zU literal 0 HcmV?d00001 diff --git a/42sh/obj/command_getoutput.o b/42sh/obj/command_getoutput.o new file mode 100644 index 0000000000000000000000000000000000000000..41121df3932b98c65f7a5bbab3c00694be00a91c GIT binary patch literal 6472 zcma)A4RBP|6~1qi_ja@UNOto_1R`q_5l8YPKNNdWbsK4+Eu*cDg|Wr{KnJR}6vd&{Hls`{wjHsKZE?hr7M!AGT9sD%efQlLk`)VY z=G=46ch5QZ|J?W9OCP@TkzWX{LZARug7)etq98oyfMV1?;khp2Rvc6|o{pG;6jpwg z<=D47N&&O18?Rb+<0;*fo@OWTFdq9dbG#6;iAu4Cxc69AqTuAy*^~mx<9Ts7E@dSpH|2X{0!DZL8t9sKAuh4 zg^$NemW^+rw=q@SSx%!O# zbK~W@m&*k%@84r8UaN|?_AKMc{`JQbe0v(0D3BC==Bj7w{*MderY=WeY;OMF|%1dLVw_^7kU4vzg4aqYd8xpb7 zRqw}2dtNmya0eLU>=1{^ei21cdMUPcZ&$1|xY@PYC2cBQ3&4A!EBn~cyl`x& zOZvvv&s~U~#)dZ0AXf6ZsHa{Thz-eB-G(^+((hvHH!(VDT%W5EO~#K6&!Yu;dq4%h z^B9`m4`Ze8p**zYIND=BOJCiv4&zu!qy!fUi(Uo?- zkj`bJUG1Iiozba@3=(ZyS0|MAnbX@ZzEBkMiH?kYyPfaA$?A*aNTqBiS9JP|PJ2Rh zEG-~FM`|FqyeHlJn^0qAsil-gB z4<1>^&N>z?rMczs{KWG(*b;=E$z@Z~Vz!V@W$m6Q<7VunBl77~FQX!MHrKkquK}gY#=M%kRd9E9FEDN$s_lW)!i*(QEY4B7GV8(P* z#2vi7bQc{YXU9rr;wh0#=L?S2pU)-i0>Mlg^IdS6nqiUUJCxIhnSzC#?@Q+jB4MSa zzmp(C=!BJ%K*Ev;^o*w`L?Qu;k#%qv+)5YvZ5wmJ(hcAOr#j=%SBn0)(<>(` zsb(t4QDftzvnVj3m{>VoT0}d)x=ydC4jU7zBU&wvqOTobtu`-MQGI!6cIX20nz~OT z4_4^Hr=V-<@TM_yjH=fNqDHHzsJ{DVs=EfZP_4JnGHQ1Wtbm|3NY{#u2M6+08?Q&BsNFWOlIr+ByS|$T zR#9!T*d_f%6h@AP=BGj65DK3#)`01iRqF`(^7s02YJ`RK6gwS@d zFZr9zCzQ8;GGqOWm3R~LM>(L^pj|`_-3^#WpKg5b@a&6v%7@VxnhCy&4iVvZO&IxG<)fB2V1K^zJ(3q_hl3OW^x;x+! z;#Lwmy~C4$#mtZvX@&4E5YyB!h{!BY9S1cKnd_<5P{Wa{JhcXDQ-q8EU;2ijMk6-V zNtiG*0<|l$(o<`p&J(rVsMCO%e$8J6GkI3(MQsCQo;5R|88?FmG-;Y8RHX%Hp!zG2 zgUz9hV4cQ==ELA@+qj7H{wO55qSNFWLfZxxqm47Y6B^gVz=mxypMu6|HLzhPnY%p= z8#Ze0^|Xt9Ev+M~XH56COcnZ01Pnfd;)jeEtz!_a{`UatU-t^3AAs1vO{l*?iG9K( z-!PwtRla1A^Ocs5iy2b>W7{E_{ccrwyF|zO5-Rt_`_#$N@y}$#-vuoo?+XMIgMJwJ ze9-Z#hy0I+7zR>`QUyLcuN<}peX1(Q0JQaLw`urPrUibb^qS; zPrJG3J3l;WUwESN+bf;>e-QZ7QwOK~W9!n}wua4>PyY1C((sJR-teB)vrc^f(D92) zN8Vk%XzI}yJ|8(eVSL1%^3C`5Pn<9#+q~(O=O_OqxM}q_7AKpJZ_hO+qMKIVvU$bU z#?6O!KDVOv#TRzfFL>d$;qPsJeBTG}d=$LPc_7{VliB*db(rJ_K|ccR0r5D!3HleP z3M*$LHw=p8t5GmC#McH1#}r`F~|btL4%-&KtBdO3wjxJ z2=s4I5EHrv?r2u-zgBQOJiCN=AUTzIc=ib~B{WJz<}X4_XbNJoAjF-mAf`7$%y=pm zM@xt~MOkscgqVDk6|W9L+@#8i*9IZxSOxJ)AjDfj^`1$P5c8sn#q>ysIaE3FI1u9D zSB|`n2=Rtej=T^F@rF{+Mg{TiRIzvq(TW!nw;diP213l!%IXQIgm{%Ih&mx&ehT8P zLWmcQip3m6h`C8wG3gRwB3BS^B|^Nc6vX?V5XY*<$a|9zFIZ*8q< zvSNZH#FVTcCPG3?tqNkAB*fI&3XX@#pAhd|6`ofFA>J9vkvB3SUg8S+e+k5oT{0Fa+)?O|Ur1$^z=ii6H|8r4 z&B*V!_Fle~x~`BhbLu+{3MRWhp2ydsYs4=gSHd@r#Sf8uF5?0t{yO~S2afA5e-ODQ znS$dA>T3lGjNQCMj${+o^r~P*Rp5{w+^$bDUeW!Fbkiv6b=&obu}qIboNhRJbdlaT zM>lut^^V?X%!SD^ic#aUP#xV2v{N;q)#Yjwlet^45J^fcHUz0mH#ZYzQlf{|-*Rr`Rv>$H9qXA7@h;{P@V?7X&}o6DzDl z?+Pm!PiNpS{{&#K;&+Do2g6F_?YM*g!ufA0Lxlr2qf` literal 0 HcmV?d00001 diff --git a/42sh/obj/copy_cut_paste.o b/42sh/obj/copy_cut_paste.o new file mode 100644 index 0000000000000000000000000000000000000000..01eb6c101be72a8b820a05b00ed0f16507d21f7f GIT binary patch literal 5452 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 bvx6VC`Fd5U9sCF`72HZ$*yvQOK|uL04SRQ# literal 0 HcmV?d00001 diff --git a/42sh/obj/data_singleton.o b/42sh/obj/data_singleton.o new file mode 100644 index 0000000000000000000000000000000000000000..3ff780c657366585541fd1557c206608e55f8472 GIT binary patch literal 5356 zcmb7IeT-CB6~FJzd-G;?W@l$V_$bT5z$`0R_5)bTN+V@k+Aa-^m2Z=l*V(skcZbf- zjPu@X0f{zJ8@{xyhDH;N*qGSHe`o`SCN!Zoh9J?>7-LaGNQg;e(`Z|5V=?IOci(-p zyCYb<$+_p8-#ho*bHC1g@4fZu`!_5hw1_|jGC=1{R2dM;9iSoVw@E_9zt8lRypq6-tf->iu1w zVJ*aK(*q4$%&-Xk<%WkV?j*-QGrrK@)u8Qd`^y(cOKei_?=>}9!(0TEAH)N`73-mv z`lj(!a>X$h3sdi}y>5Kh8v}pS>YMtT$T>2^Tlovu@w5Hq%H@J<7jqK~@4w=kuj1RO z0{Yiy#uxZ24eyoGkx%L=={5MF?2|t<)I^zJ@)1x&q!v|rtJ@BCf$mcFBLNbJ$*fWnWatv2fKTq z4@yt}%AOU=gjaETCvy2>??}$i*lciVzizQXOcOkqVHlLiU$ER>gm3f zE=OH0dik-UJCfn>i@ZPmiP8vq@!iTqzT^qV&dZ7N9WuCa?2-f=TO!a4q3#IBfkn-y zoO|}h^Gr`(*>y*RtOHL0Fg2D?@@nJDO^R~PAD0t6s%ChUvn57H@jBSFn#Nw67NOTQaFwRlL}DGp=2>|3IRx5b z%E(%~Bon&~42Wk`#N@e8ise!hV(O(ti14+fmJ35b+kPBaW7C)6MvHs}O@~2^&GAV1 zW+aR;AZ7*CE>QCRs0-GoX)CM(g!e((Dm^Q#Dx@3K`t@wg`g-_mwVq8|2cVgVPrFOc z&b59BZ4R|HdNyPI0@{Pr2J~#7^?PV}YG2T^1J3Xp61iDGRL=_QLdG@h4ie#;<{$FjiZC0hb}chp_&k>K64R0-wUaa&lc13 zkD z)ZjPyMyNJIjU_LHY6@yP`F5x_L7kht40RUUrlDq%pF+KxYBSV7 zz$9U5sYNhr>POWk8oR-+5RYlGYv3_0{Q;RJTSORbTr)SrYCdGWBi;qpXDqWg$K2k= zot%+X(BxV#=Zp+MyND)6H`m|+Xk0C$huixhNStt^SI^G3z7%SG-0a&zZH1ogtgWlD zQqL|G#w9p3|A=ZGtn^GXooFo|0BE@$R>JrgVk^&p!7ray#$=`;<=Ch_J`T3i?6OMW za+fS+^n0Pn{j`kHKMhUpwa@F>r1dN`xq~pyv@o{ASM9j#bFhwE28S?VGR?qLAPLDr zOcPNdUm76W&mY_W%ALF37=SzkVm6`8CJ+lV4fQbhgno&!+|2L)W0QuD3<$4CvS6NM zd=Y$!81jvYbB4izVj#Ynr9jP~Ss=b=@jI5|VQGgvAG83p5Y+e7!Nj>E`HpmQ^3;i+ zUi|0VSDM;ieQ#U3V!0jP-89;<${0`o)@f`1-iMdkoy@WQZ$8oaEB|P|qpB}SZyRoH zKYg|9uU+46YXA7~ct`Zt_xiI>y!*=e(<2>on%%A)r=I@g;7hT~7tXY8xbW5UKbe0q z-TwMVZpZ8US6{!slod}eA>MY%iV2$#^SFYTng}slsfN6?2=NM4R?K4(nu?zH03q%VWyKUt zh(}-fV)`V+gsrTY9|3lm~?R#v>53GupC zzW&#dx2B~Vw5sJ2x|mVI9H8ynEVMmoEuFMt&%uh3@Jy#a3eI?#i^O0m{fvHJWB9w~ z9@y$4iCWXHry5af?1Or~=oG4ayY8)em0qRw=2s2eH52jn)|mk4wSy1s@S{kGiF`3H z-(P#i>0Le!#8Ka_xVaI2#{>YsO9Bb6!uVz>`jt{400Os=G1)a4vmAVa0LQK>c)l_Y zz8wNoeIh`Cc>!Hi0;8F)(fC?p)-)PL96baj(xjP*hKJ2)^qXcw^nw|S?gX!zdeql- zOqf_2*mW#Yd>%MjcUyrz!TSMvbPYI$9_>}UOL691;$V`uL!r(bokGL#4HcMZVxtbQk)NGH{0Eat2POaj literal 0 HcmV?d00001 diff --git a/42sh/obj/do_job_notification.o b/42sh/obj/do_job_notification.o new file mode 100644 index 0000000000000000000000000000000000000000..9dd64dd4e02d646cdb91a74c19569a75e3682ca5 GIT binary patch literal 4948 zcma)AYit}>6}~gOGduRK*BjdnPMpUk&Z7yjoo8#cAvkSPZ9)odh}#5O4eQylcf)#j z*_ln_riRcw6xRenBP1$>RHR4*R354V0z@E%q9{TL1pQHdfGp9d4U`h`BQ-6;eBYfr zX1z&Bu5|9X-?`_0bME8Zz4mY4`}==lLTC|z3KE4}G*G1>C<`DN;#-tg;z7rh@(D3G z1tq1%*|zT<_7#A#?R`7<@B1GPTb&F7g?x^vdlC!*pg?P0NP$MdU&(uguN@`XH4 zsQzg)92sbRE<`*zcc?aEgH-m|_KwH5?|o?2%U5x|qx3#bZf==F8S)j&j`V8e8{&f3 zl?R&YK+wD?Uv_Ay>K@|y&5bYQ`f0=Z{rxI^Q0}S5&Ls(o(k* zL9<~$g83qeC1qoLFR1ey#y8e_J3gm8ih25Wt@Ko(l(X$UJL*SVRD5Y=d=Y$1nMG~E zJ%wgNd~V(zu3~qC0gd;;l;Rr*y2VAsry%c`eAuQA&vUU*l8lY>O{;wPMtA_#MYrM> z@o`a>I*+XvFeR?*dEMGT*(}JJAG;A8yxW#tM3OY zW4sQKnb`SOW|G3@wal^cYohh|YwS7wp#(mQ&TB#Ev>g3&ZbRnumY+cVcrn|PgVQ@E z^~}UCLSh&u@0-{;CH;?0gKs(f5CUfbzUj$+*;UuP`smy)IjUdTGLr*V=Gc^$q4mVA zxiXU(_+8dA6B+9&#;Vu{Qk>bQhTAGDdb@~pLhkBfH$*-1+eYvs?XqU=< zVYuLA{X)6a>xk{VY0`W4Joa$Gwr}%BFE4KLX;CQo;-K&ulkj9+$cf4bt3uB9d8o5hWSbpA4A`_09a$g0 zr9(9zSA}m67qcUxSjNm{MbhCy)${F2wd}YaU5W+I#}}mHTDb60+V%=hyMk5y2Njlt zwUSpDDY>~cnM-^X_@m_{uu#ST847Fh@;Qu3+9R7HzqFPOVzS9Br(mC#@>ts_P4F zp0+aCZbXtPvnx4IYr`4Wdtq$T2AU(u`{MV{FHqScXtrVYiFzAq&WkO$zrjb3l z4D9!Utd$>*$G7pWIgX2ncM(3ppzQ_{TOxb?@;g=Tjc*-*e-7Bqg$I{d| z78n0aJ^$@|_!HfsgueX6(}W3a;PK0}!I6T{9)%#sf~t6omWyUC1kt z*C1~~-h;Ft;51|tgd2ANG6g<#2_EwK&?ww`ns_9XiD^O;vqzb@>ooBgC=)l2CZ1kp zV)oL+gvR~D!h=o|cV3xz$Y|oh<0}b;*-sO%1I5L3q^T2?@?s{_#1p2xn4L5+sT4g= zEKN)W<;4V~iE~vZCL>ME3PsN=i6$OdW#ZL96R#UJkQWC{yib&gxj++FSp~sOqsc*~ zy#C*LjNz>D%wj}XIB%4o4vo+}rYzdidxds5rKJ)v>r3!r#EaN*okTM;YP=BJlc|&X zgDpWqVQ=88i@%UTdq3HNTH`k$TEk-puM4MG^ zgA!@g472$WL;sG^e85;_`bKQnXf{7$q|Duhwbjtkj9JT#B%ra?hyZr#tJ{q(;8^cV zhGpiB`88t!V6@k0H4hkVK{JA8*8%*(>^2g;#`0&4)x*Zx-NqKcXXlPmW8$XOAqO|@ z##bYi-9~eyZ9ke@braixaIZkHUp?ocG3lPO&@pHxChebv#`JnB(3oJ)Cjx!fN1?HJ zJ=+xi05te|c->mi_XgPPQ+k!sOO%G9zsYNddNXt@15#xLbR87C8ZggheZSv;Pd4Ce z10HO^D&o^SG8p(^m=^|N@BmPU%MUoHXP_+*!Z yauxhH$sZ0ltL|v|kQ=n+<9^J>!xI152uuYJM|BjBd>>Cs83ZhzU#?Vuh4?Qv3kwkd literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_ampersand.o b/42sh/obj/exec_ampersand.o new file mode 100644 index 0000000000000000000000000000000000000000..dad02cc2e4400dd61e9a0aaa9fa2820c3abbd65f GIT binary patch literal 3116 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 IFDOF%7i_W%z5oCK literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_command.o b/42sh/obj/exec_command.o new file mode 100644 index 0000000000000000000000000000000000000000..176695299a195d3ac3e3f03f15ed945a814c19a7 GIT binary patch literal 5844 zcma)Adu&_P89#P%AGQ~ z7Sys%>8eH<6AyJv+8?WUZ9{At8)!^}4XtRQLkuPm12Ij}3L*#?5Ai4AA>_Tdk-TT6L|Ec=7UUh5uEBojBD-PWt7r45A&1yY6mA`w> z(x2>KDV47Fx30?Hn#1@&`Foo{o7FQ4>TC>-<#CHPqV7^ zO&3QoPS36scIOHi+upM2w5bpy%3nf(C*Y4=-H-jJ*1XD}Gh%1USY5wDbv!tv{Pin; zt za_p2CA9%Upz@^fH?)%N;*i<+v>v0ZOeTr<2cwZO%j%#srq z_-tT0IY|k~!1QE4XIF~J$^I2PrM&Ni^t+N_dFO=@JtGid7C){$n$JyifnT@?Wnkrf`tyNfquQax)| zyCZ^TfrZEwJdtue;n_o8*>Qxcc+PW1MY>q$HdRXjvA&(7vk!{UbG5Jcv#%;|L) zSvFU8Pj|+%^Es@6>oYa$qQDD;H;O5QJEuIFE4m_W=cHdRO@>aS?V<#*qKfAOJuT8{ zSj?=AoDZ&|oOO6|OOAu-VeWhKfly;;S-e@RiCcPGyfM^-qaE%B*c9rI*2KRayC`;U z-R9;?>JXqb5mwMMGb5yNU)WkQ$Vh9;}gP?&iAIx_lgxMUbiN|8}htN?E+s(~X z`VfGkyhgF50Zuq^tOH$r@&y;QnOIIML{&ai%qtHHA=Lh~}lJwhj%p zuye8428iNYIIMoKHf6M|6Dxr-ZStASgB#XNSPy{E)!ShZY6u-9s|nw+XGH3^A+HVJ zQThwDMjfu9ja&&HYKp=Ow4Fz(HGfK4heYA46=R+G28kEp1t(6P#14olE=Wfwm&t zQ5#ta?HEWqPxj_Th^wg1kM)6>+7f9Y{V!$hO+cluudy}#ByBH2riXMI=?&Tc z&^V-Mf>R!JG>Qo|Bd?-t2OLB(p;n|8R!69HaMS76Lo`N^y$P$>Ip%v{t+A%aC*a57 zJ~n3;$K)!A)%ZG_rq6#}&hYQJdY4sHWhXM~#0hgtImWG$j`9oRw^O!ayUV2Y9zc=hh`uUH25yZ2w^>B*ZAGAZ{8$+(-)IsUyUL$O%Vc{|PZ7aPE6}!VjzvBb?I(16b$0>?i2gBc}_d}Tw{3?XS$8;U~JYJ8SR}r=o3Z5o- zYozlP-e!9$Zn;NkJ-Ib~7tTf8o82DyG^nx!F6O*m@V-F<^5N1w!YiC#3o_PRJy4)v z3QMUn-a)<*FZjMB|0(drnVN`zw!G>46>)XPTdClci+SHL?|Q1Te)peZ6~-cL0R zAuSgDvli6{wZ`?Dv0lGiJ4g4l#e-VypcaAF1}!nDp?n^+1bB2%3-8d(L9I!@SZf8a zc)b=L)E4O1XeKoMAry>gH4qK`8vO%a6SX$8qR~gKzFliOqQo&R4k)be`lGBE)+=a{ zKt;2_8}u>AgL);b%e$hm#m*P2KZ)h z%xhOKI3~M`9|ZDs;P9jOD85|r#fpQ;@){V?ZVY+@gdklGVU{W`uF|`z^rclg>&~v< zSf$@lrEja!gEI`+Pkgr7sZ1t#F53B2rH~$(c|O`%ypQp^%v4GOPh&5IeODOHJ6^FM z{I@jzxy9?&5q!zwFCaX!?NUWP3T-^2hf?Vqhs(uEAu|Wg7Rycm&v~#14co4Rf0&&# Gdig*9eU^>@ literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_dgreat.o b/42sh/obj/exec_dgreat.o new file mode 100644 index 0000000000000000000000000000000000000000..4f5329280a2a26f5ae8422e5cdcdc29035f8c7d8 GIT binary patch literal 3860 zcma)9ZEPIH8J^v{*}L=E=d&G>G~weK2b>^$=X}-_hY-N%Vgf>d)2alm&Ub73((|5s zyG~3q}8Abx;^K%huK)2glDPb27$3Is@zaMVyD2p=JRp4r*t z?g&jr_s;tzI)%sVrC?|yUQ`?I3}ZI_&}nF-tTYszHXxBg<& z-M59!BE-3qlR{alKmu9UW}_D3RjNg0ZpHgRmsKA-2XB z;)Tn2alFFxbj7jV!W6^%!F;E5d_y{{GZ&37z^jgJR~y_K-}4%8xyHM`O$+B)%X}N+ zn=TYv@&3_*cmE~g`43EAaK4{wydE9J?=BG!hfYDZ#uwH35zhCq_VW|fQp{L_2hg6B-y<2CGV(80Ew?}NO?yGi4{uko}h zl0r;|GWoglTXq#<>wNcXyi>Z<;*LNl{YZRVmo#0H!9p|m#h{A5kNysxXEW$7P-EeI zN%~4`Y`UmCny-JF-#4FmGl3Cb`y*iT^*yKabEJ*@)%To)26`y{k~mJh`tbbR@O*vv zxYp-JkJk_U1r7PRVe}IDeMi#y`cdusiT29Rtz+k-d+Et&Ifn9CbtJ#G9Z&J`pJBYIDi-PA1-yZX8jw3wH%f2%uidENlT;KM}yU>El_PNW2 z8q!Z0p;xNzL}teI$`h_r$`G#NjQgTio|yE7TP-<&#sEt4&PhBFXi!WcsEWNy1-}q< zQPK>%D5>U@$~CkE+|%3@#Y)w4#LjB1ghs_?0#=+X)Wmp6czmEpMwfAQsz*jrX=`b! z%jm|En^_pUjhoscsh=lrNcOdF?%BvRm%`Mh%{{oi*EXqgxrn50OeT?dR;QptY#~?x zAw;~#h@_H9;t7%HfbZrWDuYPlHa^D5MGX$(YlZ2 zwr)j}(P_+*Ma+Y<<4S)Bb<{jKeS})q=|HR8j3JC}x(YeQDr)^6%&Mb`J%(yK$n1^t zMbDVsiCy6Tq-lZKD-y&!M(r}VBwm5^1+|4{Z#wZ>s4X&k7mK#oN6;SuMX!v_gB=1z zw#nzfVsVQjS!a}tfZl;1d*bhcEtYE%AAtA6EZ1>Nj+Up>>QbqG;h&ieYlk36a@+#$_@PEqQTyKT7jH6j6>AL}yWmt5=k-ukC zowz-nqv*@-JeXi?|8ZX+2^~LtZ}dS)ib|7JhEc`ulIEwUvlWb?=3B6 z9^ZZHh3XZLAA9?%KYem))rs%he*4OY*Zk*=-Rr(RJo=l%FWw;k_8zc427L)iU=c0{ zafP{%qo7I9gP=!2&w^eC9R>XhbOOWxnb;J$@cMCOuF%Bv(I%!iP0U3cVHPG9P0YT9 zGz6JN6H`!|ctmL8nb9UD9!*THMc^opfM_}f(q7znnwSMT2u_VA=9KngBGJU$(pWqh zH1UGap)y%%V*YB=A?@`MxW;-;o94mwh&*iU$kV62nEy2K$Y|65OPd%{g4>NAs_2`D z2u&qSBV*Uy!kA4P>GoLs0K6E;<)9}|6XopL@Fo+RQt5}yTROtO2`AxWiUX((KhoAGKnt>wyV2G=)Rya&9TdTl(>`26901e|*LvXe}mzy~sN zU%zlrqWD8rsNo$AoRFD32C76l4Vi3%azs!X<9?F z?=}~gh_z4lS@CY!X+4eh5o^Y@Fhkz3!0xYrBeD$+I6~>a4;)eSZ`67Y zTtfdDIQ%T?vKqWWReRH@;}ff?o!|P6?Rp%I24**YT;Nl| nFJKwniHhS_U13+J9n@;Q@#hh5z9aa)<0}-O9`?AedK2t_;?*Z- literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_great.o b/42sh/obj/exec_great.o new file mode 100644 index 0000000000000000000000000000000000000000..49a86d0f973c19ccbcc2a936d6033f048430dc7e GIT binary patch literal 3856 zcma)9ZEPDw8lGKe)^?mYPEy)HDfk+osYL9Qwh&#zwFPo=Ly-^=K(uIa?2Y5%taIK? z8=$>b>giNpq`Q_c-4Aq73Cb@J5+ETE2vI~qfZz`WA%1`WsS>Hmm$)8P={?WvZ0ndp zJMug4$Gr2*J2UUhtUvhq=r2(rjEF!5Y5`42RA~^(g`nd!{ziEq7BuW-ACyoBrXY3D zh+^BmGvfzxpx-up=WS>7P@2^O@i=T-QV5H-7O{&gEVf;A#->ZQ=hu|Uwr{v&{VjhE zn?;DTk&{AMtUv-;*Jh&@;#H~zWp2j%SmT6!N}SyMa#p%OaWkl~aK0pc zB{nvlQy$ILzs~KROTT8|!g~2hz~t&Xj^}1cYx%41_!b&yXX-g|gn0Ggx!K{l`tT90 z&yF6c?|mB$x!Ga#61m;4r*ic}+V?B%m7877&WCoL%s^%!-B+mK*61G`fRb5tRc6I<;nfORXT}LCyHs=Xex@L@qaHeD zOWUejiuvrStGo$8r=VSwU0>uqU-Xy>eu2(L(PBBfmiZkwuTDdgg3%6Qy0F42ZtzNy!!bsi72$~p{TbkSAFdswwte*?4XsG<*}ngE%-u_>^$ z*%hbfM>H)kdqsQ)q{GxMfJ^*&NIc2rLbEp&e<{=!nY}%tHTnhge}GypiOzxT14TB= z{b13U#gVL&N=85jA;|97`(QnCW&C6CewgKIj`l1Vw;-xe7baFgjLA!thr<5@d#{64VJ+oo*0=1s29;%4bi#qZbv+|u ziyX_aPbeG)q#JvYb`sUu*)OqBhhra)CaUuQ4 z_8*_AE_vkeo0mTI)sHKV{?hu_7eBw^*sI%DpExl3mjlnPk?(#8EN(1!G>%2M7?cHF z2O0%UfF1z-6SN=n0_YIvQ_xWm1H1=}A{U-d2nr!-V)|$kQ=BH|B91T%6N@Hp=|UQU zIA~%DY7>tLO*}K&M4cw);v#Sq<~~h_LE4KOPZP612f>kOVoqrj6X(>a@GcYUlc~R(*S800FT^qUnBrfk4dXtk$ySm4jE$w|Mt?S@qs{qT&6+`v^4k^kpWPJAn)22;|_& zgVKWkWBD51(ZC6*dHNoXbQm(x8rv*etr6KdB%?#J&AL%8g%%x=(wEDvYo%!o$z}hM z?bbdtj>zsIX^vRCkG>=Lz~dtn-yZh3uR4qW1KhJE9smFU literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_less.o b/42sh/obj/exec_less.o new file mode 100644 index 0000000000000000000000000000000000000000..14dd6f7397ba46fb73612a572a8b771d10941d70 GIT binary patch literal 3848 zcma)9TWnm#8J@Gdb9UEjuh-t-q~yX92Pdd_*SS%bI3#W{+L%;oA)%-xJzeh}+Y6hs zX3yEgAxRU-2xVo7i@3a?mheE{KtY1Ow3Ub&HL6h6yfhDaA}UCca6|$Tb&E*)eRJl- z>m`tk_MiVU|9tb$%s(?{|M|a5*P=ogVSx%10ZmC%84$`3K=U+yM|mdZH@w6?D1i=4 zLF%Lt#j-qm+Vf>!-!<~Yt_3}iX0$*&4jV}dVbT^6N6CU>StWa{K4H0DO_?m~p&h+T^YN-J_1nb5p;M5p@y+Y=5X|>j`@%%E)H2^;MtSbcn!Pjcd)F*_rZ3Jw_W3%)p%MJ z2_Yr}nf%82EjtRab-qV6-WA;`)!_?Ien)&+hagjKUk-6ECxyHyvtDSy!y!w&))mfRf#`A-n!w;ns>dd)oFZt75xuwkUGDUG&RM?5{pm zD&#h8a3=+QRI?~Mo+!AU@T@VfX4}HmyzJR~MX~C5w&PiD`B}7}vOMl=p@x)GM(CBQ zGm)t~Zh6A7OBupd>~T-j$`g~GaH=I6&=^2T?hT2D01b*M1XZzjso)j-E=sDii;`+~ zsa!*g&t1(OQLI#5TkNmaN@!H9?z7@#p(e&l!sVkxGP;a=l4%)Erp)EZE~6Vs5z4~Y zZESA~Cm%>`Nvv((k>1ACmLjB0JJPtZH!V`-8WB!Dm`EVm%uYdvXb+eVAw(=~gp-K` z@q~zXz;{QQ${MOD8tPpp+M*Yr9|J{JMd!d?1cjfJZ-PZ* zCPy;AQ8EHL1wp1`AAv2C8{-_WA7;6kV}1^88@2l}riczgJWv0n@&Z{b%1?@`6z@n} z153&K;#|nXAekk?Fr@!b%Taq6(r45Lpo!=)h)JqTVm)9fc~5*5I9EunrGF;S)`fZ_ z@jhsO0?B(-G=GEmL#jQA4PY^Om-0~fce6LwTVbu{Xy#@5{uq^Mm~_H%e{48UAs{55 zD!%T&3di4m=L_b9+Gy~s@3N>bO|5;eqcr2+$|nYgF3=J>qJ%*PKKH`7IwR_8#b#?e zBjX#->zFysu?CJFOQhQOz2Erk%Aq?qIxBy5{OJ>;>*oIc>#mD;zVgM{<;BcvhpxU; zUHRI%(|5i7$<_6juC@K{gOB?@|I4AxU!U0h%!zlm$dAqf>))WSKyfU>3Q!L86VPtZ zBG1`+8{bGm9ps zpf>S{(8M#NO-wwRn2SrnQJDKQodanvZahuQ0v!aChbHEf_F^K@#N5(YJQ*}GuXU(Q zR+^Z<+QcJ9(*=;m;&G#iCs2=gN}G84v={TAUOY0|^nGa)MM`kH(c?y$@g<@xDnTk4 z&ps-Q>6DRbkH%ht7lT;=IzCUN>(_OE+v_qD{maUf3d|q;O5ke^ar@2KyD+~h$}CERJqMB91UW{%3PAsHQ#?dBtLHMHocl%8B?Zj~W(NcR0fc9^fA zaa5*()wC(eA6f$ zer66jd7tL1GzU}mH#FxMovd^j0B=&o>K2{XN^|=IEjstHxm{QbpBMO8@CsN)XQElUslGz|A7~FHc>n+a literal 0 HcmV?d00001 diff --git a/42sh/obj/exec_or_if.o b/42sh/obj/exec_or_if.o new file mode 100644 index 0000000000000000000000000000000000000000..4638ea5eb3c0fa0fc74b5bcde0e19b0a53a20d8d GIT binary patch literal 6652 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_findexec.o b/42sh/obj/ft_findexec.o new file mode 100644 index 0000000000000000000000000000000000000000..0e9cb0408b3d4c311c1620db4a6d6aa17b5d151d GIT binary patch literal 4740 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 F_J8<*6es`y literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_putast.o b/42sh/obj/ft_putast.o new file mode 100644 index 0000000000000000000000000000000000000000..68bc619fd146569bb4c6b0f2091a63c26756021a GIT binary patch literal 3896 zcmbtWZERCj7(VxQx9!@k>lkc^AXmP@*^Li%fiX5=T3`qn9}-1xy0+VjTU*+012PN* zR3;kX2gVFJ5~h8NcFda(oR>Mu2B)9|Jhube_B^aA|#W z<$ahX`8M0f!e%?rf zJUr5V^~VU6L+zvC{Y|Y-bgPQ4RMCA+EXPS$t`cSxBw&3`g6${2HkPm#Q#%PB#c-Yl zu>eeg{dE#9(NBgCRl@!z-HCpsqOXlbH7EL>itZnadY$O&D#~4!YcF%6&#CBxV^PzI z^5@L1YW`R>=tQ@vD7O?}xl`Jh zZ_ev>elz>^o5Jm#qK$8x+0n6OojDlKWD}{R*%WFFHJbCHeRz=XZfb-PTCym#aK6Z9 zq7D6#M6#hfXQc;nk!&s$6%CuS7}wAu?JkkbiC82T$q%u$0S>XXOgxszAd<(d#H8S$XkRKD7elE`3<)+2 zsx{t4Jp|_jt<~oWEcGw*&#hQpvjX?ZWe8omR@dMc zY)O%6R0(?BvxFpM_-ibM|y2{^$;v!q|mt^ zXQz3LVW9UJboA;q<+}ir^~FA(`;&Ctqt6t+SD<}B>t21PS9srndXQ$F`vrjE^_~G7 zqi2$zqk?+9?`_~;bcM+9GqfFCV*{<b3q00IxpXPPC`FlOz}6wJB$CQiB29v5jqE z3=~Q#Y_GE2w)NeY3%vEv>`x2~$(+Kmbd`?1j`m-2IG!?*WN0pkCfq;+Pp@B)kBu?b zOPwbH&$6wvTK?nmLHK^0*u3M!qt&BRj(&Y=`tb`_7EW25oc882<80&JgZ?XTq^1Qc z2H(1T&G+OZuRd`iY91Ya7h}#szJ>e>DZ?ankOh$CkPVP1WDqg};gJCdo}pR@+DQmq zJP&mcG;Ri6+#l)UA)|}u4p)ec$B8ZyNG_fTx_F4Bi(5?>w{aE_jayC^4}{F(nWT%y zRA!x$E}k?wBabVyc&_C@UJAOnFgfs__RoX8QTu@rLde@lilU}ARNLJtw4FgMSmE&= zMi%Fo3ORh0G}o`I+br4w!Kd|=mHFc*L;$(EXho)`{TZl4uW=5DrXFUzf6=~y82`38 zZ!n%{q@*JmJkz1x{PR-I17kN=m1dOt4jLZ!8pG{gYg7|+hRc1%@EGf;%~jzEbagR literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_putast2.o b/42sh/obj/ft_putast2.o new file mode 100644 index 0000000000000000000000000000000000000000..93e88ec6884b8419158e0a4b4bf50b4e0ca2f55d GIT binary patch literal 4376 zcmb7IeP~ zB{^}%GP1ZX3vOVAg|SjdVJu^?1;$obH@2p%|CB<@U@dI0Erq7EkU&aXnr*Dv@Auw) z^3$ukWEY=%?)lwwe)qil^`89Zzpj237D5XMRFEL#qC}N~pnM6ErTqn^9C11>DIeDc zr=TQMoN3mJ^L1rFndZTvv4hLD+ZxcF7WtUVXk3Up2nEGSDz}(szE-c6tSJTf`COh} z)qj`aMmkyz(*RAgP@I^XGC^u%rn&o(!Tk?5`sY=^KNT|O;{)78>GI8#^DFW_$qDzA zZ>V|nKr8a)CMK%Iqny9y{9L{tD1uw%D_N6ehWPm;Cm*H8O@VS*<=2e`Rb4CQSIt>d z#oFij=6!o;Eb8!j>J|BBb9p;Oe||2XN>ALJFITC|6iq8P%k)0?yvJ33eJY{xo95^6 zl_!qa3+&JDMa8#K@twUzK0CikF7N02i;wT6TjZ-BudMjI|51F;s|ozuE%MKb5kNuQ+W^ zRzyoEzh)RK9-ZrVPSJ$*U5a3zsFed2m{33B?xHRx;Eg`KaQg^Jc-;OBQ@Qc-i!bu*fbCCBZZDJf zw_Djo%B6~75Argn!9#Y+C0i2Ng-biL3)e;bsYhHUhAz!Jkv7djPb&Ttr(9Wy_~Mae zE7eGu%i|d(NuM+Q{Y|Ld?~IVJb7Om9z7+{5|74T@2R~mPNpFnwDL~IixT4+Mw1&^y z%|0W`K1Rdm#bzJw8}*FA_@c_^Y_kt6ESg(29w)mr?>vuxt`*AxM0hf85ZF}Ng;x`g z|M9@k$R07eXLLwBuy15!@ZsIPDKT(QujqrM?#<7XYsJDAF#w=f3{XMuJD45XF9vzr zruObVJd!$Etkz0pE7g#JR=H3tS+){&6Cngdt0DJz7DSC74iqh^ZHl$aKr9iu zJ(ko~Ve9A_fUC4!ErD2X^#17P)}5`m%%sp2u%{jG)E!Nx#AlBP#Ra>rinh6w)@%|)7PTAqQDM))PDb3{6#KZ8o>TO+@MzCtKNhHGfe@|n75eF7^- zs~eUG^B|HzUv0bsmC!duUW5KJJvP(-P1m|t-w=$v1#27owlJHP*I~+FxDUu*(bPMm z??4&)I@{46W<5!+0<|gc=AfZT__y%#2x%cY;m{r!%(CH1D?t>;=9MqRhx-=WwnE#} z3!Nc|;*F*4kG+BN|M)PTvYKQle35E+?F8^j3F4JQJ{I;dKeo9Uf~w7IBM{!%d_kQ* z^yK-+lJDPk_U%{K{p8(`x7~K1b?1fqtw(=-^|O}mJo>^n&*xKT zzx^A;aAN-s`4AGsAZs9;K;FfpkUZolp&J z)*ondHlPp>!B-c9aMZMa$J$V990Q`c*D@}^{LEZ|pOMQKFfM5LRB}~Z(wS-J&WNZB z1RE@_$w(3*v>u~ zJtY&N3r=Srh{xqB_^lt78z*JgunZ4NBQ!1Bff>V6Vj$yDnLH;q0|@q^Z#;C$hGk$} z8jpD$W!pKq7H(}$+)d1+vEY#Mao%H&0b{k)jD9_Y$rGC}2lz|h?&yv>n!ojI#Or3x4U6viU*7_#tI?L*qE7*D1V1;Spu?Ommz!py~Hx zXK~Z~orv$r^a*J4VR3E0!;VhxRd$!MH!1sT(4YD$ICHet(Gn0-`Bw Ap8x;= literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_split_whitespaces.o b/42sh/obj/ft_split_whitespaces.o new file mode 100644 index 0000000000000000000000000000000000000000..f8ea70a798ab89f4600d3986153f747d7a69993f GIT binary patch literal 4200 zcmb_f|8G;*6~FJ<=Y`mbUjiBJO51r-2+)-zbTFWp5;WXB3Xu?P7@bOA9mh`0jN`?2 z!>UE1I8<@nZedfkN&8`~D)oy-|AG9#$fyWNm6-NJw;v)cNS#QeOtLgf^XRnfbMCt@ zU!JoqlXj%*bI+Iix#yhw?fLG5zx=a72+b$(gXTxe5`MyHps%9USov>gw$U+6@)(dS z15={xcZ(X%hC$ZqdD90-Wc9^?(>EXCkd-19&E_ckh%G;H}*TswV_m3oAW&E}A zxp<=rV54}cOmdiqc=5ik*60u~BIrvM-&?4kN`2kgagz5<_-!1gq-|udK8&^qe?DqY z!WaSPWjKY##6H{@k8^hSI=UOCKCAR+tGL*0mBuR8OmvP1TE(%7Ft2dLRyjInm7=wU zg8;Y6W0iS!DBjSlc+Hx=?~@`N=4PUcY?+D9G6TY#7vXQvFGyoNx@eVqE0-dgFvo90 zRUBJ{_Y*u&+05&0TJb^H9REt4veCTqa-9;MKd4hSn&U4)S&l9i=MnI2tK3&HulobV z8r&aQ-vacV3{;L*ta$IDrQNnlGftNA-dR)t<&Y4^FCld|5WvD!?u${sV(igb)es~A{wO7byO#j)y2NuLqGomzIoL(yRR;~E&5Z3%H z|5m5sZ}B;FCw{XHK(c!C6Kz_#P%YkCDix{=zsEezPA*4*`)T;x&7=HygioG4(;I#@ zF_KFSXTk?MyF0tXJL74*c)JgDL+IT5ROg;uA~zE6O5@ttoft^vQ<=f8WZuqY)2X~Y zI+V&Ma=7&pxz4!g>dOJDYjAY<{6MU0?^C%U5g&?;i1plAnNDQv(czJSob2~{ zdsL({d65$-!Cx-t1)PM|s%;N#Az!G)*cNKlHsfgPrZ~O@w@AD2g`Nopam)BS;kH@p z3HU-!2M+~zG#%e^1a~5l(3Oe@7<<=<4fTWYInW`o#eSX#<%I@4A)3UK%s{KZ%iIqs zowtX606)G#{1_VFf|7>iXk2$^(vY=%S|>BouV#NGmiF&*q*vZ&=>WUJ z_R@ze9b}tm$nr1fStmH)z79!i*Vqi$ixRe7!RFs%V~2vx@>$h(I6$WqfSZDL=ErO` zHBMz2$Xo-|s(^-Me4E)*_eAQzmB(Y8t&RfWRj$q-l zia)5|+4iUL*ZPk^=IRch$!dWgL1TIyjmP|)1&|CDe2xW>J16@vdFR9_So&XlI5uu= z3$XoLBk&t)D3W2ErJylLKI1vsZ(OA(z@I)#yCSqBLaomc%zooUff@>H zTy?lM!lqxQfblMw7_~V`4^7eI5&C+PI;N;ALVJ^Ra0Y1HRX&!8k}H%9+nJ;Yx$Sp5Xk3L2uks{9VO=p}3`ZkK!GQKkm_ol?*2FPAI+| wJcJ3{Gli~{-7|zwTVb+N5nq0*M0{lPQ@8w(Ny+<8N}rXN&%O{#%fHnB0{*V|F8}}l literal 0 HcmV?d00001 diff --git a/42sh/obj/ft_tokenize.o b/42sh/obj/ft_tokenize.o new file mode 100644 index 0000000000000000000000000000000000000000..6c708728e7d1162bea836addfda5d49f77cf74da GIT binary patch literal 4916 zcmc&%YiwLc6`s4hvv1$KwiC-Gk8bL`fM(ZCO|c*ZZ{khXuAQcSB>B;DS?^x2H(Bqx zdw1<5YN!>r#l}rZRf_miDH2HV1JQumh!7DaO{G>)+KBK7LVyuLq&!3@5(FAzzB6~O zy}k)F{9?4{oH=LCeD}=b%*?+1&p+MtF{Zc~7{~)U$HAf?l)FGF(*Hx*6|@@Wq>rrw zlMzK^KV7dF2P;y6(Di}jzJW#EuKie62#;cE1pvhcWs-zlbUmA{q-~AxIuiqlMSV_I z$D};xweV8FQy1M9YQQswsyW@Pl!Xm=dlP*-7TR~y>%2pcO(&DOBZM;G$Bg{^` zt4q8Yd&6JbThy0$*m&uop|UY9#=9gw8}H{5=1%eQ#o-clamIH+Ogdw68O4_a7Vx(* ze{$%zjjx<8<_z;zymuXY=!YR0=%TnS-e@`_LUhJwcQCVvVwlgd%i^4J9n)t@j87JPX1Mk2c;#Cff-FCb$ zNxU<10zZF;ct~Oa>5Ol`+`smCyKhZ0$9OZPQH-;qSBn$*Vpi9CIv1ygvEvf2LmJ0` zM_ck5_MZfD;29(Oa2cy>b#R_97bV_^#5*bRq{^_|c9SsK`Bumm1)_7j?J^&lj z5~m*DBhn zbB|sa9*${uKPkROc&VvBwx(u|TuaSVug(l!NzGQTPHtt|Q?!L%PtqvZJ2ZyWZ1P%a zsvRxspq*q_spT|{dgiUvO!6|?FQ;Z+7iNF}&zm|X@^H5I%FOptv!08oS$qcg^A~55 zH)fMJQd6(BK6-(0{!b-Ar%1G?XHRc*+$fv*QZd>dYmK!=H)aYr`Zl$F=rF6h3<_{aO42ut%=o-&Wl=f%S@wUz82+Qfhk>!gOR?!Q2v%*YE zWJ<+~0jrd{2@FO|uiy~Nrpw44VT4{N6?4&Q(ah(HMm9=VMY?n|Bk8i}LYd19`jlBo zR}9vf+>sdU8G!8R>Sg`O-E8keeVuIAVDGkMAKTfNOboD|WPiU^P3-Cv8p($T9~wxq zPD^Y{Y=5x7C()l`dlG%De|K_wSE7eu%y|>HY9T*Lb$k3Q!_oyB9xhrd3XIndNH}2v zENMz9!iJHe7ef?`h9}+tVn&pDWu4l{-D={Pjfz_hg)AjhC%{Q* z2XvUyzm7VFLR;ahdTM;Njj*poennykvq9+yT96yU6dhyroVlcl;%R7GqOuR;tgy}! zzc_5d>|VL~Yfnu3;pEzjMru$zTEIOgJ>8U#o-1G~p5z_9<*ntg`0;YF)qJJ=Q67nnLs)=@J^vCA4g>(B1-Xa6Py0Q>1PD88{12 z@cpRqo&1*&fp@^Nr0)n8Ae#BsPz7=&mYjFcG(QWCV0nV3`FUs*FW*Mf9M}N2Loo3M z|0D@Nj@|x53RQ7s(6xabCJNaU=4JCJWI#`LC3fP-f#3b+*SQ@ho}o=cFY+viCWib4 z5F~9X(qkYhG!>+e6GO4TDb?G4^MCQF118Zj0!N{7Q0#8T@lPNm#!x#BYWINX_Mqn} zrh(B7O+HlU(ml=N-+yIp{hzPD(e|0jGx=4Gn|`$UQfAo-*EhG>gLDEEPO(t4?Bs~?8Y>J0mg9m#YPCn zYC;{eDlc#-*vK`PB_0bNbfGtd)romLEPxJHaj#K$FnETCz1_TV3vc>5Z|>&NExhG8 zUx&(fxN9G0-Z!~F=)aHq;N;!H-QFDcpRu%V9`cUxfcGbSx%WZTySe8m4|D_X1YhYr z&hP2w!EWw~amD)yR{(Rs*thUye1FwfAQ9^(+Sz!zZW@8a9jJa9G6J~|5}~WKo=8YF z1&M@KJ0R(PY==aGs;!VnPIV(Bl2(mE;=odyA@MX;fkpqa>f7YSf2RzK8ybWH9zrvw29orOp zxoAu<>+OoC-f+5Fz^hce-t>GikGj~qdai7w7nFiwnoPG}ywams9UU^tw*NRDtg^v0 z#>BT4-jWMnqlcyKG-hP->4L2er85W2LK^RCigMxQY4?1rTEgR3YD<)fQaNikh?vvG L1)ahsm9c*Vjs(~* literal 0 HcmV?d00001 diff --git a/42sh/obj/get_lexer_state.o b/42sh/obj/get_lexer_state.o new file mode 100644 index 0000000000000000000000000000000000000000..2a093a6d1ddf804c8e9bbdefd8696a47fd652cc6 GIT binary patch literal 3088 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 IV;b210mMA63;+NC literal 0 HcmV?d00001 diff --git a/42sh/obj/get_touch_toolz.o b/42sh/obj/get_touch_toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..06853058de176950fcd356e20884ac5e3d6441f4 GIT binary patch literal 4652 zcmcgwZ;Tto6`!>|>%H@x?c_p8xF|77dI<>IM;d|&PA*ph-MEP;kQ})tXz|&5wvo@a z>~(TE-ANpmptu$kil9hPC8F?&R!B(sRPj%V1OlX>Akj+w(32{}MQQ;-svdtz_`TWL z#NNA*@P(0P-n=(&e)Im!%#MBL>;HV`XH4-jG^jq*H#wRJD#}V!o%qX?yF2ZHS*hdj zz+_aza-LyW=C~yp5X0DW=e|9cc&GPEkKH3YvZWsY0TTJx!$h277@3+?EtGOn;Kp-s z$S*4EHJduET*hHxPu3i%=L~=fnPKd>fAHSBE{><N?u z&V&(eydl>f+ANZ4W6O3?ys>mfn0PrnX&$>WUb<2#nno!-M&>QB?|x~Yvqf*cqJ1`A zdE_CHV7GnmNxXH^xtFgJPuN#UXWV$7x$w?hC7yM-vZ%j3s%@Ae1Nh}t;^7brNVk2< z=&++W{+{o$`Igp|-%NQ7ep*Jobf{3u8pf_2ExIfr@g9`I72S-{mV5{MPi{>Yo|!jB ztH`cB!F?Y*EAgI?c;gaJvUJDfoj%cv=eJN2h;Dy3$V0GRTA>B)*|V@uhP2H-iVKEt znb{X64X!|)gODW0mN51r4Ws@VwY8AHRHX~8Ls#tY)f*q{Gyjh0jj8!Y{k-1TJEu2x z&+5(H^ZLwfEOcZWAoS*)kZAhMTNm_(25w$&CiG@~c8>7%$F}|-F4=w3d|RxlH>c)> zYqXAW6OruPfIa}ZGjfU17A&y<%|2g6RQ94)WUO+?sG!daDBGlY% zyDnTCT;Q6vz%>NzCv$BSCFb_8G4-w9sDCcZOOZsZKh_`FkSXHQk0$!T z#5Qe=-FyS9RWtD-PEOR!7A$@_sV`B?L-LdjP6H|>t zC3=EX$~9IiOaP7!dAf?*$B=xnT*^i2rCK3ZGP4mvR+cC~3-)ktFs$|lmnchd4m>dk zmnz#ky}>Pk+XL&n25{ARIrB)tPV7!!h!NrIm^ZjB5Wt~UmqTLDz(MX&yum<#rsHec z4W*qu#3bk@I6-SrwIi9r>~HG@6yn3D|I*m_?nKA*viP6r8%M9+EUJhp=p(39 zL_9!05*%Y9kLbrF@2p9fRNQOQdOt>oJ||R{5f}>jLAHAt$7?&l2#*Sl(VDc?e5iD> z__A-X{)dkRp8Dd0-k1J(;r2}A>B*C`eV@HHdCNDG82=sW3#cbiDVzU5{S=i_LRb`M z91tp$K@w5&*O9=EJBcU}^gTd1fl4CEu@un`AQ5c`IgzqNB1)drqKuJdZwK@uU)g%n4z`$H5qf`@deWW+dTWtg4|@ihitammFCKTm9Km(&i|;)Z;HF8lxh8W(#NS2ukrVtLwMwl@0Mi}F$ivd_LQIbH0Akf5QqTh-5{d1I16o=oZ>BpmRtS z$=?JexdDoMGx{q~Tsl$uWetdH20*c=qyGfOJoRsqHYJ^r^j1mZlJ-fuTGH*3MkECh zcz==<*epa1Rg|Yu1urXv0z$1>@P&10ZymMrnl1%cpol&x2UDs|1G=#G}_ c_>o1gAo~qPnzoD{MVDl453LrP@FHX11L^_p9{>OV literal 0 HcmV?d00001 diff --git a/42sh/obj/get_touch_toolz_2.o b/42sh/obj/get_touch_toolz_2.o new file mode 100644 index 0000000000000000000000000000000000000000..4b5da18492db39640cd3d12fd9e77aa9ea1fa3c5 GIT binary patch literal 5264 zcmb7IeQaA-6~E8+eRkr+&PPAVC|;C~R@8CUl`d@VXw+nSHO(07SJJL}bLoz1PVt*8ANCkmNU_gWhgsm+6&VBbK z@rzf&Rqs9boO{mi{?5JkUElNqq(1wz;NboK06(5>FDhzJVd5tnD{8EYnkiybFn6er}>ef#Q(+{EY_2Jkn$e zv$gWgMKcK_zZCBQb+I>Ntu^I3w2Ju-L}P-You7p#=`8~is$Ft~qGG4|?RGJ!1~DcHcaXu;6$n<&Y58c}}M?0@0rDl*Id)Wbr2OsN4iU z>yt4pW=rcL?n1Bmp;OozR97Qov{dgvUV^00>_ODUh4Q7k^om&QRk^=cEB!$meXs6E zMC!-Xl-|}(7jKqEZkDc2QH(HZrLLLMo7(8>b%(C>qqO=zb&>{|j1Op~k=au5eXX>2 z>WPu}n-1R3{A15!TpJykW&V?2rtU=7ls4K9t;y0RJlg2xIj!W;CPrqpiQ<%)Q9He@ z9r>7j3YtJ{_w4bof>^ABi6mkb#7+ zF^v_M$((5P^#HcSz8`JaKdn@pG56zU)4?6U`wX@h`!R)83{V%mEEY4`y>9<_wXk;0 zmN*+2FP zK)o73BkZqw&?|MlBa~9twdo%~e_{md)`@jH3q_<(XJq^tOT$*tLI@&qq4v|*>21Rh z0t!4p%nd(>R&txH=99;%xb@0di#SbW0lRSt>}&XT+~OQqhoSAzl~|l*;w){j4*Eq4 z?Ao=jJ8;;@z2)}cWz|)Tr5O)So4eo#R7?BcEHdL%#8j(_OO8mU2cG- zG6k0DWAto_C8If(GYV`ln`imdFg)-x8;|C2zw1&@XETXFF_TXvGDbW=!G(cArqnCz zeU04dt5chN^-2TInxhrQ24#D-(|3>eUhk)Cb~b(BNL+kAGFX4&kBv=pe0`rS{22)uE}VNgtBjl zM%x9-F%j1;;|4`sJH-)-n4z6!;Etys`6)%+<0CYcu6OQoJD{jvA%o(k0nb`AUxV&k z=V?Lr9J-E&)e8`Ad_>yr4h>fEb3{K$bU9KXo5IXD3iWYg&;91XO^?6#>)HGE@80@R zCv5cEr?nC*0QoQ~6_E?%*M(;K5Js!itvSg?#Xcv^_5b*AU{GB_U?`Laad*P%!VfUv zQK2!~ZW{mLjXVDK^0Ci;*mnGs_p5)u))WgocZ_l&?oXkFQm53_xIJg!MMQ5yJ@qfKhI7_u!a96)2Q0bUx(O289j^t1=f1J*Qvcj%v^3Mb13qyt>*G;%n3bZ|di25BI1^ z?p7la(Q&B}ew#YUZ-;b6xKq8v{k_}=tvbw|ksf%)Q#{4wHJU9z8YGX zH%biy4s;Rk#bmddrWS5Bi1&o~sx#Db^)2q~y~tg?h$H-BW&A~f?h|lL2y#sz88DeC z>RHbIK`GzKo4{gSKX2~gp?rYVYMN~Bm{xJ8@dVGOk z)r;KIEAShEzZS!5uts6N0^~`FliYEhmN9??TKf5h2=_+jN!P(E!dD93E}#IAa%lj^)sSFC z`%#guHMx^E^<^tN2a;DN9V!kk`#ug*6=T8gK;ks5dhhn|AIv{F31Cr7tp^cJMJVMvP8At~+vB*i@-^_^1R2uX2&#YaJLzom}@@|Td52i<)X|2!nc)8A<1 zzYY?Yeem0mfKbm#X-IiU%DbfuNqL8q6i;#6r3^?3A?)JE5#!&5?uX-c8bEmxm2~S4 zL|5oEMr8*o*{q_YvsgziW%_2DZr$}({BGNLvrRv0(=#^xIh)RO`D!CcH&~yMNZ<`N zlqw|kSTUEk9OwlXiw>GPIcD(Zz4$LMiiBs*$Sml12Z|?NIjX?I^Dk{=%&vI&(bJIp e79NWFP%c$4gfY{nr=$6TF8;PAulc7XWB&!jY?QVD literal 0 HcmV?d00001 diff --git a/42sh/obj/is_builtin.o b/42sh/obj/is_builtin.o new file mode 100644 index 0000000000000000000000000000000000000000..2161a2b4d827160565f747cd687c961b6e928558 GIT binary patch literal 4492 zcma)9e{5S<6~6D;&p%?vb`sWgTGDxP)^?EEZdXAlZD~e>UZ+&rMz>Z>=wUzqdd0Dg z{hVgikRoM+hQPESkR~*Z3TZG95`wL4+Juy<6N65OASBTEV-iCXn-ow%AR<7N?|bjQ z#D48)uXOG?-?`@=pL_2)_g(+$Uw{5@SO_H`(1C)WR0v%fgmxR~Y0VL@+YLuub)Iw3 zJPeV*1pHE$m6(lmh)RmZM3R11xwpoHDC#JUWniS7_DlCril@Q;sr|aQ{Q7RX^RRcjfTKGFT z_24HrEn3`cv|A-V&&}#@eIa`O>P^$J^85QzpS2J#Mf#lq^;vlS3dLf(Jjea)kI(b> z8|mg|{aKAllT-ZuKFtI}drPkO%QA2Nj{TGAb=~;dg+{g9xz^vLFDGj;*MCocU4OF$ z(+SZZpXX18CvNPo&}!AoMx!vx@UB_!M`e7cWI)yp<8%Eri>I9f_Q$s({f$e17jM#^ z6JM)f`u$z-`FrOk{n?MUuDjkhrN3w721esOC*g{|^KjRTOTlsJkFP81!CUWhgE#VL zHfOO;+vqmVSdEfl%pC2V;ni1KD%aqTDLI;Q?>&gV_{ue-(#Gk!6a4qfs*LZ5J1nk9 ze-a98XU&tzy?U!#4acK@y+YROu-w0V!ks<-KJjs1FeF55z%gX-+d&gha_iT@&x7+= z?+5iZ+LGLvy(2f4AJUiJ(HGa#`qCG!ygt2t6;1!DbN0)}*B37;OUKuB^Vj;tw}ZN} zrY}y4ph) zZ+U{`-}d3}`S6c@_$NO6st>RF@FgGi!ztb}>6w{_kEiF#?T*!Kq$jiaY(Bl)tmA6j zGnog-?%$W)d$;Jc&0Mi-)orVhvpR+pv!=*B)WO_b^-S}0sgT>huTv9MZ&=v)Ml~y< z<1*eC!mJhAq9Uw@EjrfOG7D5}ImC?eeA%ps7Nl0YX_h-3O!uV1oM;v78ur|=u}Y$4 zl?s5g~h3k#STL~m_;1J%8>!r>#jI| zUWkMyRH>q$B_J%C5lyV^40$-r&pqdfkvyi?*bV$uaMC1vG(Js1>5?KKo zcp6~jwg7F2g2zE*~FA(M7C1})9kyKaew{TfI=t@NXgiiY# zy03!*=@hlf5SKf|6LdNe8H6~@U?O}R4KGl-6OuN8?pdI~Sm=4MeDLlt%kMd;gCF98 zE&wfnf)iL!_!USDD!50@q{6F^zE8`nn%N%yBM^T*m{T*OVO~ED%Bz`l_%9yXt7gW- z{{VV}^Y*Ek-6FC8s9gYl4MKQ_whHkw#E`Dh!9D2Di30Vi70#Tm@v2nMFze9lL`K6A{@7KAZtWa8xk^rK%`ZEE%cd>CtL+YvS`##oR+Jv$2?H#rl#e zW&l-84C#wiLlv`P9E8SHpo-ZcRZM59nBQ_DE08KyfVBF5XB@_^bFX3D+hlptQD5_p zRXO{hQ07xgDjtqJ1uOp2C@8%_XIHO!uHJwL0*C=v^d}P+GV#UtZ=zQzzgU=b#&arTZ z_?>YjcOGQq?!u~&@Z&xFcQ2^Q$tTaqA82`%5e4aJu!9?KJiu9bHH^zCJ%J%958+| zvEcI1Ja`zGw=wjg8aT=(@mYyk^4RYLGn3;wI6_Yxk$4gurIpA_yc;|UoR)YyIJO{> zk{G^Gy25!;(%%n(5q9Xik{<+zeQ2k|J0u5l?0zQs=fRUOT;l**8I*)0ubqR?1D#vG z7ju7lamI(ap5AeUkThnpHd=BsgY(0M*?BIg}x kRQPUco3pJRGrmBLtyC4p)+=jsHXfjxGG3yavRM-U13O=AXaE2J literal 0 HcmV?d00001 diff --git a/42sh/obj/job_addprocess.o b/42sh/obj/job_addprocess.o new file mode 100644 index 0000000000000000000000000000000000000000..23736aefd9a41c373f352a054438f6409bbfb36f GIT binary patch literal 5048 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/job_cmp_id.o b/42sh/obj/job_cmp_id.o new file mode 100644 index 0000000000000000000000000000000000000000..0dd4403abe98f8d4f76581401ec3e06fafd03c00 GIT binary patch literal 3760 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 IuQ1N}FN~005C8xG literal 0 HcmV?d00001 diff --git a/42sh/obj/job_free.o b/42sh/obj/job_free.o new file mode 100644 index 0000000000000000000000000000000000000000..36954c14496a07d96548a6514b4bd57d14533d30 GIT binary patch literal 3924 zcma)8TZ|M%6s_)=>FJ&KJ|K$-3@-SHu(JZ{Mtp!SIv^OMtQezdXM1{g8)s+6=^jMI zNP!(<5XM-Eh5l?qM&*VT^@us4|JTy^Rzh~!N4BQK?`+Y3R0FvG|Tdx?S3E! z`sQ`_Za$-j(vT8}$7SEj2*KE(>?8}DWtE+g=9uOA4QaBhp)G6gx-}dYEgWtN?K>4; zpvhjJCL_K8uTrz6xgGC2g%i#xb8|D>Iq^y(BMoO8_dhef5bq0xFPr}yI$d~P+$G=Nbxa=WEv{uutD=Rv&SzWy{()6grac zS9p148~`5c_9x_@I`cL>XWSZX;BE0pi1AP+Z`H3`m5A;8 z6{;TQs9^S}{Z5@HK7N-Rfs?_9X7IhBBdVSTaIw(`afmxX(;Jr{$$M-1z%1n9;^fc8 zUBBmxyXAowC!aW8oNOK`?rxG#fln28eVQvy9xG0MIz_K3dDl z$#2|v&!+q~r{TG^YJRYPpno8Lxm`iIFCQF$(!Xj&|5aBAuVELq)<%}wwW{B!RVd?F z9H-wFg<%h~3uBMeww6nURV%!45snJFJ5@jAmghd^2zHjwqbN0yBhm=HQmc;Tn^n&p zt2*Vpi&=mXzQx{?y;~ME*T*2#-STvdP{sJl6&NV_e#0GU`Y00L8m*MZ0(iLwF-F~n z=Ueqg&2~JxR9w%;Dw0+C0{IiQGABEY3Ag46+j1p}Zq2hm{V;ZEYZ8&nb;;Gq%ThO` zkS{TzE5rJ3T-&Q=s4+gJ#$2(!JD7v_b%}^%ZcHYTgJu?XAv(IXNG6#iq!5WThSzsf z8AK8%TVu$qRBJ58v2+U-V;M~&R(3HUuLVwy%OsOGGSwHO4uU#1Wg(@+GUg!KZ2^;g zcr&yrJ~U|e+y@6Ot7#E^?{;3qT9$tbpw%CeS`&R#-#h*qwa$I$MaulGe0KR}v?4MZ2~ zeP-fcXjf9ZMDNQb7C`c-_33@RB7P8qv8WM&+PiV>P-2$eh>F3D#?NCAe*F+U#Lq+%`9D&S5CM@Tt;$E_}>< zWe|P=b)+=ROx+NwX{csuU8rWD=2DwNH4C*jH4ODAs3Qk8pV|ho7srF3^uEE=GojiA zb&W{#E3cw=T+5sS&vwGMN2C*A_t9=@aSPnkauZ~6Ipax=bf7EVy|xG@FF|tTwrqjT zkaB60c!jwm69T+nT4&CsseSHgwCVU4^5Or}E>I60(Re9q!T^uqk5RH^V^qYZKd*eg z54h_^C+J(dXTJZOyTJJJX8*n4hI1>UKujl`mcyY)3KVACQmV-|n%cZs*WZL}&((xhq5M2)95#IqSfqW2; z;$_e~phKW)DTI5m+KNfXmYd9h|_V(lp}RtZfkKxJa)(8QEfCZ-on zOgV+cD}W}Ji}GSJ(!?YUv6R=&GhVD#da;O=7i*Lz?p4A6UslDDG0YCk2-;A<2r;9D zX{J4Pm(aH7v|K7~?on%84A1;=!kj*><_obllY3gfB^?w+aJ0Jk9-f+ZGLuHHaSf2x z_Ed{P(`yvms$FT8or1e^@S2$x?@_N{1%D@%lXsSbXuaro@3BVU-#^YfUOnGXP%?b@ z)n5b{qSHL_U|8~z4jkozflI~n13|sDP~eO!0^mW5WVM)?Ft^4GV?!)$+#c%!*EhuC z#yc?`qGs&U4SWK4Uk3tT&T9hmm$PsY*A3SOcB7#9rHU_99E|gfpB29dJWD{;lwYXQ iS5j!;^)t;Kn;pfU3ePV)73@3sn<4)&3I3A_r2ha@XD9jq literal 0 HcmV?d00001 diff --git a/42sh/obj/job_getprocess.o b/42sh/obj/job_getprocess.o new file mode 100644 index 0000000000000000000000000000000000000000..c92fdb89967d8637633773c47530ce6855e6b8a1 GIT binary patch literal 4784 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 dZnYxJ0>o6PxS*UNEh(8aG;q{{qNn)93&I literal 0 HcmV?d00001 diff --git a/42sh/obj/job_getrank.o b/42sh/obj/job_getrank.o new file mode 100644 index 0000000000000000000000000000000000000000..7dfe939a4a13bec2ef2b56428d382681bea2eb37 GIT binary patch literal 4388 zcmb7IYit}>6}~gOGyC-J`ccb?n{N*lpj>YG-@an4*^0&j=%_^rs5T$DwtNneBaC+ zv)-mnxYD`joNvzk_T0z0GumIg{kQ*wgirzk9V7^;Y3R}rv{jHrg74AZih2)@a}1jA zgHuqF1knt`DI9V<+w<=o*?;f-}5V?h1eGMM=t9X5k6mjY^+{5$oa3# z&*yth4!>SLt1?mLkXF7bHxTVPnZ=UK?<-h8xqVm7ub!_I3--JDI$GB2*_g-Q)L)fv zGH<#mw&v&a$?Xu==F8V=<$_VkPcprC&9_tLHzX5!?wa{|eATf7?gqE!cemtQC;9$x zoqTS7wY=HNXSeVL;!P{(nJw$*<>x$7yXt(uD*4KC)UDUahoW;STk{J1K!6T&CUEdH}%(n+|1#{3nLd9`F(MTDyO~9erDuSZk9rG0p{Wb zJ{7Jt9HhDV-1J;->hOY?zH2^tg!xY$zNjX@d2V`S{@BR;X(f4-xAmKMqQfwdkn1wc z%d>;-Z%r+VKdpY%o!rNwuIV2ffRov_C9`>>ut#MH+ zva`kwhbJUo$I&%>7h|_>!GpZx)UC0GgSvB!iE_Ru%GF9S?RMm!uUB)Yz|z?+DpNe*&fF48yK+mSQwtA+c6GXOi3;bex}JhtxIkS!j+@Z&Le2{L8QsAXU?9Uoie6 zyez$&)xL22SMd15>Ic-mRD3h67wGk=eLW(&3g!s}XltYEV16BDFc&=q#cTqbqPGKm z38sEi_&k&r)^-7j?nSo%KeQ_L22@X|BmQ^jBY;C)%;*Zdqx5cI4x3;-ORpO_h_>i) z*a1j*ZItU2rTaj5HB>09kvlPnE*FU@$zd3)v5Jwn0^TGax^5fXaPofNO~6eh^S+ye z+mp25uIJbk+;s8_a7XC2!yQaM?YkXthee8+h4$9$G;2huKNbA$60vp4sGOmybSLYR!IGz+82-i9G<%; zAL8mDiBIof9_}lJ+JEzVnD<=}d!_#do?Q1hLT4as&131ej>WaT^#8>0Wzr>ue0&uu zLWkDynTc{l!`xk*?;_S%7{a$N$Fe#*AkLSpHNTHO^Vof7j{NJ&vC^7X&vxy6@h_vP z>C@rgoqXZ7e{T(zQmOdCGY$2Y)UVC1-d8_+;rSmdtpCSLkA3)^fybv~Pw$ynqyOv^ z&gfWY?}>l@viCALd4jqj8zDoGyCGwc24ot-4dpJ(L4E^y1M)Vc4GE_qTOqq3_d^!I zhev{^yBiv<0+SHWf`nKfgjhBbIw_-g3?#(OV-(M+gjlwOSjo8j*m%MTapxt((?y6U zj^86_EPFz{2P7BkkPu5#MzMqm@r21JmL(w;jHKs@CBzz#QLH>dEJz8l3JG!bBt5Sr zLZ=`S;+;T<_lz9K8-oxp5(#l`gjgOj32qu8UJf$q{mx?uXN_kTBfK`}DN?LxJfv*O zqxT5qP)bR~Lt)N}`Q8Zm+7;3)Ey?ky%|z;p>L=UeXSOIIRu%JPP~J(jp;!1D5T)g- z1>YcMxxrU>wqe(^(#u*~2S2hBu^(v(0gyH12R~lHO`ksa83OXVC{tohd6BSDbIW!R zw);H;9JS_>dEsT-k>kA24;kQnWx&BmlqGn*7Dy^uFnUglHnbacM+;48QTfAk7$aa>R8z)kOC6v=l)~n{kM5q&q}>s>a|isF;2fEbvtwtfZu2~ pxk8TfA7jbJ^G+V$YL#NS;8ZJuUyJ_gdyZw}pM`3zhR-M={tHfGm&O19 literal 0 HcmV?d00001 diff --git a/42sh/obj/job_is_completed.o b/42sh/obj/job_is_completed.o new file mode 100644 index 0000000000000000000000000000000000000000..52ebf04660f021f03cfe9efaa2ca44b5a771aca5 GIT binary patch literal 5280 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 bIc>ZGdJZ4{f*%LEFV-q+0R%6D?HZ_V>H@++}yf zLQnY4cfQ~G&hLEZ+;hG;%Nzgs$0vpmN<^T7v_a|`sx$=UX2@lNpHW8RLB~msK?!Ye z3QCe7ifwzv{a(-x?44V8?YwG-tuwMgK2CeNLkPwO<1kfNY`ah#X^z^i*YF|R-g3|8 zyS^NDi;!oT8bBNL>8`LLdjd1$tJEAHXyyCuEN>ycV}>--dX`7Xmme8v6!&udv*Qc- z{w#;zC||i+s&Pmw-#LGigxDkX9acb`>J0V~)-~g6;d(n# zR|Au+miV07IM(Ue&Fa2#wP4%Zx6B;zoa9SOa1eYviUT-*@|(Bt702vS179~7VB53v z!ON0wNb>EHe9{y#A;!Wsb$H(@<*Luvx?U3ld_Nh?lXAU-pAjGT#dnDXfiU4qbj;T%>#Mxc{khj|^YVY3~r2*gBaz zP8rNiyq%kPRl2d`B03;LDYW0u9X<5ENIo#+lfXPqk9Xh!8CsrOau`A8j$RhY2YJ|E z+WIkSafz#h58MNmOD{}KO`(%3I==Pe+|geT+4+O-BTOsb81zuQLC_RmtAD;TD@K@^gALu?1CdZy05mU zkk77LYV zEss` zNqj!`h1jzAwyxW8{34oACA6&zKUwQ$nc89zNo{23$Sd4r^ zSncrL)QOtb zW6Q*ztI*HaFY0XhHru7@Nm8q&7V_yFn|NaWkvc__ow$*t>{ z*yup@1}t-)`4-e}t=Hm0xD0I(XZZtBIB97$(`HSXJ`b6S0{9%o-h z&GZQ4J~SuMX)HAMqWM=e^_)Rs#uHg(oB$eyn2R(j)c5-YAW;*^5%t4wRFbCt`56w=PL!zCrYyoB&N@5}0 zlB-d5i}saJdx)EgR)aQ`)FCRvAMq%AEJfc2FJmXFXW2L3JPWl;TWb9r+TWPv+`<=O z`CGVxoAxp+e|uM|nYi^PEPvB(<7d;KBH^>B{si3YHQ$38h_0|cgkFdf8-<&&K7o~? zwTgrhxMykg@hfz|;$+c&Y=$)l7AK2l)yx8GUT6(qXRLH+tyVLOr@w4;jhb05bkgg~ zQE68|rYrh7w2j+QSr}%fJIJbZ4g=`4!%FDiM6-*-^a5LC!6*It<{U^wDE!%C3GCp7 zf92wXkMIKSmUurj%gnK~TgT!@ZtDN>;duU3c9RT+0V+a=*6_Cq@`Z2X+CU?*2ou6L zImaa+d|Yr&WE(LT;+-h>Hq|Am;gPQSFHA1|=l8akdf#-q=Rf|h-_5^p-{Mz~J!k&@ zm0xskdF8t=J@ewh^&jc4-{H+Yeeq{&+s0D&oPXfo1BZ{rQt`d#PoH`1%DKM}r#^gm ztoPmMse?Cl6qh>bQwMvnNw+~ZLB0klK=wf%hCB^<9&!QlHslh7zxPRep<5yAAvwsm zAXUf_$P#WKyCRQG^LQF%_ zi}#8UubQN179_;9D7~1o2r-pOh#8s?kH4g6@*;Esm4uiv2r-LD=q;Fp=q+bt(jdev zBI%iO2r(5&h?#&8Q-g$fB?`0ti~JcQ$*dAy3+2FFLfM~EQgOpP z2`|pF0MhdTiKeE)pFy!Xk$On|QhRWTan#_e`VU}5`6$sY6ch}DC@t?vJPw^olMk$H z(`{s>l`XFw{M>BBz2D8+!QWT2Jb@!cw?0ZS6P}y>WBhFoMxl*ulCMb^ZNVt{tZnhc zmACy@W8mmd8@R}4APo5M@f5&8J`DCSl2o*4^qjUpH`AI?(z^ApX!GF0Ps&m)A*?tM^oFVS+Ll==}yh~Aszsun)NF!0l=W=R$Eh=s)fxI>oF5n);9+l ztNJ2S5|-SzA<%kO>ZMXIlp2bDy1WYdO4vyNVPSKIDe&Jnvuw!|x?`6Lc`uJmt&UcT gUaczZ5?=UtJeTlCrr?9zcE;;`pZe{qe>Z^Pzen`Z<^TWy literal 0 HcmV?d00001 diff --git a/42sh/obj/job_kill_all.o b/42sh/obj/job_kill_all.o new file mode 100644 index 0000000000000000000000000000000000000000..85cac4ae77980a0613d2c28f767b7c46fe2019ea GIT binary patch literal 4180 zcma)8dyHIF89(>V+_^JzXJ=*~*5cB3V4<|M-C5d7H?qN9Y3mfWfdC6=(Ch5o*`2%0 z&J6e7=__a&+n8NSq)6}|6C(*hjm8jCjfwaGAEZ74Q4C@X@ehmzF|Ni)TMX;(cka3C z%ur}g@}2K-zVo}^Ip_P%JujU9`#Yu(T1=n=#X(I2T>*r48R#sH@6ooT!-12WgBIz) z6r>!DXto_x4h5kc>UZwB=g$A@k>o0Yc>L@$0MKcRi=$*wv+bG6bZgG`15cW4d-vTF zx9^RHMTGMz7ln3C#TRO_m#~o@;nfz(1>^I|^|^}wZoI=?`<1dnyte*=cnf7m zhS(ingr|-}TpX|5Y}P7vy}ZEi-nHH%D!wrlQ2L_rg?NqWd3nIy@qJI>U8V5$ULu~1 zuUU4w@&4F_H-CwE!Qtiw*ZYpbtEpZ8;w9pt=p^fhkv4C|3 zcB_8St^ktcTMLC)jr9eejgR8&`Pa3Qws5 z%dbWbK-y=TmOP&r^c)>CFwV?mPpX=I+!A%?n-3DrJ z`~<0E!R-$3BTto<{!%*jX5lGuhF&G(5A2uroGqOoQCuz^`|PsF9p8zOAEnS;_mk3z z{mZ2jsnXK^GZ4>gnTRhvAI_Hp`|=oBUfT28>(8#Ntdx%ZtnjIyPO!WRlaqJtFC3_N zzT2o5Mu$g+M+%#q8t#N`qa#p;cWxiPZnN+`r#Ro3-sUvwf!C-}w(oOmHM?A^4LhPZ z=h0BgB2)DB7HJpkMmoR*-SGzjf zZ^W|s#9+2p>q9!~!!Y(~UyEfe zi*xWx?-8-=zJ4mBD2ybkL8PvN?MBPOaC+4j*Oj&EYtT2d3W~8FP2-2MSKvdtFfm6A z%es-}2GY(hlKeGq%D|bY}SX8rU_}1+O_&n z#^fH~L2ZjZlo#<|a?g$aOh;Kkllne%S4q|L;DhAPrr#Zcpv^47) z2)_U&Ga9~cjYet@)TA{YsadFbs}!j@sB5j;p#Bz=%tI|$_d`5OwHNBB_4!EcgE}rU z{A7{Crq;t(SoWXj21Mo!uqoP;TI!SJTCPfF${9x}rnGnpr(z7CdkluuhZ0`_`;4*9 zd>mZv`37#^6VT*&6!f9E`AujJ=Uu_gJPl2r+?800`7$(lIzw2AFzRqS1ygE6>IYy( z65Dgf1lKEXZgNzIY@sb7W#`EsKg48|83sNqt(|je>Yj^RccmTwVm>GrY*k3~7x8x)n4HYJnC(JgM)1o&~)G`YY%>s0RTTKs!KtL7xDz zHZUYuENeh$ObwctGRnlPrisa}OsrCxShmW$#VV(X#i`(#(KNAClotz`Cf2tyJ*P~JPr-Ae z>BV$cCZ;S+%yKo6bxsq@UzvD!(R3W7g5WJe6Ym=3^?vziBG;I+n4y}wU5U}rn5Asm zk=uoKD6i!+X7VJw81Utwk++DmvJ&0SVj`RWf__s^SWiOig0C+ALkDib^ZGJ4UbXwD^bpq8+}YJ3L_*9S;*cUGSZn9}HJnP2n8Ks4Dfw zfD#YqsHabtC+g0YuZqx7JsO~3Kt>Syhlzw`p~Z5Vkxt)gT%P#0Va^)q#4ScXakG&e zGjxcl8kc?rppeu#j!LLY^opzESb@ vii6QF@w(z41kb?`HHvMj=OsHiU literal 0 HcmV?d00001 diff --git a/42sh/obj/job_notify_change.o b/42sh/obj/job_notify_change.o new file mode 100644 index 0000000000000000000000000000000000000000..6db4d7e737d07f67e7fb94dd0921a57e260317c7 GIT binary patch literal 4456 zcma)AZEPGz8J^wq-tPH6W1GmW>*QLuA!%ZtNkU__Zb;fBy0$?9Y3stC<5D`KYB-BKRNPLw)B_Jx0FtmcIgcdbC&+M#w zcTTBCdgq<@nRlLjcV^z%x%=fie}B&uLW>AgkUmJmK$V4{+yJ>s@B@n5A9S4K7?jWk zr=X+>qS&@yKH>-Mz!`8fNkdKf3F9m6;x7x1~BBjH{?ughDAYkaxx(&Z8I6^g}X`7qzVJHC+b zlHyn?U#(v8IHZ^FPA(wIITgi4IcY*nXM%Y|*LCA-7V6biYe`?1 zZ?53T5PRbb`P6c(fUnSKxMjOum}7X$-uIGO)vW(vg?valN!c6U1+_oI_kAF>w60;JXMG)S z4)5vP?fMh7ddar;?g|~LuPDB(0vq7tmV6ZZPpx?mUwPK9G_ktD0Nd_44`KnnBT(X; z;!~!;>(7R5>M-BjT3s^szV8mjw@C$aS-o%R1LEVnpi78&aKJJ6VTcQmueu0*jNOn= zK{^W`L0Nu8bb4LCJ(FK}J%4I(GJjfb@ce0!U)X(h;rQYU;;$T$Kb@57?95``c$L7y z?pO1tDO34{-{u!C25x7MzZs0ZBJCeCp8VN1z~ceZ@qoK_Urm3B`zwFyXOo}%sT{DA z*_YkB_mNL#50{&*npe+GO-xQqX4g9|j*RiCNf;AbH&1+QgJ?CK+(EB6?s#>->A7s% zbz1q=Rdh6JCEMpR z7n<0Ac4)$X%Vu;Ge7{*MwtXazZ&%zxRk&Wgnw1qfE460Jw;N5*DYxk2)>=O3rDEJ= z_$Y0+YEPC0tIh{1TN1YGty;BSE@jDF=XcGY^GbYlxj9$!TEekwG6vtF0*zyP5^!vZ zz;;915sm|oB~DCPQ$C$}OQu$%TrLS&2TTEg`Ei12a)Nns)Jw{Vn=QMpEho-tH=B4n z8*|u_sEQRQ{~@8R(r!x)8j(~cI+9wY4Pcw-695Oa9sQBio$z=(o58*fWEnm<9^cL^JcASsju?xZT_nUNDwNLroDZP)KZYToJ;LvT zme#b0e%@`%_DR%z`uWG0=-R4mpkLjZ^l9EzitB;A;8MK&cdR8Cni@ktWjI)2UK4!%(!y2J=i$0c#<+#(WRzSx8^rB=L73kxk|hd@rCGU2D7yWmwTH5OX7{*I=7BSg%73n**^$ z=+Conh!MR7%ck`a#&A1Y$7roa45HsWh_(i?)|hQ7NaRst7|OJwtk^*yKq`nuRl z&~p0Mb6S23OD@y~PRm7DCmG`H`dA|N8(4B_Hgb|u?2sXVQ{*4onMb$$6i_3LWC^g~ zdp`QcT$0;V?mg&y|~+y7c-R*6HL)__Yz`SC@&@>A?B!pn3#k(i;AAd6QPq31@V|5#G^+I;LUX6MKz&79)Z(A1G3E6>d@%?a2p)b|j-^5~g(yUX1r9 z$d$KAbM2ZMFT~DN=4t)jWROlmtcR~I{zwMx-Bc1aBW0*s&ou>C4aaTstDS4NnmJ|V zYFno6=tf#cdt3nIY;{q`$9CCW2M;5xu0s>EJkA1tw2^sB?LM^SMFu!BPErQ$Zp&BW zf_sN@2(A|}FcOOf-k?O%n$h2Hec8AvYGn>2b`=Qy7d`$6aVp-Cc&pJdQsEjl1jkz0i2j_!u<8yPNZm@W**v(0>~=#z%8X zuTy%B(onMhA4*R{r!gQbqiA%PVqcHVn{H=+vB&m$Z2ETktGIxw!rP=>@tSi5+$2i{ zzksV=z3P^Iua27~{!1u0hj3**WLF9`S4i(_*_Rh3X>?s`yGK;pg=R_E72GUw&#d4V NQZU|`Yw+eJ{s-rBl#T!Z literal 0 HcmV?d00001 diff --git a/42sh/obj/job_notify_new.o b/42sh/obj/job_notify_new.o new file mode 100644 index 0000000000000000000000000000000000000000..b1f5b6a485dc970a5db27c8771c3c825a016c3f9 GIT binary patch literal 4568 zcmb7HYit}>6}~gOGduh6?)s6$A$78;owR{u?K*~7kQTed?FLd*O4AZ(HCd1Mm9BS} zomnStVj3k;6w9g95c;o_sHy-V0ikL|B?>AHP_-3MDMCC{L8#iu;ZdxjLQABY@0+>f z*xQtvt3CHT?z!Kbx%ZwsXMg>lzrPz2LJ0_Tpdjd34P6R^wi=Y7{yuF_)El@UeS965 zf|Qi=Ow-97aHIlens<(T;m#|%FP)GA@fgeYRv~oSg5ofl-%Qi8oqDNKkcMVFA7_Oe zFS;Q9Y$4PuqAQu^SZ=gYFaav{9d{4kam#|&*QIoci-b1Sga^|SNFT3UwOoJGT#9#m ziMJ4W!*yHSE%EU2vZJH*+yvL}>Ugh8gyrIuD)}m>G~*R{Akf~CQDnlNUdDcKU(l`^ zUp-qXaU77p0(T%o8$BG>`f<(yf`jx)UXyzi)tZ@UcW z<`0a|!>f+&b2qp-zDFfqkHq`RGV$E_YFVop@3|(t$CiobOxCXYz859lH|47TVwreI zVi&SGzLWBN`0razEZSL5Y}#L|I*#{r%tmE@sWN7oyLK#|aaQ7`r12r(@kpM;`ICFz zgqJIt`8syjo6vk8ye#pCB;HwxCsl!Ktmw<+e!i7U6&JDjeUlN-d#4O$PQLHg-X}h; zi+dMFy@?FI6Z8oDDL(^#4LGmU+d+#PAK}wt`*P&nnd#RvNB`EBc~F~#e`b2>?aa*7 z+cVoT)6bt3vxK0YnRy_IvAOAy*D^<^=0xJy07o9Y@w2YO$XsRyb4O+~Gb6JzwazOu zG2qX^YfUq7IUP>^vEljqd)7r_uRqpY+>q48%pXh=6 zW+k^jZHeC9HZXb%`>XrLvb_WSc2O+#p(-4cz3uj;F;S{GqE>)VD~*{BcRgFjaWs7u z<6HYNkah5}8ErVoCCAK{vjtJERthP%BSyYdw;i)quUa{qF6EN#;3+O+#5wp#ZrY{$ zbAsLC2TI)qY*g%0p^_U*5xK(8rZZk0O9)!^m0;d1)EMnbARdhpLI|Tp1mZi}sSF~`!aY!LibgRKVR}Xvd{JD) z7JN1Owk&{REUqYgP+~nEv<LNeSNAtpBC ziEOud%+&RlAG_z|Vu!b!xXTjzjtbwUpW&G`<7rGPU(;w_&^piOA};YIoAu1j(k> zt#)^c@DU7ZLH%{G8H#K5Ij~cpU`8kY8Bk!eu4Bqm5cPH8XTUT=;|A+p=za%1v^w-B zu+C7MaS{A>m_r>5>giB|Y_h?WRgo_0eC-v@3e$w{)1J7b0;VMW^nFMR;r<1px5 zq3?n9MK&2vgMSz1$Va#=&q8~G+GZ}x&!PQ<+7|B6d1&0rNE)#lzlFwqi1e!6*BGz( zS|47-c-7Z#P`i5;c0JOsc3&?v!fQW77yc34bVWM{S^pKfm#C*&iK?`{21DB$ekZg` z5ZgIT`zIx$Un^As{qVtsM2@41)9D35x<+TR?FTztC+U{%f#O4T{L^m5o|*kY5DT*k^kLAAAm)PwngC6MnC{;PJqP*? zXclxC6vt|>2l4#e3i={w9CR3T8pNH%PjG)&ZJ_Z!pov#RI|$7N(ZnIH6dH4uCLNue zct)C-@6wB>n_fKi(!{eu6AzCxF-vJ;@=6o$3z~S1ND~v6Cf+qNE+!34Oe7fuvxX+7 zqnya>r-^AOy^cVoi6>T?co)&c+e1!d!qLPGlqOzjG%=l|X-InUwvZ;?T=e3FBSR%D zO}tm67q2;*7@ssTw`t;b$%+5#B!_THdD=0C*~ literal 0 HcmV?d00001 diff --git a/42sh/obj/job_remove.o b/42sh/obj/job_remove.o new file mode 100644 index 0000000000000000000000000000000000000000..5f68e0e7e8f8f04bd1ab2e6a0b9dc9014ef8034d GIT binary patch literal 4512 zcmb7IYit}>6~43UnO%F=yX)8quAGLA5}PE{UN;Y7nz)Ti+-^!Dpd@{uR@3$D?CwPC zon>d7G;u7YO@-pRky;{t&>v7F2>C;Z5EYFC6wwx1N=pS2FI8794e~P;RThGB9VAct14@5~-*Hy@ z1U5JYB_qe_x@$h@N&`yQcaPt*`?4Lh-jogUF_t(8(!|=tVXC0$y5YDDt5%jkm@nXY zQuaTq1tWbOS!g1jqB${D)2-iF2jx+z@8#qcmIagnU)44|uP|Sf zFTAC^6>l;8=AwLsiHU}}kMD0`d;#CflIB|ZtXj$DkTBn?GQJCPzNgxK;=}kJ{4OYq z#@8s+%BFKA-wUA}`cA?pX{i_Gn=BY!h~fAGJ{g|4I$xn)ubO(TFv;+)nC~xSd|PEe zC$1Ww&u35U^*(SozKG1X)spWo*U0C^S1%Z0zJU;*mTY-*elzs`{P^4h^+o4gM{jY93>FzUL+1s0`*sIp32X5Fg(Q zx`ash8zzJAg`5URs^Kmn>gzN zyUuSpdJZn>V|1JwNB6m=@3~p8FF)t4u>4#nTtK{MK0i0}UVirX;PqJkw$8&x?}J(p zK?T5>{m)HXwS6+jvyUMn77&631;mei^R@E$K*VJq`%WSTiu320wA2Y`7 zCcAUzUAwaT%!Xsxwd}~y@X&B}jZwuOIXE&5V`$_0p&QqJcu2WD4#wxo`|Z8OLT=-F zry?$gEUcoiYAz8&xVontUzMze;~~JSmg5S?SDd$rAyVs(b4AYv2|Qv!ga%XbQn{O1|Fuv(;wtc+C^+guGyHh zY)2TnRjL-s!ZoNkK({@>&^-ipHLwj~81QI@V^j(aFK}*1WOC}JiRZBPnS4O$Quziz4k{fwn@s3SDGJ%sE5W`Q zWEnme|Svc)Nxc zDb;n6Rmt`)SmW&bWMoxFXwRV|_A075NaVWsSD|_%OWMBI+b@xJK?+4)9;uSP{Dk&3Dn%@-YTA4~gE8SOGL2 zPbkR&G@gOPlL{W3+#HylFyqNv0y70Ole|4J(=dCJpM&{4B%XnpP1e!;JIyYbBguyX za|z6CqLZNxu{)-uUV~1*g{nt%z7DmUcwABMrB*U!s+c!|m(F-Qs{9wn@=)F>Kph;` zKIR|guh+|TaPi+)_8AAM85@PBSV#Z;$vYdhtV(#)BL}8v2 zV&Y4PnMsICMnYUygt*is7t@*$vt4>|5fb96lo0co5Yt>j%yvRt1QKGp6XHUY^h`xU zOn&LbTqDFJmJk;eAttY!HglB_b69$PSnkA-7yPCeA&cCK$g!XV*`yr2Qz#E+luR-f ze;i(X?sCY;1@c_F6l`T;ES336G^$fP zgmP0(BPXq#wPEB_3lZmllhghC^8!!c$dcAu1D;ZK+@T8hW`6|QSQqjbh0*4Zkav!d zCsv2<9h|_&4EkhZ@nor$&FQVr%Ng?-cJv{T43^?1Riy=%qh` zM$m&lkoE~^%xLg9G~W5>W6%h1^bjF2ihi10Hrf{0X#hdNwVD0RvNB{3hHUz_`hOv0-yX8>57|O5xq7|eR&?C@ zidIA5#^e_8p=)Ja|LmIAU##Pw3Ag06kr?=Ep=!apoHKsA)G$rIWlYw2Me;l>M{iyx Gh4?@DdC-gi literal 0 HcmV?d00001 diff --git a/42sh/obj/job_update_id.o b/42sh/obj/job_update_id.o new file mode 100644 index 0000000000000000000000000000000000000000..a0818cdd0245eed26a78dcab8a9e78d4af8b4a22 GIT binary patch literal 3956 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/job_wait.o b/42sh/obj/job_wait.o new file mode 100644 index 0000000000000000000000000000000000000000..8eb10c592e85d5ec53430f86dd163a68fc151476 GIT binary patch literal 3712 zcma)9YiJx*6uvW?*=!!&Y??l4D2r`;KxcQ8Mva>2M!UL&6r}bMgfi}9l1#dpS$AfW zv|%+gtz;VmEm#mltRPxJL{NXUe_9_f}FbI!gIoZtE22#|qX=3hBl#FQ=G<}#Wym&6or+j^uf~gu} z)tsh^l2y~iVFjS}ilS`W+rRVaiq$^u@EX_j1u9GKqz2N(%NZGa-HUg<#+tEjmx-53 zrwi&h#akPni)KpUc6l%yzXV_JUyg0|>B7->M&WXF{Ij8A1qBq}@ZhSnLX#mhTd6)R8E_N?$atcGiuLGTeJ+-EF zK_>u$c@|VX=oLh~)mASpIp3Wu|C*e+8cWVgUjd_Bx|uAWzf5jtshr9A2Mf@(BEs^L;t68r*ThT?>mv+_MW9 z$@${7Gn9TgaoKi&a}>7a#ElyNQS!GxKb5%3iA!^(8*{~LwqfTV@!9K$Z+6GUmLoC% z-4Ht$;*0o5FkKAFlB)Cw{!rgDUXq%_VLpXTFT>`(jGd$4gTO)Lf~ftJ4fmrHx!^DxE8q zI^?a{Db>i7MvZiMBBfcj(8$a}CJL3DF?6e7? z?$l2$H9Rn|XGeHkEts02hkGKiNGyDRCWr5U+!KQk>F$bjKJb6>Mt7U=jt);4quErn zyUQG5ZZ=HQEv97|f+bQcx|pc~I)>tku-Mv#1=C7dMUx4wLPxMo@&!Zw4Z&7nB~FnT zfpVn~Z}bHpZF;QfzUJ+1Pv8XmBqnmz_BMRgx@$yfGxG%>Z)(DY^siyt+Z^(QGbmyoMH9NFn2s|Fk1pt$W|z$1=H zjW4OZzV;2S!e7d!4hBSY4QWu*5zxteOoHBNniLn+iPmD%vrR>@Bjo@3No(&XhyNUe zZa?TH&~XqIf$S+?>Zur13{p|e)_^dm5~QL6aTV2xR8&5$s;(2XHM!O!M#`1+H2C%r zLd|gV5)STU!emGYHP;7@!HQyQ2Tk81l!XO%`&oZ5^osb@3b&WH!&YR+U?~WH2Up-J z&^tha=Z3Rr(JVwYJ(DYD)u^_$=b>7SdBD6w5mos2-@Q-h4uE#FkrAqTWsd4QcM5vi zG1gEyyS^4d5*q`XrPbo5Hp%brmDYbC$wN|mujD@@`TWC@7>G&%F+z)%B+=g|Z6wQ0 zux#wbnY|#b_aBo2&UCFatsjKpFOn}1mm0{k9-cmUioSz^OGhQ4C^n!PuTmu#lS_CY zp4BfpT-Lap21hOB0dV}ueO%w^aCr-t8^Dp3d<}^qQ~3vQ^nUpQIF{ry;DrC7!{v9m z{1!Ojm%+*IAlK8OgT1VAc?US*((gxlPbWCp-^17G$dNsrczVyn&bmL!`MsRe*9Lxg zrNgP)kPKoi^xz`~UL~@yM^1R;y&jq3sP?D0t7WFRM+T>&U}RL&RK`+;{rCsTZnMge urQ}oAh@u--Rx2=)vw8eOW(_g>J47AZ#?VZKe(L2^OI_5MmXXgxX8!_$IZSc@ literal 0 HcmV?d00001 diff --git a/42sh/obj/launch_process.o b/42sh/obj/launch_process.o new file mode 100644 index 0000000000000000000000000000000000000000..3fdab7199aaeff0598b16ae18ec5ccb9fafb79e8 GIT binary patch literal 6328 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_backslash.o b/42sh/obj/lexer_backslash.o new file mode 100644 index 0000000000000000000000000000000000000000..0e3a6241467419b8f59ac6b329d0063e2816a295 GIT binary patch literal 3540 zcmb7GYitx%6uvXFvybj}TiRMd9&Q367}_mR8ln~1(#0)orSyR$V#e)u+AdvYo1NWK z2^bQLu|gs~qlt+c#l%E^sqqyJ28|{fH9^B4<0C#ojK)f0f|7{eH*<%!3ku%sIo~~J z&i(GW_nw)%pZ)dg-vJ>MO+Z0>kZ~O<20>c@IZNliwC6CG?I_2fc{bgY8amMoqhwB& z+`en~CwKPG*j{g!?2wPswpI(F(&rNg30^adA#<=iV%Vjk<1&oS+Y`N;y~o1i8Rw$V zev$dPmZKe7&-VE8g{lj zkLOLp%Isl!7p?aynP0oi=h$WQbNLE`yPX5B%x}BoTPFFwyFxxEzwu1AlCNCBr&rBv zoa|NXpPOIl?(s{m_esh3l-$6TSICE#&Y`T#Z=K)G!dveL;mhThE$qQMOGeq+o3n-t zBi%WB#9fjvCY{sZ<2Pjp^(RxVSg$#13>R^_?f}D>`#m@)`8Ggjuw61uM3`xuv-!wj!IyXP{|) z3ykL0HO;G63cHw%=gmp8=xSpylO4138GE!jE8+t-hQ~+t7IqJ1;;n1!QDGVgwo93k zDLRvz69egfV7jYY^d)=5?b~`g#cc!K9m!sCYi}~qFVe}rKDV2=t<$lH+XuGwCq<_V z9f?g_`_hTNl-QBz6@5L)Oi-2z;+>9uu3K#Ni^)-K2uN` zC00tNh!S?3u=53LBv!WU+=yik#YkxJrsBnt9nBO)sW4_*;CIoM$d`&vg2Uh_jvmUC zGR|B=nWtPAt=F|^t$$&3o>GUJP<@IP4Toq3>Tu6iN-t#i!4GK}634udFIBNz~B1h^DJRMpR#DO`=%u6mNMM?FWJTlpCC zaY`}BY84T&%CS&I5((Z#s@?&^r>xS3>D4SKMdO98YLj$m2cUi0z0kV$0JL9w5IUee z0UgwyfevXeKv!umLx;83p(EPc(AC}zH8Y#C;{+b4HOiL&MOPo1JmuJ5LBkqvV(vA! zLi^Q+M%!r3>*Fc{CmG=jeg_Et1Qq%nio>)8Rebs9YjxqDfy)rBHKEVF|%hMtAFoe%2*WYdE0%);inYNz1I;-+AkSMyu_zhEW0p~@47!-BoRPG2u>xciUpl&) zA>2hYRvKL_DH-)&=NG`vbFZDTGfKYJB%0H_V^#L`3T3iZsf`4JN99b55P8?1Bs+gz zju#>kt-Vj(RP7d_5Z@q16%Ruz%DHGYw8A+cO3upW%R~5gbK!0g@v>cvOMg7Kc75Ai zkA1ftcRsN;E^1yz&7)+hxCC$`q0n#%xKG^y=%X^_Hy#Ez&!>veg*#cRQS?aFA9~oo zMXztygYCNN->OGp)%eSLBT(G}IHfN_H?~Eug5xFCj|GWdcR@{UK=3s^>e~Jz5|>L{ wA`!r}{m)87U(`^^RtKDAifb!u!OPVw&bs!DVR;|%UUP3G1OFdQYlxKp06T#HSpWb4 literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_default.o b/42sh/obj/lexer_default.o new file mode 100644 index 0000000000000000000000000000000000000000..fce1b2678fe968e3381d80c6e2c1005cca73272b GIT binary patch literal 4000 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_great.o b/42sh/obj/lexer_great.o new file mode 100644 index 0000000000000000000000000000000000000000..6b6d3d0c60b17c88564460144f26eb914f1536ef GIT binary patch literal 3872 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 W$M@6IEc|`9or2(dZ&%K}#Qz7>+Cmio literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_less.o b/42sh/obj/lexer_less.o new file mode 100644 index 0000000000000000000000000000000000000000..55ca67fab76fe3232c02d08a5071fe50275f13d0 GIT binary patch literal 3864 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 ABme*a literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_sep.o b/42sh/obj/lexer_sep.o new file mode 100644 index 0000000000000000000000000000000000000000..0fc8b499c9e038ec6695c958f3853a64c4db740a GIT binary patch literal 4008 zcmb7GeQX>@6`$R`+1vZ@-Pul4r%B5}5|c)??~(>&k&EkdeChgfX^rhmBR;gboY(f1 z%bvMiCuvD4(`zdZS0ZhJKLGLZ2SSK~K%!DysXzhILM4dASA-Bs{{S4Rh(HAjZ58u- zyR+BxC81%Yd0+G1Z{EzCncZK#@wcl%#w3M-pa;+wI7kv5Z4>$xGTxvWA#dO;#i02* zFd6kY8PN>GF;6+3?CI0FBhzo|zI29?KqEYw_Hv9d$_>gAF~1qcjCpKv&aj=jYchh)|_cyi+87}r$~>jgng;SuZwrQ zRCZJB%+JRY>D>fgXqqR3KTi98ZUm(HqTW1o;S%k!w^myA1&9}R{rq{_VWf-cTIu@hZv0Gg z6Is4T|Kwk(40>aYWt%UL#dAL%FJIB6tJs?6FWePlbCz>&>5ZSJKl+m_Jvqrj;qam4 z3A1ijYF2V+Fg=(~?kHFBP7VyEp$zWXJ-F*mX4lK9s(H$+d(^Pag~2jQ6>S8j=1$fg zoGGRD?6&8bX~4~PN{-3KatE@-!Zdhc{1BVUO|S>IHGL#0ZSPm;yZHGBVwE|{) ztX#7k6GMU{ZV04@4_)7Q27^kfF&Dul6g^XNO72`t>Xx?0dbtuysGDQmQV+@~2P7pHiF_ck7nN3aFeSDH zw=*yZ*B)skti)*Kz0vXBd+ zL{UzH29!rYx$+pOsx(1^%G02l@&(Y4@>S5V@(s|4@;%U~@*HTF|Ji1(e;MiU3mA~& z(r>{eE9p8G(t0e2omKkWobqOlDo`Nnlbb>s5u(! z2@*2baHprTIz;!SCGLN~Jevv&W3PSthefI%?Hk#b(W$k^lHM7MM|17}@u7I?8wd=I zUVe$G;2dSdVRUuI2$xP5alE1M@MQWpk&POCZ=5G9w?B8W|L?ypZ`l0IKhJMo;i*?% zIQ_miZ@b&NJ-zg)$d#A(Jd%i>_Ml~c8)kv7=WRQsvag(S~(aA)W6<%&pVWKJv6CDKdqO(CCQZ%=C z;8btnMTe5SsLaBPP6nAMS1}`%n@n^9gjW$NnFi5m7ttsmGLg6N`d{@6V&`eE-B_21 z8%-GNnqN`r;YlW)N=S)lP&+Fo*#ggrD}=MQ=D!Fm8%sPP@9*-?A5I*6W%eXICF#vr z7pO#Ypi332TwR>O-(Kre!cvQNJtgd^%H2cnUvIG=vQzHsYBTS-ADkzo*2|9%5Kb3f ze$Vc?LdJ0v4?7gvv4G4%-YW-1iAy{f{ufu(e4cly^E|5N`GyP+Ww@pumQ z=Xf9FWQOBX+5pA|KI`eKTPa-3exctXI2diU`bEL%_bCp8 r-$-mz+13u7UWfK^X3XO2Y&({Dl6hZGqheL?A#N4Z^>Dwh^qu}Ma<_Zm literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_special.o b/42sh/obj/lexer_special.o new file mode 100644 index 0000000000000000000000000000000000000000..497c3be6c61cd53d45b2b736b6d33cc78efcb393 GIT binary patch literal 3920 zcma)9Z)_aJ6@PnsySMkpcNaUP2?=mgLP#p?Gl@YKnBYr%VQuWh^`Fon&~iR+?1RhR z^>*!qe-({O#bJ<)O5qEFFMI+?;=EsN?@QcsH%ZwKxi94D{TCM7LNJ@OFRcH(1A%z zDK?^6mS-RJ{JyVGwEGM_B~TvZn2+xf#p#YQkh$19#@e z_6EZg;8Z2vYx;$upc4u@ECal9r6|m;cuP&**dC*Cw&*u`1bBt1shT~{_|5SJcrQwr z%f%}>hbla!6)!6`iRicTd;ciodjYwS=R3siTCn-?Jao!yi7drf$Al{_kM}@yxhQZmx+f%Cm>tni}2w@3%>Wcgs(U7mi!hghw+`B zHRl{DIn$OkJka1v-4ZV&jc)>vOY*O%KN)fho;_>f6>|}S%zFMbwA1E7 zFUI(`4aOGUOk;5Q3@`Z_on~=@zo7p1g*o+8!VK(Xv#w(zmT3SzoBD&X@XfZ=W4sY! zkyAvtSI*>p-5=lHJPzM8na1&ZQ;+c`1@kc`LK5tTzr&1g964>)b4CyVN4_|6)?7HL znDtX;{cS(Wg+FKR`BRQ>h0O5qfsxF-U2{tnC)3;2-PN7hRxINx>+J1@($%x0>xS** z){5D(eblb`+;XdSu~aB`6)8LEVsduoNaeoiLbhjzJ4?0&SJx|eHVx$W<|c zXgohkckUk>pna1gyYpjo`&d3VLBsj+alf0}Hy|{YKbhP=k*5J)?9T1EV|+L_Zqk9= z7>$qS_YCHSNdy#xLM6weLfQ4mv&tn1*B8Z#R}gCv$EB=Mu1$7m zYBH^FOs-MdQP-icq9)_T&RddIG#Hcx5lHrW`nlflx~M7(&rPPal0(=%0f_t8VAmQGz{9n*^vUWvi zvk~8d-Y9G9LYvc+i0(rF96YqEql4&%K;gS1oY{zBFt%|Q_dCIK#W(~J{TWyr6 z)$Avp{RL<9B#7;c!lQXEn_B0dM{C4i&4=eRtz}0vzP1(8AvGiwr73hG#^qXL8HVI2 zxz8^POK$vFcu$tDI=;O1t9OfQH~#uRf7^IM%f9vdhi^Q0n`^YHI5=Pl5OpnrqH_}CwTehj)5#JMYi=0SB3ryhd17S@5#IEQTF)JhXq z2AepcI9J>_>1^WCkX|CGFmaZpi3@?fxHk9|L=(w_SsSCurh{l!1CN4Ya_5bo0!Ortui@5>IFn|ven1l?HsysMG%F(ovPDG3) zxy~kdEUhrq`SWr6Sv{sj zhTw9m7Khf}rx{|ZK#uomdY`5OBE_B_+ztx2bf1Q?RR_|#k;R%rT5?F+fc4g+drhBq z?U1&8NQ)tyS3){=c%9gD>a6-3-N_|`&+mN3*Yzi*+$!bOQbO={>Mu&kzjjhE1dY25 nDqYv2^Ci$YPSznj%dY3xN63FRt&&s13*3}2;Uykdex&~gDFIWt literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_var.o b/42sh/obj/lexer_var.o new file mode 100644 index 0000000000000000000000000000000000000000..0668ed3e08042ba723fdc1f1ed562bca8f86a402 GIT binary patch literal 3948 zcma)9U2GiH6}~gGGyCh^^$)?21eQ8LsIb>f(#UGv)SGz2+H8Jmdqb!a4V(4YyXj`u z-57O8@V@_^Jn&;k-vv_OzrM38tW5=i9%RgtPzrYZupeTayQ`+YNa z67Le4T=|@H&$;J*_uM(>-n;(O=bwDx7edhl7{~`&(7_TQw3|Q|Y5a=zTEHE6f^*P3 z9hia?qY=$C>()};?YsI+`tZyZ-RrH$4)M5bHtOO)IqmsSn&zx^tTAua>Q%>Vn&bDS zruJTT@o*a46xx#E%5_{_*T0Nct`r<|C*ILEZy`S6=Gt4EhZkS|*s-d$$avf1^YDHl zF|HS{WY1MNr4w&euKowP-?K6=XYl=G`mP#ZHE+*bwJ+nH>&W^3Q2S<~T@~*{zTkw| z8J~wI!xPuW%P%aHEz{1QV0d5J@0&8dQ5n{OYsTl|RgN8Z65JWzC5g91;t@3~S+ZwMGdq68Rfw(fJS3#?Rp9YXc@Fg_L+-${isoDu*>xwFX8V1Rk$7Vg??Z_v zRS_1V==CYR^Hwg|4r1qiACq|7Wib6+?(FBkB0heXI94c$Ef#%!J-IrOuC}KbA2Ff`Hs`bbP$KFhTm}#X~PLE*p2Cm@^oKLSp6(8U4 z8ds$EN5naE+j>t-K{$<-R_-I|wEFRYbRc%@+^`#h^lPR+SlP0+w$@Cqw$iJa<+p~9 z{xQYVoycYn?Mp0L)mo`yCq{;bhlUed3uRnMgCoOGhIVWl`o>+NRxKpU){<3qxw)9H z4i!W)SHr~Q{K?Ak*?e-xwpvkGCfsWEeBBb`>Ak63b_Oy#u}@5=4~qK^OpS~ExqZ9S zQ{tYfbZSOq)6>&#H?@D<(I~%{J1~!8HZ`3Qhf-5w`e1s`L@FzsU>Jrd z*>#aG*Xp8fmP-&dR}?CC-NKNRX07y)CCJP=D>Yxm5ps;s%N2V*(XeZ!dE1&z5YXmJ z$%m~_#1i$&4=fw_uB=JPLro)vgWxdEp3T?u&RT%rmq29RM^UUQN}`Alp}XWCVIb%1E}jlm8OYaoP!;0s(%Y+ z?+S+j6o?5r1UEpq5JH4{*R2%pg6~8x!AEewBF@i*bBqUdg!w!^A|mdlK-=vKhdZT( zo|*&mDR*lRKnkr0rf4>}s_`d*rkw=$X{W$-?F_h~HNpMbPrw7()8IkvS@4kdOYpGv z5_m*=1-#39GKKI~Qx3g>0X3%l6++R~Cl}sz^nZXuE8fP~V>xg`ee!{?Q|r#V+L2jm zJ--DP{`2(r1wMrc{0A(!2KF9EyD9W%h<>dn{1?b=@Yed&0TKQ?G~Qa;4eCH3ya~O7 z)HbLCaS;jbLjT|J&~FJ&p!+$xz9aq+y8b|b*n#h}e><3=1m+-uKLi^FDSJaB5dF%o z@EGKCG>vgZ&frdz6jwCSb2h!3D+XVHn&x1SKMSD;fgqN)(OL zT$}sm4F3Mj923hAN_)%kXrD_{=Um(%YwPi^<-;4E)JI1&K1T{JZw(i-4;MG_*f_?r zBVm#C;q?m`jI*>U6>`CJfFmA zYhKcoho*$G6j$OAf8YtZ&?b2P{Gyvy?|h3?H2!0CPnTPwLL}jm@o+Fe)l zQIYbMfa1gQK2-$W8xo2ZQ}jqEuwM@wlX~x{9vIbC<6b=qO*a~P_iK7Ty8cPscwUbi zzt%Nq0b^PBLmH!cpHZaAxL?2Zbv*`K*J0h5^UV5<7}yN!*CzGwsIDD`%NZCab#)Rx z%lggehM+yFE5>)!AU=?IhY<=f_#z~t9DEiMhiQ-p99tP&l=@Lf`lTW983upmO2hfu zxTo%r`YlpI(9d{AN?r^x7`(>rI#t}&q3`U_aZk1R-`JrGbFR*REDOb|;Nxjkowwe7 nc};6+A&=j`eEsR?Jj;CE&3VgtYT@lZywV^4cUbl;mJt5~WSU#P literal 0 HcmV?d00001 diff --git a/42sh/obj/lexer_word.o b/42sh/obj/lexer_word.o new file mode 100644 index 0000000000000000000000000000000000000000..1fe43cd13bf29b051fd5add5e442074ecb9cd5ca GIT binary patch literal 3916 zcma)9eQX@X6`$R`*}L@@xU388$X6;(Ns^p9nTj$ z7u)>{@RWPv@_70A`LbiX`Qvo&Q|oDqhwK{v}oZUZe1yxI#S7 zzxjNj9k0I)@5~kA)o-6)b-mLH?{{hgSFR8bht7j+_ph6W6D3&hPh-B^MBCz9s2s;S z>vqFES#pcEJv!86D+Ux^N-56*k16>)@=v+khUd)LGgU;_A7I<9_rbKn+pF+a6rK`= zCB$6NCJ)YAx#W6??d$!q!pkaWws-oY&whq~+?OOxEPtcv{Cd<^)OkwcVq@;X4{-#w zxo`?rbtId+F58~WE&emN@OEEr@virBi;b1sQscec(r*418_STEb1#@;uMoMVyH-{R zx0ron;hac(pWZ&D8`>8}xI=^rQPNR64Qj5AO2-pW{CGo*i1rE&M^tExxpv{d+LkQuab_ z;Y{DR{*>W?PmPXF9ZH>WsDiN&+lu*g|IXT+aBSGs>iN1OhO!4TlcN*hqr->9c=m|6^_Hi@ zRCwNaeu$D=7x{9nF6wr<1XlA|q2ksZbSZAvN_RMd#I7@a^HrQHPYJnPac5Hvw^o{U zonnfBE}u`nc7?foRn#lraa`d0yrwu$I+bJ|f=4*In6Kx(xd6effM>z3Xlt~u#Ji;t zPnsL!YqTz8t{&2ixMkg7-H7xywhJS^3CAVW3)3!bZ-)_Q&$ifb_t$YMr4+hS4R_%K}g&A!ra?2j)Wv(b3&Blhp~^;ckKt;MB#uZ->+LhiN4uJX0bjc95a$ z_nAk7=U$(J7}9nad8&;Ph-UD?)D6BOhH(lsWPA@)8ux*k#si>X;}Ot^@fc{-coMY3 zcnZ`qehnHko(Am<-cccf*|e$C=+G0|KfpApKRo{zPyQDuq`9s1JuwMt>JNW=2cOp~$;nkq zThKZ}X`Q|`DPqw*XnzO`xg|P`<^?oEN5e5R!;uKFBj03u8;Gez=t=auAcWTrbld>8 zUfW~s1OFLSdpYA#w73#2!x^~>Z_)cWWAs-L53;i>d>BkdqP>`X$r=*0EHzkG+V}jDI;BUi++TX^6tRNy8VWAtd5!3F5J^ zk7>vL5GpTBJ|Pj*D5`ID@giS`XJz`&zg@oe-E(LA@2)>s+T7jq+Rj%CYd7k@tXBH& zx!+30PW+~jdi2gm-hXA|RlD5HzrXWq=g(l=-%yz<|3yt=(M*@!sEir6yMlTz>Z7Pn zp?dLwEd#a=9EG8UBp7j}V)&?HL~-0$m`YSJx0KbCQZY_k9||*#R$RLp=tU4B(^L&) zuF{Ip=Tm~hkWh_`mfn9xoowPY+Dc}UH%36}St^CKD@ZIOv5f1vO04E{D`V5^HC!cx=D$2&na z&Vj0x+(Nlg#8=y;M@gg`wQ5@F)1_SlyIVE2+iPj>md2gry&JuAMEc|j!Bd9h!xQ3n z__k;x8`TQ|A%yuux`_I>BLpL%$ymon(lSS6_n?dnO5MC!#vxs8He>?4b6T1+@{8uI z+zjcE_4+y>oV N*T(+}$1QTY{{u2+SN;G1 literal 0 HcmV?d00001 diff --git a/42sh/obj/line_return_toolz.o b/42sh/obj/line_return_toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..ed542b13be4563e24d6b86119369c3c73f3b3964 GIT binary patch literal 5768 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/main.o b/42sh/obj/main.o new file mode 100644 index 0000000000000000000000000000000000000000..90b3f8baf1d8cdda48f5b559a9f1ac21b2cfe99a GIT binary patch literal 5176 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/mark_job_as_running.o b/42sh/obj/mark_job_as_running.o new file mode 100644 index 0000000000000000000000000000000000000000..c4363f82a2c9780526f50da07d6d80e227034513 GIT binary patch literal 4432 zcmb7HYit}>6}~gOGduhA?%GM+rcO85NgYVM&I4*eDGtPC8-i3q(}b#FSdZ81N!Po} z&aCT{R82@!>Kag6Qwdar`lEsf@eomgN~j2tN;IGXBH{-RK?;4OpaxS!aT_V-`)2NJ z?5#t?)t-AE_uTKE`#5**{_4$FFGhq=LIM>i4619Wav+qeK?^iqrj+7-!$a(Y66nAb zqz)QUOw%n*yT0t}w~g$-?UEiyvr-`5vSGvGNZ>@eVKZ79wFR?d{3SJc9U&qoa+|6yseUUx4=)33H`* zc6GeQF70@qw~Af$5ZmW##C-1q@&JBW&Np|N__!`e9UX-gQ;M95SZUrqZ z93nX9OYK)8?=8%{SeUtYp)gCjFAaIVaO~cB(Q*6^^e@bg%ok=wVP@nUM9^@5VLb;c z99w|P2HyqtLVw}t^Y<+*E*54Wdag8`=A|l402&7V$owmhEy8bh1Opa~!m;Ns!ofIj zY6lZAw|n>PAI(jb8jfA7=7t6a2L^NfRt2}l=Al6-1KYO_Y}qKBhLt~98{KTxs&1oJ z$xjv=cbPDlMaOJ3t5v&N9}mv0{GvR%b%2;3y6Xmwkof)%KXMtFEY* zA=K?L)8$?l8#sh!prU=-Rx}h{w_%SqU1X4Jj#r9hQK?nSIjTA0>EvEhx*5?@LH=kqS#Q2z9MOABJ3EZOFbcB*o)~7nPP%5pjNoABQj+Ht9V^$fCg;MX0 zzb}4$;sdyMLYh#e;g(K(UbZh&wGKh6z8cK$g_l655=zD6gb>0=icsp7PAWr4u4o_B zo8ob_#F&)vmM@+FiI%TM-((9EZ7D_JKppEa&<*IFCQv+n6U59aG+mESvzix7=LV07 zeM9}D`A4l~W3fDxAf_+NuF+K-=2Bco6_6p;RkbX}sr}l=8laMY@Tc`FK#%~}I zS$&7vn>MyUa;WvHz1<@EAR4u>{vy~M#kKl8*jGT|f=>JspwK2=N0+A|>eoe|0n-eP z8?5)BItx8=b>wBR?nu@+4}L4mkuC=II<${bTg6Z|L8?+)jZj2PzY}r@WUST8U@@w9 zMy~;j7#gwTL#PVTxRMx#@DeDRP=K2trl%&M8i`K?Y6@yPQ4G`$sND%0>T95A8fq@_ zAjEDgZZrdRDDhaJW}yy?BqJ$+q7fx^5xgS<-!74ifid`~p+vcYhLS!?7V&z_u_dZ# z8{wsINA)cj^q$BMzy@O*jh}#j8|K)%xGc{?J4tO5m*qKVKc=>sJM;%=+{@SiVmJN_ zjr$PGtG(A6F9g~kCSv?8(6*?(eXU)OZB={wg+_Sohp3{b;HE3uDaiUSQJtZl%Mew` zz5qk^d{7DP6^Nberu~Z&QLr2z-@z5}zDwl6^TD_IkBb9ec;>In2k(%B4}e&f_NCt5 z7hjLX|HlUjDprHK2!_IUf+BQq4WB2r`f=h@<^6}?Q-IbaC22YObUHEhr2gCo-9N=1J$&k}zMp^p?1q2rd-C{y9ynqA?(uK@;*Hav{@D{xAAa|R z!6OgEAK5+Lb5*9ap{cG`Cx&j zKr^7Pg1!s-Dd@MLbD#^L6jpm3i09|SpgTa5pd+9;5O)$k!Tsq2M>z_jiC07?2!%HV zO}sj|QYg$>nwZA2BNLk@=DYOb>86RNUYdATXyW0KCT1y3OkQc?eL)ki5ou!L(!@-W zaZ#j+i6n!VlP0F4?8xk=7t>IB@sgs6Csvwx7tzFPPIhF%(Zmdtra9@wbdn~XV|wxO zkS5+-H1Wcbp@tyR#A`-+ot0j^_oRurO)qYj?D)SHF0WCFL_;@H$k*tMF8m3#lY(g=2t}wzn2u zM^>fDhey8YH1bl*+uMfTv)tkwYIA`hZ^}O$E4;(-V8d{H#K~9Pzyv>@eh~H;M0qs}3XhCDfs4vDp1uQs1Q+yEIk*h!**d zmV&0;s70W~AgSV|0V0|;Et bOU{=w^|g|NdHS1@vrh-BpqMMH7~1{|2W+3j literal 0 HcmV?d00001 diff --git a/42sh/obj/move_to_line.o b/42sh/obj/move_to_line.o new file mode 100644 index 0000000000000000000000000000000000000000..8aa53d834aadbd98a84c0c32602c1b84cb4004ca GIT binary patch literal 5008 zcmb7IZ){uD6~E8+eRk}`&Yvb^4WjPI$}*8S?Gl=Sn>A2R50gq2BW)_i9**tWW{z$7 zPm;1kYvP90jUuHCB)&}R_F?N_lLlf4wlSrnq7l+G__9CWDvgO`%0|}@khO^Hcka6{ zwOx0FtKNI=`E!5goO`bCyXl{<|LapbV~UkwK)0bUa|~W|v@f7*#NVbp=`s{oq>ae~ zlTmM!>vTOIoytoFMAsh+j6QagH)lVlK+p(}Vma8v*c~LWu~S6Mrt9HcKAT9zq@Wtl z#Ho||S#u(JiwU%~J`x=(#B_iPiLM_yHuUH>wya*1ab1*>vsHKyS3v5zftO5&YvO%} zk}GSEILjDgS`#lcHkOS}(Ee4%XX2fdFx$mTq)w!1Nj2X4GQJ~pD9|p+_%=`vhasvN zUpADAMRT{}^{K`pbKFsH&bDYxyzx+2gjgM)i6_HjpN$vFWRg)m6&k1TZppV_#%CVU z*3XR3z)O!kB??>}-_Ippr%bQ3O*|1_CKRs5`(qW}FSm)8KbfhS?|&rTTQa`)wuy%y zv4E_O?^XJ-qnY_W*I@8vV^w{_>2c(l*9)o1L@J`|!-vXj*jl ztMH<6{X`bkH5OFg2LtlZE=jz0_ZE(j;2Midl^|Qc-$Y6vR_D7S@m`QoTmT-mBZyC) z$%^=BU&LMLGJZ&;Y)2o3JxMk|UjU`+^awgNvY}3Rl)Ky#%(mY~w9-Gc;<~pq^NCg} zT-8b=t6Fhpm3ijr!d@H1Fgx=}N5|tso_U18w1t_g+CpJwzx zUh+Qi)(Ow9)5I~;pH`aLAcvO&>m&x`hPH5@R{Xa@5T4)L_7^vtp7~>>TRiYF(i9${ zgq>Y0u3EH`U3%LvRfsGAb#ED8FqJ}~72j60Qtw(jwoDk60;}4>VXUds!XxWi*L&K+ z2zhr3?{^vAr{R4euv%Q+gt=I@5LhoRE2Y5t8U??1`OHPE14^?NE&%14R=m#69R9#_ z`hnW&g#tNggA-xZ3ac##04{DY&+`|dIve=lf+9yIh9$))L^#5dQI?9ZA^JXfhlh_I_D)2zxkNhU9q8%p>Ggg&oWw`9d!QFgPv5?t zy`YI-*|c=s^`->346lKHb~Fgfa{+6uj4ag<;)@l54Yf9S8c->@2jv- zJDJrz=yKt1w0jt>akPOLnArbe@&pPwW{lOddx@Y88$^uei_oxy$b32~M|E(@F-5Uj z&P~sV`Az_V%ghUIx533<5!^%M#FoK8tzF_NN9i4hz#pxCXD+VGh* zqTk#k9ql{me|=@ohi^{z-{?Jc#`S}1?{ljvvBe~A7oblN(KlXkQX6zx1Z ziD+j#LD6Q>Nko;9BHDfuQ9a~B+H(@ohD)pem!=&lQ0Q18nmojWP|?iedBM=!qBqal z>}~Yswkc0P%9N=_rLo@bSb{BucqjUWkBtp9e?)A^-S~{qb#-xEnAk6gj$5eHk)eA(!dFvdFHuarzuzeP~CGHIJCO`KC zc}t#mtni&dzT3}t1$mpFch2#9{oJ?2`qYMRzVHBliW;}5IE7O<8Ft3Hui%GH_es7}@;B%_!v61|0$4N zp?ME|Tk>86L+v!W2YR#7L%NI=ALnwO=H>iXs`y8$czP6<+fP*SOvlqF7R~Ep(O3+R zoXJE!u7?ZRoKR#6`Fu1x9u8#;o(xm?(^vfW5Uqq|Hk!K0V}W=Hkq*x)BH~?D=|#wm O=M>NdSAGE@MD{-jlZ#CN literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_dgreat.o b/42sh/obj/parse_dgreat.o new file mode 100644 index 0000000000000000000000000000000000000000..aa3d9954727d5c7b74c1e1ecab202ef8eb06ca26 GIT binary patch literal 4616 zcmb7IeQX>@6`#HH?%ny4^ZDD&r(5S!O?*z`w1L`1^t@+%X@7DGu=RLE# zm#-#iB#V!e5lV&Hs{a%eK@e0F2|`d+T7?pnh9U?;Livv%C`v^G0ir6RRn6}=J8Pe> zDG4LLdGmhr=FOYg_h#n&+y7kuFd~E&7N|fqph+E7I|$_-&@F-=Q?|zaj#C_i63DPA zNOc5JOw+Rtdw$!OAMYQ2d`=Epo9P4!?Qz;)CxwU+s1Ya0f?}FEYos)0x}GB;)7`;&*i)ZF+}U1cam47|Tp`YH-Ki^()WWW5t)&6Cby%oyd zzwgqX^lvhgt+w}-DtoO9l;Js6wST^U-jT`MuJ@g&}5r68NSJ|`1%~1zm*B@Y- z^Us5m%HB3*FNuRhg}6lUdB#s?!TO#R?@blkGu&4 zB+@Izc}=9JZdI9h(KmsChojffhN0tE%8x|BFzo37>-D=9`V6j>w_}3-Yk_am8?lu0 z>GDMY=an6KSEQ%anB#N0dodLHZz#R~8}x7LJW%e$MG0exoU7dbv+4d1(o+`(KmUt9 z9u@6-_B`=u`$5Zb^F_OTOJ`SSSNoc50q5KLEnN^gyEk@jSSws7o0`lxuI2d5%#Ar# z#_P7HFl`DKbJ{$Z*<3nR8$%wZ+jx+dcreDJjb$xt9ahCCPcPqdzS5)ZvH5G zP?;X@l#GL9ks#zk(H?6r*=~N!wsP$>SFlDs;pE50J>hy8hqeoOOyT-W85K6K&H`|| zn6sb*FJ#M|Z868uA(@;;R-7W2@iP7p*(z~}Y&ljg@1V!$uHv@H7K*MV4i%joIwdRl zEIXcY#Ar^qymLuj@c`#69b~WP4>YgX+D?~W)P&|%oGwK8tA}wIP2_d45S~wAp(;i+6 z3!%HKk-`?_ZY>i%-ddp`UPm(fhf$QtA{K~sWGFj*ChOn@F?(zUfcC_vp`g`ir^&*h zXD0Vc`Fp4#jbD(`eJ~Aa-`lfNP3W27cPP~t(FbYp5V+RhVg^X*QSzb94AD8UFgV)qXy<8Ee@Ca$7`+A7W^9Uu0DYSZo4J4`Xq}_<02Ux3KSVP^u~koi z>Cwo~!R{r}9KRndX{?L!liVcKNeebwHnz`5QF0-TQ0jstA~O)TQne}iFj&%98QTqh znl7!T{-c4kCe%?AdkoS>j$SLh=|yuGkkJx1!J@`;sUhv(%h3md(f4sSV+{KGC6xJ~p80J3wMF0g%gqfpe^6Zd>>n;He??EdwP=&Q z^wyi*Cz1;eo*h{8?xmNv>Tmr%+qAg+w|^eH{$cHjpIlw_kJpZEe!uJFSL2`g)`2tM z_}Asd+4g6TG1TJNlx3g|pdFwmK@8F3pyxr~2fYTm4Ei(ZJx~k|F9D@M+d)I1anMsB zW&>0N)1w6(g@H|ok*=Wo(ImvEZ3Rc6GlZB5Trdh_iV#Ch4P<-~V#uk1j2S`0yc~)DNZ~Jm<3L)^pv7LUf6&K`l;W!t zU#2)1?HOkkM_bgfQe_c%g(%ecpj#-rvofF1mHK?KRLYN3$-=CR1!0cj+37jC(xhx= jaychEq1s+CFF}L>{$Wzck4i}nN6hf$h96;g%ZmR3_@1-* literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_dless.o b/42sh/obj/parse_dless.o new file mode 100644 index 0000000000000000000000000000000000000000..8828a2d327a3b4c86e16a33a485a1814a3653fb9 GIT binary patch literal 4540 zcma)AZERE589vwcy|&}TalTX15U+s(64-&zHd{kS80k#PB*q$wwpDkIeUlg*JN3PW zz@RJ2HqFb#iYC@|`_T%mXdh}P?SpCRhZyS=s!l3WrH)?{Qa6ohps@)dG^%FLbMCo` z z{>0GkN4;+0@jR#aer_ywc@3Y}p!WFk#f*e&`F^>~TZnBksA>kW%){eLkBybA1LR*G zpU3xoMRB)$xx#pnLu&a_e1RzER1_Cge3$V2)a$!#e5G_@!m>ZgS6B1AeyHBFJBzGu z%QuzI$PjDe^Z3;35O?NFPfzD9vyh%*cpq7BM8!9#0{YP%<8%3nWBcR_u8r@rif@(T z`}1A$$@r$znOeU6HGH@3lFvCbecSbZSMeQJPravJ1-hha-iNzhY&uC<8((+W9q6t1 z<>(TTYSr*%ic?spW0ngCbA_yF?%ZBIBBl7^3cLtDnUYQJxdOO`&zdyHOL)8P0MlH4 z9!x5}t%~oa$ER#O&Pmmj%G+=GTtPC{uJPJ&JGMttmA|ECuk1=yj$TVu%9m4>(Mzeh(QB!>X8u)1 zFT%Q*n)d}jg(f*Y-m>jPMkGgp*~y86#eLaya`Ps8 zQb<47LF5XKNZXEZ%rU2AS;AI2=U7uBQ!F@E!7=UJVf3If9ey{`C2R-@!p;{96Y+Av z&P^1oY@Bp?Yupi~+{C0KY$shJcRq(HY*#5#QQ+q>54=#!TJS*>vSlx}xR22xm7GRa zoFbcc((Vx1DszZzm8@*8gdSJhN*6>XU$iZ8uvp5XQ>wD7GLz|&7|#lu-&KlJ+|N0S z`>g^ZR+{T)ytIYZq^*v&=>BNT=!!OJ&B#Ar0${VYway>?ROI2vn))3rpGJcDb>UOc zjuw2DHZL>vRl*;ABoe`nG8zRPg6&W)1ug+Cnm-zekWYwk1AKS1&=|n}tm9^mbW}Nr zH?U#d11H1{A?n3?DwJVY$=bUmEFMiBpzYZU2dz;%MdkOMn4XmOPf^2~JSVODKn?3F z?=M;b--*3{r`1$MAFN$vXsy}C46stiX|>Q2dX`ndcm>M%6{_GHsPYhBZ-_UgxUV^U z1bTr`tFKptkD*Q`7|`=s6B7urk<==1DaDU)EoO z3Wf~MWUK*ftVb1m2-SH&`aPj{pgQ&D@O#jlSYI}=E+_sA@O>Dfb7Em|wBeBFYpAZE z(`X6Zfa)~*!wmPwba;RZSb^3VS`T6YBKQk5b($S|J)5E6@1c5#v_;lI#f>b0ApCh)n>c!% zjAjd(djJ{jktd--MvwH6{GZ_HoHzPD&Sp%&U(a%YW=N+Q0Kr*QhX4j24IP8(3_c>C z!5Q{#B@3Sc-Gf7Xi4|C<5MOW`pXK5c2{z-@{lZWRy?laFu!CfAZTCKK`1$8!Ol+C0 z&BvM}78nER40mKwiJ#p8ug zJ1P|fPdP%TAPV9JCv*mt8pxB15Gw_7XA$ByQv?5B#s-m%%sP@(6?LFX?kadOk+s9S zg*Fq@V)en$v+&|f_d;fFkZfVW`yhy+XzZK5&oroOxEO=4Pn?FQrrnA*pw>7CL|eLh z;5w1Xm$SIgC(CvzsjOtKf8fF8h<(UT$`8AZnx>b-X;2Ri>OSK!y#ZF(DC;3;K*nC( zZ%pWQuL2y=V*m#AMz}>`wGHZBBYFfFfHnYzBc0d1s`ta{8PR>Agx){s$lapSJ)2 literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_great.o b/42sh/obj/parse_great.o new file mode 100644 index 0000000000000000000000000000000000000000..3f64649e9de6229ad08e84231a9abee4a26e6b02 GIT binary patch literal 4616 zcma)AZEO_B8J@lK?%w&#`TU6k0lTpspn^L-14)h)Q%ny-C6~qowTYJV-P%4l?ws8{ zz6uGEm8vIKC{acEmsY4jN~@+)OQ@oJh|*LLB~p+gMf_@0r5{uUl^}#r6NNs{?5sa7 zq%iV3@4U~v^US-m@668mga2Or!W2Ra3sjIg$heNG3xaYVJT+fk^Wo>$* zZ~Nw;TLe5O6yKkWsji?A3L4Y_U$LB%a4p~av%H0PGBR_tY|rut__D*pj=hikv*Qc+ zeyV8hm9J15DRW3I-!NYw$~hIqbroN0lfRDWx?_A!wlr$HU*_wnS+CRTJW+MS zvpE@JZF~WrdL82KeA)5wqHUG3dl}xBp0`)UmsSD2cGviPzVh&H`GRZX%PPJe#rNqw z^2zwdv$6hW>92^7>w=?4h*-VkXYd`6 zP4MTrb{d+;7t>@AGP7_Bih5-;yYAW^%2fZJnYc2TsUEqOsa7s$szV=VCWo$NCY$+J z9l8YTQs#V!0ilV`=FG&QglK%88F9Yypcp%exlmia6hvty>Nwxq4-C#S-Bpac##})~I7=y<|?L zhJd-L(f#G!`D|+SN_R|1Ki@$VN}kBNp75+;&#`UcDqZmGy&_jGd3MRO+`=LBpt3xE zQL+xUiUeU7%caq-O35vZmh5~N>5BG>yW!xz!a{p6saij!&wAgD(7wZ zAPU)Xr&`?M=#WZIBP&jk&w5#Zh-_6jM7A6|UvSXlYgg%#$Q8@3E%uk4JUXSS_$oJ+ zb;L+sxcuT$yz(B-S>9up5V6vHe#T2%XiZvgyhRVk6UO{_lh%yP3?%_JYa8mr@ke5h z#uhbfY54~7Hmr+~g0{5agSC2=srQI*{IOUJd(CJRbTHeYdWo*RjNhR$ z-$qr0gt{ZVLv@9kqlcky6KV~0i|BJ`@yrRe!6o{87z=2%hq@EdHv?;KsJlbdn=$kp z16H@tY)A7rn&Bt)m!Zsv!I_LjfQ_Z7%(bX40MhS^d;ryeK`2RvB3dOZpOK>VG^}A-%V7!gHq3|V+8XJDN*KM-EzliB;qqSaxJG;#B9b%{N26`dbxs9u!Cgr zZU3`#{p%klnAkE~p_9JLtg(b@$KFPn$$vK=ejeK(t#m};M_R+DFD!K2+4*@y9zyCM zSq!S`%VumzVhy?kLvGzm}{M1{r9JbuYOVg%xfP%_@B29ula2G(I3UW_wzlcescZd z{9M=Z!?(c8Y+ndj0oeq30>TtM0yzQsCFCv0MaUD7E9uo@Uej>yz zrXU_Egt+#Ki^mJ0c2p_|o^pgvLKMUePUs9OHIOG2Ayx|F&LYHZrUw4Mj5U#s%sP@x z6?L3T<|z=3AdR&{+l6)@p(Ps3$P4h|JoiI(-6YlR+rj5R^u-fD41IG>aM#-h-;g*3 zPfhzQJ_ohNIUw5f%>$Q-T(OeJML$(>os_atg;nbwnvJ*z-IV;SyZBYkOUu-41%&b* zk{n|q_&#W3_o@2^j5@q%*YiF6E05nU+6QdMZ~D2808zq?njWi<^y&4+fZmkW&9oje zw(4_WMU9Fcfd*vk)WgQ8UjGKb0X+dAtvA9g4y!G#&mYiZY4~o{n*q#4_e;{h^9{X+ zzV+J6>aNuCawRBNv18{{c){vK#;a literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_greatand.o b/42sh/obj/parse_greatand.o new file mode 100644 index 0000000000000000000000000000000000000000..ea85f5b23293978f9af85e523137d490dabea37f GIT binary patch literal 4508 zcmb7Idu$v>8J|6S_wIc5`TU6OJe(eJ^O9npouo}@ozxC?xwt`;61RaAZO?aW`;zmX z*4%&W@-F{a=yxMc!GUU z0v(uwR7)d@X?oVA=gYpnw}0Q>>v|x)tpwt6*u4oK2g<{N54maPtf7e!)Abx_HqE~K zdhfY&-X*~K9w&uz$ng1sIlQZj`dU9cfm*)cZqm7bP}>WzIRl91oJ%-pWoL&DBIs` zaSZeH%nAE&-p-lkp1#15JQ4M^q|d}Nz++1O4Ed+_ybRA8HHRJSuHV5l7vBe+3a>}u z%_uyj3QT`AkjaDdR><2Dv3$Pc3U6x6g! zoZE0WXkpR;`>wSDgc@=|HM8f_FYJfi4SK>Y|4J!dcgBlpMb@0uy~ z|Guv@lb$-?^R?gf@@yyf?78;~$wQXo=8JZ6dq-zSXL3WffD5U8dnc5Rt(!Z#HVW6t zrp7alYdJnMM;t5TW$au>R-^`Dc2gsViwAO<)Yi@JsF1GnJ|b^>BIA0(Glx9KvV^O6 z-m}I;wrG2n?U`==C|XdN9uq0!Aj72*dZB2KBqwY)KVn#Gi~%p_}5@-X;~IafhCMh(a(ZkrKy7m4kR1PXQZedhQ`G-I-!a1 z9Mn7L+8FsfSi)Ev{UZ1&hP0mkUkbDhp|;BCeb6?u_eL4b4v6=|WHiOHU=iac=^^ny z!`|FdiM58K86)u5xekVANT*2{!c(ZY4&gf^C&606JLMXjVOtMTxCV3&_i_`z1??2# z3-97u&aX(g9*O$p-ZWad;gWEIWbt+X+x}Mik-svrWwwHM_%4h3(p27e4rL+!r}^-M z#@oJ;jwlr%O&H)ho{IdSArC>7AY!xdwZ+dF$HtdW;6w}W@qFv)!LOg*Uw3)MkKVl6 zb@jPo>(g(Xzv)+c>a`VH?AF;=x1LB;A9`_M!+XDb{&xMf*Rzc)OYi>k*p-i}PWADaa(vuHJ_3)BbV)^cl(gT4#;3Fs{7BIxg+ zYoI6sUIj{lc7X;#qo4;tJPmLWJRVKpC`@dcnCZ&I6s3t-+YFAvyr+pNzzL%;r)XlT zsgBGqnwWB`BRkN z>nq?kU_2M9#tOcU$S{%iml+}WBjC6^cBoX`fyKcFi*^$nE75)zI4+p>ZQxiWBc=E{ z#aAm1Cfm;_&Ube$Is}E6(*jlCVqc{5a$VSdTba(bh3$OrFVy?WbYTwT?dUn#QAdiI tT+YdkjR)oeURddHMzY=1HQ!YO9*dMb8*Uu{{ko literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_less.o b/42sh/obj/parse_less.o new file mode 100644 index 0000000000000000000000000000000000000000..7a14b1466f52f82509b169dbefdf17d1e3d0164f GIT binary patch literal 4604 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 af=B`UizJsFm6jZgeBrGPKf7>`Mfop9A+8<( literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_lessand.o b/42sh/obj/parse_lessand.o new file mode 100644 index 0000000000000000000000000000000000000000..2d892b98bff1714d2cdd12bd19cfae54870b48b3 GIT binary patch literal 4508 zcmb7Idu$v>8J|6S_wIatoFB2Bhf@6ifAL#mKM}VL<%6pUlxxxsI3SnM5dK$e!tmS z*LO{+8Tp&cP4^@a%#Fv)%b@3(> zNf}~gd_JDqjuqe~3Wcm?<`R<(?<4d5y^612g=2kUd>&qY?5Nz}%J>>pe%z?=zP~~| z8DAlhti;<@f%mHw;<+aa*PZXZ3h!HL)&IUiJRCX+SsCA3DnI=Bo~U2iS6`^u-(-Fg z^K{K(?nEY+GR*@+z9V@w>}j1I6Hfq-DftuRpW5>ZJS%OE+t^*NgK3uE2fYe!ufm&C zcuEzRe%hDG{qvU1|jB8Db zWIpFwIoEVDr_h4RbeTp88~H7b(6jm6L}xMQWF~S}s*`Y8YupufW+Lqh$4%J8&So%# z<1qy)a{St5VbA4L7JLwel$<4r#}W;a$zf#0AyNr9;dPNxkzJ%@Td9nV7LPlM=R`7_ zcPw!tZ>P{GSznne`lzwCzENvJ z3Iuv!Y|{4DRMp=Sxizx6c7OAyYjLu55m2W6&G^9VEK~IxMOFQtNCaoYXb^M=wt{&O zI6loZ9UkKr7&w?+~)Dq|t;Rhk{jtH!ROZXR1I;gb< zx}xDZUuz3=wTqfy1TBxkR=qyh3h}!TtG=K!{$R-9NXBNEjcurcH>0`$lfF8139Maj z3jYb51M6i2>vG^f!+sQ9bPg;G_BLGNJb>y78ja@AdtmLxj&L~8=}|B}6#OMv7cHwI-C$8;TbS@yY3dZ*dUT7k?2z7w2 zEumqssIf782ly;Q+D!k?`P!C1S9N$4+IIHdDx(>IcmyV+HIe`e88=7|iT^3~p7eWf z;AqAK{Pi?DXohr}f+0AK>I{s*+d>b5wFmdeHF%zFdx^p|pnGtToA^y=vxqOak88QK zBEcryqjwF)(JDU*THW#2`V<@lfE!_OJ-`W8B( z@FT4W16;>Lk)JcScHDcQ2N^!7hbzxzSW{m;#B`o~MB zcfH?x_8XBSPaHe71g4(!O+9-;yCL-Kf6Y##YO*f zAO`EBUkiMu&O3BM@E!?>AHh@8-mkAit#J&H_Tj?=?}%i!n8L$6R&?x`(qfq%yKgGD zI47N${GvO!|M_O|Um|#{08&0edeTe<&kHinpL%RSsTO=Qcpl!H$CIF~>ovxR-q^1P`}KfvyIu#a#whAx@Myno^y^Kqwm}Px=!UCrgtir0$A}*I zs=jsvO?&ipFw~9c8$#dHtE409&4(!mjQ#p*v^K!29lUKsUyp(M^?Ku8IaW)*z6Ne1 z##4b>ETFiA&@hwk7a1b>SHN+744eYTDhyz8u*IU=1jkZz-wuu|ru$~E-H0i^N%8fH zgR#HyoZ<(;8({DYucu|Iz|~%+Z>!L6snFSXd4In5m+M0nx-iG_dUWk%+LmG>m9mqQ p1>c;-8;c$ZH=mILwif@j$Y#c+CifS4z_%EF3E_2WmZgjk{{?8=q09gP literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_separator.o b/42sh/obj/parse_separator.o new file mode 100644 index 0000000000000000000000000000000000000000..0635d658b93f4526996606fe5d8633856389c899 GIT binary patch literal 4300 zcma)9ZEPIH8J<0Rckg`m`FwV4Cn3(YHjuRB&LP3I$|bdFLN6v%lwwFrs_pr1?YnTk zJ9hW-L6Zo{ZIx3{3*u8kNc<@IffSk_v{hB1rZoLTDprdMzp6<6P%1!th!(4;q|Y-u zYx|B+Jn}p5ywAMz%*^fk&WvCF&zm2bLTGIQ6{HxkYi8+ z8=QjDO%TPhJo~8Uw|)DLy$9}Cv4hqb)gT|Iy$AwH-7fAAe5fs}V9(U&EZ1`+Y*~Bm zn!NqyWtV{G32q8y%<%Q9I<%_2%vY}FCEUulyUAOKKX7x+rO6{$Uv6f`u@7^-&Fc&J z9#b4^9Yti7!6v>`igw> zxx8Fr>-qvd^*PqSm#fvvwpGc^b9o=xZ$qswqn5M&6W8bSRc8*#58S%GUn#y3#W%f1 zKDoYHF5k-c&lbL8Yvl8e)vmbTE)~DuQ@{FCYve=HNy^ssJ*na&*zad!%ilFhp>(sleO7$1`OM;!l0^7CyUZ%{utH{s7BrJ`XM`z6r%w zQ+&!4*nTl+QwRB0E>$FB>wc3F-#euib58Ad^kde?-vwPlMEwJfiywrH1LUVY1cS}~?W@5xwx_d=zh@WT7|k|LEM*(@x3i7uOWD(u1pgY-7hx?eTd%&w9cs%@sZ2 zdO3&OLR3|eZ2_PolT}bBHCiRqftb+(Jkm;_Cxs; zLWFy@wpcVuJ|QAq@ZHx-V;s5C!5cq1u*yN4L-P2^AC}qIDXwDxqU`gPtb-eS`Ira* z?aqU6(7LrpsMTmX)!sg2a?ekp*>+Gr3uT54&Sb0yYz(0?x1w4Eq^}RZ3N@%FB7cGA#Cp@j zx}5kQzz<@G&WVM=(Z(!!?nU)4bQ(8@IsKrqJE8;n0Uai|fz4?BnARjWz=8Zljho10 z{t#vdI}>^jlpZ#IMm0i6GkybQ{t?v-4IL=!uK=BFu@9?Ibe1H z{Sy7wMZW?SH?ND_4Lw2U6o-Bv)^oJdv>t)Qm71flgn0`(_zlgza0x1IULE0Pxq9G|)T=$n1}P2P$lCmL8J-Qyl$3F#6M+&0q%(%dbvm*$4zV zBa3hQxA9`}LY$#2;}bgNyEKg@)H?Pu%4+^k^5GT4qq~oeD7;uTVLfT-2*`m3-5u_rZdy`p1Hf{(uQaL_TKjQ&Q>=)`sWLqf2yZn+OVUtY3a8+ zPsTeBKR>nQjo&?YqyEyL@_ic{ufKEr%?~?H{^;U0Z@qB*h7U&XKNbD@)AyWt_}#^g z`Q)R=m%tmvkHS#i4%q{_3vvi@0`fTIS;z~JMaW+v|As`c;Hw~M$W4%GND=Za2(tk$ zlCvKgg>grSfv6w`5+TOc0DXjDSQ28Sa>FS6@`M-=Y9OP45CcOEWZn>BA}KE>0~}=j z0AiG@9%dJv8G~w;9yAFti$UOWWU!2cJqCZds1hY@~J zhc_vjN)W=@eYXqkXk3eTn&Ai499PlvebQXM931{)G8X@C=!?PgS9}J(A@M96HSL2~ z7ix`jK(v*I2Hp($a=n0ubh_?3X=SBLJI2SF5%-vzmKV5-|9bgGS$TKhaRO5L`lcy;B%_C>;1vFvJ_vkZN*@A}f#X8pxB-Kw zjI*Im{5C>7%t?jV#-PF`w#`Cg&ATjUbniN#`akE}Mq24>lpazVivGq=ltx=#f5cf5 z5Mn`5;{sFO_^bQJ(6ibWR?F`%tXVvd3I!)WUz2V8%=n+bT$+`Z^u{;g%MAZV;9V%h F{{T>rdI$gj literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_subshell.o b/42sh/obj/parse_subshell.o new file mode 100644 index 0000000000000000000000000000000000000000..90ea1422b51e395c5555ae9cac4df8f303be6893 GIT binary patch literal 4644 zcmb7IeQX>@6`wtO_wIcDIDf@X(0s=*%MSv73w1F0aNCYb44TEnZqJ+zTp-=6C>{Yz_7W(iP)# zv(BXLeHiccnjCs55#UwTSHzpi=46Pq@r8J5JH*xTva_>A+j6oq4DUnpeM7}Jr~-QV zs__MQrSWOG!L{+NR{613;a$2$JQ?3?Hdl*xXANFYW7Wz9&6@QK;`1M#z2bZ)72emC z*In0$heIqOYvcQu%HMFluQgvSzFcVr^YpEMC}zGg#Pz^1h;V)ckqPtg$)s8NrE+NsdOMZT z+va>3Mw|Ip89QrMevJUnRz`j!%{QDh51$(P;>&$GG0bzH+Ogxlds6#s*DI8q)IhpF z-Jj~s6>(Yh4fI1uZ@M|XVZHF&TxK@wdbS%d%PWt2Q+BbK&WX$z)Lv$Ce`z|O&1|~a zn-bD=(MA*;Ut~RB_|~}Z+P3f%FZlM1$dw%5c6`e#96%2$%V&~hU1YyhLN1n^$yC|# z3X_hVPZ6$YPx!(uOiua2^Rq6oivr{Do-Ov5+&nrZD+eq$m375LUU>Y7lKj#`w!={+ z_d?DU&|0;1&Fy+!bJAGR+^V%9zawcV+q9vEy5>(OZcW_SxV`;$+)8!2h$z+eb|mDc zC8EAo)HUChNZ{NUErJHoWncjWj#j%?*PKWYPl$LEY`3>l7{DoP;E_#qRT+rm$oSw| ziOF-_C~ji9p_l=ab@;XjETIY&+I6kTa@Y} zNA{ej)S5*fq+O4IYi%}1(5G3|8%M#6=TJqDqv9(i(i1xXmWs5+9|ylcRY#;p#J`Nz zJCr(M5FE{?(f>kbxb>@|oU;sdxBh)-qA`Ob8OxzIR-uZn zNA+8%^yRVFz`FIe_@BTzu)btqT@L&v^t<7rb6{c6+n6BEUQ~?FXpj8|tlQWaH=yF% z%D9CSNTKySrOlXth<+Q*1jR0$iK54%KLT4vO=ltlmNagPe+vAsRHcdFqO}LhXJjbt zhqRMYKO_;o0P%L3cEs)iOB(Cqp8@AG7&p@XbD`85>8X$34{0sE*UM-!XmVP{vP2Fn zW~`PL5`PW7OQH8CIGXVQ?Dc6nXofVJh9X)<^(82y+hP^4?&xiD4W4J;5K*`WG>;B* z6OTY*e9=3&mWwMAZ9{5)e%M5>{6vt4U-Cc~eCOA^_=_`4WtpGgX%I`bFXdX_ODG@5 zh95WH&>aLr;U`-Y2Dpw-2|sSgLr^`4*erZ`@zch!@f8#}!@~b+Vdb&0y~iGGJ$K!6 zZ@#aTi z$6j2x;U6as-tvC`p|2#qaP*;LPrh?@MK1O9!Hd9U7BQ7KfVP6TwcMIVLC=D|2RZ>d z3wi_e9w?50uLp78?*NT~ra+H?cp6|LF_(d(FtMp(rYjXwlqzOz7dQ&@o~pg5IAIj# z6je+$<;eV^ibE?$<_uL#B4x!%L6YYODyER?VP?^o$)-l(0iud$ijNW$7eo~=7v;#) zK@|^_Qt`x7#bd0nc>7SrYeK1bo~XKT*@{;RRlI2w7Oxkoc;l!bc*{}6Bv&dPaH@C{ zC`a~E#YI*sZXZ=VX3FvZWo#7L$gG1$bx|^bmXt7&wFCDGZ7!)L8>6vrz=|VX4?6lD z!B9f4;pXHMkvp5z^IC3dM0^*$n)ZHk6KaiPfV9hx4ZIw3#d01G^-S4wGfK)7HV$lF zs_`E7GV&YliJHd;9w@++?~e2ovmr1;8%I#RFCf$lJ`)0q;Gq+=i}sxD2F)PhgXz?@ zXnJEq>^pkG7}eVb_1GXRxJw5VVW{ literal 0 HcmV?d00001 diff --git a/42sh/obj/parse_word.o b/42sh/obj/parse_word.o new file mode 100644 index 0000000000000000000000000000000000000000..22a0503cff60c484e7ce242fd8b3aec0c2722f98 GIT binary patch literal 4296 zcma)9ZERat89vwcz1NQO;W%lMu3v_Q0nzds?w~l?2ICbpo z-s^tRj-g7^taf8l+4#W^il$Z5B&KR?KL(m8q8gwHQHctH#E+tFsDe(cQw0$dEzfiA zxvuSXG)I2#`*Gg$oUivi=lJ*k`S7|agccU~fFhuI9iJ2kWhrQZ#?L4lTl|XW*ajug zfhkBGG@@9RXCLx>+1GdP+`Idx9!Nh_0`b`Gc>qZ0h0hnvuf3!UL+opPC_=1?2iiMIyY@Tl-=6m<606eYc+x;2i^44umy zKR@`bUyU*$Q{&?ge=T*ucHBa_l-fElI53!6mn-5F*|2pG%D|?(2Zq)Q*U6>lvyN*! zKC=#%o%}#fq$gl<)6)mbv-xa#)7|cjkZ!VG6iS}Rx}NZ?Nzbuu;VNG6>^YGumpr@V zS#IG7YVff=e%ZYJx9sl0G`tC76&e!Ik8C3geP70^1hHSJw`xIJMkYwy&O2)NJyj7e>zCEWg{ z_`UJ9t-HGJZ$%pFBBV^ax^Nq8YEbpnBHVsoJdQv%Is_fe9xxw5h-jA+yL9CVgr2cVK;bGIkN19qSDp>$2m&!2TGT=CLqioLkv^x)my;ysQFW{6|^jguLVmO zcg2Rl|3=dQ5oRIn!}1wvYGr7@nc3Klh1Ne_wtIkuh-T7RCs8IQnUpJW5gkWRBOm=$~u!)QJb z{VrIad7oT^S6DYf6s`f?%~5V*6&lB9Zs%IoR>Vx=jQqxE2DS3cCP&W5;@kX(2Fni69uPz280ZI}S3z%sE`Z(x{Rddrc9@l7f%|6 z#p8uuJaN<@CY6anu1rjDdhsMs4NodBo^Hy-%%T_5Of~#}5o;nE8Fgq;SJVkkoQ4v_ zv3BGkp&d$SiB>cE9K6`ka!}&m#JX`KxB;lFKsxo97<9bfcg-Cuxkho-l-L`U_wF{USn_2@99uj(z(I)`<0SPwyK zgSN`3=wARI9MiXq>D^;`Xs@0elg?diI;Jm$^O)XYL?6-nVCfyxSHd!E{3v8#LB#ja zAx6F7FgVVFZ7Qm^?T3yTY#0Z};5Tdm$3%^^;&&>(QgJX@|GMHs;Jo*OLa|O2d^6VT z%bN6UP5PQ9U073iY31`yZf;)6SYG_CFBYbxCf68y!M6|oD&Re6-P|+j!FLkc16KSG DZcuCG literal 0 HcmV?d00001 diff --git a/42sh/obj/print_and_del.o b/42sh/obj/print_and_del.o new file mode 100644 index 0000000000000000000000000000000000000000..69c97fe1643b1db60f26465c3e96695764edf553 GIT binary patch literal 4448 zcmb_gU2Gdw7QQp~oj5UUAl37Vp~*YsNlb zC0=HFx?&xr_3Mn!#XBtHTPvUoEYQ-tV^&&8ABv6b;M<#N$7N|_l7?}mJTE8}yI=!+}H=itpw z9}yeujc-Wahs`q0YpcW)@s%^C7w-WN-lpD_*3XI0K3-lnUsK|pmoN{m5)YSHKzidF z(HtN*U#)MY_{`ZEA*YZ&|XwtGA#@eWC00(f*JFXQ~lqv<&>R^B*V!R|T^ z-gIrXC$6v8PdV zq})I<2x;lhfxZPwtbq=Z1v{U z6}@?16T;?HOK*l-*QE`0`?=E}IR;_9S!?OO^}1PG4E@2sqke^*p1c%#{&oS80tApI zVWH^eBrMhj>Q{RvLa$wzI95bhEHwFb9 zYlxL3EeQs`q3KOZVVn#d@yokZ?4LA|x)dN2og!&2f&>N(n7%dDYJAlAn`?+Er!MOa z6@f+$o)2w0iG0}d@vaadO|RE4Afv=G@$Lt#JExP&PZ6(~WqYV%M)vJHFc~>&RjP&A zQe-@qh$SLh%p%HsbUXnjHo7CW{pYM&G2?VsqE@zG<7YWu#*edYWN@>yRxxI>_*4}b z@!YZ5BiT%RbVoJM4%>#XqCvG*E>~y(Yeql9Wz@8KWI64>6Kzo0%`TySEp2vuiyh4ggj?MXzfDg3>acIhc z0)2GZ-7uhOM&PZ=JROJA@f|SuVl+g~9(GHX`fx-uY!Z+Zf&BI$$ zv{NA5&q>=ghR?6S`-Z#rVE8JA>NDEgAYB0zqhIdPAr)ngN*%UFG?FPyW2gs9Bq08i z57%3BpZ>zyIXw0q{btZBGK+o)o%AtuYGNTkX(_3RltBM1xbNpAA8O0Z>BhAh8>({D z*Af^SsWw3G8JYgdF_`Kp6=GdmSKrLq&SRFrGMHTWu&6T0Fpc`RP5R^o+{S*&HPcwy)G zSf`|Vyc##;d(2xMf#;}Vc{&@iyn&%Z!n*0Wh~^6^+}{(}&WCFJHZ9E~Nj{R~ccpoE zlKYl5a`#Xp(PA^Brlfe#XPv$9w?h zwxpM(+sq+9V%9XffW6N&QeGDFsOE6W)z^ ze_%chRuttB!jg;g^aUKwg6AQXfG%(dGs1&*qdkz6!j~52^6YzUx50-zYmI+ zUepF9zo$XT?@>_l8wVx7ouK5m4V3)Wfs!8;Df0UbD9(0t8)!G^KS5!l{YBEIq;*N} zku)yph@``kPDmP&6hz>?DCw_3Lzuw5r*!X#ciWug7o;E$+NKu8x1E2&qkqoBzwY55 z_V8g3PuT7F%)pzWV$IARwT!|{xrQf#5M+w@%ezhDJTyp`vutD9%H{BgI99OphFPmr xg%g}@t1@F|$_`J4CH%c3{wF}5u&h{k)X?*Uc<0SRBe;t93XSOjBV{F%{U5`O+s*(0 literal 0 HcmV?d00001 diff --git a/42sh/obj/process_cmp_pid.o b/42sh/obj/process_cmp_pid.o new file mode 100644 index 0000000000000000000000000000000000000000..a7d27a7644b45b631b801ad7b1d7ac863db39997 GIT binary patch literal 3152 zcma)8U2GIp6uvXNGo9|V+bzXf!jDU~{Drbx3SuKfsRG$zH3a!FF*un{ciS!7-DPLC z6ru(aV;~rV5)+;bF_8y-fryET4FbSmxIZ z5JGLyn|S4_`b zTX4M}O1xL(20p$>JRCY7GMZmZo`-O~7ZUdplUgJ{r#gdmdRC)yyi}R6tg&6KGuBJI zv~+$3Jf^&&Be++fM(_$#R_csqli#g7tCngVS-73!4XeNZk{e8lK_ z&q%yq<)l6Ukoq5xANM8205jMaCf^4hknuYpm-1)uK5#3sL}8z|`WK@g%%A-&fA+Oo z`Lm6i`E!k1=l1kL+}x-ixjw=Jkscd6^n7}@Po>7cgi@$n}!ErWVa4w zH*XMb-N{W?$2U3EidV0ebG3TaDY&lX%+#z}X(H>0+(8#0xyj?z=?Ocxb;z9(kswj3 zc%mjeOZtV|)a+T|Oxbl&v%M)%m@7C%gas1l0&ICKiCssp@Pobyye&h}iW8*@hHAqT zu4j7{zzw}u zI6j~sgZFo+vB%;!_@kk50YcYCKxsWaxgW5t#Fx6gQwb{Ez<>Gxi}gxF8OUx9xD{|V*?cplb(hr!Q*xtkDzo7@Wt zVu9#l#iZ-BbW!49khs%~;^xbjfkmQ=yDulQE$L#lWE3k!7n?;!v5s`Hywb(~rE3-} zU2G(}*d7w=|0>Xi-Q`YVMnLjd5n>*NB~ec97s^~pNp-Xt=jAt6AoAkvpdjI~6eG#h zo9eTjK?4c#3u099DMm%PlkCK(@Ec$ya<}4|bjpnhTwS?_ThB==SK2bXZNA4n5eb1K zXUPXYa`)nb#;16rW~bOLepH|aGoYi}nmW2ExMtz^U%K|@#S`mNv_#@_tyABtE#0AY o@6~V%s92DAB3O`~lX9(;tE7Zr7W$V`as#?JgcQC9;j;q&f3I|@u>b%7 literal 0 HcmV?d00001 diff --git a/42sh/obj/process_format.o b/42sh/obj/process_format.o new file mode 100644 index 0000000000000000000000000000000000000000..208d854eb3bf2908fbf013045f5c4a6d3da1c4bc GIT binary patch literal 5316 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 IqyWeM2hJ3BbN~PV literal 0 HcmV?d00001 diff --git a/42sh/obj/process_free.o b/42sh/obj/process_free.o new file mode 100644 index 0000000000000000000000000000000000000000..7df5f946e4a5410c8630de1bbb990444a1eb7e7f GIT binary patch literal 3528 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/process_redirect.o b/42sh/obj/process_redirect.o new file mode 100644 index 0000000000000000000000000000000000000000..233c6b13bf2f760512943f9f29969dac8f720e5c GIT binary patch literal 3340 zcma)8U2GIp6uvXNGo5zZ-GwTm7M*0vU!=QjA<`&O3e;@1B#Qjh_%m*2x7~$hce6WN zih)Q{AT%WgH9q)Yf)74vBu1W;7!AZIiQ&P-MBjKI;Qlg& zob%mt&%JYJFWtWWPm>TzNMHbm!4(aI2?jk3o~3gE`c3y9oMH~hw}C0hF*-q(<>V$D zPxtJd1H(J-*uGYi3h_8?vDK3>j`%T@mX*zo)W@uvQ+3^zwQW!Tj_2k=e4H8S3CTL= z0)$W-^f|m@*>>GQyaJokKz}Y0FEcVy&5g6(`StmDCne@$@d~BUGE;(hw`6_$q&&vv zgHHPWTVTD_Old5KW(D!yoB8UH}$!lhM>hNrO z`ta=J+Z`fy)I>(lOnQ1?c6y@YD$~=`+h?Z_c1#WY?wV5rH~4gN!c<~M6L|g&3-A)m zh6HnJ;F?Uh+VgFC@`CyL`F_4==FrgY?dEu{S}T-GW?!;9*=??|i?|)S`nq8xH}ocZ z){0uyPUR+YcB)b>+qqiJs^+qVYR-0&wn*)&Aw4yApu9JmNp0w@`JP`c}7^FpW#T)uSdljbC65Gp|=otPvXFHGY=EQy6qbQ}Il1 z!|);OklF06q9p-GOP4B@tpi)Vg;Hi|Ws7_!;^!Edm+Zq&4fW zXsw>A>z`{eKj6$=0#yB?s$=~^WW5G-?SjN4UF)UIp3>gv*?LOKRZ>1CB?Q-|pOX^0 fh;fj_L)c)7M*=n$8u)4n%Py8{Ibmh%m0s~5+3whF literal 0 HcmV?d00001 diff --git a/42sh/obj/process_reset.o b/42sh/obj/process_reset.o new file mode 100644 index 0000000000000000000000000000000000000000..4bedb1662adae3300727412b39e18ed2800c04d7 GIT binary patch literal 5116 zcmb7HeT-CB6~FJzym>P_v$M0id~98|44q|x0z1p{wMD65!E6JK4J{vklssnNyxn;) zJ2TFEvjvLD#@5nWRH`BRNB^M4M6r!u0rU?sRaC5vR$^n+8q(NmtCWbXDOHl+``ObbnkOTex&AaZO)I*8$vC$u=eWX2z3(7e0uvu2o8ETAJo?n-cWo_EI zaofkk$1-jzC-eY1q2ik`5JEi(kkDVbYD-|Izn@IA7Ghg`il;!FW)b=;3=P$tF|L1l ze4)Qrl$)FN=T?TR95U12S9ySFgX*mM6M=pN`=_8A##b*?MjY>Ye}CuUO=$l?OaCzD4Rh zyOqE1-=seoU#(!z^tWY(zn5>)pMRis!}V5`zh9_xzIK!TkaW`J%=p%(f`x|bJ=dxh zKFMaBuU#F*I(@5AdC;vCEosV`Q3_@9FyG2_1;h$!9pWVoG$Zp-b z3!RSDRZM4*>L-4?bDiwU1{?>QUun4Y|v;}nJL15W`kxt37!Ce~LN6Sab0k{dj% zc6gY(C5DS`1zi=#qqZ5l%0rM$?yjviOKx|`DVHs|*LI^`$1YiL;z?AkS!>l6rrV83 zIuq+mw`y(31icqvo3^1Tl3thmaB@-VqsYd{DxoXjZX{E*MUWYDzydQNV(nTaoisQG zw~1yEN#EU0WdJ!D?}mD3GKnV%X_gGknt0<#P9XT~rzQp(9N0WD1D>TdjkC5az^rTG zDnqZy-f4 zQD|5BY>l4lFuw_@ncKfs&t=UQp{=Jjpy&F`*PvO{?$C1sri(DIqFn3iBDvpdBFfqm zy@W3QDReO{ei+P%8ZnGG1~D=}{uGh8(E;S!5TgT$(_oqCD)S7ubbug)c@`SOjUtG+ zFa}}&64Xdr;$@=xZRVeqh29N&VeEy)-)PaExD0mOSZ!Vbr$+-mgsH=T9t|ucZgPRo zfD9}oV=ll#)?*>YIz3kt#%Vlg1w}rTmer##3^ktmU8ts^W>ObIwFPQN>aS3f*tApzYBpuU%?hfmPzO>S zq1py@gJ@>}~F7QYN0*D~*snQ{d8E0xfUL0Bz;9O+7| z1nV=FnCrn`<#{gUj%U+XAadwv|q_w$}l){WI)D^i7EE%z@}Tlw?dXZa56 z#jV3#E2E{%Z|zx~UwZ2|op$!vp|ktCf9W4_yBhk!%=V%7&Qq`S{G;b{EuHUtw$v5- z)yMof$KUwwxl_fixvfsm&XbQ^dF&hUKRo|~S(~2!Pz5n^^Jh~EW5 zB@n({Y%FesSnm|Xj|d@tRg`;HZbB?^3Sx02#0sh)7AiulFUr@rf>^1P6~7C#VuGl+ zm`#M3UdoEKj}VKYf><;OF-sK0R3gOeQZusD5#l3d#m@yH=8UppDiY$SOIfk{5@JzS z5bF#fmL4_mC8&hfqf=HaN)np%#iCA#wM$vC-V$OSD_^XIgjju*6$cPv6;%*FWrX;3 zQv>;tBgD_JvSMi`#2Tx1l_ixBORcgxtp@Vjt9<>hTsM)&%t?%zZ0b5f&(m610JMYK zgtkAUWm0DRD6AL_6ME0vbam}oc%2a&)0s#0yPAV?g#razT_n+K+SPP3dW~~X5C2N= z4`G)ZydLKpUOlh0yt{H>&2+>&FvA2u-coXJM0Yl9g^-HI!(qP->Nvos9EVIOvd zB7aE&fWH`lgj+3sKPrB`S`L6<0?63#2^nu@@HYV*HL&dY$~gE92vBv~hXV65rl{&yLZP8=cAAEa*4O+f7;IX{oJ&Lo4!c1;4InSLOBwE<1#v(pN WWyn+i|AhRX!{1D0r0n?Biuf<5YWKtd literal 0 HcmV?d00001 diff --git a/42sh/obj/process_setexec.o b/42sh/obj/process_setexec.o new file mode 100644 index 0000000000000000000000000000000000000000..00a361d8193d64283f6ad0c200f778fe3e63a0c4 GIT binary patch literal 4128 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 B?(YBq literal 0 HcmV?d00001 diff --git a/42sh/obj/prompt.o b/42sh/obj/prompt.o new file mode 100644 index 0000000000000000000000000000000000000000..8d0bcf53963d78750e66d46f9f47272f8441f324 GIT binary patch literal 4764 zcmb7IZERE589w*g=f+NgZ3tzoRK%?brCM!=gwlwQ5k%bG09i61e01tAjz1D3f62av zq-(0EW>wrQB53M{HfimoYRc3h(P}^FHlfh6@v$HD$G)WfSTzl;Oq~F=9af8)J@38e z8t0M?c9L_S^SC4C}$^Rw!8_kLjgpDPG zlTr4GcABOqMs*LW@*6d z(xkgiFpG=wMTdq8iK8@r3;nbBek5oflrNP{=BSCCZ-+7XjJ+k|4TyQJVm?IZi~3iH zW``5Sd-*=Gt)bsH2}ke3qI{WX%y7}}pT#HKWB2Ea=JV--F932XZ|l{Fac@y-gqQLz9gJ!b0x_$O2g z{G)L(&cY^hBT?l_r#VNCRYc>P@Eq97Tss&$N)5#2jou&i8Br%Q8cW&EsKxvf@yYg$i@ zpSAj)h2>P~($wIEslGYOy~~xWmB=p)lk)f_S0!@B``tFML0ImcUWF2Zei1Ftv9-0J zDv_UGUtw0osEXHD&DLD4MBYF&hY?LOWQ)gtF>(h4)+nh{3^CnQr=MyC-&rSWD(|YX zzB}sF_)T?c%T?3CD)Szvbz+R1gi*hKWqy8MjYVMBM|S58yUM$j!Rq?C$@As$Dx2)P z;XO__Ak3;JztmOR;9b?zcKC0!pc?|URw-@x` zJP(qpDqT{`bCPOJO3j5utKrc57zzJ#@2&b~N5|&QjTvSZIy21QwnGR{TiT8cYYTP6 zH`PA=nt9s}KN~pEvz2Y9)7Zaz_x?Wr(L|w`%4Pjsq4rR_e_bq%D^7#=?U|G!73R%N>bF!y7t^BP^+FW;KIo{x zN`*oK2TeRxV5zLm3JIOzCzVNPI&Jr80q2k=?bQdgI}$fh!JE`S%Q&VsbGll z=$L^yLp_#=8tP+0Jti6fcF6&!`yET#EeBlg^On>n2b$fNE$QoWz~_G7lKSPq zayRiAoC9)TrTYU*`i2~M#7zf*QMX49_}#Z4k#Ekua$ueNbCg~~1kQbOpq(|ofuiD| zkJLzN92I-Ft5l#%gR*tElTKm^!+|i5qH(eK=WjK9d#~s9{%zWs9_Z*z9!EAN4H!bE zWK0e4pdm44j5*3QT$HRn4F@1E*606Yqkx0*a%4&r2l?(`9DfVYHEH@!>y7H@%%#K6 zzv`nCsSovA?GuwtU;AwJ>Yt7sVln@#FXT~IM*cqX&yatOd=;7InS7?rDeWC*~!<;aC{w#>rvP1T>cZ64sqt%#+{A*+;y5itmqu{%TdkU)a^l-p5*cg z?t9ko!>L1G;!WW2%ikpB@Tm&v60S>A#+U(&g}6BK2>3R0`i8+UT|OI!}gE{yVa zgorr}J_f}037)~&kUR;*6Fis)qUxa`AVw$H1;p3{p9JEL2>M0+QXz98{{zEEc7Fkq z-S2?Ja{);G{0fNoZ15*S|3jb)@-z^eJ2(ua{tf`iz8^^KRUq+h0TOS!&_4kryGMom zFc7W;9};?>(4$XE!BhC4UYQXX6)289@1+EpiT41+8zd(S&_XB}Rpa&gH04cR1 zlWgrv^1}<+N}Exr6WM;7O#8LIewR%aenM-eBB0)$%JuTMY_fI0nXU2FGKowqKgP7X z4=STr(&=9$RIGnckqmt{mdP`EaYeNv9%|`?j;E2RODCw9OqcLT!xIgUtE5p?d!uRi NUr97g`_J5w>_2+b2loH~ literal 0 HcmV?d00001 diff --git a/42sh/obj/put_job_in_background.o b/42sh/obj/put_job_in_background.o new file mode 100644 index 0000000000000000000000000000000000000000..ba69bfe9d14e9d478d76b165625b70aa60e4ff9d GIT binary patch literal 4044 zcmb7GTWlLe6rEjr*XyifyGdFKrL7?a0yJ?*fkr&q21;=uJXBiB2i4-N9cPQ<4ZG{o zB8oueRRI#ukMhAoLINQk5(0@IP$iJs@(@V;fIx^JN)a!CDp4MyoU=P?ViTZ@bmz{! zbMM(Zv-i%-2fu#zM@k4KA<%)6puHNp0toGRP>J$Cw9C`c#23;gmVqfqdFf|aL3Mi| z1u)Cnc*%7e|B~a;)p9^Q#YwhN-4eMG~mK?pzO+s7Ufd^F^WQpdjnyFiAs|3Bl4@Z5>5;ScVN zZ<(xzWfCuGw$>RBI@UWYzL~P!i5J&kj5lzMc)^aDIoDg4@r}qR#*YyXMI1tQ#`lEG z-#EV8y5nWGc*lBecN*&qtY+h8r%|!2@wF{W4E9UBf>b^SJe~s;m88w&@Y2AvXOWFAL8S_glC}{B^HBU z2nt}&bv*+<0M6eKpIsP+jh`U3EjXI`&wf*B_m`zz-{woZcOKc@JiKe?VUfGD2)8$T z(Vexobl(+6&Kyhb-gk&lyN-z50~riT4_w#-7An8y3@mrOo!|1-jZVE@7`SHrr59gy z<;K&+7>lYfK7Q>Lg>6;Ocicu{bZB^JxG-SXaS{xU4nr6^dt~UW(}nNZ#jWndpzSsS z&#f0{nt=t`avIh|*}k#nxy?pp$QH#-KA?)Vo87IIa`EgDe@e`0Dx5|j03bpb;S)?a z6){s|=TxkKf3fT#y{uS-%Zd?9lmlEI6U_j%5m=M;a!u6TMy(Kbgq?IeKd@#z*RJ|B zsXKmvFNBQoS79T$I7A;JBs_cbdXIT=-pQ%tvbKQzU^z2DMUkR`rKWv(-SQp2k z0HPW&!m7)N}I|C#3EJyFp!SJOoZdb*b7fj7Ks0kWxYIPa3ad^dqH{)PBSG7^4J$)sxl! zys;7^hf=@VzfkC(VsZ~iTcRHXdlHl^=>&cWlvu9+4)zvEUz&UeOfxjDT<=9kht%<@ z@4yzOdW^&1>!42cF(Ue1N@+f07{RDQX#rvoX?+96X^^o*-vX8gC9Y2vz*2@r?55D)iXH8Lp*t%~%O6JSWL{h_OYw z=&?4qCD_S~3DW?4hz4l0eJOYP9!2{#QXE`zwW z+|S2BFM{@hJ^~#C{Q}Bh`JE@}WHC|2 z>XKGWII372(uyTW70W@sDi}0X%t+~2kSeB+v|>fkiX|znSVL5?E~Sc@Llsj}s+e9> zG36u{Q;RAVleFTFQN<*cDpn9xEG(&FEmOr3mnv2;RV+>k|8H59LdGyVU_GnJ!;Cm> zEzULNmJLGLo>%gjl);MQhfV|?`I%TpkH&|g7|Z7GRxj?3Dg*x*wyO9NmWuLQwi~^| zZ-A7JdmGoTU2pRGDmHzuD5avaV)Wd0jlZMA1d5_1AEa~M=(zmxLB0v(8)0aQ|043i z7=_dtCov9hb?9+#gs_o$-4CQ+bO}p?=&pqTPaGP+jank7XnNN{{W2}9AJDqNQx|9_ z2ketjEZeN9+f*GJB38ozZiDAVeEu2Wh<9*h#C1NaAnT_}zC?1cQ2&$UybyCRj2r8J ZmKcs_%UEdD^IT6@e0@Qh>)`~9KLMKjMa=*J literal 0 HcmV?d00001 diff --git a/42sh/obj/put_job_in_foreground.o b/42sh/obj/put_job_in_foreground.o new file mode 100644 index 0000000000000000000000000000000000000000..d6b9d13d8bbd68a6570028054355bd35accb2cf3 GIT binary patch literal 5456 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 M=8;n~{caNCf4=*J>i_@% literal 0 HcmV?d00001 diff --git a/42sh/obj/quotes_gest.o b/42sh/obj/quotes_gest.o new file mode 100644 index 0000000000000000000000000000000000000000..fdcbc59c73315f9180a92811900b05b571a9d786 GIT binary patch literal 4408 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/readline.o b/42sh/obj/readline.o new file mode 100644 index 0000000000000000000000000000000000000000..f645ada85e7f1243336b8771e6d985ef9d1b4674 GIT binary patch literal 5488 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 literal 0 HcmV?d00001 diff --git a/42sh/obj/reduce_bquotes.o b/42sh/obj/reduce_bquotes.o new file mode 100644 index 0000000000000000000000000000000000000000..3aaa01ac36a7f7281c8441ce0a42b7c14d0e0777 GIT binary patch literal 4400 zcmb7IZERat89vw7$97^nNt3iqmu?t!lyz$2evSyzQnzt;lO|h8nyy1kw~lj@cysK` zzHZXdlC2qNp2yT`LJ09SAtw5xOq2L3ph=}5bz);w1Bvnn_0OgTiYOo2qIDuX&%Ngs z$Lm-)%6s1Pyyrd7dGGmle*5lU{~Z)U(*-h!A2KbG#UM!QAd579KzggrtvJOtNFD~K zpfu8mWSX`$YrAC^A50!T_+RXmCKv<~`Pl6&2*Nb@#p6_7GR-k-v@~HB?Sf-6&7KDm zL;JmI;qg4D_}&TJtnvyzuR!hbW%FsrT+8?FGH)TC4pp~y%F8@FzSQVw!8%I*RrKT9(`@Z-4D!y(N(ykAU&*jUHKI}|zZF~!g?@q;c zY=wMIeAB6PEnifvH;?a|E9A3}P2ci+w<^AGr~&-N3i+_<9Ln1Ge#6a)zNA%-^K!rv^)=e z3Yya}2&qo&f}*xyb=8NKM~w2D#{9J-M#Wi>#+L_PGs-8f8|Bi~i^Oe7qMg!-(k2}u_#o%=b+rU+$46YN`ovN*Gu!!d89f&|V z1?A*-7q~J38EYl^o-zNcBM<#D!NVoi-+yQzcGM~qGx=Pst8+`|me^hCEKbCZt}Ota zJGOOh-6V>IbUbU#T7`JQ8Y`tObM(Jj&i4D3w~iF=2ViG!j)IXvtZ6ZiEvi25@l_a97( z9#`#6>^m^rpBOg8p~R3F9!&1*P4o-fwDXTxIZ;%ayPQUw@E zIo|cWnlTUsTUfa<;YMpeg1Q+op0UN~qqw|Tivk_ARocfITBP346liZ)r8Q&ve11)D z2!}rz{uH*EewWZ2)??fH8%1x65ONKa-r!aSTB7V*7Z{Ol!?sY9m`+@M+CMBP5}1=3vpqIh}cYpbg!$N+kF#E%M=td;@__y<@}T}zhTJ=5TK!6R{AZELpCD_2=<5QvLAB}4!H+`!nWk2b%_fxoLbRG=W1y8 zd=Et4AvKtHq3HiyXaFi0@{`-|bSRABgaPCn_S6vwlWTKt?70`FE1O~C$kF~!2vc=i z;@Y-6X8#`_wx{qMXX53ni2$_31CZC0+dp~nO@i7F%_v#sDM`)53(kHfbNi33Z2a5r z(yi^!{o_*mPi6eomyhqfaohIX?OPsyD!lm0jxRJtj{dNvT5xSF_% z{P@_lkh>uqz(GhFauiaAaC-13IA3d^k?2MfhhLdEdo(!{N*{M(XyWuKuM2=QabGAC zCyOS|pL*js%N-`}5aq>nPOoba<;A^36So)60w#VEP24lei`$!~P6$U4i62c9_mT4Y zU-K8l$aAdWU7gfcBhj+tO{@0UkkDqEw5CWfbP8VVX+7kXcSyFh>rZYdrs#+{o6Cz^9J zc21IM`K^NM5o3>=#jSMxQO3el7Y6{x&hHa-T#-)F8#O8G_4?4acz3sq^vQK-+XnQJZn+6$eV{#nMtyQq;6b?!`V)P!y-(Jil);m7E$Y_8wy{rk z!UoF2H~s4aKbL;gq0eYwmqXDQD9P0@>3!hxy(P7huMT4`L=Oa8u45-OMx=ws6VBUR zT<{V&3XQGV@h^-DiXB{`7_5%V(DZ*1n*Lj$F?b!^;2~f>bJ$e13v5*Q4yB=-`sbDA zx@trNFR@q!#S=AndkyCLtM=brgZb;cy1ustAF9FQHCUMV-7%HI4~_}T&X?@z65b!n z7n(4~ZT=r%)UszRyod;~?8dCDSK}3(HwfQA?wiR>PffcICWXff7V2EKf;F8@rCkU% La~wZ<5ZiwM6}rt1 literal 0 HcmV?d00001 diff --git a/42sh/obj/reduce_parens.o b/42sh/obj/reduce_parens.o new file mode 100644 index 0000000000000000000000000000000000000000..9ee29c88d08ef194c34760f0c61153c13b563b6e GIT binary patch literal 3980 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 Iyf(o4ACkW?i~s-t literal 0 HcmV?d00001 diff --git a/42sh/obj/shell_get_opts.o b/42sh/obj/shell_get_opts.o new file mode 100644 index 0000000000000000000000000000000000000000..2a597e896f368a1ff80bd629cc4f3db035f8c01d GIT binary patch literal 3632 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 F{}0K!_4NP% literal 0 HcmV?d00001 diff --git a/42sh/obj/sigint_handler.o b/42sh/obj/sigint_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..859a658d7fcf4583b4720bc0444fafadfb39406c GIT binary patch literal 2608 zcmb7G-ESL35T8BAPGYBylTZW#!BI8kqxhpChzL-r)r4Nuv_frCDg?kBEbXiJOUC@AIlSwTB#~8{0n^n@ld2bB0d^s_VyBco8mCi?Ck8${`NP! zb8G+n=kE^(0ay&MK^;KdiesarqCAaikpCF@j25EYlQEHxm_VALNfgcl>v9nGLw|AZ z;^M9!^-jwU;SrbRVE_R=09T?IvYeZK;Mq=94sza$7vYrU{LzH$NTc<-h*z=7%_>Jw zF~j-n`^9tb?nHerdmGYjDtI{D0~z7fT~n-3@s7}8cS(W{t5^2KE0xQhwNCl>@{90J zN{s#D+0KefOH@2t@>`a8^OE0nybrn;ls)-*C8uinkK)}`^8I$7`L2~rK~d!w;YG0h z@k)(G-QrGZjp#j+?@towZIK$lcYXPVcy4)BT(HV7Ay4P9#QSxhc!FP}WU6?tD0s;s z3A}5R`w0038;w2lJu9P6$@RH?;^9XuAXR=}Dg2s!@l1CO^9*>?xnw&P&KG8PQ^7Y# z;^}hmYs90c<{PX(c~wfjR*kQCc)Q^O^*y*Jqfbb@Er};xNCDKMKG~h`*LDP=ny*e| zP(BU~0P-Ta@fdzo2jVSEB}E+3c?$KW{GR?mJA*#*fcH?lh4LkpTXs+N?JpUfUyQ5w zbz?K$#^6r-Z=-YPH(F+N<{pU7kA!P%zWywlAI7Qw`O<@8XX^%t>CW7JX@&$%5J^gD%YFs$?R*DmgSo5svGF%=TFU_UDRzyZ+Nb0`My4Bi^(MT zo|#{D%URQP0?)1IeYJ)l2SbrIeqZ@@vq$A-RqVNCDUwn@mr{W9dxdne-SN$J5qw zI5^HuBxC6}Q*WhS9C>F1Zy*ku9GIWLhww1O(#KONy0i~b!x|eB^*I8s;t0u^(18H$HJeZ#x?&TZM%$0 z<2h84?zQBrYqwGUZw%o-L0~9UK@1XTPTmiSXFWg}n1|JrI0VTcY! zcZ)nH0_u^70sG_}u*(^i85tb<0;6arDroqJz_z!ebB1C%b4@#WAo}_K07Eo*16#)a zN*}bg6LGzUc{=*7ZfLE=cVOMCMe*qmrNGkvU literal 0 HcmV?d00001 diff --git a/42sh/obj/sigtstp_handler.o b/42sh/obj/sigtstp_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..bff39d8ca36278979952e1c37b2be073b3e5fde7 GIT binary patch literal 4128 zcma)9Yit}>6}~g;*@ySxb?gLJZqqG^LrS~5sqIp?g%CsBZiGRlahiaNM(f$x-HFCC z+nsS+sDTC%zHjD^ zyE{#ZuXOG?=ey^Ab7tn8xx2r9_pSe?gisO!6J!ALf`+LC!MF}mqyGV;mI)VLmobqK zPC+TkeY)H5Olk%jmC$ohgb$j4lE4+)VZHXzohqM_@C=XWiqC4o3!#M6-L zcLpTUZXwk7%)rw1hPk-h(m^Wy{fB4ozh@)rd1*b#hlKH+7$2ZM%81W)jUZmv`}r37 zqJ@}F2VuQaUqr-LUtH{($N2oN&i9IB*esvrG+l0q^WDgTz_=vu_lnH#2;K+Z3&vIR z>(-r?>AjzCTdaoO84O8!=Bx58)r}yaaaG$=u>>Rh8hOW==?}-%`BwtB_=fTI4Jc0U? z?>xq5w)JKgZ#Uc!{~r8H^6is+7bKr_1#Z6`+0;?L*_IP9#_xAV_Crx7Ggb(9uYEv% zd@jMaFdG&YlOKbeK|Ei@1?UFd*H~@2e(B(WdlwEa+*h)kQm5-0rstI=tYCFe zcwM7<)LkqauH$!IyXsjj-}5_qyY4h>vs*F5EL*lTKmWjIOUKNvXSq&krn0B9r?lI! z@trBp?1596o~+z<^CsA;hdhu}TgTm_je2!@(rb&@CFwh^upD0?F+=!zpuA8ut*#d! zz-`O(g%>L3Z(@tox@Vm-!F0;heU?$Zi~0^g__ph`O3MzfV>a+qeBtm|^xCFv>z$U> z5FM-0yDxGPIyH#}W4YVK#dJi5oBSoWfe!c0?vmwt!qBazU2h5BpyCGI4FE$A5cqcF z8^SOUv5}6^u6KjP+2LgJI;M&1a1NP5Kp9ph3L{#gP)v>&hLtU-O|=4Wi?VMpQMfC6 zclIN>Pv+3CnouQhU5Z3Jix$Zs%Vt)M7mAG!(bcYv(O3um)?*=qk_?$Ed%J51!ntyCDF z3so>jKPEQ5I1!*cP)C3=q$mmX@zW0lb`$e}`gmuB-tZD;p&jQmkmOH`)GDSmNM=0! zRj4D{uFPZ5KY?hw)g2=97g#%yjdruTBb^z6MM~|X>W*AyJG?or-J8GH^)Ge83p%sLwqa^%37wK&!;T!O7q_>R}gQ-019|IfMo*IMsGnk17wckLc z(n)fss(}AVV|(f@nD4?&)>2F=12=JN_71a~a=Al#QA=_1@xZWZQV=?=r4$vqaiTj1^!d8T?dms3jNRp_BVVHy?rKS0%q zrxmS9trUH#RIuX_noPQOaJB{&d{(JZt-%PfWMH4GeEuy~LmfiA5}^Hi3B~tb!RY0` zRt%2?$|wUd_yJb%qc?$rVIVjVgdiseE0D(kkBl^ghY9PLIfN16T!7Cep|@x4O!n#T zzVh$i8l&T9-+p!6|AuwLvN};bv^X;Uqt|!+?VYc+Z%F>~Q~u!}e&y1c@1=kL^7+yI zFF*A2XP!TO`{h3lK5?4I!evMS58)=rG~`~$7a>cKHON`WvykT?zks|3c^jf3VHQ8k zpo(`w(}YimZ%aZfT|%rlbSnp|k`QZm8-cLS39;}c#L6VZmXQ$qiV#~(aY%lghPIbNYOWay3ZO0Q~7&3vpM@lJYGJ^Ve|7YSU% zPhuSYxRmYrl{UZ6;WpUl4SAHp84x_Cb@}@t7KskggTpfnl;s{X)^M&5@^-kSy>yGO;tS%p0-_I+7 eUnYJXsME4d-*tiwjSl`&`%R&@Odk&qoc{w%J9hH` literal 0 HcmV?d00001 diff --git a/42sh/obj/sigttin_handler.o b/42sh/obj/sigttin_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..f6fdc33eed828e97bb186d29b7d1148c991706ef GIT binary patch literal 2552 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 KRCHe)HvbEMgj4PS literal 0 HcmV?d00001 diff --git a/42sh/obj/token_expand_var.o b/42sh/obj/token_expand_var.o new file mode 100644 index 0000000000000000000000000000000000000000..134684b1015acba04d7b0a0eda100ea9bac9531b GIT binary patch literal 3048 zcma)8U1%It6h1SXne1kh-A$sk)+!5$(SX^FHDau_Cfd|V+G40}t)PsP&2)F`W_H<~ zq-nJpn<@hW3X!c&Ye5S?zA;IaPGP1 z+;hKs?z!jQnTvn@`ENau5+XFwEg1f&F_{bia36b{J1A8ue7w0e;<<-Q*WK?n ziFe6^rJvS_hf60QgYk8U%e4~U#}NsX;nEoSqmIE+m zjxHJ}nO_di^HgJIV8J*!urM{LQ2bSnp=2~050PxZpmCKO&}VBVNHZ%m)Z^j-7uv)uw>X5jLbAD5Pvyh+nvC!hVQpRZR-c)z0J9&4efcK=Uw;M{TXH)9lPO6kM>4H6Jm(y@Qy$-=OS!2180*Q9|nM?uK4GneHPQ~F(T}6y zw^ZF;{{qB%b!&JUlKs>^wT;5>pvV4dzuFcKzmML}tUao>B}o4g-4m>~MBaqZ!rBiI zk@wK(O5{T}q2P@t`whSTSt6B!Je&8??E0s};XR9uK&CvGnz?KW&P5R}RpYPb!>cjh z#Eu|-j}%x!xWRSe<`OX`$HtP0@9c*AoZGvnPDB^K>3J#9IPp;?`PPePwDk8SjB&!= z27dtl415vHSz!!L&Lf*RwbF~z$tKRNH1UzKiO*2N z|6dmBu|wVoysJo-598F3pBv@KZc-)_N}{nodp<uESO_g7Fo2uD69$G97_^(c4-E-Ym+OSlJ$7P3NLg@50i75(2ww-rIs$;fSDf=$l-u}$s@J{tuD4g%5=NFmZ zQh-i%hR&HaMxgp>DzC!Jj*OI@!`y#;ehTkZIbpeY1$VT>DUEpV z$@~^2-X<0wv>)}8?Yn7y<*YmAcsJs`TNf?FhDd-{GuB0@{T|BZ{1hAWQ+TS3cgD+3 zOcWj4%^qTUH|+PUTz#`lXyYC83-C%K2mA&%=J&J2>y&uzGV%QUCbGFkJe@BTNa3AX zCSK*}#7+0xCGob(0-j$c9$q>hvN1nL9txG;-_1e3HDg16bEQMrXT`3%M+$D+ge)B;J6;8<2R?6o4I9I;A>)#e(Z2 zHtzR|#QRQ8ngSl_#4Ymc#Iqy=VnHC2Uk!d8@!Z!1NZJtMDR3=uzvQ|N*9P21-)qhM zYE55GSu@WsSToft*2ya6JS2FN_2O@$UkGdZsz|)d{H&8Z=B?>3Bi78<^Mv(nrBBbM zp8IN$?@?-KXy22m!%o>Nl-yK*x+mR}dN5bS%irDK10&tHF}>j-;gxflqBH4~GnLXo z$3=r2C!G_Sy&h&}#*UN@ll!E8~neH7tI$%9HKg+Iq17@r%@mIW29Rl7glZiM1Vb8Wm;YeSj!G@NbP zKr|G8H1=5RftIZ;Xptdw>Dbkd8?dj=H276ASBYKi!5n<5Iz=eHB^EE76^Y--=L*)pd8x1eF)GJnikSePiB3c z-$qyyqrO$e*rcBxf0I`08H~a(r!XD_ht`=VA*+y@n^uf!`xMy0XYrEO`!OrxZxb>dgw)NYt8wl%P%ZwQVt8qhS27U9H&YWPq=Bzq zOc0O6XF52ru3cjsF9iM+^h~`L`{MY+i+A_B_rCGxk83}j>-r;?dh7VY#l9DkEr&n( z%*cGpHoOo19Lzt8IWP-nV$*BD>%puKYd}A54-i{J7rP~0tS?<`$tp02Ev1V+moB!J zuBq#;S?OX+Bo&lx`JoXv$BesRg?1ZZbK20MYUZ?VB6ABfu~IkxNr2P+ uNMM^8DZ8XxCnW^q&C^oyZAieOs0~Vu>Fc$&utzKW0nR%`Y;Wnp7XJh72BFaa literal 0 HcmV?d00001 diff --git a/42sh/obj/token_init.o b/42sh/obj/token_init.o new file mode 100644 index 0000000000000000000000000000000000000000..4bb6a561ce71ba28430da4b19973b4a1ae6bde44 GIT binary patch literal 2760 zcmb7GO>7%Q6n?YzZrnI=HVIUr6l9U|CmK7nk%$0=nEv2|R6?Z|Xuzw|_c_M2xs$jx$$vZqm$5w=g$h+=f0-10N*M7>c z{%T&vVr%Qaz%{>iq?td@ye=oAyFP9rE@^cdX5e=I`DT9Yv4k|Per-PeRSs7uJvB9b zEWPB`>ZOX89?cAAhST>rWxn@Aqrz z&&mN*o08{K!S-!(igu0ar86$Uv;`h?N%V?4 zQ~i1@Wg54pdPN^6PV1qGeopgl7O~WW$%i<}@qQ6YC6j@ocT+4i(GLaR2V)i=JE(XWZtNxKo33u?_C`E6ng^@>=&g+ z`&^i!b2pe;@o(gV)xbBwkqLK1uq8%1e}8aGh=7S0AVIj2dk%WH4X>O_HoqNt!R%W4 z%t^m<_H#Y^U6sd>OvL*!^A+Z+%rb{8k@nrpOft(#;@UEyKv)SiL%o@hb(l~H<%Q(K zgi0urEHJC6xPrf47CLx`*a>?pQl$fI8-;lhXO5F-n8NJpNL*kqth<*v@i%ZbHp0?V zE@i%=9qJCMNQC30QI1<7{z`RoE3gK$D0xnKvA|!A%_~eKZ*r!H@vR%j*BOUCuF))U5zt{IQ(DPxl5qLh1Bn#N1IHlwE|^-dnuj7iPlwTT`G79YYJ$zVet z1iJCAl6NV2yOJyrjDfcj66dXlJ0YRlqRO|nRVQoC$IqVUE>rOC$QO#N1-p!YwtoQ) C|63^l literal 0 HcmV?d00001 diff --git a/42sh/obj/token_print.o b/42sh/obj/token_print.o new file mode 100644 index 0000000000000000000000000000000000000000..3170b43363af0749981073fcc52306ff930f8bce GIT binary patch literal 3536 zcma)8ZERCj7(VxQx9!@|bsr#zkR~wDz}7N8BnrrIBV|B>$bcBhwQIYrP;QsrTNsQQ z!i-oaMl}BN7l{#n5M!by@!<3EoOic4SuRe`?KFoi%EGeA-54;X8(m}5lx6m^xL>sE5Wa%4x} z(y@KZq+XPcOM!TdW$qM*LpfOVA=mY|X=PJJuQcjn|z&EBVC=JebQMi+Jfw++I7Ffynq`E|L#QUCi zcPws)SQ%dtub9S1>(@EWk?PhrQocFAZZ-or&_#@+U@G{*y?F+7q&&A@!nCmcc z^)d16`1)hm^=ZCUC)H;^7h7kd^VBlkdNH-cS9L zfk~+%zIbLg&S~j6V{ghx==z5C(iLM8FC>i@fX6FJp#EgY6?n-$y(f#?brw|igP?q` zt0mr;#FMIk+EEL-uWd|;Gc!=B;EnJHZjYgt{{CIRIKQ3zDcpL6#J4WwfM29=Zqr)Ov=oo_t zqBsI^WO(Cf;g_M)N}+3X=zF#BbMz9Hb2abf`em*?vT^|OAKd&Dj}SewbSc=$r!ch- zcZ^1dyT&#QcY33R)1NzTuwc8*!DyjtywGvw`Yyr@{TSKt!(htTlONodOy`?g7nz~K z?o2vA*qzSho0=CV29ue1zA4h03e9ga=i8c3nAvzZog7GJ!&YWj($M?yF|b6jiEisteMIfq2(=+mPqL7cpAN_d3gj%%aYcXMbA7CBiv$Bs&bLM*nZ3}SxF`{`Vj|ub%i8-0no>fkQ0+_-NpY^(f!7Vt*y3l2}#t*Eg}n^Nf;FMgsY%DQM!wr+!~QmZH~_2>ZGt5SOi zbCr6u|7&V>EIMfEJJjmeVH0Stou}5YfLm((4!YmR)C*E)cnq-VYP~lH{u51&>Kx(C zLpnoksyfH({Q}ZeYSYv?K~e3#2$_$iYPS0d*in${Ro^i%k5?nMb_0`p9MiYd)_RCF zU0da4B#c8_&0QGnN@{J~g&l(tYiqcRdl|$_FlqI^%Vb_{4JBG)JnS&AYix>}mcpzA_=gY4~=KcBPVq?}f2bSK69DK`vDc(5qgIgD7TJNN0 zjh|cc`bjPP>k0Uu0{srU24dd*NXBf?B2YVM8)zqp=>rqYC0j2Bvr7{bE={~qnt0LE zKp4CVns|HCbWEC919Bm+guC@!%_>U7B62`ZZY?nVY|1P z_z;$Lap0lLw)C-$I3AEuM6!uOse%XFzvF{ynrI`gT18WRr!?&|&7aeP?oO?Gh30dw z*Xkg89kCJO6DPFV6`E_i+xv=EtuAcP0x)_yHP!7J=+qRK?~v-o`GhDq2W;jQW0$Gj z4sYHe^=F;m-C@b+Nj_V0Feb?Tk>rp?EhjmoUr`kSNF_fr1Cz-SdXJ^|$E-fx$XJO~ N*47jD*RKcb{s(|cAQ}Jw literal 0 HcmV?d00001 diff --git a/42sh/obj/tool_line.o b/42sh/obj/tool_line.o new file mode 100644 index 0000000000000000000000000000000000000000..82f044aeed96190e122b56da79d05090a2172739 GIT binary patch literal 4668 zcmcInZ){uD6~E8UeRkv4FHPFCtXpG7U?WgFEg4kI+EQqySF4c_YqJWd9**NUuH0wK zf11!0Evs9W)JRLUp$P$lO%qI02OHA(G77CSl|TDHrA>$r`_KMxDX1GHM6;}7a;oTz9e&@?fqmC`cl43R84(^W`{xcJ$Tu+4MBHXsW69A{$|@A| zN@Q8Pzq9MXZ@JUL#aUp|q7BWmeiK5nOyg=V~~Tu;YTh*Ml= zmj`W$cQ~FDW{nWSaM50iUM@m^#9&agw3&-Bm1%Z?sW1#a~3CEWq) zWxRVhY0MI7h_}YSTs+Z;_s0gjhgXSLd@R>8-bKcnXNSJGN<17o1=;A|t8_Tg+<5O> z=kPVZ4e=(jhY@GdD%q21d(5)-?yk`lA28kvESvxy9htrBh2T;(;3X%l@jR;Q7+6;Q zeK5u6^%CRxgM1G#k8)4&P?75SP1_2wG2R1w9oPB)RoGmSFKR0vUtn6Ph%lC?z z;YH)b7hr8xhL+3<$ndi9#s;l?wSCZd>cZemY4Oz1;x9GhB&~e8tE%ZY%jZ|jS^wpi zS5{V)YW0AW0axVYRz9EeV=XcTN9@@KiWH@vrnJ=WXc4%j~KinVs zY9fO#(zc!bV8R1C!rN~bg?u8C!LiJQxD74lGg&(oD%pi}%1(}j$O;fbTd&<3?2_JKhrT7aUhBlh z@q{7l)CSwV!FvN=4}4|qH*uYNrSPy|56*AfKpiU^P4;w=k=`r3!EXctxQBd(AUl6I zh=YszzDTQ4p@p9|EZzcl5<%PJ5cTW6ma13a6FjMnJc5yCXqwk^dg@g*{w{#P<$kZY z9}ui(4nNdFY7tnB90I3psR;19TjnnyM;jSaCwA zNHOlC#n4p#K>w;ZAyic`{wedWudLqWEBW?$blgwo2F9nS1I6q`Hrnu!B|K_0P4UzG z?=Ic8c=p)WuJupP1b+1C#Vv`@Q^&?2pF}@}{v7&m&?(L2CuP4I6pd0&BC0|!351}U zk%%hDA}SS$sCI1l8jGf{YyGD%eF(vI8wf|1LX9awDx8lZJj;p>{{*28F%ljO?A0x5VTf zQF(hzZjH)*wSpI(dVVMaFUU?<8Zo&kO7@ywmf{r!y6)Gq3sdVA%;qz)XHMQ4Bcv@+ z+1G$!K(SjnpaA?EfpAu?8ln9mWGw3Ops?a$q#75>w)3b6(Lt&*=v@xg?_m0gvjOxE znZCr7FGHRFXhT&`F};Urgz0Te>9t0B(@Y;_I>5ELf+wd1d z@$OmL!F-5yh>*T}whw@>F~=6fW2g2VLp(i=s*fQO)V_O&Z}B>E?f6M$P3F_Zq!9lG DybEDr literal 0 HcmV?d00001 diff --git a/42sh/obj/tool_line_2.o b/42sh/obj/tool_line_2.o new file mode 100644 index 0000000000000000000000000000000000000000..5675e7a5e13a81544828c845b9eb8ffe8dd9fe04 GIT binary patch literal 5452 zcmb7IeQXrR6`#HHtk*u0te0RDJ zOd=dPoT<24mY`{(MwNnERaGmsRn*cb1(lePhP3Jje^f21s0xzZg475^+u)Km?(fac z9(N0&bmZAL@6DUv{N~N<>^uMV_6HwVGN!m09;g+l^(r1dRFp?hzs^PTo{vo)%iKz1 zP;4ETjA{cJQ4Aw%9?V*8OWzXQvE`0#x8@KL6v87eV*qF-Lj@ZpVHd*)XR_&7A}S4r zQI2QhESLT3tL%}Mbd{^%7fvQJcL*9rch{D#J5HUFSG_c)fJgkk-)P0{j;GZ!jELEv ziy9y)48YsowRuC)ZKK3%prE6SI{3j`6z`WZeiRpR7kR7~ojM;z zoeO{bvF^Eeudo;Nnr%d-LOyn_KwC~hT@PHg>V;`N|F_n*$)6HL;g`J=!705kGNTuA zHwx!_3-4VeEImIn>m8eiR(@paMeh-!q31_tnD+>MOs@5Vns5}4x9QMW<0d+O0E+r} z-wl1dN-y+XEd(#yJ+Gn1ZXYYQ$46#_v2FG(!RQ@*qHpSaa0-x2FZ@RIy)-h_w7YG! zUI*Hk9^!!V&q6Vo3LUd0?r z;jCOMT(9cmTW{zEm!5yObIAdSJ?F%rrrj&shFCbl zGGUeuGpMVFSlnbSxlFpHKbB|-$IXzH1u*uwylem=N*8@ae7(Kf`g{k>bS9Qe_|^nk z1FgPKhvWG4`PZ~U39MQXX!{Jyq{A(7+#h~363Zg>X~`y&af2+zia?mPY|Q|nB|4nk z7YVhjT9FxK16d=5Bq~jPy)0nJ`kZ2tzFeuvPf1 zT!D^ks9)qr1WX?SrZgzcb#u78u3l}bYf$KPxdJdYDxKBty0xBlp5--9<21QBb4kPJ zap6_0DpPs+5XMw5Be%+>%w6}C$AkMwn-7bH$XJ!4P`_BMM@( z=t5#fyS@Z-eHrF@!eo3@`rG7`ZHH-`7x>R!q*g<- zHQQbWsWfh&dDMU6QTZyh6qVR$HF%tW?p~-pgywh9bUj=7Cb?;qzk}cvS}QuPP;;TS z4$Z%!S)pr0|3frgPgD`V>dnwy%tL|HkTK|A>eA5^UtoGM?4*Wl3bRraS^}<;*{NOm zGnWcC-@V+m`DQn4TTmmYBD#ck$YOepu)+_ZjmD(|&&{95y+Iow4%+A_xE9R9A~9Z4$*!abEA%2PBpV$8!<0CAM_ z=QAyam5+;0jqM3LW96R)z+0YyLCntNH4X&_vDi_8wz!@xJ1#|f^+a(uDO|1A&hW+R z>wI|+4-D`pd-&%DxVnS8)hKuE+;qDyw zP1Oc-e2IFBKQ_R%9?mh`4Nv#*4!7sj>C;@bhSjSl_&f}E_3#Fm9zt_Iw07PoHFVUV z>7gmwxq2ArK!Vn&PGbn%+qn;eF(|;R)ST$6?BR;q!I{>^J=IzV>^;1`hd*+RKitFT zwDU!Wx$E~t`6+S-1=m)t?SY|(uRSsvvThp7yK?oSFL>&BwKBZ5OXa^&mQ4 z%%+N=CwQ|qm#DZQA7#Zz%I(7Z7~^EyNpnOveY1xEcIcAn`Zvk9gob`p-e) z=Zc>)WZXFZZ$n~d7f@bIavYMzcS9n5^*;@Xzj@74r<9fS*WrwxXa46PaX4kkoUK zY4C4jpHtZ2pfOI>oh=U%Nw}ap)pvfz2)p&?p_x3}+5WhEy6q$dNh@hhlhsQuZl4 zbJ?t!9tww28R3}9Whn`@$0YDS0+Az<0V!+ROjvqc7$~`xxog1ACXGzoG*b*&Yc_<- zE)k8J*<_-KXyw4xTy}bF7?>jz-fx5l_ZtJDSRCES^nPZT2hH#S6De>>e>4|LN0^Z| NLwM3!bJ;|g{TEAcjS&C< literal 0 HcmV?d00001 diff --git a/42sh/obj/toolz.o b/42sh/obj/toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..fc36374683f06f9e3899bab7293224dd0cf974aa GIT binary patch literal 4676 zcmb7IeQX>@6`$F=**kya&d!%wwS^O;F%k7gODaY2wb+WU+FWc>+S)i!vp%oS_Eq-T z*mtq1Vqts^_~JOCK&n=vq7b205Q69*C^aS6DT*y5)F={&O8ns>P<)b+3_9RiLe1~Z z&bs!VL(@@a-@LEiym|9xZk)H?``i0I#<+*!gYHG27x;wG(e6e!h`&v{P--idm5sv# zlToiwex{jcSidt5H!N0Sf&6#IAA7-IL$Pzk<@S^*{cL@JO@X? zF>i_EX;W=0i+H-@UFlvEpi*O+OUeS6r72ib_&YwRtJ{xba z>lwMh?)WY#ynPDqoJ!ipYK!V+Q+z`)%Z+!#h45lJdc}N*^)*IfjX{GkiwZGQj0M?l@)5+09vfDJ9n>Kq)D7=@IuoHN6WbUnGOkFiD zym+74GmPD}9o+Xp$ZyM+ZNgZ<#&cL~cb_vRx^aFJNr~uQFH`6Bf-1me;8ANrd`h$> zKFW){3(M?-M9RC+n_*8-e*&cdsO%m`-`r@u)V-U9cQ|e}vVS!)tD%PJ!gORkn=ULy z^5i-b$=62;!PzQ|e@y`!v+4EAG{|0E!I#a9=QE2uJDxYPk(J!<*4NjK%x^*+Z}!Mm z6a4rTSuurQVPwZ0Xv2!+jhU8$F;ik>!V4@o^$8emmd=D1>^WNVnX5e8n$Il}{!9cu z%*ZZErLh<(&5s*V;swV;-s?%p)biE4z8-y^`SRJw?J$ zaEhvZF>;I6nuVbqE#QN15mZgTSwqq+dDe=On0pI;6o#Q%<78`v!0YWlujir z8uSdu<7O(>Mehu-i4k+OFOiCm;3~vD4G9#$4BR0NB?;>;B6fk z@gV0yd+uvLkYln3H+DgC&tnQ*doJ}O;wp(_-cEd|E!l+eHu?qQ_ehknSLFDm&3^Yu zKi_p_-$*EEye&=N1Dw{U+HS;$%#|V?UGpE6{^W z$>WzlSb&5cDuQH5or>Gl8SY9D`n#9Ak2?FrHAn%p=C~CkfPvRk=Ga zP5FyTu~K{=#fH{JeK$HaS|j0jkPWZ=ttFnZx{2vBD|G%;1IACHQ$9&fxu#16jjEVL zlvE}9f06i9w6K;suAuDHI@or0R6Pv^8&9ogTf6VV z?geG1*0rtO8?a;V+IVVxMRwoES~OM*L(cyb*nuyn9H4XeJfa+u(xOZc3oR@>y8nwOgf=VqdBOZGQ2)x-Mn!3q4E*{fQL0BpNmTe@9@V9_zeD&S zgkIM(f@cJK8?L9xRnsS-dszhZIk7h^?(PwxIpGTnuih&>zZBZpFAJW=Tn%to5mjk% z0Fmqui+y2H5fys7eoSviSbdnaU6fl#_Zh=86iYOQ`N9mW#{BD`IgIS}io|I{F3`&GmK2QJJm4*&oF literal 0 HcmV?d00001 diff --git a/42sh/obj/toolz2.o b/42sh/obj/toolz2.o new file mode 100644 index 0000000000000000000000000000000000000000..f267b6a32870a59f93003b1b59b1c9a3ba481ce3 GIT binary patch literal 3420 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 YVsSA)XBccM8Woe~cQevuemP_8zZL&}hX4Qo literal 0 HcmV?d00001 diff --git a/42sh/obj/toolz_termcaps.o b/42sh/obj/toolz_termcaps.o new file mode 100644 index 0000000000000000000000000000000000000000..6e5ed17762551a03bb9e4c21ae8f22467d1a7982 GIT binary patch literal 5464 zcmb_ge{5679lvM$o*gIH4nIOE4BS#EOvDKt9jGKMXn1;Lgl!aPK+Rqp$8pSz?fC~# zMkEx6H6}$0+W4bti>Rte)r3~Im9Z7r!sviiQ-`K$@Yl#BDiSFbQ3o_?rLxcW-aW^D z3588NY9z;+Z%r zr2e-Rrl&z|(w zL*p~>k{!Fm0$bx#Tn5ln67OG+h$rGpg~C?6B^EsHk-(G0l0PH9>`SR>=etqjU6lUI z9}y29v4FJ3S0%p(bG~B_#S15QW1d+(m)ILibn5!14Ua)N zw9Gfst#_rdx`u=GJh&?Hh9%x9i6>cx?cHtmi59=#SVACL=X*+iuN^XqL3z;4o^70? zfGCTP@*+$s4M$QwhPnXuBsmBAIw*Z+-$gAgG+(op${(e_O)Gq)6?!JLLT-HJQ2zxj z-!snoTW)*%=E7YY2##w5Efe0~&sOrExtqMlE;aS%ZXXWbep~S#qA^FSO|$&aeXS52 zAN|e!`}fJOaG`Le?P4jub~!jgF_nyS>&wQubvSsdIL=or<6wvpEkC4S%#qQb8)J?b zV|I0Q1-y&;XecJe&yV@dIbIHqkysnRlm~L-BA)yN^B$t)pJIX^(3aU-#tJQCWmfj! zSRptzK<$WO)-qBE-Yi^sb;CgL=K4=3wEX-2wu>12k;cyO`Q*Y*HG6jW}o92RHQ&5V;dcT1a)z}sw#hu|jG#?ZAgA0ww4OEz4 zwU+-QHbr$II6MlCvG4=i#mDbGzMLSv}FA$8kn2!^35T z|EsBF#$W4Sx!m9A_b=&$1KB4@$ZSGGqGgCza~&0sP``m$8lZPuBitT zSoKU`<#LuuhwBKhHqsf(;(1kpr(--tuM^2u3$`a2kZuj`q`JQTJ zCbqaO0O3rf$!+&MSGl(G>8g#hzJYJl&Y4Y$HsYpntSV!<)rnlxrZI+aX`Cctv8tqc4Y!9KQc$L@Tt=Mfx_x)P%Z-E7u zIw!by2-?<;hRWX!!j$blL{F))_|}y9){w8mcC?#5FXb@nBk8n|x?Y-14wjeDo zLs~46;sR+21&o*^!kr@05kd-BkOE~$fik3efrOQTBZ`?SW&0c8l(ouaR@RoGto;kd zq?vt8c8wCV^Dc4g1g829`rP4s8;0r`^i{?69{NM*+84V1gzjZ@Z7-_VK%6e8$PUw< zU#~$`yp-v1r$RD?sSID~ed3AIqs4)Gr>1`0-IG^>TFuUXzI&tkxb4>QCtid+j(Py~ z6;yfvgir}5fJ#N=9rRtnF($Hy{uh!LD~$dw$%~wzF9IYgVq;#f9yaf*bQnOPM-d{{ESAiviHk z1-dEa@=gIm`;}GD&K1S(Rd|K_-+YGJ%4ZL9Uo)TA%WePQcJIcvbQjDHvUNgw&H1p~PK3}HC_2i`CYcH2rRuA$;gEW-wJ>a++ zx$T9WP`7ehGp|xl@Je7K1=YROYHBy%3_(jX-_pPvo4MmApQj!b$ywOU7b7XneA!8Y zt7_m5_1m1gp4`D5XSls>a(sLCI9KeRR+}pRfAce}v5T?V6QEe=IenlG@Vh|qoz#Y; ze5aJp0wsHol>Z7&_;*3=^ODX2#j#jRd%6PjGVNB-U!o!To1iGQt3gS>6cm58J~X74 zr$jAXw)j&wO6ru9&Qg+}m-Mux8A*R2>1s*qBwZ@$LP-xw+Ae96q<%?3#5nzu;wi(t z7}zY-CB9t>=y$5nWByd=8WVcyLsu2?!=O}}P^F4kW?o%_L9+_AR8MDBDId1*OrP@5 zG$qBSC<#)ztoeQwF5t!667R`u2w#388joa?38AyRMakWGZsGxKIOCs=*)Gv7d&iQc J`Nl<@{{i$a3U~kj literal 0 HcmV?d00001 diff --git a/42sh/src/line-editing/copy_cut_paste.c b/42sh/src/line-editing/copy_cut_paste.c index eebce795..f74d7a6a 100644 --- a/42sh/src/line-editing/copy_cut_paste.c +++ b/42sh/src/line-editing/copy_cut_paste.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 12:45:06 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:42:34 by gwojda ### ########.fr */ +/* Updated: 2017/01/22 14:10:31 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,52 +14,67 @@ static void ft_v(char *tmp, size_t *pos, char **str) { - int i; - int j; - int len; + size_t tmp_pos; + int i; i = 0; - j = 0; - len = *pos; + tmp_pos = *pos; if (!tmp) return ; while (tmp[i]) { - *str = ft_realloc_imput(*str, tmp[i], *pos); - ++(*pos); + *str = ft_realloc_imput(*str, tmp[i], *pos + i); ++i; } - ft_putstr((*str) + *pos - i); - if (ft_nb_last_line(*str, *pos) == ft_size_term() - 1) + if (*pos) { - ft_putchar(' '); - ft_putchar('\b'); + --(*pos); + ft_get_beggin_with_curs(*str, pos); } - *pos = ft_strlen(*str); - ft_move_to_beggin(*str, pos); - *pos = len; - write(1, *str, *pos); + ft_current_str(*str, *pos); + ft_get_next_str(*str, pos); + ft_putnc('\b', *pos - tmp_pos); + (*pos) = tmp_pos; +} + +static char *ft_strdupi_space(char const *s) +{ + int i; + char *str; + + i = 0; + while (s[i] && s[i] != '\n') + i++; + str = (char *)malloc(sizeof(char) * (i + 1)); + if (str) + { + str[i--] = '\0'; + while (i >= 0) + { + str[i] = s[i]; + i--; + } + } + return (str); } static void ft_x(char **tmp, size_t *pos, char **str) { int i; - i = ft_strlen(*str) - 1; if (*tmp) ft_strdel(tmp); - *tmp = ft_strdup(&(*str)[(*pos)]); - while (i >= 0 && i >= (int)*pos) + *tmp = ft_strdupi_space(&(*str)[(*pos)]); + i = ft_strlen(*tmp); + while (i >= 0) { - *str = ft_remove_imput(*str, i); + *str = ft_remove_imput(*str, *pos + i); --i; } - ft_move_to_beggin(*str, pos); ft_puttermcaps("cd"); - ft_putstr(*str); - *pos = ft_strlen(*str); } + void ft_cxv(int ret, size_t *pos, char **str) { static char *tmp = NULL; @@ -72,7 +87,7 @@ void ft_cxv(int ret, size_t *pos, char **str) { if (tmp) ft_strdel(&tmp); - tmp = ft_strdup(&(*str)[(*pos)]); + tmp = ft_strdupi_space(&(*str)[(*pos)]); } else if (ret == TOUCHE_OPT_V) ft_v(tmp, pos, str); diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index cd1de32d..07281fa2 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/01/22 11:15:54 by gwojda ### ########.fr */ +/* Updated: 2017/01/22 15:03:13 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,7 +25,9 @@ static int ft_lecture_3(int ret, char **str, size_t *i) static int ft_lecture_2(int ret, char **str, size_t *i) { - if (ret == TOUCHE_OPT_LEFT || ret == TOUCHE_OPT_RIGHT) + if (ret == TOUCHE_F5) + ft_printall(*str, i); + else if (ret == TOUCHE_OPT_LEFT || ret == TOUCHE_OPT_RIGHT) ft_move_to_word(ret, i, *str); else if (ret == TOUCHE_OPT_X || ret == TOUCHE_OPT_C || ret == TOUCHE_OPT_V) diff --git a/42sh/src/line-editing/print_and_del.c b/42sh/src/line-editing/print_and_del.c index 9d2e437c..8493e3c9 100644 --- a/42sh/src/line-editing/print_and_del.c +++ b/42sh/src/line-editing/print_and_del.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:02:43 by gwojda #+# #+# */ -/* Updated: 2017/01/21 16:57:38 by gwojda ### ########.fr */ +/* Updated: 2017/01/22 15:02:02 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 78daff55..5e783640 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/01/20 12:07:02 by gwojda ### ########.fr */ +/* Updated: 2017/01/22 14:57:05 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -49,9 +49,9 @@ int ft_readline(void) { static t_list_history *head = NULL; - ft_prompt(); if (tcsetattr(0, TCSANOW, ft_stats_term_termcaps()) == -1) return (-1); + ft_prompt(); data_singleton()->line.input = ft_lecture(head); ft_putstr("\n"); ft_check_quotes(&data_singleton()->line.input, head); diff --git a/42sh/src/line-editing/tool_line_2.c b/42sh/src/line-editing/tool_line_2.c index f691a218..e97c1458 100644 --- a/42sh/src/line-editing/tool_line_2.c +++ b/42sh/src/line-editing/tool_line_2.c @@ -6,12 +6,64 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 19:07:52 by gwojda #+# #+# */ -/* Updated: 2017/01/21 16:52:48 by gwojda ### ########.fr */ +/* Updated: 2017/01/22 17:20:05 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" +static void ft_clear_window() +{ + pid_t soon_pid; + char *tab_str[2] = {(char *){"/usr/bin/clear"}, NULL}; + + soon_pid = fork(); + if (soon_pid != 0) + wait(NULL); + else + execve("/usr/bin/clear", tab_str, data_singleton()->env); +} + +void ft_printall(char *str, size_t *pos) +{ + size_t pos_tmp; + int ret; + + if (read(0, &ret, sizeof(int)) == -1 || ret != 126 || !str) + return ; + ft_clear_window(); + ft_prompt(); + sleep(1); + pos_tmp = *pos; + + ft_putstr("\033[31m"); + ft_puttermcaps("cd"); + ft_puttermcaps("sc"); + ft_putstr(str); + while (42) + { + ret = 0; + read(0, &ret, sizeof(int)); + if (ret == TOUCHE_F6) + { + ret = 0; + if (read(0, &ret, sizeof(int)) && ret == 126) + break ; + } + } + ft_puttermcaps("rc"); + ft_puttermcaps("cd"); + ft_putstr("\033[37m"); + --(*pos); + ft_get_beggin(str, pos); + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + if (!str[*pos]) + --(*pos); + ft_putnc('\b', *pos - pos_tmp + 1); + *pos = pos_tmp; +} + void ft_get_beggin_with_curs(char *str, size_t *pos) { while ((*pos) && str[(*pos)] != '\n') diff --git a/42sh/src/line-editing/toolz_parseur.c b/42sh/src/line-editing/toolz_parseur.c index 963ad457..465063d8 100644 --- a/42sh/src/line-editing/toolz_parseur.c +++ b/42sh/src/line-editing/toolz_parseur.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/16 16:14:46 by gwojda #+# #+# */ -/* Updated: 2017/01/21 18:16:56 by gwojda ### ########.fr */ +/* Updated: 2017/01/22 11:58:06 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -59,18 +59,30 @@ void ft_found_prev_word(char *str, size_t *pos) i = 0; if (!*pos) return ; + if (!(str[*pos] == '\n' || str[*pos] == ' ')) + { + ft_puttermcaps("le"); + --(*pos); + } + while ((int)*pos - i - 1 > 0 && str[*pos - i - 1] == ' ') + { + ft_puttermcaps("le"); + ++i; + } + (*pos) = (i && str[*pos - i] == '\n') ? *pos - i + 1 : *pos - i; + i = 0; if (str[*pos - 1] == '\n') { ft_puttermcaps("cd"); + (*pos) -= 2; ft_get_beggin(str, pos); - --(*pos); ft_current_str(str, *pos); ft_get_next_str(str, pos); ++(*pos); } else { - if (!(str[*pos - i] == '\n' || str[*pos - i] == ' ')) + if (!(str[*pos] == '\n' || str[*pos] == ' ')) { ft_puttermcaps("le"); --(*pos); @@ -99,9 +111,13 @@ void ft_found_next_word(char *str, size_t *pos) int i; i = 0; + while (str[i + *pos] && str[i + *pos] == ' ') + { + ft_putchar(str[i + *pos]); + ++i; + } if (str[*pos] == '\n') { - sleep(1); if (*pos) { --(*pos); @@ -109,11 +125,11 @@ void ft_found_next_word(char *str, size_t *pos) } ft_puttermcaps("cd"); ft_get_next_str(str, pos); + (*pos) += 2; ft_current_str(str, *pos); ft_get_next_str(str, pos); - (*pos) -= 2; + --(*pos); ft_get_beggin_with_curs(str, pos); - (*pos) += 2; } else { From 7bca444ddce28df10cc21d12f086be67d3633ff4 Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Sun, 22 Jan 2017 17:28:16 +0100 Subject: [PATCH 09/67] ajout de opt x/c/v pour copier/coller la suite de la ligne affichee + correction de quelques bugs sur opt fleches haut/bas/gauche/droite + ajout d'un mode visu (f5 lance l'affichage complet de la str, f6 quitte ce mode) --- 42sh/obj/ast_free.o | Bin 3596 -> 0 bytes 42sh/obj/builtin_bg.o | Bin 5336 -> 0 bytes 42sh/obj/builtin_cd.o | Bin 4988 -> 0 bytes 42sh/obj/builtin_echo.o | Bin 2676 -> 0 bytes 42sh/obj/builtin_env.o | Bin 2348 -> 0 bytes 42sh/obj/builtin_exit.o | Bin 4544 -> 0 bytes 42sh/obj/builtin_fg.o | Bin 5276 -> 0 bytes 42sh/obj/builtin_jobs.o | Bin 4920 -> 0 bytes 42sh/obj/builtin_setenv.o | Bin 3296 -> 0 bytes 42sh/obj/builtin_unsetenv.o | Bin 2808 -> 0 bytes 42sh/obj/command_getoutput.o | Bin 6472 -> 0 bytes 42sh/obj/copy_cut_paste.o | Bin 5452 -> 0 bytes 42sh/obj/data_exit.o | Bin 5160 -> 0 bytes 42sh/obj/data_init.o | Bin 5852 -> 0 bytes 42sh/obj/data_singleton.o | Bin 5356 -> 0 bytes 42sh/obj/do_job_notification.o | Bin 4948 -> 0 bytes 42sh/obj/exec_ampersand.o | Bin 3116 -> 0 bytes 42sh/obj/exec_and_if.o | Bin 6660 -> 0 bytes 42sh/obj/exec_command.o | Bin 5844 -> 0 bytes 42sh/obj/exec_dgreat.o | Bin 3860 -> 0 bytes 42sh/obj/exec_great.o | Bin 3856 -> 0 bytes 42sh/obj/exec_less.o | Bin 3848 -> 0 bytes 42sh/obj/exec_or_if.o | Bin 6652 -> 0 bytes 42sh/obj/exec_pipe.o | Bin 6416 -> 0 bytes 42sh/obj/exec_semi.o | Bin 2912 -> 0 bytes 42sh/obj/ft_exec.o | Bin 4688 -> 0 bytes 42sh/obj/ft_findexec.o | Bin 4740 -> 0 bytes 42sh/obj/ft_parse.o | Bin 5264 -> 0 bytes 42sh/obj/ft_post_tokenize.o | Bin 3404 -> 0 bytes 42sh/obj/ft_putast.o | Bin 3896 -> 0 bytes 42sh/obj/ft_putast2.o | Bin 4376 -> 0 bytes 42sh/obj/ft_split_whitespaces.o | Bin 4200 -> 0 bytes 42sh/obj/ft_tokenize.o | Bin 4916 -> 0 bytes 42sh/obj/get_lexer_state.o | Bin 3088 -> 0 bytes 42sh/obj/get_touch.o | Bin 5404 -> 0 bytes 42sh/obj/get_touch_toolz.o | Bin 4652 -> 0 bytes 42sh/obj/get_touch_toolz_2.o | Bin 5264 -> 0 bytes 42sh/obj/is_builtin.o | Bin 4492 -> 0 bytes 42sh/obj/job_addprocess.o | Bin 5048 -> 0 bytes 42sh/obj/job_cmp_id.o | Bin 3760 -> 0 bytes 42sh/obj/job_format.o | Bin 4020 -> 0 bytes 42sh/obj/job_format_head.o | Bin 4172 -> 0 bytes 42sh/obj/job_free.o | Bin 3924 -> 0 bytes 42sh/obj/job_getprocess.o | Bin 4784 -> 0 bytes 42sh/obj/job_getrank.o | Bin 4388 -> 0 bytes 42sh/obj/job_is_completed.o | Bin 5280 -> 0 bytes 42sh/obj/job_is_stopped.o | Bin 4796 -> 0 bytes 42sh/obj/job_kill_all.o | Bin 4180 -> 0 bytes 42sh/obj/job_notify_change.o | Bin 4456 -> 0 bytes 42sh/obj/job_notify_new.o | Bin 4568 -> 0 bytes 42sh/obj/job_remove.o | Bin 4512 -> 0 bytes 42sh/obj/job_update_id.o | Bin 3956 -> 0 bytes 42sh/obj/job_update_status.o | Bin 2732 -> 0 bytes 42sh/obj/job_wait.o | Bin 3712 -> 0 bytes 42sh/obj/launch_process.o | Bin 6328 -> 0 bytes 42sh/obj/lexer_backslash.o | Bin 3540 -> 0 bytes 42sh/obj/lexer_default.o | Bin 4000 -> 0 bytes 42sh/obj/lexer_delim.o | Bin 3600 -> 0 bytes 42sh/obj/lexer_dquote.o | Bin 3724 -> 0 bytes 42sh/obj/lexer_great.o | Bin 3872 -> 0 bytes 42sh/obj/lexer_greatand.o | Bin 3776 -> 0 bytes 42sh/obj/lexer_less.o | Bin 3864 -> 0 bytes 42sh/obj/lexer_lessand.o | Bin 3776 -> 0 bytes 42sh/obj/lexer_number.o | Bin 4280 -> 0 bytes 42sh/obj/lexer_quote.o | Bin 3608 -> 0 bytes 42sh/obj/lexer_sep.o | Bin 4008 -> 0 bytes 42sh/obj/lexer_special.o | Bin 3920 -> 0 bytes 42sh/obj/lexer_var.o | Bin 3948 -> 0 bytes 42sh/obj/lexer_word.o | Bin 3916 -> 0 bytes 42sh/obj/line_return_toolz.o | Bin 5768 -> 0 bytes 42sh/obj/list_toolz.o | Bin 4000 -> 0 bytes 42sh/obj/main.o | Bin 5176 -> 0 bytes 42sh/obj/mark_job_as_running.o | Bin 4432 -> 0 bytes 42sh/obj/move_to_line.o | Bin 5008 -> 0 bytes 42sh/obj/parse_dgreat.o | Bin 4616 -> 0 bytes 42sh/obj/parse_dless.o | Bin 4540 -> 0 bytes 42sh/obj/parse_great.o | Bin 4616 -> 0 bytes 42sh/obj/parse_greatand.o | Bin 4508 -> 0 bytes 42sh/obj/parse_less.o | Bin 4604 -> 0 bytes 42sh/obj/parse_lessand.o | Bin 4508 -> 0 bytes 42sh/obj/parse_separator.o | Bin 4300 -> 0 bytes 42sh/obj/parse_subshell.o | Bin 4644 -> 0 bytes 42sh/obj/parse_word.o | Bin 4296 -> 0 bytes 42sh/obj/print_and_del.o | Bin 4448 -> 0 bytes 42sh/obj/process_cmp_pid.o | Bin 3152 -> 0 bytes 42sh/obj/process_format.o | Bin 5316 -> 0 bytes 42sh/obj/process_free.o | Bin 3528 -> 0 bytes 42sh/obj/process_mark_status.o | Bin 4280 -> 0 bytes 42sh/obj/process_redirect.o | Bin 3340 -> 0 bytes 42sh/obj/process_reset.o | Bin 5116 -> 0 bytes 42sh/obj/process_setexec.o | Bin 4128 -> 0 bytes 42sh/obj/process_setgroup.o | Bin 4956 -> 0 bytes 42sh/obj/prompt.o | Bin 4764 -> 0 bytes 42sh/obj/put_job_in_background.o | Bin 4044 -> 0 bytes 42sh/obj/put_job_in_foreground.o | Bin 5456 -> 0 bytes 42sh/obj/quotes_gest.o | Bin 4408 -> 0 bytes 42sh/obj/reader.o | Bin 5096 -> 0 bytes 42sh/obj/readline.o | Bin 5488 -> 0 bytes 42sh/obj/reduce_bquotes.o | Bin 4400 -> 0 bytes 42sh/obj/reduce_parens.o | Bin 3980 -> 0 bytes 42sh/obj/set_exitstatus.o | Bin 2876 -> 0 bytes 42sh/obj/shell_exit.o | Bin 2620 -> 0 bytes 42sh/obj/shell_get_avdata.o | Bin 5464 -> 0 bytes 42sh/obj/shell_get_opts.o | Bin 3632 -> 0 bytes 42sh/obj/shell_init.o | Bin 3932 -> 0 bytes 42sh/obj/sigchld_handler.o | Bin 5180 -> 0 bytes 42sh/obj/sigint_handler.o | Bin 2608 -> 0 bytes 42sh/obj/sigtstp_handler.o | Bin 4128 -> 0 bytes 42sh/obj/sigttin_handler.o | Bin 2552 -> 0 bytes 42sh/obj/sigttou_handler.o | Bin 2552 -> 0 bytes 42sh/obj/token_append.o | Bin 2916 -> 0 bytes 42sh/obj/token_cmp_type.o | Bin 2676 -> 0 bytes 42sh/obj/token_expand_var.o | Bin 3048 -> 0 bytes 42sh/obj/token_free.o | Bin 3028 -> 0 bytes 42sh/obj/token_init.o | Bin 2760 -> 0 bytes 42sh/obj/token_print.o | Bin 3536 -> 0 bytes 42sh/obj/tool_line.o | Bin 4668 -> 0 bytes 42sh/obj/tool_line_2.o | Bin 5452 -> 0 bytes 42sh/obj/toolz.o | Bin 4676 -> 0 bytes 42sh/obj/toolz2.o | Bin 3420 -> 0 bytes 42sh/obj/toolz_parseur.o | Bin 6916 -> 0 bytes 42sh/obj/toolz_termcaps.o | Bin 5464 -> 0 bytes 122 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 42sh/obj/ast_free.o delete mode 100644 42sh/obj/builtin_bg.o delete mode 100644 42sh/obj/builtin_cd.o delete mode 100644 42sh/obj/builtin_echo.o delete mode 100644 42sh/obj/builtin_env.o delete mode 100644 42sh/obj/builtin_exit.o delete mode 100644 42sh/obj/builtin_fg.o delete mode 100644 42sh/obj/builtin_jobs.o delete mode 100644 42sh/obj/builtin_setenv.o delete mode 100644 42sh/obj/builtin_unsetenv.o delete mode 100644 42sh/obj/command_getoutput.o delete mode 100644 42sh/obj/copy_cut_paste.o delete mode 100644 42sh/obj/data_exit.o delete mode 100644 42sh/obj/data_init.o delete mode 100644 42sh/obj/data_singleton.o delete mode 100644 42sh/obj/do_job_notification.o delete mode 100644 42sh/obj/exec_ampersand.o delete mode 100644 42sh/obj/exec_and_if.o delete mode 100644 42sh/obj/exec_command.o delete mode 100644 42sh/obj/exec_dgreat.o delete mode 100644 42sh/obj/exec_great.o delete mode 100644 42sh/obj/exec_less.o delete mode 100644 42sh/obj/exec_or_if.o delete mode 100644 42sh/obj/exec_pipe.o delete mode 100644 42sh/obj/exec_semi.o delete mode 100644 42sh/obj/ft_exec.o delete mode 100644 42sh/obj/ft_findexec.o delete mode 100644 42sh/obj/ft_parse.o delete mode 100644 42sh/obj/ft_post_tokenize.o delete mode 100644 42sh/obj/ft_putast.o delete mode 100644 42sh/obj/ft_putast2.o delete mode 100644 42sh/obj/ft_split_whitespaces.o delete mode 100644 42sh/obj/ft_tokenize.o delete mode 100644 42sh/obj/get_lexer_state.o delete mode 100644 42sh/obj/get_touch.o delete mode 100644 42sh/obj/get_touch_toolz.o delete mode 100644 42sh/obj/get_touch_toolz_2.o delete mode 100644 42sh/obj/is_builtin.o delete mode 100644 42sh/obj/job_addprocess.o delete mode 100644 42sh/obj/job_cmp_id.o delete mode 100644 42sh/obj/job_format.o delete mode 100644 42sh/obj/job_format_head.o delete mode 100644 42sh/obj/job_free.o delete mode 100644 42sh/obj/job_getprocess.o delete mode 100644 42sh/obj/job_getrank.o delete mode 100644 42sh/obj/job_is_completed.o delete mode 100644 42sh/obj/job_is_stopped.o delete mode 100644 42sh/obj/job_kill_all.o delete mode 100644 42sh/obj/job_notify_change.o delete mode 100644 42sh/obj/job_notify_new.o delete mode 100644 42sh/obj/job_remove.o delete mode 100644 42sh/obj/job_update_id.o delete mode 100644 42sh/obj/job_update_status.o delete mode 100644 42sh/obj/job_wait.o delete mode 100644 42sh/obj/launch_process.o delete mode 100644 42sh/obj/lexer_backslash.o delete mode 100644 42sh/obj/lexer_default.o delete mode 100644 42sh/obj/lexer_delim.o delete mode 100644 42sh/obj/lexer_dquote.o delete mode 100644 42sh/obj/lexer_great.o delete mode 100644 42sh/obj/lexer_greatand.o delete mode 100644 42sh/obj/lexer_less.o delete mode 100644 42sh/obj/lexer_lessand.o delete mode 100644 42sh/obj/lexer_number.o delete mode 100644 42sh/obj/lexer_quote.o delete mode 100644 42sh/obj/lexer_sep.o delete mode 100644 42sh/obj/lexer_special.o delete mode 100644 42sh/obj/lexer_var.o delete mode 100644 42sh/obj/lexer_word.o delete mode 100644 42sh/obj/line_return_toolz.o delete mode 100644 42sh/obj/list_toolz.o delete mode 100644 42sh/obj/main.o delete mode 100644 42sh/obj/mark_job_as_running.o delete mode 100644 42sh/obj/move_to_line.o delete mode 100644 42sh/obj/parse_dgreat.o delete mode 100644 42sh/obj/parse_dless.o delete mode 100644 42sh/obj/parse_great.o delete mode 100644 42sh/obj/parse_greatand.o delete mode 100644 42sh/obj/parse_less.o delete mode 100644 42sh/obj/parse_lessand.o delete mode 100644 42sh/obj/parse_separator.o delete mode 100644 42sh/obj/parse_subshell.o delete mode 100644 42sh/obj/parse_word.o delete mode 100644 42sh/obj/print_and_del.o delete mode 100644 42sh/obj/process_cmp_pid.o delete mode 100644 42sh/obj/process_format.o delete mode 100644 42sh/obj/process_free.o delete mode 100644 42sh/obj/process_mark_status.o delete mode 100644 42sh/obj/process_redirect.o delete mode 100644 42sh/obj/process_reset.o delete mode 100644 42sh/obj/process_setexec.o delete mode 100644 42sh/obj/process_setgroup.o delete mode 100644 42sh/obj/prompt.o delete mode 100644 42sh/obj/put_job_in_background.o delete mode 100644 42sh/obj/put_job_in_foreground.o delete mode 100644 42sh/obj/quotes_gest.o delete mode 100644 42sh/obj/reader.o delete mode 100644 42sh/obj/readline.o delete mode 100644 42sh/obj/reduce_bquotes.o delete mode 100644 42sh/obj/reduce_parens.o delete mode 100644 42sh/obj/set_exitstatus.o delete mode 100644 42sh/obj/shell_exit.o delete mode 100644 42sh/obj/shell_get_avdata.o delete mode 100644 42sh/obj/shell_get_opts.o delete mode 100644 42sh/obj/shell_init.o delete mode 100644 42sh/obj/sigchld_handler.o delete mode 100644 42sh/obj/sigint_handler.o delete mode 100644 42sh/obj/sigtstp_handler.o delete mode 100644 42sh/obj/sigttin_handler.o delete mode 100644 42sh/obj/sigttou_handler.o delete mode 100644 42sh/obj/token_append.o delete mode 100644 42sh/obj/token_cmp_type.o delete mode 100644 42sh/obj/token_expand_var.o delete mode 100644 42sh/obj/token_free.o delete mode 100644 42sh/obj/token_init.o delete mode 100644 42sh/obj/token_print.o delete mode 100644 42sh/obj/tool_line.o delete mode 100644 42sh/obj/tool_line_2.o delete mode 100644 42sh/obj/toolz.o delete mode 100644 42sh/obj/toolz2.o delete mode 100644 42sh/obj/toolz_parseur.o delete mode 100644 42sh/obj/toolz_termcaps.o diff --git a/42sh/obj/ast_free.o b/42sh/obj/ast_free.o deleted file mode 100644 index d3bbdd4d4d0bc796d6badaeaf1396e9741445153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3596 zcmb7HYm8Gx6rS7m-geui-DP>nv#>l9XqTrOF~|ncQqUM)iehd`dv~|E+^)SXECkK! zfzcP`s4%fpjBa~^Z% zn=^OL%yhrGdhU8q2+c3hfCJ!89Zehzx(9rj&RfuF3?}X47?5YvO^(qCGR>0JRdRLL zUbF1+HT|}y9Z(AKIBnMuA$;@&L^p*;rkS%gmfK9HRFp2$T>4ncst3Jp;o(f?qCky? zD=S(F>)9S&Mij%B?=#*RFVorC zVVQPjGt;|iy??6w?pJATzhizbUSZ=Vxxv->O;sOhvcmi1F7af3otbPkUb+hJ=exu! zZR;F#y|%);qCVjDyTrqxlaST%E}x{!xRvfk!%Wi~RUq>KG6Svz3Q?6y#@!=el|!8N<)^D7cciUh;qiR|echUz^%< zI@NPFp4#*5<iIDz3S=E7VKuGfO;A zPqP-=Ikw;O#db#ftx#;&up8E~P^t&K=Y$IZzex2Qk3aQg3lCy^<;ryr$G2ETCttAR z&55Q&Q+#^11GmSl<|Y`4d2cJghum5b-?lCTRoOO#AN zNzJ*TvEI=kg&Zau4w2Dv$}*#+Ric15;5QxvT^ z;qdt(YxUZcXoK#L))`}>_1aKuzb^sjP;GJ8AH6TKFfy(70hX{Xe9E!B0XOr!0jAE^ z(ikC@H@IW)giaRz=%PpjWfqFTFGNj)=8r}qgcKq?1l`LUXf&fvBO@#N#G6cl+bBY; zMo}wfQh*lA)@=?b{YJ5R4sG3PbZIe7^ZWL9ZIC)2a9EugX_e6ieEZv9r&a$dTA>@= zXl<~6ys;O8F}@AKT@b-gh>^y7Xx;(`8fp$fj0(&RAAvkU*L+{22y?EVXf5zHhJ^7Q z)T1;<20w?;L&hnHlk^Oa`~XoGm>K>JawL`+NDyHRv^QuaX~m(vOsff&FeX7ILSR_U zSvh)2_#)(5MoeS;RnMC4YYc>WlsB+%2D1rXLZ==u+ThXY9TBO82n8m{Ksn7sf{cP! zLQdkOq5Uv}4QLE4#2_55)h#J19;*vU+3t1q^*aYYt7`(nrZYX^Tk zKH<>XXAV7C-#dErTzlL{3-zy#{yz15Q}^!3fxo{U^Zu!ev+HWNe0=VD__-(Eefm%~ zesIUH7=Iq@!$%qpo(^6JegvEWm%uN9S?Y(u$H3o%{{VA$@F(|f1SE)6NEZu}mp6!; zM;G^Vr1Z$zq>II>2C~ZNV%exDRwP|4TNTA#x>$$G#qy`C8?0QHl#9iolHhq^6r)uX zPX=8)EDc}~i=Qr@2Q~1la@@1b+y6JJ~hu+L^fR^R9~MOFGNeU?nU2{A?i66e<8*vUO=m9*P=tvYMcYC zd2fkGmYrfUZ)ZEoIV+i;+q__)$Jyp2-7<^CZ_et zt$H%8FHGx;TJ_~=J(AX=M!P-?ofFc!Kdo!VNuPlwVv3z$%r>h9685ZnU1=nhoT}t_ sB_SARyrLxkFN+aK5l>u&DfLQQn5}qVOU0bk;i}O2J_|mC@}(ByKl|baI{*Lx diff --git a/42sh/obj/builtin_bg.o b/42sh/obj/builtin_bg.o deleted file mode 100644 index 92476142285fc803d6888b784457487a7af8ce73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5336 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 baAm*KCv(9yYfV?)JG1Lf$`SlsbD7(J?r2iV diff --git a/42sh/obj/builtin_env.o b/42sh/obj/builtin_env.o deleted file mode 100644 index 4dce0ec7f0777c078cf2fa62624b6d108305f5c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2348 zcma)7&1(};5TCcnrXNX@XcZJiqSRVJlT->8KU=JlN)_#g9|u`B+q6kZHzC=yRV;c? zF}HdUR6Ka_kMOAY2Y41dDtHk*7QgDu+j;3`TWtpB&6~-*-~Q&kc`qM+eEZV|AOe5` zY7n)o35?Q8>#SdCmM92>_aB-oPuCEE)FWJ@F>ve1FIn z_y?Yu%~o;?#J8EB!kb{2R`Ck2^*&^vQ_N}Smi%12Qg%)ru%F*M#_M6c zt1aS5er410<9+er)mp@JZkIQ$w}W?khWR~j5f3k&g!J<(F`lY-ZA(0>G>>&UM$KL< z*wcnFHo{b-dB%7N4)$T+(bMn?EpLUdUvhb4rh=#IE-;Md_uvg@4>4Yb@z{khKwizs zs`sE+uqC3u-c`mM=S7bZk0jW!IX~K$I3KO-;0)hM;>qm)hkpl*X#|q zG@r`Uzx2P&)R$K?_1gDLed_D2_rr7(5@Tc6E+rOnm1?16CkB)0WIEAj74iBW9ZaK> z95|NjKMd81mCDu%MWw#!Iv?sbvY{$a1BnG#Oq0T_`MEGR*P-L|GYy^*62aQ9c-MF(o z5Qv@$hjEAW7*HhCD-FEFop6t%U2anZj_}^Bzuy4r1#h&C3W#erFI^-oKR^?z;}EoICiJIdUf`fp6d*G(oKc5J7K@YO#@v^6 zdf?*$qAj_gO}Z&fYboSkyN2S$-zta7Csozcr4kUr%cbKVB()#;0O|XW!&c(y-65P$ zpi-?Ar~3JlQ?(SLB02OwCT;i?VvE`9!ZZk`NfbSCXB@;*T*M=7?JJl?-`R`W_nV;B z)>Ix0N8^vQb6xy51(z{LgEWpp{ET+tDCirg!qd{=ZCUJTNkcu2c=|D+Yn|;qnuhBE gj=KP%6x&|5``Dr(gwScWgcg&K^b3mNy&wR80b0lfiU0rr diff --git a/42sh/obj/builtin_exit.o b/42sh/obj/builtin_exit.o deleted file mode 100644 index f08787f4e736556d36d7be239e3d61bc45835cfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4544 zcmb7Idu$v>8K1rL-rINQM?#9za8;V%K>bMSP^%+#%ZEfNavY;8pgzE+hxMA!YIW%(J zP*HIZBWR&O0Oz-^Y=&XFUfp&kmC-Po;|t>2r^a7Z-y2}8#HP(Kiq=G9(g3J*L3~F> z?z=m17nhavT@^@#t&eReG%&U%lW=TG;4Tyf<5N^1Ue^Z$-Z<-c-Sq zA-)q{kQeWcSE$u0mf;kp7~X%y_h%K~xC*G}UE}ldsuM@$2Dip{m&&)B6`s3BJQ-iD zV7B5-w%~nfjdDODtq z>VZri)LX@NBx39L_NsaqQNfG@k1h2M@o`;HIzlAcUJ+{__0j#Xs@pyN)&Dn&QvK`wkTa}6!VU_0&95{S1H*M8jyXxeI`v?06 zbG>E-M^oSMAe8>09sS$43Ab(zOf>9@XFCBmtQp(uH^so1i`fH{4_1#B3j;$t+_G@0 zo?Wu7qOcuLsADs7=~MQL~FH=LITU zZ{2|bvr(_(#|(J-lf0>F5yymQ)u-&LD@?;KRSJ{BGs!r?s7ixrNDK5zpqs)p;jtW! zTn7fuV}eN7D=eDqeI(y-RDQkIp>0Wb>EU!X(v$AcI+0DGei%Eoy@_!8_T-0??@#UT zx&wz(cu0iP`@3igp@iCW5mFxeyKp59HK~!C;k+lAL^VY-f)25*lEv49`M^RXy0maQ znIt3%uYDPR82BmHbNjLbZin=;gHDIcG7`qJn#LdLxC!XD0j!h1pG@w7D2k{Y77t=z zt%#Jkg$(T@K9l`3O7=aW1P1LepEz1Z`!QMg;5sitLqj?uQzV(no$ z<-D(zKfSE!p~d1UY8}LYHh!8~*K59Z?>7;l);+*DBfQr1w&?RovTGf+3A9jH4wHw!hF{yfxAQ0;&^oMsGC?S#5lWEko}P%Nrt zN8r|R2wk_x90cRH#$sAzhFt4BCEetVCn?6!&k*7K2x9|DM z^v*YzW``l?K};$790ak+d;{;7+I3v|u&st0{PtRWV!*&{hcELRuXV;3#>28rUVzvD z*cdNrOa3{*+qNCVD|GOY$C8gd9ed^MH-7z(7oY3i_u{9{ef@W4ch499exb+AojKus z*1oY3+L9fc=<505AGiMPXD4=EyYhJX#>h)|daotUoH+9A$+s^6hndU7;o5BkFi;^bRqJn4L(8NMgUd(iwSc1yLI;DxFtKeBCG_iV= z7fXgFrlx{tozukSQ(i0?npjE7#1Ls>9xD@TjHa{bl<9w^O>{-dVwP&^SR_tU3zA8D z=suy%WVLK68smw;pf`f9UST>dEd|G_7)fVOh3;xs&tSQ8A;AZcrd`8Puc1-FzZK5} z-2G;y!K-qh;noL~Hela6{Gn!xd(0g${I_?LC+wo>@qo7mexu@g{blBqKL;`jKwbAx z+612x2HyttYNf>!C1S`6-gi`YI1~)X2z-C!Iq>}!&S-if5!B0s UwiJpr{HKIhYM#=+{B{)o0amcBIsgCw diff --git a/42sh/obj/builtin_fg.o b/42sh/obj/builtin_fg.o deleted file mode 100644 index 9da2139c8804a78f406ed21e1b0527b34b9027e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5276 zcmb7IdvFuS8Q+t9r?X^PGPWs{M+6QOT5J;njmxX1LFqvVP16`i8+wt?k}Qx|frtwUe0s5FE(=?@-K4>Q)A)yWJbO>!SrN7_Z z%E$_7=#KZk{eAoGZ@=C9_Pdpz|My@26A(i23p`L8P{&j}VyGxnQ4Qh`D33OI9cQFX z6@yc-M&&rubdoz92_Q`K&iJM~ui$EHADuuUAAQ+7NeKKA?4_s{)3l0CA!DbdqMonH z(=Yq`=}b-W)wJ0(&4FZpDQ$w(?J>>O8&}qrVgVtMa`hX|9zoW2bT)QqT7kHy`D1(u;D?!_ijny#QU+ zze2)JCyVdr`*z)aZ4Y~VHP5T^4J9ns#d`m$eDZaO59dqd^Vy_nCx+ECkc z(2fuF&*RJWZ*gC6y?-xBzUw95=r!`W{^b)^J>R7|zSGyp=j_a1b-mMd&$0XEuD^GU zd^p4|Wxan-$oQzPccgmo<@zD&-mjG#!a5zZWN**d1E#rd^%YYgPD;L*R2~K&kIX{E zpM2+ae91vGRlwWz2Gr++HzZ%L$L&cgtfZPFRN#lt-x z;2-zJ-I9>!2%VpT+6#M9U4T3S$@cB2wS`l#$|clxeQ3MSD8FWmoX;B-H$fW}VU**S zjPmdqqg*;|l>1&dD&8QAQR$sxjGR%7kxL?S-+XAErH{tJCCf0kaj^Xs2x)sFe*Q8_ zIezrqMc7ms4h~;1)YBYPj-QmI@zci04qZg{w^LsMtnAR;zH#^K-6Gy9&vH;Z%BQY))}kGG`43g`JCS$@O^ijBTdUU6$zXD`I?idV6lmK%#r`qT-;q(l0W$ zBk~DnP*{VBf=Fx=NqbvffXot(>58H!Qkg>0)j*%k6dh6Y1Q!g?g_LG7b8k}cVLCi- zi2@RVs|3#G>~yST7c*%)IS}L2Ht!F`!DKdT=F^!0ktpq*DN1+Jfy=mM4Cn7vFuXUa!R8@tt;cg%$qKr}a zeGlBT)x{_91lm+`5t9?p?K{R%gYN-@89-@y9Z#U%?_zpoQXVrj_#Zg7=PY4s51#1E z^W-aSfA%^@_dG?|K8BG(P4m&9{SqSZBHMX9G)4OZ6@OuyT8$}5e+Q3!sEyMa%MhE? zxxqt_oJF1I>kz@WfF329@9WTm?P!fbqki1i(G-jUJxi7u3Es5*`KGP1H`pvp`&@Z!#%D`u%7>16{*R{XsO3qv^j}zwHqpER!a|>}E9xMn z(!$TQ9&kq-V6#!tN+jNk$0JZQezfrkhK0GO z?;>pMttB1;H?kqSs6?q9OI$ye-{$|vhW847p4&)I;$Js53`V0( z+eS;iIniHRZPQMD<;0UupPBpiGrO0(yKwJ;(1YtzGqhiQ#_8*Co%YRtyfDp*J+%80 zco|_cQExz9jk*za3+gZ`V}ft)C#a`Te~T#)JL`ix^IsV+^BdvI7_s8Yo+ zrizg-2lACr#atj&Ok`9sw@D|MQmA6$kycEKR52Gy`u`QG0fZsL8P;Br`JNOLN;P(s zd+!j+j;IoC3h0at&M_VJ(mzRa`EvDpAyzd2|=R5%B! zQg>y-J;=(Ic$Mfb6${-Gb!Tqu`Q$`Rac8mH^nQO$u!LUJ+^cZ!!YtXM(>2Ib=8Zrb zr%hgl02&bSxqee#8S5-@9!>Z9;~B~u4gfmb`8|6aSnzwrA5qjm&>!^8R#Z*XyHvlX z?=Pvrv+8v1h#E+#KJ8XDaF_ZK?Nv3hPYrBRV|b=i^<{OkwgN_L)!=efKZ3!xYMazX zZBUIu7g&xFw}Nb~I#v5VrFNGZI;$O0do+C(@N!LmO!d8{D!=v3!X69pRqikj$Ywm? z-HOjb!tKsp54SInc(%mM2go^{Z$cvfbn^R-ci8zu$NYjCTXN@TKvS5-5e zblj_^nR3j8lgkKmC{ftzb|s2tp=8_q-(SOyPe3-ptleo|kr%{{jHLS0w-d diff --git a/42sh/obj/builtin_jobs.o b/42sh/obj/builtin_jobs.o deleted file mode 100644 index 1260e07f2bf29b914f14d323653398a628896728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4920 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 Ir_)&XKh(C^ZU6uP diff --git a/42sh/obj/builtin_unsetenv.o b/42sh/obj/builtin_unsetenv.o deleted file mode 100644 index c95cd843017e0b98a66f7bcdc9953a9d4db6f49c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcma)8O>7%g5T0G6fhPdJ#gmdfW(2Sh(o0ciAGeakPvX_p%RxIg49SL<$@Fe!p!Wx7wk<-Jkq>* zGjHDaX6F6u{`BYX|M&qUA7F#rhg@aYB$1KsMcyXk9q3a&wn}r5gpQa%93>-?rrG9_ z?e<;$RBrmzf4b;h<{iQ#=;3|D#p`IhJVgEGb;AkK8=t@vW!xK2uU5;ZX6f@3 z-mZM#7^{JZ-IEEtaf;rcI9XP#m$!@siw_47&HWjOUN< zInTg#&@{8C&D3yrh2H%hT;h169B-84aTP)UMbRfI&R@A?If&kTw>aKce9|)F5!rW$ zkLnU5hY&g-QSkR5pXK-I8M@>@o2p4(QNjV-k~ zb?Xw`qIqgFck_B~gOF7tx1qLcNUHHf~A?+aYdtz%0g>o{^#Z3X$@F^{#CUE7)7 z8eVgtSGJ#xp5IT7tsG7rX*Jdz`zBSXm0MrADm8QKn;*B^?N)BX(Ka?0Q9F25UAdNd z<-0MutjWpA)5ntwX02YTSjmx8CY4D(VwCZP85+r;k{UjgI`}BmYeqWXD3$G!B_tlI zx@nu%Ldt;jR2>o0vx}9vf}S2eR4)Se-tmHxWkXfBi(nM>8t4mvQ>##dIqHBkAUzaG zFkd95+!q;;;#e^`g~qrv+V6`z9eO78aQJBA`7rJf1DTtSCh(yg?o!zx_#)4RLb%6D z6v)AUz!C5>mc>2J0oo1-!($|nsM>3S^~o0s=Sdr&iKxByE@^SDO*ctPe2*F^3KJh((c6H%ZExvOlOja zu95@_N`{{^x^!-wndSFFM)ISxqo|)mrmQJmst8?SB+8pilrA^@UnG89g`!38PU2ff zKwTsPl+K(0X(=Yf!v4T2deKVvBWM05uy$K)J&Z+S@5qPuiQk7W(MN_Su$830BKxqF zXbohky5zSg=2Em??^l8-I)i8%$Q-VobTn`Wq~)Ot8=d^JQ5a z4f|0`Ot5&CJutxnSJ>b*3uM`VGRtB(a#xnIEaH5^d@a_eG1<4U>I>Vlg5lv>?<3=~ zL-gl`8#8n_O0*9>DKBtISW#*?aX+CthpS^45;)SSgSP8o&}MA< dB{b%%pcQmm*Xku}wrtuJ3!EVwE0|@(`4<`pf$;zU diff --git a/42sh/obj/command_getoutput.o b/42sh/obj/command_getoutput.o deleted file mode 100644 index 41121df3932b98c65f7a5bbab3c00694be00a91c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6472 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 diff --git a/42sh/obj/copy_cut_paste.o b/42sh/obj/copy_cut_paste.o deleted file mode 100644 index 01eb6c101be72a8b820a05b00ed0f16507d21f7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5452 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 bvx6VC`Fd5U9sCF`72HZ$*yvQOK|uL04SRQ# diff --git a/42sh/obj/data_singleton.o b/42sh/obj/data_singleton.o deleted file mode 100644 index 3ff780c657366585541fd1557c206608e55f8472..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5356 zcmb7IeT-CB6~FJzd-G;?W@l$V_$bT5z$`0R_5)bTN+V@k+Aa-^m2Z=l*V(skcZbf- zjPu@X0f{zJ8@{xyhDH;N*qGSHe`o`SCN!Zoh9J?>7-LaGNQg;e(`Z|5V=?IOci(-p zyCYb<$+_p8-#ho*bHC1g@4fZu`!_5hw1_|jGC=1{R2dM;9iSoVw@E_9zt8lRypq6-tf->iu1w zVJ*aK(*q4$%&-Xk<%WkV?j*-QGrrK@)u8Qd`^y(cOKei_?=>}9!(0TEAH)N`73-mv z`lj(!a>X$h3sdi}y>5Kh8v}pS>YMtT$T>2^Tlovu@w5Hq%H@J<7jqK~@4w=kuj1RO z0{Yiy#uxZ24eyoGkx%L=={5MF?2|t<)I^zJ@)1x&q!v|rtJ@BCf$mcFBLNbJ$*fWnWatv2fKTq z4@yt}%AOU=gjaETCvy2>??}$i*lciVzizQXOcOkqVHlLiU$ER>gm3f zE=OH0dik-UJCfn>i@ZPmiP8vq@!iTqzT^qV&dZ7N9WuCa?2-f=TO!a4q3#IBfkn-y zoO|}h^Gr`(*>y*RtOHL0Fg2D?@@nJDO^R~PAD0t6s%ChUvn57H@jBSFn#Nw67NOTQaFwRlL}DGp=2>|3IRx5b z%E(%~Bon&~42Wk`#N@e8ise!hV(O(ti14+fmJ35b+kPBaW7C)6MvHs}O@~2^&GAV1 zW+aR;AZ7*CE>QCRs0-GoX)CM(g!e((Dm^Q#Dx@3K`t@wg`g-_mwVq8|2cVgVPrFOc z&b59BZ4R|HdNyPI0@{Pr2J~#7^?PV}YG2T^1J3Xp61iDGRL=_QLdG@h4ie#;<{$FjiZC0hb}chp_&k>K64R0-wUaa&lc13 zkD z)ZjPyMyNJIjU_LHY6@yP`F5x_L7kht40RUUrlDq%pF+KxYBSV7 zz$9U5sYNhr>POWk8oR-+5RYlGYv3_0{Q;RJTSORbTr)SrYCdGWBi;qpXDqWg$K2k= zot%+X(BxV#=Zp+MyND)6H`m|+Xk0C$huixhNStt^SI^G3z7%SG-0a&zZH1ogtgWlD zQqL|G#w9p3|A=ZGtn^GXooFo|0BE@$R>JrgVk^&p!7ray#$=`;<=Ch_J`T3i?6OMW za+fS+^n0Pn{j`kHKMhUpwa@F>r1dN`xq~pyv@o{ASM9j#bFhwE28S?VGR?qLAPLDr zOcPNdUm76W&mY_W%ALF37=SzkVm6`8CJ+lV4fQbhgno&!+|2L)W0QuD3<$4CvS6NM zd=Y$!81jvYbB4izVj#Ynr9jP~Ss=b=@jI5|VQGgvAG83p5Y+e7!Nj>E`HpmQ^3;i+ zUi|0VSDM;ieQ#U3V!0jP-89;<${0`o)@f`1-iMdkoy@WQZ$8oaEB|P|qpB}SZyRoH zKYg|9uU+46YXA7~ct`Zt_xiI>y!*=e(<2>on%%A)r=I@g;7hT~7tXY8xbW5UKbe0q z-TwMVZpZ8US6{!slod}eA>MY%iV2$#^SFYTng}slsfN6?2=NM4R?K4(nu?zH03q%VWyKUt zh(}-fV)`V+gsrTY9|3lm~?R#v>53GupC zzW&#dx2B~Vw5sJ2x|mVI9H8ynEVMmoEuFMt&%uh3@Jy#a3eI?#i^O0m{fvHJWB9w~ z9@y$4iCWXHry5af?1Or~=oG4ayY8)em0qRw=2s2eH52jn)|mk4wSy1s@S{kGiF`3H z-(P#i>0Le!#8Ka_xVaI2#{>YsO9Bb6!uVz>`jt{400Os=G1)a4vmAVa0LQK>c)l_Y zz8wNoeIh`Cc>!Hi0;8F)(fC?p)-)PL96baj(xjP*hKJ2)^qXcw^nw|S?gX!zdeql- zOqf_2*mW#Yd>%MjcUyrz!TSMvbPYI$9_>}UOL691;$V`uL!r(bokGL#4HcMZVxtbQk)NGH{0Eat2POaj diff --git a/42sh/obj/do_job_notification.o b/42sh/obj/do_job_notification.o deleted file mode 100644 index 9dd64dd4e02d646cdb91a74c19569a75e3682ca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4948 zcma)AYit}>6}~gOGduRK*BjdnPMpUk&Z7yjoo8#cAvkSPZ9)odh}#5O4eQylcf)#j z*_ln_riRcw6xRenBP1$>RHR4*R354V0z@E%q9{TL1pQHdfGp9d4U`h`BQ-6;eBYfr zX1z&Bu5|9X-?`_0bME8Zz4mY4`}==lLTC|z3KE4}G*G1>C<`DN;#-tg;z7rh@(D3G z1tq1%*|zT<_7#A#?R`7<@B1GPTb&F7g?x^vdlC!*pg?P0NP$MdU&(uguN@`XH4 zsQzg)92sbRE<`*zcc?aEgH-m|_KwH5?|o?2%U5x|qx3#bZf==F8S)j&j`V8e8{&f3 zl?R&YK+wD?Uv_Ay>K@|y&5bYQ`f0=Z{rxI^Q0}S5&Ls(o(k* zL9<~$g83qeC1qoLFR1ey#y8e_J3gm8ih25Wt@Ko(l(X$UJL*SVRD5Y=d=Y$1nMG~E zJ%wgNd~V(zu3~qC0gd;;l;Rr*y2VAsry%c`eAuQA&vUU*l8lY>O{;wPMtA_#MYrM> z@o`a>I*+XvFeR?*dEMGT*(}JJAG;A8yxW#tM3OY zW4sQKnb`SOW|G3@wal^cYohh|YwS7wp#(mQ&TB#Ev>g3&ZbRnumY+cVcrn|PgVQ@E z^~}UCLSh&u@0-{;CH;?0gKs(f5CUfbzUj$+*;UuP`smy)IjUdTGLr*V=Gc^$q4mVA zxiXU(_+8dA6B+9&#;Vu{Qk>bQhTAGDdb@~pLhkBfH$*-1+eYvs?XqU=< zVYuLA{X)6a>xk{VY0`W4Joa$Gwr}%BFE4KLX;CQo;-K&ulkj9+$cf4bt3uB9d8o5hWSbpA4A`_09a$g0 zr9(9zSA}m67qcUxSjNm{MbhCy)${F2wd}YaU5W+I#}}mHTDb60+V%=hyMk5y2Njlt zwUSpDDY>~cnM-^X_@m_{uu#ST847Fh@;Qu3+9R7HzqFPOVzS9Br(mC#@>ts_P4F zp0+aCZbXtPvnx4IYr`4Wdtq$T2AU(u`{MV{FHqScXtrVYiFzAq&WkO$zrjb3l z4D9!Utd$>*$G7pWIgX2ncM(3ppzQ_{TOxb?@;g=Tjc*-*e-7Bqg$I{d| z78n0aJ^$@|_!HfsgueX6(}W3a;PK0}!I6T{9)%#sf~t6omWyUC1kt z*C1~~-h;Ft;51|tgd2ANG6g<#2_EwK&?ww`ns_9XiD^O;vqzb@>ooBgC=)l2CZ1kp zV)oL+gvR~D!h=o|cV3xz$Y|oh<0}b;*-sO%1I5L3q^T2?@?s{_#1p2xn4L5+sT4g= zEKN)W<;4V~iE~vZCL>ME3PsN=i6$OdW#ZL96R#UJkQWC{yib&gxj++FSp~sOqsc*~ zy#C*LjNz>D%wj}XIB%4o4vo+}rYzdidxds5rKJ)v>r3!r#EaN*okTM;YP=BJlc|&X zgDpWqVQ=88i@%UTdq3HNTH`k$TEk-puM4MG^ zgA!@g472$WL;sG^e85;_`bKQnXf{7$q|Duhwbjtkj9JT#B%ra?hyZr#tJ{q(;8^cV zhGpiB`88t!V6@k0H4hkVK{JA8*8%*(>^2g;#`0&4)x*Zx-NqKcXXlPmW8$XOAqO|@ z##bYi-9~eyZ9ke@braixaIZkHUp?ocG3lPO&@pHxChebv#`JnB(3oJ)Cjx!fN1?HJ zJ=+xi05te|c->mi_XgPPQ+k!sOO%G9zsYNddNXt@15#xLbR87C8ZggheZSv;Pd4Ce z10HO^D&o^SG8p(^m=^|N@BmPU%MUoHXP_+*!Z yauxhH$sZ0ltL|v|kQ=n+<9^J>!xI152uuYJM|BjBd>>Cs83ZhzU#?Vuh4?Qv3kwkd diff --git a/42sh/obj/exec_ampersand.o b/42sh/obj/exec_ampersand.o deleted file mode 100644 index dad02cc2e4400dd61e9a0aaa9fa2820c3abbd65f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3116 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 IFDOF%7i_W%z5oCK diff --git a/42sh/obj/exec_command.o b/42sh/obj/exec_command.o deleted file mode 100644 index 176695299a195d3ac3e3f03f15ed945a814c19a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5844 zcma)Adu&_P89#P%AGQ~ z7Sys%>8eH<6AyJv+8?WUZ9{At8)!^}4XtRQLkuPm12Ij}3L*#?5Ai4AA>_Tdk-TT6L|Ec=7UUh5uEBojBD-PWt7r45A&1yY6mA`w> z(x2>KDV47Fx30?Hn#1@&`Foo{o7FQ4>TC>-<#CHPqV7^ zO&3QoPS36scIOHi+upM2w5bpy%3nf(C*Y4=-H-jJ*1XD}Gh%1USY5wDbv!tv{Pin; zt za_p2CA9%Upz@^fH?)%N;*i<+v>v0ZOeTr<2cwZO%j%#srq z_-tT0IY|k~!1QE4XIF~J$^I2PrM&Ni^t+N_dFO=@JtGid7C){$n$JyifnT@?Wnkrf`tyNfquQax)| zyCZ^TfrZEwJdtue;n_o8*>Qxcc+PW1MY>q$HdRXjvA&(7vk!{UbG5Jcv#%;|L) zSvFU8Pj|+%^Es@6>oYa$qQDD;H;O5QJEuIFE4m_W=cHdRO@>aS?V<#*qKfAOJuT8{ zSj?=AoDZ&|oOO6|OOAu-VeWhKfly;;S-e@RiCcPGyfM^-qaE%B*c9rI*2KRayC`;U z-R9;?>JXqb5mwMMGb5yNU)WkQ$Vh9;}gP?&iAIx_lgxMUbiN|8}htN?E+s(~X z`VfGkyhgF50Zuq^tOH$r@&y;QnOIIML{&ai%qtHHA=Lh~}lJwhj%p zuye8428iNYIIMoKHf6M|6Dxr-ZStASgB#XNSPy{E)!ShZY6u-9s|nw+XGH3^A+HVJ zQThwDMjfu9ja&&HYKp=Ow4Fz(HGfK4heYA46=R+G28kEp1t(6P#14olE=Wfwm&t zQ5#ta?HEWqPxj_Th^wg1kM)6>+7f9Y{V!$hO+cluudy}#ByBH2riXMI=?&Tc z&^V-Mf>R!JG>Qo|Bd?-t2OLB(p;n|8R!69HaMS76Lo`N^y$P$>Ip%v{t+A%aC*a57 zJ~n3;$K)!A)%ZG_rq6#}&hYQJdY4sHWhXM~#0hgtImWG$j`9oRw^O!ayUV2Y9zc=hh`uUH25yZ2w^>B*ZAGAZ{8$+(-)IsUyUL$O%Vc{|PZ7aPE6}!VjzvBb?I(16b$0>?i2gBc}_d}Tw{3?XS$8;U~JYJ8SR}r=o3Z5o- zYozlP-e!9$Zn;NkJ-Ib~7tTf8o82DyG^nx!F6O*m@V-F<^5N1w!YiC#3o_PRJy4)v z3QMUn-a)<*FZjMB|0(drnVN`zw!G>46>)XPTdClci+SHL?|Q1Te)peZ6~-cL0R zAuSgDvli6{wZ`?Dv0lGiJ4g4l#e-VypcaAF1}!nDp?n^+1bB2%3-8d(L9I!@SZf8a zc)b=L)E4O1XeKoMAry>gH4qK`8vO%a6SX$8qR~gKzFliOqQo&R4k)be`lGBE)+=a{ zKt;2_8}u>AgL);b%e$hm#m*P2KZ)h z%xhOKI3~M`9|ZDs;P9jOD85|r#fpQ;@){V?ZVY+@gdklGVU{W`uF|`z^rclg>&~v< zSf$@lrEja!gEI`+Pkgr7sZ1t#F53B2rH~$(c|O`%ypQp^%v4GOPh&5IeODOHJ6^FM z{I@jzxy9?&5q!zwFCaX!?NUWP3T-^2hf?Vqhs(uEAu|Wg7Rycm&v~#14co4Rf0&&# Gdig*9eU^>@ diff --git a/42sh/obj/exec_dgreat.o b/42sh/obj/exec_dgreat.o deleted file mode 100644 index 4f5329280a2a26f5ae8422e5cdcdc29035f8c7d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3860 zcma)9ZEPIH8J^v{*}L=E=d&G>G~weK2b>^$=X}-_hY-N%Vgf>d)2alm&Ub73((|5s zyG~3q}8Abx;^K%huK)2glDPb27$3Is@zaMVyD2p=JRp4r*t z?g&jr_s;tzI)%sVrC?|yUQ`?I3}ZI_&}nF-tTYszHXxBg<& z-M59!BE-3qlR{alKmu9UW}_D3RjNg0ZpHgRmsKA-2XB z;)Tn2alFFxbj7jV!W6^%!F;E5d_y{{GZ&37z^jgJR~y_K-}4%8xyHM`O$+B)%X}N+ zn=TYv@&3_*cmE~g`43EAaK4{wydE9J?=BG!hfYDZ#uwH35zhCq_VW|fQp{L_2hg6B-y<2CGV(80Ew?}NO?yGi4{uko}h zl0r;|GWoglTXq#<>wNcXyi>Z<;*LNl{YZRVmo#0H!9p|m#h{A5kNysxXEW$7P-EeI zN%~4`Y`UmCny-JF-#4FmGl3Cb`y*iT^*yKabEJ*@)%To)26`y{k~mJh`tbbR@O*vv zxYp-JkJk_U1r7PRVe}IDeMi#y`cdusiT29Rtz+k-d+Et&Ifn9CbtJ#G9Z&J`pJBYIDi-PA1-yZX8jw3wH%f2%uidENlT;KM}yU>El_PNW2 z8q!Z0p;xNzL}teI$`h_r$`G#NjQgTio|yE7TP-<&#sEt4&PhBFXi!WcsEWNy1-}q< zQPK>%D5>U@$~CkE+|%3@#Y)w4#LjB1ghs_?0#=+X)Wmp6czmEpMwfAQsz*jrX=`b! z%jm|En^_pUjhoscsh=lrNcOdF?%BvRm%`Mh%{{oi*EXqgxrn50OeT?dR;QptY#~?x zAw;~#h@_H9;t7%HfbZrWDuYPlHa^D5MGX$(YlZ2 zwr)j}(P_+*Ma+Y<<4S)Bb<{jKeS})q=|HR8j3JC}x(YeQDr)^6%&Mb`J%(yK$n1^t zMbDVsiCy6Tq-lZKD-y&!M(r}VBwm5^1+|4{Z#wZ>s4X&k7mK#oN6;SuMX!v_gB=1z zw#nzfVsVQjS!a}tfZl;1d*bhcEtYE%AAtA6EZ1>Nj+Up>>QbqG;h&ieYlk36a@+#$_@PEqQTyKT7jH6j6>AL}yWmt5=k-ukC zowz-nqv*@-JeXi?|8ZX+2^~LtZ}dS)ib|7JhEc`ulIEwUvlWb?=3B6 z9^ZZHh3XZLAA9?%KYem))rs%he*4OY*Zk*=-Rr(RJo=l%FWw;k_8zc427L)iU=c0{ zafP{%qo7I9gP=!2&w^eC9R>XhbOOWxnb;J$@cMCOuF%Bv(I%!iP0U3cVHPG9P0YT9 zGz6JN6H`!|ctmL8nb9UD9!*THMc^opfM_}f(q7znnwSMT2u_VA=9KngBGJU$(pWqh zH1UGap)y%%V*YB=A?@`MxW;-;o94mwh&*iU$kV62nEy2K$Y|65OPd%{g4>NAs_2`D z2u&qSBV*Uy!kA4P>GoLs0K6E;<)9}|6XopL@Fo+RQt5}yTROtO2`AxWiUX((KhoAGKnt>wyV2G=)Rya&9TdTl(>`26901e|*LvXe}mzy~sN zU%zlrqWD8rsNo$AoRFD32C76l4Vi3%azs!X<9?F z?=}~gh_z4lS@CY!X+4eh5o^Y@Fhkz3!0xYrBeD$+I6~>a4;)eSZ`67Y zTtfdDIQ%T?vKqWWReRH@;}ff?o!|P6?Rp%I24**YT;Nl| nFJKwniHhS_U13+J9n@;Q@#hh5z9aa)<0}-O9`?AedK2t_;?*Z- diff --git a/42sh/obj/exec_great.o b/42sh/obj/exec_great.o deleted file mode 100644 index 49a86d0f973c19ccbcc2a936d6033f048430dc7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3856 zcma)9ZEPDw8lGKe)^?mYPEy)HDfk+osYL9Qwh&#zwFPo=Ly-^=K(uIa?2Y5%taIK? z8=$>b>giNpq`Q_c-4Aq73Cb@J5+ETE2vI~qfZz`WA%1`WsS>Hmm$)8P={?WvZ0ndp zJMug4$Gr2*J2UUhtUvhq=r2(rjEF!5Y5`42RA~^(g`nd!{ziEq7BuW-ACyoBrXY3D zh+^BmGvfzxpx-up=WS>7P@2^O@i=T-QV5H-7O{&gEVf;A#->ZQ=hu|Uwr{v&{VjhE zn?;DTk&{AMtUv-;*Jh&@;#H~zWp2j%SmT6!N}SyMa#p%OaWkl~aK0pc zB{nvlQy$ILzs~KROTT8|!g~2hz~t&Xj^}1cYx%41_!b&yXX-g|gn0Ggx!K{l`tT90 z&yF6c?|mB$x!Ga#61m;4r*ic}+V?B%m7877&WCoL%s^%!-B+mK*61G`fRb5tRc6I<;nfORXT}LCyHs=Xex@L@qaHeD zOWUejiuvrStGo$8r=VSwU0>uqU-Xy>eu2(L(PBBfmiZkwuTDdgg3%6Qy0F42ZtzNy!!bsi72$~p{TbkSAFdswwte*?4XsG<*}ngE%-u_>^$ z*%hbfM>H)kdqsQ)q{GxMfJ^*&NIc2rLbEp&e<{=!nY}%tHTnhge}GypiOzxT14TB= z{b13U#gVL&N=85jA;|97`(QnCW&C6CewgKIj`l1Vw;-xe7baFgjLA!thr<5@d#{64VJ+oo*0=1s29;%4bi#qZbv+|u ziyX_aPbeG)q#JvYb`sUu*)OqBhhra)CaUuQ4 z_8*_AE_vkeo0mTI)sHKV{?hu_7eBw^*sI%DpExl3mjlnPk?(#8EN(1!G>%2M7?cHF z2O0%UfF1z-6SN=n0_YIvQ_xWm1H1=}A{U-d2nr!-V)|$kQ=BH|B91T%6N@Hp=|UQU zIA~%DY7>tLO*}K&M4cw);v#Sq<~~h_LE4KOPZP612f>kOVoqrj6X(>a@GcYUlc~R(*S800FT^qUnBrfk4dXtk$ySm4jE$w|Mt?S@qs{qT&6+`v^4k^kpWPJAn)22;|_& zgVKWkWBD51(ZC6*dHNoXbQm(x8rv*etr6KdB%?#J&AL%8g%%x=(wEDvYo%!o$z}hM z?bbdtj>zsIX^vRCkG>=Lz~dtn-yZh3uR4qW1KhJE9smFU diff --git a/42sh/obj/exec_less.o b/42sh/obj/exec_less.o deleted file mode 100644 index 14dd6f7397ba46fb73612a572a8b771d10941d70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3848 zcma)9TWnm#8J@Gdb9UEjuh-t-q~yX92Pdd_*SS%bI3#W{+L%;oA)%-xJzeh}+Y6hs zX3yEgAxRU-2xVo7i@3a?mheE{KtY1Ow3Ub&HL6h6yfhDaA}UCca6|$Tb&E*)eRJl- z>m`tk_MiVU|9tb$%s(?{|M|a5*P=ogVSx%10ZmC%84$`3K=U+yM|mdZH@w6?D1i=4 zLF%Lt#j-qm+Vf>!-!<~Yt_3}iX0$*&4jV}dVbT^6N6CU>StWa{K4H0DO_?m~p&h+T^YN-J_1nb5p;M5p@y+Y=5X|>j`@%%E)H2^;MtSbcn!Pjcd)F*_rZ3Jw_W3%)p%MJ z2_Yr}nf%82EjtRab-qV6-WA;`)!_?Ien)&+hagjKUk-6ECxyHyvtDSy!y!w&))mfRf#`A-n!w;ns>dd)oFZt75xuwkUGDUG&RM?5{pm zD&#h8a3=+QRI?~Mo+!AU@T@VfX4}HmyzJR~MX~C5w&PiD`B}7}vOMl=p@x)GM(CBQ zGm)t~Zh6A7OBupd>~T-j$`g~GaH=I6&=^2T?hT2D01b*M1XZzjso)j-E=sDii;`+~ zsa!*g&t1(OQLI#5TkNmaN@!H9?z7@#p(e&l!sVkxGP;a=l4%)Erp)EZE~6Vs5z4~Y zZESA~Cm%>`Nvv((k>1ACmLjB0JJPtZH!V`-8WB!Dm`EVm%uYdvXb+eVAw(=~gp-K` z@q~zXz;{QQ${MOD8tPpp+M*Yr9|J{JMd!d?1cjfJZ-PZ* zCPy;AQ8EHL1wp1`AAv2C8{-_WA7;6kV}1^88@2l}riczgJWv0n@&Z{b%1?@`6z@n} z153&K;#|nXAekk?Fr@!b%Taq6(r45Lpo!=)h)JqTVm)9fc~5*5I9EunrGF;S)`fZ_ z@jhsO0?B(-G=GEmL#jQA4PY^Om-0~fce6LwTVbu{Xy#@5{uq^Mm~_H%e{48UAs{55 zD!%T&3di4m=L_b9+Gy~s@3N>bO|5;eqcr2+$|nYgF3=J>qJ%*PKKH`7IwR_8#b#?e zBjX#->zFysu?CJFOQhQOz2Erk%Aq?qIxBy5{OJ>;>*oIc>#mD;zVgM{<;BcvhpxU; zUHRI%(|5i7$<_6juC@K{gOB?@|I4AxU!U0h%!zlm$dAqf>))WSKyfU>3Q!L86VPtZ zBG1`+8{bGm9ps zpf>S{(8M#NO-wwRn2SrnQJDKQodanvZahuQ0v!aChbHEf_F^K@#N5(YJQ*}GuXU(Q zR+^Z<+QcJ9(*=;m;&G#iCs2=gN}G84v={TAUOY0|^nGa)MM`kH(c?y$@g<@xDnTk4 z&ps-Q>6DRbkH%ht7lT;=IzCUN>(_OE+v_qD{maUf3d|q;O5ke^ar@2KyD+~h$}CERJqMB91UW{%3PAsHQ#?dBtLHMHocl%8B?Zj~W(NcR0fc9^fA zaa5*()wC(eA6f$ zer66jd7tL1GzU}mH#FxMovd^j0B=&o>K2{XN^|=IEjstHxm{QbpBMO8@CsN)XQElUslGz|A7~FHc>n+a diff --git a/42sh/obj/exec_or_if.o b/42sh/obj/exec_or_if.o deleted file mode 100644 index 4638ea5eb3c0fa0fc74b5bcde0e19b0a53a20d8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6652 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 diff --git a/42sh/obj/ft_findexec.o b/42sh/obj/ft_findexec.o deleted file mode 100644 index 0e9cb0408b3d4c311c1620db4a6d6aa17b5d151d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4740 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 F_J8<*6es`y diff --git a/42sh/obj/ft_putast.o b/42sh/obj/ft_putast.o deleted file mode 100644 index 68bc619fd146569bb4c6b0f2091a63c26756021a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3896 zcmbtWZERCj7(VxQx9!@k>lkc^AXmP@*^Li%fiX5=T3`qn9}-1xy0+VjTU*+012PN* zR3;kX2gVFJ5~h8NcFda(oR>Mu2B)9|Jhube_B^aA|#W z<$ahX`8M0f!e%?rf zJUr5V^~VU6L+zvC{Y|Y-bgPQ4RMCA+EXPS$t`cSxBw&3`g6${2HkPm#Q#%PB#c-Yl zu>eeg{dE#9(NBgCRl@!z-HCpsqOXlbH7EL>itZnadY$O&D#~4!YcF%6&#CBxV^PzI z^5@L1YW`R>=tQ@vD7O?}xl`Jh zZ_ev>elz>^o5Jm#qK$8x+0n6OojDlKWD}{R*%WFFHJbCHeRz=XZfb-PTCym#aK6Z9 zq7D6#M6#hfXQc;nk!&s$6%CuS7}wAu?JkkbiC82T$q%u$0S>XXOgxszAd<(d#H8S$XkRKD7elE`3<)+2 zsx{t4Jp|_jt<~oWEcGw*&#hQpvjX?ZWe8omR@dMc zY)O%6R0(?BvxFpM_-ibM|y2{^$;v!q|mt^ zXQz3LVW9UJboA;q<+}ir^~FA(`;&Ctqt6t+SD<}B>t21PS9srndXQ$F`vrjE^_~G7 zqi2$zqk?+9?`_~;bcM+9GqfFCV*{<b3q00IxpXPPC`FlOz}6wJB$CQiB29v5jqE z3=~Q#Y_GE2w)NeY3%vEv>`x2~$(+Kmbd`?1j`m-2IG!?*WN0pkCfq;+Pp@B)kBu?b zOPwbH&$6wvTK?nmLHK^0*u3M!qt&BRj(&Y=`tb`_7EW25oc882<80&JgZ?XTq^1Qc z2H(1T&G+OZuRd`iY91Ya7h}#szJ>e>DZ?ankOh$CkPVP1WDqg};gJCdo}pR@+DQmq zJP&mcG;Ri6+#l)UA)|}u4p)ec$B8ZyNG_fTx_F4Bi(5?>w{aE_jayC^4}{F(nWT%y zRA!x$E}k?wBabVyc&_C@UJAOnFgfs__RoX8QTu@rLde@lilU}ARNLJtw4FgMSmE&= zMi%Fo3ORh0G}o`I+br4w!Kd|=mHFc*L;$(EXho)`{TZl4uW=5DrXFUzf6=~y82`38 zZ!n%{q@*JmJkz1x{PR-I17kN=m1dOt4jLZ!8pG{gYg7|+hRc1%@EGf;%~jzEbagR diff --git a/42sh/obj/ft_putast2.o b/42sh/obj/ft_putast2.o deleted file mode 100644 index 93e88ec6884b8419158e0a4b4bf50b4e0ca2f55d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4376 zcmb7IeP~ zB{^}%GP1ZX3vOVAg|SjdVJu^?1;$obH@2p%|CB<@U@dI0Erq7EkU&aXnr*Dv@Auw) z^3$ukWEY=%?)lwwe)qil^`89Zzpj237D5XMRFEL#qC}N~pnM6ErTqn^9C11>DIeDc zr=TQMoN3mJ^L1rFndZTvv4hLD+ZxcF7WtUVXk3Up2nEGSDz}(szE-c6tSJTf`COh} z)qj`aMmkyz(*RAgP@I^XGC^u%rn&o(!Tk?5`sY=^KNT|O;{)78>GI8#^DFW_$qDzA zZ>V|nKr8a)CMK%Iqny9y{9L{tD1uw%D_N6ehWPm;Cm*H8O@VS*<=2e`Rb4CQSIt>d z#oFij=6!o;Eb8!j>J|BBb9p;Oe||2XN>ALJFITC|6iq8P%k)0?yvJ33eJY{xo95^6 zl_!qa3+&JDMa8#K@twUzK0CikF7N02i;wT6TjZ-BudMjI|51F;s|ozuE%MKb5kNuQ+W^ zRzyoEzh)RK9-ZrVPSJ$*U5a3zsFed2m{33B?xHRx;Eg`KaQg^Jc-;OBQ@Qc-i!bu*fbCCBZZDJf zw_Djo%B6~75Argn!9#Y+C0i2Ng-biL3)e;bsYhHUhAz!Jkv7djPb&Ttr(9Wy_~Mae zE7eGu%i|d(NuM+Q{Y|Ld?~IVJb7Om9z7+{5|74T@2R~mPNpFnwDL~IixT4+Mw1&^y z%|0W`K1Rdm#bzJw8}*FA_@c_^Y_kt6ESg(29w)mr?>vuxt`*AxM0hf85ZF}Ng;x`g z|M9@k$R07eXLLwBuy15!@ZsIPDKT(QujqrM?#<7XYsJDAF#w=f3{XMuJD45XF9vzr zruObVJd!$Etkz0pE7g#JR=H3tS+){&6Cngdt0DJz7DSC74iqh^ZHl$aKr9iu zJ(ko~Ve9A_fUC4!ErD2X^#17P)}5`m%%sp2u%{jG)E!Nx#AlBP#Ra>rinh6w)@%|)7PTAqQDM))PDb3{6#KZ8o>TO+@MzCtKNhHGfe@|n75eF7^- zs~eUG^B|HzUv0bsmC!duUW5KJJvP(-P1m|t-w=$v1#27owlJHP*I~+FxDUu*(bPMm z??4&)I@{46W<5!+0<|gc=AfZT__y%#2x%cY;m{r!%(CH1D?t>;=9MqRhx-=WwnE#} z3!Nc|;*F*4kG+BN|M)PTvYKQle35E+?F8^j3F4JQJ{I;dKeo9Uf~w7IBM{!%d_kQ* z^yK-+lJDPk_U%{K{p8(`x7~K1b?1fqtw(=-^|O}mJo>^n&*xKT zzx^A;aAN-s`4AGsAZs9;K;FfpkUZolp&J z)*ondHlPp>!B-c9aMZMa$J$V990Q`c*D@}^{LEZ|pOMQKFfM5LRB}~Z(wS-J&WNZB z1RE@_$w(3*v>u~ zJtY&N3r=Srh{xqB_^lt78z*JgunZ4NBQ!1Bff>V6Vj$yDnLH;q0|@q^Z#;C$hGk$} z8jpD$W!pKq7H(}$+)d1+vEY#Mao%H&0b{k)jD9_Y$rGC}2lz|h?&yv>n!ojI#Or3x4U6viU*7_#tI?L*qE7*D1V1;Spu?Ommz!py~Hx zXK~Z~orv$r^a*J4VR3E0!;VhxRd$!MH!1sT(4YD$ICHet(Gn0-`Bw Ap8x;= diff --git a/42sh/obj/ft_split_whitespaces.o b/42sh/obj/ft_split_whitespaces.o deleted file mode 100644 index f8ea70a798ab89f4600d3986153f747d7a69993f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4200 zcmb_f|8G;*6~FJ<=Y`mbUjiBJO51r-2+)-zbTFWp5;WXB3Xu?P7@bOA9mh`0jN`?2 z!>UE1I8<@nZedfkN&8`~D)oy-|AG9#$fyWNm6-NJw;v)cNS#QeOtLgf^XRnfbMCt@ zU!JoqlXj%*bI+Iix#yhw?fLG5zx=a72+b$(gXTxe5`MyHps%9USov>gw$U+6@)(dS z15={xcZ(X%hC$ZqdD90-Wc9^?(>EXCkd-19&E_ckh%G;H}*TswV_m3oAW&E}A zxp<=rV54}cOmdiqc=5ik*60u~BIrvM-&?4kN`2kgagz5<_-!1gq-|udK8&^qe?DqY z!WaSPWjKY##6H{@k8^hSI=UOCKCAR+tGL*0mBuR8OmvP1TE(%7Ft2dLRyjInm7=wU zg8;Y6W0iS!DBjSlc+Hx=?~@`N=4PUcY?+D9G6TY#7vXQvFGyoNx@eVqE0-dgFvo90 zRUBJ{_Y*u&+05&0TJb^H9REt4veCTqa-9;MKd4hSn&U4)S&l9i=MnI2tK3&HulobV z8r&aQ-vacV3{;L*ta$IDrQNnlGftNA-dR)t<&Y4^FCld|5WvD!?u${sV(igb)es~A{wO7byO#j)y2NuLqGomzIoL(yRR;~E&5Z3%H z|5m5sZ}B;FCw{XHK(c!C6Kz_#P%YkCDix{=zsEezPA*4*`)T;x&7=HygioG4(;I#@ zF_KFSXTk?MyF0tXJL74*c)JgDL+IT5ROg;uA~zE6O5@ttoft^vQ<=f8WZuqY)2X~Y zI+V&Ma=7&pxz4!g>dOJDYjAY<{6MU0?^C%U5g&?;i1plAnNDQv(czJSob2~{ zdsL({d65$-!Cx-t1)PM|s%;N#Az!G)*cNKlHsfgPrZ~O@w@AD2g`Nopam)BS;kH@p z3HU-!2M+~zG#%e^1a~5l(3Oe@7<<=<4fTWYInW`o#eSX#<%I@4A)3UK%s{KZ%iIqs zowtX606)G#{1_VFf|7>iXk2$^(vY=%S|>BouV#NGmiF&*q*vZ&=>WUJ z_R@ze9b}tm$nr1fStmH)z79!i*Vqi$ixRe7!RFs%V~2vx@>$h(I6$WqfSZDL=ErO` zHBMz2$Xo-|s(^-Me4E)*_eAQzmB(Y8t&RfWRj$q-l zia)5|+4iUL*ZPk^=IRch$!dWgL1TIyjmP|)1&|CDe2xW>J16@vdFR9_So&XlI5uu= z3$XoLBk&t)D3W2ErJylLKI1vsZ(OA(z@I)#yCSqBLaomc%zooUff@>H zTy?lM!lqxQfblMw7_~V`4^7eI5&C+PI;N;ALVJ^Ra0Y1HRX&!8k}H%9+nJ;Yx$Sp5Xk3L2uks{9VO=p}3`ZkK!GQKkm_ol?*2FPAI+| wJcJ3{Gli~{-7|zwTVb+N5nq0*M0{lPQ@8w(Ny+<8N}rXN&%O{#%fHnB0{*V|F8}}l diff --git a/42sh/obj/ft_tokenize.o b/42sh/obj/ft_tokenize.o deleted file mode 100644 index 6c708728e7d1162bea836addfda5d49f77cf74da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4916 zcmc&%YiwLc6`s4hvv1$KwiC-Gk8bL`fM(ZCO|c*ZZ{khXuAQcSB>B;DS?^x2H(Bqx zdw1<5YN!>r#l}rZRf_miDH2HV1JQumh!7DaO{G>)+KBK7LVyuLq&!3@5(FAzzB6~O zy}k)F{9?4{oH=LCeD}=b%*?+1&p+MtF{Zc~7{~)U$HAf?l)FGF(*Hx*6|@@Wq>rrw zlMzK^KV7dF2P;y6(Di}jzJW#EuKie62#;cE1pvhcWs-zlbUmA{q-~AxIuiqlMSV_I z$D};xweV8FQy1M9YQQswsyW@Pl!Xm=dlP*-7TR~y>%2pcO(&DOBZM;G$Bg{^` zt4q8Yd&6JbThy0$*m&uop|UY9#=9gw8}H{5=1%eQ#o-clamIH+Ogdw68O4_a7Vx(* ze{$%zjjx<8<_z;zymuXY=!YR0=%TnS-e@`_LUhJwcQCVvVwlgd%i^4J9n)t@j87JPX1Mk2c;#Cff-FCb$ zNxU<10zZF;ct~Oa>5Ol`+`smCyKhZ0$9OZPQH-;qSBn$*Vpi9CIv1ygvEvf2LmJ0` zM_ck5_MZfD;29(Oa2cy>b#R_97bV_^#5*bRq{^_|c9SsK`Bumm1)_7j?J^&lj z5~m*DBhn zbB|sa9*${uKPkROc&VvBwx(u|TuaSVug(l!NzGQTPHtt|Q?!L%PtqvZJ2ZyWZ1P%a zsvRxspq*q_spT|{dgiUvO!6|?FQ;Z+7iNF}&zm|X@^H5I%FOptv!08oS$qcg^A~55 zH)fMJQd6(BK6-(0{!b-Ar%1G?XHRc*+$fv*QZd>dYmK!=H)aYr`Zl$F=rF6h3<_{aO42ut%=o-&Wl=f%S@wUz82+Qfhk>!gOR?!Q2v%*YE zWJ<+~0jrd{2@FO|uiy~Nrpw44VT4{N6?4&Q(ah(HMm9=VMY?n|Bk8i}LYd19`jlBo zR}9vf+>sdU8G!8R>Sg`O-E8keeVuIAVDGkMAKTfNOboD|WPiU^P3-Cv8p($T9~wxq zPD^Y{Y=5x7C()l`dlG%De|K_wSE7eu%y|>HY9T*Lb$k3Q!_oyB9xhrd3XIndNH}2v zENMz9!iJHe7ef?`h9}+tVn&pDWu4l{-D={Pjfz_hg)AjhC%{Q* z2XvUyzm7VFLR;ahdTM;Njj*poennykvq9+yT96yU6dhyroVlcl;%R7GqOuR;tgy}! zzc_5d>|VL~Yfnu3;pEzjMru$zTEIOgJ>8U#o-1G~p5z_9<*ntg`0;YF)qJJ=Q67nnLs)=@J^vCA4g>(B1-Xa6Py0Q>1PD88{12 z@cpRqo&1*&fp@^Nr0)n8Ae#BsPz7=&mYjFcG(QWCV0nV3`FUs*FW*Mf9M}N2Loo3M z|0D@Nj@|x53RQ7s(6xabCJNaU=4JCJWI#`LC3fP-f#3b+*SQ@ho}o=cFY+viCWib4 z5F~9X(qkYhG!>+e6GO4TDb?G4^MCQF118Zj0!N{7Q0#8T@lPNm#!x#BYWINX_Mqn} zrh(B7O+HlU(ml=N-+yIp{hzPD(e|0jGx=4Gn|`$UQfAo-*EhG>gLDEEPO(t4?Bs~?8Y>J0mg9m#YPCn zYC;{eDlc#-*vK`PB_0bNbfGtd)romLEPxJHaj#K$FnETCz1_TV3vc>5Z|>&NExhG8 zUx&(fxN9G0-Z!~F=)aHq;N;!H-QFDcpRu%V9`cUxfcGbSx%WZTySe8m4|D_X1YhYr z&hP2w!EWw~amD)yR{(Rs*thUye1FwfAQ9^(+Sz!zZW@8a9jJa9G6J~|5}~WKo=8YF z1&M@KJ0R(PY==aGs;!VnPIV(Bl2(mE;=odyA@MX;fkpqa>f7YSf2RzK8ybWH9zrvw29orOp zxoAu<>+OoC-f+5Fz^hce-t>GikGj~qdai7w7nFiwnoPG}ywams9UU^tw*NRDtg^v0 z#>BT4-jWMnqlcyKG-hP->4L2er85W2LK^RCigMxQY4?1rTEgR3YD<)fQaNikh?vvG L1)ahsm9c*Vjs(~* diff --git a/42sh/obj/get_lexer_state.o b/42sh/obj/get_lexer_state.o deleted file mode 100644 index 2a093a6d1ddf804c8e9bbdefd8696a47fd652cc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3088 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 IV;b210mMA63;+NC diff --git a/42sh/obj/get_touch_toolz.o b/42sh/obj/get_touch_toolz.o deleted file mode 100644 index 06853058de176950fcd356e20884ac5e3d6441f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4652 zcmcgwZ;Tto6`!>|>%H@x?c_p8xF|77dI<>IM;d|&PA*ph-MEP;kQ})tXz|&5wvo@a z>~(TE-ANpmptu$kil9hPC8F?&R!B(sRPj%V1OlX>Akj+w(32{}MQQ;-svdtz_`TWL z#NNA*@P(0P-n=(&e)Im!%#MBL>;HV`XH4-jG^jq*H#wRJD#}V!o%qX?yF2ZHS*hdj zz+_aza-LyW=C~yp5X0DW=e|9cc&GPEkKH3YvZWsY0TTJx!$h277@3+?EtGOn;Kp-s z$S*4EHJduET*hHxPu3i%=L~=fnPKd>fAHSBE{><N?u z&V&(eydl>f+ANZ4W6O3?ys>mfn0PrnX&$>WUb<2#nno!-M&>QB?|x~Yvqf*cqJ1`A zdE_CHV7GnmNxXH^xtFgJPuN#UXWV$7x$w?hC7yM-vZ%j3s%@Ae1Nh}t;^7brNVk2< z=&++W{+{o$`Igp|-%NQ7ep*Jobf{3u8pf_2ExIfr@g9`I72S-{mV5{MPi{>Yo|!jB ztH`cB!F?Y*EAgI?c;gaJvUJDfoj%cv=eJN2h;Dy3$V0GRTA>B)*|V@uhP2H-iVKEt znb{X64X!|)gODW0mN51r4Ws@VwY8AHRHX~8Ls#tY)f*q{Gyjh0jj8!Y{k-1TJEu2x z&+5(H^ZLwfEOcZWAoS*)kZAhMTNm_(25w$&CiG@~c8>7%$F}|-F4=w3d|RxlH>c)> zYqXAW6OruPfIa}ZGjfU17A&y<%|2g6RQ94)WUO+?sG!daDBGlY% zyDnTCT;Q6vz%>NzCv$BSCFb_8G4-w9sDCcZOOZsZKh_`FkSXHQk0$!T z#5Qe=-FyS9RWtD-PEOR!7A$@_sV`B?L-LdjP6H|>t zC3=EX$~9IiOaP7!dAf?*$B=xnT*^i2rCK3ZGP4mvR+cC~3-)ktFs$|lmnchd4m>dk zmnz#ky}>Pk+XL&n25{ARIrB)tPV7!!h!NrIm^ZjB5Wt~UmqTLDz(MX&yum<#rsHec z4W*qu#3bk@I6-SrwIi9r>~HG@6yn3D|I*m_?nKA*viP6r8%M9+EUJhp=p(39 zL_9!05*%Y9kLbrF@2p9fRNQOQdOt>oJ||R{5f}>jLAHAt$7?&l2#*Sl(VDc?e5iD> z__A-X{)dkRp8Dd0-k1J(;r2}A>B*C`eV@HHdCNDG82=sW3#cbiDVzU5{S=i_LRb`M z91tp$K@w5&*O9=EJBcU}^gTd1fl4CEu@un`AQ5c`IgzqNB1)drqKuJdZwK@uU)g%n4z`$H5qf`@deWW+dTWtg4|@ihitammFCKTm9Km(&i|;)Z;HF8lxh8W(#NS2ukrVtLwMwl@0Mi}F$ivd_LQIbH0Akf5QqTh-5{d1I16o=oZ>BpmRtS z$=?JexdDoMGx{q~Tsl$uWetdH20*c=qyGfOJoRsqHYJ^r^j1mZlJ-fuTGH*3MkECh zcz==<*epa1Rg|Yu1urXv0z$1>@P&10ZymMrnl1%cpol&x2UDs|1G=#G}_ c_>o1gAo~qPnzoD{MVDl453LrP@FHX11L^_p9{>OV diff --git a/42sh/obj/get_touch_toolz_2.o b/42sh/obj/get_touch_toolz_2.o deleted file mode 100644 index 4b5da18492db39640cd3d12fd9e77aa9ea1fa3c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5264 zcmb7IeQaA-6~E8+eRkr+&PPAVC|;C~R@8CUl`d@VXw+nSHO(07SJJL}bLoz1PVt*8ANCkmNU_gWhgsm+6&VBbK z@rzf&Rqs9boO{mi{?5JkUElNqq(1wz;NboK06(5>FDhzJVd5tnD{8EYnkiybFn6er}>ef#Q(+{EY_2Jkn$e zv$gWgMKcK_zZCBQb+I>Ntu^I3w2Ju-L}P-You7p#=`8~is$Ft~qGG4|?RGJ!1~DcHcaXu;6$n<&Y58c}}M?0@0rDl*Id)Wbr2OsN4iU z>yt4pW=rcL?n1Bmp;OozR97Qov{dgvUV^00>_ODUh4Q7k^om&QRk^=cEB!$meXs6E zMC!-Xl-|}(7jKqEZkDc2QH(HZrLLLMo7(8>b%(C>qqO=zb&>{|j1Op~k=au5eXX>2 z>WPu}n-1R3{A15!TpJykW&V?2rtU=7ls4K9t;y0RJlg2xIj!W;CPrqpiQ<%)Q9He@ z9r>7j3YtJ{_w4bof>^ABi6mkb#7+ zF^v_M$((5P^#HcSz8`JaKdn@pG56zU)4?6U`wX@h`!R)83{V%mEEY4`y>9<_wXk;0 zmN*+2FP zK)o73BkZqw&?|MlBa~9twdo%~e_{md)`@jH3q_<(XJq^tOT$*tLI@&qq4v|*>21Rh z0t!4p%nd(>R&txH=99;%xb@0di#SbW0lRSt>}&XT+~OQqhoSAzl~|l*;w){j4*Eq4 z?Ao=jJ8;;@z2)}cWz|)Tr5O)So4eo#R7?BcEHdL%#8j(_OO8mU2cG- zG6k0DWAto_C8If(GYV`ln`imdFg)-x8;|C2zw1&@XETXFF_TXvGDbW=!G(cArqnCz zeU04dt5chN^-2TInxhrQ24#D-(|3>eUhk)Cb~b(BNL+kAGFX4&kBv=pe0`rS{22)uE}VNgtBjl zM%x9-F%j1;;|4`sJH-)-n4z6!;Etys`6)%+<0CYcu6OQoJD{jvA%o(k0nb`AUxV&k z=V?Lr9J-E&)e8`Ad_>yr4h>fEb3{K$bU9KXo5IXD3iWYg&;91XO^?6#>)HGE@80@R zCv5cEr?nC*0QoQ~6_E?%*M(;K5Js!itvSg?#Xcv^_5b*AU{GB_U?`Laad*P%!VfUv zQK2!~ZW{mLjXVDK^0Ci;*mnGs_p5)u))WgocZ_l&?oXkFQm53_xIJg!MMQ5yJ@qfKhI7_u!a96)2Q0bUx(O289j^t1=f1J*Qvcj%v^3Mb13qyt>*G;%n3bZ|di25BI1^ z?p7la(Q&B}ew#YUZ-;b6xKq8v{k_}=tvbw|ksf%)Q#{4wHJU9z8YGX zH%biy4s;Rk#bmddrWS5Bi1&o~sx#Db^)2q~y~tg?h$H-BW&A~f?h|lL2y#sz88DeC z>RHbIK`GzKo4{gSKX2~gp?rYVYMN~Bm{xJ8@dVGOk z)r;KIEAShEzZS!5uts6N0^~`FliYEhmN9??TKf5h2=_+jN!P(E!dD93E}#IAa%lj^)sSFC z`%#guHMx^E^<^tN2a;DN9V!kk`#ug*6=T8gK;ks5dhhn|AIv{F31Cr7tp^cJMJVMvP8At~+vB*i@-^_^1R2uX2&#YaJLzom}@@|Td52i<)X|2!nc)8A<1 zzYY?Yeem0mfKbm#X-IiU%DbfuNqL8q6i;#6r3^?3A?)JE5#!&5?uX-c8bEmxm2~S4 zL|5oEMr8*o*{q_YvsgziW%_2DZr$}({BGNLvrRv0(=#^xIh)RO`D!CcH&~yMNZ<`N zlqw|kSTUEk9OwlXiw>GPIcD(Zz4$LMiiBs*$Sml12Z|?NIjX?I^Dk{=%&vI&(bJIp e79NWFP%c$4gfY{nr=$6TF8;PAulc7XWB&!jY?QVD diff --git a/42sh/obj/is_builtin.o b/42sh/obj/is_builtin.o deleted file mode 100644 index 2161a2b4d827160565f747cd687c961b6e928558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4492 zcma)9e{5S<6~6D;&p%?vb`sWgTGDxP)^?EEZdXAlZD~e>UZ+&rMz>Z>=wUzqdd0Dg z{hVgikRoM+hQPESkR~*Z3TZG95`wL4+Juy<6N65OASBTEV-iCXn-ow%AR<7N?|bjQ z#D48)uXOG?-?`@=pL_2)_g(+$Uw{5@SO_H`(1C)WR0v%fgmxR~Y0VL@+YLuub)Iw3 zJPeV*1pHE$m6(lmh)RmZM3R11xwpoHDC#JUWniS7_DlCril@Q;sr|aQ{Q7RX^RRcjfTKGFT z_24HrEn3`cv|A-V&&}#@eIa`O>P^$J^85QzpS2J#Mf#lq^;vlS3dLf(Jjea)kI(b> z8|mg|{aKAllT-ZuKFtI}drPkO%QA2Nj{TGAb=~;dg+{g9xz^vLFDGj;*MCocU4OF$ z(+SZZpXX18CvNPo&}!AoMx!vx@UB_!M`e7cWI)yp<8%Eri>I9f_Q$s({f$e17jM#^ z6JM)f`u$z-`FrOk{n?MUuDjkhrN3w721esOC*g{|^KjRTOTlsJkFP81!CUWhgE#VL zHfOO;+vqmVSdEfl%pC2V;ni1KD%aqTDLI;Q?>&gV_{ue-(#Gk!6a4qfs*LZ5J1nk9 ze-a98XU&tzy?U!#4acK@y+YROu-w0V!ks<-KJjs1FeF55z%gX-+d&gha_iT@&x7+= z?+5iZ+LGLvy(2f4AJUiJ(HGa#`qCG!ygt2t6;1!DbN0)}*B37;OUKuB^Vj;tw}ZN} zrY}y4ph) zZ+U{`-}d3}`S6c@_$NO6st>RF@FgGi!ztb}>6w{_kEiF#?T*!Kq$jiaY(Bl)tmA6j zGnog-?%$W)d$;Jc&0Mi-)orVhvpR+pv!=*B)WO_b^-S}0sgT>huTv9MZ&=v)Ml~y< z<1*eC!mJhAq9Uw@EjrfOG7D5}ImC?eeA%ps7Nl0YX_h-3O!uV1oM;v78ur|=u}Y$4 zl?s5g~h3k#STL~m_;1J%8>!r>#jI| zUWkMyRH>q$B_J%C5lyV^40$-r&pqdfkvyi?*bV$uaMC1vG(Js1>5?KKo zcp6~jwg7F2g2zE*~FA(M7C1})9kyKaew{TfI=t@NXgiiY# zy03!*=@hlf5SKf|6LdNe8H6~@U?O}R4KGl-6OuN8?pdI~Sm=4MeDLlt%kMd;gCF98 zE&wfnf)iL!_!USDD!50@q{6F^zE8`nn%N%yBM^T*m{T*OVO~ED%Bz`l_%9yXt7gW- z{{VV}^Y*Ek-6FC8s9gYl4MKQ_whHkw#E`Dh!9D2Di30Vi70#Tm@v2nMFze9lL`K6A{@7KAZtWa8xk^rK%`ZEE%cd>CtL+YvS`##oR+Jv$2?H#rl#e zW&l-84C#wiLlv`P9E8SHpo-ZcRZM59nBQ_DE08KyfVBF5XB@_^bFX3D+hlptQD5_p zRXO{hQ07xgDjtqJ1uOp2C@8%_XIHO!uHJwL0*C=v^d}P+GV#UtZ=zQzzgU=b#&arTZ z_?>YjcOGQq?!u~&@Z&xFcQ2^Q$tTaqA82`%5e4aJu!9?KJiu9bHH^zCJ%J%958+| zvEcI1Ja`zGw=wjg8aT=(@mYyk^4RYLGn3;wI6_Yxk$4gurIpA_yc;|UoR)YyIJO{> zk{G^Gy25!;(%%n(5q9Xik{<+zeQ2k|J0u5l?0zQs=fRUOT;l**8I*)0ubqR?1D#vG z7ju7lamI(ap5AeUkThnpHd=BsgY(0M*?BIg}x kRQPUco3pJRGrmBLtyC4p)+=jsHXfjxGG3yavRM-U13O=AXaE2J diff --git a/42sh/obj/job_addprocess.o b/42sh/obj/job_addprocess.o deleted file mode 100644 index 23736aefd9a41c373f352a054438f6409bbfb36f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5048 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 diff --git a/42sh/obj/job_cmp_id.o b/42sh/obj/job_cmp_id.o deleted file mode 100644 index 0dd4403abe98f8d4f76581401ec3e06fafd03c00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3760 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 IuQ1N}FN~005C8xG diff --git a/42sh/obj/job_free.o b/42sh/obj/job_free.o deleted file mode 100644 index 36954c14496a07d96548a6514b4bd57d14533d30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3924 zcma)8TZ|M%6s_)=>FJ&KJ|K$-3@-SHu(JZ{Mtp!SIv^OMtQezdXM1{g8)s+6=^jMI zNP!(<5XM-Eh5l?qM&*VT^@us4|JTy^Rzh~!N4BQK?`+Y3R0FvG|Tdx?S3E! z`sQ`_Za$-j(vT8}$7SEj2*KE(>?8}DWtE+g=9uOA4QaBhp)G6gx-}dYEgWtN?K>4; zpvhjJCL_K8uTrz6xgGC2g%i#xb8|D>Iq^y(BMoO8_dhef5bq0xFPr}yI$d~P+$G=Nbxa=WEv{uutD=Rv&SzWy{()6grac zS9p148~`5c_9x_@I`cL>XWSZX;BE0pi1AP+Z`H3`m5A;8 z6{;TQs9^S}{Z5@HK7N-Rfs?_9X7IhBBdVSTaIw(`afmxX(;Jr{$$M-1z%1n9;^fc8 zUBBmxyXAowC!aW8oNOK`?rxG#fln28eVQvy9xG0MIz_K3dDl z$#2|v&!+q~r{TG^YJRYPpno8Lxm`iIFCQF$(!Xj&|5aBAuVELq)<%}wwW{B!RVd?F z9H-wFg<%h~3uBMeww6nURV%!45snJFJ5@jAmghd^2zHjwqbN0yBhm=HQmc;Tn^n&p zt2*Vpi&=mXzQx{?y;~ME*T*2#-STvdP{sJl6&NV_e#0GU`Y00L8m*MZ0(iLwF-F~n z=Ueqg&2~JxR9w%;Dw0+C0{IiQGABEY3Ag46+j1p}Zq2hm{V;ZEYZ8&nb;;Gq%ThO` zkS{TzE5rJ3T-&Q=s4+gJ#$2(!JD7v_b%}^%ZcHYTgJu?XAv(IXNG6#iq!5WThSzsf z8AK8%TVu$qRBJ58v2+U-V;M~&R(3HUuLVwy%OsOGGSwHO4uU#1Wg(@+GUg!KZ2^;g zcr&yrJ~U|e+y@6Ot7#E^?{;3qT9$tbpw%CeS`&R#-#h*qwa$I$MaulGe0KR}v?4MZ2~ zeP-fcXjf9ZMDNQb7C`c-_33@RB7P8qv8WM&+PiV>P-2$eh>F3D#?NCAe*F+U#Lq+%`9D&S5CM@Tt;$E_}>< zWe|P=b)+=ROx+NwX{csuU8rWD=2DwNH4C*jH4ODAs3Qk8pV|ho7srF3^uEE=GojiA zb&W{#E3cw=T+5sS&vwGMN2C*A_t9=@aSPnkauZ~6Ipax=bf7EVy|xG@FF|tTwrqjT zkaB60c!jwm69T+nT4&CsseSHgwCVU4^5Or}E>I60(Re9q!T^uqk5RH^V^qYZKd*eg z54h_^C+J(dXTJZOyTJJJX8*n4hI1>UKujl`mcyY)3KVACQmV-|n%cZs*WZL}&((xhq5M2)95#IqSfqW2; z;$_e~phKW)DTI5m+KNfXmYd9h|_V(lp}RtZfkKxJa)(8QEfCZ-on zOgV+cD}W}Ji}GSJ(!?YUv6R=&GhVD#da;O=7i*Lz?p4A6UslDDG0YCk2-;A<2r;9D zX{J4Pm(aH7v|K7~?on%84A1;=!kj*><_obllY3gfB^?w+aJ0Jk9-f+ZGLuHHaSf2x z_Ed{P(`yvms$FT8or1e^@S2$x?@_N{1%D@%lXsSbXuaro@3BVU-#^YfUOnGXP%?b@ z)n5b{qSHL_U|8~z4jkozflI~n13|sDP~eO!0^mW5WVM)?Ft^4GV?!)$+#c%!*EhuC z#yc?`qGs&U4SWK4Uk3tT&T9hmm$PsY*A3SOcB7#9rHU_99E|gfpB29dJWD{;lwYXQ iS5j!;^)t;Kn;pfU3ePV)73@3sn<4)&3I3A_r2ha@XD9jq diff --git a/42sh/obj/job_getprocess.o b/42sh/obj/job_getprocess.o deleted file mode 100644 index c92fdb89967d8637633773c47530ce6855e6b8a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4784 zcmb7IZEPGz8J^v{-P`-{-T5QIjpO8!OY_ktwwsS8KnPBW(Iq4(v~d$CXmeig`Ocj0 zj@xyk%NEAec2vyZW!3YTgKTuSPl&ByOq>Z6f&GYQe zUhHd1!pQHu@B7TmGw;mqJ3HrJ|L1S-Mubp80u>|-scEP(5R_XW(*)nA>`nL$CpZQr z@WCl4DS{}b>Dq@}-}e1I1N-(|^8@P%X^@Z8UTPJBvB7zODk!EoY!8i(n2uZbAk*Bo zckA6B51K{5vr6@$)q0~TFl3AG27KkJqGB<2%N3W4?T?R<_MbevIM0XT2RVzRez+5T|b#pU+nv8ucDd`LQvvN^s(F+Y%Cy+-<4 zVA5)e&#I1Lovt}vIasO;o951Kvqzkgd>IM$fse0Z2JfGI=1qKd(Ja*Qbo~LQIrlvH zspRXIe7hx|bVXcwH+lb+XT&9T&uJG}PYztl9jDNo%1zuqB~lOW zW6N>x=*@j?*OlDy!KvKww%p|4MVOEy>D=V6a+5#vi6#dwlDS@KEgF+Z{ako`~hJV^L0_nyG3CivaJHT`MOkbMXfYUF%L z!=(zU>bNT$H}8%+BJaBO($KhzymQS$IX@!G)yhc5t4NBlEVOva@l~NzcRU1mx#WP# zS6r=)AyS)8>4+^@&5lU=9{+g7DUDR@;S49L@C)e_?Q+?yjbJ6#c)bob6Q+;4W7T0s zY1hX}RYzE6$qU!Ds4#_PRz1KnJp_I^@GW6k=+T(Z+eJpg(}7G*&9*TQYoEynM*Wpz zfmpxb_A)Ym{lVjrVU@8Dquy>Pt;(&*b}f`l>s`rKr47lT_5f^C`eUKwhvFZOuSjff z|0s^wkS0_KZEweyYW*BnO9`U-d?f8FL1;xtMwh|e5|5)L zHc#2!z5+AEHIE~)+*2*Qk0cuu$edJzLL)`GF&Ele6_5zgwgh80g0!9d@%R=deF53+ zpJ;}6q$I>@W(&$LUwL(K4QZTx0ifKwA03pC@`$I@lkQWVQ3Y98Jz2a;PkYMu_FsWk z^cbc@+rGtMQzHNJ+jeK^8T5qqO;q}6RJPNMcA4>ecqiC%t(sja zG}3D;P(>d?gRW@nVC!2@JqACNiIG)_--kMG2bG9^8;x36+Ycnc(b_02lIcfKeUDs= z^sm4?%bq!%G(UzJUafx%=4&uRi=&s>XlQ4E=;u(qL%1svg1Ilc+=xMQzoIL-8=Rgi zj;`Wv)L@Y`dYhU}7+-|-Y3y$l`<52kG+aFdzXL|(mPi*=XQa(wfOi6pbdc~icpK@> zBO%wahu(ZrwCH!i-U!TCr0;^sEeU@%`bnsWp^-az40bLSS5n;1Ujm6G6!50L6SysK zjnvbDn}nNAJsY?wxSgrz;a=d_G~7(;k8t0m+X{D6>W#o{gWE6CjO1}(v53<8I_$Qq zs5(UYA5bq4HN4pIbqrJUc%x%%& zdHbAEv*E`35?#VgilNPWB1`!WcEa;^J&Tp#(dF*hnggZxO{GRwd&S56i~S4F7oT7P z?uQWXfw0UTOTT$6K6EqxPalqFOdTXc!KyKz4z1xQ3J(T<{xCGZ%lw(Zt2oCcA^h}m zP8=&@KE(ZMse4?#H9a`g-t~iv%m4oMorUh-S{+^A_~%sD`OhzV<=FR)KfL_Ij%_c0 z;ic0*IlAF({nfkN`KK;DyDnTz?|tsUt9=g~i>DI@o;!8s7ymx@#$fubhl|~RiamPt z1FiOQEA!~lPHe{Q5WZ)hf(%0rLLP=Z33&#>C;L0dWeA^L3j4nlvH_BV+y|*Zz65y$ zat87v$g2=$0{#S3gX=+ImJ;H_mQV;LAtobNj>3QlF&|{F*WeQ3doLko7$GKx9LVG$ z#1xag9+Lxk$ViAu#9n-lHk*_MDTv|oyCYok>4@0%qc-$C`axV%AvH9PDBhoPfoKC zl6jL%Gc$6$5L=V!ht!X?_*pE(J?N`?7hgqrJJ})>6byqXO;<`$s#xW5-iLa}oqDhI zdQ0mz-8mO=4mWiH&}+&cT66E5xR+uk-Y0vC{JMLceA6EQ8~fj|!?3*zCU9gsZa}iL zf5-DtP9d+seyhB{!NGVO517a=^R!s(oVHMRwMapW>7UTj`VP(5tf?>~#%Hu7Ty3+q z0B$$TY9zd)_bL1F7+a*q1aD=M-Ob~oTp20b dZnYxJ0>o6PxS*UNEh(8aG;q{{qNn)93&I diff --git a/42sh/obj/job_getrank.o b/42sh/obj/job_getrank.o deleted file mode 100644 index 7dfe939a4a13bec2ef2b56428d382681bea2eb37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4388 zcmb7IYit}>6}~gOGyC-J`ccb?n{N*lpj>YG-@an4*^0&j=%_^rs5T$DwtNneBaC+ zv)-mnxYD`joNvzk_T0z0GumIg{kQ*wgirzk9V7^;Y3R}rv{jHrg74AZih2)@a}1jA zgHuqF1knt`DI9V<+w<=o*?;f-}5V?h1eGMM=t9X5k6mjY^+{5$oa3# z&*yth4!>SLt1?mLkXF7bHxTVPnZ=UK?<-h8xqVm7ub!_I3--JDI$GB2*_g-Q)L)fv zGH<#mw&v&a$?Xu==F8V=<$_VkPcprC&9_tLHzX5!?wa{|eATf7?gqE!cemtQC;9$x zoqTS7wY=HNXSeVL;!P{(nJw$*<>x$7yXt(uD*4KC)UDUahoW;STk{J1K!6T&CUEdH}%(n+|1#{3nLd9`F(MTDyO~9erDuSZk9rG0p{Wb zJ{7Jt9HhDV-1J;->hOY?zH2^tg!xY$zNjX@d2V`S{@BR;X(f4-xAmKMqQfwdkn1wc z%d>;-Z%r+VKdpY%o!rNwuIV2ffRov_C9`>>ut#MH+ zva`kwhbJUo$I&%>7h|_>!GpZx)UC0GgSvB!iE_Ru%GF9S?RMm!uUB)Yz|z?+DpNe*&fF48yK+mSQwtA+c6GXOi3;bex}JhtxIkS!j+@Z&Le2{L8QsAXU?9Uoie6 zyez$&)xL22SMd15>Ic-mRD3h67wGk=eLW(&3g!s}XltYEV16BDFc&=q#cTqbqPGKm z38sEi_&k&r)^-7j?nSo%KeQ_L22@X|BmQ^jBY;C)%;*Zdqx5cI4x3;-ORpO_h_>i) z*a1j*ZItU2rTaj5HB>09kvlPnE*FU@$zd3)v5Jwn0^TGax^5fXaPofNO~6eh^S+ye z+mp25uIJbk+;s8_a7XC2!yQaM?YkXthee8+h4$9$G;2huKNbA$60vp4sGOmybSLYR!IGz+82-i9G<%; zAL8mDiBIof9_}lJ+JEzVnD<=}d!_#do?Q1hLT4as&131ej>WaT^#8>0Wzr>ue0&uu zLWkDynTc{l!`xk*?;_S%7{a$N$Fe#*AkLSpHNTHO^Vof7j{NJ&vC^7X&vxy6@h_vP z>C@rgoqXZ7e{T(zQmOdCGY$2Y)UVC1-d8_+;rSmdtpCSLkA3)^fybv~Pw$ynqyOv^ z&gfWY?}>l@viCALd4jqj8zDoGyCGwc24ot-4dpJ(L4E^y1M)Vc4GE_qTOqq3_d^!I zhev{^yBiv<0+SHWf`nKfgjhBbIw_-g3?#(OV-(M+gjlwOSjo8j*m%MTapxt((?y6U zj^86_EPFz{2P7BkkPu5#MzMqm@r21JmL(w;jHKs@CBzz#QLH>dEJz8l3JG!bBt5Sr zLZ=`S;+;T<_lz9K8-oxp5(#l`gjgOj32qu8UJf$q{mx?uXN_kTBfK`}DN?LxJfv*O zqxT5qP)bR~Lt)N}`Q8Zm+7;3)Ey?ky%|z;p>L=UeXSOIIRu%JPP~J(jp;!1D5T)g- z1>YcMxxrU>wqe(^(#u*~2S2hBu^(v(0gyH12R~lHO`ksa83OXVC{tohd6BSDbIW!R zw);H;9JS_>dEsT-k>kA24;kQnWx&BmlqGn*7Dy^uFnUglHnbacM+;48QTfAk7$aa>R8z)kOC6v=l)~n{kM5q&q}>s>a|isF;2fEbvtwtfZu2~ pxk8TfA7jbJ^G+V$YL#NS;8ZJuUyJ_gdyZw}pM`3zhR-M={tHfGm&O19 diff --git a/42sh/obj/job_is_completed.o b/42sh/obj/job_is_completed.o deleted file mode 100644 index 52ebf04660f021f03cfe9efaa2ca44b5a771aca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5280 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 bIc>ZGdJZ4{f*%LEFV-q+0R%6D?HZ_V>H@++}yf zLQnY4cfQ~G&hLEZ+;hG;%Nzgs$0vpmN<^T7v_a|`sx$=UX2@lNpHW8RLB~msK?!Ye z3QCe7ifwzv{a(-x?44V8?YwG-tuwMgK2CeNLkPwO<1kfNY`ah#X^z^i*YF|R-g3|8 zyS^NDi;!oT8bBNL>8`LLdjd1$tJEAHXyyCuEN>ycV}>--dX`7Xmme8v6!&udv*Qc- z{w#;zC||i+s&Pmw-#LGigxDkX9acb`>J0V~)-~g6;d(n# zR|Au+miV07IM(Ue&Fa2#wP4%Zx6B;zoa9SOa1eYviUT-*@|(Bt702vS179~7VB53v z!ON0wNb>EHe9{y#A;!Wsb$H(@<*Luvx?U3ld_Nh?lXAU-pAjGT#dnDXfiU4qbj;T%>#Mxc{khj|^YVY3~r2*gBaz zP8rNiyq%kPRl2d`B03;LDYW0u9X<5ENIo#+lfXPqk9Xh!8CsrOau`A8j$RhY2YJ|E z+WIkSafz#h58MNmOD{}KO`(%3I==Pe+|geT+4+O-BTOsb81zuQLC_RmtAD;TD@K@^gALu?1CdZy05mU zkk77LYV zEss` zNqj!`h1jzAwyxW8{34oACA6&zKUwQ$nc89zNo{23$Sd4r^ zSncrL)QOtb zW6Q*ztI*HaFY0XhHru7@Nm8q&7V_yFn|NaWkvc__ow$*t>{ z*yup@1}t-)`4-e}t=Hm0xD0I(XZZtBIB97$(`HSXJ`b6S0{9%o-h z&GZQ4J~SuMX)HAMqWM=e^_)Rs#uHg(oB$eyn2R(j)c5-YAW;*^5%t4wRFbCt`56w=PL!zCrYyoB&N@5}0 zlB-d5i}saJdx)EgR)aQ`)FCRvAMq%AEJfc2FJmXFXW2L3JPWl;TWb9r+TWPv+`<=O z`CGVxoAxp+e|uM|nYi^PEPvB(<7d;KBH^>B{si3YHQ$38h_0|cgkFdf8-<&&K7o~? zwTgrhxMykg@hfz|;$+c&Y=$)l7AK2l)yx8GUT6(qXRLH+tyVLOr@w4;jhb05bkgg~ zQE68|rYrh7w2j+QSr}%fJIJbZ4g=`4!%FDiM6-*-^a5LC!6*It<{U^wDE!%C3GCp7 zf92wXkMIKSmUurj%gnK~TgT!@ZtDN>;duU3c9RT+0V+a=*6_Cq@`Z2X+CU?*2ou6L zImaa+d|Yr&WE(LT;+-h>Hq|Am;gPQSFHA1|=l8akdf#-q=Rf|h-_5^p-{Mz~J!k&@ zm0xskdF8t=J@ewh^&jc4-{H+Yeeq{&+s0D&oPXfo1BZ{rQt`d#PoH`1%DKM}r#^gm ztoPmMse?Cl6qh>bQwMvnNw+~ZLB0klK=wf%hCB^<9&!QlHslh7zxPRep<5yAAvwsm zAXUf_$P#WKyCRQG^LQF%_ zi}#8UubQN179_;9D7~1o2r-pOh#8s?kH4g6@*;Esm4uiv2r-LD=q;Fp=q+bt(jdev zBI%iO2r(5&h?#&8Q-g$fB?`0ti~JcQ$*dAy3+2FFLfM~EQgOpP z2`|pF0MhdTiKeE)pFy!Xk$On|QhRWTan#_e`VU}5`6$sY6ch}DC@t?vJPw^olMk$H z(`{s>l`XFw{M>BBz2D8+!QWT2Jb@!cw?0ZS6P}y>WBhFoMxl*ulCMb^ZNVt{tZnhc zmACy@W8mmd8@R}4APo5M@f5&8J`DCSl2o*4^qjUpH`AI?(z^ApX!GF0Ps&m)A*?tM^oFVS+Ll==}yh~Aszsun)NF!0l=W=R$Eh=s)fxI>oF5n);9+l ztNJ2S5|-SzA<%kO>ZMXIlp2bDy1WYdO4vyNVPSKIDe&Jnvuw!|x?`6Lc`uJmt&UcT gUaczZ5?=UtJeTlCrr?9zcE;;`pZe{qe>Z^Pzen`Z<^TWy diff --git a/42sh/obj/job_kill_all.o b/42sh/obj/job_kill_all.o deleted file mode 100644 index 85cac4ae77980a0613d2c28f767b7c46fe2019ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4180 zcma)8dyHIF89(>V+_^JzXJ=*~*5cB3V4<|M-C5d7H?qN9Y3mfWfdC6=(Ch5o*`2%0 z&J6e7=__a&+n8NSq)6}|6C(*hjm8jCjfwaGAEZ74Q4C@X@ehmzF|Ni)TMX;(cka3C z%ur}g@}2K-zVo}^Ip_P%JujU9`#Yu(T1=n=#X(I2T>*r48R#sH@6ooT!-12WgBIz) z6r>!DXto_x4h5kc>UZwB=g$A@k>o0Yc>L@$0MKcRi=$*wv+bG6bZgG`15cW4d-vTF zx9^RHMTGMz7ln3C#TRO_m#~o@;nfz(1>^I|^|^}wZoI=?`<1dnyte*=cnf7m zhS(ingr|-}TpX|5Y}P7vy}ZEi-nHH%D!wrlQ2L_rg?NqWd3nIy@qJI>U8V5$ULu~1 zuUU4w@&4F_H-CwE!Qtiw*ZYpbtEpZ8;w9pt=p^fhkv4C|3 zcB_8St^ktcTMLC)jr9eejgR8&`Pa3Qws5 z%dbWbK-y=TmOP&r^c)>CFwV?mPpX=I+!A%?n-3DrJ z`~<0E!R-$3BTto<{!%*jX5lGuhF&G(5A2uroGqOoQCuz^`|PsF9p8zOAEnS;_mk3z z{mZ2jsnXK^GZ4>gnTRhvAI_Hp`|=oBUfT28>(8#Ntdx%ZtnjIyPO!WRlaqJtFC3_N zzT2o5Mu$g+M+%#q8t#N`qa#p;cWxiPZnN+`r#Ro3-sUvwf!C-}w(oOmHM?A^4LhPZ z=h0BgB2)DB7HJpkMmoR*-SGzjf zZ^W|s#9+2p>q9!~!!Y(~UyEfe zi*xWx?-8-=zJ4mBD2ybkL8PvN?MBPOaC+4j*Oj&EYtT2d3W~8FP2-2MSKvdtFfm6A z%es-}2GY(hlKeGq%D|bY}SX8rU_}1+O_&n z#^fH~L2ZjZlo#<|a?g$aOh;Kkllne%S4q|L;DhAPrr#Zcpv^47) z2)_U&Ga9~cjYet@)TA{YsadFbs}!j@sB5j;p#Bz=%tI|$_d`5OwHNBB_4!EcgE}rU z{A7{Crq;t(SoWXj21Mo!uqoP;TI!SJTCPfF${9x}rnGnpr(z7CdkluuhZ0`_`;4*9 zd>mZv`37#^6VT*&6!f9E`AujJ=Uu_gJPl2r+?800`7$(lIzw2AFzRqS1ygE6>IYy( z65Dgf1lKEXZgNzIY@sb7W#`EsKg48|83sNqt(|je>Yj^RccmTwVm>GrY*k3~7x8x)n4HYJnC(JgM)1o&~)G`YY%>s0RTTKs!KtL7xDz zHZUYuENeh$ObwctGRnlPrisa}OsrCxShmW$#VV(X#i`(#(KNAClotz`Cf2tyJ*P~JPr-Ae z>BV$cCZ;S+%yKo6bxsq@UzvD!(R3W7g5WJe6Ym=3^?vziBG;I+n4y}wU5U}rn5Asm zk=uoKD6i!+X7VJw81Utwk++DmvJ&0SVj`RWf__s^SWiOig0C+ALkDib^ZGJ4UbXwD^bpq8+}YJ3L_*9S;*cUGSZn9}HJnP2n8Ks4Dfw zfD#YqsHabtC+g0YuZqx7JsO~3Kt>Syhlzw`p~Z5Vkxt)gT%P#0Va^)q#4ScXakG&e zGjxcl8kc?rppeu#j!LLY^opzESb@ vii6QF@w(z41kb?`HHvMj=OsHiU diff --git a/42sh/obj/job_notify_change.o b/42sh/obj/job_notify_change.o deleted file mode 100644 index 6db4d7e737d07f67e7fb94dd0921a57e260317c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4456 zcma)AZEPGz8J^wq-tPH6W1GmW>*QLuA!%ZtNkU__Zb;fBy0$?9Y3stC<5D`KYB-BKRNPLw)B_Jx0FtmcIgcdbC&+M#w zcTTBCdgq<@nRlLjcV^z%x%=fie}B&uLW>AgkUmJmK$V4{+yJ>s@B@n5A9S4K7?jWk zr=X+>qS&@yKH>-Mz!`8fNkdKf3F9m6;x7x1~BBjH{?ughDAYkaxx(&Z8I6^g}X`7qzVJHC+b zlHyn?U#(v8IHZ^FPA(wIITgi4IcY*nXM%Y|*LCA-7V6biYe`?1 zZ?53T5PRbb`P6c(fUnSKxMjOum}7X$-uIGO)vW(vg?valN!c6U1+_oI_kAF>w60;JXMG)S z4)5vP?fMh7ddar;?g|~LuPDB(0vq7tmV6ZZPpx?mUwPK9G_ktD0Nd_44`KnnBT(X; z;!~!;>(7R5>M-BjT3s^szV8mjw@C$aS-o%R1LEVnpi78&aKJJ6VTcQmueu0*jNOn= zK{^W`L0Nu8bb4LCJ(FK}J%4I(GJjfb@ce0!U)X(h;rQYU;;$T$Kb@57?95``c$L7y z?pO1tDO34{-{u!C25x7MzZs0ZBJCeCp8VN1z~ceZ@qoK_Urm3B`zwFyXOo}%sT{DA z*_YkB_mNL#50{&*npe+GO-xQqX4g9|j*RiCNf;AbH&1+QgJ?CK+(EB6?s#>->A7s% zbz1q=Rdh6JCEMpR z7n<0Ac4)$X%Vu;Ge7{*MwtXazZ&%zxRk&Wgnw1qfE460Jw;N5*DYxk2)>=O3rDEJ= z_$Y0+YEPC0tIh{1TN1YGty;BSE@jDF=XcGY^GbYlxj9$!TEekwG6vtF0*zyP5^!vZ zz;;915sm|oB~DCPQ$C$}OQu$%TrLS&2TTEg`Ei12a)Nns)Jw{Vn=QMpEho-tH=B4n z8*|u_sEQRQ{~@8R(r!x)8j(~cI+9wY4Pcw-695Oa9sQBio$z=(o58*fWEnm<9^cL^JcASsju?xZT_nUNDwNLroDZP)KZYToJ;LvT zme#b0e%@`%_DR%z`uWG0=-R4mpkLjZ^l9EzitB;A;8MK&cdR8Cni@ktWjI)2UK4!%(!y2J=i$0c#<+#(WRzSx8^rB=L73kxk|hd@rCGU2D7yWmwTH5OX7{*I=7BSg%73n**^$ z=+Conh!MR7%ck`a#&A1Y$7roa45HsWh_(i?)|hQ7NaRst7|OJwtk^*yKq`nuRl z&~p0Mb6S23OD@y~PRm7DCmG`H`dA|N8(4B_Hgb|u?2sXVQ{*4onMb$$6i_3LWC^g~ zdp`QcT$0;V?mg&y|~+y7c-R*6HL)__Yz`SC@&@>A?B!pn3#k(i;AAd6QPq31@V|5#G^+I;LUX6MKz&79)Z(A1G3E6>d@%?a2p)b|j-^5~g(yUX1r9 z$d$KAbM2ZMFT~DN=4t)jWROlmtcR~I{zwMx-Bc1aBW0*s&ou>C4aaTstDS4NnmJ|V zYFno6=tf#cdt3nIY;{q`$9CCW2M;5xu0s>EJkA1tw2^sB?LM^SMFu!BPErQ$Zp&BW zf_sN@2(A|}FcOOf-k?O%n$h2Hec8AvYGn>2b`=Qy7d`$6aVp-Cc&pJdQsEjl1jkz0i2j_!u<8yPNZm@W**v(0>~=#z%8X zuTy%B(onMhA4*R{r!gQbqiA%PVqcHVn{H=+vB&m$Z2ETktGIxw!rP=>@tSi5+$2i{ zzksV=z3P^Iua27~{!1u0hj3**WLF9`S4i(_*_Rh3X>?s`yGK;pg=R_E72GUw&#d4V NQZU|`Yw+eJ{s-rBl#T!Z diff --git a/42sh/obj/job_notify_new.o b/42sh/obj/job_notify_new.o deleted file mode 100644 index b1f5b6a485dc970a5db27c8771c3c825a016c3f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4568 zcmb7HYit}>6}~gOGduh6?)s6$A$78;owR{u?K*~7kQTed?FLd*O4AZ(HCd1Mm9BS} zomnStVj3k;6w9g95c;o_sHy-V0ikL|B?>AHP_-3MDMCC{L8#iu;ZdxjLQABY@0+>f z*xQtvt3CHT?z!Kbx%ZwsXMg>lzrPz2LJ0_Tpdjd34P6R^wi=Y7{yuF_)El@UeS965 zf|Qi=Ow-97aHIlens<(T;m#|%FP)GA@fgeYRv~oSg5ofl-%Qi8oqDNKkcMVFA7_Oe zFS;Q9Y$4PuqAQu^SZ=gYFaav{9d{4kam#|&*QIoci-b1Sga^|SNFT3UwOoJGT#9#m ziMJ4W!*yHSE%EU2vZJH*+yvL}>Ugh8gyrIuD)}m>G~*R{Akf~CQDnlNUdDcKU(l`^ zUp-qXaU77p0(T%o8$BG>`f<(yf`jx)UXyzi)tZ@UcW z<`0a|!>f+&b2qp-zDFfqkHq`RGV$E_YFVop@3|(t$CiobOxCXYz859lH|47TVwreI zVi&SGzLWBN`0razEZSL5Y}#L|I*#{r%tmE@sWN7oyLK#|aaQ7`r12r(@kpM;`ICFz zgqJIt`8syjo6vk8ye#pCB;HwxCsl!Ktmw<+e!i7U6&JDjeUlN-d#4O$PQLHg-X}h; zi+dMFy@?FI6Z8oDDL(^#4LGmU+d+#PAK}wt`*P&nnd#RvNB`EBc~F~#e`b2>?aa*7 z+cVoT)6bt3vxK0YnRy_IvAOAy*D^<^=0xJy07o9Y@w2YO$XsRyb4O+~Gb6JzwazOu zG2qX^YfUq7IUP>^vEljqd)7r_uRqpY+>q48%pXh=6 zW+k^jZHeC9HZXb%`>XrLvb_WSc2O+#p(-4cz3uj;F;S{GqE>)VD~*{BcRgFjaWs7u z<6HYNkah5}8ErVoCCAK{vjtJERthP%BSyYdw;i)quUa{qF6EN#;3+O+#5wp#ZrY{$ zbAsLC2TI)qY*g%0p^_U*5xK(8rZZk0O9)!^m0;d1)EMnbARdhpLI|Tp1mZi}sSF~`!aY!LibgRKVR}Xvd{JD) z7JN1Owk&{REUqYgP+~nEv<LNeSNAtpBC ziEOud%+&RlAG_z|Vu!b!xXTjzjtbwUpW&G`<7rGPU(;w_&^piOA};YIoAu1j(k> zt#)^c@DU7ZLH%{G8H#K5Ij~cpU`8kY8Bk!eu4Bqm5cPH8XTUT=;|A+p=za%1v^w-B zu+C7MaS{A>m_r>5>giB|Y_h?WRgo_0eC-v@3e$w{)1J7b0;VMW^nFMR;r<1px5 zq3?n9MK&2vgMSz1$Va#=&q8~G+GZ}x&!PQ<+7|B6d1&0rNE)#lzlFwqi1e!6*BGz( zS|47-c-7Z#P`i5;c0JOsc3&?v!fQW77yc34bVWM{S^pKfm#C*&iK?`{21DB$ekZg` z5ZgIT`zIx$Un^As{qVtsM2@41)9D35x<+TR?FTztC+U{%f#O4T{L^m5o|*kY5DT*k^kLAAAm)PwngC6MnC{;PJqP*? zXclxC6vt|>2l4#e3i={w9CR3T8pNH%PjG)&ZJ_Z!pov#RI|$7N(ZnIH6dH4uCLNue zct)C-@6wB>n_fKi(!{eu6AzCxF-vJ;@=6o$3z~S1ND~v6Cf+qNE+!34Oe7fuvxX+7 zqnya>r-^AOy^cVoi6>T?co)&c+e1!d!qLPGlqOzjG%=l|X-InUwvZ;?T=e3FBSR%D zO}tm67q2;*7@ssTw`t;b$%+5#B!_THdD=0C*~ diff --git a/42sh/obj/job_remove.o b/42sh/obj/job_remove.o deleted file mode 100644 index 5f68e0e7e8f8f04bd1ab2e6a0b9dc9014ef8034d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4512 zcmb7IYit}>6~43UnO%F=yX)8quAGLA5}PE{UN;Y7nz)Ti+-^!Dpd@{uR@3$D?CwPC zon>d7G;u7YO@-pRky;{t&>v7F2>C;Z5EYFC6wwx1N=pS2FI8794e~P;RThGB9VAct14@5~-*Hy@ z1U5JYB_qe_x@$h@N&`yQcaPt*`?4Lh-jogUF_t(8(!|=tVXC0$y5YDDt5%jkm@nXY zQuaTq1tWbOS!g1jqB${D)2-iF2jx+z@8#qcmIagnU)44|uP|Sf zFTAC^6>l;8=AwLsiHU}}kMD0`d;#CflIB|ZtXj$DkTBn?GQJCPzNgxK;=}kJ{4OYq z#@8s+%BFKA-wUA}`cA?pX{i_Gn=BY!h~fAGJ{g|4I$xn)ubO(TFv;+)nC~xSd|PEe zC$1Ww&u35U^*(SozKG1X)spWo*U0C^S1%Z0zJU;*mTY-*elzs`{P^4h^+o4gM{jY93>FzUL+1s0`*sIp32X5Fg(Q zx`ash8zzJAg`5URs^Kmn>gzN zyUuSpdJZn>V|1JwNB6m=@3~p8FF)t4u>4#nTtK{MK0i0}UVirX;PqJkw$8&x?}J(p zK?T5>{m)HXwS6+jvyUMn77&631;mei^R@E$K*VJq`%WSTiu320wA2Y`7 zCcAUzUAwaT%!Xsxwd}~y@X&B}jZwuOIXE&5V`$_0p&QqJcu2WD4#wxo`|Z8OLT=-F zry?$gEUcoiYAz8&xVontUzMze;~~JSmg5S?SDd$rAyVs(b4AYv2|Qv!ga%XbQn{O1|Fuv(;wtc+C^+guGyHh zY)2TnRjL-s!ZoNkK({@>&^-ipHLwj~81QI@V^j(aFK}*1WOC}JiRZBPnS4O$Quziz4k{fwn@s3SDGJ%sE5W`Q zWEnme|Svc)Nxc zDb;n6Rmt`)SmW&bWMoxFXwRV|_A075NaVWsSD|_%OWMBI+b@xJK?+4)9;uSP{Dk&3Dn%@-YTA4~gE8SOGL2 zPbkR&G@gOPlL{W3+#HylFyqNv0y70Ole|4J(=dCJpM&{4B%XnpP1e!;JIyYbBguyX za|z6CqLZNxu{)-uUV~1*g{nt%z7DmUcwABMrB*U!s+c!|m(F-Qs{9wn@=)F>Kph;` zKIR|guh+|TaPi+)_8AAM85@PBSV#Z;$vYdhtV(#)BL}8v2 zV&Y4PnMsICMnYUygt*is7t@*$vt4>|5fb96lo0co5Yt>j%yvRt1QKGp6XHUY^h`xU zOn&LbTqDFJmJk;eAttY!HglB_b69$PSnkA-7yPCeA&cCK$g!XV*`yr2Qz#E+luR-f ze;i(X?sCY;1@c_F6l`T;ES336G^$fP zgmP0(BPXq#wPEB_3lZmllhghC^8!!c$dcAu1D;ZK+@T8hW`6|QSQqjbh0*4Zkav!d zCsv2<9h|_&4EkhZ@nor$&FQVr%Ng?-cJv{T43^?1Riy=%qh` zM$m&lkoE~^%xLg9G~W5>W6%h1^bjF2ihi10Hrf{0X#hdNwVD0RvNB{3hHUz_`hOv0-yX8>57|O5xq7|eR&?C@ zidIA5#^e_8p=)Ja|LmIAU##Pw3Ag06kr?=Ep=!apoHKsA)G$rIWlYw2Me;l>M{iyx Gh4?@DdC-gi diff --git a/42sh/obj/job_update_id.o b/42sh/obj/job_update_id.o deleted file mode 100644 index a0818cdd0245eed26a78dcab8a9e78d4af8b4a22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3956 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 diff --git a/42sh/obj/job_wait.o b/42sh/obj/job_wait.o deleted file mode 100644 index 8eb10c592e85d5ec53430f86dd163a68fc151476..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3712 zcma)9YiJx*6uvW?*=!!&Y??l4D2r`;KxcQ8Mva>2M!UL&6r}bMgfi}9l1#dpS$AfW zv|%+gtz;VmEm#mltRPxJL{NXUe_9_f}FbI!gIoZtE22#|qX=3hBl#FQ=G<}#Wym&6or+j^uf~gu} z)tsh^l2y~iVFjS}ilS`W+rRVaiq$^u@EX_j1u9GKqz2N(%NZGa-HUg<#+tEjmx-53 zrwi&h#akPni)KpUc6l%yzXV_JUyg0|>B7->M&WXF{Ij8A1qBq}@ZhSnLX#mhTd6)R8E_N?$atcGiuLGTeJ+-EF zK_>u$c@|VX=oLh~)mASpIp3Wu|C*e+8cWVgUjd_Bx|uAWzf5jtshr9A2Mf@(BEs^L;t68r*ThT?>mv+_MW9 z$@${7Gn9TgaoKi&a}>7a#ElyNQS!GxKb5%3iA!^(8*{~LwqfTV@!9K$Z+6GUmLoC% z-4Ht$;*0o5FkKAFlB)Cw{!rgDUXq%_VLpXTFT>`(jGd$4gTO)Lf~ftJ4fmrHx!^DxE8q zI^?a{Db>i7MvZiMBBfcj(8$a}CJL3DF?6e7? z?$l2$H9Rn|XGeHkEts02hkGKiNGyDRCWr5U+!KQk>F$bjKJb6>Mt7U=jt);4quErn zyUQG5ZZ=HQEv97|f+bQcx|pc~I)>tku-Mv#1=C7dMUx4wLPxMo@&!Zw4Z&7nB~FnT zfpVn~Z}bHpZF;QfzUJ+1Pv8XmBqnmz_BMRgx@$yfGxG%>Z)(DY^siyt+Z^(QGbmyoMH9NFn2s|Fk1pt$W|z$1=H zjW4OZzV;2S!e7d!4hBSY4QWu*5zxteOoHBNniLn+iPmD%vrR>@Bjo@3No(&XhyNUe zZa?TH&~XqIf$S+?>Zur13{p|e)_^dm5~QL6aTV2xR8&5$s;(2XHM!O!M#`1+H2C%r zLd|gV5)STU!emGYHP;7@!HQyQ2Tk81l!XO%`&oZ5^osb@3b&WH!&YR+U?~WH2Up-J z&^tha=Z3Rr(JVwYJ(DYD)u^_$=b>7SdBD6w5mos2-@Q-h4uE#FkrAqTWsd4QcM5vi zG1gEyyS^4d5*q`XrPbo5Hp%brmDYbC$wN|mujD@@`TWC@7>G&%F+z)%B+=g|Z6wQ0 zux#wbnY|#b_aBo2&UCFatsjKpFOn}1mm0{k9-cmUioSz^OGhQ4C^n!PuTmu#lS_CY zp4BfpT-Lap21hOB0dV}ueO%w^aCr-t8^Dp3d<}^qQ~3vQ^nUpQIF{ry;DrC7!{v9m z{1!Ojm%+*IAlK8OgT1VAc?US*((gxlPbWCp-^17G$dNsrczVyn&bmL!`MsRe*9Lxg zrNgP)kPKoi^xz`~UL~@yM^1R;y&jq3sP?D0t7WFRM+T>&U}RL&RK`+;{rCsTZnMge urQ}oAh@u--Rx2=)vw8eOW(_g>J47AZ#?VZKe(L2^OI_5MmXXgxX8!_$IZSc@ diff --git a/42sh/obj/launch_process.o b/42sh/obj/launch_process.o deleted file mode 100644 index 3fdab7199aaeff0598b16ae18ec5ccb9fafb79e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6328 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 diff --git a/42sh/obj/lexer_backslash.o b/42sh/obj/lexer_backslash.o deleted file mode 100644 index 0e3a6241467419b8f59ac6b329d0063e2816a295..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3540 zcmb7GYitx%6uvXFvybj}TiRMd9&Q367}_mR8ln~1(#0)orSyR$V#e)u+AdvYo1NWK z2^bQLu|gs~qlt+c#l%E^sqqyJ28|{fH9^B4<0C#ojK)f0f|7{eH*<%!3ku%sIo~~J z&i(GW_nw)%pZ)dg-vJ>MO+Z0>kZ~O<20>c@IZNliwC6CG?I_2fc{bgY8amMoqhwB& z+`en~CwKPG*j{g!?2wPswpI(F(&rNg30^adA#<=iV%Vjk<1&oS+Y`N;y~o1i8Rw$V zev$dPmZKe7&-VE8g{lj zkLOLp%Isl!7p?aynP0oi=h$WQbNLE`yPX5B%x}BoTPFFwyFxxEzwu1AlCNCBr&rBv zoa|NXpPOIl?(s{m_esh3l-$6TSICE#&Y`T#Z=K)G!dveL;mhThE$qQMOGeq+o3n-t zBi%WB#9fjvCY{sZ<2Pjp^(RxVSg$#13>R^_?f}D>`#m@)`8Ggjuw61uM3`xuv-!wj!IyXP{|) z3ykL0HO;G63cHw%=gmp8=xSpylO4138GE!jE8+t-hQ~+t7IqJ1;;n1!QDGVgwo93k zDLRvz69egfV7jYY^d)=5?b~`g#cc!K9m!sCYi}~qFVe}rKDV2=t<$lH+XuGwCq<_V z9f?g_`_hTNl-QBz6@5L)Oi-2z;+>9uu3K#Ni^)-K2uN` zC00tNh!S?3u=53LBv!WU+=yik#YkxJrsBnt9nBO)sW4_*;CIoM$d`&vg2Uh_jvmUC zGR|B=nWtPAt=F|^t$$&3o>GUJP<@IP4Toq3>Tu6iN-t#i!4GK}634udFIBNz~B1h^DJRMpR#DO`=%u6mNMM?FWJTlpCC zaY`}BY84T&%CS&I5((Z#s@?&^r>xS3>D4SKMdO98YLj$m2cUi0z0kV$0JL9w5IUee z0UgwyfevXeKv!umLx;83p(EPc(AC}zH8Y#C;{+b4HOiL&MOPo1JmuJ5LBkqvV(vA! zLi^Q+M%!r3>*Fc{CmG=jeg_Et1Qq%nio>)8Rebs9YjxqDfy)rBHKEVF|%hMtAFoe%2*WYdE0%);inYNz1I;-+AkSMyu_zhEW0p~@47!-BoRPG2u>xciUpl&) zA>2hYRvKL_DH-)&=NG`vbFZDTGfKYJB%0H_V^#L`3T3iZsf`4JN99b55P8?1Bs+gz zju#>kt-Vj(RP7d_5Z@q16%Ruz%DHGYw8A+cO3upW%R~5gbK!0g@v>cvOMg7Kc75Ai zkA1ftcRsN;E^1yz&7)+hxCC$`q0n#%xKG^y=%X^_Hy#Ez&!>veg*#cRQS?aFA9~oo zMXztygYCNN->OGp)%eSLBT(G}IHfN_H?~Eug5xFCj|GWdcR@{UK=3s^>e~Jz5|>L{ wA`!r}{m)87U(`^^RtKDAifb!u!OPVw&bs!DVR;|%UUP3G1OFdQYlxKp06T#HSpWb4 diff --git a/42sh/obj/lexer_default.o b/42sh/obj/lexer_default.o deleted file mode 100644 index fce1b2678fe968e3381d80c6e2c1005cca73272b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4000 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 diff --git a/42sh/obj/lexer_great.o b/42sh/obj/lexer_great.o deleted file mode 100644 index 6b6d3d0c60b17c88564460144f26eb914f1536ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3872 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 W$M@6IEc|`9or2(dZ&%K}#Qz7>+Cmio diff --git a/42sh/obj/lexer_less.o b/42sh/obj/lexer_less.o deleted file mode 100644 index 55ca67fab76fe3232c02d08a5071fe50275f13d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3864 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 ABme*a diff --git a/42sh/obj/lexer_sep.o b/42sh/obj/lexer_sep.o deleted file mode 100644 index 0fc8b499c9e038ec6695c958f3853a64c4db740a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4008 zcmb7GeQX>@6`$R`+1vZ@-Pul4r%B5}5|c)??~(>&k&EkdeChgfX^rhmBR;gboY(f1 z%bvMiCuvD4(`zdZS0ZhJKLGLZ2SSK~K%!DysXzhILM4dASA-Bs{{S4Rh(HAjZ58u- zyR+BxC81%Yd0+G1Z{EzCncZK#@wcl%#w3M-pa;+wI7kv5Z4>$xGTxvWA#dO;#i02* zFd6kY8PN>GF;6+3?CI0FBhzo|zI29?KqEYw_Hv9d$_>gAF~1qcjCpKv&aj=jYchh)|_cyi+87}r$~>jgng;SuZwrQ zRCZJB%+JRY>D>fgXqqR3KTi98ZUm(HqTW1o;S%k!w^myA1&9}R{rq{_VWf-cTIu@hZv0Gg z6Is4T|Kwk(40>aYWt%UL#dAL%FJIB6tJs?6FWePlbCz>&>5ZSJKl+m_Jvqrj;qam4 z3A1ijYF2V+Fg=(~?kHFBP7VyEp$zWXJ-F*mX4lK9s(H$+d(^Pag~2jQ6>S8j=1$fg zoGGRD?6&8bX~4~PN{-3KatE@-!Zdhc{1BVUO|S>IHGL#0ZSPm;yZHGBVwE|{) ztX#7k6GMU{ZV04@4_)7Q27^kfF&Dul6g^XNO72`t>Xx?0dbtuysGDQmQV+@~2P7pHiF_ck7nN3aFeSDH zw=*yZ*B)skti)*Kz0vXBd+ zL{UzH29!rYx$+pOsx(1^%G02l@&(Y4@>S5V@(s|4@;%U~@*HTF|Ji1(e;MiU3mA~& z(r>{eE9p8G(t0e2omKkWobqOlDo`Nnlbb>s5u(! z2@*2baHprTIz;!SCGLN~Jevv&W3PSthefI%?Hk#b(W$k^lHM7MM|17}@u7I?8wd=I zUVe$G;2dSdVRUuI2$xP5alE1M@MQWpk&POCZ=5G9w?B8W|L?ypZ`l0IKhJMo;i*?% zIQ_miZ@b&NJ-zg)$d#A(Jd%i>_Ml~c8)kv7=WRQsvag(S~(aA)W6<%&pVWKJv6CDKdqO(CCQZ%=C z;8btnMTe5SsLaBPP6nAMS1}`%n@n^9gjW$NnFi5m7ttsmGLg6N`d{@6V&`eE-B_21 z8%-GNnqN`r;YlW)N=S)lP&+Fo*#ggrD}=MQ=D!Fm8%sPP@9*-?A5I*6W%eXICF#vr z7pO#Ypi332TwR>O-(Kre!cvQNJtgd^%H2cnUvIG=vQzHsYBTS-ADkzo*2|9%5Kb3f ze$Vc?LdJ0v4?7gvv4G4%-YW-1iAy{f{ufu(e4cly^E|5N`GyP+Ww@pumQ z=Xf9FWQOBX+5pA|KI`eKTPa-3exctXI2diU`bEL%_bCp8 r-$-mz+13u7UWfK^X3XO2Y&({Dl6hZGqheL?A#N4Z^>Dwh^qu}Ma<_Zm diff --git a/42sh/obj/lexer_special.o b/42sh/obj/lexer_special.o deleted file mode 100644 index 497c3be6c61cd53d45b2b736b6d33cc78efcb393..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3920 zcma)9Z)_aJ6@PnsySMkpcNaUP2?=mgLP#p?Gl@YKnBYr%VQuWh^`Fon&~iR+?1RhR z^>*!qe-({O#bJ<)O5qEFFMI+?;=EsN?@QcsH%ZwKxi94D{TCM7LNJ@OFRcH(1A%z zDK?^6mS-RJ{JyVGwEGM_B~TvZn2+xf#p#YQkh$19#@e z_6EZg;8Z2vYx;$upc4u@ECal9r6|m;cuP&**dC*Cw&*u`1bBt1shT~{_|5SJcrQwr z%f%}>hbla!6)!6`iRicTd;ciodjYwS=R3siTCn-?Jao!yi7drf$Al{_kM}@yxhQZmx+f%Cm>tni}2w@3%>Wcgs(U7mi!hghw+`B zHRl{DIn$OkJka1v-4ZV&jc)>vOY*O%KN)fho;_>f6>|}S%zFMbwA1E7 zFUI(`4aOGUOk;5Q3@`Z_on~=@zo7p1g*o+8!VK(Xv#w(zmT3SzoBD&X@XfZ=W4sY! zkyAvtSI*>p-5=lHJPzM8na1&ZQ;+c`1@kc`LK5tTzr&1g964>)b4CyVN4_|6)?7HL znDtX;{cS(Wg+FKR`BRQ>h0O5qfsxF-U2{tnC)3;2-PN7hRxINx>+J1@($%x0>xS** z){5D(eblb`+;XdSu~aB`6)8LEVsduoNaeoiLbhjzJ4?0&SJx|eHVx$W<|c zXgohkckUk>pna1gyYpjo`&d3VLBsj+alf0}Hy|{YKbhP=k*5J)?9T1EV|+L_Zqk9= z7>$qS_YCHSNdy#xLM6weLfQ4mv&tn1*B8Z#R}gCv$EB=Mu1$7m zYBH^FOs-MdQP-icq9)_T&RddIG#Hcx5lHrW`nlflx~M7(&rPPal0(=%0f_t8VAmQGz{9n*^vUWvi zvk~8d-Y9G9LYvc+i0(rF96YqEql4&%K;gS1oY{zBFt%|Q_dCIK#W(~J{TWyr6 z)$Avp{RL<9B#7;c!lQXEn_B0dM{C4i&4=eRtz}0vzP1(8AvGiwr73hG#^qXL8HVI2 zxz8^POK$vFcu$tDI=;O1t9OfQH~#uRf7^IM%f9vdhi^Q0n`^YHI5=Pl5OpnrqH_}CwTehj)5#JMYi=0SB3ryhd17S@5#IEQTF)JhXq z2AepcI9J>_>1^WCkX|CGFmaZpi3@?fxHk9|L=(w_SsSCurh{l!1CN4Ya_5bo0!Ortui@5>IFn|ven1l?HsysMG%F(ovPDG3) zxy~kdEUhrq`SWr6Sv{sj zhTw9m7Khf}rx{|ZK#uomdY`5OBE_B_+ztx2bf1Q?RR_|#k;R%rT5?F+fc4g+drhBq z?U1&8NQ)tyS3){=c%9gD>a6-3-N_|`&+mN3*Yzi*+$!bOQbO={>Mu&kzjjhE1dY25 nDqYv2^Ci$YPSznj%dY3xN63FRt&&s13*3}2;Uykdex&~gDFIWt diff --git a/42sh/obj/lexer_var.o b/42sh/obj/lexer_var.o deleted file mode 100644 index 0668ed3e08042ba723fdc1f1ed562bca8f86a402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3948 zcma)9U2GiH6}~gGGyCh^^$)?21eQ8LsIb>f(#UGv)SGz2+H8Jmdqb!a4V(4YyXj`u z-57O8@V@_^Jn&;k-vv_OzrM38tW5=i9%RgtPzrYZupeTayQ`+YNa z67Le4T=|@H&$;J*_uM(>-n;(O=bwDx7edhl7{~`&(7_TQw3|Q|Y5a=zTEHE6f^*P3 z9hia?qY=$C>()};?YsI+`tZyZ-RrH$4)M5bHtOO)IqmsSn&zx^tTAua>Q%>Vn&bDS zruJTT@o*a46xx#E%5_{_*T0Nct`r<|C*ILEZy`S6=Gt4EhZkS|*s-d$$avf1^YDHl zF|HS{WY1MNr4w&euKowP-?K6=XYl=G`mP#ZHE+*bwJ+nH>&W^3Q2S<~T@~*{zTkw| z8J~wI!xPuW%P%aHEz{1QV0d5J@0&8dQ5n{OYsTl|RgN8Z65JWzC5g91;t@3~S+ZwMGdq68Rfw(fJS3#?Rp9YXc@Fg_L+-${isoDu*>xwFX8V1Rk$7Vg??Z_v zRS_1V==CYR^Hwg|4r1qiACq|7Wib6+?(FBkB0heXI94c$Ef#%!J-IrOuC}KbA2Ff`Hs`bbP$KFhTm}#X~PLE*p2Cm@^oKLSp6(8U4 z8ds$EN5naE+j>t-K{$<-R_-I|wEFRYbRc%@+^`#h^lPR+SlP0+w$@Cqw$iJa<+p~9 z{xQYVoycYn?Mp0L)mo`yCq{;bhlUed3uRnMgCoOGhIVWl`o>+NRxKpU){<3qxw)9H z4i!W)SHr~Q{K?Ak*?e-xwpvkGCfsWEeBBb`>Ak63b_Oy#u}@5=4~qK^OpS~ExqZ9S zQ{tYfbZSOq)6>&#H?@D<(I~%{J1~!8HZ`3Qhf-5w`e1s`L@FzsU>Jrd z*>#aG*Xp8fmP-&dR}?CC-NKNRX07y)CCJP=D>Yxm5ps;s%N2V*(XeZ!dE1&z5YXmJ z$%m~_#1i$&4=fw_uB=JPLro)vgWxdEp3T?u&RT%rmq29RM^UUQN}`Alp}XWCVIb%1E}jlm8OYaoP!;0s(%Y+ z?+S+j6o?5r1UEpq5JH4{*R2%pg6~8x!AEewBF@i*bBqUdg!w!^A|mdlK-=vKhdZT( zo|*&mDR*lRKnkr0rf4>}s_`d*rkw=$X{W$-?F_h~HNpMbPrw7()8IkvS@4kdOYpGv z5_m*=1-#39GKKI~Qx3g>0X3%l6++R~Cl}sz^nZXuE8fP~V>xg`ee!{?Q|r#V+L2jm zJ--DP{`2(r1wMrc{0A(!2KF9EyD9W%h<>dn{1?b=@Yed&0TKQ?G~Qa;4eCH3ya~O7 z)HbLCaS;jbLjT|J&~FJ&p!+$xz9aq+y8b|b*n#h}e><3=1m+-uKLi^FDSJaB5dF%o z@EGKCG>vgZ&frdz6jwCSb2h!3D+XVHn&x1SKMSD;fgqN)(OL zT$}sm4F3Mj923hAN_)%kXrD_{=Um(%YwPi^<-;4E)JI1&K1T{JZw(i-4;MG_*f_?r zBVm#C;q?m`jI*>U6>`CJfFmA zYhKcoho*$G6j$OAf8YtZ&?b2P{Gyvy?|h3?H2!0CPnTPwLL}jm@o+Fe)l zQIYbMfa1gQK2-$W8xo2ZQ}jqEuwM@wlX~x{9vIbC<6b=qO*a~P_iK7Ty8cPscwUbi zzt%Nq0b^PBLmH!cpHZaAxL?2Zbv*`K*J0h5^UV5<7}yN!*CzGwsIDD`%NZCab#)Rx z%lggehM+yFE5>)!AU=?IhY<=f_#z~t9DEiMhiQ-p99tP&l=@Lf`lTW983upmO2hfu zxTo%r`YlpI(9d{AN?r^x7`(>rI#t}&q3`U_aZk1R-`JrGbFR*REDOb|;Nxjkowwe7 nc};6+A&=j`eEsR?Jj;CE&3VgtYT@lZywV^4cUbl;mJt5~WSU#P diff --git a/42sh/obj/lexer_word.o b/42sh/obj/lexer_word.o deleted file mode 100644 index 1fe43cd13bf29b051fd5add5e442074ecb9cd5ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3916 zcma)9eQX@X6`$R`*}L@@xU388$X6;(Ns^p9nTj$ z7u)>{@RWPv@_70A`LbiX`Qvo&Q|oDqhwK{v}oZUZe1yxI#S7 zzxjNj9k0I)@5~kA)o-6)b-mLH?{{hgSFR8bht7j+_ph6W6D3&hPh-B^MBCz9s2s;S z>vqFES#pcEJv!86D+Ux^N-56*k16>)@=v+khUd)LGgU;_A7I<9_rbKn+pF+a6rK`= zCB$6NCJ)YAx#W6??d$!q!pkaWws-oY&whq~+?OOxEPtcv{Cd<^)OkwcVq@;X4{-#w zxo`?rbtId+F58~WE&emN@OEEr@virBi;b1sQscec(r*418_STEb1#@;uMoMVyH-{R zx0ron;hac(pWZ&D8`>8}xI=^rQPNR64Qj5AO2-pW{CGo*i1rE&M^tExxpv{d+LkQuab_ z;Y{DR{*>W?PmPXF9ZH>WsDiN&+lu*g|IXT+aBSGs>iN1OhO!4TlcN*hqr->9c=m|6^_Hi@ zRCwNaeu$D=7x{9nF6wr<1XlA|q2ksZbSZAvN_RMd#I7@a^HrQHPYJnPac5Hvw^o{U zonnfBE}u`nc7?foRn#lraa`d0yrwu$I+bJ|f=4*In6Kx(xd6effM>z3Xlt~u#Ji;t zPnsL!YqTz8t{&2ixMkg7-H7xywhJS^3CAVW3)3!bZ-)_Q&$ifb_t$YMr4+hS4R_%K}g&A!ra?2j)Wv(b3&Blhp~^;ckKt;MB#uZ->+LhiN4uJX0bjc95a$ z_nAk7=U$(J7}9nad8&;Ph-UD?)D6BOhH(lsWPA@)8ux*k#si>X;}Ot^@fc{-coMY3 zcnZ`qehnHko(Am<-cccf*|e$C=+G0|KfpApKRo{zPyQDuq`9s1JuwMt>JNW=2cOp~$;nkq zThKZ}X`Q|`DPqw*XnzO`xg|P`<^?oEN5e5R!;uKFBj03u8;Gez=t=auAcWTrbld>8 zUfW~s1OFLSdpYA#w73#2!x^~>Z_)cWWAs-L53;i>d>BkdqP>`X$r=*0EHzkG+V}jDI;BUi++TX^6tRNy8VWAtd5!3F5J^ zk7>vL5GpTBJ|Pj*D5`ID@giS`XJz`&zg@oe-E(LA@2)>s+T7jq+Rj%CYd7k@tXBH& zx!+30PW+~jdi2gm-hXA|RlD5HzrXWq=g(l=-%yz<|3yt=(M*@!sEir6yMlTz>Z7Pn zp?dLwEd#a=9EG8UBp7j}V)&?HL~-0$m`YSJx0KbCQZY_k9||*#R$RLp=tU4B(^L&) zuF{Ip=Tm~hkWh_`mfn9xoowPY+Dc}UH%36}St^CKD@ZIOv5f1vO04E{D`V5^HC!cx=D$2&na z&Vj0x+(Nlg#8=y;M@gg`wQ5@F)1_SlyIVE2+iPj>md2gry&JuAMEc|j!Bd9h!xQ3n z__k;x8`TQ|A%yuux`_I>BLpL%$ymon(lSS6_n?dnO5MC!#vxs8He>?4b6T1+@{8uI z+zjcE_4+y>oV N*T(+}$1QTY{{u2+SN;G1 diff --git a/42sh/obj/line_return_toolz.o b/42sh/obj/line_return_toolz.o deleted file mode 100644 index ed542b13be4563e24d6b86119369c3c73f3b3964..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5768 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 diff --git a/42sh/obj/main.o b/42sh/obj/main.o deleted file mode 100644 index 90b3f8baf1d8cdda48f5b559a9f1ac21b2cfe99a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5176 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 diff --git a/42sh/obj/mark_job_as_running.o b/42sh/obj/mark_job_as_running.o deleted file mode 100644 index c4363f82a2c9780526f50da07d6d80e227034513..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4432 zcmb7HYit}>6}~gOGduhA?%GM+rcO85NgYVM&I4*eDGtPC8-i3q(}b#FSdZ81N!Po} z&aCT{R82@!>Kag6Qwdar`lEsf@eomgN~j2tN;IGXBH{-RK?;4OpaxS!aT_V-`)2NJ z?5#t?)t-AE_uTKE`#5**{_4$FFGhq=LIM>i4619Wav+qeK?^iqrj+7-!$a(Y66nAb zqz)QUOw%n*yT0t}w~g$-?UEiyvr-`5vSGvGNZ>@eVKZ79wFR?d{3SJc9U&qoa+|6yseUUx4=)33H`* zc6GeQF70@qw~Af$5ZmW##C-1q@&JBW&Np|N__!`e9UX-gQ;M95SZUrqZ z93nX9OYK)8?=8%{SeUtYp)gCjFAaIVaO~cB(Q*6^^e@bg%ok=wVP@nUM9^@5VLb;c z99w|P2HyqtLVw}t^Y<+*E*54Wdag8`=A|l402&7V$owmhEy8bh1Opa~!m;Ns!ofIj zY6lZAw|n>PAI(jb8jfA7=7t6a2L^NfRt2}l=Al6-1KYO_Y}qKBhLt~98{KTxs&1oJ z$xjv=cbPDlMaOJ3t5v&N9}mv0{GvR%b%2;3y6Xmwkof)%KXMtFEY* zA=K?L)8$?l8#sh!prU=-Rx}h{w_%SqU1X4Jj#r9hQK?nSIjTA0>EvEhx*5?@LH=kqS#Q2z9MOABJ3EZOFbcB*o)~7nPP%5pjNoABQj+Ht9V^$fCg;MX0 zzb}4$;sdyMLYh#e;g(K(UbZh&wGKh6z8cK$g_l655=zD6gb>0=icsp7PAWr4u4o_B zo8ob_#F&)vmM@+FiI%TM-((9EZ7D_JKppEa&<*IFCQv+n6U59aG+mESvzix7=LV07 zeM9}D`A4l~W3fDxAf_+NuF+K-=2Bco6_6p;RkbX}sr}l=8laMY@Tc`FK#%~}I zS$&7vn>MyUa;WvHz1<@EAR4u>{vy~M#kKl8*jGT|f=>JspwK2=N0+A|>eoe|0n-eP z8?5)BItx8=b>wBR?nu@+4}L4mkuC=II<${bTg6Z|L8?+)jZj2PzY}r@WUST8U@@w9 zMy~;j7#gwTL#PVTxRMx#@DeDRP=K2trl%&M8i`K?Y6@yPQ4G`$sND%0>T95A8fq@_ zAjEDgZZrdRDDhaJW}yy?BqJ$+q7fx^5xgS<-!74ifid`~p+vcYhLS!?7V&z_u_dZ# z8{wsINA)cj^q$BMzy@O*jh}#j8|K)%xGc{?J4tO5m*qKVKc=>sJM;%=+{@SiVmJN_ zjr$PGtG(A6F9g~kCSv?8(6*?(eXU)OZB={wg+_Sohp3{b;HE3uDaiUSQJtZl%Mew` zz5qk^d{7DP6^Nberu~Z&QLr2z-@z5}zDwl6^TD_IkBb9ec;>In2k(%B4}e&f_NCt5 z7hjLX|HlUjDprHK2!_IUf+BQq4WB2r`f=h@<^6}?Q-IbaC22YObUHEhr2gCo-9N=1J$&k}zMp^p?1q2rd-C{y9ynqA?(uK@;*Hav{@D{xAAa|R z!6OgEAK5+Lb5*9ap{cG`Cx&j zKr^7Pg1!s-Dd@MLbD#^L6jpm3i09|SpgTa5pd+9;5O)$k!Tsq2M>z_jiC07?2!%HV zO}sj|QYg$>nwZA2BNLk@=DYOb>86RNUYdATXyW0KCT1y3OkQc?eL)ki5ou!L(!@-W zaZ#j+i6n!VlP0F4?8xk=7t>IB@sgs6Csvwx7tzFPPIhF%(Zmdtra9@wbdn~XV|wxO zkS5+-H1Wcbp@tyR#A`-+ot0j^_oRurO)qYj?D)SHF0WCFL_;@H$k*tMF8m3#lY(g=2t}wzn2u zM^>fDhey8YH1bl*+uMfTv)tkwYIA`hZ^}O$E4;(-V8d{H#K~9Pzyv>@eh~H;M0qs}3XhCDfs4vDp1uQs1Q+yEIk*h!**d zmV&0;s70W~AgSV|0V0|;Et bOU{=w^|g|NdHS1@vrh-BpqMMH7~1{|2W+3j diff --git a/42sh/obj/move_to_line.o b/42sh/obj/move_to_line.o deleted file mode 100644 index 8aa53d834aadbd98a84c0c32602c1b84cb4004ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5008 zcmb7IZ){uD6~E8+eRk}`&Yvb^4WjPI$}*8S?Gl=Sn>A2R50gq2BW)_i9**tWW{z$7 zPm;1kYvP90jUuHCB)&}R_F?N_lLlf4wlSrnq7l+G__9CWDvgO`%0|}@khO^Hcka6{ zwOx0FtKNI=`E!5goO`bCyXl{<|LapbV~UkwK)0bUa|~W|v@f7*#NVbp=`s{oq>ae~ zlTmM!>vTOIoytoFMAsh+j6QagH)lVlK+p(}Vma8v*c~LWu~S6Mrt9HcKAT9zq@Wtl z#Ho||S#u(JiwU%~J`x=(#B_iPiLM_yHuUH>wya*1ab1*>vsHKyS3v5zftO5&YvO%} zk}GSEILjDgS`#lcHkOS}(Ee4%XX2fdFx$mTq)w!1Nj2X4GQJ~pD9|p+_%=`vhasvN zUpADAMRT{}^{K`pbKFsH&bDYxyzx+2gjgM)i6_HjpN$vFWRg)m6&k1TZppV_#%CVU z*3XR3z)O!kB??>}-_Ippr%bQ3O*|1_CKRs5`(qW}FSm)8KbfhS?|&rTTQa`)wuy%y zv4E_O?^XJ-qnY_W*I@8vV^w{_>2c(l*9)o1L@J`|!-vXj*jl ztMH<6{X`bkH5OFg2LtlZE=jz0_ZE(j;2Midl^|Qc-$Y6vR_D7S@m`QoTmT-mBZyC) z$%^=BU&LMLGJZ&;Y)2o3JxMk|UjU`+^awgNvY}3Rl)Ky#%(mY~w9-Gc;<~pq^NCg} zT-8b=t6Fhpm3ijr!d@H1Fgx=}N5|tso_U18w1t_g+CpJwzx zUh+Qi)(Ow9)5I~;pH`aLAcvO&>m&x`hPH5@R{Xa@5T4)L_7^vtp7~>>TRiYF(i9${ zgq>Y0u3EH`U3%LvRfsGAb#ED8FqJ}~72j60Qtw(jwoDk60;}4>VXUds!XxWi*L&K+ z2zhr3?{^vAr{R4euv%Q+gt=I@5LhoRE2Y5t8U??1`OHPE14^?NE&%14R=m#69R9#_ z`hnW&g#tNggA-xZ3ac##04{DY&+`|dIve=lf+9yIh9$))L^#5dQI?9ZA^JXfhlh_I_D)2zxkNhU9q8%p>Ggg&oWw`9d!QFgPv5?t zy`YI-*|c=s^`->346lKHb~Fgfa{+6uj4ag<;)@l54Yf9S8c->@2jv- zJDJrz=yKt1w0jt>akPOLnArbe@&pPwW{lOddx@Y88$^uei_oxy$b32~M|E(@F-5Uj z&P~sV`Az_V%ghUIx533<5!^%M#FoK8tzF_NN9i4hz#pxCXD+VGh* zqTk#k9ql{me|=@ohi^{z-{?Jc#`S}1?{ljvvBe~A7oblN(KlXkQX6zx1Z ziD+j#LD6Q>Nko;9BHDfuQ9a~B+H(@ohD)pem!=&lQ0Q18nmojWP|?iedBM=!qBqal z>}~Yswkc0P%9N=_rLo@bSb{BucqjUWkBtp9e?)A^-S~{qb#-xEnAk6gj$5eHk)eA(!dFvdFHuarzuzeP~CGHIJCO`KC zc}t#mtni&dzT3}t1$mpFch2#9{oJ?2`qYMRzVHBliW;}5IE7O<8Ft3Hui%GH_es7}@;B%_!v61|0$4N zp?ME|Tk>86L+v!W2YR#7L%NI=ALnwO=H>iXs`y8$czP6<+fP*SOvlqF7R~Ep(O3+R zoXJE!u7?ZRoKR#6`Fu1x9u8#;o(xm?(^vfW5Uqq|Hk!K0V}W=Hkq*x)BH~?D=|#wm O=M>NdSAGE@MD{-jlZ#CN diff --git a/42sh/obj/parse_dgreat.o b/42sh/obj/parse_dgreat.o deleted file mode 100644 index aa3d9954727d5c7b74c1e1ecab202ef8eb06ca26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4616 zcmb7IeQX>@6`#HH?%ny4^ZDD&r(5S!O?*z`w1L`1^t@+%X@7DGu=RLE# zm#-#iB#V!e5lV&Hs{a%eK@e0F2|`d+T7?pnh9U?;Livv%C`v^G0ir6RRn6}=J8Pe> zDG4LLdGmhr=FOYg_h#n&+y7kuFd~E&7N|fqph+E7I|$_-&@F-=Q?|zaj#C_i63DPA zNOc5JOw+Rtdw$!OAMYQ2d`=Epo9P4!?Qz;)CxwU+s1Ya0f?}FEYos)0x}GB;)7`;&*i)ZF+}U1cam47|Tp`YH-Ki^()WWW5t)&6Cby%oyd zzwgqX^lvhgt+w}-DtoO9l;Js6wST^U-jT`MuJ@g&}5r68NSJ|`1%~1zm*B@Y- z^Us5m%HB3*FNuRhg}6lUdB#s?!TO#R?@blkGu&4 zB+@Izc}=9JZdI9h(KmsChojffhN0tE%8x|BFzo37>-D=9`V6j>w_}3-Yk_am8?lu0 z>GDMY=an6KSEQ%anB#N0dodLHZz#R~8}x7LJW%e$MG0exoU7dbv+4d1(o+`(KmUt9 z9u@6-_B`=u`$5Zb^F_OTOJ`SSSNoc50q5KLEnN^gyEk@jSSws7o0`lxuI2d5%#Ar# z#_P7HFl`DKbJ{$Z*<3nR8$%wZ+jx+dcreDJjb$xt9ahCCPcPqdzS5)ZvH5G zP?;X@l#GL9ks#zk(H?6r*=~N!wsP$>SFlDs;pE50J>hy8hqeoOOyT-W85K6K&H`|| zn6sb*FJ#M|Z868uA(@;;R-7W2@iP7p*(z~}Y&ljg@1V!$uHv@H7K*MV4i%joIwdRl zEIXcY#Ar^qymLuj@c`#69b~WP4>YgX+D?~W)P&|%oGwK8tA}wIP2_d45S~wAp(;i+6 z3!%HKk-`?_ZY>i%-ddp`UPm(fhf$QtA{K~sWGFj*ChOn@F?(zUfcC_vp`g`ir^&*h zXD0Vc`Fp4#jbD(`eJ~Aa-`lfNP3W27cPP~t(FbYp5V+RhVg^X*QSzb94AD8UFgV)qXy<8Ee@Ca$7`+A7W^9Uu0DYSZo4J4`Xq}_<02Ux3KSVP^u~koi z>Cwo~!R{r}9KRndX{?L!liVcKNeebwHnz`5QF0-TQ0jstA~O)TQne}iFj&%98QTqh znl7!T{-c4kCe%?AdkoS>j$SLh=|yuGkkJx1!J@`;sUhv(%h3md(f4sSV+{KGC6xJ~p80J3wMF0g%gqfpe^6Zd>>n;He??EdwP=&Q z^wyi*Cz1;eo*h{8?xmNv>Tmr%+qAg+w|^eH{$cHjpIlw_kJpZEe!uJFSL2`g)`2tM z_}Asd+4g6TG1TJNlx3g|pdFwmK@8F3pyxr~2fYTm4Ei(ZJx~k|F9D@M+d)I1anMsB zW&>0N)1w6(g@H|ok*=Wo(ImvEZ3Rc6GlZB5Trdh_iV#Ch4P<-~V#uk1j2S`0yc~)DNZ~Jm<3L)^pv7LUf6&K`l;W!t zU#2)1?HOkkM_bgfQe_c%g(%ecpj#-rvofF1mHK?KRLYN3$-=CR1!0cj+37jC(xhx= jaychEq1s+CFF}L>{$Wzck4i}nN6hf$h96;g%ZmR3_@1-* diff --git a/42sh/obj/parse_dless.o b/42sh/obj/parse_dless.o deleted file mode 100644 index 8828a2d327a3b4c86e16a33a485a1814a3653fb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4540 zcma)AZERE589vwcy|&}TalTX15U+s(64-&zHd{kS80k#PB*q$wwpDkIeUlg*JN3PW zz@RJ2HqFb#iYC@|`_T%mXdh}P?SpCRhZyS=s!l3WrH)?{Qa6ohps@)dG^%FLbMCo` z z{>0GkN4;+0@jR#aer_ywc@3Y}p!WFk#f*e&`F^>~TZnBksA>kW%){eLkBybA1LR*G zpU3xoMRB)$xx#pnLu&a_e1RzER1_Cge3$V2)a$!#e5G_@!m>ZgS6B1AeyHBFJBzGu z%QuzI$PjDe^Z3;35O?NFPfzD9vyh%*cpq7BM8!9#0{YP%<8%3nWBcR_u8r@rif@(T z`}1A$$@r$znOeU6HGH@3lFvCbecSbZSMeQJPravJ1-hha-iNzhY&uC<8((+W9q6t1 z<>(TTYSr*%ic?spW0ngCbA_yF?%ZBIBBl7^3cLtDnUYQJxdOO`&zdyHOL)8P0MlH4 z9!x5}t%~oa$ER#O&Pmmj%G+=GTtPC{uJPJ&JGMttmA|ECuk1=yj$TVu%9m4>(Mzeh(QB!>X8u)1 zFT%Q*n)d}jg(f*Y-m>jPMkGgp*~y86#eLaya`Ps8 zQb<47LF5XKNZXEZ%rU2AS;AI2=U7uBQ!F@E!7=UJVf3If9ey{`C2R-@!p;{96Y+Av z&P^1oY@Bp?Yupi~+{C0KY$shJcRq(HY*#5#QQ+q>54=#!TJS*>vSlx}xR22xm7GRa zoFbcc((Vx1DszZzm8@*8gdSJhN*6>XU$iZ8uvp5XQ>wD7GLz|&7|#lu-&KlJ+|N0S z`>g^ZR+{T)ytIYZq^*v&=>BNT=!!OJ&B#Ar0${VYway>?ROI2vn))3rpGJcDb>UOc zjuw2DHZL>vRl*;ABoe`nG8zRPg6&W)1ug+Cnm-zekWYwk1AKS1&=|n}tm9^mbW}Nr zH?U#d11H1{A?n3?DwJVY$=bUmEFMiBpzYZU2dz;%MdkOMn4XmOPf^2~JSVODKn?3F z?=M;b--*3{r`1$MAFN$vXsy}C46stiX|>Q2dX`ndcm>M%6{_GHsPYhBZ-_UgxUV^U z1bTr`tFKptkD*Q`7|`=s6B7urk<==1DaDU)EoO z3Wf~MWUK*ftVb1m2-SH&`aPj{pgQ&D@O#jlSYI}=E+_sA@O>Dfb7Em|wBeBFYpAZE z(`X6Zfa)~*!wmPwba;RZSb^3VS`T6YBKQk5b($S|J)5E6@1c5#v_;lI#f>b0ApCh)n>c!% zjAjd(djJ{jktd--MvwH6{GZ_HoHzPD&Sp%&U(a%YW=N+Q0Kr*QhX4j24IP8(3_c>C z!5Q{#B@3Sc-Gf7Xi4|C<5MOW`pXK5c2{z-@{lZWRy?laFu!CfAZTCKK`1$8!Ol+C0 z&BvM}78nER40mKwiJ#p8ug zJ1P|fPdP%TAPV9JCv*mt8pxB15Gw_7XA$ByQv?5B#s-m%%sP@(6?LFX?kadOk+s9S zg*Fq@V)en$v+&|f_d;fFkZfVW`yhy+XzZK5&oroOxEO=4Pn?FQrrnA*pw>7CL|eLh z;5w1Xm$SIgC(CvzsjOtKf8fF8h<(UT$`8AZnx>b-X;2Ri>OSK!y#ZF(DC;3;K*nC( zZ%pWQuL2y=V*m#AMz}>`wGHZBBYFfFfHnYzBc0d1s`ta{8PR>Agx){s$lapSJ)2 diff --git a/42sh/obj/parse_great.o b/42sh/obj/parse_great.o deleted file mode 100644 index 3f64649e9de6229ad08e84231a9abee4a26e6b02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4616 zcma)AZEO_B8J@lK?%w&#`TU6k0lTpspn^L-14)h)Q%ny-C6~qowTYJV-P%4l?ws8{ zz6uGEm8vIKC{acEmsY4jN~@+)OQ@oJh|*LLB~p+gMf_@0r5{uUl^}#r6NNs{?5sa7 zq%iV3@4U~v^US-m@668mga2Or!W2Ra3sjIg$heNG3xaYVJT+fk^Wo>$* zZ~Nw;TLe5O6yKkWsji?A3L4Y_U$LB%a4p~av%H0PGBR_tY|rut__D*pj=hikv*Qc+ zeyV8hm9J15DRW3I-!NYw$~hIqbroN0lfRDWx?_A!wlr$HU*_wnS+CRTJW+MS zvpE@JZF~WrdL82KeA)5wqHUG3dl}xBp0`)UmsSD2cGviPzVh&H`GRZX%PPJe#rNqw z^2zwdv$6hW>92^7>w=?4h*-VkXYd`6 zP4MTrb{d+;7t>@AGP7_Bih5-;yYAW^%2fZJnYc2TsUEqOsa7s$szV=VCWo$NCY$+J z9l8YTQs#V!0ilV`=FG&QglK%88F9Yypcp%exlmia6hvty>Nwxq4-C#S-Bpac##})~I7=y<|?L zhJd-L(f#G!`D|+SN_R|1Ki@$VN}kBNp75+;&#`UcDqZmGy&_jGd3MRO+`=LBpt3xE zQL+xUiUeU7%caq-O35vZmh5~N>5BG>yW!xz!a{p6saij!&wAgD(7wZ zAPU)Xr&`?M=#WZIBP&jk&w5#Zh-_6jM7A6|UvSXlYgg%#$Q8@3E%uk4JUXSS_$oJ+ zb;L+sxcuT$yz(B-S>9up5V6vHe#T2%XiZvgyhRVk6UO{_lh%yP3?%_JYa8mr@ke5h z#uhbfY54~7Hmr+~g0{5agSC2=srQI*{IOUJd(CJRbTHeYdWo*RjNhR$ z-$qr0gt{ZVLv@9kqlcky6KV~0i|BJ`@yrRe!6o{87z=2%hq@EdHv?;KsJlbdn=$kp z16H@tY)A7rn&Bt)m!Zsv!I_LjfQ_Z7%(bX40MhS^d;ryeK`2RvB3dOZpOK>VG^}A-%V7!gHq3|V+8XJDN*KM-EzliB;qqSaxJG;#B9b%{N26`dbxs9u!Cgr zZU3`#{p%klnAkE~p_9JLtg(b@$KFPn$$vK=ejeK(t#m};M_R+DFD!K2+4*@y9zyCM zSq!S`%VumzVhy?kLvGzm}{M1{r9JbuYOVg%xfP%_@B29ula2G(I3UW_wzlcescZd z{9M=Z!?(c8Y+ndj0oeq30>TtM0yzQsCFCv0MaUD7E9uo@Uej>yz zrXU_Egt+#Ki^mJ0c2p_|o^pgvLKMUePUs9OHIOG2Ayx|F&LYHZrUw4Mj5U#s%sP@x z6?L3T<|z=3AdR&{+l6)@p(Ps3$P4h|JoiI(-6YlR+rj5R^u-fD41IG>aM#-h-;g*3 zPfhzQJ_ohNIUw5f%>$Q-T(OeJML$(>os_atg;nbwnvJ*z-IV;SyZBYkOUu-41%&b* zk{n|q_&#W3_o@2^j5@q%*YiF6E05nU+6QdMZ~D2808zq?njWi<^y&4+fZmkW&9oje zw(4_WMU9Fcfd*vk)WgQ8UjGKb0X+dAtvA9g4y!G#&mYiZY4~o{n*q#4_e;{h^9{X+ zzV+J6>aNuCawRBNv18{{c){vK#;a diff --git a/42sh/obj/parse_greatand.o b/42sh/obj/parse_greatand.o deleted file mode 100644 index ea85f5b23293978f9af85e523137d490dabea37f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4508 zcmb7Idu$v>8J|6S_wIc5`TU6OJe(eJ^O9npouo}@ozxC?xwt`;61RaAZO?aW`;zmX z*4%&W@-F{a=yxMc!GUU z0v(uwR7)d@X?oVA=gYpnw}0Q>>v|x)tpwt6*u4oK2g<{N54maPtf7e!)Abx_HqE~K zdhfY&-X*~K9w&uz$ng1sIlQZj`dU9cfm*)cZqm7bP}>WzIRl91oJ%-pWoL&DBIs` zaSZeH%nAE&-p-lkp1#15JQ4M^q|d}Nz++1O4Ed+_ybRA8HHRJSuHV5l7vBe+3a>}u z%_uyj3QT`AkjaDdR><2Dv3$Pc3U6x6g! zoZE0WXkpR;`>wSDgc@=|HM8f_FYJfi4SK>Y|4J!dcgBlpMb@0uy~ z|Guv@lb$-?^R?gf@@yyf?78;~$wQXo=8JZ6dq-zSXL3WffD5U8dnc5Rt(!Z#HVW6t zrp7alYdJnMM;t5TW$au>R-^`Dc2gsViwAO<)Yi@JsF1GnJ|b^>BIA0(Glx9KvV^O6 z-m}I;wrG2n?U`==C|XdN9uq0!Aj72*dZB2KBqwY)KVn#Gi~%p_}5@-X;~IafhCMh(a(ZkrKy7m4kR1PXQZedhQ`G-I-!a1 z9Mn7L+8FsfSi)Ev{UZ1&hP0mkUkbDhp|;BCeb6?u_eL4b4v6=|WHiOHU=iac=^^ny z!`|FdiM58K86)u5xekVANT*2{!c(ZY4&gf^C&606JLMXjVOtMTxCV3&_i_`z1??2# z3-97u&aX(g9*O$p-ZWad;gWEIWbt+X+x}Mik-svrWwwHM_%4h3(p27e4rL+!r}^-M z#@oJ;jwlr%O&H)ho{IdSArC>7AY!xdwZ+dF$HtdW;6w}W@qFv)!LOg*Uw3)MkKVl6 zb@jPo>(g(Xzv)+c>a`VH?AF;=x1LB;A9`_M!+XDb{&xMf*Rzc)OYi>k*p-i}PWADaa(vuHJ_3)BbV)^cl(gT4#;3Fs{7BIxg+ zYoI6sUIj{lc7X;#qo4;tJPmLWJRVKpC`@dcnCZ&I6s3t-+YFAvyr+pNzzL%;r)XlT zsgBGqnwWB`BRkN z>nq?kU_2M9#tOcU$S{%iml+}WBjC6^cBoX`fyKcFi*^$nE75)zI4+p>ZQxiWBc=E{ z#aAm1Cfm;_&Ube$Is}E6(*jlCVqc{5a$VSdTba(bh3$OrFVy?WbYTwT?dUn#QAdiI tT+YdkjR)oeURddHMzY=1HQ!YO9*dMb8*Uu{{ko diff --git a/42sh/obj/parse_less.o b/42sh/obj/parse_less.o deleted file mode 100644 index 7a14b1466f52f82509b169dbefdf17d1e3d0164f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4604 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 af=B`UizJsFm6jZgeBrGPKf7>`Mfop9A+8<( diff --git a/42sh/obj/parse_lessand.o b/42sh/obj/parse_lessand.o deleted file mode 100644 index 2d892b98bff1714d2cdd12bd19cfae54870b48b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4508 zcmb7Idu$v>8J|6S_wIatoFB2Bhf@6ifAL#mKM}VL<%6pUlxxxsI3SnM5dK$e!tmS z*LO{+8Tp&cP4^@a%#Fv)%b@3(> zNf}~gd_JDqjuqe~3Wcm?<`R<(?<4d5y^612g=2kUd>&qY?5Nz}%J>>pe%z?=zP~~| z8DAlhti;<@f%mHw;<+aa*PZXZ3h!HL)&IUiJRCX+SsCA3DnI=Bo~U2iS6`^u-(-Fg z^K{K(?nEY+GR*@+z9V@w>}j1I6Hfq-DftuRpW5>ZJS%OE+t^*NgK3uE2fYe!ufm&C zcuEzRe%hDG{qvU1|jB8Db zWIpFwIoEVDr_h4RbeTp88~H7b(6jm6L}xMQWF~S}s*`Y8YupufW+Lqh$4%J8&So%# z<1qy)a{St5VbA4L7JLwel$<4r#}W;a$zf#0AyNr9;dPNxkzJ%@Td9nV7LPlM=R`7_ zcPw!tZ>P{GSznne`lzwCzENvJ z3Iuv!Y|{4DRMp=Sxizx6c7OAyYjLu55m2W6&G^9VEK~IxMOFQtNCaoYXb^M=wt{&O zI6loZ9UkKr7&w?+~)Dq|t;Rhk{jtH!ROZXR1I;gb< zx}xDZUuz3=wTqfy1TBxkR=qyh3h}!TtG=K!{$R-9NXBNEjcurcH>0`$lfF8139Maj z3jYb51M6i2>vG^f!+sQ9bPg;G_BLGNJb>y78ja@AdtmLxj&L~8=}|B}6#OMv7cHwI-C$8;TbS@yY3dZ*dUT7k?2z7w2 zEumqssIf782ly;Q+D!k?`P!C1S9N$4+IIHdDx(>IcmyV+HIe`e88=7|iT^3~p7eWf z;AqAK{Pi?DXohr}f+0AK>I{s*+d>b5wFmdeHF%zFdx^p|pnGtToA^y=vxqOak88QK zBEcryqjwF)(JDU*THW#2`V<@lfE!_OJ-`W8B( z@FT4W16;>Lk)JcScHDcQ2N^!7hbzxzSW{m;#B`o~MB zcfH?x_8XBSPaHe71g4(!O+9-;yCL-Kf6Y##YO*f zAO`EBUkiMu&O3BM@E!?>AHh@8-mkAit#J&H_Tj?=?}%i!n8L$6R&?x`(qfq%yKgGD zI47N${GvO!|M_O|Um|#{08&0edeTe<&kHinpL%RSsTO=Qcpl!H$CIF~>ovxR-q^1P`}KfvyIu#a#whAx@Myno^y^Kqwm}Px=!UCrgtir0$A}*I zs=jsvO?&ipFw~9c8$#dHtE409&4(!mjQ#p*v^K!29lUKsUyp(M^?Ku8IaW)*z6Ne1 z##4b>ETFiA&@hwk7a1b>SHN+744eYTDhyz8u*IU=1jkZz-wuu|ru$~E-H0i^N%8fH zgR#HyoZ<(;8({DYucu|Iz|~%+Z>!L6snFSXd4In5m+M0nx-iG_dUWk%+LmG>m9mqQ p1>c;-8;c$ZH=mILwif@j$Y#c+CifS4z_%EF3E_2WmZgjk{{?8=q09gP diff --git a/42sh/obj/parse_separator.o b/42sh/obj/parse_separator.o deleted file mode 100644 index 0635d658b93f4526996606fe5d8633856389c899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4300 zcma)9ZEPIH8J<0Rckg`m`FwV4Cn3(YHjuRB&LP3I$|bdFLN6v%lwwFrs_pr1?YnTk zJ9hW-L6Zo{ZIx3{3*u8kNc<@IffSk_v{hB1rZoLTDprdMzp6<6P%1!th!(4;q|Y-u zYx|B+Jn}p5ywAMz%*^fk&WvCF&zm2bLTGIQ6{HxkYi8+ z8=QjDO%TPhJo~8Uw|)DLy$9}Cv4hqb)gT|Iy$AwH-7fAAe5fs}V9(U&EZ1`+Y*~Bm zn!NqyWtV{G32q8y%<%Q9I<%_2%vY}FCEUulyUAOKKX7x+rO6{$Uv6f`u@7^-&Fc&J z9#b4^9Yti7!6v>`igw> zxx8Fr>-qvd^*PqSm#fvvwpGc^b9o=xZ$qswqn5M&6W8bSRc8*#58S%GUn#y3#W%f1 zKDoYHF5k-c&lbL8Yvl8e)vmbTE)~DuQ@{FCYve=HNy^ssJ*na&*zad!%ilFhp>(sleO7$1`OM;!l0^7CyUZ%{utH{s7BrJ`XM`z6r%w zQ+&!4*nTl+QwRB0E>$FB>wc3F-#euib58Ad^kde?-vwPlMEwJfiywrH1LUVY1cS}~?W@5xwx_d=zh@WT7|k|LEM*(@x3i7uOWD(u1pgY-7hx?eTd%&w9cs%@sZ2 zdO3&OLR3|eZ2_PolT}bBHCiRqftb+(Jkm;_Cxs; zLWFy@wpcVuJ|QAq@ZHx-V;s5C!5cq1u*yN4L-P2^AC}qIDXwDxqU`gPtb-eS`Ira* z?aqU6(7LrpsMTmX)!sg2a?ekp*>+Gr3uT54&Sb0yYz(0?x1w4Eq^}RZ3N@%FB7cGA#Cp@j zx}5kQzz<@G&WVM=(Z(!!?nU)4bQ(8@IsKrqJE8;n0Uai|fz4?BnARjWz=8Zljho10 z{t#vdI}>^jlpZ#IMm0i6GkybQ{t?v-4IL=!uK=BFu@9?Ibe1H z{Sy7wMZW?SH?ND_4Lw2U6o-Bv)^oJdv>t)Qm71flgn0`(_zlgza0x1IULE0Pxq9G|)T=$n1}P2P$lCmL8J-Qyl$3F#6M+&0q%(%dbvm*$4zV zBa3hQxA9`}LY$#2;}bgNyEKg@)H?Pu%4+^k^5GT4qq~oeD7;uTVLfT-2*`m3-5u_rZdy`p1Hf{(uQaL_TKjQ&Q>=)`sWLqf2yZn+OVUtY3a8+ zPsTeBKR>nQjo&?YqyEyL@_ic{ufKEr%?~?H{^;U0Z@qB*h7U&XKNbD@)AyWt_}#^g z`Q)R=m%tmvkHS#i4%q{_3vvi@0`fTIS;z~JMaW+v|As`c;Hw~M$W4%GND=Za2(tk$ zlCvKgg>grSfv6w`5+TOc0DXjDSQ28Sa>FS6@`M-=Y9OP45CcOEWZn>BA}KE>0~}=j z0AiG@9%dJv8G~w;9yAFti$UOWWU!2cJqCZds1hY@~J zhc_vjN)W=@eYXqkXk3eTn&Ai499PlvebQXM931{)G8X@C=!?PgS9}J(A@M96HSL2~ z7ix`jK(v*I2Hp($a=n0ubh_?3X=SBLJI2SF5%-vzmKV5-|9bgGS$TKhaRO5L`lcy;B%_C>;1vFvJ_vkZN*@A}f#X8pxB-Kw zjI*Im{5C>7%t?jV#-PF`w#`Cg&ATjUbniN#`akE}Mq24>lpazVivGq=ltx=#f5cf5 z5Mn`5;{sFO_^bQJ(6ibWR?F`%tXVvd3I!)WUz2V8%=n+bT$+`Z^u{;g%MAZV;9V%h F{{T>rdI$gj diff --git a/42sh/obj/parse_subshell.o b/42sh/obj/parse_subshell.o deleted file mode 100644 index 90ea1422b51e395c5555ae9cac4df8f303be6893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4644 zcmb7IeQX>@6`wtO_wIcDIDf@X(0s=*%MSv73w1F0aNCYb44TEnZqJ+zTp-=6C>{Yz_7W(iP)# zv(BXLeHiccnjCs55#UwTSHzpi=46Pq@r8J5JH*xTva_>A+j6oq4DUnpeM7}Jr~-QV zs__MQrSWOG!L{+NR{613;a$2$JQ?3?Hdl*xXANFYW7Wz9&6@QK;`1M#z2bZ)72emC z*In0$heIqOYvcQu%HMFluQgvSzFcVr^YpEMC}zGg#Pz^1h;V)ckqPtg$)s8NrE+NsdOMZT z+va>3Mw|Ip89QrMevJUnRz`j!%{QDh51$(P;>&$GG0bzH+Ogxlds6#s*DI8q)IhpF z-Jj~s6>(Yh4fI1uZ@M|XVZHF&TxK@wdbS%d%PWt2Q+BbK&WX$z)Lv$Ce`z|O&1|~a zn-bD=(MA*;Ut~RB_|~}Z+P3f%FZlM1$dw%5c6`e#96%2$%V&~hU1YyhLN1n^$yC|# z3X_hVPZ6$YPx!(uOiua2^Rq6oivr{Do-Ov5+&nrZD+eq$m375LUU>Y7lKj#`w!={+ z_d?DU&|0;1&Fy+!bJAGR+^V%9zawcV+q9vEy5>(OZcW_SxV`;$+)8!2h$z+eb|mDc zC8EAo)HUChNZ{NUErJHoWncjWj#j%?*PKWYPl$LEY`3>l7{DoP;E_#qRT+rm$oSw| ziOF-_C~ji9p_l=ab@;XjETIY&+I6kTa@Y} zNA{ej)S5*fq+O4IYi%}1(5G3|8%M#6=TJqDqv9(i(i1xXmWs5+9|ylcRY#;p#J`Nz zJCr(M5FE{?(f>kbxb>@|oU;sdxBh)-qA`Ob8OxzIR-uZn zNA+8%^yRVFz`FIe_@BTzu)btqT@L&v^t<7rb6{c6+n6BEUQ~?FXpj8|tlQWaH=yF% z%D9CSNTKySrOlXth<+Q*1jR0$iK54%KLT4vO=ltlmNagPe+vAsRHcdFqO}LhXJjbt zhqRMYKO_;o0P%L3cEs)iOB(Cqp8@AG7&p@XbD`85>8X$34{0sE*UM-!XmVP{vP2Fn zW~`PL5`PW7OQH8CIGXVQ?Dc6nXofVJh9X)<^(82y+hP^4?&xiD4W4J;5K*`WG>;B* z6OTY*e9=3&mWwMAZ9{5)e%M5>{6vt4U-Cc~eCOA^_=_`4WtpGgX%I`bFXdX_ODG@5 zh95WH&>aLr;U`-Y2Dpw-2|sSgLr^`4*erZ`@zch!@f8#}!@~b+Vdb&0y~iGGJ$K!6 zZ@#aTi z$6j2x;U6as-tvC`p|2#qaP*;LPrh?@MK1O9!Hd9U7BQ7KfVP6TwcMIVLC=D|2RZ>d z3wi_e9w?50uLp78?*NT~ra+H?cp6|LF_(d(FtMp(rYjXwlqzOz7dQ&@o~pg5IAIj# z6je+$<;eV^ibE?$<_uL#B4x!%L6YYODyER?VP?^o$)-l(0iud$ijNW$7eo~=7v;#) zK@|^_Qt`x7#bd0nc>7SrYeK1bo~XKT*@{;RRlI2w7Oxkoc;l!bc*{}6Bv&dPaH@C{ zC`a~E#YI*sZXZ=VX3FvZWo#7L$gG1$bx|^bmXt7&wFCDGZ7!)L8>6vrz=|VX4?6lD z!B9f4;pXHMkvp5z^IC3dM0^*$n)ZHk6KaiPfV9hx4ZIw3#d01G^-S4wGfK)7HV$lF zs_`E7GV&YliJHd;9w@++?~e2ovmr1;8%I#RFCf$lJ`)0q;Gq+=i}sxD2F)PhgXz?@ zXnJEq>^pkG7}eVb_1GXRxJw5VVW{ diff --git a/42sh/obj/parse_word.o b/42sh/obj/parse_word.o deleted file mode 100644 index 22a0503cff60c484e7ce242fd8b3aec0c2722f98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4296 zcma)9ZERat89vwcz1NQO;W%lMu3v_Q0nzds?w~l?2ICbpo z-s^tRj-g7^taf8l+4#W^il$Z5B&KR?KL(m8q8gwHQHctH#E+tFsDe(cQw0$dEzfiA zxvuSXG)I2#`*Gg$oUivi=lJ*k`S7|agccU~fFhuI9iJ2kWhrQZ#?L4lTl|XW*ajug zfhkBGG@@9RXCLx>+1GdP+`Idx9!Nh_0`b`Gc>qZ0h0hnvuf3!UL+opPC_=1?2iiMIyY@Tl-=6m<606eYc+x;2i^44umy zKR@`bUyU*$Q{&?ge=T*ucHBa_l-fElI53!6mn-5F*|2pG%D|?(2Zq)Q*U6>lvyN*! zKC=#%o%}#fq$gl<)6)mbv-xa#)7|cjkZ!VG6iS}Rx}NZ?Nzbuu;VNG6>^YGumpr@V zS#IG7YVff=e%ZYJx9sl0G`tC76&e!Ik8C3geP70^1hHSJw`xIJMkYwy&O2)NJyj7e>zCEWg{ z_`UJ9t-HGJZ$%pFBBV^ax^Nq8YEbpnBHVsoJdQv%Is_fe9xxw5h-jA+yL9CVgr2cVK;bGIkN19qSDp>$2m&!2TGT=CLqioLkv^x)my;ysQFW{6|^jguLVmO zcg2Rl|3=dQ5oRIn!}1wvYGr7@nc3Klh1Ne_wtIkuh-T7RCs8IQnUpJW5gkWRBOm=$~u!)QJb z{VrIad7oT^S6DYf6s`f?%~5V*6&lB9Zs%IoR>Vx=jQqxE2DS3cCP&W5;@kX(2Fni69uPz280ZI}S3z%sE`Z(x{Rddrc9@l7f%|6 z#p8uuJaN<@CY6anu1rjDdhsMs4NodBo^Hy-%%T_5Of~#}5o;nE8Fgq;SJVkkoQ4v_ zv3BGkp&d$SiB>cE9K6`ka!}&m#JX`KxB;lFKsxo97<9bfcg-Cuxkho-l-L`U_wF{USn_2@99uj(z(I)`<0SPwyK zgSN`3=wARI9MiXq>D^;`Xs@0elg?diI;Jm$^O)XYL?6-nVCfyxSHd!E{3v8#LB#ja zAx6F7FgVVFZ7Qm^?T3yTY#0Z};5Tdm$3%^^;&&>(QgJX@|GMHs;Jo*OLa|O2d^6VT z%bN6UP5PQ9U073iY31`yZf;)6SYG_CFBYbxCf68y!M6|oD&Re6-P|+j!FLkc16KSG DZcuCG diff --git a/42sh/obj/print_and_del.o b/42sh/obj/print_and_del.o deleted file mode 100644 index 69c97fe1643b1db60f26465c3e96695764edf553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4448 zcmb_gU2Gdw7QQp~oj5UUAl37Vp~*YsNlb zC0=HFx?&xr_3Mn!#XBtHTPvUoEYQ-tV^&&8ABv6b;M<#N$7N|_l7?}mJTE8}yI=!+}H=itpw z9}yeujc-Wahs`q0YpcW)@s%^C7w-WN-lpD_*3XI0K3-lnUsK|pmoN{m5)YSHKzidF z(HtN*U#)MY_{`ZEA*YZ&|XwtGA#@eWC00(f*JFXQ~lqv<&>R^B*V!R|T^ z-gIrXC$6v8PdV zq})I<2x;lhfxZPwtbq=Z1v{U z6}@?16T;?HOK*l-*QE`0`?=E}IR;_9S!?OO^}1PG4E@2sqke^*p1c%#{&oS80tApI zVWH^eBrMhj>Q{RvLa$wzI95bhEHwFb9 zYlxL3EeQs`q3KOZVVn#d@yokZ?4LA|x)dN2og!&2f&>N(n7%dDYJAlAn`?+Er!MOa z6@f+$o)2w0iG0}d@vaadO|RE4Afv=G@$Lt#JExP&PZ6(~WqYV%M)vJHFc~>&RjP&A zQe-@qh$SLh%p%HsbUXnjHo7CW{pYM&G2?VsqE@zG<7YWu#*edYWN@>yRxxI>_*4}b z@!YZ5BiT%RbVoJM4%>#XqCvG*E>~y(Yeql9Wz@8KWI64>6Kzo0%`TySEp2vuiyh4ggj?MXzfDg3>acIhc z0)2GZ-7uhOM&PZ=JROJA@f|SuVl+g~9(GHX`fx-uY!Z+Zf&BI$$ zv{NA5&q>=ghR?6S`-Z#rVE8JA>NDEgAYB0zqhIdPAr)ngN*%UFG?FPyW2gs9Bq08i z57%3BpZ>zyIXw0q{btZBGK+o)o%AtuYGNTkX(_3RltBM1xbNpAA8O0Z>BhAh8>({D z*Af^SsWw3G8JYgdF_`Kp6=GdmSKrLq&SRFrGMHTWu&6T0Fpc`RP5R^o+{S*&HPcwy)G zSf`|Vyc##;d(2xMf#;}Vc{&@iyn&%Z!n*0Wh~^6^+}{(}&WCFJHZ9E~Nj{R~ccpoE zlKYl5a`#Xp(PA^Brlfe#XPv$9w?h zwxpM(+sq+9V%9XffW6N&QeGDFsOE6W)z^ ze_%chRuttB!jg;g^aUKwg6AQXfG%(dGs1&*qdkz6!j~52^6YzUx50-zYmI+ zUepF9zo$XT?@>_l8wVx7ouK5m4V3)Wfs!8;Df0UbD9(0t8)!G^KS5!l{YBEIq;*N} zku)yph@``kPDmP&6hz>?DCw_3Lzuw5r*!X#ciWug7o;E$+NKu8x1E2&qkqoBzwY55 z_V8g3PuT7F%)pzWV$IARwT!|{xrQf#5M+w@%ezhDJTyp`vutD9%H{BgI99OphFPmr xg%g}@t1@F|$_`J4CH%c3{wF}5u&h{k)X?*Uc<0SRBe;t93XSOjBV{F%{U5`O+s*(0 diff --git a/42sh/obj/process_cmp_pid.o b/42sh/obj/process_cmp_pid.o deleted file mode 100644 index a7d27a7644b45b631b801ad7b1d7ac863db39997..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3152 zcma)8U2GIp6uvXNGo9|V+bzXf!jDU~{Drbx3SuKfsRG$zH3a!FF*un{ciS!7-DPLC z6ru(aV;~rV5)+;bF_8y-fryET4FbSmxIZ z5JGLyn|S4_`b zTX4M}O1xL(20p$>JRCY7GMZmZo`-O~7ZUdplUgJ{r#gdmdRC)yyi}R6tg&6KGuBJI zv~+$3Jf^&&Be++fM(_$#R_csqli#g7tCngVS-73!4XeNZk{e8lK_ z&q%yq<)l6Ukoq5xANM8205jMaCf^4hknuYpm-1)uK5#3sL}8z|`WK@g%%A-&fA+Oo z`Lm6i`E!k1=l1kL+}x-ixjw=Jkscd6^n7}@Po>7cgi@$n}!ErWVa4w zH*XMb-N{W?$2U3EidV0ebG3TaDY&lX%+#z}X(H>0+(8#0xyj?z=?Ocxb;z9(kswj3 zc%mjeOZtV|)a+T|Oxbl&v%M)%m@7C%gas1l0&ICKiCssp@Pobyye&h}iW8*@hHAqT zu4j7{zzw}u zI6j~sgZFo+vB%;!_@kk50YcYCKxsWaxgW5t#Fx6gQwb{Ez<>Gxi}gxF8OUx9xD{|V*?cplb(hr!Q*xtkDzo7@Wt zVu9#l#iZ-BbW!49khs%~;^xbjfkmQ=yDulQE$L#lWE3k!7n?;!v5s`Hywb(~rE3-} zU2G(}*d7w=|0>Xi-Q`YVMnLjd5n>*NB~ec97s^~pNp-Xt=jAt6AoAkvpdjI~6eG#h zo9eTjK?4c#3u099DMm%PlkCK(@Ec$ya<}4|bjpnhTwS?_ThB==SK2bXZNA4n5eb1K zXUPXYa`)nb#;16rW~bOLepH|aGoYi}nmW2ExMtz^U%K|@#S`mNv_#@_tyABtE#0AY o@6~V%s92DAB3O`~lX9(;tE7Zr7W$V`as#?JgcQC9;j;q&f3I|@u>b%7 diff --git a/42sh/obj/process_format.o b/42sh/obj/process_format.o deleted file mode 100644 index 208d854eb3bf2908fbf013045f5c4a6d3da1c4bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5316 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 IqyWeM2hJ3BbN~PV diff --git a/42sh/obj/process_free.o b/42sh/obj/process_free.o deleted file mode 100644 index 7df5f946e4a5410c8630de1bbb990444a1eb7e7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3528 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 diff --git a/42sh/obj/process_redirect.o b/42sh/obj/process_redirect.o deleted file mode 100644 index 233c6b13bf2f760512943f9f29969dac8f720e5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3340 zcma)8U2GIp6uvXNGo5zZ-GwTm7M*0vU!=QjA<`&O3e;@1B#Qjh_%m*2x7~$hce6WN zih)Q{AT%WgH9q)Yf)74vBu1W;7!AZIiQ&P-MBjKI;Qlg& zob%mt&%JYJFWtWWPm>TzNMHbm!4(aI2?jk3o~3gE`c3y9oMH~hw}C0hF*-q(<>V$D zPxtJd1H(J-*uGYi3h_8?vDK3>j`%T@mX*zo)W@uvQ+3^zwQW!Tj_2k=e4H8S3CTL= z0)$W-^f|m@*>>GQyaJokKz}Y0FEcVy&5g6(`StmDCne@$@d~BUGE;(hw`6_$q&&vv zgHHPWTVTD_Old5KW(D!yoB8UH}$!lhM>hNrO z`ta=J+Z`fy)I>(lOnQ1?c6y@YD$~=`+h?Z_c1#WY?wV5rH~4gN!c<~M6L|g&3-A)m zh6HnJ;F?Uh+VgFC@`CyL`F_4==FrgY?dEu{S}T-GW?!;9*=??|i?|)S`nq8xH}ocZ z){0uyPUR+YcB)b>+qqiJs^+qVYR-0&wn*)&Aw4yApu9JmNp0w@`JP`c}7^FpW#T)uSdljbC65Gp|=otPvXFHGY=EQy6qbQ}Il1 z!|);OklF06q9p-GOP4B@tpi)Vg;Hi|Ws7_!;^!Edm+Zq&4fW zXsw>A>z`{eKj6$=0#yB?s$=~^WW5G-?SjN4UF)UIp3>gv*?LOKRZ>1CB?Q-|pOX^0 fh;fj_L)c)7M*=n$8u)4n%Py8{Ibmh%m0s~5+3whF diff --git a/42sh/obj/process_reset.o b/42sh/obj/process_reset.o deleted file mode 100644 index 4bedb1662adae3300727412b39e18ed2800c04d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5116 zcmb7HeT-CB6~FJzym>P_v$M0id~98|44q|x0z1p{wMD65!E6JK4J{vklssnNyxn;) zJ2TFEvjvLD#@5nWRH`BRNB^M4M6r!u0rU?sRaC5vR$^n+8q(NmtCWbXDOHl+``ObbnkOTex&AaZO)I*8$vC$u=eWX2z3(7e0uvu2o8ETAJo?n-cWo_EI zaofkk$1-jzC-eY1q2ik`5JEi(kkDVbYD-|Izn@IA7Ghg`il;!FW)b=;3=P$tF|L1l ze4)Qrl$)FN=T?TR95U12S9ySFgX*mM6M=pN`=_8A##b*?MjY>Ye}CuUO=$l?OaCzD4Rh zyOqE1-=seoU#(!z^tWY(zn5>)pMRis!}V5`zh9_xzIK!TkaW`J%=p%(f`x|bJ=dxh zKFMaBuU#F*I(@5AdC;vCEosV`Q3_@9FyG2_1;h$!9pWVoG$Zp-b z3!RSDRZM4*>L-4?bDiwU1{?>QUun4Y|v;}nJL15W`kxt37!Ce~LN6Sab0k{dj% zc6gY(C5DS`1zi=#qqZ5l%0rM$?yjviOKx|`DVHs|*LI^`$1YiL;z?AkS!>l6rrV83 zIuq+mw`y(31icqvo3^1Tl3thmaB@-VqsYd{DxoXjZX{E*MUWYDzydQNV(nTaoisQG zw~1yEN#EU0WdJ!D?}mD3GKnV%X_gGknt0<#P9XT~rzQp(9N0WD1D>TdjkC5az^rTG zDnqZy-f4 zQD|5BY>l4lFuw_@ncKfs&t=UQp{=Jjpy&F`*PvO{?$C1sri(DIqFn3iBDvpdBFfqm zy@W3QDReO{ei+P%8ZnGG1~D=}{uGh8(E;S!5TgT$(_oqCD)S7ubbug)c@`SOjUtG+ zFa}}&64Xdr;$@=xZRVeqh29N&VeEy)-)PaExD0mOSZ!Vbr$+-mgsH=T9t|ucZgPRo zfD9}oV=ll#)?*>YIz3kt#%Vlg1w}rTmer##3^ktmU8ts^W>ObIwFPQN>aS3f*tApzYBpuU%?hfmPzO>S zq1py@gJ@>}~F7QYN0*D~*snQ{d8E0xfUL0Bz;9O+7| z1nV=FnCrn`<#{gUj%U+XAadwv|q_w$}l){WI)D^i7EE%z@}Tlw?dXZa56 z#jV3#E2E{%Z|zx~UwZ2|op$!vp|ktCf9W4_yBhk!%=V%7&Qq`S{G;b{EuHUtw$v5- z)yMof$KUwwxl_fixvfsm&XbQ^dF&hUKRo|~S(~2!Pz5n^^Jh~EW5 zB@n({Y%FesSnm|Xj|d@tRg`;HZbB?^3Sx02#0sh)7AiulFUr@rf>^1P6~7C#VuGl+ zm`#M3UdoEKj}VKYf><;OF-sK0R3gOeQZusD5#l3d#m@yH=8UppDiY$SOIfk{5@JzS z5bF#fmL4_mC8&hfqf=HaN)np%#iCA#wM$vC-V$OSD_^XIgjju*6$cPv6;%*FWrX;3 zQv>;tBgD_JvSMi`#2Tx1l_ixBORcgxtp@Vjt9<>hTsM)&%t?%zZ0b5f&(m610JMYK zgtkAUWm0DRD6AL_6ME0vbam}oc%2a&)0s#0yPAV?g#razT_n+K+SPP3dW~~X5C2N= z4`G)ZydLKpUOlh0yt{H>&2+>&FvA2u-coXJM0Yl9g^-HI!(qP->Nvos9EVIOvd zB7aE&fWH`lgj+3sKPrB`S`L6<0?63#2^nu@@HYV*HL&dY$~gE92vBv~hXV65rl{&yLZP8=cAAEa*4O+f7;IX{oJ&Lo4!c1;4InSLOBwE<1#v(pN WWyn+i|AhRX!{1D0r0n?Biuf<5YWKtd diff --git a/42sh/obj/process_setexec.o b/42sh/obj/process_setexec.o deleted file mode 100644 index 00a361d8193d64283f6ad0c200f778fe3e63a0c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4128 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 B?(YBq diff --git a/42sh/obj/prompt.o b/42sh/obj/prompt.o deleted file mode 100644 index 8d0bcf53963d78750e66d46f9f47272f8441f324..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4764 zcmb7IZERE589w*g=f+NgZ3tzoRK%?brCM!=gwlwQ5k%bG09i61e01tAjz1D3f62av zq-(0EW>wrQB53M{HfimoYRc3h(P}^FHlfh6@v$HD$G)WfSTzl;Oq~F=9af8)J@38e z8t0M?c9L_S^SC4C}$^Rw!8_kLjgpDPG zlTr4GcABOqMs*LW@*6d z(xkgiFpG=wMTdq8iK8@r3;nbBek5oflrNP{=BSCCZ-+7XjJ+k|4TyQJVm?IZi~3iH zW``5Sd-*=Gt)bsH2}ke3qI{WX%y7}}pT#HKWB2Ea=JV--F932XZ|l{Fac@y-gqQLz9gJ!b0x_$O2g z{G)L(&cY^hBT?l_r#VNCRYc>P@Eq97Tss&$N)5#2jou&i8Br%Q8cW&EsKxvf@yYg$i@ zpSAj)h2>P~($wIEslGYOy~~xWmB=p)lk)f_S0!@B``tFML0ImcUWF2Zei1Ftv9-0J zDv_UGUtw0osEXHD&DLD4MBYF&hY?LOWQ)gtF>(h4)+nh{3^CnQr=MyC-&rSWD(|YX zzB}sF_)T?c%T?3CD)Szvbz+R1gi*hKWqy8MjYVMBM|S58yUM$j!Rq?C$@As$Dx2)P z;XO__Ak3;JztmOR;9b?zcKC0!pc?|URw-@x` zJP(qpDqT{`bCPOJO3j5utKrc57zzJ#@2&b~N5|&QjTvSZIy21QwnGR{TiT8cYYTP6 zH`PA=nt9s}KN~pEvz2Y9)7Zaz_x?Wr(L|w`%4Pjsq4rR_e_bq%D^7#=?U|G!73R%N>bF!y7t^BP^+FW;KIo{x zN`*oK2TeRxV5zLm3JIOzCzVNPI&Jr80q2k=?bQdgI}$fh!JE`S%Q&VsbGll z=$L^yLp_#=8tP+0Jti6fcF6&!`yET#EeBlg^On>n2b$fNE$QoWz~_G7lKSPq zayRiAoC9)TrTYU*`i2~M#7zf*QMX49_}#Z4k#Ekua$ueNbCg~~1kQbOpq(|ofuiD| zkJLzN92I-Ft5l#%gR*tElTKm^!+|i5qH(eK=WjK9d#~s9{%zWs9_Z*z9!EAN4H!bE zWK0e4pdm44j5*3QT$HRn4F@1E*606Yqkx0*a%4&r2l?(`9DfVYHEH@!>y7H@%%#K6 zzv`nCsSovA?GuwtU;AwJ>Yt7sVln@#FXT~IM*cqX&yatOd=;7InS7?rDeWC*~!<;aC{w#>rvP1T>cZ64sqt%#+{A*+;y5itmqu{%TdkU)a^l-p5*cg z?t9ko!>L1G;!WW2%ikpB@Tm&v60S>A#+U(&g}6BK2>3R0`i8+UT|OI!}gE{yVa zgorr}J_f}037)~&kUR;*6Fis)qUxa`AVw$H1;p3{p9JEL2>M0+QXz98{{zEEc7Fkq z-S2?Ja{);G{0fNoZ15*S|3jb)@-z^eJ2(ua{tf`iz8^^KRUq+h0TOS!&_4kryGMom zFc7W;9};?>(4$XE!BhC4UYQXX6)289@1+EpiT41+8zd(S&_XB}Rpa&gH04cR1 zlWgrv^1}<+N}Exr6WM;7O#8LIewR%aenM-eBB0)$%JuTMY_fI0nXU2FGKowqKgP7X z4=STr(&=9$RIGnckqmt{mdP`EaYeNv9%|`?j;E2RODCw9OqcLT!xIgUtE5p?d!uRi NUr97g`_J5w>_2+b2loH~ diff --git a/42sh/obj/put_job_in_background.o b/42sh/obj/put_job_in_background.o deleted file mode 100644 index ba69bfe9d14e9d478d76b165625b70aa60e4ff9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4044 zcmb7GTWlLe6rEjr*XyifyGdFKrL7?a0yJ?*fkr&q21;=uJXBiB2i4-N9cPQ<4ZG{o zB8oueRRI#ukMhAoLINQk5(0@IP$iJs@(@V;fIx^JN)a!CDp4MyoU=P?ViTZ@bmz{! zbMM(Zv-i%-2fu#zM@k4KA<%)6puHNp0toGRP>J$Cw9C`c#23;gmVqfqdFf|aL3Mi| z1u)Cnc*%7e|B~a;)p9^Q#YwhN-4eMG~mK?pzO+s7Ufd^F^WQpdjnyFiAs|3Bl4@Z5>5;ScVN zZ<(xzWfCuGw$>RBI@UWYzL~P!i5J&kj5lzMc)^aDIoDg4@r}qR#*YyXMI1tQ#`lEG z-#EV8y5nWGc*lBecN*&qtY+h8r%|!2@wF{W4E9UBf>b^SJe~s;m88w&@Y2AvXOWFAL8S_glC}{B^HBU z2nt}&bv*+<0M6eKpIsP+jh`U3EjXI`&wf*B_m`zz-{woZcOKc@JiKe?VUfGD2)8$T z(Vexobl(+6&Kyhb-gk&lyN-z50~riT4_w#-7An8y3@mrOo!|1-jZVE@7`SHrr59gy z<;K&+7>lYfK7Q>Lg>6;Ocicu{bZB^JxG-SXaS{xU4nr6^dt~UW(}nNZ#jWndpzSsS z&#f0{nt=t`avIh|*}k#nxy?pp$QH#-KA?)Vo87IIa`EgDe@e`0Dx5|j03bpb;S)?a z6){s|=TxkKf3fT#y{uS-%Zd?9lmlEI6U_j%5m=M;a!u6TMy(Kbgq?IeKd@#z*RJ|B zsXKmvFNBQoS79T$I7A;JBs_cbdXIT=-pQ%tvbKQzU^z2DMUkR`rKWv(-SQp2k z0HPW&!m7)N}I|C#3EJyFp!SJOoZdb*b7fj7Ks0kWxYIPa3ad^dqH{)PBSG7^4J$)sxl! zys;7^hf=@VzfkC(VsZ~iTcRHXdlHl^=>&cWlvu9+4)zvEUz&UeOfxjDT<=9kht%<@ z@4yzOdW^&1>!42cF(Ue1N@+f07{RDQX#rvoX?+96X^^o*-vX8gC9Y2vz*2@r?55D)iXH8Lp*t%~%O6JSWL{h_OYw z=&?4qCD_S~3DW?4hz4l0eJOYP9!2{#QXE`zwW z+|S2BFM{@hJ^~#C{Q}Bh`JE@}WHC|2 z>XKGWII372(uyTW70W@sDi}0X%t+~2kSeB+v|>fkiX|znSVL5?E~Sc@Llsj}s+e9> zG36u{Q;RAVleFTFQN<*cDpn9xEG(&FEmOr3mnv2;RV+>k|8H59LdGyVU_GnJ!;Cm> zEzULNmJLGLo>%gjl);MQhfV|?`I%TpkH&|g7|Z7GRxj?3Dg*x*wyO9NmWuLQwi~^| zZ-A7JdmGoTU2pRGDmHzuD5avaV)Wd0jlZMA1d5_1AEa~M=(zmxLB0v(8)0aQ|043i z7=_dtCov9hb?9+#gs_o$-4CQ+bO}p?=&pqTPaGP+jank7XnNN{{W2}9AJDqNQx|9_ z2ketjEZeN9+f*GJB38ozZiDAVeEu2Wh<9*h#C1NaAnT_}zC?1cQ2&$UybyCRj2r8J ZmKcs_%UEdD^IT6@e0@Qh>)`~9KLMKjMa=*J diff --git a/42sh/obj/put_job_in_foreground.o b/42sh/obj/put_job_in_foreground.o deleted file mode 100644 index d6b9d13d8bbd68a6570028054355bd35accb2cf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5456 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 M=8;n~{caNCf4=*J>i_@% diff --git a/42sh/obj/quotes_gest.o b/42sh/obj/quotes_gest.o deleted file mode 100644 index fdcbc59c73315f9180a92811900b05b571a9d786..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4408 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 diff --git a/42sh/obj/readline.o b/42sh/obj/readline.o deleted file mode 100644 index f645ada85e7f1243336b8771e6d985ef9d1b4674..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5488 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 diff --git a/42sh/obj/reduce_bquotes.o b/42sh/obj/reduce_bquotes.o deleted file mode 100644 index 3aaa01ac36a7f7281c8441ce0a42b7c14d0e0777..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4400 zcmb7IZERat89vw7$97^nNt3iqmu?t!lyz$2evSyzQnzt;lO|h8nyy1kw~lj@cysK` zzHZXdlC2qNp2yT`LJ09SAtw5xOq2L3ph=}5bz);w1Bvnn_0OgTiYOo2qIDuX&%Ngs z$Lm-)%6s1Pyyrd7dGGmle*5lU{~Z)U(*-h!A2KbG#UM!QAd579KzggrtvJOtNFD~K zpfu8mWSX`$YrAC^A50!T_+RXmCKv<~`Pl6&2*Nb@#p6_7GR-k-v@~HB?Sf-6&7KDm zL;JmI;qg4D_}&TJtnvyzuR!hbW%FsrT+8?FGH)TC4pp~y%F8@FzSQVw!8%I*RrKT9(`@Z-4D!y(N(ykAU&*jUHKI}|zZF~!g?@q;c zY=wMIeAB6PEnifvH;?a|E9A3}P2ci+w<^AGr~&-N3i+_<9Ln1Ge#6a)zNA%-^K!rv^)=e z3Yya}2&qo&f}*xyb=8NKM~w2D#{9J-M#Wi>#+L_PGs-8f8|Bi~i^Oe7qMg!-(k2}u_#o%=b+rU+$46YN`ovN*Gu!!d89f&|V z1?A*-7q~J38EYl^o-zNcBM<#D!NVoi-+yQzcGM~qGx=Pst8+`|me^hCEKbCZt}Ota zJGOOh-6V>IbUbU#T7`JQ8Y`tObM(Jj&i4D3w~iF=2ViG!j)IXvtZ6ZiEvi25@l_a97( z9#`#6>^m^rpBOg8p~R3F9!&1*P4o-fwDXTxIZ;%ayPQUw@E zIo|cWnlTUsTUfa<;YMpeg1Q+op0UN~qqw|Tivk_ARocfITBP346liZ)r8Q&ve11)D z2!}rz{uH*EewWZ2)??fH8%1x65ONKa-r!aSTB7V*7Z{Ol!?sY9m`+@M+CMBP5}1=3vpqIh}cYpbg!$N+kF#E%M=td;@__y<@}T}zhTJ=5TK!6R{AZELpCD_2=<5QvLAB}4!H+`!nWk2b%_fxoLbRG=W1y8 zd=Et4AvKtHq3HiyXaFi0@{`-|bSRABgaPCn_S6vwlWTKt?70`FE1O~C$kF~!2vc=i z;@Y-6X8#`_wx{qMXX53ni2$_31CZC0+dp~nO@i7F%_v#sDM`)53(kHfbNi33Z2a5r z(yi^!{o_*mPi6eomyhqfaohIX?OPsyD!lm0jxRJtj{dNvT5xSF_% z{P@_lkh>uqz(GhFauiaAaC-13IA3d^k?2MfhhLdEdo(!{N*{M(XyWuKuM2=QabGAC zCyOS|pL*js%N-`}5aq>nPOoba<;A^36So)60w#VEP24lei`$!~P6$U4i62c9_mT4Y zU-K8l$aAdWU7gfcBhj+tO{@0UkkDqEw5CWfbP8VVX+7kXcSyFh>rZYdrs#+{o6Cz^9J zc21IM`K^NM5o3>=#jSMxQO3el7Y6{x&hHa-T#-)F8#O8G_4?4acz3sq^vQK-+XnQJZn+6$eV{#nMtyQq;6b?!`V)P!y-(Jil);m7E$Y_8wy{rk z!UoF2H~s4aKbL;gq0eYwmqXDQD9P0@>3!hxy(P7huMT4`L=Oa8u45-OMx=ws6VBUR zT<{V&3XQGV@h^-DiXB{`7_5%V(DZ*1n*Lj$F?b!^;2~f>bJ$e13v5*Q4yB=-`sbDA zx@trNFR@q!#S=AndkyCLtM=brgZb;cy1ustAF9FQHCUMV-7%HI4~_}T&X?@z65b!n z7n(4~ZT=r%)UszRyod;~?8dCDSK}3(HwfQA?wiR>PffcICWXff7V2EKf;F8@rCkU% La~wZ<5ZiwM6}rt1 diff --git a/42sh/obj/reduce_parens.o b/42sh/obj/reduce_parens.o deleted file mode 100644 index 9ee29c88d08ef194c34760f0c61153c13b563b6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3980 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 Iyf(o4ACkW?i~s-t diff --git a/42sh/obj/shell_get_opts.o b/42sh/obj/shell_get_opts.o deleted file mode 100644 index 2a597e896f368a1ff80bd629cc4f3db035f8c01d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3632 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 F{}0K!_4NP% diff --git a/42sh/obj/sigint_handler.o b/42sh/obj/sigint_handler.o deleted file mode 100644 index 859a658d7fcf4583b4720bc0444fafadfb39406c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2608 zcmb7G-ESL35T8BAPGYBylTZW#!BI8kqxhpChzL-r)r4Nuv_frCDg?kBEbXiJOUC@AIlSwTB#~8{0n^n@ld2bB0d^s_VyBco8mCi?Ck8${`NP! zb8G+n=kE^(0ay&MK^;KdiesarqCAaikpCF@j25EYlQEHxm_VALNfgcl>v9nGLw|AZ z;^M9!^-jwU;SrbRVE_R=09T?IvYeZK;Mq=94sza$7vYrU{LzH$NTc<-h*z=7%_>Jw zF~j-n`^9tb?nHerdmGYjDtI{D0~z7fT~n-3@s7}8cS(W{t5^2KE0xQhwNCl>@{90J zN{s#D+0KefOH@2t@>`a8^OE0nybrn;ls)-*C8uinkK)}`^8I$7`L2~rK~d!w;YG0h z@k)(G-QrGZjp#j+?@towZIK$lcYXPVcy4)BT(HV7Ay4P9#QSxhc!FP}WU6?tD0s;s z3A}5R`w0038;w2lJu9P6$@RH?;^9XuAXR=}Dg2s!@l1CO^9*>?xnw&P&KG8PQ^7Y# z;^}hmYs90c<{PX(c~wfjR*kQCc)Q^O^*y*Jqfbb@Er};xNCDKMKG~h`*LDP=ny*e| zP(BU~0P-Ta@fdzo2jVSEB}E+3c?$KW{GR?mJA*#*fcH?lh4LkpTXs+N?JpUfUyQ5w zbz?K$#^6r-Z=-YPH(F+N<{pU7kA!P%zWywlAI7Qw`O<@8XX^%t>CW7JX@&$%5J^gD%YFs$?R*DmgSo5svGF%=TFU_UDRzyZ+Nb0`My4Bi^(MT zo|#{D%URQP0?)1IeYJ)l2SbrIeqZ@@vq$A-RqVNCDUwn@mr{W9dxdne-SN$J5qw zI5^HuBxC6}Q*WhS9C>F1Zy*ku9GIWLhww1O(#KONy0i~b!x|eB^*I8s;t0u^(18H$HJeZ#x?&TZM%$0 z<2h84?zQBrYqwGUZw%o-L0~9UK@1XTPTmiSXFWg}n1|JrI0VTcY! zcZ)nH0_u^70sG_}u*(^i85tb<0;6arDroqJz_z!ebB1C%b4@#WAo}_K07Eo*16#)a zN*}bg6LGzUc{=*7ZfLE=cVOMCMe*qmrNGkvU diff --git a/42sh/obj/sigtstp_handler.o b/42sh/obj/sigtstp_handler.o deleted file mode 100644 index bff39d8ca36278979952e1c37b2be073b3e5fde7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4128 zcma)9Yit}>6}~g;*@ySxb?gLJZqqG^LrS~5sqIp?g%CsBZiGRlahiaNM(f$x-HFCC z+nsS+sDTC%zHjD^ zyE{#ZuXOG?=ey^Ab7tn8xx2r9_pSe?gisO!6J!ALf`+LC!MF}mqyGV;mI)VLmobqK zPC+TkeY)H5Olk%jmC$ohgb$j4lE4+)VZHXzohqM_@C=XWiqC4o3!#M6-L zcLpTUZXwk7%)rw1hPk-h(m^Wy{fB4ozh@)rd1*b#hlKH+7$2ZM%81W)jUZmv`}r37 zqJ@}F2VuQaUqr-LUtH{($N2oN&i9IB*esvrG+l0q^WDgTz_=vu_lnH#2;K+Z3&vIR z>(-r?>AjzCTdaoO84O8!=Bx58)r}yaaaG$=u>>Rh8hOW==?}-%`BwtB_=fTI4Jc0U? z?>xq5w)JKgZ#Uc!{~r8H^6is+7bKr_1#Z6`+0;?L*_IP9#_xAV_Crx7Ggb(9uYEv% zd@jMaFdG&YlOKbeK|Ei@1?UFd*H~@2e(B(WdlwEa+*h)kQm5-0rstI=tYCFe zcwM7<)LkqauH$!IyXsjj-}5_qyY4h>vs*F5EL*lTKmWjIOUKNvXSq&krn0B9r?lI! z@trBp?1596o~+z<^CsA;hdhu}TgTm_je2!@(rb&@CFwh^upD0?F+=!zpuA8ut*#d! zz-`O(g%>L3Z(@tox@Vm-!F0;heU?$Zi~0^g__ph`O3MzfV>a+qeBtm|^xCFv>z$U> z5FM-0yDxGPIyH#}W4YVK#dJi5oBSoWfe!c0?vmwt!qBazU2h5BpyCGI4FE$A5cqcF z8^SOUv5}6^u6KjP+2LgJI;M&1a1NP5Kp9ph3L{#gP)v>&hLtU-O|=4Wi?VMpQMfC6 zclIN>Pv+3CnouQhU5Z3Jix$Zs%Vt)M7mAG!(bcYv(O3um)?*=qk_?$Ed%J51!ntyCDF z3so>jKPEQ5I1!*cP)C3=q$mmX@zW0lb`$e}`gmuB-tZD;p&jQmkmOH`)GDSmNM=0! zRj4D{uFPZ5KY?hw)g2=97g#%yjdruTBb^z6MM~|X>W*AyJG?or-J8GH^)Ge83p%sLwqa^%37wK&!;T!O7q_>R}gQ-019|IfMo*IMsGnk17wckLc z(n)fss(}AVV|(f@nD4?&)>2F=12=JN_71a~a=Al#QA=_1@xZWZQV=?=r4$vqaiTj1^!d8T?dms3jNRp_BVVHy?rKS0%q zrxmS9trUH#RIuX_noPQOaJB{&d{(JZt-%PfWMH4GeEuy~LmfiA5}^Hi3B~tb!RY0` zRt%2?$|wUd_yJb%qc?$rVIVjVgdiseE0D(kkBl^ghY9PLIfN16T!7Cep|@x4O!n#T zzVh$i8l&T9-+p!6|AuwLvN};bv^X;Uqt|!+?VYc+Z%F>~Q~u!}e&y1c@1=kL^7+yI zFF*A2XP!TO`{h3lK5?4I!evMS58)=rG~`~$7a>cKHON`WvykT?zks|3c^jf3VHQ8k zpo(`w(}YimZ%aZfT|%rlbSnp|k`QZm8-cLS39;}c#L6VZmXQ$qiV#~(aY%lghPIbNYOWay3ZO0Q~7&3vpM@lJYGJ^Ve|7YSU% zPhuSYxRmYrl{UZ6;WpUl4SAHp84x_Cb@}@t7KskggTpfnl;s{X)^M&5@^-kSy>yGO;tS%p0-_I+7 eUnYJXsME4d-*tiwjSl`&`%R&@Odk&qoc{w%J9hH` diff --git a/42sh/obj/sigttin_handler.o b/42sh/obj/sigttin_handler.o deleted file mode 100644 index f6fdc33eed828e97bb186d29b7d1148c991706ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2552 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 KRCHe)HvbEMgj4PS diff --git a/42sh/obj/token_expand_var.o b/42sh/obj/token_expand_var.o deleted file mode 100644 index 134684b1015acba04d7b0a0eda100ea9bac9531b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3048 zcma)8U1%It6h1SXne1kh-A$sk)+!5$(SX^FHDau_Cfd|V+G40}t)PsP&2)F`W_H<~ zq-nJpn<@hW3X!c&Ye5S?zA;IaPGP1 z+;hKs?z!jQnTvn@`ENau5+XFwEg1f&F_{bia36b{J1A8ue7w0e;<<-Q*WK?n ziFe6^rJvS_hf60QgYk8U%e4~U#}NsX;nEoSqmIE+m zjxHJ}nO_di^HgJIV8J*!urM{LQ2bSnp=2~050PxZpmCKO&}VBVNHZ%m)Z^j-7uv)uw>X5jLbAD5Pvyh+nvC!hVQpRZR-c)z0J9&4efcK=Uw;M{TXH)9lPO6kM>4H6Jm(y@Qy$-=OS!2180*Q9|nM?uK4GneHPQ~F(T}6y zw^ZF;{{qB%b!&JUlKs>^wT;5>pvV4dzuFcKzmML}tUao>B}o4g-4m>~MBaqZ!rBiI zk@wK(O5{T}q2P@t`whSTSt6B!Je&8??E0s};XR9uK&CvGnz?KW&P5R}RpYPb!>cjh z#Eu|-j}%x!xWRSe<`OX`$HtP0@9c*AoZGvnPDB^K>3J#9IPp;?`PPePwDk8SjB&!= z27dtl415vHSz!!L&Lf*RwbF~z$tKRNH1UzKiO*2N z|6dmBu|wVoysJo-598F3pBv@KZc-)_N}{nodp<uESO_g7Fo2uD69$G97_^(c4-E-Ym+OSlJ$7P3NLg@50i75(2ww-rIs$;fSDf=$l-u}$s@J{tuD4g%5=NFmZ zQh-i%hR&HaMxgp>DzC!Jj*OI@!`y#;ehTkZIbpeY1$VT>DUEpV z$@~^2-X<0wv>)}8?Yn7y<*YmAcsJs`TNf?FhDd-{GuB0@{T|BZ{1hAWQ+TS3cgD+3 zOcWj4%^qTUH|+PUTz#`lXyYC83-C%K2mA&%=J&J2>y&uzGV%QUCbGFkJe@BTNa3AX zCSK*}#7+0xCGob(0-j$c9$q>hvN1nL9txG;-_1e3HDg16bEQMrXT`3%M+$D+ge)B;J6;8<2R?6o4I9I;A>)#e(Z2 zHtzR|#QRQ8ngSl_#4Ymc#Iqy=VnHC2Uk!d8@!Z!1NZJtMDR3=uzvQ|N*9P21-)qhM zYE55GSu@WsSToft*2ya6JS2FN_2O@$UkGdZsz|)d{H&8Z=B?>3Bi78<^Mv(nrBBbM zp8IN$?@?-KXy22m!%o>Nl-yK*x+mR}dN5bS%irDK10&tHF}>j-;gxflqBH4~GnLXo z$3=r2C!G_Sy&h&}#*UN@ll!E8~neH7tI$%9HKg+Iq17@r%@mIW29Rl7glZiM1Vb8Wm;YeSj!G@NbP zKr|G8H1=5RftIZ;Xptdw>Dbkd8?dj=H276ASBYKi!5n<5Iz=eHB^EE76^Y--=L*)pd8x1eF)GJnikSePiB3c z-$qyyqrO$e*rcBxf0I`08H~a(r!XD_ht`=VA*+y@n^uf!`xMy0XYrEO`!OrxZxb>dgw)NYt8wl%P%ZwQVt8qhS27U9H&YWPq=Bzq zOc0O6XF52ru3cjsF9iM+^h~`L`{MY+i+A_B_rCGxk83}j>-r;?dh7VY#l9DkEr&n( z%*cGpHoOo19Lzt8IWP-nV$*BD>%puKYd}A54-i{J7rP~0tS?<`$tp02Ev1V+moB!J zuBq#;S?OX+Bo&lx`JoXv$BesRg?1ZZbK20MYUZ?VB6ABfu~IkxNr2P+ uNMM^8DZ8XxCnW^q&C^oyZAieOs0~Vu>Fc$&utzKW0nR%`Y;Wnp7XJh72BFaa diff --git a/42sh/obj/token_init.o b/42sh/obj/token_init.o deleted file mode 100644 index 4bb6a561ce71ba28430da4b19973b4a1ae6bde44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2760 zcmb7GO>7%Q6n?YzZrnI=HVIUr6l9U|CmK7nk%$0=nEv2|R6?Z|Xuzw|_c_M2xs$jx$$vZqm$5w=g$h+=f0-10N*M7>c z{%T&vVr%Qaz%{>iq?td@ye=oAyFP9rE@^cdX5e=I`DT9Yv4k|Per-PeRSs7uJvB9b zEWPB`>ZOX89?cAAhST>rWxn@Aqrz z&&mN*o08{K!S-!(igu0ar86$Uv;`h?N%V?4 zQ~i1@Wg54pdPN^6PV1qGeopgl7O~WW$%i<}@qQ6YC6j@ocT+4i(GLaR2V)i=JE(XWZtNxKo33u?_C`E6ng^@>=&g+ z`&^i!b2pe;@o(gV)xbBwkqLK1uq8%1e}8aGh=7S0AVIj2dk%WH4X>O_HoqNt!R%W4 z%t^m<_H#Y^U6sd>OvL*!^A+Z+%rb{8k@nrpOft(#;@UEyKv)SiL%o@hb(l~H<%Q(K zgi0urEHJC6xPrf47CLx`*a>?pQl$fI8-;lhXO5F-n8NJpNL*kqth<*v@i%ZbHp0?V zE@i%=9qJCMNQC30QI1<7{z`RoE3gK$D0xnKvA|!A%_~eKZ*r!H@vR%j*BOUCuF))U5zt{IQ(DPxl5qLh1Bn#N1IHlwE|^-dnuj7iPlwTT`G79YYJ$zVet z1iJCAl6NV2yOJyrjDfcj66dXlJ0YRlqRO|nRVQoC$IqVUE>rOC$QO#N1-p!YwtoQ) C|63^l diff --git a/42sh/obj/token_print.o b/42sh/obj/token_print.o deleted file mode 100644 index 3170b43363af0749981073fcc52306ff930f8bce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3536 zcma)8ZERCj7(VxQx9!@|bsr#zkR~wDz}7N8BnrrIBV|B>$bcBhwQIYrP;QsrTNsQQ z!i-oaMl}BN7l{#n5M!by@!<3EoOic4SuRe`?KFoi%EGeA-54;X8(m}5lx6m^xL>sE5Wa%4x} z(y@KZq+XPcOM!TdW$qM*LpfOVA=mY|X=PJJuQcjn|z&EBVC=JebQMi+Jfw++I7Ffynq`E|L#QUCi zcPws)SQ%dtub9S1>(@EWk?PhrQocFAZZ-or&_#@+U@G{*y?F+7q&&A@!nCmcc z^)d16`1)hm^=ZCUC)H;^7h7kd^VBlkdNH-cS9L zfk~+%zIbLg&S~j6V{ghx==z5C(iLM8FC>i@fX6FJp#EgY6?n-$y(f#?brw|igP?q` zt0mr;#FMIk+EEL-uWd|;Gc!=B;EnJHZjYgt{{CIRIKQ3zDcpL6#J4WwfM29=Zqr)Ov=oo_t zqBsI^WO(Cf;g_M)N}+3X=zF#BbMz9Hb2abf`em*?vT^|OAKd&Dj}SewbSc=$r!ch- zcZ^1dyT&#QcY33R)1NzTuwc8*!DyjtywGvw`Yyr@{TSKt!(htTlONodOy`?g7nz~K z?o2vA*qzSho0=CV29ue1zA4h03e9ga=i8c3nAvzZog7GJ!&YWj($M?yF|b6jiEisteMIfq2(=+mPqL7cpAN_d3gj%%aYcXMbA7CBiv$Bs&bLM*nZ3}SxF`{`Vj|ub%i8-0no>fkQ0+_-NpY^(f!7Vt*y3l2}#t*Eg}n^Nf;FMgsY%DQM!wr+!~QmZH~_2>ZGt5SOi zbCr6u|7&V>EIMfEJJjmeVH0Stou}5YfLm((4!YmR)C*E)cnq-VYP~lH{u51&>Kx(C zLpnoksyfH({Q}ZeYSYv?K~e3#2$_$iYPS0d*in${Ro^i%k5?nMb_0`p9MiYd)_RCF zU0da4B#c8_&0QGnN@{J~g&l(tYiqcRdl|$_FlqI^%Vb_{4JBG)JnS&AYix>}mcpzA_=gY4~=KcBPVq?}f2bSK69DK`vDc(5qgIgD7TJNN0 zjh|cc`bjPP>k0Uu0{srU24dd*NXBf?B2YVM8)zqp=>rqYC0j2Bvr7{bE={~qnt0LE zKp4CVns|HCbWEC919Bm+guC@!%_>U7B62`ZZY?nVY|1P z_z;$Lap0lLw)C-$I3AEuM6!uOse%XFzvF{ynrI`gT18WRr!?&|&7aeP?oO?Gh30dw z*Xkg89kCJO6DPFV6`E_i+xv=EtuAcP0x)_yHP!7J=+qRK?~v-o`GhDq2W;jQW0$Gj z4sYHe^=F;m-C@b+Nj_V0Feb?Tk>rp?EhjmoUr`kSNF_fr1Cz-SdXJ^|$E-fx$XJO~ N*47jD*RKcb{s(|cAQ}Jw diff --git a/42sh/obj/tool_line.o b/42sh/obj/tool_line.o deleted file mode 100644 index 82f044aeed96190e122b56da79d05090a2172739..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4668 zcmcInZ){uD6~E8UeRkv4FHPFCtXpG7U?WgFEg4kI+EQqySF4c_YqJWd9**NUuH0wK zf11!0Evs9W)JRLUp$P$lO%qI02OHA(G77CSl|TDHrA>$r`_KMxDX1GHM6;}7a;oTz9e&@?fqmC`cl43R84(^W`{xcJ$Tu+4MBHXsW69A{$|@A| zN@Q8Pzq9MXZ@JUL#aUp|q7BWmeiK5nOyg=V~~Tu;YTh*Ml= zmj`W$cQ~FDW{nWSaM50iUM@m^#9&agw3&-Bm1%Z?sW1#a~3CEWq) zWxRVhY0MI7h_}YSTs+Z;_s0gjhgXSLd@R>8-bKcnXNSJGN<17o1=;A|t8_Tg+<5O> z=kPVZ4e=(jhY@GdD%q21d(5)-?yk`lA28kvESvxy9htrBh2T;(;3X%l@jR;Q7+6;Q zeK5u6^%CRxgM1G#k8)4&P?75SP1_2wG2R1w9oPB)RoGmSFKR0vUtn6Ph%lC?z z;YH)b7hr8xhL+3<$ndi9#s;l?wSCZd>cZemY4Oz1;x9GhB&~e8tE%ZY%jZ|jS^wpi zS5{V)YW0AW0axVYRz9EeV=XcTN9@@KiWH@vrnJ=WXc4%j~KinVs zY9fO#(zc!bV8R1C!rN~bg?u8C!LiJQxD74lGg&(oD%pi}%1(}j$O;fbTd&<3?2_JKhrT7aUhBlh z@q{7l)CSwV!FvN=4}4|qH*uYNrSPy|56*AfKpiU^P4;w=k=`r3!EXctxQBd(AUl6I zh=YszzDTQ4p@p9|EZzcl5<%PJ5cTW6ma13a6FjMnJc5yCXqwk^dg@g*{w{#P<$kZY z9}ui(4nNdFY7tnB90I3psR;19TjnnyM;jSaCwA zNHOlC#n4p#K>w;ZAyic`{wedWudLqWEBW?$blgwo2F9nS1I6q`Hrnu!B|K_0P4UzG z?=Ic8c=p)WuJupP1b+1C#Vv`@Q^&?2pF}@}{v7&m&?(L2CuP4I6pd0&BC0|!351}U zk%%hDA}SS$sCI1l8jGf{YyGD%eF(vI8wf|1LX9awDx8lZJj;p>{{*28F%ljO?A0x5VTf zQF(hzZjH)*wSpI(dVVMaFUU?<8Zo&kO7@ywmf{r!y6)Gq3sdVA%;qz)XHMQ4Bcv@+ z+1G$!K(SjnpaA?EfpAu?8ln9mWGw3Ops?a$q#75>w)3b6(Lt&*=v@xg?_m0gvjOxE znZCr7FGHRFXhT&`F};Urgz0Te>9t0B(@Y;_I>5ELf+wd1d z@$OmL!F-5yh>*T}whw@>F~=6fW2g2VLp(i=s*fQO)V_O&Z}B>E?f6M$P3F_Zq!9lG DybEDr diff --git a/42sh/obj/tool_line_2.o b/42sh/obj/tool_line_2.o deleted file mode 100644 index 5675e7a5e13a81544828c845b9eb8ffe8dd9fe04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5452 zcmb7IeQXrR6`#HHtk*u0te0RDJ zOd=dPoT<24mY`{(MwNnERaGmsRn*cb1(lePhP3Jje^f21s0xzZg475^+u)Km?(fac z9(N0&bmZAL@6DUv{N~N<>^uMV_6HwVGN!m09;g+l^(r1dRFp?hzs^PTo{vo)%iKz1 zP;4ETjA{cJQ4Aw%9?V*8OWzXQvE`0#x8@KL6v87eV*qF-Lj@ZpVHd*)XR_&7A}S4r zQI2QhESLT3tL%}Mbd{^%7fvQJcL*9rch{D#J5HUFSG_c)fJgkk-)P0{j;GZ!jELEv ziy9y)48YsowRuC)ZKK3%prE6SI{3j`6z`WZeiRpR7kR7~ojM;z zoeO{bvF^Eeudo;Nnr%d-LOyn_KwC~hT@PHg>V;`N|F_n*$)6HL;g`J=!705kGNTuA zHwx!_3-4VeEImIn>m8eiR(@paMeh-!q31_tnD+>MOs@5Vns5}4x9QMW<0d+O0E+r} z-wl1dN-y+XEd(#yJ+Gn1ZXYYQ$46#_v2FG(!RQ@*qHpSaa0-x2FZ@RIy)-h_w7YG! zUI*Hk9^!!V&q6Vo3LUd0?r z;jCOMT(9cmTW{zEm!5yObIAdSJ?F%rrrj&shFCbl zGGUeuGpMVFSlnbSxlFpHKbB|-$IXzH1u*uwylem=N*8@ae7(Kf`g{k>bS9Qe_|^nk z1FgPKhvWG4`PZ~U39MQXX!{Jyq{A(7+#h~363Zg>X~`y&af2+zia?mPY|Q|nB|4nk z7YVhjT9FxK16d=5Bq~jPy)0nJ`kZ2tzFeuvPf1 zT!D^ks9)qr1WX?SrZgzcb#u78u3l}bYf$KPxdJdYDxKBty0xBlp5--9<21QBb4kPJ zap6_0DpPs+5XMw5Be%+>%w6}C$AkMwn-7bH$XJ!4P`_BMM@( z=t5#fyS@Z-eHrF@!eo3@`rG7`ZHH-`7x>R!q*g<- zHQQbWsWfh&dDMU6QTZyh6qVR$HF%tW?p~-pgywh9bUj=7Cb?;qzk}cvS}QuPP;;TS z4$Z%!S)pr0|3frgPgD`V>dnwy%tL|HkTK|A>eA5^UtoGM?4*Wl3bRraS^}<;*{NOm zGnWcC-@V+m`DQn4TTmmYBD#ck$YOepu)+_ZjmD(|&&{95y+Iow4%+A_xE9R9A~9Z4$*!abEA%2PBpV$8!<0CAM_ z=QAyam5+;0jqM3LW96R)z+0YyLCntNH4X&_vDi_8wz!@xJ1#|f^+a(uDO|1A&hW+R z>wI|+4-D`pd-&%DxVnS8)hKuE+;qDyw zP1Oc-e2IFBKQ_R%9?mh`4Nv#*4!7sj>C;@bhSjSl_&f}E_3#Fm9zt_Iw07PoHFVUV z>7gmwxq2ArK!Vn&PGbn%+qn;eF(|;R)ST$6?BR;q!I{>^J=IzV>^;1`hd*+RKitFT zwDU!Wx$E~t`6+S-1=m)t?SY|(uRSsvvThp7yK?oSFL>&BwKBZ5OXa^&mQ4 z%%+N=CwQ|qm#DZQA7#Zz%I(7Z7~^EyNpnOveY1xEcIcAn`Zvk9gob`p-e) z=Zc>)WZXFZZ$n~d7f@bIavYMzcS9n5^*;@Xzj@74r<9fS*WrwxXa46PaX4kkoUK zY4C4jpHtZ2pfOI>oh=U%Nw}ap)pvfz2)p&?p_x3}+5WhEy6q$dNh@hhlhsQuZl4 zbJ?t!9tww28R3}9Whn`@$0YDS0+Az<0V!+ROjvqc7$~`xxog1ACXGzoG*b*&Yc_<- zE)k8J*<_-KXyw4xTy}bF7?>jz-fx5l_ZtJDSRCES^nPZT2hH#S6De>>e>4|LN0^Z| NLwM3!bJ;|g{TEAcjS&C< diff --git a/42sh/obj/toolz.o b/42sh/obj/toolz.o deleted file mode 100644 index fc36374683f06f9e3899bab7293224dd0cf974aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4676 zcmb7IeQX>@6`$F=**kya&d!%wwS^O;F%k7gODaY2wb+WU+FWc>+S)i!vp%oS_Eq-T z*mtq1Vqts^_~JOCK&n=vq7b205Q69*C^aS6DT*y5)F={&O8ns>P<)b+3_9RiLe1~Z z&bs!VL(@@a-@LEiym|9xZk)H?``i0I#<+*!gYHG27x;wG(e6e!h`&v{P--idm5sv# zlToiwex{jcSidt5H!N0Sf&6#IAA7-IL$Pzk<@S^*{cL@JO@X? zF>i_EX;W=0i+H-@UFlvEpi*O+OUeS6r72ib_&YwRtJ{xba z>lwMh?)WY#ynPDqoJ!ipYK!V+Q+z`)%Z+!#h45lJdc}N*^)*IfjX{GkiwZGQj0M?l@)5+09vfDJ9n>Kq)D7=@IuoHN6WbUnGOkFiD zym+74GmPD}9o+Xp$ZyM+ZNgZ<#&cL~cb_vRx^aFJNr~uQFH`6Bf-1me;8ANrd`h$> zKFW){3(M?-M9RC+n_*8-e*&cdsO%m`-`r@u)V-U9cQ|e}vVS!)tD%PJ!gORkn=ULy z^5i-b$=62;!PzQ|e@y`!v+4EAG{|0E!I#a9=QE2uJDxYPk(J!<*4NjK%x^*+Z}!Mm z6a4rTSuurQVPwZ0Xv2!+jhU8$F;ik>!V4@o^$8emmd=D1>^WNVnX5e8n$Il}{!9cu z%*ZZErLh<(&5s*V;swV;-s?%p)biE4z8-y^`SRJw?J$ zaEhvZF>;I6nuVbqE#QN15mZgTSwqq+dDe=On0pI;6o#Q%<78`v!0YWlujir z8uSdu<7O(>Mehu-i4k+OFOiCm;3~vD4G9#$4BR0NB?;>;B6fk z@gV0yd+uvLkYln3H+DgC&tnQ*doJ}O;wp(_-cEd|E!l+eHu?qQ_ehknSLFDm&3^Yu zKi_p_-$*EEye&=N1Dw{U+HS;$%#|V?UGpE6{^W z$>WzlSb&5cDuQH5or>Gl8SY9D`n#9Ak2?FrHAn%p=C~CkfPvRk=Ga zP5FyTu~K{=#fH{JeK$HaS|j0jkPWZ=ttFnZx{2vBD|G%;1IACHQ$9&fxu#16jjEVL zlvE}9f06i9w6K;suAuDHI@or0R6Pv^8&9ogTf6VV z?geG1*0rtO8?a;V+IVVxMRwoES~OM*L(cyb*nuyn9H4XeJfa+u(xOZc3oR@>y8nwOgf=VqdBOZGQ2)x-Mn!3q4E*{fQL0BpNmTe@9@V9_zeD&S zgkIM(f@cJK8?L9xRnsS-dszhZIk7h^?(PwxIpGTnuih&>zZBZpFAJW=Tn%to5mjk% z0Fmqui+y2H5fys7eoSviSbdnaU6fl#_Zh=86iYOQ`N9mW#{BD`IgIS}io|I{F3`&GmK2QJJm4*&oF diff --git a/42sh/obj/toolz2.o b/42sh/obj/toolz2.o deleted file mode 100644 index f267b6a32870a59f93003b1b59b1c9a3ba481ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3420 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 YVsSA)XBccM8Woe~cQevuemP_8zZL&}hX4Qo diff --git a/42sh/obj/toolz_termcaps.o b/42sh/obj/toolz_termcaps.o deleted file mode 100644 index 6e5ed17762551a03bb9e4c21ae8f22467d1a7982..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5464 zcmb_ge{5679lvM$o*gIH4nIOE4BS#EOvDKt9jGKMXn1;Lgl!aPK+Rqp$8pSz?fC~# zMkEx6H6}$0+W4bti>Rte)r3~Im9Z7r!sviiQ-`K$@Yl#BDiSFbQ3o_?rLxcW-aW^D z3588NY9z;+Z%r zr2e-Rrl&z|(w zL*p~>k{!Fm0$bx#Tn5ln67OG+h$rGpg~C?6B^EsHk-(G0l0PH9>`SR>=etqjU6lUI z9}y29v4FJ3S0%p(bG~B_#S15QW1d+(m)ILibn5!14Ua)N zw9Gfst#_rdx`u=GJh&?Hh9%x9i6>cx?cHtmi59=#SVACL=X*+iuN^XqL3z;4o^70? zfGCTP@*+$s4M$QwhPnXuBsmBAIw*Z+-$gAgG+(op${(e_O)Gq)6?!JLLT-HJQ2zxj z-!snoTW)*%=E7YY2##w5Efe0~&sOrExtqMlE;aS%ZXXWbep~S#qA^FSO|$&aeXS52 zAN|e!`}fJOaG`Le?P4jub~!jgF_nyS>&wQubvSsdIL=or<6wvpEkC4S%#qQb8)J?b zV|I0Q1-y&;XecJe&yV@dIbIHqkysnRlm~L-BA)yN^B$t)pJIX^(3aU-#tJQCWmfj! zSRptzK<$WO)-qBE-Yi^sb;CgL=K4=3wEX-2wu>12k;cyO`Q*Y*HG6jW}o92RHQ&5V;dcT1a)z}sw#hu|jG#?ZAgA0ww4OEz4 zwU+-QHbr$II6MlCvG4=i#mDbGzMLSv}FA$8kn2!^35T z|EsBF#$W4Sx!m9A_b=&$1KB4@$ZSGGqGgCza~&0sP``m$8lZPuBitT zSoKU`<#LuuhwBKhHqsf(;(1kpr(--tuM^2u3$`a2kZuj`q`JQTJ zCbqaO0O3rf$!+&MSGl(G>8g#hzJYJl&Y4Y$HsYpntSV!<)rnlxrZI+aX`Cctv8tqc4Y!9KQc$L@Tt=Mfx_x)P%Z-E7u zIw!by2-?<;hRWX!!j$blL{F))_|}y9){w8mcC?#5FXb@nBk8n|x?Y-14wjeDo zLs~46;sR+21&o*^!kr@05kd-BkOE~$fik3efrOQTBZ`?SW&0c8l(ouaR@RoGto;kd zq?vt8c8wCV^Dc4g1g829`rP4s8;0r`^i{?69{NM*+84V1gzjZ@Z7-_VK%6e8$PUw< zU#~$`yp-v1r$RD?sSID~ed3AIqs4)Gr>1`0-IG^>TFuUXzI&tkxb4>QCtid+j(Py~ z6;yfvgir}5fJ#N=9rRtnF($Hy{uh!LD~$dw$%~wzF9IYgVq;#f9yaf*bQnOPM-d{{ESAiviHk z1-dEa@=gIm`;}GD&K1S(Rd|K_-+YGJ%4ZL9Uo)TA%WePQcJIcvbQjDHvUNgw&H1p~PK3}HC_2i`CYcH2rRuA$;gEW-wJ>a++ zx$T9WP`7ehGp|xl@Je7K1=YROYHBy%3_(jX-_pPvo4MmApQj!b$ywOU7b7XneA!8Y zt7_m5_1m1gp4`D5XSls>a(sLCI9KeRR+}pRfAce}v5T?V6QEe=IenlG@Vh|qoz#Y; ze5aJp0wsHol>Z7&_;*3=^ODX2#j#jRd%6PjGVNB-U!o!To1iGQt3gS>6cm58J~X74 zr$jAXw)j&wO6ru9&Qg+}m-Mux8A*R2>1s*qBwZ@$LP-xw+Ae96q<%?3#5nzu;wi(t z7}zY-CB9t>=y$5nWByd=8WVcyLsu2?!=O}}P^F4kW?o%_L9+_AR8MDBDId1*OrP@5 zG$qBSC<#)ztoeQwF5t!667R`u2w#388joa?38AyRMakWGZsGxKIOCs=*)Gv7d&iQc J`Nl<@{{i$a3U~kj From 8e3f84cef1668b3f986d1da211c9d0265cae29dc Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sun, 22 Jan 2017 18:23:21 +0100 Subject: [PATCH 10/67] finished parsing options, read loop done. few options are missing still, also have a break problem : read doesnt stop reading even when i dopnt want anymore input... --- 42sh/includes/builtin.h | 2 +- 42sh/includes/builtin_read.h | 17 +++- 42sh/includes/minishell.h | 2 +- 42sh/libft | 2 +- 42sh/src/builtin/bt_read_get.c | 43 ++++++++++ 42sh/src/builtin/builtin_read.c | 103 +++++++++++++++++------- 42sh/src/builtin/is_builtin.c | 5 +- 42sh/src/lexer/lexer_number.c | 3 +- 42sh/src/lexer/token_append.c | 10 ++- 42sh/src/line-editing/curs_setup.c | 2 +- 42sh/src/line-editing/curs_term_setup.c | 2 +- 42sh/src/line-editing/ft_readline.c | 2 +- 42sh/src/main/main.c | 2 +- 13 files changed, 147 insertions(+), 48 deletions(-) create mode 100644 42sh/src/builtin/bt_read_get.c diff --git a/42sh/includes/builtin.h b/42sh/includes/builtin.h index 248a41ac..f2324223 100644 --- a/42sh/includes/builtin.h +++ b/42sh/includes/builtin.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 17:21:56 by jhalford #+# #+# */ -/* Updated: 2017/01/20 15:11:37 by jhalford ### ########.fr */ +/* Updated: 2017/01/21 18:42:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/includes/builtin_read.h b/42sh/includes/builtin_read.h index c51f201d..feeac781 100644 --- a/42sh/includes/builtin_read.h +++ b/42sh/includes/builtin_read.h @@ -6,12 +6,12 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 15:02:39 by jhalford #+# #+# */ -/* Updated: 2017/01/20 19:32:45 by jhalford ### ########.fr */ +/* Updated: 2017/01/22 18:04:23 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ -#ifndef BUILTIN_H -# define BUILTIN_H +#ifndef BUILTIN_READ_H +# define BUILTIN_READ_H # include "types.h" # include "libft.h" @@ -30,15 +30,18 @@ # define READ_OPT_LT (1 << 9) # define READ_OPT_LU (1 << 10) -typedef struct s_read t_read; +typedef struct s_read t_read; +typedef struct s_readopt t_readopt; struct s_read { + t_flag opts; char delim; int nchars; char *prompt; int timeout; int fd; + char **names; }; struct s_readopt @@ -52,4 +55,10 @@ extern t_readopt g_readtab[]; int builtin_read(const char *path, char *const av[], char *const envp[]); +int bt_read_getdelim(t_read *data, char *arg); +int bt_read_getnchars(t_read *data, char *arg); +int bt_read_getprompt(t_read *data, char *arg); +int bt_read_gettimeout(t_read *data, char *arg); +int bt_read_getfd(t_read *data, char *arg); + #endif diff --git a/42sh/includes/minishell.h b/42sh/includes/minishell.h index 02b05202..f02c55b9 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/01/11 17:17:16 by jhalford ### ########.fr */ +/* Updated: 2017/01/21 18:05:47 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/libft b/42sh/libft index ab92f0e5..4c497745 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit ab92f0e5d817c9d726a8ccf2f11c084ba446bbdf +Subproject commit 4c4977452745481166749b813e8db51dcf0caf44 diff --git a/42sh/src/builtin/bt_read_get.c b/42sh/src/builtin/bt_read_get.c new file mode 100644 index 00000000..a7364b71 --- /dev/null +++ b/42sh/src/builtin/bt_read_get.c @@ -0,0 +1,43 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* bt_read_get.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/21 18:00:03 by jhalford #+# #+# */ +/* Updated: 2017/01/22 16:24:55 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "builtin_read.h" + +int bt_read_getdelim(t_read *data, char *arg) +{ + data->delim = *arg; + return (0); +} + +int bt_read_getnchars(t_read *data, char *arg) +{ + data->nchars = ft_atoi(arg); + return (0); +} + +int bt_read_getprompt(t_read *data, char *arg) +{ + data->prompt = arg; + return (0); +} + +int bt_read_gettimeout(t_read *data, char *arg) +{ + data->timeout = ft_atoi(arg); + return (0); +} + +int bt_read_getfd(t_read *data, char *arg) +{ + data->fd = ft_atoi(arg); + return (0); +} diff --git a/42sh/src/builtin/builtin_read.c b/42sh/src/builtin/builtin_read.c index f9137519..6377dd48 100644 --- a/42sh/src/builtin/builtin_read.c +++ b/42sh/src/builtin/builtin_read.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 15:01:45 by jhalford #+# #+# */ -/* Updated: 2017/01/20 19:32:44 by jhalford ### ########.fr */ +/* Updated: 2017/01/22 18:21:50 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,30 +14,31 @@ t_readopt g_readtab[] = { - {'a', READ_OPT_LA, NULL}, - {'d', READ_OPT_LD, NULL}, - {'e', READ_OPT_LE, NULL}, - {'i', READ_OPT_LI, NULL}, - {'n', READ_OPT_LN, NULL}, - {'N', READ_OPT_UN, NULL}, - {'p', READ_OPT_LP, NULL}, + /* {'a', READ_OPT_LA, NULL}, */ + {'d', READ_OPT_LD, bt_read_getdelim}, + /* {'e', READ_OPT_LE, NULL}, */ + /* {'i', READ_OPT_LI, NULL}, */ + {'n', READ_OPT_LN, bt_read_getnchars}, + /* {'N', READ_OPT_UN, bt_read_getnchars}, */ + {'p', READ_OPT_LP, bt_read_getprompt}, {'r', READ_OPT_LR, NULL}, {'s', READ_OPT_LS, NULL}, - {'t', READ_OPT_LT, NULL}, - {'u', READ_OPT_LU, NULL}, + {'t', READ_OPT_LT, bt_read_gettimeout}, + {'u', READ_OPT_LU, bt_read_getfd}, {0, 0, 0}, }; -void bt_read_init(t_read *data) +void bt_read_init(t_read *data) { - data.delim = '\n'; - data.nchars = -1; - data.prompt = NULL; - data.timeout = -1; - data.fd = 0; + data->opts = 0; + data->delim = '\n'; + data->nchars = -1; + data->prompt = NULL; + data->timeout = -1; + data->fd = 0; } -t_readopt bt_read_getopt(char letter) +t_readopt *bt_read_getopt(char letter) { int i; @@ -45,48 +46,56 @@ t_readopt bt_read_getopt(char letter) while (g_readtab[i].letter) { if (g_readtab[i].letter == letter) - return (g_readtab[i]); + return (&g_readtab[i]); + i++; } return (NULL); } -int bt_read_parse(t_read *data, char **av) +int bt_read_parse(t_read *data, char **av) { int i; int j; int k; - t_readopt opt; + t_readopt *opt; + i = 1; + k = 0; while (av[i]) { j = 0; + DG("check 1"); if (av[i][j++] == '-') { - if (av[i][j] == '-') + if (av[i][j] == '-' && av[i][j + 1] == 0) { + DG("check 2"); i++; break ; } + DG("check 3"); while (av[i][j]) { if (!(opt = bt_read_getopt(av[i][j]))) { - ft_dprintf(2, "%s: bad option: %c", SHELL_NAME, av[i][j]); + ft_dprintf(2, "{red}%s: bad option: %c{eoc}\n", SHELL_NAME, av[i][j]); return (2); } - data->opts |= opt.flag; - if (data->get) + data->opts |= opt->flag; + if (opt->get) { - (*data->get)(data, av[i + 1]); + (*opt->get)(data, av[++i]); break ; } j++; } + DG("check 4"); } + else + break ; i++; } - if (av[i]) - bt_read_getnames(()) + data->names = av + i; return (0); } @@ -94,10 +103,46 @@ int builtin_read(const char *path, char *const av[], char *const envp[]) { t_read data; int i; + char buf[5]; + char *input; + int esc; (void)path; (void)envp; + input = NULL; bt_read_init(&data); - if ((i = bt_read_parse(&data, (char **)av))) - return (i); + if ((bt_read_parse(&data, (char **)av))) + return (2); + DG("read_opts: %b", data.opts); + DG("\ndelim=%c\nnchars=%i\nprompt=%s\ntimeout=%i\nfd=%i", + data.delim, data.nchars, data.prompt, data.timeout, data.fd); + ft_sstrprint(data.names, ','); + i = 0; + esc = 0; + if (data.prompt) + ft_printf(data.prompt); + while (42) + { + if (read(0, buf, 1) < 0) + return (1); + buf[1] = 0; + if (!esc && *buf == data.delim) + { + DG("CHECK 1"); + break ; + } + if (*buf == '\n' && !(data.opts & READ_OPT_LR)) + ft_putstr("> "); + esc = esc ? 0 : !(data.opts & READ_OPT_LR) && (*buf == '\\'); + ft_strappend(&input, buf); + i++; + DG("%i:%i", data.opts & READ_OPT_LN, i >= data.nchars); + if ((data.opts & READ_OPT_LN) && i >= data.nchars) + { + DG("CHECK 2"); + break ; + } + } + DG("input=%s", input); + return (0); } diff --git a/42sh/src/builtin/is_builtin.c b/42sh/src/builtin/is_builtin.c index 7b1e781e..4e4af5a6 100644 --- a/42sh/src/builtin/is_builtin.c +++ b/42sh/src/builtin/is_builtin.c @@ -6,13 +6,14 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:09:57 by jhalford #+# #+# */ -/* Updated: 2017/01/20 15:01:34 by jhalford ### ########.fr */ +/* Updated: 2017/01/21 18:42:54 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -t_stof g_builtin[] = { +t_stof g_builtin[] = +{ {"echo", &builtin_echo}, {"cd", &builtin_cd}, {"setenv", &builtin_setenv}, diff --git a/42sh/src/lexer/lexer_number.c b/42sh/src/lexer/lexer_number.c index b5cffe2d..722f1c1e 100644 --- a/42sh/src/lexer/lexer_number.c +++ b/42sh/src/lexer/lexer_number.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:06:45 by jhalford #+# #+# */ -/* Updated: 2017/01/10 14:29:46 by jhalford ### ########.fr */ +/* Updated: 2017/01/22 17:40:20 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,7 +18,6 @@ int lexer_number(t_list **alst, char *str) t_lexstate state; token = (*alst)->content; - DG("*str=%c", *str); if ((state = get_lexer_state(str))) return (ft_tokenize(alst, str, state)); if (*str == '>') diff --git a/42sh/src/lexer/token_append.c b/42sh/src/lexer/token_append.c index c08e5c5a..2d2bbae1 100644 --- a/42sh/src/lexer/token_append.c +++ b/42sh/src/lexer/token_append.c @@ -6,19 +6,21 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/11 17:18:42 by jhalford #+# #+# */ -/* Updated: 2016/11/11 17:47:15 by jhalford ### ########.fr */ +/* Updated: 2017/01/22 16:44:15 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" +#define TOKEN_INCR 10 + int token_append(t_token *token, char c) { if ((int)ft_strlen(token->data) >= token->size) { - token->data = (char *)ft_realloc(token->data, token->size + 10); - token->size += 10; + token->data = (char *)ft_realloc(token->data, token->size + TOKEN_INCR); + token->size += TOKEN_INCR - 1; } - ft_strcat(token->data, (char[2]){c, '\0'}); + ft_strcat(token->data, (char[]){c, 0}); return (0); } diff --git a/42sh/src/line-editing/curs_setup.c b/42sh/src/line-editing/curs_setup.c index c9842a54..7fcc6a7d 100644 --- a/42sh/src/line-editing/curs_setup.c +++ b/42sh/src/line-editing/curs_setup.c @@ -6,7 +6,7 @@ /* By: sbenning +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/08 16:36:43 by sbenning #+# #+# */ -/* Updated: 2017/01/11 13:55:42 by jhalford ### ########.fr */ +/* Updated: 2017/01/21 18:39:47 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/curs_term_setup.c b/42sh/src/line-editing/curs_term_setup.c index 9a18bc72..ad10548b 100644 --- a/42sh/src/line-editing/curs_term_setup.c +++ b/42sh/src/line-editing/curs_term_setup.c @@ -6,7 +6,7 @@ /* By: sbenning +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/08 16:50:26 by sbenning #+# #+# */ -/* Updated: 2017/01/11 13:55:40 by jhalford ### ########.fr */ +/* Updated: 2017/01/21 18:40:44 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/ft_readline.c b/42sh/src/line-editing/ft_readline.c index 90620a39..857935ed 100644 --- a/42sh/src/line-editing/ft_readline.c +++ b/42sh/src/line-editing/ft_readline.c @@ -6,7 +6,7 @@ /* By: sbenning +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/08 18:03:48 by sbenning #+# #+# */ -/* Updated: 2017/01/11 17:35:14 by jhalford ### ########.fr */ +/* Updated: 2017/01/22 18:15:18 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index fafa3727..d398462b 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/20 15:23:46 by jhalford ### ########.fr */ +/* Updated: 2017/01/21 18:04:06 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From a8471df8a7891a54e084ba319675a32d82d4e314 Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Mon, 23 Jan 2017 15:18:20 +0100 Subject: [PATCH 11/67] quelques bugs resolus (longue ligne ne bug plus). pas encore totalement stable --- 42sh/includes/ft_readline.h | 9 ++-- 42sh/src/line-editing/get_touch.c | 5 +- 42sh/src/line-editing/get_touch_toolz_2.c | 25 ++++++---- 42sh/src/line-editing/line_return_toolz.c | 38 +-------------- 42sh/src/line-editing/print_and_del.c | 45 +++++++++++------- 42sh/src/line-editing/tool_line_2.c | 18 +++++-- 42sh/src/line-editing/toolz_parseur.c | 4 +- 42sh/src/line-editing/toolz_termcaps.c | 57 ++--------------------- 8 files changed, 76 insertions(+), 125 deletions(-) diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index ee0dcca6..4e30cff8 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ft_readline.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ +/* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 18:02:25 by sbenning #+# #+# */ -/* Updated: 2017/01/22 14:34:41 by gwojda ### ########.fr */ +/* Created: 2017/01/23 10:35:44 by gwojda #+# #+# */ +/* Updated: 2017/01/23 15:14:03 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -62,6 +62,8 @@ typedef struct s_list_history struct s_list_history *next; } t_list_history; +int ft_found_next_char(char *str, size_t i); +void ft_check_end_of_line(char *str, size_t pos); void ft_printall(char *str, size_t *pos); void ft_get_beggin_with_curs(char *str, size_t *pos); void ft_history(char **str, int ret, t_list_history **head, size_t *pos); @@ -115,5 +117,4 @@ void ft_cxv(int ret, size_t *pos, char **str); char *ft_lecture(t_list_history *head); void ft_prompt(void); - #endif diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index 07281fa2..95fe46c5 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/01/22 15:03:13 by gwojda ### ########.fr */ +/* Updated: 2017/01/23 13:32:04 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -53,8 +53,11 @@ char *ft_lecture(t_list_history *head) i = 0; while (42) { + ft_check_end_of_line(str, i); ret = 0; read(0, &ret, sizeof(int)); + if (ret == TOUCHE_F6 && read(0, &ret, sizeof(int)) > 0) + continue ; // if (ret == TOUCHE_TAB) // ret = ft_completion(&str, &i); if (ret == TOUCHE_CTRL_C || ret == TOUCHE_CTRL_D) diff --git a/42sh/src/line-editing/get_touch_toolz_2.c b/42sh/src/line-editing/get_touch_toolz_2.c index 265add6f..8419617e 100644 --- a/42sh/src/line-editing/get_touch_toolz_2.c +++ b/42sh/src/line-editing/get_touch_toolz_2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:43:58 by gwojda #+# #+# */ -/* Updated: 2017/01/21 17:13:55 by gwojda ### ########.fr */ +/* Updated: 2017/01/23 15:17:18 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -47,6 +47,7 @@ void ft_home_end(char *str, int ret, size_t *pos) *pos = 0; ft_current_str(str, *pos); ft_get_next_str(str, pos); + ft_check_end_of_line(str, *pos); if (!str[*pos]) --(*pos); ft_get_beggin_with_curs(str, pos); @@ -61,31 +62,39 @@ void ft_move_term(int ret, size_t *pos, char *str) { if (str[*pos] == '\n') { - tmp = *pos - 1; - ft_get_beggin_with_curs(str, &tmp); + if (*pos) + { + tmp = *pos - 1; + ft_get_beggin_with_curs(str, &tmp); + } + //si premiere ligne ne contient que \n, puis fleche droite -> decalage// ft_puttermcaps("cd"); ++(*pos); ft_current_str(str, *pos); ft_get_next_str(str, pos); if (!str[*pos]) --(*pos); + ++(*pos); ft_get_beggin_with_curs(str, pos); + if (*pos > 0 && str[*pos - 1] == '\n') + ft_puttermcaps("nd"); } else { ft_putchar(str[*pos]); ++(*pos); } - if (ft_nb_last_line(str, *pos) == ft_size_term() - 1) - { - ft_putchar(' '); - ft_putchar('\b'); - } } else if (ret == FLECHE_GAUCHE && *pos > 0) { if (str[*pos - 1] == '\n') { + if (*pos - 1 == 0) + { + ft_puttermcaps("cd"); + --(*pos); + return ; + } ft_puttermcaps("cd"); (*pos) -= 2; ft_get_beggin(str, pos); diff --git a/42sh/src/line-editing/line_return_toolz.c b/42sh/src/line-editing/line_return_toolz.c index 7a2e60ef..454fe978 100644 --- a/42sh/src/line-editing/line_return_toolz.c +++ b/42sh/src/line-editing/line_return_toolz.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/06 14:32:12 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:42:54 by gwojda ### ########.fr */ +/* Updated: 2017/01/23 10:57:17 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -105,39 +105,3 @@ void ft_move_suppr(char *str, size_t pos) } } } - -void ft_curse_move(char *str) -{ - int i; - int count; - int prompt_size; - - prompt_size = data_singleton()->line.prompt_size; - count = 0; - i = 0; - while (str[i]) - { - if (str[i] == '\n') - { - count += ft_nb_line(str, i - 1); - count++; - } - ++i; - } - while (i && str[i] != '\n') - { - ft_putchar('\b'); - --i; - } - if (count) - { - while (count) - { - ft_puttermcaps("up"); - --count; - } - while (--prompt_size + 2) - ft_puttermcaps("nd"); - } - ft_puttermcaps("cd"); -} diff --git a/42sh/src/line-editing/print_and_del.c b/42sh/src/line-editing/print_and_del.c index 8493e3c9..1183b994 100644 --- a/42sh/src/line-editing/print_and_del.c +++ b/42sh/src/line-editing/print_and_del.c @@ -6,12 +6,23 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:02:43 by gwojda #+# #+# */ -/* Updated: 2017/01/22 15:02:02 by gwojda ### ########.fr */ +/* Updated: 2017/01/23 15:13:57 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" +int ft_found_next_char(char *str, size_t i) +{ + while (str[i]) + { + if (str[i] == '\n') + return (1); + ++i; + } + return (0); +} + void ft_print(char **str, int ret, size_t *i) { int j; @@ -30,23 +41,27 @@ void ft_print(char **str, int ret, size_t *i) void ft_suppr(char **str, size_t *i) { size_t tmp; + char boolean; + boolean = 0; + if ((*str)[*i - 1] != '\n') + boolean = 1; --(*i); tmp = *i; + if (boolean) + ft_get_beggin_with_curs(*str, i); + else + ft_get_beggin(*str, i); *str = ft_remove_imput((*str), tmp); - ft_get_beggin_with_curs(*str, i); ft_puttermcaps("cd"); ft_current_str(*str, *i); ft_get_next_str(*str, i); -/* if (ft_nb_last_line(*str, *i) == ft_size_term() - 2) - { - ft_puttermcaps("nd"); - ft_putnc('\b', *i - tmp); - } - else - ft_putnc('\b', *i - tmp + 1);*/ + if (str[*i] && ft_found_next_char(*str, *i)) + ++(*i); ft_putnc('\b', *i - tmp); (*i) = tmp; + if (ft_strlen(*str) == 0) + *str = NULL; } void ft_del(char **str, size_t *i) @@ -55,18 +70,14 @@ void ft_del(char **str, size_t *i) tmp = *i; *str = ft_remove_imput((*str), tmp); - --(*i); + if (*i) + --(*i); ft_get_beggin_with_curs(*str, i); ft_puttermcaps("cd"); ft_current_str(*str, *i); ft_get_next_str(*str, i); -/* if (ft_nb_last_line(*str, *i) == ft_size_term() - 2) - { - ft_puttermcaps("nd"); - ft_putnc('\b', *i - tmp); - } - else - ft_putnc('\b', *i - tmp + 1);*/ + if (str[*i]) + ++(*i); ft_putnc('\b', *i - tmp); (*i) = tmp; } diff --git a/42sh/src/line-editing/tool_line_2.c b/42sh/src/line-editing/tool_line_2.c index e97c1458..8b5b5af5 100644 --- a/42sh/src/line-editing/tool_line_2.c +++ b/42sh/src/line-editing/tool_line_2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 19:07:52 by gwojda #+# #+# */ -/* Updated: 2017/01/22 17:20:05 by gwojda ### ########.fr */ +/* Updated: 2017/01/23 11:31:36 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -29,13 +29,12 @@ void ft_printall(char *str, size_t *pos) size_t pos_tmp; int ret; + ret = 0; if (read(0, &ret, sizeof(int)) == -1 || ret != 126 || !str) return ; ft_clear_window(); ft_prompt(); - sleep(1); pos_tmp = *pos; - ft_putstr("\033[31m"); ft_puttermcaps("cd"); ft_puttermcaps("sc"); @@ -64,6 +63,19 @@ void ft_printall(char *str, size_t *pos) *pos = pos_tmp; } +void ft_check_end_of_line(char *str, size_t pos) +{ + if (!str) + return ; + //ft_printf("\n\n\nnd = %d\n\n", ft_nb_last_line(str, pos)); + if (ft_nb_last_line(str, pos) == 0) + { + //ft_printf("\n\n\nhere\n\n"); + ft_putchar(' '); + ft_puttermcaps("le"); + } +} + void ft_get_beggin_with_curs(char *str, size_t *pos) { while ((*pos) && str[(*pos)] != '\n') diff --git a/42sh/src/line-editing/toolz_parseur.c b/42sh/src/line-editing/toolz_parseur.c index 465063d8..cd2c8d34 100644 --- a/42sh/src/line-editing/toolz_parseur.c +++ b/42sh/src/line-editing/toolz_parseur.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/16 16:14:46 by gwojda #+# #+# */ -/* Updated: 2017/01/22 11:58:06 by gwojda ### ########.fr */ +/* Updated: 2017/01/23 13:40:41 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -59,7 +59,7 @@ void ft_found_prev_word(char *str, size_t *pos) i = 0; if (!*pos) return ; - if (!(str[*pos] == '\n' || str[*pos] == ' ')) + if (str[*pos - 1] != '\n' && !(str[*pos] == '\n' || str[*pos] == ' ')) { ft_puttermcaps("le"); --(*pos); diff --git a/42sh/src/line-editing/toolz_termcaps.c b/42sh/src/line-editing/toolz_termcaps.c index d33c3d35..6892ac83 100644 --- a/42sh/src/line-editing/toolz_termcaps.c +++ b/42sh/src/line-editing/toolz_termcaps.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/08 12:35:11 by gwojda #+# #+# */ -/* Updated: 2017/01/21 14:31:47 by gwojda ### ########.fr */ +/* Updated: 2017/01/23 11:23:23 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -32,63 +32,14 @@ int ft_get_size_prev(char *str, size_t pos) return (len); } -int ft_nb_line(char *str, size_t pos) -{ - int len; - - len = 0; - if (!ft_get_ind_prev(str, pos)) - len += data_singleton()->line.prompt_size; - len += ft_get_size_prev(str, pos); - return (len / ft_size_term()); -} - int ft_nb_last_line(char *str, size_t pos) { int len; - len = 0; + len = 1; if (str[pos] == '\n') --pos; - if (!ft_get_ind_prev(str, pos)) - len += data_singleton()->line.prompt_size; + len += data_singleton()->line.prompt_size; len += ft_get_size_prev(str, pos); - return (len % ft_size_term()); -} - -void ft_move_to_beggin(char *str, size_t *pos) -{ - size_t str_len; - int prompt_size; - - prompt_size = data_singleton()->line.prompt_size; - str_len = 0; - if (!str) - return ; - if (str[*pos] == '\n') - { - ft_putchar('\b'); - --(*pos); - } - while (*pos && str[*pos] != '\n') - { - ft_putchar('\b'); - --(*pos); - } - while (*pos && --prompt_size + 2) - ft_puttermcaps("nd"); - while (*pos) - { - if (str[*pos] == '\n') - { - ft_printf("\n\n\nft_nb_line(str, *pos - 1) = %d\n\n\n", ft_nb_line(str, *pos - 1)); - str_len = ft_nb_line(str, *pos - 1) + 1; - while (str_len) - { - ft_puttermcaps("up"); - --str_len; - } - } - --(*pos); - } + return ((len) ? len % ft_size_term() : -1); } From c0d7d5cfd071a8ec948d93ac4f096ffe0b6ace3d Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Tue, 24 Jan 2017 14:42:08 +0100 Subject: [PATCH 12/67] =?UTF-8?q?Bugs=20resolus,=20prevenez=20moi=20si=20v?= =?UTF-8?q?ous=20en=20trouvez=20que=20j'ai=20rat=C3=A9=20!=20Je=20passe=20?= =?UTF-8?q?a=20l'affichage=20de=20l'historique=20:)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/src/line-editing/copy_cut_paste.c | 20 ++++++++++++++------ 42sh/src/line-editing/get_touch_toolz.c | 5 +++-- 42sh/src/line-editing/get_touch_toolz_2.c | 5 +---- 42sh/src/line-editing/print_and_del.c | 17 ++++++++++++----- 42sh/src/line-editing/tool_line.c | 6 +++--- 42sh/src/line-editing/tool_line_2.c | 12 +++++++----- 42sh/src/line-editing/toolz_parseur.c | 5 +++-- 42sh/src/line-editing/toolz_termcaps.c | 4 ++-- 8 files changed, 45 insertions(+), 29 deletions(-) diff --git a/42sh/src/line-editing/copy_cut_paste.c b/42sh/src/line-editing/copy_cut_paste.c index f74d7a6a..4aa21239 100644 --- a/42sh/src/line-editing/copy_cut_paste.c +++ b/42sh/src/line-editing/copy_cut_paste.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 12:45:06 by gwojda #+# #+# */ -/* Updated: 2017/01/22 14:10:31 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 14:28:57 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,14 +26,18 @@ static void ft_v(char *tmp, size_t *pos, char **str) *str = ft_realloc_imput(*str, tmp[i], *pos + i); ++i; } + sleep(1); if (*pos) { --(*pos); ft_get_beggin_with_curs(*str, pos); } + sleep(1); ft_current_str(*str, *pos); + sleep(1); ft_get_next_str(*str, pos); - ft_putnc('\b', *pos - tmp_pos); + sleep(1); + ft_putnc('\b', *pos - tmp_pos + 1); (*pos) = tmp_pos; } @@ -44,15 +48,18 @@ static char *ft_strdupi_space(char const *s) i = 0; while (s[i] && s[i] != '\n') - i++; + ++i; + if (s[i] == '\n') + ++i; str = (char *)malloc(sizeof(char) * (i + 1)); if (str) { - str[i--] = '\0'; + str[i] = '\0'; + --i; while (i >= 0) { str[i] = s[i]; - i--; + --i; } } return (str); @@ -87,7 +94,8 @@ void ft_cxv(int ret, size_t *pos, char **str) { if (tmp) ft_strdel(&tmp); - tmp = ft_strdupi_space(&(*str)[(*pos)]); + tmp = ft_strdupi_space((*str) + (*pos)); + ft_printf("\n\ntmp = \"%s\"\n\n", tmp); } else if (ret == TOUCHE_OPT_V) ft_v(tmp, pos, str); diff --git a/42sh/src/line-editing/get_touch_toolz.c b/42sh/src/line-editing/get_touch_toolz.c index cd304a95..1f45a11c 100644 --- a/42sh/src/line-editing/get_touch_toolz.c +++ b/42sh/src/line-editing/get_touch_toolz.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:42:54 by gwojda #+# #+# */ -/* Updated: 2017/01/21 11:40:51 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 10:21:48 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,7 +16,8 @@ void ft_history_2(char **str, int ret, t_list_history **head, size_t *pos) { if (*str) { - --(*pos); + if (*pos) + --(*pos); ft_get_beggin_with_curs(*str, pos); ft_puttermcaps("cd"); *pos = 0; diff --git a/42sh/src/line-editing/get_touch_toolz_2.c b/42sh/src/line-editing/get_touch_toolz_2.c index 8419617e..768a1606 100644 --- a/42sh/src/line-editing/get_touch_toolz_2.c +++ b/42sh/src/line-editing/get_touch_toolz_2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:43:58 by gwojda #+# #+# */ -/* Updated: 2017/01/23 15:17:18 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 11:22:42 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -74,10 +74,7 @@ void ft_move_term(int ret, size_t *pos, char *str) ft_get_next_str(str, pos); if (!str[*pos]) --(*pos); - ++(*pos); ft_get_beggin_with_curs(str, pos); - if (*pos > 0 && str[*pos - 1] == '\n') - ft_puttermcaps("nd"); } else { diff --git a/42sh/src/line-editing/print_and_del.c b/42sh/src/line-editing/print_and_del.c index 1183b994..900e0dfa 100644 --- a/42sh/src/line-editing/print_and_del.c +++ b/42sh/src/line-editing/print_and_del.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:02:43 by gwojda #+# #+# */ -/* Updated: 2017/01/23 15:13:57 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 14:40:21 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -49,14 +49,19 @@ void ft_suppr(char **str, size_t *i) --(*i); tmp = *i; if (boolean) + { ft_get_beggin_with_curs(*str, i); + *str = ft_remove_imput((*str), tmp); + } else + { + *str = ft_remove_imput((*str), tmp); ft_get_beggin(*str, i); - *str = ft_remove_imput((*str), tmp); + } ft_puttermcaps("cd"); ft_current_str(*str, *i); ft_get_next_str(*str, i); - if (str[*i] && ft_found_next_char(*str, *i)) + if (*i && (*str)[*i] && ft_found_next_char(*str, *i)) ++(*i); ft_putnc('\b', *i - tmp); (*i) = tmp; @@ -71,12 +76,14 @@ void ft_del(char **str, size_t *i) tmp = *i; *str = ft_remove_imput((*str), tmp); if (*i) + { --(*i); - ft_get_beggin_with_curs(*str, i); + ft_get_beggin_with_curs(*str, i); + } ft_puttermcaps("cd"); ft_current_str(*str, *i); ft_get_next_str(*str, i); - if (str[*i]) + if ((*str)[*i]) ++(*i); ft_putnc('\b', *i - tmp); (*i) = tmp; diff --git a/42sh/src/line-editing/tool_line.c b/42sh/src/line-editing/tool_line.c index ac47c2f7..b0b116cb 100644 --- a/42sh/src/line-editing/tool_line.c +++ b/42sh/src/line-editing/tool_line.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 18:20:23 by gwojda #+# #+# */ -/* Updated: 2017/01/21 17:04:13 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 11:36:56 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,7 +16,7 @@ void ft_get_beggin(char *str, size_t *pos) { while ((*pos) && str[(*pos)] != '\n') --(*pos); - if (str[(*pos)] == '\n') + if (*pos && str[(*pos)] == '\n') ++(*pos); } @@ -24,7 +24,7 @@ void ft_get_next_str(char *str, size_t *pos) { while (str[(*pos)] && str[(*pos)] != '\n') ++(*pos); - if (str[(*pos)] == '\n') + if (*pos && str[(*pos)] == '\n') --(*pos); } diff --git a/42sh/src/line-editing/tool_line_2.c b/42sh/src/line-editing/tool_line_2.c index 8b5b5af5..cffc021c 100644 --- a/42sh/src/line-editing/tool_line_2.c +++ b/42sh/src/line-editing/tool_line_2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 19:07:52 by gwojda #+# #+# */ -/* Updated: 2017/01/23 11:31:36 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 11:37:27 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -53,13 +53,15 @@ void ft_printall(char *str, size_t *pos) ft_puttermcaps("rc"); ft_puttermcaps("cd"); ft_putstr("\033[37m"); - --(*pos); + if (*pos) + --(*pos); ft_get_beggin(str, pos); ft_current_str(str, *pos); ft_get_next_str(str, pos); - if (!str[*pos]) + if (*pos && !str[*pos]) --(*pos); - ft_putnc('\b', *pos - pos_tmp + 1); + if (*pos) + ft_putnc('\b', *pos - pos_tmp + 1); *pos = pos_tmp; } @@ -83,7 +85,7 @@ void ft_get_beggin_with_curs(char *str, size_t *pos) --(*pos); ft_puttermcaps("le"); } - if (!*pos) + if (!*pos && str[(*pos)] != '\n') ft_puttermcaps("le"); if (str[(*pos)] == '\n') ++(*pos); diff --git a/42sh/src/line-editing/toolz_parseur.c b/42sh/src/line-editing/toolz_parseur.c index cd2c8d34..1f29046a 100644 --- a/42sh/src/line-editing/toolz_parseur.c +++ b/42sh/src/line-editing/toolz_parseur.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/16 16:14:46 by gwojda #+# #+# */ -/* Updated: 2017/01/23 13:40:41 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 14:14:31 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -128,7 +128,8 @@ void ft_found_next_word(char *str, size_t *pos) (*pos) += 2; ft_current_str(str, *pos); ft_get_next_str(str, pos); - --(*pos); + if (!str[*pos]) + --(*pos); ft_get_beggin_with_curs(str, pos); } else diff --git a/42sh/src/line-editing/toolz_termcaps.c b/42sh/src/line-editing/toolz_termcaps.c index 6892ac83..901b026e 100644 --- a/42sh/src/line-editing/toolz_termcaps.c +++ b/42sh/src/line-editing/toolz_termcaps.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/08 12:35:11 by gwojda #+# #+# */ -/* Updated: 2017/01/23 11:23:23 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 11:19:34 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -37,7 +37,7 @@ int ft_nb_last_line(char *str, size_t pos) int len; len = 1; - if (str[pos] == '\n') + if (pos && str[pos] == '\n') --pos; len += data_singleton()->line.prompt_size; len += ft_get_size_prev(str, pos); From 5d09281cb18b8d154595c4c5ecadafb52a7f2fc8 Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Tue, 24 Jan 2017 15:38:10 +0100 Subject: [PATCH 13/67] Ajout du fichier pour afficher l'historique --- 42sh/includes/ft_readline.h | 18 ++++++++------ 42sh/src/line-editing/builtin_history.c | 33 +++++++++++++++++++++++++ 42sh/src/line-editing/list_toolz.c | 4 ++- 42sh/src/line-editing/readline.c | 4 ++- 42sh/src/line-editing/toolz2.c | 10 +++++++- 42sh/src/main/main.c | 2 +- 6 files changed, 60 insertions(+), 11 deletions(-) create mode 100644 42sh/src/line-editing/builtin_history.c diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index 4e30cff8..42a110af 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/23 10:35:44 by gwojda #+# #+# */ -/* Updated: 2017/01/23 15:14:03 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 15:14:05 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -49,12 +49,6 @@ # define TOUCHE_F5 892427035 # define TOUCHE_F6 925981467 -typedef struct s_line -{ - char *input; - int prompt_size; -} t_line; - typedef struct s_list_history { char *str; @@ -62,6 +56,16 @@ typedef struct s_list_history struct s_list_history *next; } t_list_history; +typedef struct s_line +{ + char *input; + int prompt_size; + int list_size; + t_list_history *list_end; +} t_line; + +void ft_history_builtin(void); +int ft_nbr_len(int nbr); int ft_found_next_char(char *str, size_t i); void ft_check_end_of_line(char *str, size_t pos); void ft_printall(char *str, size_t *pos); diff --git a/42sh/src/line-editing/builtin_history.c b/42sh/src/line-editing/builtin_history.c new file mode 100644 index 00000000..869091a8 --- /dev/null +++ b/42sh/src/line-editing/builtin_history.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* builtin_history.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/24 14:54:53 by gwojda #+# #+# */ +/* Updated: 2017/01/24 15:26:28 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_history_builtin(void) +{ + size_t len; + t_list_history *head; + + head = data_singleton()->line.list_end; + len = 1; + if (!head) + return ; + if (head && !head->str) + head = head->next; + while (head && head->str) + { + ft_putnc(' ', ft_nbr_len(data_singleton()->line.list_size) - ft_nbr_len(len)); + ft_printf("%zu %s\n", len, head->str); + ++len; + head = head->nextm; + } +} diff --git a/42sh/src/line-editing/list_toolz.c b/42sh/src/line-editing/list_toolz.c index 47a389a2..86df0fe5 100644 --- a/42sh/src/line-editing/list_toolz.c +++ b/42sh/src/line-editing/list_toolz.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/17 11:37:47 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:42:57 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 15:19:04 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,6 +30,7 @@ t_list_history *ft_create_history_list(char *str) void ft_push_back_history(t_list_history **head, t_list_history *new) { + ++(data_singleton()->line.list_size); if (!*head) { *head = new; @@ -38,6 +39,7 @@ void ft_push_back_history(t_list_history **head, t_list_history *new) (*head)->next = ft_create_history_list(NULL); (*head)->next->prev = (*head); (*head) = (*head)->next; + (data_singleton())->line.list_end = new; return ; } while ((*head)->next) diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 5e783640..121d1930 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/01/22 14:57:05 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 15:29:59 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,6 +16,8 @@ void ft_init_line(void) { data_singleton()->line.input = NULL; data_singleton()->line.prompt_size = 0; + data_singleton()->line.list_size = 0; + data_singleton()->line.list_end = NULL; } struct termios *ft_save_stats_term(void) diff --git a/42sh/src/line-editing/toolz2.c b/42sh/src/line-editing/toolz2.c index 64b2d493..9be15d3e 100644 --- a/42sh/src/line-editing/toolz2.c +++ b/42sh/src/line-editing/toolz2.c @@ -6,12 +6,20 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/07 11:00:28 by gwojda #+# #+# */ -/* Updated: 2017/01/20 12:36:28 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 15:00:16 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" +int ft_nbr_len(int nbr) +{ + if (nbr % 10 != nbr) + return (ft_nbr_len(nbr / 10) + 1); + else + return (1); +} + void ft_puttermcaps(char *str) { char *res; diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 0a8c2043..ce0eae68 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/19 16:46:55 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 15:04:06 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ From 691eef68006eafab0f9d1c80d6d4db32b06d3c4b Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Tue, 24 Jan 2017 17:22:56 +0100 Subject: [PATCH 14/67] =?UTF-8?q?Ajout=20de=20la=20gestion=20des=20heredoc?= =?UTF-8?q?s=20(pas=20test=C3=A9=20a=20fond,=20push=20avant=20de=20partir)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/includes/ft_readline.h | 4 +- 42sh/src/line-editing/builtin_history.c | 4 +- 42sh/src/line-editing/heredoc.c | 71 +++++++++++++++++++++++++ 42sh/src/line-editing/readline.c | 14 ++--- 4 files changed, 84 insertions(+), 9 deletions(-) create mode 100644 42sh/src/line-editing/heredoc.c diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index 42a110af..dd5c0698 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/23 10:35:44 by gwojda #+# #+# */ -/* Updated: 2017/01/24 15:14:05 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 16:42:30 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -62,8 +62,10 @@ typedef struct s_line int prompt_size; int list_size; t_list_history *list_end; + t_list_history *list_beg; } t_line; +void ft_check_heredoc(char **str); void ft_history_builtin(void); int ft_nbr_len(int nbr); int ft_found_next_char(char *str, size_t i); diff --git a/42sh/src/line-editing/builtin_history.c b/42sh/src/line-editing/builtin_history.c index 869091a8..d3e95a78 100644 --- a/42sh/src/line-editing/builtin_history.c +++ b/42sh/src/line-editing/builtin_history.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/24 14:54:53 by gwojda #+# #+# */ -/* Updated: 2017/01/24 15:26:28 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 16:44:13 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,6 +28,6 @@ void ft_history_builtin(void) ft_putnc(' ', ft_nbr_len(data_singleton()->line.list_size) - ft_nbr_len(len)); ft_printf("%zu %s\n", len, head->str); ++len; - head = head->nextm; + head = head->next; } } diff --git a/42sh/src/line-editing/heredoc.c b/42sh/src/line-editing/heredoc.c new file mode 100644 index 00000000..b2411c88 --- /dev/null +++ b/42sh/src/line-editing/heredoc.c @@ -0,0 +1,71 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* heredoc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/24 15:52:34 by gwojda #+# #+# */ +/* Updated: 2017/01/24 17:07:21 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +char *ft_get_next_word(char *str) +{ + int j; + int k; + + j = 0; + k = 0; + while (str[j] && str[j] == ' ') + ++j; + while (str[j + k] && str[j + k] != ' ') + ++k; + return (ft_strndup(str + j, k)); +} + +void ft_check_heredoc(char **str) +{ + int i; + char boolean; + char *end; + char *tmp; + char *tmp2; + + i = 0; + end = NULL; + boolean = 0; + if (!*str) + return ; + while ((*str)[i]) + { + if ((*str)[i] == '<' && !ft_strncmp(*str + i, "<<", 2)) + { + if ((*str)[i + 1] == '<' && (*str)[i + 2]) + end = ft_get_next_word(*str + i + 2); + else + return ; + } + ++i; + } + if (!end) + return ; + while (!boolean) + { + ft_putstr("heredoc> "); + data_singleton()->line.prompt_size = 9; + tmp = *str; + *str = ft_strjoin(*str, "\n"); + free(tmp); + tmp = *str; + tmp2 = ft_lecture(data_singleton()->line.list_beg); + if (!ft_strcmp(end, tmp2)) + boolean = 1; + *str = ft_strjoin(tmp, tmp2); + free(tmp); + free(tmp2); + ft_putchar('\n'); + } +} diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 121d1930..fc124fb1 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/01/24 15:29:59 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 16:58:30 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,6 +18,7 @@ void ft_init_line(void) data_singleton()->line.prompt_size = 0; data_singleton()->line.list_size = 0; data_singleton()->line.list_end = NULL; + data_singleton()->line.list_beg = NULL; } struct termios *ft_save_stats_term(void) @@ -38,6 +39,7 @@ struct termios *ft_stats_term_termcaps(void) if (!term) { + ft_init_line(); term = (struct termios *)malloc(sizeof(struct termios)); tcgetattr(0, term); (*term).c_lflag &= ~(ECHO | ICANON | ISIG); @@ -49,16 +51,16 @@ struct termios *ft_stats_term_termcaps(void) int ft_readline(void) { - static t_list_history *head = NULL; - if (tcsetattr(0, TCSANOW, ft_stats_term_termcaps()) == -1) return (-1); ft_prompt(); - data_singleton()->line.input = ft_lecture(head); + data_singleton()->line.input = ft_lecture(data_singleton()->line.list_beg); ft_putstr("\n"); - ft_check_quotes(&data_singleton()->line.input, head); + ft_check_quotes(&data_singleton()->line.input, data_singleton()->line.list_beg); + ft_check_heredoc(&data_singleton()->line.input); + ft_printf("\nend = %s\n\n", data_singleton()->line.input); if (data_singleton()->line.input) - ft_push_back_history(&head, ft_create_history_list(data_singleton()->line.input)); + ft_push_back_history(&data_singleton()->line.list_beg, ft_create_history_list(data_singleton()->line.input)); if (tcsetattr(0, TCSANOW, ft_save_stats_term()) == -1) return (-1); return (0); From 110b2580c04aa9a9d041acbf8ed8daa8eeb76f31 Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Tue, 24 Jan 2017 17:23:28 +0100 Subject: [PATCH 15/67] =?UTF-8?q?oubli=C3=A9=20de=20retirer=20une=20ligne?= =?UTF-8?q?=20de=20debug=20x)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/src/line-editing/readline.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index fc124fb1..cbab0550 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/01/24 16:58:30 by gwojda ### ########.fr */ +/* Updated: 2017/01/24 17:23:11 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -58,7 +58,6 @@ int ft_readline(void) ft_putstr("\n"); ft_check_quotes(&data_singleton()->line.input, data_singleton()->line.list_beg); ft_check_heredoc(&data_singleton()->line.input); - ft_printf("\nend = %s\n\n", data_singleton()->line.input); if (data_singleton()->line.input) ft_push_back_history(&data_singleton()->line.list_beg, ft_create_history_list(data_singleton()->line.input)); if (tcsetattr(0, TCSANOW, ft_save_stats_term()) == -1) From 485f1bb6191aac03d717188132b100654e653edc Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Wed, 25 Jan 2017 15:12:59 +0100 Subject: [PATCH 16/67] gestion des --- 42sh/includes/ft_readline.h | 10 +- 42sh/src/line-editing/ft_split_whitespaces.c | 4 +- 42sh/src/line-editing/get_touch.c | 11 +- 42sh/src/line-editing/history_parsing.c | 122 ++++++++++++++++++ 42sh/src/line-editing/history_parsing_toolz.c | 94 ++++++++++++++ 42sh/src/line-editing/readline.c | 7 +- 42sh/src/line-editing/toolz_parseur.c | 4 +- 7 files changed, 244 insertions(+), 8 deletions(-) create mode 100644 42sh/src/line-editing/history_parsing.c create mode 100644 42sh/src/line-editing/history_parsing_toolz.c diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index dd5c0698..f47ca6be 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/23 10:35:44 by gwojda #+# #+# */ -/* Updated: 2017/01/24 16:42:30 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 14:37:32 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -49,6 +49,8 @@ # define TOUCHE_F5 892427035 # define TOUCHE_F6 925981467 +# define HIST 1 + typedef struct s_list_history { char *str; @@ -61,10 +63,16 @@ typedef struct s_line char *input; int prompt_size; int list_size; + char opt; t_list_history *list_end; t_list_history *list_beg; } t_line; +void ft_realloc_str_history_2(char **str, size_t pos, char *s); +void ft_realloc_str_history(char **str, size_t pos + , int nb_his, int len); +char *ft_strdupi_w(char const *s); +void ft_history_parsing(); void ft_check_heredoc(char **str); void ft_history_builtin(void); int ft_nbr_len(int nbr); diff --git a/42sh/src/line-editing/ft_split_whitespaces.c b/42sh/src/line-editing/ft_split_whitespaces.c index ccca5b34..86cb9aaf 100644 --- a/42sh/src/line-editing/ft_split_whitespaces.c +++ b/42sh/src/line-editing/ft_split_whitespaces.c @@ -6,13 +6,13 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/02 17:52:52 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:42:38 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 14:10:37 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -static char *ft_strdupi_w(char const *s) +char *ft_strdupi_w(char const *s) { int i; char *str; diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index 95fe46c5..14104d63 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/01/23 13:32:04 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 14:39:59 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -50,7 +50,16 @@ char *ft_lecture(t_list_history *head) size_t i; str = NULL; + if (data_singleton()->line.opt & HIST) + str = data_singleton()->line.input; i = 0; + if (str) + { + ft_current_str(str, i); + ft_get_next_str(str, &i); + if (str[i]) + ++i; + } while (42) { ft_check_end_of_line(str, i); diff --git a/42sh/src/line-editing/history_parsing.c b/42sh/src/line-editing/history_parsing.c new file mode 100644 index 00000000..7e5fdecd --- /dev/null +++ b/42sh/src/line-editing/history_parsing.c @@ -0,0 +1,122 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* history_parsing.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/25 11:39:47 by gwojda #+# #+# */ +/* Updated: 2017/01/25 15:05:04 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +static char *ft_strget_history(char *str) +{ + t_list_history *list; + size_t i; + char *tmp; + + list = data_singleton()->line.list_beg; + if (!list) + return (NULL); + if (!list->str) + list = list->prev; + while (list->str) + { + tmp = list->str; + i = 0; + while (tmp[i]) + { + if (ft_strlen(tmp + i) >= ft_strlen(str) + && !ft_strncmp(tmp + i, str, ft_strlen(str))) + return (tmp); + ++i; + } + list = list->prev; + } + return (list->str); +} + +void ft_realloc_str_history_3(char **str, size_t pos, char *s) +{ + char *new_str; + char *new_str2; + char *new_str3; + + if (!*str) + return ; + new_str = ft_strndup(*str, pos); + new_str3 = ft_strget_history(s); + if (new_str3) + { + new_str2 = ft_strjoin(new_str, new_str3); + free(new_str); + new_str3 = ft_strjoin(new_str2, (*str) + pos + ft_strlen(s) + 2); + free(new_str2); + } + else + new_str3 = ft_strjoin(new_str, (*str) + pos + ft_strlen(s) + 2); + free(s); + free(*str); + *str = new_str3; +} + +void ft_history_parsing() +{ + char *str; + int i; + char boolean; + + i = 0; + boolean = 0; + str = data_singleton()->line.input; + if (!str) + return ; + while (str[i]) + { + if (str[i] == '!') + { + boolean = 1; + if (!ft_strncmp("!!", str + i, 2)) + { + ft_realloc_str_history(&(data_singleton()->line.input), i, 0, 2); + ++i; + } + else if (ft_isdigit(str[i + 1])) + { + ft_realloc_str_history(&(data_singleton()->line.input), i, + ft_atoi(str + i + 1), ft_nbr_len(ft_atoi(str + i + 1)) + 1); + i += ft_nbr_len(ft_atoi(str + i + 1)); + } + else if (str[i + 1] == '-') + { + ft_realloc_str_history(&(data_singleton()->line.input), i, + data_singleton()->line.list_size - ft_atoi(str + i + 2), + ft_nbr_len(ft_atoi(str + i + 2)) + 2); + i += ft_nbr_len(ft_atoi(str + i + 2) + 1); + } + else if (str[i + 1] == '?') + ft_realloc_str_history_3(&(data_singleton()->line.input), i, + ft_strdupi_w(str + i + 2)); + else if (str[i + 1] != ' ') + ft_realloc_str_history_2(&(data_singleton()->line.input), i, + ft_strdupi_w(str + i + 1)); + else + boolean = 0; + } + ++i; + } + if (boolean) + { + data_singleton()->line.opt = data_singleton()->line.opt | HIST; + ft_prompt(); + data_singleton()->line.input = ft_lecture(data_singleton()->line.list_beg); + ft_putchar('\n'); + data_singleton()->line.opt = data_singleton()->line.opt | ~HIST; + ft_check_quotes(&data_singleton()->line.input, data_singleton()->line.list_beg); + ft_check_heredoc(&data_singleton()->line.input); + ft_history_parsing(); + } +} diff --git a/42sh/src/line-editing/history_parsing_toolz.c b/42sh/src/line-editing/history_parsing_toolz.c new file mode 100644 index 00000000..31a4b818 --- /dev/null +++ b/42sh/src/line-editing/history_parsing_toolz.c @@ -0,0 +1,94 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* history_parsing_toolz.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/25 14:09:39 by gwojda #+# #+# */ +/* Updated: 2017/01/25 14:41:29 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +static char *ft_nget_histo(size_t nb_his) +{ + t_list_history *list; + size_t i; + + i = 0; + list = data_singleton()->line.list_beg; + if (!list) + return (NULL); + if (!list->str) + list = list->prev; + while (i < nb_his && list->str) + { + list = list->prev; + ++i; + } + return (list->str); +} + +void ft_realloc_str_history(char **str, size_t pos, int nb_his, int len) +{ + char *new_str; + char *new_str2; + char *new_str3; + + if (!*str) + return ; + new_str = ft_strndup(*str, pos); + ft_printf("\n\npos = %d\n\n", len); + new_str3 = ft_nget_histo(nb_his); + if (new_str3) + { + new_str2 = ft_strjoin(new_str, new_str3); + free(new_str); + new_str3 = ft_strjoin(new_str2, (*str) + pos + len); + free(new_str2); + } + else + new_str3 = ft_strjoin(new_str, (*str) + pos + len); + free(*str); + *str = new_str3; +} + +static char *ft_strget_histo(char *str) +{ + t_list_history *list; + + list = data_singleton()->line.list_beg; + if (!list) + return (NULL); + if (!list->str) + list = list->prev; + while (list->str && ft_strncmp(list->str, str, ft_strlen(str))) + list = list->prev; + return (list->str); +} + +void ft_realloc_str_history_2(char **str, size_t pos, char *s) +{ + char *new_str; + char *new_str2; + char *new_str3; + + if (!*str) + return ; + new_str = ft_strndup(*str, pos); + new_str3 = ft_strget_histo(s); + if (new_str3) + { + new_str2 = ft_strjoin(new_str, new_str3); + free(new_str); + new_str3 = ft_strjoin(new_str2, (*str) + pos + ft_strlen(s) + 1); + free(new_str2); + } + else + new_str3 = ft_strjoin(new_str, (*str) + pos + ft_strlen(s) + 1); + free(s); + free(*str); + *str = new_str3; +} diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index cbab0550..6903af81 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/01/24 17:23:11 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 14:37:16 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,6 +19,7 @@ void ft_init_line(void) data_singleton()->line.list_size = 0; data_singleton()->line.list_end = NULL; data_singleton()->line.list_beg = NULL; + data_singleton()->line.opt = 0; } struct termios *ft_save_stats_term(void) @@ -53,11 +54,15 @@ int ft_readline(void) { if (tcsetattr(0, TCSANOW, ft_stats_term_termcaps()) == -1) return (-1); + if (data_singleton()->line.input) + data_singleton()->line.input = NULL; ft_prompt(); data_singleton()->line.input = ft_lecture(data_singleton()->line.list_beg); ft_putstr("\n"); ft_check_quotes(&data_singleton()->line.input, data_singleton()->line.list_beg); ft_check_heredoc(&data_singleton()->line.input); + ft_history_builtin(); + ft_history_parsing(); if (data_singleton()->line.input) ft_push_back_history(&data_singleton()->line.list_beg, ft_create_history_list(data_singleton()->line.input)); if (tcsetattr(0, TCSANOW, ft_save_stats_term()) == -1) diff --git a/42sh/src/line-editing/toolz_parseur.c b/42sh/src/line-editing/toolz_parseur.c index 1f29046a..557027b3 100644 --- a/42sh/src/line-editing/toolz_parseur.c +++ b/42sh/src/line-editing/toolz_parseur.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/16 16:14:46 by gwojda #+# #+# */ -/* Updated: 2017/01/24 14:14:31 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 11:51:30 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,11 +38,9 @@ char *ft_realloc_imput(char *str, int a, size_t pos) char *ft_remove_imput(char *str, size_t pos) { - int i; char *new_str; char *new_str2; - i = 0; if (!str) return (str); new_str = ft_strndup(str, pos); From d3fd7bbdedfe944db49b21304f0debc15d13b4c0 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Wed, 25 Jan 2017 18:13:15 +0100 Subject: [PATCH 17/67] termios stuff added --- 42sh/includes/builtin_read.h | 18 +++++---- 42sh/src/builtin/bt_read_term.c | 49 +++++++++++++++++++++++++ 42sh/src/builtin/builtin_read.c | 25 +++++-------- 42sh/src/line-editing/curs_term_setup.c | 2 +- 42sh/src/line-editing/ft_readline.c | 2 +- 42sh/src/main/main.c | 4 +- 6 files changed, 73 insertions(+), 27 deletions(-) create mode 100644 42sh/src/builtin/bt_read_term.c diff --git a/42sh/includes/builtin_read.h b/42sh/includes/builtin_read.h index feeac781..bda0efe1 100644 --- a/42sh/includes/builtin_read.h +++ b/42sh/includes/builtin_read.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 15:02:39 by jhalford #+# #+# */ -/* Updated: 2017/01/22 18:04:23 by jhalford ### ########.fr */ +/* Updated: 2017/01/25 16:14:16 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -53,12 +53,16 @@ struct s_readopt extern t_readopt g_readtab[]; -int builtin_read(const char *path, char *const av[], char *const envp[]); +int builtin_read(const char *path, char *const av[], char *const envp[]); -int bt_read_getdelim(t_read *data, char *arg); -int bt_read_getnchars(t_read *data, char *arg); -int bt_read_getprompt(t_read *data, char *arg); -int bt_read_gettimeout(t_read *data, char *arg); -int bt_read_getfd(t_read *data, char *arg); +struct termios *bt_read_term(int init); +int bt_read_terminit(t_read *data); +int bt_read_termexit(void); + +int bt_read_getdelim(t_read *data, char *arg); +int bt_read_getnchars(t_read *data, char *arg); +int bt_read_getprompt(t_read *data, char *arg); +int bt_read_gettimeout(t_read *data, char *arg); +int bt_read_getfd(t_read *data, char *arg); #endif diff --git a/42sh/src/builtin/bt_read_term.c b/42sh/src/builtin/bt_read_term.c new file mode 100644 index 00000000..c1313c16 --- /dev/null +++ b/42sh/src/builtin/bt_read_term.c @@ -0,0 +1,49 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* bt_read_term.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/25 16:02:05 by jhalford #+# #+# */ +/* Updated: 2017/01/25 16:14:30 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "builtin.h" + +struct termios *bt_read_term(int init) +{ + static struct termios term; + + if (init) + { + if (tcgetattr(0, &term) < 0) + return (NULL); + } + return (&term); +} + +int bt_read_terminit(t_read *data) +{ + struct termios *term; + + (void)data; + term = bt_read_term(1); + term->c_lflag &= ~(ECHO | ICANON); + term->c_cc[VTIME] = 0; + term->c_cc[VMIN] = 1; + if (tcsetattr(0, TCSANOW, term) < 0) + return (-1); + return (0); +} + +int bt_read_termexit(void) +{ + struct termios *term; + + term = bt_read_term(0); + if (tcsetattr(0, TCSANOW, term) < 0) + return (-1); + return (0); +} diff --git a/42sh/src/builtin/builtin_read.c b/42sh/src/builtin/builtin_read.c index 6377dd48..b7298ddd 100644 --- a/42sh/src/builtin/builtin_read.c +++ b/42sh/src/builtin/builtin_read.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 15:01:45 by jhalford #+# #+# */ -/* Updated: 2017/01/22 18:21:50 by jhalford ### ########.fr */ +/* Updated: 2017/01/25 16:19:50 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -64,16 +64,13 @@ int bt_read_parse(t_read *data, char **av) while (av[i]) { j = 0; - DG("check 1"); if (av[i][j++] == '-') { if (av[i][j] == '-' && av[i][j + 1] == 0) { - DG("check 2"); i++; break ; } - DG("check 3"); while (av[i][j]) { if (!(opt = bt_read_getopt(av[i][j]))) @@ -89,7 +86,6 @@ int bt_read_parse(t_read *data, char **av) } j++; } - DG("check 4"); } else break ; @@ -103,7 +99,7 @@ int builtin_read(const char *path, char *const av[], char *const envp[]) { t_read data; int i; - char buf[5]; + char buf[2]; char *input; int esc; @@ -117,32 +113,29 @@ int builtin_read(const char *path, char *const av[], char *const envp[]) DG("\ndelim=%c\nnchars=%i\nprompt=%s\ntimeout=%i\nfd=%i", data.delim, data.nchars, data.prompt, data.timeout, data.fd); ft_sstrprint(data.names, ','); + bt_read_terminit(&data); i = 0; esc = 0; if (data.prompt) ft_printf(data.prompt); while (42) { - if (read(0, buf, 1) < 0) + if (read(data.fd, buf, 1) < 0) return (1); buf[1] = 0; if (!esc && *buf == data.delim) - { - DG("CHECK 1"); break ; - } - if (*buf == '\n' && !(data.opts & READ_OPT_LR)) - ft_putstr("> "); esc = esc ? 0 : !(data.opts & READ_OPT_LR) && (*buf == '\\'); ft_strappend(&input, buf); + ft_putchar(*buf); i++; - DG("%i:%i", data.opts & READ_OPT_LN, i >= data.nchars); + if (*buf == '\n' && !(data.opts & READ_OPT_LR)) + ft_putstr("> "); if ((data.opts & READ_OPT_LN) && i >= data.nchars) - { - DG("CHECK 2"); break ; - } } + ft_putchar('\n'); DG("input=%s", input); + bt_read_termexit(); return (0); } diff --git a/42sh/src/line-editing/curs_term_setup.c b/42sh/src/line-editing/curs_term_setup.c index ad10548b..396503f0 100644 --- a/42sh/src/line-editing/curs_term_setup.c +++ b/42sh/src/line-editing/curs_term_setup.c @@ -6,7 +6,7 @@ /* By: sbenning +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/08 16:50:26 by sbenning #+# #+# */ -/* Updated: 2017/01/21 18:40:44 by jhalford ### ########.fr */ +/* Updated: 2017/01/25 15:04:17 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/ft_readline.c b/42sh/src/line-editing/ft_readline.c index 857935ed..ff729bde 100644 --- a/42sh/src/line-editing/ft_readline.c +++ b/42sh/src/line-editing/ft_readline.c @@ -6,7 +6,7 @@ /* By: sbenning +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/08 18:03:48 by sbenning #+# #+# */ -/* Updated: 2017/01/22 18:15:18 by jhalford ### ########.fr */ +/* Updated: 2017/01/25 15:04:22 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index d398462b..52b34a99 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/21 18:04:06 by jhalford ### ########.fr */ +/* Updated: 2017/01/25 17:58:18 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -33,7 +33,7 @@ int shell_single_command(char *command) token_print(token); if (ft_parse(&ast, &token)) return (1); - /* btree_print(STDBUG, ast, &ft_putast); */ + btree_print(STDBUG, ast, &ft_putast); /* /1* ft_dprintf(STDBUG, "\n--- INFIX BREAKDOWN ---\n"); *1/ */ /* /1* btree_apply_infix(ast, &ft_putast2); *1/ */ if (ft_exec(&ast)) From 3dd298b9c4b2231c5edbae7a6094db2402b81b77 Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Wed, 25 Jan 2017 20:34:28 +0100 Subject: [PATCH 18/67] debut mise a la norme/nettoyage --- 42sh/includes/ft_readline.h | 9 +- 42sh/src/line-editing/builtin_history.c | 7 +- 42sh/src/line-editing/copy_cut_paste.c | 3 +- 42sh/src/line-editing/ft_split_whitespaces.c | 4 +- 42sh/src/line-editing/get_touch.c | 20 ++- 42sh/src/line-editing/get_touch_toolz.c | 5 +- 42sh/src/line-editing/get_touch_toolz_2.c | 129 +++++++++--------- 42sh/src/line-editing/heredoc.c | 50 ++++--- 42sh/src/line-editing/history_parsing.c | 124 +++++++---------- .../line-editing/history_parsing_toolz_2.c | 64 +++++++++ 42sh/src/line-editing/line_return_toolz.c | 107 --------------- 42sh/src/line-editing/move_to_line.c | 79 ++++++----- 42sh/src/line-editing/print_and_del.c | 25 ++-- 42sh/src/line-editing/prompt.c | 6 +- 42sh/src/line-editing/quotes_gest.c | 14 +- 42sh/src/line-editing/reader.c | 45 +++--- 42sh/src/line-editing/readline.c | 16 ++- 17 files changed, 343 insertions(+), 364 deletions(-) create mode 100644 42sh/src/line-editing/history_parsing_toolz_2.c delete mode 100644 42sh/src/line-editing/line_return_toolz.c diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index f47ca6be..24e96a51 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/23 10:35:44 by gwojda #+# #+# */ -/* Updated: 2017/01/25 14:37:32 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 20:04:33 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -68,6 +68,12 @@ typedef struct s_line t_list_history *list_beg; } t_line; +void ft_realloc_str_history_3(char **str, size_t pos, char *s); +void ft_move_right(size_t *pos, char *str); +void ft_move_left(size_t *pos, char *str); +int ft_put(int nb); +void ft_end(char *str, size_t *pos); +void ft_home(char *str, size_t *pos); void ft_realloc_str_history_2(char **str, size_t pos, char *s); void ft_realloc_str_history(char **str, size_t pos , int nb_his, int len); @@ -123,7 +129,6 @@ void ft_move_suppr(char *str, size_t pos); void ft_move_dell(char *str, size_t pos); void ft_move_to_word(int ret, size_t *pos, char *str); void ft_move_term(int ret, size_t *pos, char *str); -void ft_move_left(size_t pos, char *str); void ft_home_end(char *str, int ret, size_t *pos); int ft_put(int nb); char **ft_split_whitespaces(char const *s); diff --git a/42sh/src/line-editing/builtin_history.c b/42sh/src/line-editing/builtin_history.c index d3e95a78..76b99fa1 100644 --- a/42sh/src/line-editing/builtin_history.c +++ b/42sh/src/line-editing/builtin_history.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/24 14:54:53 by gwojda #+# #+# */ -/* Updated: 2017/01/24 16:44:13 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 15:48:52 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ void ft_history_builtin(void) { - size_t len; + size_t len; t_list_history *head; head = data_singleton()->line.list_end; @@ -25,7 +25,8 @@ void ft_history_builtin(void) head = head->next; while (head && head->str) { - ft_putnc(' ', ft_nbr_len(data_singleton()->line.list_size) - ft_nbr_len(len)); + ft_putnc(' ', ft_nbr_len(data_singleton()->line.list_size) + - ft_nbr_len(len)); ft_printf("%zu %s\n", len, head->str); ++len; head = head->next; diff --git a/42sh/src/line-editing/copy_cut_paste.c b/42sh/src/line-editing/copy_cut_paste.c index 4aa21239..0282e916 100644 --- a/42sh/src/line-editing/copy_cut_paste.c +++ b/42sh/src/line-editing/copy_cut_paste.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 12:45:06 by gwojda #+# #+# */ -/* Updated: 2017/01/24 14:28:57 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 17:58:33 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -81,7 +81,6 @@ static void ft_x(char **tmp, size_t *pos, char **str) ft_puttermcaps("cd"); } - void ft_cxv(int ret, size_t *pos, char **str) { static char *tmp = NULL; diff --git a/42sh/src/line-editing/ft_split_whitespaces.c b/42sh/src/line-editing/ft_split_whitespaces.c index 86cb9aaf..05506cfb 100644 --- a/42sh/src/line-editing/ft_split_whitespaces.c +++ b/42sh/src/line-editing/ft_split_whitespaces.c @@ -6,13 +6,13 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/02 17:52:52 by gwojda #+# #+# */ -/* Updated: 2017/01/25 14:10:37 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 15:49:21 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -char *ft_strdupi_w(char const *s) +char *ft_strdupi_w(char const *s) { int i; char *str; diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index 14104d63..375303a1 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/01/25 14:39:59 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 16:26:30 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,6 +18,10 @@ static int ft_lecture_3(int ret, char **str, size_t *i) ft_suppr(str, i); else if (ret == TOUCHE_DELETE && (*str) && (*i) < ft_strlen((*str))) ft_del(str, i); + else if (ret == TOUCHE_HOME) + ft_home(*str, i); + else if (ret == TOUCHE_END) + ft_end(*str, i); else return (0); return (1); @@ -32,8 +36,10 @@ static int ft_lecture_2(int ret, char **str, size_t *i) else if (ret == TOUCHE_OPT_X || ret == TOUCHE_OPT_C || ret == TOUCHE_OPT_V) ft_cxv(ret, i, str); - else if (ret == FLECHE_DROITE || ret == FLECHE_GAUCHE) - ft_move_term(ret, i, *str); + else if (ret == FLECHE_DROITE) + ft_move_right(i, *str); + else if (ret == FLECHE_GAUCHE) + ft_move_left(i, *str); else if (ret == TOUCHE_OPT_UP || ret == TOUCHE_OPT_DOWN) ft_move_to_line(ret, i, *str); else if (ft_isprint(ret)) @@ -67,8 +73,10 @@ char *ft_lecture(t_list_history *head) read(0, &ret, sizeof(int)); if (ret == TOUCHE_F6 && read(0, &ret, sizeof(int)) > 0) continue ; -// if (ret == TOUCHE_TAB) -// ret = ft_completion(&str, &i); +/* +** if (ret == TOUCHE_TAB) +** ret = ft_completion(&str, &i); +*/ if (ret == TOUCHE_CTRL_C || ret == TOUCHE_CTRL_D) exit(1); if (ft_lecture_2(ret, &str, &i)) @@ -81,8 +89,6 @@ char *ft_lecture(t_list_history *head) else i = 0; } - else if (ret == TOUCHE_HOME || ret == TOUCHE_END) - ft_home_end(str, ret, &i); else if (ft_lecture_3(ret, &str, &i)) continue ; else if (ret == 10) diff --git a/42sh/src/line-editing/get_touch_toolz.c b/42sh/src/line-editing/get_touch_toolz.c index 1f45a11c..06cba8b4 100644 --- a/42sh/src/line-editing/get_touch_toolz.c +++ b/42sh/src/line-editing/get_touch_toolz.c @@ -6,13 +6,14 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:42:54 by gwojda #+# #+# */ -/* Updated: 2017/01/24 10:21:48 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 15:49:11 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -void ft_history_2(char **str, int ret, t_list_history **head, size_t *pos) +void ft_history_2(char **str, int ret, t_list_history **head + , size_t *pos) { if (*str) { diff --git a/42sh/src/line-editing/get_touch_toolz_2.c b/42sh/src/line-editing/get_touch_toolz_2.c index 768a1606..c38664e4 100644 --- a/42sh/src/line-editing/get_touch_toolz_2.c +++ b/42sh/src/line-editing/get_touch_toolz_2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:43:58 by gwojda #+# #+# */ -/* Updated: 2017/01/24 11:22:42 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 16:26:42 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,91 +18,90 @@ int ft_put(int nb) return (1); } -void ft_home_end(char *str, int ret, size_t *pos) +void ft_end(char *str, size_t *pos) { - if (ret == TOUCHE_END && str) + if (*pos) { - if (*pos) - { - --(*pos); - ft_get_beggin_with_curs(str, pos); - } - ft_puttermcaps("cd"); - while (str[*pos]) - ++(*pos); - ft_get_beggin(str, pos); - ft_current_str(str, *pos); - ft_get_next_str(str, pos); + --(*pos); + ft_get_beggin_with_curs(str, pos); } - else if (ret == TOUCHE_HOME) + ft_puttermcaps("cd"); + while (str[*pos]) + ++(*pos); + ft_get_beggin(str, pos); + ft_current_str(str, *pos); + ft_get_next_str(str, pos); +} + +void ft_home(char *str, size_t *pos) +{ + if (*pos) + { + --(*pos); + ft_get_beggin_with_curs(str, pos); + if (str[*pos + 1] == '\n') + ft_puttermcaps("nd"); + } + ft_puttermcaps("cd"); + *pos = 0; + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + ft_check_end_of_line(str, *pos); + if (!str[*pos]) + --(*pos); + ft_get_beggin_with_curs(str, pos); +} + +void ft_move_right(size_t *pos, char *str) +{ + size_t tmp; + + if (ft_strlen(str) <= *pos) + return ; + if (str[*pos] == '\n') { if (*pos) { - --(*pos); - ft_get_beggin_with_curs(str, pos); - if (str[*pos + 1] == '\n') - ft_puttermcaps("nd"); + tmp = *pos - 1; + ft_get_beggin_with_curs(str, &tmp); } ft_puttermcaps("cd"); - *pos = 0; + ++(*pos); ft_current_str(str, *pos); ft_get_next_str(str, pos); - ft_check_end_of_line(str, *pos); if (!str[*pos]) --(*pos); ft_get_beggin_with_curs(str, pos); } + else + { + ft_putchar(str[*pos]); + ++(*pos); + } } -void ft_move_term(int ret, size_t *pos, char *str) +void ft_move_left(size_t *pos, char *str) { - size_t tmp; - - if (ret == FLECHE_DROITE && str && ft_strlen(str) > *pos) + if (!*pos) + return ; + if (str[*pos - 1] == '\n') { - if (str[*pos] == '\n') + if (*pos - 1 == 0) { - if (*pos) - { - tmp = *pos - 1; - ft_get_beggin_with_curs(str, &tmp); - } - //si premiere ligne ne contient que \n, puis fleche droite -> decalage// ft_puttermcaps("cd"); - ++(*pos); - ft_current_str(str, *pos); - ft_get_next_str(str, pos); - if (!str[*pos]) - --(*pos); - ft_get_beggin_with_curs(str, pos); - } - else - { - ft_putchar(str[*pos]); - ++(*pos); - } - } - else if (ret == FLECHE_GAUCHE && *pos > 0) - { - if (str[*pos - 1] == '\n') - { - if (*pos - 1 == 0) - { - ft_puttermcaps("cd"); - --(*pos); - return ; - } - ft_puttermcaps("cd"); - (*pos) -= 2; - ft_get_beggin(str, pos); - ft_current_str(str, *pos); - ft_get_next_str(str, pos); - ++(*pos); - } - else - { - ft_puttermcaps("le"); --(*pos); + return ; } + ft_puttermcaps("cd"); + (*pos) -= 2; + ft_get_beggin(str, pos); + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + ++(*pos); + } + else + { + ft_puttermcaps("le"); + --(*pos); } } diff --git a/42sh/src/line-editing/heredoc.c b/42sh/src/line-editing/heredoc.c index b2411c88..649524d0 100644 --- a/42sh/src/line-editing/heredoc.c +++ b/42sh/src/line-editing/heredoc.c @@ -6,13 +6,13 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/24 15:52:34 by gwojda #+# #+# */ -/* Updated: 2017/01/24 17:07:21 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 16:03:11 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -char *ft_get_next_word(char *str) +char *ft_get_next_word(char *str) { int j; int k; @@ -26,32 +26,13 @@ char *ft_get_next_word(char *str) return (ft_strndup(str + j, k)); } -void ft_check_heredoc(char **str) +static void ft_check_heredoc_2(char **str, char *end) { - int i; char boolean; - char *end; char *tmp; char *tmp2; - i = 0; - end = NULL; boolean = 0; - if (!*str) - return ; - while ((*str)[i]) - { - if ((*str)[i] == '<' && !ft_strncmp(*str + i, "<<", 2)) - { - if ((*str)[i + 1] == '<' && (*str)[i + 2]) - end = ft_get_next_word(*str + i + 2); - else - return ; - } - ++i; - } - if (!end) - return ; while (!boolean) { ft_putstr("heredoc> "); @@ -69,3 +50,28 @@ void ft_check_heredoc(char **str) ft_putchar('\n'); } } + +void ft_check_heredoc(char **str) +{ + int i; + char *end; + + i = 0; + end = NULL; + if (!*str) + return ; + while ((*str)[i]) + { + if ((*str)[i] == '<' && !ft_strncmp(*str + i, "<<", 2)) + { + if ((*str)[i + 1] == '<' && (*str)[i + 2]) + end = ft_get_next_word(*str + i + 2); + else + return ; + } + ++i; + } + if (!end) + return ; + ft_check_heredoc_2(str, end); +} diff --git a/42sh/src/line-editing/history_parsing.c b/42sh/src/line-editing/history_parsing.c index 7e5fdecd..ec518952 100644 --- a/42sh/src/line-editing/history_parsing.c +++ b/42sh/src/line-editing/history_parsing.c @@ -6,64 +6,67 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/25 11:39:47 by gwojda #+# #+# */ -/* Updated: 2017/01/25 15:05:04 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 20:05:40 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -static char *ft_strget_history(char *str) +static int ft_history_parsing_4(char *str, int *i) { - t_list_history *list; - size_t i; - char *tmp; - - list = data_singleton()->line.list_beg; - if (!list) - return (NULL); - if (!list->str) - list = list->prev; - while (list->str) + if (!ft_strncmp("!!", str + *i, 2)) { - tmp = list->str; - i = 0; - while (tmp[i]) - { - if (ft_strlen(tmp + i) >= ft_strlen(str) - && !ft_strncmp(tmp + i, str, ft_strlen(str))) - return (tmp); - ++i; - } - list = list->prev; + ft_realloc_str_history(&(data_singleton()->line.input), *i, 0, 2); + ++(*i); + return (1); } - return (list->str); + else if (ft_isdigit(str[(*i) + 1])) + { + ft_realloc_str_history(&(data_singleton()->line.input), *i, + ft_atoi(str + (*i) + 1), ft_nbr_len(ft_atoi(str + *i + 1)) + 1); + (*i) += ft_nbr_len(ft_atoi(str + *i + 1)); + return (1); + } + return (0); } -void ft_realloc_str_history_3(char **str, size_t pos, char *s) +static int ft_history_parsing_3(char *str, int *i) { - char *new_str; - char *new_str2; - char *new_str3; - - if (!*str) - return ; - new_str = ft_strndup(*str, pos); - new_str3 = ft_strget_history(s); - if (new_str3) + if (ft_history_parsing_4(str, i)) + return (1); + else if (str[*i + 1] == '-') { - new_str2 = ft_strjoin(new_str, new_str3); - free(new_str); - new_str3 = ft_strjoin(new_str2, (*str) + pos + ft_strlen(s) + 2); - free(new_str2); + ft_realloc_str_history(&(data_singleton()->line.input), *i, + data_singleton()->line.list_size - ft_atoi(str + *i + 2), + ft_nbr_len(ft_atoi(str + *i + 2)) + 2); + (*i) += ft_nbr_len(ft_atoi(str + *i + 2) + 1); } + else if (str[*i + 1] == '?') + ft_realloc_str_history_3(&(data_singleton()->line.input), *i, + ft_strdupi_w(str + *i + 2)); + else if (str[*i + 1] != ' ') + ft_realloc_str_history_2(&(data_singleton()->line.input), *i, + ft_strdupi_w(str + *i + 1)); else - new_str3 = ft_strjoin(new_str, (*str) + pos + ft_strlen(s) + 2); - free(s); - free(*str); - *str = new_str3; + return (0); + return (1); } -void ft_history_parsing() +static void ft_history_parsing_2(void) +{ + data_singleton()->line.opt = data_singleton()->line.opt | HIST; + ft_prompt(); + data_singleton()->line.input = ft_lecture( + data_singleton()->line.list_beg); + ft_putchar('\n'); + data_singleton()->line.opt = data_singleton()->line.opt | ~HIST; + ft_check_quotes(&data_singleton()->line.input, + data_singleton()->line.list_beg); + ft_check_heredoc(&data_singleton()->line.input); + ft_history_parsing(); +} + +void ft_history_parsing(void) { char *str; int i; @@ -79,44 +82,11 @@ void ft_history_parsing() if (str[i] == '!') { boolean = 1; - if (!ft_strncmp("!!", str + i, 2)) - { - ft_realloc_str_history(&(data_singleton()->line.input), i, 0, 2); - ++i; - } - else if (ft_isdigit(str[i + 1])) - { - ft_realloc_str_history(&(data_singleton()->line.input), i, - ft_atoi(str + i + 1), ft_nbr_len(ft_atoi(str + i + 1)) + 1); - i += ft_nbr_len(ft_atoi(str + i + 1)); - } - else if (str[i + 1] == '-') - { - ft_realloc_str_history(&(data_singleton()->line.input), i, - data_singleton()->line.list_size - ft_atoi(str + i + 2), - ft_nbr_len(ft_atoi(str + i + 2)) + 2); - i += ft_nbr_len(ft_atoi(str + i + 2) + 1); - } - else if (str[i + 1] == '?') - ft_realloc_str_history_3(&(data_singleton()->line.input), i, - ft_strdupi_w(str + i + 2)); - else if (str[i + 1] != ' ') - ft_realloc_str_history_2(&(data_singleton()->line.input), i, - ft_strdupi_w(str + i + 1)); - else + if (!ft_history_parsing_3(str, &i)) boolean = 0; } ++i; } if (boolean) - { - data_singleton()->line.opt = data_singleton()->line.opt | HIST; - ft_prompt(); - data_singleton()->line.input = ft_lecture(data_singleton()->line.list_beg); - ft_putchar('\n'); - data_singleton()->line.opt = data_singleton()->line.opt | ~HIST; - ft_check_quotes(&data_singleton()->line.input, data_singleton()->line.list_beg); - ft_check_heredoc(&data_singleton()->line.input); - ft_history_parsing(); - } + ft_history_parsing_2(); } diff --git a/42sh/src/line-editing/history_parsing_toolz_2.c b/42sh/src/line-editing/history_parsing_toolz_2.c new file mode 100644 index 00000000..eda2bcf0 --- /dev/null +++ b/42sh/src/line-editing/history_parsing_toolz_2.c @@ -0,0 +1,64 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* history_parsing_toolz_2.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/25 20:04:16 by gwojda #+# #+# */ +/* Updated: 2017/01/25 20:06:09 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +static char *ft_strget_history(char *str) +{ + t_list_history *list; + size_t i; + char *tmp; + + list = data_singleton()->line.list_beg; + if (!list) + return (NULL); + if (!list->str) + list = list->prev; + while (list->str) + { + tmp = list->str; + i = 0; + while (tmp[i]) + { + if (ft_strlen(tmp + i) >= ft_strlen(str) + && !ft_strncmp(tmp + i, str, ft_strlen(str))) + return (tmp); + ++i; + } + list = list->prev; + } + return (list->str); +} + +void ft_realloc_str_history_3(char **str, size_t pos, char *s) +{ + char *new_str; + char *new_str2; + char *new_str3; + + if (!*str) + return ; + new_str = ft_strndup(*str, pos); + new_str3 = ft_strget_history(s); + if (new_str3) + { + new_str2 = ft_strjoin(new_str, new_str3); + free(new_str); + new_str3 = ft_strjoin(new_str2, (*str) + pos + ft_strlen(s) + 2); + free(new_str2); + } + else + new_str3 = ft_strjoin(new_str, (*str) + pos + ft_strlen(s) + 2); + free(s); + free(*str); + *str = new_str3; +} diff --git a/42sh/src/line-editing/line_return_toolz.c b/42sh/src/line-editing/line_return_toolz.c deleted file mode 100644 index 454fe978..00000000 --- a/42sh/src/line-editing/line_return_toolz.c +++ /dev/null @@ -1,107 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* line_return_toolz.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: gwojda +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/06 14:32:12 by gwojda #+# #+# */ -/* Updated: 2017/01/23 10:57:17 by gwojda ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "minishell.h" - -static int ft_found_prev_char(char *str, size_t i) -{ - while (i) - { - if (str[i] == '\n') - return (1); - --i; - } - return (0); -} - -void ft_move_dell(char *str, size_t pos) -{ - size_t i; - int count; - - count = 1; - i = 0; - while (str[i + pos + 1]) - { - if (str[i + pos] == '\n') - ++count; - ++i; - } - while (i && str[i + pos + 1] != '\n') - { - ft_puttermcaps("le"); - --i; - } - if (i) - { - while (i && count) - { - if (str[i + pos + 1] == '\n') - { - ft_puttermcaps("up"); - --count; - } - --i; - } - while (pos && str[pos] != '\n') - { - ft_puttermcaps("nd"); - --pos; - } - } -} - -void ft_move_suppr(char *str, size_t pos) -{ - size_t i; - int count; - int prompt_size; - - prompt_size = data_singleton()->line.prompt_size; - count = 0; - i = 0; - while (str[i + pos]) - { - if (str[i + pos] == '\n') - ++count; - ++i; - } - while (i && str[i + pos] != '\n') - { - ft_puttermcaps("le"); - --i; - } - if (i) - { - while (i && count) - { - if (str[i + pos] == '\n') - { - ft_puttermcaps("up"); - --count; - } - --i; - } - if (pos > 2) - pos -= 2; - if (!ft_found_prev_char(str, pos)) - { - while (--prompt_size + 3) - ft_puttermcaps("nd"); - } - while (pos && str[pos] != '\n') - { - ft_puttermcaps("nd"); - --pos; - } - } -} diff --git a/42sh/src/line-editing/move_to_line.c b/42sh/src/line-editing/move_to_line.c index 17f154ca..87b3a5d1 100644 --- a/42sh/src/line-editing/move_to_line.c +++ b/42sh/src/line-editing/move_to_line.c @@ -6,16 +6,41 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:21:40 by gwojda #+# #+# */ -/* Updated: 2017/01/21 17:29:08 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 16:40:09 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" +static void ft_up_2(size_t *pos, char *str) +{ + int len; + int i; + + i = 0; + len = ft_size_term(); + if (str[*pos - i] == '\n') + { + --len; + ft_puttermcaps("le"); + ++i; + } + while (*pos - i && str[*pos - i] != '\n' && --len + 1) + { + ft_puttermcaps("le"); + ++i; + } + if (str[*pos - i] == '\n') + { + ft_puttermcaps("nd"); + ++(*pos); + } + (*pos) -= i; +} + static void ft_up(size_t *pos, char *str) { int i; - int len; i = 0; if (str[*pos - 1] == '\n') @@ -28,26 +53,24 @@ static void ft_up(size_t *pos, char *str) ++(*pos); } else + ft_up_2(pos, str); +} + +static void ft_down_2(size_t *pos, char *str) +{ + if (*pos) { - len = ft_size_term(); - if (str[*pos - i] == '\n') - { - --len; - ft_puttermcaps("le"); - ++i; - } - while (*pos - i && str[*pos - i] != '\n' && --len + 1) - { - ft_puttermcaps("le"); - ++i; - } - if (str[*pos - i] == '\n') - { - ft_puttermcaps("nd"); - ++(*pos); - } - (*pos) -= i; + --(*pos); + ft_get_beggin_with_curs(str, pos); } + ft_puttermcaps("cd"); + ft_get_next_str(str, pos); + (*pos) += 2; + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + if (!(str[*pos])) + --(*pos); + ft_get_beggin_with_curs(str, pos); } static void ft_down(size_t *pos, char *str) @@ -57,21 +80,7 @@ static void ft_down(size_t *pos, char *str) i = 0; if (str[*pos] == '\n') - { - if (*pos) - { - --(*pos); - ft_get_beggin_with_curs(str, pos); - } - ft_puttermcaps("cd"); - ft_get_next_str(str, pos); - (*pos) += 2; - ft_current_str(str, *pos); - ft_get_next_str(str, pos); - if (!(str[*pos])) - --(*pos); - ft_get_beggin_with_curs(str, pos); - } + ft_down_2(pos, str); else { len = ft_size_term(); diff --git a/42sh/src/line-editing/print_and_del.c b/42sh/src/line-editing/print_and_del.c index 900e0dfa..2dfe8996 100644 --- a/42sh/src/line-editing/print_and_del.c +++ b/42sh/src/line-editing/print_and_del.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:02:43 by gwojda #+# #+# */ -/* Updated: 2017/01/24 14:40:21 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 16:37:45 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,6 +38,19 @@ void ft_print(char **str, int ret, size_t *i) ++(*i); } +void ft_suppr_2(char **str, size_t *i, size_t tmp) +{ + ft_puttermcaps("cd"); + ft_current_str(*str, *i); + ft_get_next_str(*str, i); + if (*i && (*str)[*i] && ft_found_next_char(*str, *i)) + ++(*i); + ft_putnc('\b', *i - tmp); + (*i) = tmp; + if (ft_strlen(*str) == 0) + *str = NULL; +} + void ft_suppr(char **str, size_t *i) { size_t tmp; @@ -58,15 +71,7 @@ void ft_suppr(char **str, size_t *i) *str = ft_remove_imput((*str), tmp); ft_get_beggin(*str, i); } - ft_puttermcaps("cd"); - ft_current_str(*str, *i); - ft_get_next_str(*str, i); - if (*i && (*str)[*i] && ft_found_next_char(*str, *i)) - ++(*i); - ft_putnc('\b', *i - tmp); - (*i) = tmp; - if (ft_strlen(*str) == 0) - *str = NULL; + ft_suppr_2(str, i, tmp); } void ft_del(char **str, size_t *i) diff --git a/42sh/src/line-editing/prompt.c b/42sh/src/line-editing/prompt.c index ec630120..94482a27 100644 --- a/42sh/src/line-editing/prompt.c +++ b/42sh/src/line-editing/prompt.c @@ -6,13 +6,15 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:51:33 by gwojda #+# #+# */ -/* Updated: 2017/01/20 11:30:17 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 16:31:24 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -/* ft_printf de la lib bug avec unicode */ +/* +**ft_printf de la lib bug avec unicode +*/ static void ft_get_date(void) { diff --git a/42sh/src/line-editing/quotes_gest.c b/42sh/src/line-editing/quotes_gest.c index f5ca96e9..caf7ba9d 100644 --- a/42sh/src/line-editing/quotes_gest.c +++ b/42sh/src/line-editing/quotes_gest.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 12:20:19 by gwojda #+# #+# */ -/* Updated: 2017/01/19 16:43:10 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 16:50:14 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,22 +23,22 @@ int ft_check_quotes_num(char *s) doub = 0; while (s[i]) { - if (s[i] == '\'') + if (s[i] == '\'' && ((i && s[i - 1] != '\\') || !i)) { simp = 1; ++i; - while (s[i] && s[i] != '\'') + while (s[i] && !(s[i] == '\'' && ((i && s[i - 1] != '\\') || !i))) ++i; - if (s[i] == '\'') + if (s[i] == '\'' && ((i && s[i - 1] != '\\') || !i)) simp = 0; } - else if (s[i] == '"') + else if (s[i] == '"' && ((i && s[i - 1] != '\\') || !i)) { doub = 1; ++i; - while (s[i] && s[i] != '"') + while (s[i] && !(s[i] == '"' && ((i && s[i - 1] != '\\') || !i))) ++i; - if (s[i] == '"') + if (s[i] == '"' && ((i && s[i - 1] != '\\') || !i)) doub = 0; } if (s[i]) diff --git a/42sh/src/line-editing/reader.c b/42sh/src/line-editing/reader.c index 7c647b55..4a3e17d3 100644 --- a/42sh/src/line-editing/reader.c +++ b/42sh/src/line-editing/reader.c @@ -6,12 +6,31 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:52:57 by gwojda #+# #+# */ -/* Updated: 2017/01/20 18:15:12 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 19:07:39 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" +static void ft_read_it_3(char **str, char t[5], size_t *pos, int *j) +{ + int i; + + i = 0; + while (i < 4 && t[i] == '\0') + ++i; + while (i < 4) + { + if (t[i] && ft_isprint(t[i])) + { + *str = ft_realloc_imput(*str, t[i], *pos); + ++(*pos); + ++(*j); + } + ++i; + } +} + static void ft_read_it_2(int input, char t[5]) { t[3] = (input / ft_pow(256, 3)) ? (input / ft_pow(256, 3)) : '\0'; @@ -31,31 +50,17 @@ static void ft_read_it_2(int input, char t[5]) void ft_read_it(int input, size_t *pos, char **str) { - int i; int j; char t[5]; j = 0; - i = 0; - if (input == TOUCHE_DELETE || input < 0 || input == 892427035 || input == 126 || - input == 993090331 || input == 925981467 || input == 21298 || - input == 892427035 || input == 8270395 || input == 942758683 || - input == 993090331 || input == 18489 || input == 17977) - + if (input == TOUCHE_DELETE || input < 0 || input == 892427035 || + input == 126 || input == 993090331 || input == 925981467 || + input == 21298 || input == 892427035 || input == 8270395 || + input == 942758683 || input == 993090331 || input == 18489 || input == 17977) return ; ft_read_it_2(input, t); - while (i < 4 && t[i] == '\0') - ++i; - while (i < 4) - { - if (t[i] && ft_isprint(t[i])) - { - *str = ft_realloc_imput(*str, t[i], *pos); - ++(*pos); - ++j; - } - ++i; - } + ft_read_it_3(str, t, pos, &j); ft_putstr((*str) + (*pos) - j); ft_putnc('\b', ft_strlen((*str)) - ((*pos))); } diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 6903af81..af9225b3 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/01/25 14:37:16 by gwojda ### ########.fr */ +/* Updated: 2017/01/25 17:06:53 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -50,8 +50,22 @@ struct termios *ft_stats_term_termcaps(void) return (term); } +void ft_reset_stats_term(int signal) +{ + char *name_term; + + if (signal == SIGWINCH) + { + if ((name_term = getenv("TERM")) == NULL) + return ; + if (tgetent(NULL, name_term) == -1) + return ; + } +} + int ft_readline(void) { + signal(SIGWINCH, ft_reset_stats_term); if (tcsetattr(0, TCSANOW, ft_stats_term_termcaps()) == -1) return (-1); if (data_singleton()->line.input) From bd33e1c9f20685643bb316d6c730dc0ed90a80cc Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Thu, 26 Jan 2017 14:17:07 +0100 Subject: [PATCH 19/67] ajout du control + R pour la recherche dans l'historique (j'ai prit pour exemple bash), et du \ en cas de \ en fin de ligne --- 42sh/includes/ft_readline.h | 8 +- 42sh/src/line-editing/check_backslash.c | 35 ++++++++ 42sh/src/line-editing/get_touch.c | 7 +- .../line-editing/history_parsing_toolz_2.c | 4 +- 42sh/src/line-editing/readline.c | 12 +-- 42sh/src/line-editing/surch_in_history.c | 83 +++++++++++++++++++ 6 files changed, 140 insertions(+), 9 deletions(-) create mode 100644 42sh/src/line-editing/check_backslash.c create mode 100644 42sh/src/line-editing/surch_in_history.c diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index 24e96a51..af343cd1 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/23 10:35:44 by gwojda #+# #+# */ -/* Updated: 2017/01/25 20:04:33 by gwojda ### ########.fr */ +/* Updated: 2017/01/26 13:36:59 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -36,6 +36,7 @@ # define TOUCHE_DELETE 2117294875 # define TOUCHE_CTRL_C 3 # define TOUCHE_CTRL_D 4 +# define TOUCHE_CTRL_R 18 # define TOUCHE_HOME 4741915 # define TOUCHE_END 4610843 # define TOUCHE_TAB 9 @@ -51,6 +52,8 @@ # define HIST 1 +# define ERROR_CNTL_R 1 + typedef struct s_list_history { char *str; @@ -68,6 +71,9 @@ typedef struct s_line t_list_history *list_beg; } t_line; +void ft_check_backslash(char **str); +char *ft_strget_history(char *str); +void ft_surch_in_history(char **str, size_t *pos); void ft_realloc_str_history_3(char **str, size_t pos, char *s); void ft_move_right(size_t *pos, char *str); void ft_move_left(size_t *pos, char *str); diff --git a/42sh/src/line-editing/check_backslash.c b/42sh/src/line-editing/check_backslash.c new file mode 100644 index 00000000..fa91a8ab --- /dev/null +++ b/42sh/src/line-editing/check_backslash.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* check_backslash.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/26 13:32:52 by gwojda #+# #+# */ +/* Updated: 2017/01/26 13:50:00 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_check_backslash(char **str) +{ + char *tmp1; + char *tmp2; + + if (!*str) + return ; + if ((*str)[ft_strlen(*str) - 1] == '\\') + { + ft_putstr("> "); + data_singleton()->line.prompt_size = 2; + tmp1 = *str; + tmp2 = ft_strjoin(tmp1, "\n"); + free(tmp1); + tmp1 = ft_lecture(data_singleton()->line.list_beg); + *str = ft_strjoin(tmp2, tmp1); + free(tmp1); + free(tmp2); + ft_putchar('\n'); + } +} diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index 375303a1..affc537c 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/01/25 16:26:30 by gwojda ### ########.fr */ +/* Updated: 2017/01/26 11:36:19 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -73,6 +73,11 @@ char *ft_lecture(t_list_history *head) read(0, &ret, sizeof(int)); if (ret == TOUCHE_F6 && read(0, &ret, sizeof(int)) > 0) continue ; + if (ret == TOUCHE_CTRL_R) + { + ft_surch_in_history(&str, &i); + continue ; + } /* ** if (ret == TOUCHE_TAB) ** ret = ft_completion(&str, &i); diff --git a/42sh/src/line-editing/history_parsing_toolz_2.c b/42sh/src/line-editing/history_parsing_toolz_2.c index eda2bcf0..23ce77ae 100644 --- a/42sh/src/line-editing/history_parsing_toolz_2.c +++ b/42sh/src/line-editing/history_parsing_toolz_2.c @@ -6,13 +6,13 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/25 20:04:16 by gwojda #+# #+# */ -/* Updated: 2017/01/25 20:06:09 by gwojda ### ########.fr */ +/* Updated: 2017/01/26 11:33:22 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -static char *ft_strget_history(char *str) +char *ft_strget_history(char *str) { t_list_history *list; size_t i; diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index af9225b3..154089c8 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/01/25 17:06:53 by gwojda ### ########.fr */ +/* Updated: 2017/01/26 13:38:29 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -72,13 +72,15 @@ int ft_readline(void) data_singleton()->line.input = NULL; ft_prompt(); data_singleton()->line.input = ft_lecture(data_singleton()->line.list_beg); - ft_putstr("\n"); - ft_check_quotes(&data_singleton()->line.input, data_singleton()->line.list_beg); + ft_putchar('\n'); + ft_check_quotes(&data_singleton()->line.input, + data_singleton()->line.list_beg); ft_check_heredoc(&data_singleton()->line.input); - ft_history_builtin(); + ft_check_backslash(&data_singleton()->line.input); ft_history_parsing(); if (data_singleton()->line.input) - ft_push_back_history(&data_singleton()->line.list_beg, ft_create_history_list(data_singleton()->line.input)); + ft_push_back_history(&data_singleton()->line.list_beg, + ft_create_history_list(data_singleton()->line.input)); if (tcsetattr(0, TCSANOW, ft_save_stats_term()) == -1) return (-1); return (0); diff --git a/42sh/src/line-editing/surch_in_history.c b/42sh/src/line-editing/surch_in_history.c new file mode 100644 index 00000000..6630548b --- /dev/null +++ b/42sh/src/line-editing/surch_in_history.c @@ -0,0 +1,83 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* surch_in_history.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/26 10:43:16 by gwojda #+# #+# */ +/* Updated: 2017/01/26 14:01:53 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_clear_prompt(char *str, size_t *pos, size_t srch_pos) +{ + if (str) + ft_get_beggin_with_curs(str, pos); + else if (*pos) + { + ft_putnc('\b', *pos); + (*pos) = 0; + } + ft_putnc('\b', data_singleton()->line.prompt_size + srch_pos + 1); + ft_puttermcaps("cd"); +} + +void ft_surch_and_realloc(char **str, char **str_srch, int ret, size_t *srch_pos) +{ + *str_srch = ft_realloc_imput(*str_srch, ret, *srch_pos); + ++(*srch_pos); + *str = ft_strget_history(*str_srch); +} + +void ft_surch_in_history(char **str, size_t *pos) +{ + char *str_srch; + int ret; + size_t srch_pos; + + srch_pos = 0; + str_srch = NULL; + if (*str) + ft_strdel(str); + while (42) + { + ft_clear_prompt(*str, pos, srch_pos); + data_singleton()->line.prompt_size = 21; + if (str_srch) + ft_printf("\033[35m(reverse-i-search)`\033[32m%s\033[35m': \033[37m", str_srch); + else + ft_putstr("\033[35m(reverse-i-search)`': \033[37m"); + if (*str) + { + ft_current_str(*str, *pos); + ft_get_next_str(*str, pos); + } + ret = 0; + read(0, &ret, sizeof(int)); + if (ft_isprint(ret)) + ft_surch_and_realloc(str, &str_srch, ret, &srch_pos); + else if (ret == 127) + { + if (srch_pos) + { + --srch_pos; + str_srch = ft_remove_imput(str_srch, srch_pos); + ft_puttermcaps("le"); + } + } + else + break ; + } + ft_clear_prompt(*str, pos, srch_pos); + ft_prompt(); + if (*str) + { + *str = ft_strdup(*str); + ft_current_str(*str, *pos); + ft_get_next_str(*str, pos); + } + free(str_srch); +} From 9d2e01de25097ee4309613a05ecbf95d9a5c005f Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Thu, 26 Jan 2017 18:41:07 +0100 Subject: [PATCH 20/67] some progress on c_cc[VTIME] understading, almost there --- 42sh/includes/builtin_read.h | 4 ++-- 42sh/src/builtin/bt_read_term.c | 36 +++++++++++++++++++------------- 42sh/src/builtin/builtin_read.c | 8 ++++--- 42sh/src/lexer/lexer_backslash.c | 2 +- 42sh/src/lexer/lexer_delim.c | 2 +- 42sh/src/lexer/lexer_word.c | 2 +- 42sh/src/lexer/token_append.c | 2 +- 42sh/src/main/main.c | 2 +- 8 files changed, 33 insertions(+), 25 deletions(-) diff --git a/42sh/includes/builtin_read.h b/42sh/includes/builtin_read.h index bda0efe1..ab660d46 100644 --- a/42sh/includes/builtin_read.h +++ b/42sh/includes/builtin_read.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 15:02:39 by jhalford #+# #+# */ -/* Updated: 2017/01/25 16:14:16 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 15:23:11 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -55,7 +55,7 @@ extern t_readopt g_readtab[]; int builtin_read(const char *path, char *const av[], char *const envp[]); -struct termios *bt_read_term(int init); +struct termios bt_read_term(int init); int bt_read_terminit(t_read *data); int bt_read_termexit(void); diff --git a/42sh/src/builtin/bt_read_term.c b/42sh/src/builtin/bt_read_term.c index c1313c16..cb57f1a9 100644 --- a/42sh/src/builtin/bt_read_term.c +++ b/42sh/src/builtin/bt_read_term.c @@ -6,44 +6,50 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/25 16:02:05 by jhalford #+# #+# */ -/* Updated: 2017/01/25 16:14:30 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 18:39:29 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "builtin.h" -struct termios *bt_read_term(int init) +struct termios bt_read_term(int init) { static struct termios term; - + if (init) - { - if (tcgetattr(0, &term) < 0) - return (NULL); - } - return (&term); + tcgetattr(0, &term); + return (term); } int bt_read_terminit(t_read *data) { - struct termios *term; + struct termios term; (void)data; term = bt_read_term(1); - term->c_lflag &= ~(ECHO | ICANON); - term->c_cc[VTIME] = 0; - term->c_cc[VMIN] = 1; - if (tcsetattr(0, TCSANOW, term) < 0) + term.c_lflag &= ~(ECHO | ICANON); + if (data->opts & READ_OPT_LT) + { + term.c_cc[VTIME] = data->timeout * 10; + term.c_cc[VMIN] = 0; + } + else + { + term.c_cc[VTIME] = 0; + term.c_cc[VMIN] = 1; + } + if (tcsetattr(0, TCSANOW, &term) < 0) return (-1); + DG("c_cc[VTIME]=%i", term.c_cc[VTIME]); return (0); } int bt_read_termexit(void) { - struct termios *term; + struct termios term; term = bt_read_term(0); - if (tcsetattr(0, TCSANOW, term) < 0) + if (tcsetattr(0, TCSANOW, &term) < 0) return (-1); return (0); } diff --git a/42sh/src/builtin/builtin_read.c b/42sh/src/builtin/builtin_read.c index b7298ddd..9f2b128c 100644 --- a/42sh/src/builtin/builtin_read.c +++ b/42sh/src/builtin/builtin_read.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 15:01:45 by jhalford #+# #+# */ -/* Updated: 2017/01/25 16:19:50 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 18:39:19 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -102,6 +102,7 @@ int builtin_read(const char *path, char *const av[], char *const envp[]) char buf[2]; char *input; int esc; + int ret; (void)path; (void)envp; @@ -120,9 +121,10 @@ int builtin_read(const char *path, char *const av[], char *const envp[]) ft_printf(data.prompt); while (42) { - if (read(data.fd, buf, 1) < 0) + if ((ret = read(data.fd, buf, 1) <= 0)) return (1); - buf[1] = 0; + DG("got *buf=%c, ret=%i", *buf, ret); + buf[ret] = 0; if (!esc && *buf == data.delim) break ; esc = esc ? 0 : !(data.opts & READ_OPT_LR) && (*buf == '\\'); diff --git a/42sh/src/lexer/lexer_backslash.c b/42sh/src/lexer/lexer_backslash.c index 9a6f2438..8439d549 100644 --- a/42sh/src/lexer/lexer_backslash.c +++ b/42sh/src/lexer/lexer_backslash.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 11:56:49 by jhalford #+# #+# */ -/* Updated: 2016/12/03 12:35:13 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 16:30:42 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_delim.c b/42sh/src/lexer/lexer_delim.c index 7542b57c..f0ceb531 100644 --- a/42sh/src/lexer/lexer_delim.c +++ b/42sh/src/lexer/lexer_delim.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 11:58:44 by jhalford #+# #+# */ -/* Updated: 2017/01/11 15:45:53 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 16:30:43 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_word.c b/42sh/src/lexer/lexer_word.c index 53ed4746..8844b7db 100644 --- a/42sh/src/lexer/lexer_word.c +++ b/42sh/src/lexer/lexer_word.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:07:11 by jhalford #+# #+# */ -/* Updated: 2017/01/11 15:38:03 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 15:56:19 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/token_append.c b/42sh/src/lexer/token_append.c index 2d2bbae1..2c422840 100644 --- a/42sh/src/lexer/token_append.c +++ b/42sh/src/lexer/token_append.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/11 17:18:42 by jhalford #+# #+# */ -/* Updated: 2017/01/22 16:44:15 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 18:32:42 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 52b34a99..e90ec878 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/25 17:58:18 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 15:16:00 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 977238f69eaa0e47932549e3f6b2be45a5301eb3 Mon Sep 17 00:00:00 2001 From: wescande Date: Thu, 12 Jan 2017 15:05:59 +0100 Subject: [PATCH 21/67] premier commit. working. . . --- 42sh/Makefile | 183 ++++++++++++++++++ 42sh/includes/glob.h | 44 +++++ 42sh/includes/minishell.h | 8 + 42sh/libft | 2 +- 42sh/srcs/builtin/builtin.c | 51 +++++ 42sh/{src => srcs}/builtin/builtin_cd.c | 0 42sh/{src => srcs}/builtin/builtin_echo.c | 0 42sh/{src => srcs}/builtin/builtin_env.c | 0 42sh/{src => srcs}/builtin/builtin_exit.c | 0 42sh/{src => srcs}/builtin/builtin_setenv.c | 0 42sh/{src => srcs}/builtin/builtin_unsetenv.c | 0 42sh/{src => srcs}/exec/ast_free.c | 0 42sh/{src => srcs}/exec/exec_and_if.c | 0 42sh/{src => srcs}/exec/exec_command.c | 0 42sh/{src => srcs}/exec/exec_dgreat.c | 0 42sh/{src => srcs}/exec/exec_great.c | 0 42sh/{src => srcs}/exec/exec_less.c | 0 42sh/{src => srcs}/exec/exec_or_if.c | 0 42sh/{src => srcs}/exec/exec_pipe.c | 0 42sh/{src => srcs}/exec/exec_semi.c | 0 42sh/srcs/exec/fd_redirect.c | 27 +++ 42sh/srcs/exec/ft_cmd.c | 65 +++++++ 42sh/{src => srcs}/exec/ft_exec.c | 0 42sh/{src => srcs}/exec/ft_findexec.c | 0 42sh/{src => srcs}/exec/set_exitstatus.c | 0 42sh/srcs/glob/glob.c | 133 +++++++++++++ 42sh/srcs/glob/glob_print.c | 48 +++++ 42sh/srcs/glob/ld/ft_ld_back.c | 21 ++ 42sh/srcs/glob/ld/ft_ld_clear.c | 24 +++ 42sh/srcs/glob/ld/ft_ld_del.c | 36 ++++ 42sh/srcs/glob/ld/ft_ld_front.c | 21 ++ 42sh/srcs/glob/ld/ft_ld_new.c | 26 +++ 42sh/srcs/glob/ld/ft_ld_pushback.c | 30 +++ 42sh/srcs/glob/ld/ft_ld_pushfront.c | 31 +++ 42sh/srcs/glob/ld/ft_ld_reverse.c | 32 +++ 42sh/srcs/glob/ld/ft_ld_size.c | 27 +++ 42sh/srcs/glob/ld/ft_ld_swap.c | 35 ++++ 42sh/srcs/glob/ld/ft_ld_to_tab.c | 34 ++++ 42sh/{src => srcs}/lexer/ft_tokenize.c | 0 42sh/{src => srcs}/lexer/lexer_backslash.c | 0 42sh/{src => srcs}/lexer/lexer_default.c | 0 42sh/{src => srcs}/lexer/lexer_delim.c | 0 42sh/{src => srcs}/lexer/lexer_dquote.c | 0 42sh/{src => srcs}/lexer/lexer_great.c | 0 42sh/{src => srcs}/lexer/lexer_greatand.c | 0 42sh/{src => srcs}/lexer/lexer_less.c | 0 42sh/{src => srcs}/lexer/lexer_lessand.c | 0 42sh/{src => srcs}/lexer/lexer_number.c | 0 42sh/{src => srcs}/lexer/lexer_quote.c | 0 42sh/{src => srcs}/lexer/lexer_sep.c | 0 42sh/{src => srcs}/lexer/lexer_word.c | 0 42sh/{src => srcs}/lexer/token_append.c | 0 42sh/{src => srcs}/lexer/token_cmp_type.c | 0 42sh/{src => srcs}/lexer/token_free.c | 0 42sh/{src => srcs}/lexer/token_init.c | 0 42sh/{src => srcs}/lexer/token_print.c | 0 42sh/{src => srcs}/line-editing/curs_ask.c | 0 42sh/{src => srcs}/line-editing/curs_clear.c | 0 42sh/{src => srcs}/line-editing/curs_goto.c | 0 42sh/{src => srcs}/line-editing/curs_move.c | 0 42sh/{src => srcs}/line-editing/curs_setup.c | 0 42sh/{src => srcs}/line-editing/curs_single.c | 0 .../line-editing/curs_term_setup.c | 0 42sh/{src => srcs}/line-editing/curs_write.c | 0 42sh/srcs/line-editing/ft_interactive_sh.c | 26 +++ 42sh/{src => srcs}/line-editing/ft_readline.c | 0 42sh/{src => srcs}/line-editing/rl_bitset.c | 0 .../line-editing/rl_clear_function.c | 0 .../line-editing/rl_clipboard_function.c | 0 .../line-editing/rl_clipboard_utility.c | 0 .../line-editing/rl_comp_function.c | 0 .../line-editing/rl_default_function.c | 0 42sh/{src => srcs}/line-editing/rl_display.c | 0 .../line-editing/rl_dynamic_buffer.c | 0 .../line-editing/rl_long_move_function.c | 0 .../line-editing/rl_merge_line.c | 0 .../line-editing/rl_page_move_function.c | 0 42sh/{src => srcs}/line-editing/rl_prompt.c | 0 .../line-editing/rl_quoting_function.c | 0 .../line-editing/rl_remove_function.c | 0 42sh/{src => srcs}/line-editing/rl_setup.c | 0 .../line-editing/rl_short_move_function.c | 0 .../line-editing/rl_stack_line.c | 0 .../line-editing/rl_state_function.c | 0 .../line-editing/rl_word_move_function.c | 0 .../line-editing/rl_word_utility.c | 0 42sh/{src => srcs}/main/data_exit.c | 0 42sh/{src => srcs}/main/data_init.c | 0 42sh/srcs/main/ft_cleanup.c | 31 +++ 42sh/{src => srcs}/main/ft_putast.c | 0 42sh/{src => srcs}/main/ft_putast2.c | 0 42sh/srcs/main/lib_expansion.c | 28 +++ 42sh/{src => srcs}/main/main.c | 18 ++ 42sh/srcs/main/sig_handler.c | 27 +++ 42sh/{src => srcs}/parser/ft_parse.c | 0 42sh/{src => srcs}/parser/parse_dgreat.c | 0 42sh/{src => srcs}/parser/parse_dless.c | 0 42sh/{src => srcs}/parser/parse_great.c | 0 42sh/{src => srcs}/parser/parse_greatand.c | 0 42sh/{src => srcs}/parser/parse_less.c | 0 42sh/{src => srcs}/parser/parse_lessand.c | 0 42sh/{src => srcs}/parser/parse_separator.c | 0 42sh/{src => srcs}/parser/parse_word.c | 0 103 files changed, 1007 insertions(+), 1 deletion(-) create mode 100644 42sh/includes/glob.h create mode 100644 42sh/srcs/builtin/builtin.c rename 42sh/{src => srcs}/builtin/builtin_cd.c (100%) rename 42sh/{src => srcs}/builtin/builtin_echo.c (100%) rename 42sh/{src => srcs}/builtin/builtin_env.c (100%) rename 42sh/{src => srcs}/builtin/builtin_exit.c (100%) rename 42sh/{src => srcs}/builtin/builtin_setenv.c (100%) rename 42sh/{src => srcs}/builtin/builtin_unsetenv.c (100%) rename 42sh/{src => srcs}/exec/ast_free.c (100%) rename 42sh/{src => srcs}/exec/exec_and_if.c (100%) rename 42sh/{src => srcs}/exec/exec_command.c (100%) rename 42sh/{src => srcs}/exec/exec_dgreat.c (100%) rename 42sh/{src => srcs}/exec/exec_great.c (100%) rename 42sh/{src => srcs}/exec/exec_less.c (100%) rename 42sh/{src => srcs}/exec/exec_or_if.c (100%) rename 42sh/{src => srcs}/exec/exec_pipe.c (100%) rename 42sh/{src => srcs}/exec/exec_semi.c (100%) create mode 100644 42sh/srcs/exec/fd_redirect.c create mode 100644 42sh/srcs/exec/ft_cmd.c rename 42sh/{src => srcs}/exec/ft_exec.c (100%) rename 42sh/{src => srcs}/exec/ft_findexec.c (100%) rename 42sh/{src => srcs}/exec/set_exitstatus.c (100%) create mode 100644 42sh/srcs/glob/glob.c create mode 100644 42sh/srcs/glob/glob_print.c create mode 100644 42sh/srcs/glob/ld/ft_ld_back.c create mode 100644 42sh/srcs/glob/ld/ft_ld_clear.c create mode 100644 42sh/srcs/glob/ld/ft_ld_del.c create mode 100644 42sh/srcs/glob/ld/ft_ld_front.c create mode 100644 42sh/srcs/glob/ld/ft_ld_new.c create mode 100644 42sh/srcs/glob/ld/ft_ld_pushback.c create mode 100644 42sh/srcs/glob/ld/ft_ld_pushfront.c create mode 100644 42sh/srcs/glob/ld/ft_ld_reverse.c create mode 100644 42sh/srcs/glob/ld/ft_ld_size.c create mode 100644 42sh/srcs/glob/ld/ft_ld_swap.c create mode 100644 42sh/srcs/glob/ld/ft_ld_to_tab.c rename 42sh/{src => srcs}/lexer/ft_tokenize.c (100%) rename 42sh/{src => srcs}/lexer/lexer_backslash.c (100%) rename 42sh/{src => srcs}/lexer/lexer_default.c (100%) rename 42sh/{src => srcs}/lexer/lexer_delim.c (100%) rename 42sh/{src => srcs}/lexer/lexer_dquote.c (100%) rename 42sh/{src => srcs}/lexer/lexer_great.c (100%) rename 42sh/{src => srcs}/lexer/lexer_greatand.c (100%) rename 42sh/{src => srcs}/lexer/lexer_less.c (100%) rename 42sh/{src => srcs}/lexer/lexer_lessand.c (100%) rename 42sh/{src => srcs}/lexer/lexer_number.c (100%) rename 42sh/{src => srcs}/lexer/lexer_quote.c (100%) rename 42sh/{src => srcs}/lexer/lexer_sep.c (100%) rename 42sh/{src => srcs}/lexer/lexer_word.c (100%) rename 42sh/{src => srcs}/lexer/token_append.c (100%) rename 42sh/{src => srcs}/lexer/token_cmp_type.c (100%) rename 42sh/{src => srcs}/lexer/token_free.c (100%) rename 42sh/{src => srcs}/lexer/token_init.c (100%) rename 42sh/{src => srcs}/lexer/token_print.c (100%) rename 42sh/{src => srcs}/line-editing/curs_ask.c (100%) rename 42sh/{src => srcs}/line-editing/curs_clear.c (100%) rename 42sh/{src => srcs}/line-editing/curs_goto.c (100%) rename 42sh/{src => srcs}/line-editing/curs_move.c (100%) rename 42sh/{src => srcs}/line-editing/curs_setup.c (100%) rename 42sh/{src => srcs}/line-editing/curs_single.c (100%) rename 42sh/{src => srcs}/line-editing/curs_term_setup.c (100%) rename 42sh/{src => srcs}/line-editing/curs_write.c (100%) create mode 100644 42sh/srcs/line-editing/ft_interactive_sh.c rename 42sh/{src => srcs}/line-editing/ft_readline.c (100%) rename 42sh/{src => srcs}/line-editing/rl_bitset.c (100%) rename 42sh/{src => srcs}/line-editing/rl_clear_function.c (100%) rename 42sh/{src => srcs}/line-editing/rl_clipboard_function.c (100%) rename 42sh/{src => srcs}/line-editing/rl_clipboard_utility.c (100%) rename 42sh/{src => srcs}/line-editing/rl_comp_function.c (100%) rename 42sh/{src => srcs}/line-editing/rl_default_function.c (100%) rename 42sh/{src => srcs}/line-editing/rl_display.c (100%) rename 42sh/{src => srcs}/line-editing/rl_dynamic_buffer.c (100%) rename 42sh/{src => srcs}/line-editing/rl_long_move_function.c (100%) rename 42sh/{src => srcs}/line-editing/rl_merge_line.c (100%) rename 42sh/{src => srcs}/line-editing/rl_page_move_function.c (100%) rename 42sh/{src => srcs}/line-editing/rl_prompt.c (100%) rename 42sh/{src => srcs}/line-editing/rl_quoting_function.c (100%) rename 42sh/{src => srcs}/line-editing/rl_remove_function.c (100%) rename 42sh/{src => srcs}/line-editing/rl_setup.c (100%) rename 42sh/{src => srcs}/line-editing/rl_short_move_function.c (100%) rename 42sh/{src => srcs}/line-editing/rl_stack_line.c (100%) rename 42sh/{src => srcs}/line-editing/rl_state_function.c (100%) rename 42sh/{src => srcs}/line-editing/rl_word_move_function.c (100%) rename 42sh/{src => srcs}/line-editing/rl_word_utility.c (100%) rename 42sh/{src => srcs}/main/data_exit.c (100%) rename 42sh/{src => srcs}/main/data_init.c (100%) create mode 100644 42sh/srcs/main/ft_cleanup.c rename 42sh/{src => srcs}/main/ft_putast.c (100%) rename 42sh/{src => srcs}/main/ft_putast2.c (100%) create mode 100644 42sh/srcs/main/lib_expansion.c rename 42sh/{src => srcs}/main/main.c (78%) create mode 100644 42sh/srcs/main/sig_handler.c rename 42sh/{src => srcs}/parser/ft_parse.c (100%) rename 42sh/{src => srcs}/parser/parse_dgreat.c (100%) rename 42sh/{src => srcs}/parser/parse_dless.c (100%) rename 42sh/{src => srcs}/parser/parse_great.c (100%) rename 42sh/{src => srcs}/parser/parse_greatand.c (100%) rename 42sh/{src => srcs}/parser/parse_less.c (100%) rename 42sh/{src => srcs}/parser/parse_lessand.c (100%) rename 42sh/{src => srcs}/parser/parse_separator.c (100%) rename 42sh/{src => srcs}/parser/parse_word.c (100%) diff --git a/42sh/Makefile b/42sh/Makefile index 8dcf5189..022c2fe2 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -1,3 +1,4 @@ +<<<<<<< HEAD NAME = minishell CC = gcc TAGFILE = .tags @@ -88,3 +89,185 @@ fclean: clean @$(MAKE) fclean -C libft/ 2>/dev/null re: fclean all +======= +#* ************************************************************************** *# +#* *# +#* ::: :::::::: *# +#* Makefile :+: :+: :+: *# +#* +:+ +:+ +:+ *# +#* By: wescande +#+ +:+ +#+ *# +#* +#+#+#+#+#+ +#+ *# +#* Created: 2016/08/29 21:32:58 by wescande #+# #+# *# +#* Updated: 2016/09/27 20:14:55 by wescande ### ########.fr *# +#* *# +#* ************************************************************************** *# + +NAME = 42sh + +CC = gcc +FLAGS = -Wall -Wextra -Werror +D_FLAGS = -g + +LEN_NAME = `printf "%s" $(NAME) |wc -c` +DELTA = $$(echo "$$(tput cols)-24-$(LEN_NAME)"|bc) + +LIBFT_DIR = libft/ +LIBFT_LIB = $(LIBFT_DIR)libft.a +LIBFT_INC = $(LIBFT_DIR)includes/ + +LIBS = -ltermcap + +SRC_DIR = srcs/ +INC_DIR = includes/ +OBJ_DIR = objs/ + +SRC_BASE = \ +builtin/builtin.c\ +builtin/builtin_cd.c\ +builtin/builtin_echo.c\ +builtin/builtin_env.c\ +builtin/builtin_exit.c\ +builtin/builtin_setenv.c\ +builtin/builtin_unsetenv.c\ +exec/ast_free.c\ +exec/exec_and_if.c\ +exec/exec_command.c\ +exec/exec_dgreat.c\ +exec/exec_great.c\ +exec/exec_less.c\ +exec/exec_or_if.c\ +exec/exec_pipe.c\ +exec/exec_semi.c\ +exec/fd_redirect.c\ +exec/ft_cmd.c\ +exec/ft_exec.c\ +exec/ft_findexec.c\ +exec/set_exitstatus.c\ +glob/glob.c\ +glob/glob_print.c\ +glob/ld/ft_ld_back.c\ +glob/ld/ft_ld_clear.c\ +glob/ld/ft_ld_del.c\ +glob/ld/ft_ld_front.c\ +glob/ld/ft_ld_new.c\ +glob/ld/ft_ld_pushback.c\ +glob/ld/ft_ld_pushfront.c\ +glob/ld/ft_ld_reverse.c\ +glob/ld/ft_ld_size.c\ +glob/ld/ft_ld_swap.c\ +glob/ld/ft_ld_to_tab.c\ +lexer/ft_tokenize.c\ +lexer/lexer_backslash.c\ +lexer/lexer_default.c\ +lexer/lexer_delim.c\ +lexer/lexer_dquote.c\ +lexer/lexer_great.c\ +lexer/lexer_greatand.c\ +lexer/lexer_less.c\ +lexer/lexer_lessand.c\ +lexer/lexer_number.c\ +lexer/lexer_quote.c\ +lexer/lexer_sep.c\ +lexer/lexer_word.c\ +lexer/token_append.c\ +lexer/token_cmp_type.c\ +lexer/token_free.c\ +lexer/token_init.c\ +lexer/token_print.c\ +line-editing/curs_ask.c\ +line-editing/curs_clear.c\ +line-editing/curs_goto.c\ +line-editing/curs_move.c\ +line-editing/curs_setup.c\ +line-editing/curs_single.c\ +line-editing/curs_term_setup.c\ +line-editing/curs_write.c\ +line-editing/ft_interactive_sh.c\ +line-editing/ft_readline.c\ +line-editing/rl_bitset.c\ +line-editing/rl_clear_function.c\ +line-editing/rl_clipboard_function.c\ +line-editing/rl_clipboard_utility.c\ +line-editing/rl_comp_function.c\ +line-editing/rl_default_function.c\ +line-editing/rl_display.c\ +line-editing/rl_dynamic_buffer.c\ +line-editing/rl_long_move_function.c\ +line-editing/rl_merge_line.c\ +line-editing/rl_page_move_function.c\ +line-editing/rl_prompt.c\ +line-editing/rl_quoting_function.c\ +line-editing/rl_remove_function.c\ +line-editing/rl_setup.c\ +line-editing/rl_short_move_function.c\ +line-editing/rl_stack_line.c\ +line-editing/rl_state_function.c\ +line-editing/rl_word_move_function.c\ +line-editing/rl_word_utility.c\ +main/data_exit.c\ +main/data_init.c\ +main/ft_cleanup.c\ +main/ft_putast.c\ +main/ft_putast2.c\ +main/lib_expansion.c\ +main/main.c\ +main/sig_handler.c\ +parser/ft_parse.c\ +parser/parse_dgreat.c\ +parser/parse_dless.c\ +parser/parse_great.c\ +parser/parse_greatand.c\ +parser/parse_less.c\ +parser/parse_lessand.c\ +parser/parse_separator.c\ +parser/parse_word.c + +SRCS = $(addprefix $(SRC_DIR), $(SRC_BASE)) +OBJS = $(addprefix $(OBJ_DIR), $(SRC_BASE:.c=.o)) + +all : $(NAME) + +$(NAME): $(LIBFT_LIB) $(OBJ_DIR) $(OBJS) + @$(CC) $(FLAGS) $(D_FLAGS) \ + -I $(INC_DIR) \ + -I $(LIBFT_INC) \ + $(LIBS) \ + $(LIBFT_LIB) $(OBJS) \ + -o $(NAME) + @echo "\r\033[48;5;15;38;5;25m✅ MAKE $(NAME)\033[0m\033[K" + +$(LIBFT_LIB): + @make -j -C $(LIBFT_DIR) + +$(OBJ_DIR) : + @mkdir -p $(OBJ_DIR) + @mkdir -p $(dir $(OBJS)) + +$(OBJ_DIR)%.o : $(SRC_DIR)%.c | $(OBJ_DIR) + @$(CC) $(FLAGS) -MMD -c $< -o $@\ + -I $(INC_DIR)\ + -I $(LIBFT_INC) + @printf "\r\033[38;5;11m⌛ MAKE %s plz wait : %*s\033[0m\033[K" $(NAME) $(DELTA) "$@" + +clean: cleanlib + @rm -rf $(OBJ_DIR) + @echo "\r\033[38;5;202m✖ clean $(NAME).\033[0m\033[K" + +cleanlib: + @make -C $(LIBFT_DIR) clean + +fclean: clean fcleanlib + @rm -f $(NAME) + @echo "\r\033[38;5;196m❌ fclean $(NAME).\033[0m\033[K" + +fcleanlib: cleanlib + @make -C $(LIBFT_DIR) fclean + +re: fclean all + +relib: fcleanlib $(LIBFT_LIB) + +.PHONY : fclean clean re relib cleanlib fcleanlib + +-include $(OBJS:.o=.d) +>>>>>>> premier commit. working. . . diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h new file mode 100644 index 00000000..4df7b651 --- /dev/null +++ b/42sh/includes/glob.h @@ -0,0 +1,44 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* glob.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ +/* Updated: 2017/01/05 16:20:32 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef GLOB_H +# define GLOB_H + +# include "minishell.h" + +typedef struct s_ld +{ + void *content; + struct s_ld *next; + struct s_ld *prev; +} t_ld; + +char **glob(const char *str, char **env); +void glob_print(t_list *token, t_data *data); + +/* +** LIST D: +*/ +void ft_ld_new(t_ld **alst, void *content); +t_ld *ft_ld_front(t_ld *ld); +void ft_ld_pushfront(t_ld **alst, void *content); +void ft_ld_pushback(t_ld **alst, void *content); +size_t ft_ld_size(t_ld *ld); +void ft_ld_del(t_ld **ld, void (*del)()); +void ft_ld_clear(t_ld **ld, void (*del)()); +void ft_ld_reverse(t_ld **lst); +t_ld *ft_ld_back(t_ld *ld); +t_ld *ft_ld_swap(t_ld *l_cur); +char **ft_ld_to_tab(t_ld *ld); + + +#endif diff --git a/42sh/includes/minishell.h b/42sh/includes/minishell.h index 02b05202..108ea05b 100644 --- a/42sh/includes/minishell.h +++ b/42sh/includes/minishell.h @@ -6,7 +6,11 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:07:44 by jhalford #+# #+# */ +<<<<<<< HEAD /* Updated: 2017/01/11 17:17:16 by jhalford ### ########.fr */ +======= +/* Updated: 2017/01/05 14:24:14 by wescande ### ########.fr */ +>>>>>>> premier commit. working. . . /* */ /* ************************************************************************** */ @@ -21,8 +25,12 @@ # include "parser.h" # include "ft_readline.h" # include "exec.h" +<<<<<<< HEAD # include "builtin.h" # include "job_control.h" +======= +# include "glob.h" +>>>>>>> premier commit. working. . . # include # include diff --git a/42sh/libft b/42sh/libft index ab92f0e5..4c497745 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit ab92f0e5d817c9d726a8ccf2f11c084ba446bbdf +Subproject commit 4c4977452745481166749b813e8db51dcf0caf44 diff --git a/42sh/srcs/builtin/builtin.c b/42sh/srcs/builtin/builtin.c new file mode 100644 index 00000000..1966a63e --- /dev/null +++ b/42sh/srcs/builtin/builtin.c @@ -0,0 +1,51 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* builtin.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/28 14:21:34 by jhalford #+# #+# */ +/* Updated: 2016/12/03 15:17:21 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +t_stof g_builtin[] = { + {"echo", &builtin_echo}, + {"cd", &builtin_cd}, + {"setenv", &builtin_setenv}, + {"unsetenv", &builtin_unsetenv}, + {"env", &builtin_env}, + {"exit", &builtin_exit}, + {NULL, NULL}, +}; + +int ft_builtin(char **av, t_data *data) +{ + int i; + int ret; + + i = -1; + while (g_builtin[++i].name) + if (ft_strcmp(g_builtin[i].name, *av) == 0) + { + if (data->exec.fdout != STDOUT) + { + if (fork() == 0) + { + fd_redirect(data); + ret = (g_builtin[i].f)(av, data); + exit(ret); + } + } + else + { + ret = (g_builtin[i].f)(av, data); + set_exitstatus(data, ret); + } + return (1); + } + return (0); +} diff --git a/42sh/src/builtin/builtin_cd.c b/42sh/srcs/builtin/builtin_cd.c similarity index 100% rename from 42sh/src/builtin/builtin_cd.c rename to 42sh/srcs/builtin/builtin_cd.c diff --git a/42sh/src/builtin/builtin_echo.c b/42sh/srcs/builtin/builtin_echo.c similarity index 100% rename from 42sh/src/builtin/builtin_echo.c rename to 42sh/srcs/builtin/builtin_echo.c diff --git a/42sh/src/builtin/builtin_env.c b/42sh/srcs/builtin/builtin_env.c similarity index 100% rename from 42sh/src/builtin/builtin_env.c rename to 42sh/srcs/builtin/builtin_env.c diff --git a/42sh/src/builtin/builtin_exit.c b/42sh/srcs/builtin/builtin_exit.c similarity index 100% rename from 42sh/src/builtin/builtin_exit.c rename to 42sh/srcs/builtin/builtin_exit.c diff --git a/42sh/src/builtin/builtin_setenv.c b/42sh/srcs/builtin/builtin_setenv.c similarity index 100% rename from 42sh/src/builtin/builtin_setenv.c rename to 42sh/srcs/builtin/builtin_setenv.c diff --git a/42sh/src/builtin/builtin_unsetenv.c b/42sh/srcs/builtin/builtin_unsetenv.c similarity index 100% rename from 42sh/src/builtin/builtin_unsetenv.c rename to 42sh/srcs/builtin/builtin_unsetenv.c diff --git a/42sh/src/exec/ast_free.c b/42sh/srcs/exec/ast_free.c similarity index 100% rename from 42sh/src/exec/ast_free.c rename to 42sh/srcs/exec/ast_free.c diff --git a/42sh/src/exec/exec_and_if.c b/42sh/srcs/exec/exec_and_if.c similarity index 100% rename from 42sh/src/exec/exec_and_if.c rename to 42sh/srcs/exec/exec_and_if.c diff --git a/42sh/src/exec/exec_command.c b/42sh/srcs/exec/exec_command.c similarity index 100% rename from 42sh/src/exec/exec_command.c rename to 42sh/srcs/exec/exec_command.c diff --git a/42sh/src/exec/exec_dgreat.c b/42sh/srcs/exec/exec_dgreat.c similarity index 100% rename from 42sh/src/exec/exec_dgreat.c rename to 42sh/srcs/exec/exec_dgreat.c diff --git a/42sh/src/exec/exec_great.c b/42sh/srcs/exec/exec_great.c similarity index 100% rename from 42sh/src/exec/exec_great.c rename to 42sh/srcs/exec/exec_great.c diff --git a/42sh/src/exec/exec_less.c b/42sh/srcs/exec/exec_less.c similarity index 100% rename from 42sh/src/exec/exec_less.c rename to 42sh/srcs/exec/exec_less.c diff --git a/42sh/src/exec/exec_or_if.c b/42sh/srcs/exec/exec_or_if.c similarity index 100% rename from 42sh/src/exec/exec_or_if.c rename to 42sh/srcs/exec/exec_or_if.c diff --git a/42sh/src/exec/exec_pipe.c b/42sh/srcs/exec/exec_pipe.c similarity index 100% rename from 42sh/src/exec/exec_pipe.c rename to 42sh/srcs/exec/exec_pipe.c diff --git a/42sh/src/exec/exec_semi.c b/42sh/srcs/exec/exec_semi.c similarity index 100% rename from 42sh/src/exec/exec_semi.c rename to 42sh/srcs/exec/exec_semi.c diff --git a/42sh/srcs/exec/fd_redirect.c b/42sh/srcs/exec/fd_redirect.c new file mode 100644 index 00000000..6c1d8c47 --- /dev/null +++ b/42sh/srcs/exec/fd_redirect.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_redirect.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/29 16:04:18 by jhalford #+# #+# */ +/* Updated: 2016/12/03 15:24:08 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void fd_redirect(t_data *data) +{ + if (data->exec.fdin != STDIN) + { + dup2(data->exec.fdin, STDIN); + close(data->exec.fdin); + } + if (data->exec.fdout != STDOUT) + { + dup2(data->exec.fdout, STDOUT); + close(data->exec.fdout); + } +} diff --git a/42sh/srcs/exec/ft_cmd.c b/42sh/srcs/exec/ft_cmd.c new file mode 100644 index 00000000..adb9d6db --- /dev/null +++ b/42sh/srcs/exec/ft_cmd.c @@ -0,0 +1,65 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_cmd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/27 21:13:18 by jhalford #+# #+# */ +/* Updated: 2016/12/09 21:50:26 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +extern pid_t g_pid; + +int ft_cmd_process(char **argv, t_data *data) +{ + char *execpath; + + ft_expand_dollar(argv, data->env); + if (ft_builtin(argv, data)) + return (0); + else if (ft_strchr(argv[0], '/')) + execpath = argv[0]; + else if (!(execpath = ft_findexec(ft_getenv(data->env, "PATH"), argv[0]))) + { + ft_dprintf(2, "%s: command not found: %s\n", SHELL_NAME, argv[0]); + set_exitstatus(data, 127); + return (-1); + } + return (ft_cmd_exec(execpath, argv, data)); +} + +int ft_cmd_exec(char *execpath, char **argv, t_data *data) +{ + pid_t pid; + int status; + + if (access(execpath, X_OK) == -1) + { + ft_dprintf(2, "%s: permission denied: %s\n", SHELL_NAME, argv[0]); + ft_strdel(&execpath); + return (-1); + } + if ((pid = fork()) == -1) + return (-1); + else if (pid == 0) + { + fd_redirect(data); + execve(execpath, argv, data->env); + } + else + { + ft_strdel(&execpath); + g_pid = pid; + if (data->exec.fdout == STDOUT) + { + waitpid(pid, &status, 0); + set_exitstatus(data, status); + } + g_pid = 0; + } + return (0); +} diff --git a/42sh/src/exec/ft_exec.c b/42sh/srcs/exec/ft_exec.c similarity index 100% rename from 42sh/src/exec/ft_exec.c rename to 42sh/srcs/exec/ft_exec.c diff --git a/42sh/src/exec/ft_findexec.c b/42sh/srcs/exec/ft_findexec.c similarity index 100% rename from 42sh/src/exec/ft_findexec.c rename to 42sh/srcs/exec/ft_findexec.c diff --git a/42sh/src/exec/set_exitstatus.c b/42sh/srcs/exec/set_exitstatus.c similarity index 100% rename from 42sh/src/exec/set_exitstatus.c rename to 42sh/srcs/exec/set_exitstatus.c diff --git a/42sh/srcs/glob/glob.c b/42sh/srcs/glob/glob.c new file mode 100644 index 00000000..49f54440 --- /dev/null +++ b/42sh/srcs/glob/glob.c @@ -0,0 +1,133 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* glob.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ +/* Updated: 2017/01/05 20:09:14 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +/* +** glob return expansion of a string. +** pattern searched are ~, *, ?, [a-z], [!a-z], [^a-z], {ab}. +** input parameters are : +** -char *pat -> pattern string to be looking for match +** -char **env -> env var. could be NULL + to just expanse in local directory and not in path +*/ + +static void ft_tabdel(char ***mytab) +{ + char **erase; + int i; + + if (!mytab || !*mytab) + return ; + erase = *mytab; + i = 0; + while (erase[i]) + { + ft_strdel(&erase[i]); + ++i; + } + free(*mytab); + *mytab = NULL; +} + +static int match_bracket(const char **pat, char **str) +{ + return (1); +} + +static int match_star(const char *pat, char *str) +{ + char *fix; + + fix = str + ft_strlen(str); + return (1); +} + +static int match_pattern(const char *pat, char *str) +{ + while (*pat) + { + if (*pat == '?') + str++; + else if (*pat == '[') + { + if (!match_bracket(&pat, &str)) + return (0); + } + else if (*pat == '*') + return (match_star(pat, str)); + else if (*pat == '\\') + { + if (!*++pat || *str != *pat) + return (0); + } + else if (*pat != *str) + return (0); + ++str; + } + return (*str ? 0 : 1); +} + +static void dir_research(const char *pat, char *path, t_ld **match) +{ + DIR *dir; + struct dirent *inside; + + if (!(dir = opendir(path))) + return ; + while ((inside = readdir(dir))) + { + if (match_pattern(pat, inside->d_name)) + ft_ld_pushfront(match, ft_strdup(inside->d_name)); + } +} + +static void path_research(const char *pat, char **path, t_ld **match) +{ + int i; + int len; + char *good_path; + + i = -1; + good_path = NULL; + while (path[++i]) + { + good_path = ft_strjoin(path[i], "/"); + while ((len = ft_strlen(good_path)) && good_path[len - 1] == '/' + && good_path[len - 2] == '/') + good_path[ft_strlen(good_path) - 1] = '\0'; + dir_research(pat, good_path, match); + ft_strdel(&good_path); + } +} + +char **glob(const char *pat, char **env) +{ + t_ld *match; + char **gl; + char **path; + + match = NULL; + gl = NULL; + if (env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':'))) + { + path_research(pat, path, &match); + ft_tabdel(&path); + } + dir_research(pat, "./", &match); + if (match) + { + gl = ft_ld_to_tab(match); + ft_ld_clear(&match, &ft_strdel); + } + return (gl); +} diff --git a/42sh/srcs/glob/glob_print.c b/42sh/srcs/glob/glob_print.c new file mode 100644 index 00000000..eba06727 --- /dev/null +++ b/42sh/srcs/glob/glob_print.c @@ -0,0 +1,48 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* glob_print.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/05 16:09:40 by wescande #+# #+# */ +/* Updated: 2017/01/05 16:31:36 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +void ft_tabprint_fd(char **mytab, int fd) +{ + int i; + + if (!mytab || !*mytab) + return ; + i = 0; + while (mytab[i]) + { + ft_putendl_fd(mytab[i], fd); + ++i; + } +} + +void glob_print(t_list *lst, t_data *data) +{ + t_token *token; + int i; + t_type type; + char **glob_ret; + + while (lst) + { + i = 1; + token = lst->content; + type = token->type; + while (type >> (i++ + 2)) + ; + glob_ret = glob(token->data, data->env); + DG("%02i '%s'", i, token->data); + ft_tabprint_fd(glob_ret, 2); + lst = lst->next; + } +} diff --git a/42sh/srcs/glob/ld/ft_ld_back.c b/42sh/srcs/glob/ld/ft_ld_back.c new file mode 100644 index 00000000..d448f449 --- /dev/null +++ b/42sh/srcs/glob/ld/ft_ld_back.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_back.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/16 16:23:26 by wescande #+# #+# */ +/* Updated: 2017/01/05 14:16:53 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +t_ld *ft_ld_back(t_ld *ld) +{ + if (ld) + while (ld->next) + ld = ld->next; + return (ld); +} diff --git a/42sh/srcs/glob/ld/ft_ld_clear.c b/42sh/srcs/glob/ld/ft_ld_clear.c new file mode 100644 index 00000000..962d3c11 --- /dev/null +++ b/42sh/srcs/glob/ld/ft_ld_clear.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_clear.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/06 19:56:49 by wescande #+# #+# */ +/* Updated: 2017/01/05 14:17:11 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +void ft_ld_clear(t_ld **ld, void (*del)()) +{ + if (!ld || !*ld) + return ; + *ld = ft_ld_front(*ld); + while (*ld) + { + ft_ld_del(ld, del); + } +} diff --git a/42sh/srcs/glob/ld/ft_ld_del.c b/42sh/srcs/glob/ld/ft_ld_del.c new file mode 100644 index 00000000..69852e67 --- /dev/null +++ b/42sh/srcs/glob/ld/ft_ld_del.c @@ -0,0 +1,36 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_del.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/06 15:54:53 by wescande #+# #+# */ +/* Updated: 2017/01/05 14:17:18 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +void ft_ld_del(t_ld **ld, void (*del)()) +{ + t_ld *next; + t_ld *prev; + + if (!ld || !*ld) + return ; + next = (*ld)->next; + prev = (*ld)->prev; + if ((*ld)->content && del) + del(&(*ld)->content); + free(*ld); + if (next) + next->prev = prev; + if (prev) + { + prev->next = next; + *ld = prev; + } + else + *ld = next; +} diff --git a/42sh/srcs/glob/ld/ft_ld_front.c b/42sh/srcs/glob/ld/ft_ld_front.c new file mode 100644 index 00000000..1599f49e --- /dev/null +++ b/42sh/srcs/glob/ld/ft_ld_front.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_front.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/01 18:26:11 by wescande #+# #+# */ +/* Updated: 2017/01/05 14:17:27 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +t_ld *ft_ld_front(t_ld *ld) +{ + if (ld) + while (ld->prev) + ld = ld->prev; + return (ld); +} diff --git a/42sh/srcs/glob/ld/ft_ld_new.c b/42sh/srcs/glob/ld/ft_ld_new.c new file mode 100644 index 00000000..eece5e18 --- /dev/null +++ b/42sh/srcs/glob/ld/ft_ld_new.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_new.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/01 18:17:34 by wescande #+# #+# */ +/* Updated: 2017/01/05 14:17:34 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +void ft_ld_new(t_ld **alst, void *content) +{ + t_ld *new; + + if ((new = (t_ld *)malloc(sizeof(t_ld)))) + { + new->content = content; + new->prev = NULL; + new->next = NULL; + *alst = new; + } +} diff --git a/42sh/srcs/glob/ld/ft_ld_pushback.c b/42sh/srcs/glob/ld/ft_ld_pushback.c new file mode 100644 index 00000000..25a1d019 --- /dev/null +++ b/42sh/srcs/glob/ld/ft_ld_pushback.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_pushback.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/16 15:59:38 by wescande #+# #+# */ +/* Updated: 2017/01/05 14:17:40 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +void ft_ld_pushback(t_ld **alst, void *content) +{ + t_ld *new; + t_ld *back; + + if (!alst || !*alst) + return (ft_ld_new(alst, content)); + if ((new = (t_ld *)malloc(sizeof(t_ld)))) + { + back = ft_ld_back(*alst); + new->prev = back; + new->next = NULL; + new->content = content; + back->next = new; + } +} diff --git a/42sh/srcs/glob/ld/ft_ld_pushfront.c b/42sh/srcs/glob/ld/ft_ld_pushfront.c new file mode 100644 index 00000000..5f830ee1 --- /dev/null +++ b/42sh/srcs/glob/ld/ft_ld_pushfront.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_pushfront.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/01 18:32:40 by wescande #+# #+# */ +/* Updated: 2017/01/05 14:17:46 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +void ft_ld_pushfront(t_ld **alst, void *content) +{ + t_ld *new; + t_ld *front; + + if (!alst || !*alst) + return (ft_ld_new(alst, content)); + if ((new = (t_ld *)malloc(sizeof(t_ld)))) + { + front = ft_ld_front(*alst); + new->next = front; + new->prev = NULL; + new->content = content; + front->prev = new; + *alst = new; + } +} diff --git a/42sh/srcs/glob/ld/ft_ld_reverse.c b/42sh/srcs/glob/ld/ft_ld_reverse.c new file mode 100644 index 00000000..62ffe670 --- /dev/null +++ b/42sh/srcs/glob/ld/ft_ld_reverse.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_reverse.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/12 14:16:04 by wescande #+# #+# */ +/* Updated: 2017/01/05 14:17:53 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +void ft_ld_reverse(t_ld **lst) +{ + t_ld *l_prev; + t_ld *l_next; + t_ld *l_cur; + + l_cur = ft_ld_front(*lst); + l_prev = NULL; + while (l_cur) + { + l_next = l_cur->next; + l_cur->next = l_prev; + l_cur->prev = l_next; + l_prev = l_cur; + l_cur = l_next; + } + *lst = l_prev; +} diff --git a/42sh/srcs/glob/ld/ft_ld_size.c b/42sh/srcs/glob/ld/ft_ld_size.c new file mode 100644 index 00000000..aab41b06 --- /dev/null +++ b/42sh/srcs/glob/ld/ft_ld_size.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_size.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/01 18:33:48 by wescande #+# #+# */ +/* Updated: 2017/01/05 14:17:59 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +size_t ft_ld_size(t_ld *ld) +{ + size_t size; + + size = 0; + ld = ft_ld_front(ld); + while (ld) + { + ++size; + ld = ld->next; + } + return (size); +} diff --git a/42sh/srcs/glob/ld/ft_ld_swap.c b/42sh/srcs/glob/ld/ft_ld_swap.c new file mode 100644 index 00000000..6e6ff87b --- /dev/null +++ b/42sh/srcs/glob/ld/ft_ld_swap.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_swap.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/24 21:12:53 by wescande #+# #+# */ +/* Updated: 2017/01/05 14:18:06 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +t_ld *ft_ld_swap(t_ld *l_cur) +{ + t_ld *l_next; + t_ld *l_prev; + + l_next = l_cur; + if (l_cur && l_cur->next) + { + l_prev = l_cur->prev; + l_next = l_cur->next; + l_cur->next = l_next->next; + if (l_cur->next) + l_cur->next->prev = l_cur; + l_cur->prev = l_next; + l_next->next = l_cur; + l_next->prev = l_prev; + if (l_prev) + l_prev->next = l_next; + } + return (l_next); +} diff --git a/42sh/srcs/glob/ld/ft_ld_to_tab.c b/42sh/srcs/glob/ld/ft_ld_to_tab.c new file mode 100644 index 00000000..e6db262d --- /dev/null +++ b/42sh/srcs/glob/ld/ft_ld_to_tab.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_to_tab.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/05 16:17:00 by wescande #+# #+# */ +/* Updated: 2017/01/05 16:22:12 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +char **ft_ld_to_tab(t_ld *ld) +{ + char **my_tab; + int nb_item; + int index; + + if (!ld) + return (NULL); + nb_item = ft_ld_size(ld); + if (!(my_tab = (char **)malloc(sizeof(char *) * (nb_item + 1)))) + return (NULL); + index = 0; + while (ld) + { + my_tab[index++] = ft_strdup((char *)ld->content); + ld = ld->next; + } + my_tab[index] = NULL; + return (my_tab); +} diff --git a/42sh/src/lexer/ft_tokenize.c b/42sh/srcs/lexer/ft_tokenize.c similarity index 100% rename from 42sh/src/lexer/ft_tokenize.c rename to 42sh/srcs/lexer/ft_tokenize.c diff --git a/42sh/src/lexer/lexer_backslash.c b/42sh/srcs/lexer/lexer_backslash.c similarity index 100% rename from 42sh/src/lexer/lexer_backslash.c rename to 42sh/srcs/lexer/lexer_backslash.c diff --git a/42sh/src/lexer/lexer_default.c b/42sh/srcs/lexer/lexer_default.c similarity index 100% rename from 42sh/src/lexer/lexer_default.c rename to 42sh/srcs/lexer/lexer_default.c diff --git a/42sh/src/lexer/lexer_delim.c b/42sh/srcs/lexer/lexer_delim.c similarity index 100% rename from 42sh/src/lexer/lexer_delim.c rename to 42sh/srcs/lexer/lexer_delim.c diff --git a/42sh/src/lexer/lexer_dquote.c b/42sh/srcs/lexer/lexer_dquote.c similarity index 100% rename from 42sh/src/lexer/lexer_dquote.c rename to 42sh/srcs/lexer/lexer_dquote.c diff --git a/42sh/src/lexer/lexer_great.c b/42sh/srcs/lexer/lexer_great.c similarity index 100% rename from 42sh/src/lexer/lexer_great.c rename to 42sh/srcs/lexer/lexer_great.c diff --git a/42sh/src/lexer/lexer_greatand.c b/42sh/srcs/lexer/lexer_greatand.c similarity index 100% rename from 42sh/src/lexer/lexer_greatand.c rename to 42sh/srcs/lexer/lexer_greatand.c diff --git a/42sh/src/lexer/lexer_less.c b/42sh/srcs/lexer/lexer_less.c similarity index 100% rename from 42sh/src/lexer/lexer_less.c rename to 42sh/srcs/lexer/lexer_less.c diff --git a/42sh/src/lexer/lexer_lessand.c b/42sh/srcs/lexer/lexer_lessand.c similarity index 100% rename from 42sh/src/lexer/lexer_lessand.c rename to 42sh/srcs/lexer/lexer_lessand.c diff --git a/42sh/src/lexer/lexer_number.c b/42sh/srcs/lexer/lexer_number.c similarity index 100% rename from 42sh/src/lexer/lexer_number.c rename to 42sh/srcs/lexer/lexer_number.c diff --git a/42sh/src/lexer/lexer_quote.c b/42sh/srcs/lexer/lexer_quote.c similarity index 100% rename from 42sh/src/lexer/lexer_quote.c rename to 42sh/srcs/lexer/lexer_quote.c diff --git a/42sh/src/lexer/lexer_sep.c b/42sh/srcs/lexer/lexer_sep.c similarity index 100% rename from 42sh/src/lexer/lexer_sep.c rename to 42sh/srcs/lexer/lexer_sep.c diff --git a/42sh/src/lexer/lexer_word.c b/42sh/srcs/lexer/lexer_word.c similarity index 100% rename from 42sh/src/lexer/lexer_word.c rename to 42sh/srcs/lexer/lexer_word.c diff --git a/42sh/src/lexer/token_append.c b/42sh/srcs/lexer/token_append.c similarity index 100% rename from 42sh/src/lexer/token_append.c rename to 42sh/srcs/lexer/token_append.c diff --git a/42sh/src/lexer/token_cmp_type.c b/42sh/srcs/lexer/token_cmp_type.c similarity index 100% rename from 42sh/src/lexer/token_cmp_type.c rename to 42sh/srcs/lexer/token_cmp_type.c diff --git a/42sh/src/lexer/token_free.c b/42sh/srcs/lexer/token_free.c similarity index 100% rename from 42sh/src/lexer/token_free.c rename to 42sh/srcs/lexer/token_free.c diff --git a/42sh/src/lexer/token_init.c b/42sh/srcs/lexer/token_init.c similarity index 100% rename from 42sh/src/lexer/token_init.c rename to 42sh/srcs/lexer/token_init.c diff --git a/42sh/src/lexer/token_print.c b/42sh/srcs/lexer/token_print.c similarity index 100% rename from 42sh/src/lexer/token_print.c rename to 42sh/srcs/lexer/token_print.c diff --git a/42sh/src/line-editing/curs_ask.c b/42sh/srcs/line-editing/curs_ask.c similarity index 100% rename from 42sh/src/line-editing/curs_ask.c rename to 42sh/srcs/line-editing/curs_ask.c diff --git a/42sh/src/line-editing/curs_clear.c b/42sh/srcs/line-editing/curs_clear.c similarity index 100% rename from 42sh/src/line-editing/curs_clear.c rename to 42sh/srcs/line-editing/curs_clear.c diff --git a/42sh/src/line-editing/curs_goto.c b/42sh/srcs/line-editing/curs_goto.c similarity index 100% rename from 42sh/src/line-editing/curs_goto.c rename to 42sh/srcs/line-editing/curs_goto.c diff --git a/42sh/src/line-editing/curs_move.c b/42sh/srcs/line-editing/curs_move.c similarity index 100% rename from 42sh/src/line-editing/curs_move.c rename to 42sh/srcs/line-editing/curs_move.c diff --git a/42sh/src/line-editing/curs_setup.c b/42sh/srcs/line-editing/curs_setup.c similarity index 100% rename from 42sh/src/line-editing/curs_setup.c rename to 42sh/srcs/line-editing/curs_setup.c diff --git a/42sh/src/line-editing/curs_single.c b/42sh/srcs/line-editing/curs_single.c similarity index 100% rename from 42sh/src/line-editing/curs_single.c rename to 42sh/srcs/line-editing/curs_single.c diff --git a/42sh/src/line-editing/curs_term_setup.c b/42sh/srcs/line-editing/curs_term_setup.c similarity index 100% rename from 42sh/src/line-editing/curs_term_setup.c rename to 42sh/srcs/line-editing/curs_term_setup.c diff --git a/42sh/src/line-editing/curs_write.c b/42sh/srcs/line-editing/curs_write.c similarity index 100% rename from 42sh/src/line-editing/curs_write.c rename to 42sh/srcs/line-editing/curs_write.c diff --git a/42sh/srcs/line-editing/ft_interactive_sh.c b/42sh/srcs/line-editing/ft_interactive_sh.c new file mode 100644 index 00000000..5110f44b --- /dev/null +++ b/42sh/srcs/line-editing/ft_interactive_sh.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* interactive_sh.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: sbenning +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/10 09:44:43 by sbenning #+# #+# */ +/* Updated: 2016/12/10 10:24:12 by sbenning ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "line_editing.h" + +t_data **data_singleton(void) +{ + static t_data *data; + + return (&data); +} + +int ft_interactive_sh(t_data *data) +{ + *data_singleton() = data; + return (ft_readline(&data->line)); +} diff --git a/42sh/src/line-editing/ft_readline.c b/42sh/srcs/line-editing/ft_readline.c similarity index 100% rename from 42sh/src/line-editing/ft_readline.c rename to 42sh/srcs/line-editing/ft_readline.c diff --git a/42sh/src/line-editing/rl_bitset.c b/42sh/srcs/line-editing/rl_bitset.c similarity index 100% rename from 42sh/src/line-editing/rl_bitset.c rename to 42sh/srcs/line-editing/rl_bitset.c diff --git a/42sh/src/line-editing/rl_clear_function.c b/42sh/srcs/line-editing/rl_clear_function.c similarity index 100% rename from 42sh/src/line-editing/rl_clear_function.c rename to 42sh/srcs/line-editing/rl_clear_function.c diff --git a/42sh/src/line-editing/rl_clipboard_function.c b/42sh/srcs/line-editing/rl_clipboard_function.c similarity index 100% rename from 42sh/src/line-editing/rl_clipboard_function.c rename to 42sh/srcs/line-editing/rl_clipboard_function.c diff --git a/42sh/src/line-editing/rl_clipboard_utility.c b/42sh/srcs/line-editing/rl_clipboard_utility.c similarity index 100% rename from 42sh/src/line-editing/rl_clipboard_utility.c rename to 42sh/srcs/line-editing/rl_clipboard_utility.c diff --git a/42sh/src/line-editing/rl_comp_function.c b/42sh/srcs/line-editing/rl_comp_function.c similarity index 100% rename from 42sh/src/line-editing/rl_comp_function.c rename to 42sh/srcs/line-editing/rl_comp_function.c diff --git a/42sh/src/line-editing/rl_default_function.c b/42sh/srcs/line-editing/rl_default_function.c similarity index 100% rename from 42sh/src/line-editing/rl_default_function.c rename to 42sh/srcs/line-editing/rl_default_function.c diff --git a/42sh/src/line-editing/rl_display.c b/42sh/srcs/line-editing/rl_display.c similarity index 100% rename from 42sh/src/line-editing/rl_display.c rename to 42sh/srcs/line-editing/rl_display.c diff --git a/42sh/src/line-editing/rl_dynamic_buffer.c b/42sh/srcs/line-editing/rl_dynamic_buffer.c similarity index 100% rename from 42sh/src/line-editing/rl_dynamic_buffer.c rename to 42sh/srcs/line-editing/rl_dynamic_buffer.c diff --git a/42sh/src/line-editing/rl_long_move_function.c b/42sh/srcs/line-editing/rl_long_move_function.c similarity index 100% rename from 42sh/src/line-editing/rl_long_move_function.c rename to 42sh/srcs/line-editing/rl_long_move_function.c diff --git a/42sh/src/line-editing/rl_merge_line.c b/42sh/srcs/line-editing/rl_merge_line.c similarity index 100% rename from 42sh/src/line-editing/rl_merge_line.c rename to 42sh/srcs/line-editing/rl_merge_line.c diff --git a/42sh/src/line-editing/rl_page_move_function.c b/42sh/srcs/line-editing/rl_page_move_function.c similarity index 100% rename from 42sh/src/line-editing/rl_page_move_function.c rename to 42sh/srcs/line-editing/rl_page_move_function.c diff --git a/42sh/src/line-editing/rl_prompt.c b/42sh/srcs/line-editing/rl_prompt.c similarity index 100% rename from 42sh/src/line-editing/rl_prompt.c rename to 42sh/srcs/line-editing/rl_prompt.c diff --git a/42sh/src/line-editing/rl_quoting_function.c b/42sh/srcs/line-editing/rl_quoting_function.c similarity index 100% rename from 42sh/src/line-editing/rl_quoting_function.c rename to 42sh/srcs/line-editing/rl_quoting_function.c diff --git a/42sh/src/line-editing/rl_remove_function.c b/42sh/srcs/line-editing/rl_remove_function.c similarity index 100% rename from 42sh/src/line-editing/rl_remove_function.c rename to 42sh/srcs/line-editing/rl_remove_function.c diff --git a/42sh/src/line-editing/rl_setup.c b/42sh/srcs/line-editing/rl_setup.c similarity index 100% rename from 42sh/src/line-editing/rl_setup.c rename to 42sh/srcs/line-editing/rl_setup.c diff --git a/42sh/src/line-editing/rl_short_move_function.c b/42sh/srcs/line-editing/rl_short_move_function.c similarity index 100% rename from 42sh/src/line-editing/rl_short_move_function.c rename to 42sh/srcs/line-editing/rl_short_move_function.c diff --git a/42sh/src/line-editing/rl_stack_line.c b/42sh/srcs/line-editing/rl_stack_line.c similarity index 100% rename from 42sh/src/line-editing/rl_stack_line.c rename to 42sh/srcs/line-editing/rl_stack_line.c diff --git a/42sh/src/line-editing/rl_state_function.c b/42sh/srcs/line-editing/rl_state_function.c similarity index 100% rename from 42sh/src/line-editing/rl_state_function.c rename to 42sh/srcs/line-editing/rl_state_function.c diff --git a/42sh/src/line-editing/rl_word_move_function.c b/42sh/srcs/line-editing/rl_word_move_function.c similarity index 100% rename from 42sh/src/line-editing/rl_word_move_function.c rename to 42sh/srcs/line-editing/rl_word_move_function.c diff --git a/42sh/src/line-editing/rl_word_utility.c b/42sh/srcs/line-editing/rl_word_utility.c similarity index 100% rename from 42sh/src/line-editing/rl_word_utility.c rename to 42sh/srcs/line-editing/rl_word_utility.c diff --git a/42sh/src/main/data_exit.c b/42sh/srcs/main/data_exit.c similarity index 100% rename from 42sh/src/main/data_exit.c rename to 42sh/srcs/main/data_exit.c diff --git a/42sh/src/main/data_init.c b/42sh/srcs/main/data_init.c similarity index 100% rename from 42sh/src/main/data_init.c rename to 42sh/srcs/main/data_init.c diff --git a/42sh/srcs/main/ft_cleanup.c b/42sh/srcs/main/ft_cleanup.c new file mode 100644 index 00000000..7cf6aa3b --- /dev/null +++ b/42sh/srcs/main/ft_cleanup.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_cleanup.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/01 14:42:42 by jhalford #+# #+# */ +/* Updated: 2016/12/09 21:50:38 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +extern char **environ; +extern char PC; +extern char *UP; +extern char *BC; + +void ft_cleanup(void) +{ + struct termios term; + + DG("cleanup. char * UP at %p", UP); + DG("cleanup. char * BC at %p", BC); + if (tcgetattr(0, &term) == -1) + return ; + term.c_lflag |= ICANON | ISIG | ECHO; + if (tcsetattr(0, TCSANOW, &term) == -1) + return ; +} diff --git a/42sh/src/main/ft_putast.c b/42sh/srcs/main/ft_putast.c similarity index 100% rename from 42sh/src/main/ft_putast.c rename to 42sh/srcs/main/ft_putast.c diff --git a/42sh/src/main/ft_putast2.c b/42sh/srcs/main/ft_putast2.c similarity index 100% rename from 42sh/src/main/ft_putast2.c rename to 42sh/srcs/main/ft_putast2.c diff --git a/42sh/srcs/main/lib_expansion.c b/42sh/srcs/main/lib_expansion.c new file mode 100644 index 00000000..8905c284 --- /dev/null +++ b/42sh/srcs/main/lib_expansion.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* lib_expansion.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/03 13:37:41 by jhalford #+# #+# */ +/* Updated: 2016/12/03 13:37:41 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_expand_dollar(char **av, char **env) +{ + char *dollar; + + while (*av) + { + if ((dollar = ft_strchr(*av, '$'))) + { + *dollar = '\0'; + *av = ft_strjoin(*av, ft_getenv(env, dollar + 1)); + } + av++; + } +} diff --git a/42sh/src/main/main.c b/42sh/srcs/main/main.c similarity index 78% rename from 42sh/src/main/main.c rename to 42sh/srcs/main/main.c index 27e00034..0228f689 100644 --- a/42sh/src/main/main.c +++ b/42sh/srcs/main/main.c @@ -6,7 +6,11 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ +<<<<<<< HEAD:src/main/main.c /* Updated: 2017/01/12 14:02:30 by jhalford ### ########.fr */ +======= +/* Updated: 2017/01/05 16:07:09 by wescande ### ########.fr */ +>>>>>>> premier commit. working. . .:srcs/main/main.c /* */ /* ************************************************************************** */ @@ -52,7 +56,21 @@ int main(int ac, char **av) } while (1) { +<<<<<<< HEAD:src/main/main.c if (ft_readline()) +======= + if (ft_interactive_sh(&data)) + return (1); + DG("{inv}{mag}got command '%s'", data.line.input); + token = NULL; + if (ft_tokenize(&token, data.line.input, DEFAULT)) + return (1); + if (!token) + continue ; +// token_print(token); + glob_print(token, &data); + if (ft_parse(&ast, &token)) +>>>>>>> premier commit. working. . .:srcs/main/main.c return (1); if (shell_single_command(data_singleton()->line.input)) return (1); diff --git a/42sh/srcs/main/sig_handler.c b/42sh/srcs/main/sig_handler.c new file mode 100644 index 00000000..d56b03ee --- /dev/null +++ b/42sh/srcs/main/sig_handler.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* sig_handler.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/01 12:43:22 by jhalford #+# #+# */ +/* Updated: 2016/12/03 13:31:33 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +pid_t g_pid; + +void sig_handler(int signo) +{ + (void)signo; + if (signo == SIGINT) + { + if (g_pid) + kill(g_pid, SIGINT); + if (kill(g_pid, 0) == 0) + ft_putendl(""); + } +} diff --git a/42sh/src/parser/ft_parse.c b/42sh/srcs/parser/ft_parse.c similarity index 100% rename from 42sh/src/parser/ft_parse.c rename to 42sh/srcs/parser/ft_parse.c diff --git a/42sh/src/parser/parse_dgreat.c b/42sh/srcs/parser/parse_dgreat.c similarity index 100% rename from 42sh/src/parser/parse_dgreat.c rename to 42sh/srcs/parser/parse_dgreat.c diff --git a/42sh/src/parser/parse_dless.c b/42sh/srcs/parser/parse_dless.c similarity index 100% rename from 42sh/src/parser/parse_dless.c rename to 42sh/srcs/parser/parse_dless.c diff --git a/42sh/src/parser/parse_great.c b/42sh/srcs/parser/parse_great.c similarity index 100% rename from 42sh/src/parser/parse_great.c rename to 42sh/srcs/parser/parse_great.c diff --git a/42sh/src/parser/parse_greatand.c b/42sh/srcs/parser/parse_greatand.c similarity index 100% rename from 42sh/src/parser/parse_greatand.c rename to 42sh/srcs/parser/parse_greatand.c diff --git a/42sh/src/parser/parse_less.c b/42sh/srcs/parser/parse_less.c similarity index 100% rename from 42sh/src/parser/parse_less.c rename to 42sh/srcs/parser/parse_less.c diff --git a/42sh/src/parser/parse_lessand.c b/42sh/srcs/parser/parse_lessand.c similarity index 100% rename from 42sh/src/parser/parse_lessand.c rename to 42sh/srcs/parser/parse_lessand.c diff --git a/42sh/src/parser/parse_separator.c b/42sh/srcs/parser/parse_separator.c similarity index 100% rename from 42sh/src/parser/parse_separator.c rename to 42sh/srcs/parser/parse_separator.c diff --git a/42sh/src/parser/parse_word.c b/42sh/srcs/parser/parse_word.c similarity index 100% rename from 42sh/src/parser/parse_word.c rename to 42sh/srcs/parser/parse_word.c From 87b70c835894c75d11ffcb3e5556987ec63fd87a Mon Sep 17 00:00:00 2001 From: wescande Date: Thu, 12 Jan 2017 18:43:27 +0100 Subject: [PATCH 22/67] le match fonctionne avec les [ab], les [a-z] les [^ ou avec le ! a-z] et Il manque encore le * et les {}. Gestion du ~ a ajouter aussi --- 42sh/includes/glob.h | 2 +- 42sh/srcs/glob/glob.c | 74 +++++++++++++++++++++++++++++++------ 42sh/srcs/glob/glob_print.c | 2 +- 3 files changed, 65 insertions(+), 13 deletions(-) diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 4df7b651..4ad01613 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/05 16:20:32 by wescande ### ########.fr */ +/* Updated: 2017/01/12 17:14:38 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/srcs/glob/glob.c b/42sh/srcs/glob/glob.c index 49f54440..7aff12d4 100644 --- a/42sh/srcs/glob/glob.c +++ b/42sh/srcs/glob/glob.c @@ -6,20 +6,20 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/05 20:09:14 by wescande ### ########.fr */ +/* Updated: 2017/01/12 18:37:44 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "glob.h" /* -** glob return expansion of a string. -** pattern searched are ~, *, ?, [a-z], [!a-z], [^a-z], {ab}. -** input parameters are : -** -char *pat -> pattern string to be looking for match -** -char **env -> env var. could be NULL - to just expanse in local directory and not in path -*/ + ** glob return expansion of a string. + ** pattern searched are ~, *, ?, [a-z], [!a-z], [^a-z], {ab}. + ** input parameters are : + ** -char *pat -> pattern string to be looking for match + ** -char **env -> env var. could be NULL + ** to just expanse in local directory and not in path + */ static void ft_tabdel(char ***mytab) { @@ -39,15 +39,66 @@ static void ft_tabdel(char ***mytab) *mytab = NULL; } -static int match_bracket(const char **pat, char **str) +static int match_bracket_char(char **cmp, const char *pat, char c, int neg) { - return (1); + int dir; + char s; + + if ((*cmp + 2) < pat && (*cmp)[1] == '-' && (s = (*cmp)[0])) + { + dir = s > (*cmp)[2]; + while ((dir && s >= (*cmp)[2]) || (!dir && s <= (*cmp)[2])) + { + if (!neg && s == c) + return (1); + else if (neg && s == c) + return (0); + s += (dir * -2 + 1); + } + *cmp += 2; + } + else if (!neg && **cmp == c) + { + return (1); + } + else if (neg && **cmp == c) + { + return (0); + } + return (-1); +} + +static int match_bracket(const char **pat, char c) +{ + char *cmp; + int neg; + int ret; + + cmp = (char *)*pat + 1; + while (**pat != ']') + { + if (!**pat) + return (0); + ++*pat; + } + neg = 0; + if ((*cmp == '^' || *cmp == '!') && ++neg) + ++cmp; + while (cmp < *pat) + { + ret = match_bracket_char(&cmp, *pat, c, neg); + if (ret != -1) + return (ret); + ++cmp; + } + return (neg); } static int match_star(const char *pat, char *str) { char *fix; + (void)pat; fix = str + ft_strlen(str); return (1); } @@ -60,7 +111,7 @@ static int match_pattern(const char *pat, char *str) str++; else if (*pat == '[') { - if (!match_bracket(&pat, &str)) + if (!match_bracket(&pat, *str)) return (0); } else if (*pat == '*') @@ -73,6 +124,7 @@ static int match_pattern(const char *pat, char *str) else if (*pat != *str) return (0); ++str; + ++pat; } return (*str ? 0 : 1); } diff --git a/42sh/srcs/glob/glob_print.c b/42sh/srcs/glob/glob_print.c index eba06727..828089a5 100644 --- a/42sh/srcs/glob/glob_print.c +++ b/42sh/srcs/glob/glob_print.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:09:40 by wescande #+# #+# */ -/* Updated: 2017/01/05 16:31:36 by wescande ### ########.fr */ +/* Updated: 2017/01/12 15:48:03 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ From 9cfecf1130a7707493f61b4070e26a9f47fde34a Mon Sep 17 00:00:00 2001 From: wescande Date: Thu, 12 Jan 2017 18:52:42 +0100 Subject: [PATCH 23/67] ajout du match avec *, pas de recursivite sur ** ni sur */*/*/* --- 42sh/srcs/glob/glob.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/42sh/srcs/glob/glob.c b/42sh/srcs/glob/glob.c index 7aff12d4..2731809b 100644 --- a/42sh/srcs/glob/glob.c +++ b/42sh/srcs/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/12 18:37:44 by wescande ### ########.fr */ +/* Updated: 2017/01/12 18:48:26 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -94,13 +94,22 @@ static int match_bracket(const char **pat, char c) return (neg); } +static int match_pattern(const char *pat, char *str); + static int match_star(const char *pat, char *str) { char *fix; - (void)pat; + if (!pat[1]) + return (1); fix = str + ft_strlen(str); - return (1); + while (fix > str) + { + if (match_pattern(pat + 1, fix)) + return (1); + --fix; + } + return (0); } static int match_pattern(const char *pat, char *str) From 6102eda2df31bf11f7f8b881918dab06b18d2f43 Mon Sep 17 00:00:00 2001 From: wescande Date: Thu, 12 Jan 2017 20:25:15 +0100 Subject: [PATCH 24/67] ajout de l'expand des brace, reste a travailler sur le tri du tableau de retour pour l'avoir par ordre ascii --- 42sh/Makefile | 1 + 42sh/includes/glob.h | 3 +- 42sh/srcs/glob/expand_brace.c | 108 ++++++++++++++++++++++++++++++++++ 42sh/srcs/glob/glob.c | 17 ++++-- 4 files changed, 123 insertions(+), 6 deletions(-) create mode 100644 42sh/srcs/glob/expand_brace.c diff --git a/42sh/Makefile b/42sh/Makefile index 022c2fe2..0da8e579 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -143,6 +143,7 @@ exec/ft_cmd.c\ exec/ft_exec.c\ exec/ft_findexec.c\ exec/set_exitstatus.c\ +glob/expand_brace.c\ glob/glob.c\ glob/glob_print.c\ glob/ld/ft_ld_back.c\ diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 4ad01613..c1afce7c 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/12 17:14:38 by wescande ### ########.fr */ +/* Updated: 2017/01/12 19:00:08 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,6 +23,7 @@ typedef struct s_ld } t_ld; char **glob(const char *str, char **env); +t_ld *expand_brace(const char *pat); void glob_print(t_list *token, t_data *data); /* diff --git a/42sh/srcs/glob/expand_brace.c b/42sh/srcs/glob/expand_brace.c new file mode 100644 index 00000000..2fe05f61 --- /dev/null +++ b/42sh/srcs/glob/expand_brace.c @@ -0,0 +1,108 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* expand_brace.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/12 19:00:29 by wescande #+# #+# */ +/* Updated: 2017/01/12 20:24:00 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +/* + ** expand_brace return expansion of a string. + ** pattern searched are {ab, cd}. + ** return is t_ld which first param is ab and second is cd + ** input parameters are : + ** -char *pat -> pattern string to be looking for expand + */ + +static char *ft_strjoinf(char *s1, char *s2, int state) +{ + char *ans; + + ans = ft_strjoin((const char *)s1, (const char *)s2); + if (state == 1 || state == 3) + ft_strdel(&s1); + if (state == 2 || state == 3) + ft_strdel(&s2); + return (ans); +} + +static void ft_tabdel(char ***mytab) +{ + char **erase; + int i; + + if (!mytab || !*mytab) + return ; + erase = *mytab; + i = 0; + while (erase[i]) + { + ft_strdel(&erase[i]); + ++i; + } + free(*mytab); + *mytab = NULL; +} + +static int search_brace(t_ld **wk, char *str, int index) +{ + char *start; + char *s1; + char **split; + + start = NULL; + while (*str) + { + if (*str == '{') + start = str; + else if (*str == '}' && start) + { + s1 = ft_strsub(start, 1, str - start - 1); + split = ft_strsplit(s1, ','); + ft_strdel(&s1); + s1 = ft_strsub((*wk)->content, 0, start - (char *)(*wk)->content); + while (split[++index]) + ft_ld_pushfront(wk, ft_strjoinf(ft_strjoin(s1, split[index]), + str + 1, 1)); + ft_strdel(&s1); + ft_tabdel(&split); + return (1); + } + ++str; + } + return (0); +} + +t_ld *expand_brace(const char *pat) +{ + t_ld *ret; + t_ld *tmp; + int do_it; + + ret = NULL; + ft_ld_pushfront(&ret, ft_strdup(pat)); + do_it = 1; + while (do_it) + { + do_it = 0; + while (ret) + { + if ((tmp = ret) && search_brace(&ret, ret->content, -1)) + { + ft_ld_del(&tmp, &ft_strdel); + do_it = 1; + } + if (!ret->next) + break; + ret = ret->next; + } + ret = ft_ld_front(ret); + } + return (ret); +} diff --git a/42sh/srcs/glob/glob.c b/42sh/srcs/glob/glob.c index 2731809b..cc68bb11 100644 --- a/42sh/srcs/glob/glob.c +++ b/42sh/srcs/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/12 18:48:26 by wescande ### ########.fr */ +/* Updated: 2017/01/12 19:00:12 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -176,15 +176,22 @@ char **glob(const char *pat, char **env) t_ld *match; char **gl; char **path; + t_ld *mul_pat; match = NULL; gl = NULL; - if (env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':'))) + mul_pat = expand_brace(pat); + while (mul_pat) { - path_research(pat, path, &match); - ft_tabdel(&path); + if (env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':'))) + { + path_research(mul_pat->content, path, &match); + ft_tabdel(&path); + } + dir_research(mul_pat->content, "./", &match); + mul_pat = mul_pat->next; } - dir_research(pat, "./", &match); + ft_ld_clear(&mul_pat, &ft_strdel); if (match) { gl = ft_ld_to_tab(match); From c556b0eea5cc4bb24354fd662e990841526a5327 Mon Sep 17 00:00:00 2001 From: wescande Date: Tue, 24 Jan 2017 20:44:14 +0100 Subject: [PATCH 25/67] ajout de la recherche recursive sur le globbing et du chemin absolu. (/*/*/*) toujours pas de gestion du double star (**) --- 42sh/Makefile | 27 +-- 42sh/includes/glob.h | 12 +- 42sh/srcs/glob/dir_glob.c | 48 +++++ 42sh/srcs/glob/expand_brace.c | 49 +---- 42sh/srcs/glob/glob.c | 187 +++--------------- 42sh/srcs/glob/{ld => lib_perso}/ft_ld_back.c | 0 .../srcs/glob/{ld => lib_perso}/ft_ld_clear.c | 0 42sh/srcs/glob/{ld => lib_perso}/ft_ld_del.c | 0 .../srcs/glob/{ld => lib_perso}/ft_ld_front.c | 0 42sh/srcs/glob/{ld => lib_perso}/ft_ld_new.c | 0 42sh/srcs/glob/lib_perso/ft_ld_order.c | 35 ++++ .../glob/{ld => lib_perso}/ft_ld_pushback.c | 0 .../glob/{ld => lib_perso}/ft_ld_pushfront.c | 0 .../glob/{ld => lib_perso}/ft_ld_reverse.c | 0 42sh/srcs/glob/{ld => lib_perso}/ft_ld_size.c | 0 42sh/srcs/glob/{ld => lib_perso}/ft_ld_swap.c | 0 .../glob/{ld => lib_perso}/ft_ld_to_tab.c | 0 42sh/srcs/glob/lib_perso/ft_strjoinf.c | 25 +++ 42sh/srcs/glob/lib_perso/ft_tabdel.c | 31 +++ 42sh/srcs/glob/match_pattern.c | 123 ++++++++++++ 42sh/update_makefile.sh | 17 ++ 21 files changed, 342 insertions(+), 212 deletions(-) create mode 100644 42sh/srcs/glob/dir_glob.c rename 42sh/srcs/glob/{ld => lib_perso}/ft_ld_back.c (100%) rename 42sh/srcs/glob/{ld => lib_perso}/ft_ld_clear.c (100%) rename 42sh/srcs/glob/{ld => lib_perso}/ft_ld_del.c (100%) rename 42sh/srcs/glob/{ld => lib_perso}/ft_ld_front.c (100%) rename 42sh/srcs/glob/{ld => lib_perso}/ft_ld_new.c (100%) create mode 100644 42sh/srcs/glob/lib_perso/ft_ld_order.c rename 42sh/srcs/glob/{ld => lib_perso}/ft_ld_pushback.c (100%) rename 42sh/srcs/glob/{ld => lib_perso}/ft_ld_pushfront.c (100%) rename 42sh/srcs/glob/{ld => lib_perso}/ft_ld_reverse.c (100%) rename 42sh/srcs/glob/{ld => lib_perso}/ft_ld_size.c (100%) rename 42sh/srcs/glob/{ld => lib_perso}/ft_ld_swap.c (100%) rename 42sh/srcs/glob/{ld => lib_perso}/ft_ld_to_tab.c (100%) create mode 100644 42sh/srcs/glob/lib_perso/ft_strjoinf.c create mode 100644 42sh/srcs/glob/lib_perso/ft_tabdel.c create mode 100644 42sh/srcs/glob/match_pattern.c create mode 100755 42sh/update_makefile.sh diff --git a/42sh/Makefile b/42sh/Makefile index 0da8e579..351322b4 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -143,20 +143,25 @@ exec/ft_cmd.c\ exec/ft_exec.c\ exec/ft_findexec.c\ exec/set_exitstatus.c\ +glob/dir_glob.c\ glob/expand_brace.c\ glob/glob.c\ glob/glob_print.c\ -glob/ld/ft_ld_back.c\ -glob/ld/ft_ld_clear.c\ -glob/ld/ft_ld_del.c\ -glob/ld/ft_ld_front.c\ -glob/ld/ft_ld_new.c\ -glob/ld/ft_ld_pushback.c\ -glob/ld/ft_ld_pushfront.c\ -glob/ld/ft_ld_reverse.c\ -glob/ld/ft_ld_size.c\ -glob/ld/ft_ld_swap.c\ -glob/ld/ft_ld_to_tab.c\ +glob/lib_perso/ft_ld_back.c\ +glob/lib_perso/ft_ld_clear.c\ +glob/lib_perso/ft_ld_del.c\ +glob/lib_perso/ft_ld_front.c\ +glob/lib_perso/ft_ld_new.c\ +glob/lib_perso/ft_ld_order.c\ +glob/lib_perso/ft_ld_pushback.c\ +glob/lib_perso/ft_ld_pushfront.c\ +glob/lib_perso/ft_ld_reverse.c\ +glob/lib_perso/ft_ld_size.c\ +glob/lib_perso/ft_ld_swap.c\ +glob/lib_perso/ft_ld_to_tab.c\ +glob/lib_perso/ft_strjoinf.c\ +glob/lib_perso/ft_tabdel.c\ +glob/match_pattern.c\ lexer/ft_tokenize.c\ lexer/lexer_backslash.c\ lexer/lexer_default.c\ diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index c1afce7c..50038348 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/12 19:00:08 by wescande ### ########.fr */ +/* Updated: 2017/01/24 19:27:53 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,6 +25,9 @@ typedef struct s_ld char **glob(const char *str, char **env); t_ld *expand_brace(const char *pat); void glob_print(t_list *token, t_data *data); +int match_pattern(const char *pat, char *str, char *full_word, t_ld **match); +void dir_research(const char *pat, char *path, t_ld **match); +bool is_directory(const char *path); /* ** LIST D: @@ -40,6 +43,13 @@ void ft_ld_reverse(t_ld **lst); t_ld *ft_ld_back(t_ld *ld); t_ld *ft_ld_swap(t_ld *l_cur); char **ft_ld_to_tab(t_ld *ld); +t_ld *ft_ld_order(t_ld *ld, int (*f)(), void (*del)()); +/* +** str: +*/ + +char *ft_strjoinf(char *str, char *str2, int mode); +void ft_tabdel(char ***mytab); #endif diff --git a/42sh/srcs/glob/dir_glob.c b/42sh/srcs/glob/dir_glob.c new file mode 100644 index 00000000..6d8b0b27 --- /dev/null +++ b/42sh/srcs/glob/dir_glob.c @@ -0,0 +1,48 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* glob.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ +/* Updated: 2017/01/24 19:10:52 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +bool is_directory(const char *path) +{ + struct stat path_stat; + + stat(path, &path_stat); + return (S_ISDIR(path_stat.st_mode)); +} + +void dir_research(const char *pat, char *p, t_ld **match) +{ + DIR *dir; + struct dirent *in; + char *path_tmp; + + if (ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') + { + if (!(dir = opendir(p))) + return ; + while ((in = readdir(dir))) + { + if (ft_strcmp(in->d_name, ".") && ft_strcmp(in->d_name, "..")) + { + if (*p == '/' && !*(p + 1)) + path_tmp = ft_strjoin(p, in->d_name); + else + path_tmp = ft_strjoinf(ft_strjoin(p, "/"), in->d_name, 1); + if (match_pattern(pat, in->d_name, path_tmp, match)) + ft_ld_pushfront(match, ft_strdup(path_tmp + 2 * + (path_tmp[0] == '.' && path_tmp[1] == '/'))); + ft_strdel(&path_tmp); + } + } + } +} diff --git a/42sh/srcs/glob/expand_brace.c b/42sh/srcs/glob/expand_brace.c index 2fe05f61..501b7ac9 100644 --- a/42sh/srcs/glob/expand_brace.c +++ b/42sh/srcs/glob/expand_brace.c @@ -6,49 +6,19 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/12 19:00:29 by wescande #+# #+# */ -/* Updated: 2017/01/12 20:24:00 by wescande ### ########.fr */ +/* Updated: 2017/01/24 19:15:35 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "glob.h" /* - ** expand_brace return expansion of a string. - ** pattern searched are {ab, cd}. - ** return is t_ld which first param is ab and second is cd - ** input parameters are : - ** -char *pat -> pattern string to be looking for expand - */ - -static char *ft_strjoinf(char *s1, char *s2, int state) -{ - char *ans; - - ans = ft_strjoin((const char *)s1, (const char *)s2); - if (state == 1 || state == 3) - ft_strdel(&s1); - if (state == 2 || state == 3) - ft_strdel(&s2); - return (ans); -} - -static void ft_tabdel(char ***mytab) -{ - char **erase; - int i; - - if (!mytab || !*mytab) - return ; - erase = *mytab; - i = 0; - while (erase[i]) - { - ft_strdel(&erase[i]); - ++i; - } - free(*mytab); - *mytab = NULL; -} +** expand_brace return expansion of a string. +** pattern searched are {ab, cd}. +** return is t_ld which first param is ab and second is cd +** input parameters are : +** -char *pat -> pattern string to be looking for expand +*/ static int search_brace(t_ld **wk, char *str, int index) { @@ -86,20 +56,19 @@ t_ld *expand_brace(const char *pat) int do_it; ret = NULL; + ft_ld_pushfront(&ret, ft_strdup("")); ft_ld_pushfront(&ret, ft_strdup(pat)); do_it = 1; while (do_it) { do_it = 0; - while (ret) + while (ret->next) { if ((tmp = ret) && search_brace(&ret, ret->content, -1)) { ft_ld_del(&tmp, &ft_strdel); do_it = 1; } - if (!ret->next) - break; ret = ret->next; } ret = ft_ld_front(ret); diff --git a/42sh/srcs/glob/glob.c b/42sh/srcs/glob/glob.c index cc68bb11..59709902 100644 --- a/42sh/srcs/glob/glob.c +++ b/42sh/srcs/glob/glob.c @@ -6,196 +6,63 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/12 19:00:12 by wescande ### ########.fr */ +/* Updated: 2017/01/24 20:42:45 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "glob.h" /* - ** glob return expansion of a string. - ** pattern searched are ~, *, ?, [a-z], [!a-z], [^a-z], {ab}. - ** input parameters are : - ** -char *pat -> pattern string to be looking for match - ** -char **env -> env var. could be NULL - ** to just expanse in local directory and not in path - */ - -static void ft_tabdel(char ***mytab) -{ - char **erase; - int i; - - if (!mytab || !*mytab) - return ; - erase = *mytab; - i = 0; - while (erase[i]) - { - ft_strdel(&erase[i]); - ++i; - } - free(*mytab); - *mytab = NULL; -} - -static int match_bracket_char(char **cmp, const char *pat, char c, int neg) -{ - int dir; - char s; - - if ((*cmp + 2) < pat && (*cmp)[1] == '-' && (s = (*cmp)[0])) - { - dir = s > (*cmp)[2]; - while ((dir && s >= (*cmp)[2]) || (!dir && s <= (*cmp)[2])) - { - if (!neg && s == c) - return (1); - else if (neg && s == c) - return (0); - s += (dir * -2 + 1); - } - *cmp += 2; - } - else if (!neg && **cmp == c) - { - return (1); - } - else if (neg && **cmp == c) - { - return (0); - } - return (-1); -} - -static int match_bracket(const char **pat, char c) -{ - char *cmp; - int neg; - int ret; - - cmp = (char *)*pat + 1; - while (**pat != ']') - { - if (!**pat) - return (0); - ++*pat; - } - neg = 0; - if ((*cmp == '^' || *cmp == '!') && ++neg) - ++cmp; - while (cmp < *pat) - { - ret = match_bracket_char(&cmp, *pat, c, neg); - if (ret != -1) - return (ret); - ++cmp; - } - return (neg); -} - -static int match_pattern(const char *pat, char *str); - -static int match_star(const char *pat, char *str) -{ - char *fix; - - if (!pat[1]) - return (1); - fix = str + ft_strlen(str); - while (fix > str) - { - if (match_pattern(pat + 1, fix)) - return (1); - --fix; - } - return (0); -} - -static int match_pattern(const char *pat, char *str) -{ - while (*pat) - { - if (*pat == '?') - str++; - else if (*pat == '[') - { - if (!match_bracket(&pat, *str)) - return (0); - } - else if (*pat == '*') - return (match_star(pat, str)); - else if (*pat == '\\') - { - if (!*++pat || *str != *pat) - return (0); - } - else if (*pat != *str) - return (0); - ++str; - ++pat; - } - return (*str ? 0 : 1); -} - -static void dir_research(const char *pat, char *path, t_ld **match) -{ - DIR *dir; - struct dirent *inside; - - if (!(dir = opendir(path))) - return ; - while ((inside = readdir(dir))) - { - if (match_pattern(pat, inside->d_name)) - ft_ld_pushfront(match, ft_strdup(inside->d_name)); - } -} +** glob return expansion of a string. +** pattern searched are ~, *, ?, [a-z], [!a-z], [^a-z], {ab}. +** input parameters are : +** -char *pat -> pattern string to be looking for match +** -char **env -> env var. could be NULL +** to just expanse in local directory and not in path +*/ static void path_research(const char *pat, char **path, t_ld **match) { int i; - int len; - char *good_path; i = -1; - good_path = NULL; while (path[++i]) - { - good_path = ft_strjoin(path[i], "/"); - while ((len = ft_strlen(good_path)) && good_path[len - 1] == '/' - && good_path[len - 2] == '/') - good_path[ft_strlen(good_path) - 1] = '\0'; - dir_research(pat, good_path, match); - ft_strdel(&good_path); - } + dir_research(pat, path[i], match); +} + +static char **treat_glob(t_ld **match) +{ + char **gl; + + gl = NULL; + ft_ld_reverse(match); + *match = ft_ld_order(*match, &ft_strcmp, &ft_strdel); + gl = ft_ld_to_tab(*match); + ft_ld_clear(match, &ft_strdel); + return (gl); } char **glob(const char *pat, char **env) { t_ld *match; - char **gl; char **path; t_ld *mul_pat; match = NULL; - gl = NULL; mul_pat = expand_brace(pat); - while (mul_pat) + while (mul_pat->next) { if (env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':'))) { path_research(mul_pat->content, path, &match); ft_tabdel(&path); } - dir_research(mul_pat->content, "./", &match); + if (((char *)mul_pat->content)[0] != '/') + dir_research(mul_pat->content, ".", &match); + else + dir_research(mul_pat->content + 1, "/", &match); mul_pat = mul_pat->next; } ft_ld_clear(&mul_pat, &ft_strdel); - if (match) - { - gl = ft_ld_to_tab(match); - ft_ld_clear(&match, &ft_strdel); - } - return (gl); + return (treat_glob(&match)); } diff --git a/42sh/srcs/glob/ld/ft_ld_back.c b/42sh/srcs/glob/lib_perso/ft_ld_back.c similarity index 100% rename from 42sh/srcs/glob/ld/ft_ld_back.c rename to 42sh/srcs/glob/lib_perso/ft_ld_back.c diff --git a/42sh/srcs/glob/ld/ft_ld_clear.c b/42sh/srcs/glob/lib_perso/ft_ld_clear.c similarity index 100% rename from 42sh/srcs/glob/ld/ft_ld_clear.c rename to 42sh/srcs/glob/lib_perso/ft_ld_clear.c diff --git a/42sh/srcs/glob/ld/ft_ld_del.c b/42sh/srcs/glob/lib_perso/ft_ld_del.c similarity index 100% rename from 42sh/srcs/glob/ld/ft_ld_del.c rename to 42sh/srcs/glob/lib_perso/ft_ld_del.c diff --git a/42sh/srcs/glob/ld/ft_ld_front.c b/42sh/srcs/glob/lib_perso/ft_ld_front.c similarity index 100% rename from 42sh/srcs/glob/ld/ft_ld_front.c rename to 42sh/srcs/glob/lib_perso/ft_ld_front.c diff --git a/42sh/srcs/glob/ld/ft_ld_new.c b/42sh/srcs/glob/lib_perso/ft_ld_new.c similarity index 100% rename from 42sh/srcs/glob/ld/ft_ld_new.c rename to 42sh/srcs/glob/lib_perso/ft_ld_new.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_order.c b/42sh/srcs/glob/lib_perso/ft_ld_order.c new file mode 100644 index 00000000..6f6b2a9c --- /dev/null +++ b/42sh/srcs/glob/lib_perso/ft_ld_order.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ld_order.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/24 19:20:45 by wescande #+# #+# */ +/* Updated: 2017/01/24 19:40:54 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +t_ld *ft_ld_order(t_ld *ld, int (*f)(), void (*del)()) +{ + int swap; + + swap = 1; + ld = ft_ld_front(ld); + while (swap) + { + swap = 0; + while (ld && ld->next) + { + if (f(ld->content, ld->next->content) > 0 && (swap = 1)) + ld = ft_ld_swap(ld); + else if (!f(ld->content, ld->next->content)) + ft_ld_del(&ld, del); + ld = ld->next; + } + ld = ft_ld_front(ld); + } + return (ld); +} diff --git a/42sh/srcs/glob/ld/ft_ld_pushback.c b/42sh/srcs/glob/lib_perso/ft_ld_pushback.c similarity index 100% rename from 42sh/srcs/glob/ld/ft_ld_pushback.c rename to 42sh/srcs/glob/lib_perso/ft_ld_pushback.c diff --git a/42sh/srcs/glob/ld/ft_ld_pushfront.c b/42sh/srcs/glob/lib_perso/ft_ld_pushfront.c similarity index 100% rename from 42sh/srcs/glob/ld/ft_ld_pushfront.c rename to 42sh/srcs/glob/lib_perso/ft_ld_pushfront.c diff --git a/42sh/srcs/glob/ld/ft_ld_reverse.c b/42sh/srcs/glob/lib_perso/ft_ld_reverse.c similarity index 100% rename from 42sh/srcs/glob/ld/ft_ld_reverse.c rename to 42sh/srcs/glob/lib_perso/ft_ld_reverse.c diff --git a/42sh/srcs/glob/ld/ft_ld_size.c b/42sh/srcs/glob/lib_perso/ft_ld_size.c similarity index 100% rename from 42sh/srcs/glob/ld/ft_ld_size.c rename to 42sh/srcs/glob/lib_perso/ft_ld_size.c diff --git a/42sh/srcs/glob/ld/ft_ld_swap.c b/42sh/srcs/glob/lib_perso/ft_ld_swap.c similarity index 100% rename from 42sh/srcs/glob/ld/ft_ld_swap.c rename to 42sh/srcs/glob/lib_perso/ft_ld_swap.c diff --git a/42sh/srcs/glob/ld/ft_ld_to_tab.c b/42sh/srcs/glob/lib_perso/ft_ld_to_tab.c similarity index 100% rename from 42sh/srcs/glob/ld/ft_ld_to_tab.c rename to 42sh/srcs/glob/lib_perso/ft_ld_to_tab.c diff --git a/42sh/srcs/glob/lib_perso/ft_strjoinf.c b/42sh/srcs/glob/lib_perso/ft_strjoinf.c new file mode 100644 index 00000000..3bc72d56 --- /dev/null +++ b/42sh/srcs/glob/lib_perso/ft_strjoinf.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strjoinf.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/05 13:33:24 by wescande #+# #+# */ +/* Updated: 2017/01/24 16:53:13 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +char *ft_strjoinf(char *s1, char *s2, int state) +{ + char *ans; + + ans = ft_strjoin((const char *)s1, (const char *)s2); + if (state == 1 || state == 3) + ft_strdel(&s1); + if (state == 2 || state == 3) + ft_strdel(&s2); + return (ans); +} diff --git a/42sh/srcs/glob/lib_perso/ft_tabdel.c b/42sh/srcs/glob/lib_perso/ft_tabdel.c new file mode 100644 index 00000000..ac72a1a1 --- /dev/null +++ b/42sh/srcs/glob/lib_perso/ft_tabdel.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* glob.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ +/* Updated: 2017/01/24 16:52:50 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +void ft_tabdel(char ***mytab) +{ + char **erase; + int i; + + if (!mytab || !*mytab) + return ; + erase = *mytab; + i = 0; + while (erase[i]) + { + ft_strdel(&erase[i]); + ++i; + } + free(*mytab); + *mytab = NULL; +} diff --git a/42sh/srcs/glob/match_pattern.c b/42sh/srcs/glob/match_pattern.c new file mode 100644 index 00000000..84b7c107 --- /dev/null +++ b/42sh/srcs/glob/match_pattern.c @@ -0,0 +1,123 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* match_pattern.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/24 17:30:23 by wescande #+# #+# */ +/* Updated: 2017/01/24 20:42:30 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +static int match_bracket_char(char **cmp, const char *pat, char c, int neg) +{ + int dir; + char s; + + if ((*cmp + 2) < pat && (*cmp)[1] == '-' && (s = (*cmp)[0])) + { + dir = s > (*cmp)[2]; + while ((dir && s >= (*cmp)[2]) || (!dir && s <= (*cmp)[2])) + { + if (!neg && s == c) + return (1); + else if (neg && s == c) + return (0); + s += (dir * -2 + 1); + } + *cmp += 2; + } + else if (!neg && **cmp == c) + { + return (1); + } + else if (neg && **cmp == c) + { + return (0); + } + return (-1); +} + +static int match_bracket(const char **pat, char c) +{ + char *cmp; + int neg; + int ret; + + cmp = (char *)*pat + 1; + while (**pat != ']') + { + if (!**pat) + return (0); + ++*pat; + } + neg = 0; + if ((*cmp == '^' || *cmp == '!') && ++neg) + ++cmp; + while (cmp < *pat) + { + ret = match_bracket_char(&cmp, *pat, c, neg); + if (ret != -1) + return (ret); + ++cmp; + } + return (neg); +} + +static int match_star(const char *pat, char *str, + char *full_word, t_ld **match) +{ + char *fix; + + if (!pat[1]) + return (1); + fix = str + ft_strlen(str); + while (fix > str) + { + if (match_pattern(pat + 1, fix, full_word, match)) + return (1); + --fix; + } + return (0); +} + +const char *manage_pat(const char *pat, char *str) +{ + if (pat[0] == '.' && pat[1] == '/' + && ((str[0] == '.' && str[1] != '/') || str[0] != '.')) + return (pat + 2); + return (pat); +} + +int match_pattern(const char *pat, char *str, + char *full_word, t_ld **match) +{ + pat = manage_pat(pat, str); + while (*pat) + { + if (*pat == '?') + str++; + else if (*pat == '[') + { + if (!match_bracket(&pat, *str)) + return (0); + } + else if (*pat == '*') + return (match_star(pat, str, full_word, match)); + else if (*pat == '\\') + { + if (!*++pat || *str != *pat) + return (0); + } + else if (*pat == '/' && !*str && is_directory(full_word)) + dir_research((pat + 1), full_word, match); + else if (*pat != *str) + return (0); + ++str; + ++pat; + } + return (*str ? 0 : 1); +} diff --git a/42sh/update_makefile.sh b/42sh/update_makefile.sh new file mode 100755 index 00000000..fca53410 --- /dev/null +++ b/42sh/update_makefile.sh @@ -0,0 +1,17 @@ +MYPATH=$(pwd) +CUR_MAKEFILE=$MYPATH/Makefile +if [ -e $CUR_MAKEFILE ] +then + echo "regenerate Makefile" + sed "`grep -n 'SRC_BASE =' $CUR_MAKEFILE | sed 's/:.*//'`, \$d" $CUR_MAKEFILE > NEWMAKEFILE + grep 'SRC_BASE =' $CUR_MAKEFILE >> NEWMAKEFILE + expr "$(find ./srcs | grep "\.c" | sed -e 's/srcs\///' -e 's/\.\///' -e 's/$/\\/')" : "\(.*\).$" >> NEWMAKEFILE + echo "" >> NEWMAKEFILE + grep 'SRCS =' $CUR_MAKEFILE >> NEWMAKEFILE + sed "1, `grep -n 'SRCS =' $CUR_MAKEFILE | sed 's/:.*//'`d" $CUR_MAKEFILE >> NEWMAKEFILE + mv $CUR_MAKEFILE ~/Documents/.OLDMakefile + mv NEWMAKEFILE $CUR_MAKEFILE + echo "Makefile done (copy still alive in ~/Documents/.OLDMakefile)" +else + echo "Makefile not found." +fi From c3c47e9a5abf98a8a91295a279a0e89ff52ed4c0 Mon Sep 17 00:00:00 2001 From: wescande Date: Tue, 24 Jan 2017 21:23:48 +0100 Subject: [PATCH 26/67] ajout du ** en mode tmp. Besoin de votre avis dessus. segfault sur la ligne de commande mais doi etre rebase pour savoir d'ou ca vient --- 42sh/includes/glob.h | 6 ++++-- 42sh/srcs/glob/dir_glob.c | 31 ++++++++++++++++++++++++++++++- 42sh/srcs/glob/match_pattern.c | 4 +++- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 50038348..6b8d2475 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/24 19:27:53 by wescande ### ########.fr */ +/* Updated: 2017/01/24 21:22:58 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,8 +25,10 @@ typedef struct s_ld char **glob(const char *str, char **env); t_ld *expand_brace(const char *pat); void glob_print(t_list *token, t_data *data); -int match_pattern(const char *pat, char *str, char *full_word, t_ld **match); +int match_pattern(const char *pat, char *str, + char *full_word, t_ld **match); void dir_research(const char *pat, char *path, t_ld **match); +void dir_research_recursive(const char *pat, char *p, t_ld **match); bool is_directory(const char *path); /* diff --git a/42sh/srcs/glob/dir_glob.c b/42sh/srcs/glob/dir_glob.c index 6d8b0b27..c4bdb128 100644 --- a/42sh/srcs/glob/dir_glob.c +++ b/42sh/srcs/glob/dir_glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/24 19:10:52 by wescande ### ########.fr */ +/* Updated: 2017/01/24 21:16:42 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -46,3 +46,32 @@ void dir_research(const char *pat, char *p, t_ld **match) } } } + +void dir_research_recursive(const char *pat, char *p, t_ld **match) +{ + DIR *dir; + struct dirent *in; + char *path_tmp; + + if (ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') + { + if (!(dir = opendir(p))) + return ; + while ((in = readdir(dir))) + { + if (ft_strcmp(in->d_name, ".") && ft_strcmp(in->d_name, "..")) + { + if (*p == '/' && !*(p + 1)) + path_tmp = ft_strjoin(p, in->d_name); + else + path_tmp = ft_strjoinf(ft_strjoin(p, "/"), in->d_name, 1); + if (is_directory(path_tmp)) + dir_research_recursive(pat, path_tmp, match); + if (match_pattern(pat, in->d_name, path_tmp, match)) + ft_ld_pushfront(match, ft_strdup(path_tmp + 2 * + (path_tmp[0] == '.' && path_tmp[1] == '/'))); + ft_strdel(&path_tmp); + } + } + } +} diff --git a/42sh/srcs/glob/match_pattern.c b/42sh/srcs/glob/match_pattern.c index 84b7c107..5e95b55b 100644 --- a/42sh/srcs/glob/match_pattern.c +++ b/42sh/srcs/glob/match_pattern.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/24 17:30:23 by wescande #+# #+# */ -/* Updated: 2017/01/24 20:42:30 by wescande ### ########.fr */ +/* Updated: 2017/01/24 20:58:47 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -72,6 +72,8 @@ static int match_star(const char *pat, char *str, { char *fix; + if (pat[1] == '*') + dir_research_recursive(pat, full_word, match); if (!pat[1]) return (1); fix = str + ft_strlen(str); From dfe40cff38a7056bddfcca91864691c9cd759ce1 Mon Sep 17 00:00:00 2001 From: wescande Date: Thu, 26 Jan 2017 16:32:04 +0100 Subject: [PATCH 27/67] nothing for rebase --- 42sh/srcs/glob/glob.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/42sh/srcs/glob/glob.c b/42sh/srcs/glob/glob.c index 59709902..6aa8b783 100644 --- a/42sh/srcs/glob/glob.c +++ b/42sh/srcs/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/24 20:42:45 by wescande ### ########.fr */ +/* Updated: 2017/01/26 16:04:09 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ /* ** glob return expansion of a string. -** pattern searched are ~, *, ?, [a-z], [!a-z], [^a-z], {ab}. +** pattern searched are ~, *, ?, [a-z], [!a-z], [^a-z], {ab, ac}, ** ** input parameters are : ** -char *pat -> pattern string to be looking for match ** -char **env -> env var. could be NULL From e886375f7ad803d8cac489f0299c6fcd544daa75 Mon Sep 17 00:00:00 2001 From: wescande Date: Thu, 26 Jan 2017 16:46:30 +0100 Subject: [PATCH 28/67] change dir name --- 42sh/{srcs => src}/builtin/builtin.c | 0 42sh/{srcs => src}/builtin/builtin_cd.c | 0 42sh/{srcs => src}/builtin/builtin_echo.c | 0 42sh/{srcs => src}/builtin/builtin_env.c | 0 42sh/{srcs => src}/builtin/builtin_exit.c | 0 42sh/{srcs => src}/builtin/builtin_setenv.c | 0 42sh/{srcs => src}/builtin/builtin_unsetenv.c | 0 42sh/{srcs => src}/exec/ast_free.c | 0 42sh/{srcs => src}/exec/exec_and_if.c | 0 42sh/{srcs => src}/exec/exec_command.c | 0 42sh/{srcs => src}/exec/exec_dgreat.c | 0 42sh/{srcs => src}/exec/exec_great.c | 0 42sh/{srcs => src}/exec/exec_less.c | 0 42sh/{srcs => src}/exec/exec_or_if.c | 0 42sh/{srcs => src}/exec/exec_pipe.c | 0 42sh/{srcs => src}/exec/exec_semi.c | 0 42sh/{srcs => src}/exec/fd_redirect.c | 0 42sh/{srcs => src}/exec/ft_cmd.c | 0 42sh/{srcs => src}/exec/ft_exec.c | 0 42sh/{srcs => src}/exec/ft_findexec.c | 0 42sh/{srcs => src}/exec/set_exitstatus.c | 0 42sh/{srcs => src}/glob/dir_glob.c | 0 42sh/{srcs => src}/glob/expand_brace.c | 0 42sh/{srcs => src}/glob/glob.c | 0 42sh/{srcs => src}/glob/glob_print.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_back.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_clear.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_del.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_front.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_new.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_order.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_pushback.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_pushfront.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_reverse.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_size.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_swap.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_ld_to_tab.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_strjoinf.c | 0 42sh/{srcs => src}/glob/lib_perso/ft_tabdel.c | 0 42sh/{srcs => src}/glob/match_pattern.c | 0 42sh/{srcs => src}/lexer/ft_tokenize.c | 0 42sh/{srcs => src}/lexer/lexer_backslash.c | 0 42sh/{srcs => src}/lexer/lexer_default.c | 0 42sh/{srcs => src}/lexer/lexer_delim.c | 0 42sh/{srcs => src}/lexer/lexer_dquote.c | 0 42sh/{srcs => src}/lexer/lexer_great.c | 0 42sh/{srcs => src}/lexer/lexer_greatand.c | 0 42sh/{srcs => src}/lexer/lexer_less.c | 0 42sh/{srcs => src}/lexer/lexer_lessand.c | 0 42sh/{srcs => src}/lexer/lexer_number.c | 0 42sh/{srcs => src}/lexer/lexer_quote.c | 0 42sh/{srcs => src}/lexer/lexer_sep.c | 0 42sh/{srcs => src}/lexer/lexer_word.c | 0 42sh/{srcs => src}/lexer/token_append.c | 0 42sh/{srcs => src}/lexer/token_cmp_type.c | 0 42sh/{srcs => src}/lexer/token_free.c | 0 42sh/{srcs => src}/lexer/token_init.c | 0 42sh/{srcs => src}/lexer/token_print.c | 0 42sh/{srcs => src}/line-editing/curs_ask.c | 0 42sh/{srcs => src}/line-editing/curs_clear.c | 0 42sh/{srcs => src}/line-editing/curs_goto.c | 0 42sh/{srcs => src}/line-editing/curs_move.c | 0 42sh/{srcs => src}/line-editing/curs_setup.c | 0 42sh/{srcs => src}/line-editing/curs_single.c | 0 42sh/{srcs => src}/line-editing/curs_term_setup.c | 0 42sh/{srcs => src}/line-editing/curs_write.c | 0 42sh/{srcs => src}/line-editing/ft_interactive_sh.c | 0 42sh/{srcs => src}/line-editing/ft_readline.c | 0 42sh/{srcs => src}/line-editing/rl_bitset.c | 0 42sh/{srcs => src}/line-editing/rl_clear_function.c | 0 42sh/{srcs => src}/line-editing/rl_clipboard_function.c | 0 42sh/{srcs => src}/line-editing/rl_clipboard_utility.c | 0 42sh/{srcs => src}/line-editing/rl_comp_function.c | 0 42sh/{srcs => src}/line-editing/rl_default_function.c | 0 42sh/{srcs => src}/line-editing/rl_display.c | 0 42sh/{srcs => src}/line-editing/rl_dynamic_buffer.c | 0 42sh/{srcs => src}/line-editing/rl_long_move_function.c | 0 42sh/{srcs => src}/line-editing/rl_merge_line.c | 0 42sh/{srcs => src}/line-editing/rl_page_move_function.c | 0 42sh/{srcs => src}/line-editing/rl_prompt.c | 0 42sh/{srcs => src}/line-editing/rl_quoting_function.c | 0 42sh/{srcs => src}/line-editing/rl_remove_function.c | 0 42sh/{srcs => src}/line-editing/rl_setup.c | 0 42sh/{srcs => src}/line-editing/rl_short_move_function.c | 0 42sh/{srcs => src}/line-editing/rl_stack_line.c | 0 42sh/{srcs => src}/line-editing/rl_state_function.c | 0 42sh/{srcs => src}/line-editing/rl_word_move_function.c | 0 42sh/{srcs => src}/line-editing/rl_word_utility.c | 0 42sh/{srcs => src}/main/data_exit.c | 0 42sh/{srcs => src}/main/data_init.c | 0 42sh/{srcs => src}/main/ft_cleanup.c | 0 42sh/{srcs => src}/main/ft_putast.c | 0 42sh/{srcs => src}/main/ft_putast2.c | 0 42sh/{srcs => src}/main/lib_expansion.c | 0 42sh/{srcs => src}/main/main.c | 0 42sh/{srcs => src}/main/sig_handler.c | 0 42sh/{srcs => src}/parser/ft_parse.c | 0 42sh/{srcs => src}/parser/parse_dgreat.c | 0 42sh/{srcs => src}/parser/parse_dless.c | 0 42sh/{srcs => src}/parser/parse_great.c | 0 42sh/{srcs => src}/parser/parse_greatand.c | 0 42sh/{srcs => src}/parser/parse_less.c | 0 42sh/{srcs => src}/parser/parse_lessand.c | 0 42sh/{srcs => src}/parser/parse_separator.c | 0 42sh/{srcs => src}/parser/parse_word.c | 0 105 files changed, 0 insertions(+), 0 deletions(-) rename 42sh/{srcs => src}/builtin/builtin.c (100%) rename 42sh/{srcs => src}/builtin/builtin_cd.c (100%) rename 42sh/{srcs => src}/builtin/builtin_echo.c (100%) rename 42sh/{srcs => src}/builtin/builtin_env.c (100%) rename 42sh/{srcs => src}/builtin/builtin_exit.c (100%) rename 42sh/{srcs => src}/builtin/builtin_setenv.c (100%) rename 42sh/{srcs => src}/builtin/builtin_unsetenv.c (100%) rename 42sh/{srcs => src}/exec/ast_free.c (100%) rename 42sh/{srcs => src}/exec/exec_and_if.c (100%) rename 42sh/{srcs => src}/exec/exec_command.c (100%) rename 42sh/{srcs => src}/exec/exec_dgreat.c (100%) rename 42sh/{srcs => src}/exec/exec_great.c (100%) rename 42sh/{srcs => src}/exec/exec_less.c (100%) rename 42sh/{srcs => src}/exec/exec_or_if.c (100%) rename 42sh/{srcs => src}/exec/exec_pipe.c (100%) rename 42sh/{srcs => src}/exec/exec_semi.c (100%) rename 42sh/{srcs => src}/exec/fd_redirect.c (100%) rename 42sh/{srcs => src}/exec/ft_cmd.c (100%) rename 42sh/{srcs => src}/exec/ft_exec.c (100%) rename 42sh/{srcs => src}/exec/ft_findexec.c (100%) rename 42sh/{srcs => src}/exec/set_exitstatus.c (100%) rename 42sh/{srcs => src}/glob/dir_glob.c (100%) rename 42sh/{srcs => src}/glob/expand_brace.c (100%) rename 42sh/{srcs => src}/glob/glob.c (100%) rename 42sh/{srcs => src}/glob/glob_print.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_back.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_clear.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_del.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_front.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_new.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_order.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_pushback.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_pushfront.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_reverse.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_size.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_swap.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_ld_to_tab.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_strjoinf.c (100%) rename 42sh/{srcs => src}/glob/lib_perso/ft_tabdel.c (100%) rename 42sh/{srcs => src}/glob/match_pattern.c (100%) rename 42sh/{srcs => src}/lexer/ft_tokenize.c (100%) rename 42sh/{srcs => src}/lexer/lexer_backslash.c (100%) rename 42sh/{srcs => src}/lexer/lexer_default.c (100%) rename 42sh/{srcs => src}/lexer/lexer_delim.c (100%) rename 42sh/{srcs => src}/lexer/lexer_dquote.c (100%) rename 42sh/{srcs => src}/lexer/lexer_great.c (100%) rename 42sh/{srcs => src}/lexer/lexer_greatand.c (100%) rename 42sh/{srcs => src}/lexer/lexer_less.c (100%) rename 42sh/{srcs => src}/lexer/lexer_lessand.c (100%) rename 42sh/{srcs => src}/lexer/lexer_number.c (100%) rename 42sh/{srcs => src}/lexer/lexer_quote.c (100%) rename 42sh/{srcs => src}/lexer/lexer_sep.c (100%) rename 42sh/{srcs => src}/lexer/lexer_word.c (100%) rename 42sh/{srcs => src}/lexer/token_append.c (100%) rename 42sh/{srcs => src}/lexer/token_cmp_type.c (100%) rename 42sh/{srcs => src}/lexer/token_free.c (100%) rename 42sh/{srcs => src}/lexer/token_init.c (100%) rename 42sh/{srcs => src}/lexer/token_print.c (100%) rename 42sh/{srcs => src}/line-editing/curs_ask.c (100%) rename 42sh/{srcs => src}/line-editing/curs_clear.c (100%) rename 42sh/{srcs => src}/line-editing/curs_goto.c (100%) rename 42sh/{srcs => src}/line-editing/curs_move.c (100%) rename 42sh/{srcs => src}/line-editing/curs_setup.c (100%) rename 42sh/{srcs => src}/line-editing/curs_single.c (100%) rename 42sh/{srcs => src}/line-editing/curs_term_setup.c (100%) rename 42sh/{srcs => src}/line-editing/curs_write.c (100%) rename 42sh/{srcs => src}/line-editing/ft_interactive_sh.c (100%) rename 42sh/{srcs => src}/line-editing/ft_readline.c (100%) rename 42sh/{srcs => src}/line-editing/rl_bitset.c (100%) rename 42sh/{srcs => src}/line-editing/rl_clear_function.c (100%) rename 42sh/{srcs => src}/line-editing/rl_clipboard_function.c (100%) rename 42sh/{srcs => src}/line-editing/rl_clipboard_utility.c (100%) rename 42sh/{srcs => src}/line-editing/rl_comp_function.c (100%) rename 42sh/{srcs => src}/line-editing/rl_default_function.c (100%) rename 42sh/{srcs => src}/line-editing/rl_display.c (100%) rename 42sh/{srcs => src}/line-editing/rl_dynamic_buffer.c (100%) rename 42sh/{srcs => src}/line-editing/rl_long_move_function.c (100%) rename 42sh/{srcs => src}/line-editing/rl_merge_line.c (100%) rename 42sh/{srcs => src}/line-editing/rl_page_move_function.c (100%) rename 42sh/{srcs => src}/line-editing/rl_prompt.c (100%) rename 42sh/{srcs => src}/line-editing/rl_quoting_function.c (100%) rename 42sh/{srcs => src}/line-editing/rl_remove_function.c (100%) rename 42sh/{srcs => src}/line-editing/rl_setup.c (100%) rename 42sh/{srcs => src}/line-editing/rl_short_move_function.c (100%) rename 42sh/{srcs => src}/line-editing/rl_stack_line.c (100%) rename 42sh/{srcs => src}/line-editing/rl_state_function.c (100%) rename 42sh/{srcs => src}/line-editing/rl_word_move_function.c (100%) rename 42sh/{srcs => src}/line-editing/rl_word_utility.c (100%) rename 42sh/{srcs => src}/main/data_exit.c (100%) rename 42sh/{srcs => src}/main/data_init.c (100%) rename 42sh/{srcs => src}/main/ft_cleanup.c (100%) rename 42sh/{srcs => src}/main/ft_putast.c (100%) rename 42sh/{srcs => src}/main/ft_putast2.c (100%) rename 42sh/{srcs => src}/main/lib_expansion.c (100%) rename 42sh/{srcs => src}/main/main.c (100%) rename 42sh/{srcs => src}/main/sig_handler.c (100%) rename 42sh/{srcs => src}/parser/ft_parse.c (100%) rename 42sh/{srcs => src}/parser/parse_dgreat.c (100%) rename 42sh/{srcs => src}/parser/parse_dless.c (100%) rename 42sh/{srcs => src}/parser/parse_great.c (100%) rename 42sh/{srcs => src}/parser/parse_greatand.c (100%) rename 42sh/{srcs => src}/parser/parse_less.c (100%) rename 42sh/{srcs => src}/parser/parse_lessand.c (100%) rename 42sh/{srcs => src}/parser/parse_separator.c (100%) rename 42sh/{srcs => src}/parser/parse_word.c (100%) diff --git a/42sh/srcs/builtin/builtin.c b/42sh/src/builtin/builtin.c similarity index 100% rename from 42sh/srcs/builtin/builtin.c rename to 42sh/src/builtin/builtin.c diff --git a/42sh/srcs/builtin/builtin_cd.c b/42sh/src/builtin/builtin_cd.c similarity index 100% rename from 42sh/srcs/builtin/builtin_cd.c rename to 42sh/src/builtin/builtin_cd.c diff --git a/42sh/srcs/builtin/builtin_echo.c b/42sh/src/builtin/builtin_echo.c similarity index 100% rename from 42sh/srcs/builtin/builtin_echo.c rename to 42sh/src/builtin/builtin_echo.c diff --git a/42sh/srcs/builtin/builtin_env.c b/42sh/src/builtin/builtin_env.c similarity index 100% rename from 42sh/srcs/builtin/builtin_env.c rename to 42sh/src/builtin/builtin_env.c diff --git a/42sh/srcs/builtin/builtin_exit.c b/42sh/src/builtin/builtin_exit.c similarity index 100% rename from 42sh/srcs/builtin/builtin_exit.c rename to 42sh/src/builtin/builtin_exit.c diff --git a/42sh/srcs/builtin/builtin_setenv.c b/42sh/src/builtin/builtin_setenv.c similarity index 100% rename from 42sh/srcs/builtin/builtin_setenv.c rename to 42sh/src/builtin/builtin_setenv.c diff --git a/42sh/srcs/builtin/builtin_unsetenv.c b/42sh/src/builtin/builtin_unsetenv.c similarity index 100% rename from 42sh/srcs/builtin/builtin_unsetenv.c rename to 42sh/src/builtin/builtin_unsetenv.c diff --git a/42sh/srcs/exec/ast_free.c b/42sh/src/exec/ast_free.c similarity index 100% rename from 42sh/srcs/exec/ast_free.c rename to 42sh/src/exec/ast_free.c diff --git a/42sh/srcs/exec/exec_and_if.c b/42sh/src/exec/exec_and_if.c similarity index 100% rename from 42sh/srcs/exec/exec_and_if.c rename to 42sh/src/exec/exec_and_if.c diff --git a/42sh/srcs/exec/exec_command.c b/42sh/src/exec/exec_command.c similarity index 100% rename from 42sh/srcs/exec/exec_command.c rename to 42sh/src/exec/exec_command.c diff --git a/42sh/srcs/exec/exec_dgreat.c b/42sh/src/exec/exec_dgreat.c similarity index 100% rename from 42sh/srcs/exec/exec_dgreat.c rename to 42sh/src/exec/exec_dgreat.c diff --git a/42sh/srcs/exec/exec_great.c b/42sh/src/exec/exec_great.c similarity index 100% rename from 42sh/srcs/exec/exec_great.c rename to 42sh/src/exec/exec_great.c diff --git a/42sh/srcs/exec/exec_less.c b/42sh/src/exec/exec_less.c similarity index 100% rename from 42sh/srcs/exec/exec_less.c rename to 42sh/src/exec/exec_less.c diff --git a/42sh/srcs/exec/exec_or_if.c b/42sh/src/exec/exec_or_if.c similarity index 100% rename from 42sh/srcs/exec/exec_or_if.c rename to 42sh/src/exec/exec_or_if.c diff --git a/42sh/srcs/exec/exec_pipe.c b/42sh/src/exec/exec_pipe.c similarity index 100% rename from 42sh/srcs/exec/exec_pipe.c rename to 42sh/src/exec/exec_pipe.c diff --git a/42sh/srcs/exec/exec_semi.c b/42sh/src/exec/exec_semi.c similarity index 100% rename from 42sh/srcs/exec/exec_semi.c rename to 42sh/src/exec/exec_semi.c diff --git a/42sh/srcs/exec/fd_redirect.c b/42sh/src/exec/fd_redirect.c similarity index 100% rename from 42sh/srcs/exec/fd_redirect.c rename to 42sh/src/exec/fd_redirect.c diff --git a/42sh/srcs/exec/ft_cmd.c b/42sh/src/exec/ft_cmd.c similarity index 100% rename from 42sh/srcs/exec/ft_cmd.c rename to 42sh/src/exec/ft_cmd.c diff --git a/42sh/srcs/exec/ft_exec.c b/42sh/src/exec/ft_exec.c similarity index 100% rename from 42sh/srcs/exec/ft_exec.c rename to 42sh/src/exec/ft_exec.c diff --git a/42sh/srcs/exec/ft_findexec.c b/42sh/src/exec/ft_findexec.c similarity index 100% rename from 42sh/srcs/exec/ft_findexec.c rename to 42sh/src/exec/ft_findexec.c diff --git a/42sh/srcs/exec/set_exitstatus.c b/42sh/src/exec/set_exitstatus.c similarity index 100% rename from 42sh/srcs/exec/set_exitstatus.c rename to 42sh/src/exec/set_exitstatus.c diff --git a/42sh/srcs/glob/dir_glob.c b/42sh/src/glob/dir_glob.c similarity index 100% rename from 42sh/srcs/glob/dir_glob.c rename to 42sh/src/glob/dir_glob.c diff --git a/42sh/srcs/glob/expand_brace.c b/42sh/src/glob/expand_brace.c similarity index 100% rename from 42sh/srcs/glob/expand_brace.c rename to 42sh/src/glob/expand_brace.c diff --git a/42sh/srcs/glob/glob.c b/42sh/src/glob/glob.c similarity index 100% rename from 42sh/srcs/glob/glob.c rename to 42sh/src/glob/glob.c diff --git a/42sh/srcs/glob/glob_print.c b/42sh/src/glob/glob_print.c similarity index 100% rename from 42sh/srcs/glob/glob_print.c rename to 42sh/src/glob/glob_print.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_back.c b/42sh/src/glob/lib_perso/ft_ld_back.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_back.c rename to 42sh/src/glob/lib_perso/ft_ld_back.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_clear.c b/42sh/src/glob/lib_perso/ft_ld_clear.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_clear.c rename to 42sh/src/glob/lib_perso/ft_ld_clear.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_del.c b/42sh/src/glob/lib_perso/ft_ld_del.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_del.c rename to 42sh/src/glob/lib_perso/ft_ld_del.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_front.c b/42sh/src/glob/lib_perso/ft_ld_front.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_front.c rename to 42sh/src/glob/lib_perso/ft_ld_front.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_new.c b/42sh/src/glob/lib_perso/ft_ld_new.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_new.c rename to 42sh/src/glob/lib_perso/ft_ld_new.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_order.c b/42sh/src/glob/lib_perso/ft_ld_order.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_order.c rename to 42sh/src/glob/lib_perso/ft_ld_order.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_pushback.c b/42sh/src/glob/lib_perso/ft_ld_pushback.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_pushback.c rename to 42sh/src/glob/lib_perso/ft_ld_pushback.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_pushfront.c b/42sh/src/glob/lib_perso/ft_ld_pushfront.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_pushfront.c rename to 42sh/src/glob/lib_perso/ft_ld_pushfront.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_reverse.c b/42sh/src/glob/lib_perso/ft_ld_reverse.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_reverse.c rename to 42sh/src/glob/lib_perso/ft_ld_reverse.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_size.c b/42sh/src/glob/lib_perso/ft_ld_size.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_size.c rename to 42sh/src/glob/lib_perso/ft_ld_size.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_swap.c b/42sh/src/glob/lib_perso/ft_ld_swap.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_swap.c rename to 42sh/src/glob/lib_perso/ft_ld_swap.c diff --git a/42sh/srcs/glob/lib_perso/ft_ld_to_tab.c b/42sh/src/glob/lib_perso/ft_ld_to_tab.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_ld_to_tab.c rename to 42sh/src/glob/lib_perso/ft_ld_to_tab.c diff --git a/42sh/srcs/glob/lib_perso/ft_strjoinf.c b/42sh/src/glob/lib_perso/ft_strjoinf.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_strjoinf.c rename to 42sh/src/glob/lib_perso/ft_strjoinf.c diff --git a/42sh/srcs/glob/lib_perso/ft_tabdel.c b/42sh/src/glob/lib_perso/ft_tabdel.c similarity index 100% rename from 42sh/srcs/glob/lib_perso/ft_tabdel.c rename to 42sh/src/glob/lib_perso/ft_tabdel.c diff --git a/42sh/srcs/glob/match_pattern.c b/42sh/src/glob/match_pattern.c similarity index 100% rename from 42sh/srcs/glob/match_pattern.c rename to 42sh/src/glob/match_pattern.c diff --git a/42sh/srcs/lexer/ft_tokenize.c b/42sh/src/lexer/ft_tokenize.c similarity index 100% rename from 42sh/srcs/lexer/ft_tokenize.c rename to 42sh/src/lexer/ft_tokenize.c diff --git a/42sh/srcs/lexer/lexer_backslash.c b/42sh/src/lexer/lexer_backslash.c similarity index 100% rename from 42sh/srcs/lexer/lexer_backslash.c rename to 42sh/src/lexer/lexer_backslash.c diff --git a/42sh/srcs/lexer/lexer_default.c b/42sh/src/lexer/lexer_default.c similarity index 100% rename from 42sh/srcs/lexer/lexer_default.c rename to 42sh/src/lexer/lexer_default.c diff --git a/42sh/srcs/lexer/lexer_delim.c b/42sh/src/lexer/lexer_delim.c similarity index 100% rename from 42sh/srcs/lexer/lexer_delim.c rename to 42sh/src/lexer/lexer_delim.c diff --git a/42sh/srcs/lexer/lexer_dquote.c b/42sh/src/lexer/lexer_dquote.c similarity index 100% rename from 42sh/srcs/lexer/lexer_dquote.c rename to 42sh/src/lexer/lexer_dquote.c diff --git a/42sh/srcs/lexer/lexer_great.c b/42sh/src/lexer/lexer_great.c similarity index 100% rename from 42sh/srcs/lexer/lexer_great.c rename to 42sh/src/lexer/lexer_great.c diff --git a/42sh/srcs/lexer/lexer_greatand.c b/42sh/src/lexer/lexer_greatand.c similarity index 100% rename from 42sh/srcs/lexer/lexer_greatand.c rename to 42sh/src/lexer/lexer_greatand.c diff --git a/42sh/srcs/lexer/lexer_less.c b/42sh/src/lexer/lexer_less.c similarity index 100% rename from 42sh/srcs/lexer/lexer_less.c rename to 42sh/src/lexer/lexer_less.c diff --git a/42sh/srcs/lexer/lexer_lessand.c b/42sh/src/lexer/lexer_lessand.c similarity index 100% rename from 42sh/srcs/lexer/lexer_lessand.c rename to 42sh/src/lexer/lexer_lessand.c diff --git a/42sh/srcs/lexer/lexer_number.c b/42sh/src/lexer/lexer_number.c similarity index 100% rename from 42sh/srcs/lexer/lexer_number.c rename to 42sh/src/lexer/lexer_number.c diff --git a/42sh/srcs/lexer/lexer_quote.c b/42sh/src/lexer/lexer_quote.c similarity index 100% rename from 42sh/srcs/lexer/lexer_quote.c rename to 42sh/src/lexer/lexer_quote.c diff --git a/42sh/srcs/lexer/lexer_sep.c b/42sh/src/lexer/lexer_sep.c similarity index 100% rename from 42sh/srcs/lexer/lexer_sep.c rename to 42sh/src/lexer/lexer_sep.c diff --git a/42sh/srcs/lexer/lexer_word.c b/42sh/src/lexer/lexer_word.c similarity index 100% rename from 42sh/srcs/lexer/lexer_word.c rename to 42sh/src/lexer/lexer_word.c diff --git a/42sh/srcs/lexer/token_append.c b/42sh/src/lexer/token_append.c similarity index 100% rename from 42sh/srcs/lexer/token_append.c rename to 42sh/src/lexer/token_append.c diff --git a/42sh/srcs/lexer/token_cmp_type.c b/42sh/src/lexer/token_cmp_type.c similarity index 100% rename from 42sh/srcs/lexer/token_cmp_type.c rename to 42sh/src/lexer/token_cmp_type.c diff --git a/42sh/srcs/lexer/token_free.c b/42sh/src/lexer/token_free.c similarity index 100% rename from 42sh/srcs/lexer/token_free.c rename to 42sh/src/lexer/token_free.c diff --git a/42sh/srcs/lexer/token_init.c b/42sh/src/lexer/token_init.c similarity index 100% rename from 42sh/srcs/lexer/token_init.c rename to 42sh/src/lexer/token_init.c diff --git a/42sh/srcs/lexer/token_print.c b/42sh/src/lexer/token_print.c similarity index 100% rename from 42sh/srcs/lexer/token_print.c rename to 42sh/src/lexer/token_print.c diff --git a/42sh/srcs/line-editing/curs_ask.c b/42sh/src/line-editing/curs_ask.c similarity index 100% rename from 42sh/srcs/line-editing/curs_ask.c rename to 42sh/src/line-editing/curs_ask.c diff --git a/42sh/srcs/line-editing/curs_clear.c b/42sh/src/line-editing/curs_clear.c similarity index 100% rename from 42sh/srcs/line-editing/curs_clear.c rename to 42sh/src/line-editing/curs_clear.c diff --git a/42sh/srcs/line-editing/curs_goto.c b/42sh/src/line-editing/curs_goto.c similarity index 100% rename from 42sh/srcs/line-editing/curs_goto.c rename to 42sh/src/line-editing/curs_goto.c diff --git a/42sh/srcs/line-editing/curs_move.c b/42sh/src/line-editing/curs_move.c similarity index 100% rename from 42sh/srcs/line-editing/curs_move.c rename to 42sh/src/line-editing/curs_move.c diff --git a/42sh/srcs/line-editing/curs_setup.c b/42sh/src/line-editing/curs_setup.c similarity index 100% rename from 42sh/srcs/line-editing/curs_setup.c rename to 42sh/src/line-editing/curs_setup.c diff --git a/42sh/srcs/line-editing/curs_single.c b/42sh/src/line-editing/curs_single.c similarity index 100% rename from 42sh/srcs/line-editing/curs_single.c rename to 42sh/src/line-editing/curs_single.c diff --git a/42sh/srcs/line-editing/curs_term_setup.c b/42sh/src/line-editing/curs_term_setup.c similarity index 100% rename from 42sh/srcs/line-editing/curs_term_setup.c rename to 42sh/src/line-editing/curs_term_setup.c diff --git a/42sh/srcs/line-editing/curs_write.c b/42sh/src/line-editing/curs_write.c similarity index 100% rename from 42sh/srcs/line-editing/curs_write.c rename to 42sh/src/line-editing/curs_write.c diff --git a/42sh/srcs/line-editing/ft_interactive_sh.c b/42sh/src/line-editing/ft_interactive_sh.c similarity index 100% rename from 42sh/srcs/line-editing/ft_interactive_sh.c rename to 42sh/src/line-editing/ft_interactive_sh.c diff --git a/42sh/srcs/line-editing/ft_readline.c b/42sh/src/line-editing/ft_readline.c similarity index 100% rename from 42sh/srcs/line-editing/ft_readline.c rename to 42sh/src/line-editing/ft_readline.c diff --git a/42sh/srcs/line-editing/rl_bitset.c b/42sh/src/line-editing/rl_bitset.c similarity index 100% rename from 42sh/srcs/line-editing/rl_bitset.c rename to 42sh/src/line-editing/rl_bitset.c diff --git a/42sh/srcs/line-editing/rl_clear_function.c b/42sh/src/line-editing/rl_clear_function.c similarity index 100% rename from 42sh/srcs/line-editing/rl_clear_function.c rename to 42sh/src/line-editing/rl_clear_function.c diff --git a/42sh/srcs/line-editing/rl_clipboard_function.c b/42sh/src/line-editing/rl_clipboard_function.c similarity index 100% rename from 42sh/srcs/line-editing/rl_clipboard_function.c rename to 42sh/src/line-editing/rl_clipboard_function.c diff --git a/42sh/srcs/line-editing/rl_clipboard_utility.c b/42sh/src/line-editing/rl_clipboard_utility.c similarity index 100% rename from 42sh/srcs/line-editing/rl_clipboard_utility.c rename to 42sh/src/line-editing/rl_clipboard_utility.c diff --git a/42sh/srcs/line-editing/rl_comp_function.c b/42sh/src/line-editing/rl_comp_function.c similarity index 100% rename from 42sh/srcs/line-editing/rl_comp_function.c rename to 42sh/src/line-editing/rl_comp_function.c diff --git a/42sh/srcs/line-editing/rl_default_function.c b/42sh/src/line-editing/rl_default_function.c similarity index 100% rename from 42sh/srcs/line-editing/rl_default_function.c rename to 42sh/src/line-editing/rl_default_function.c diff --git a/42sh/srcs/line-editing/rl_display.c b/42sh/src/line-editing/rl_display.c similarity index 100% rename from 42sh/srcs/line-editing/rl_display.c rename to 42sh/src/line-editing/rl_display.c diff --git a/42sh/srcs/line-editing/rl_dynamic_buffer.c b/42sh/src/line-editing/rl_dynamic_buffer.c similarity index 100% rename from 42sh/srcs/line-editing/rl_dynamic_buffer.c rename to 42sh/src/line-editing/rl_dynamic_buffer.c diff --git a/42sh/srcs/line-editing/rl_long_move_function.c b/42sh/src/line-editing/rl_long_move_function.c similarity index 100% rename from 42sh/srcs/line-editing/rl_long_move_function.c rename to 42sh/src/line-editing/rl_long_move_function.c diff --git a/42sh/srcs/line-editing/rl_merge_line.c b/42sh/src/line-editing/rl_merge_line.c similarity index 100% rename from 42sh/srcs/line-editing/rl_merge_line.c rename to 42sh/src/line-editing/rl_merge_line.c diff --git a/42sh/srcs/line-editing/rl_page_move_function.c b/42sh/src/line-editing/rl_page_move_function.c similarity index 100% rename from 42sh/srcs/line-editing/rl_page_move_function.c rename to 42sh/src/line-editing/rl_page_move_function.c diff --git a/42sh/srcs/line-editing/rl_prompt.c b/42sh/src/line-editing/rl_prompt.c similarity index 100% rename from 42sh/srcs/line-editing/rl_prompt.c rename to 42sh/src/line-editing/rl_prompt.c diff --git a/42sh/srcs/line-editing/rl_quoting_function.c b/42sh/src/line-editing/rl_quoting_function.c similarity index 100% rename from 42sh/srcs/line-editing/rl_quoting_function.c rename to 42sh/src/line-editing/rl_quoting_function.c diff --git a/42sh/srcs/line-editing/rl_remove_function.c b/42sh/src/line-editing/rl_remove_function.c similarity index 100% rename from 42sh/srcs/line-editing/rl_remove_function.c rename to 42sh/src/line-editing/rl_remove_function.c diff --git a/42sh/srcs/line-editing/rl_setup.c b/42sh/src/line-editing/rl_setup.c similarity index 100% rename from 42sh/srcs/line-editing/rl_setup.c rename to 42sh/src/line-editing/rl_setup.c diff --git a/42sh/srcs/line-editing/rl_short_move_function.c b/42sh/src/line-editing/rl_short_move_function.c similarity index 100% rename from 42sh/srcs/line-editing/rl_short_move_function.c rename to 42sh/src/line-editing/rl_short_move_function.c diff --git a/42sh/srcs/line-editing/rl_stack_line.c b/42sh/src/line-editing/rl_stack_line.c similarity index 100% rename from 42sh/srcs/line-editing/rl_stack_line.c rename to 42sh/src/line-editing/rl_stack_line.c diff --git a/42sh/srcs/line-editing/rl_state_function.c b/42sh/src/line-editing/rl_state_function.c similarity index 100% rename from 42sh/srcs/line-editing/rl_state_function.c rename to 42sh/src/line-editing/rl_state_function.c diff --git a/42sh/srcs/line-editing/rl_word_move_function.c b/42sh/src/line-editing/rl_word_move_function.c similarity index 100% rename from 42sh/srcs/line-editing/rl_word_move_function.c rename to 42sh/src/line-editing/rl_word_move_function.c diff --git a/42sh/srcs/line-editing/rl_word_utility.c b/42sh/src/line-editing/rl_word_utility.c similarity index 100% rename from 42sh/srcs/line-editing/rl_word_utility.c rename to 42sh/src/line-editing/rl_word_utility.c diff --git a/42sh/srcs/main/data_exit.c b/42sh/src/main/data_exit.c similarity index 100% rename from 42sh/srcs/main/data_exit.c rename to 42sh/src/main/data_exit.c diff --git a/42sh/srcs/main/data_init.c b/42sh/src/main/data_init.c similarity index 100% rename from 42sh/srcs/main/data_init.c rename to 42sh/src/main/data_init.c diff --git a/42sh/srcs/main/ft_cleanup.c b/42sh/src/main/ft_cleanup.c similarity index 100% rename from 42sh/srcs/main/ft_cleanup.c rename to 42sh/src/main/ft_cleanup.c diff --git a/42sh/srcs/main/ft_putast.c b/42sh/src/main/ft_putast.c similarity index 100% rename from 42sh/srcs/main/ft_putast.c rename to 42sh/src/main/ft_putast.c diff --git a/42sh/srcs/main/ft_putast2.c b/42sh/src/main/ft_putast2.c similarity index 100% rename from 42sh/srcs/main/ft_putast2.c rename to 42sh/src/main/ft_putast2.c diff --git a/42sh/srcs/main/lib_expansion.c b/42sh/src/main/lib_expansion.c similarity index 100% rename from 42sh/srcs/main/lib_expansion.c rename to 42sh/src/main/lib_expansion.c diff --git a/42sh/srcs/main/main.c b/42sh/src/main/main.c similarity index 100% rename from 42sh/srcs/main/main.c rename to 42sh/src/main/main.c diff --git a/42sh/srcs/main/sig_handler.c b/42sh/src/main/sig_handler.c similarity index 100% rename from 42sh/srcs/main/sig_handler.c rename to 42sh/src/main/sig_handler.c diff --git a/42sh/srcs/parser/ft_parse.c b/42sh/src/parser/ft_parse.c similarity index 100% rename from 42sh/srcs/parser/ft_parse.c rename to 42sh/src/parser/ft_parse.c diff --git a/42sh/srcs/parser/parse_dgreat.c b/42sh/src/parser/parse_dgreat.c similarity index 100% rename from 42sh/srcs/parser/parse_dgreat.c rename to 42sh/src/parser/parse_dgreat.c diff --git a/42sh/srcs/parser/parse_dless.c b/42sh/src/parser/parse_dless.c similarity index 100% rename from 42sh/srcs/parser/parse_dless.c rename to 42sh/src/parser/parse_dless.c diff --git a/42sh/srcs/parser/parse_great.c b/42sh/src/parser/parse_great.c similarity index 100% rename from 42sh/srcs/parser/parse_great.c rename to 42sh/src/parser/parse_great.c diff --git a/42sh/srcs/parser/parse_greatand.c b/42sh/src/parser/parse_greatand.c similarity index 100% rename from 42sh/srcs/parser/parse_greatand.c rename to 42sh/src/parser/parse_greatand.c diff --git a/42sh/srcs/parser/parse_less.c b/42sh/src/parser/parse_less.c similarity index 100% rename from 42sh/srcs/parser/parse_less.c rename to 42sh/src/parser/parse_less.c diff --git a/42sh/srcs/parser/parse_lessand.c b/42sh/src/parser/parse_lessand.c similarity index 100% rename from 42sh/srcs/parser/parse_lessand.c rename to 42sh/src/parser/parse_lessand.c diff --git a/42sh/srcs/parser/parse_separator.c b/42sh/src/parser/parse_separator.c similarity index 100% rename from 42sh/srcs/parser/parse_separator.c rename to 42sh/src/parser/parse_separator.c diff --git a/42sh/srcs/parser/parse_word.c b/42sh/src/parser/parse_word.c similarity index 100% rename from 42sh/srcs/parser/parse_word.c rename to 42sh/src/parser/parse_word.c From d857f74a864405a30efa03708116ffff363cbd7a Mon Sep 17 00:00:00 2001 From: wescande Date: Thu, 26 Jan 2017 16:47:25 +0100 Subject: [PATCH 29/67] some minor tricks --- 42sh/Makefile | 2 +- 42sh/update_makefile.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index 351322b4..28f7dba9 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -117,7 +117,7 @@ LIBFT_INC = $(LIBFT_DIR)includes/ LIBS = -ltermcap -SRC_DIR = srcs/ +SRC_DIR = src/ INC_DIR = includes/ OBJ_DIR = objs/ diff --git a/42sh/update_makefile.sh b/42sh/update_makefile.sh index fca53410..a1b3228d 100755 --- a/42sh/update_makefile.sh +++ b/42sh/update_makefile.sh @@ -5,7 +5,7 @@ then echo "regenerate Makefile" sed "`grep -n 'SRC_BASE =' $CUR_MAKEFILE | sed 's/:.*//'`, \$d" $CUR_MAKEFILE > NEWMAKEFILE grep 'SRC_BASE =' $CUR_MAKEFILE >> NEWMAKEFILE - expr "$(find ./srcs | grep "\.c" | sed -e 's/srcs\///' -e 's/\.\///' -e 's/$/\\/')" : "\(.*\).$" >> NEWMAKEFILE + expr "$(find ./src | grep "\.c" | sed -e 's/src\///' -e 's/\.\///' -e 's/$/\\/')" : "\(.*\).$" >> NEWMAKEFILE echo "" >> NEWMAKEFILE grep 'SRCS =' $CUR_MAKEFILE >> NEWMAKEFILE sed "1, `grep -n 'SRCS =' $CUR_MAKEFILE | sed 's/:.*//'`d" $CUR_MAKEFILE >> NEWMAKEFILE From a0feff2e2af210449c865cab28b7fd09a43b4a87 Mon Sep 17 00:00:00 2001 From: wescande Date: Thu, 26 Jan 2017 16:59:41 +0100 Subject: [PATCH 30/67] clean after rebase --- 42sh/Makefile | 57 ++++++++++++++++++-- 42sh/src/builtin/builtin.c | 51 ------------------ 42sh/src/exec/fd_redirect.c | 27 ---------- 42sh/src/exec/ft_cmd.c | 65 ----------------------- 42sh/src/line-editing/ft_interactive_sh.c | 26 --------- 42sh/src/main/main.c | 22 +------- 6 files changed, 55 insertions(+), 193 deletions(-) delete mode 100644 42sh/src/builtin/builtin.c delete mode 100644 42sh/src/exec/fd_redirect.c delete mode 100644 42sh/src/exec/ft_cmd.c delete mode 100644 42sh/src/line-editing/ft_interactive_sh.c diff --git a/42sh/Makefile b/42sh/Makefile index 28f7dba9..2a215af7 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -122,14 +122,15 @@ INC_DIR = includes/ OBJ_DIR = objs/ SRC_BASE = \ -builtin/builtin.c\ builtin/builtin_cd.c\ builtin/builtin_echo.c\ builtin/builtin_env.c\ builtin/builtin_exit.c\ builtin/builtin_setenv.c\ builtin/builtin_unsetenv.c\ +builtin/is_builtin.c\ exec/ast_free.c\ +exec/exec_ampersand.c\ exec/exec_and_if.c\ exec/exec_command.c\ exec/exec_dgreat.c\ @@ -138,10 +139,13 @@ exec/exec_less.c\ exec/exec_or_if.c\ exec/exec_pipe.c\ exec/exec_semi.c\ -exec/fd_redirect.c\ -exec/ft_cmd.c\ exec/ft_exec.c\ exec/ft_findexec.c\ +exec/launch_process.c\ +exec/process_redirect.c\ +exec/process_reset.c\ +exec/process_setexec.c\ +exec/process_setgroup.c\ exec/set_exitstatus.c\ glob/dir_glob.c\ glob/expand_brace.c\ @@ -162,7 +166,42 @@ glob/lib_perso/ft_ld_to_tab.c\ glob/lib_perso/ft_strjoinf.c\ glob/lib_perso/ft_tabdel.c\ glob/match_pattern.c\ +job-control/builtin_bg.c\ +job-control/builtin_fg.c\ +job-control/builtin_jobs.c\ +job-control/do_job_notification.c\ +job-control/job_addprocess.c\ +job-control/job_cmp_id.c\ +job-control/job_format.c\ +job-control/job_format_head.c\ +job-control/job_free.c\ +job-control/job_getprocess.c\ +job-control/job_getrank.c\ +job-control/job_is_completed.c\ +job-control/job_is_stopped.c\ +job-control/job_kill_all.c\ +job-control/job_notify_change.c\ +job-control/job_notify_new.c\ +job-control/job_remove.c\ +job-control/job_update_id.c\ +job-control/job_update_status.c\ +job-control/job_wait.c\ +job-control/mark_job_as_running.c\ +job-control/process_cmp_pid.c\ +job-control/process_format.c\ +job-control/process_free.c\ +job-control/process_mark_status.c\ +job-control/put_job_in_background.c\ +job-control/put_job_in_foreground.c\ +job-control/sigchld_handler.c\ +job-control/sigint_handler.c\ +job-control/sigtstp_handler.c\ +job-control/sigttin_handler.c\ +job-control/sigttou_handler.c\ +lexer/command_getoutput.c\ +lexer/ft_post_tokenize.c\ lexer/ft_tokenize.c\ +lexer/get_lexer_state.c\ lexer/lexer_backslash.c\ lexer/lexer_default.c\ lexer/lexer_delim.c\ @@ -174,9 +213,14 @@ lexer/lexer_lessand.c\ lexer/lexer_number.c\ lexer/lexer_quote.c\ lexer/lexer_sep.c\ +lexer/lexer_special.c\ +lexer/lexer_var.c\ lexer/lexer_word.c\ +lexer/reduce_bquotes.c\ +lexer/reduce_parens.c\ lexer/token_append.c\ lexer/token_cmp_type.c\ +lexer/token_expand_var.c\ lexer/token_free.c\ lexer/token_init.c\ lexer/token_print.c\ @@ -188,7 +232,6 @@ line-editing/curs_setup.c\ line-editing/curs_single.c\ line-editing/curs_term_setup.c\ line-editing/curs_write.c\ -line-editing/ft_interactive_sh.c\ line-editing/ft_readline.c\ line-editing/rl_bitset.c\ line-editing/rl_clear_function.c\ @@ -212,11 +255,16 @@ line-editing/rl_word_move_function.c\ line-editing/rl_word_utility.c\ main/data_exit.c\ main/data_init.c\ +main/data_singleton.c\ main/ft_cleanup.c\ main/ft_putast.c\ main/ft_putast2.c\ main/lib_expansion.c\ main/main.c\ +main/shell_exit.c\ +main/shell_get_avdata.c\ +main/shell_get_opts.c\ +main/shell_init.c\ main/sig_handler.c\ parser/ft_parse.c\ parser/parse_dgreat.c\ @@ -226,6 +274,7 @@ parser/parse_greatand.c\ parser/parse_less.c\ parser/parse_lessand.c\ parser/parse_separator.c\ +parser/parse_subshell.c\ parser/parse_word.c SRCS = $(addprefix $(SRC_DIR), $(SRC_BASE)) diff --git a/42sh/src/builtin/builtin.c b/42sh/src/builtin/builtin.c deleted file mode 100644 index 1966a63e..00000000 --- a/42sh/src/builtin/builtin.c +++ /dev/null @@ -1,51 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* builtin.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/11/28 14:21:34 by jhalford #+# #+# */ -/* Updated: 2016/12/03 15:17:21 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "minishell.h" - -t_stof g_builtin[] = { - {"echo", &builtin_echo}, - {"cd", &builtin_cd}, - {"setenv", &builtin_setenv}, - {"unsetenv", &builtin_unsetenv}, - {"env", &builtin_env}, - {"exit", &builtin_exit}, - {NULL, NULL}, -}; - -int ft_builtin(char **av, t_data *data) -{ - int i; - int ret; - - i = -1; - while (g_builtin[++i].name) - if (ft_strcmp(g_builtin[i].name, *av) == 0) - { - if (data->exec.fdout != STDOUT) - { - if (fork() == 0) - { - fd_redirect(data); - ret = (g_builtin[i].f)(av, data); - exit(ret); - } - } - else - { - ret = (g_builtin[i].f)(av, data); - set_exitstatus(data, ret); - } - return (1); - } - return (0); -} diff --git a/42sh/src/exec/fd_redirect.c b/42sh/src/exec/fd_redirect.c deleted file mode 100644 index 6c1d8c47..00000000 --- a/42sh/src/exec/fd_redirect.c +++ /dev/null @@ -1,27 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_redirect.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/11/29 16:04:18 by jhalford #+# #+# */ -/* Updated: 2016/12/03 15:24:08 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "minishell.h" - -void fd_redirect(t_data *data) -{ - if (data->exec.fdin != STDIN) - { - dup2(data->exec.fdin, STDIN); - close(data->exec.fdin); - } - if (data->exec.fdout != STDOUT) - { - dup2(data->exec.fdout, STDOUT); - close(data->exec.fdout); - } -} diff --git a/42sh/src/exec/ft_cmd.c b/42sh/src/exec/ft_cmd.c deleted file mode 100644 index adb9d6db..00000000 --- a/42sh/src/exec/ft_cmd.c +++ /dev/null @@ -1,65 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_cmd.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/11/27 21:13:18 by jhalford #+# #+# */ -/* Updated: 2016/12/09 21:50:26 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "minishell.h" - -extern pid_t g_pid; - -int ft_cmd_process(char **argv, t_data *data) -{ - char *execpath; - - ft_expand_dollar(argv, data->env); - if (ft_builtin(argv, data)) - return (0); - else if (ft_strchr(argv[0], '/')) - execpath = argv[0]; - else if (!(execpath = ft_findexec(ft_getenv(data->env, "PATH"), argv[0]))) - { - ft_dprintf(2, "%s: command not found: %s\n", SHELL_NAME, argv[0]); - set_exitstatus(data, 127); - return (-1); - } - return (ft_cmd_exec(execpath, argv, data)); -} - -int ft_cmd_exec(char *execpath, char **argv, t_data *data) -{ - pid_t pid; - int status; - - if (access(execpath, X_OK) == -1) - { - ft_dprintf(2, "%s: permission denied: %s\n", SHELL_NAME, argv[0]); - ft_strdel(&execpath); - return (-1); - } - if ((pid = fork()) == -1) - return (-1); - else if (pid == 0) - { - fd_redirect(data); - execve(execpath, argv, data->env); - } - else - { - ft_strdel(&execpath); - g_pid = pid; - if (data->exec.fdout == STDOUT) - { - waitpid(pid, &status, 0); - set_exitstatus(data, status); - } - g_pid = 0; - } - return (0); -} diff --git a/42sh/src/line-editing/ft_interactive_sh.c b/42sh/src/line-editing/ft_interactive_sh.c deleted file mode 100644 index 5110f44b..00000000 --- a/42sh/src/line-editing/ft_interactive_sh.c +++ /dev/null @@ -1,26 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* interactive_sh.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/10 09:44:43 by sbenning #+# #+# */ -/* Updated: 2016/12/10 10:24:12 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "line_editing.h" - -t_data **data_singleton(void) -{ - static t_data *data; - - return (&data); -} - -int ft_interactive_sh(t_data *data) -{ - *data_singleton() = data; - return (ft_readline(&data->line)); -} diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 0228f689..58cec719 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,11 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -<<<<<<< HEAD:src/main/main.c -/* Updated: 2017/01/12 14:02:30 by jhalford ### ########.fr */ -======= -/* Updated: 2017/01/05 16:07:09 by wescande ### ########.fr */ ->>>>>>> premier commit. working. . .:srcs/main/main.c +/* Updated: 2017/01/26 16:54:26 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,11 +26,11 @@ int shell_single_command(char *command) return (1); if (!token) return (0); - token_print(token); if (ft_post_tokenize(&token, command)) return (1); DG("after post_tokenize"); token_print(token); + glob_print(token, data_singleton()); if (ft_parse(&ast, &token)) return (1); /* btree_print(STDBUG, ast, &ft_putast); */ @@ -56,21 +52,7 @@ int main(int ac, char **av) } while (1) { -<<<<<<< HEAD:src/main/main.c if (ft_readline()) -======= - if (ft_interactive_sh(&data)) - return (1); - DG("{inv}{mag}got command '%s'", data.line.input); - token = NULL; - if (ft_tokenize(&token, data.line.input, DEFAULT)) - return (1); - if (!token) - continue ; -// token_print(token); - glob_print(token, &data); - if (ft_parse(&ast, &token)) ->>>>>>> premier commit. working. . .:srcs/main/main.c return (1); if (shell_single_command(data_singleton()->line.input)) return (1); From d66a692f8e8cb4a482f95f1f6c295f94660d699b Mon Sep 17 00:00:00 2001 From: wescande Date: Thu, 26 Jan 2017 17:21:13 +0100 Subject: [PATCH 31/67] modif print on DBG 3 et modif glob sur recherche dans le path seulement si =/= '/' et =/= './' --- 42sh/src/glob/glob.c | 7 +++++-- 42sh/src/glob/glob_print.c | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index 6aa8b783..320b15eb 100644 --- a/42sh/src/glob/glob.c +++ b/42sh/src/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/26 16:04:09 by wescande ### ########.fr */ +/* Updated: 2017/01/26 17:18:20 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -52,7 +52,10 @@ char **glob(const char *pat, char **env) mul_pat = expand_brace(pat); while (mul_pat->next) { - if (env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':'))) + if (!(((char *)mul_pat->content)[0] == '/' + || (((char *)mul_pat->content)[0] == '.' + && ((char *)mul_pat->content)[1] == '/')) + && env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':'))) { path_research(mul_pat->content, path, &match); ft_tabdel(&path); diff --git a/42sh/src/glob/glob_print.c b/42sh/src/glob/glob_print.c index 828089a5..38a8bdc0 100644 --- a/42sh/src/glob/glob_print.c +++ b/42sh/src/glob/glob_print.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:09:40 by wescande #+# #+# */ -/* Updated: 2017/01/12 15:48:03 by wescande ### ########.fr */ +/* Updated: 2017/01/26 17:14:32 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -42,7 +42,7 @@ void glob_print(t_list *lst, t_data *data) ; glob_ret = glob(token->data, data->env); DG("%02i '%s'", i, token->data); - ft_tabprint_fd(glob_ret, 2); + ft_tabprint_fd(glob_ret, 3); lst = lst->next; } } From 26625dd1b18933ce966ca28b1e2cf1dcec96006d Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Thu, 26 Jan 2017 19:39:39 +0100 Subject: [PATCH 32/67] commit pour cleanup la merde de wescande sur git........ --- 42sh/Makefile | 93 --------------------------------------- 42sh/includes/minishell.h | 9 +--- 2 files changed, 1 insertion(+), 101 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index 2a215af7..9bfbaf2d 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -1,95 +1,3 @@ -<<<<<<< HEAD -NAME = minishell -CC = gcc -TAGFILE = .tags - -D_SRC = src -F_SRC := $(shell find $(D_SRC) -type f -regex ".*\.c$$") - -D_OBJ = obj -F_OBJ = $(notdir $(F_SRC:.c=.o)) -DF_OBJ := $(addprefix $(D_OBJ)/, $(F_OBJ)) - -D_INC = includes libft/includes -F_INC := $(shell find $(D_INC) -type f -regex ".*\.h$$") -O_INC = $(addprefix -I, $(D_INC)) - -D_SER = libft/ -O_SER = $(addprefix -L, $(D_SER)) - -D_LIB = ft ncurses -O_LIB = $(addprefix -l, $(D_LIB)) - -W_FLAGS = -Wall -Wextra -Werror -D_FLAGS = -g - -MKDIR = mkdir -p -RM = /bin/rm -rf - -.PHONY: all clean fclean re - -all: $(NAME) - -$(NAME): libft/libft.a $(DF_OBJ) - $(CC) $(O_INC) $(O_SER) $(O_LIB) $(W_FLAGS) $(DF_OBJ) -o $@ $(D_FLAGS) - -$(D_OBJ)/%.o: $(D_SRC)/main/%.c includes/minishell.h - @$(MKDIR) $(D_OBJ) - @$(CC) $(O_INC) $(W_FLAGS) -c $< -o $@ $(D_FLAGS) - @echo "Compiling "$<"..." - -$(D_OBJ)/%.o: $(D_SRC)/builtin/%.c includes/minishell.h - @$(MKDIR) $(D_OBJ) - @$(CC) $(O_INC) $(W_FLAGS) -c $< -o $@ $(D_FLAGS) - @echo "Compiling "$<"..." - -$(D_OBJ)/%.o: $(D_SRC)/minishell-exec/%.c includes/minishell.h - @$(MKDIR) $(D_OBJ) - @$(CC) $(O_INC) $(W_FLAGS) -c $< -o $@ $(D_FLAGS) - @echo "Compiling "$<"..." - -$(D_OBJ)/%.o: $(D_SRC)/line-editing/%.c includes/ft_readline.h - @$(MKDIR) $(D_OBJ) - @$(CC) $(O_INC) $(W_FLAGS) -c $< -o $@ $(D_FLAGS) - @echo "Compiling "$<"..." - -$(D_OBJ)/%.o: $(D_SRC)/lexer/%.c includes/lexer.h - @$(MKDIR) $(D_OBJ) - @$(CC) $(O_INC) $(W_FLAGS) -c $< -o $@ $(D_FLAGS) - @echo "Compiling "$<"..." - -$(D_OBJ)/%.o: $(D_SRC)/parser/%.c includes/parser.h - @$(MKDIR) $(D_OBJ) - @$(CC) $(O_INC) $(W_FLAGS) -c $< -o $@ $(D_FLAGS) - @echo "Compiling "$<"..." - -$(D_OBJ)/%.o: $(D_SRC)/exec/%.c includes/exec.h - @$(MKDIR) $(D_OBJ) - @$(CC) $(O_INC) $(W_FLAGS) -c $< -o $@ $(D_FLAGS) - @echo "Compiling "$<"..." - -$(D_OBJ)/%.o: $(D_SRC)/job-control/%.c includes/job_control.h - @$(MKDIR) $(D_OBJ) - @$(CC) $(O_INC) $(W_FLAGS) -c $< -o $@ $(D_FLAGS) - @echo "Compiling "$<"..." - -libft/libft.a: libft/src/*/*.c - @echo "libft/libft.a" - @$(MAKE) -C libft 2>/dev/null - -libft: - @echo "libft" - @$(MAKE) -C libft 2>/dev/null - -clean: - $(RM) $(D_OBJ) - -fclean: clean - $(RM) $(NAME) - @$(MAKE) fclean -C libft/ 2>/dev/null - -re: fclean all -======= #* ************************************************************************** *# #* *# #* ::: :::::::: *# @@ -325,4 +233,3 @@ relib: fcleanlib $(LIBFT_LIB) .PHONY : fclean clean re relib cleanlib fcleanlib -include $(OBJS:.o=.d) ->>>>>>> premier commit. working. . . diff --git a/42sh/includes/minishell.h b/42sh/includes/minishell.h index 108ea05b..25815f39 100644 --- a/42sh/includes/minishell.h +++ b/42sh/includes/minishell.h @@ -6,11 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:07:44 by jhalford #+# #+# */ -<<<<<<< HEAD -/* Updated: 2017/01/11 17:17:16 by jhalford ### ########.fr */ -======= -/* Updated: 2017/01/05 14:24:14 by wescande ### ########.fr */ ->>>>>>> premier commit. working. . . +/* Updated: 2017/01/26 19:39:10 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,12 +21,9 @@ # include "parser.h" # include "ft_readline.h" # include "exec.h" -<<<<<<< HEAD # include "builtin.h" # include "job_control.h" -======= # include "glob.h" ->>>>>>> premier commit. working. . . # include # include From 7d57b47f5efb74db7ec99136ea76c5f87ea31ae6 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Thu, 26 Jan 2017 20:32:39 +0100 Subject: [PATCH 33/67] end of day, still doesnt work properly --- 42sh/includes/builtin_read.h | 2 +- 42sh/src/builtin/bt_read_term.c | 2 +- 42sh/src/builtin/builtin_read.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/42sh/includes/builtin_read.h b/42sh/includes/builtin_read.h index ab660d46..86c38d2a 100644 --- a/42sh/includes/builtin_read.h +++ b/42sh/includes/builtin_read.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 15:02:39 by jhalford #+# #+# */ -/* Updated: 2017/01/26 15:23:11 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 20:25:11 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/builtin/bt_read_term.c b/42sh/src/builtin/bt_read_term.c index cb57f1a9..69bb5643 100644 --- a/42sh/src/builtin/bt_read_term.c +++ b/42sh/src/builtin/bt_read_term.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/25 16:02:05 by jhalford #+# #+# */ -/* Updated: 2017/01/26 18:39:29 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 20:27:00 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/builtin/builtin_read.c b/42sh/src/builtin/builtin_read.c index 9f2b128c..953254ef 100644 --- a/42sh/src/builtin/builtin_read.c +++ b/42sh/src/builtin/builtin_read.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 15:01:45 by jhalford #+# #+# */ -/* Updated: 2017/01/26 18:39:19 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 20:32:28 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From e66999c24f96676be5702f5ac9d917b78a9cebb5 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 27 Jan 2017 17:11:11 +0100 Subject: [PATCH 34/67] -t works fine, gonna do the IFS split next --- 42sh/src/builtin/bt_read_term.c | 4 ++-- 42sh/src/builtin/builtin_read.c | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/42sh/src/builtin/bt_read_term.c b/42sh/src/builtin/bt_read_term.c index 69bb5643..65c87ff6 100644 --- a/42sh/src/builtin/bt_read_term.c +++ b/42sh/src/builtin/bt_read_term.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/25 16:02:05 by jhalford #+# #+# */ -/* Updated: 2017/01/26 20:27:00 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 17:07:48 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -40,7 +40,7 @@ int bt_read_terminit(t_read *data) } if (tcsetattr(0, TCSANOW, &term) < 0) return (-1); - DG("c_cc[VTIME]=%i", term.c_cc[VTIME]); + /* DG("c_cc[VTIME]=%i", term.c_cc[VTIME]); */ return (0); } diff --git a/42sh/src/builtin/builtin_read.c b/42sh/src/builtin/builtin_read.c index 953254ef..6dae6f74 100644 --- a/42sh/src/builtin/builtin_read.c +++ b/42sh/src/builtin/builtin_read.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 15:01:45 by jhalford #+# #+# */ -/* Updated: 2017/01/26 20:32:28 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 17:10:43 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -34,7 +34,6 @@ void bt_read_init(t_read *data) data->delim = '\n'; data->nchars = -1; data->prompt = NULL; - data->timeout = -1; data->fd = 0; } @@ -121,9 +120,9 @@ int builtin_read(const char *path, char *const av[], char *const envp[]) ft_printf(data.prompt); while (42) { - if ((ret = read(data.fd, buf, 1) <= 0)) + if ((ret = read(data.fd, buf, 1)) <= 0) return (1); - DG("got *buf=%c, ret=%i", *buf, ret); + /* DG("got *buf=%c, ret=%i", *buf, ret); */ buf[ret] = 0; if (!esc && *buf == data.delim) break ; From d6c6103bc40339ecaf526cc854ef64027e2ff807 Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Fri, 27 Jan 2017 17:42:46 +0100 Subject: [PATCH 35/67] avant de merge --- 42sh/includes/ft_readline.h | 3 ++- 42sh/src/builtin/is_builtin.c | 5 +++-- 42sh/src/line-editing/builtin_history.c | 10 +++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index af343cd1..852800a7 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/23 10:35:44 by gwojda #+# #+# */ -/* Updated: 2017/01/26 13:36:59 by gwojda ### ########.fr */ +/* Updated: 2017/01/26 14:58:14 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -71,6 +71,7 @@ typedef struct s_line t_list_history *list_beg; } t_line; +int builtin_history(const char *path, char *const av[], char *const envp[]); void ft_check_backslash(char **str); char *ft_strget_history(char *str); void ft_surch_in_history(char **str, size_t *pos); diff --git a/42sh/src/builtin/is_builtin.c b/42sh/src/builtin/is_builtin.c index 7dbdda0c..ce8f22c5 100644 --- a/42sh/src/builtin/is_builtin.c +++ b/42sh/src/builtin/is_builtin.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* is_builtin.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:09:57 by jhalford #+# #+# */ -/* Updated: 2017/01/09 16:58:13 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 14:58:02 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,6 +22,7 @@ t_stof g_builtin[] = { {"jobs", &builtin_jobs}, {"fg", &builtin_fg}, {"bg", &builtin_bg}, + {"history", &builtin_history}, {NULL, NULL}, }; diff --git a/42sh/src/line-editing/builtin_history.c b/42sh/src/line-editing/builtin_history.c index 76b99fa1..019af98e 100644 --- a/42sh/src/line-editing/builtin_history.c +++ b/42sh/src/line-editing/builtin_history.c @@ -6,21 +6,24 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/24 14:54:53 by gwojda #+# #+# */ -/* Updated: 2017/01/25 15:48:52 by gwojda ### ########.fr */ +/* Updated: 2017/01/26 14:58:41 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -void ft_history_builtin(void) +int builtin_history(const char *path, char *const av[], char *const envp[]) { size_t len; t_list_history *head; + (void)path; + (void)av; + (void)envp; head = data_singleton()->line.list_end; len = 1; if (!head) - return ; + return (0); if (head && !head->str) head = head->next; while (head && head->str) @@ -31,4 +34,5 @@ void ft_history_builtin(void) ++len; head = head->next; } + return (0); } From cc2fadf41c83eb7b765ca67ac4449842ef4ef22e Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 27 Jan 2017 19:40:36 +0100 Subject: [PATCH 36/67] variables assigning passes initial testing, needs more testing --- 42sh/includes/builtin_read.h | 7 +- 42sh/src/builtin/bt_read_term.c | 5 +- 42sh/src/builtin/builtin_read.c | 142 +++++++++--------------- 42sh/src/builtin/builtin_setenv.c | 2 +- 42sh/src/line-editing/curs_term_setup.c | 2 +- 42sh/src/main/main.c | 2 +- 6 files changed, 66 insertions(+), 94 deletions(-) diff --git a/42sh/includes/builtin_read.h b/42sh/includes/builtin_read.h index 86c38d2a..177f9176 100644 --- a/42sh/includes/builtin_read.h +++ b/42sh/includes/builtin_read.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 15:02:39 by jhalford #+# #+# */ -/* Updated: 2017/01/26 20:25:11 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 18:56:58 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -42,6 +42,7 @@ struct s_read int timeout; int fd; char **names; + char *input; }; struct s_readopt @@ -55,9 +56,11 @@ extern t_readopt g_readtab[]; int builtin_read(const char *path, char *const av[], char *const envp[]); +int bt_read_init(t_read *data, char **av); + struct termios bt_read_term(int init); int bt_read_terminit(t_read *data); -int bt_read_termexit(void); +int bt_read_exit(t_read *data); int bt_read_getdelim(t_read *data, char *arg); int bt_read_getnchars(t_read *data, char *arg); diff --git a/42sh/src/builtin/bt_read_term.c b/42sh/src/builtin/bt_read_term.c index 65c87ff6..ae5d40a9 100644 --- a/42sh/src/builtin/bt_read_term.c +++ b/42sh/src/builtin/bt_read_term.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/25 16:02:05 by jhalford #+# #+# */ -/* Updated: 2017/01/27 17:07:48 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 19:00:10 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -44,10 +44,11 @@ int bt_read_terminit(t_read *data) return (0); } -int bt_read_termexit(void) +int bt_read_exit(t_read *data) { struct termios term; + ft_strdel(&data->input); term = bt_read_term(0); if (tcsetattr(0, TCSANOW, &term) < 0) return (-1); diff --git a/42sh/src/builtin/builtin_read.c b/42sh/src/builtin/builtin_read.c index 6dae6f74..176acb3a 100644 --- a/42sh/src/builtin/builtin_read.c +++ b/42sh/src/builtin/builtin_read.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 15:01:45 by jhalford #+# #+# */ -/* Updated: 2017/01/27 17:10:43 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 19:40:12 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,115 +28,83 @@ t_readopt g_readtab[] = {0, 0, 0}, }; -void bt_read_init(t_read *data) -{ - data->opts = 0; - data->delim = '\n'; - data->nchars = -1; - data->prompt = NULL; - data->fd = 0; -} - -t_readopt *bt_read_getopt(char letter) +int bt_read_loop(t_read *data) { int i; + int esc; + int ret; + char buf[2]; i = 0; - while (g_readtab[i].letter) + esc = 0; + if (data->prompt) + ft_printf(data->prompt); + while (42) { - if (g_readtab[i].letter == letter) - return (&g_readtab[i]); + if ((ret = read(data->fd, buf, 1)) <= 0) + return (1); + /* DG("got *buf=%c, ret=%i", *buf, ret); */ + buf[ret] = 0; + if (!esc && *buf == data->delim) + break ; + esc = esc ? 0 : !(data->opts & READ_OPT_LR) && (*buf == '\\'); + ft_strappend(&data->input, buf); + if (!(data->opts & READ_OPT_LS)) + ft_putchar(*buf); i++; + if (*buf == '\n' && !(data->opts & READ_OPT_LR)) + ft_putstr("> "); + if ((data->opts & READ_OPT_LN) && i >= data->nchars) + break ; } - return (NULL); + ft_putchar('\n'); + DG("input=%s", data->input); + return (0); } -int bt_read_parse(t_read *data, char **av) +int bt_read_assign(t_read *data) { - int i; - int j; - int k; - t_readopt *opt; + char *input; + char **names; + char *IFS; + char *start; - i = 1; - k = 0; - while (av[i]) + input = data->input; + names = data->names ? data->names : (char*[]){"REPLY", NULL}; + IFS = ft_getenv(data_singleton()->env, "IFS"); + start = input; + while (*start && *names) { - j = 0; - if (av[i][j++] == '-') + if (!(names[1]) || !IFS) { - if (av[i][j] == '-' && av[i][j + 1] == 0) - { - i++; - break ; - } - while (av[i][j]) - { - if (!(opt = bt_read_getopt(av[i][j]))) - { - ft_dprintf(2, "{red}%s: bad option: %c{eoc}\n", SHELL_NAME, av[i][j]); - return (2); - } - data->opts |= opt->flag; - if (opt->get) - { - (*opt->get)(data, av[++i]); - break ; - } - j++; - } - } - else + builtin_setenv("setenv", (char*[]){"setenv", *names, start}, NULL); break ; - i++; + } + while (*input && !ft_strchr(IFS, *input)) + input++; + while (input && ft_strchr(IFS, *input)) + *(input++) = 0; + builtin_setenv("setenv", (char*[]){"setenv", *names, start}, NULL); + start = input; + names++; } - data->names = av + i; return (0); } int builtin_read(const char *path, char *const av[], char *const envp[]) { t_read data; - int i; - char buf[2]; - char *input; - int esc; int ret; (void)path; (void)envp; - input = NULL; - bt_read_init(&data); - if ((bt_read_parse(&data, (char **)av))) - return (2); - DG("read_opts: %b", data.opts); - DG("\ndelim=%c\nnchars=%i\nprompt=%s\ntimeout=%i\nfd=%i", - data.delim, data.nchars, data.prompt, data.timeout, data.fd); - ft_sstrprint(data.names, ','); - bt_read_terminit(&data); - i = 0; - esc = 0; - if (data.prompt) - ft_printf(data.prompt); - while (42) - { - if ((ret = read(data.fd, buf, 1)) <= 0) - return (1); - /* DG("got *buf=%c, ret=%i", *buf, ret); */ - buf[ret] = 0; - if (!esc && *buf == data.delim) - break ; - esc = esc ? 0 : !(data.opts & READ_OPT_LR) && (*buf == '\\'); - ft_strappend(&input, buf); - ft_putchar(*buf); - i++; - if (*buf == '\n' && !(data.opts & READ_OPT_LR)) - ft_putstr("> "); - if ((data.opts & READ_OPT_LN) && i >= data.nchars) - break ; - } - ft_putchar('\n'); - DG("input=%s", input); - bt_read_termexit(); - return (0); + ret = 0; + if (bt_read_init(&data, (char **)av)) + ret = 2; + else if (bt_read_loop(&data)) + ret = 1; + else if (bt_read_assign(&data)) + ret = 1; + bt_read_exit(&data); + return (ret); } diff --git a/42sh/src/builtin/builtin_setenv.c b/42sh/src/builtin/builtin_setenv.c index 98f92890..3c566d6b 100644 --- a/42sh/src/builtin/builtin_setenv.c +++ b/42sh/src/builtin/builtin_setenv.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:25:17 by jhalford #+# #+# */ -/* Updated: 2017/01/09 15:53:07 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 19:00:07 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/curs_term_setup.c b/42sh/src/line-editing/curs_term_setup.c index 396503f0..369ad41b 100644 --- a/42sh/src/line-editing/curs_term_setup.c +++ b/42sh/src/line-editing/curs_term_setup.c @@ -6,7 +6,7 @@ /* By: sbenning +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/08 16:50:26 by sbenning #+# #+# */ -/* Updated: 2017/01/25 15:04:17 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 18:55:09 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index e90ec878..33365380 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/26 15:16:00 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 18:18:13 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From f236e8e734cea52721a255ddaacc3a0011b6ed35 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 27 Jan 2017 20:08:56 +0100 Subject: [PATCH 37/67] refactoring for clarity of bt_read* family --- 42sh/src/builtin/bt_read_parse.c | 89 ++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 42sh/src/builtin/bt_read_parse.c diff --git a/42sh/src/builtin/bt_read_parse.c b/42sh/src/builtin/bt_read_parse.c new file mode 100644 index 00000000..b23672f1 --- /dev/null +++ b/42sh/src/builtin/bt_read_parse.c @@ -0,0 +1,89 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* bt_read_parse.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/27 18:25:22 by jhalford #+# #+# */ +/* Updated: 2017/01/27 19:40:14 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "builtin_read.h" + +static t_readopt *bt_read_getopt(char letter) +{ + int i; + + i = 0; + while (g_readtab[i].letter) + { + if (g_readtab[i].letter == letter) + return (&g_readtab[i]); + i++; + } + return (NULL); +} + +int bt_read_parse(t_read *data, char **av) +{ + int i; + int j; + int k; + t_readopt *opt; + + i = 1; + k = 0; + while (av[i]) + { + j = 0; + if (av[i][j++] == '-') + { + if (av[i][j] == '-' && av[i][j + 1] == 0) + { + i++; + break ; + } + while (av[i][j]) + { + if (!(opt = bt_read_getopt(av[i][j]))) + { + ft_dprintf(2, "{red}%s: bad option: %c{eoc}\n", SHELL_NAME, av[i][j]); + return (2); + } + data->opts |= opt->flag; + if (opt->get) + { + (*opt->get)(data, av[++i]); + break ; + } + j++; + } + } + else + break ; + i++; + } + data->names = av[i] ? av + i : NULL; + DG("read_opts: %b", data->opts); + DG("\ndelim=%c\nnchars=%i\nprompt=%s\ntimeout=%i\nfd=%i", + data->delim, data->nchars, data->prompt, data->timeout, data->fd); + return (0); +} + +int bt_read_init(t_read *data, char **av) +{ + data->opts = 0; + data->delim = '\n'; + data->nchars = -1; + data->prompt = NULL; + data->fd = 0; + data->input = NULL; + if ((bt_read_parse(data, av))) + return (1); + if (data->names) + DG("%s,%s", data->names[0], data->names[1]); + bt_read_terminit(data); + return (0); +} From 45bc317f97439c9b6dc2a59a494d306f2244a28a Mon Sep 17 00:00:00 2001 From: wescande Date: Fri, 27 Jan 2017 20:13:13 +0100 Subject: [PATCH 38/67] working on esc character in token --- 42sh/includes/glob.h | 25 +++++++---- 42sh/includes/lexer.h | 5 ++- 42sh/src/glob/dir_glob.c | 18 ++++---- 42sh/src/glob/expand_brace.c | 70 +++++++++++++++++++++++-------- 42sh/src/glob/glob.c | 64 +++++++++++++++++++--------- 42sh/src/glob/glob_print.c | 19 ++++++++- 42sh/src/glob/is_char_esc.c | 23 ++++++++++ 42sh/src/lexer/ft_tokenize.c | 2 +- 42sh/src/lexer/lexer_backslash.c | 4 +- 42sh/src/lexer/lexer_default.c | 4 +- 42sh/src/lexer/lexer_dquote.c | 6 +-- 42sh/src/lexer/lexer_great.c | 8 ++-- 42sh/src/lexer/lexer_greatand.c | 6 +-- 42sh/src/lexer/lexer_less.c | 8 ++-- 42sh/src/lexer/lexer_lessand.c | 6 +-- 42sh/src/lexer/lexer_number.c | 4 +- 42sh/src/lexer/lexer_quote.c | 4 +- 42sh/src/lexer/lexer_var.c | 6 +-- 42sh/src/lexer/lexer_word.c | 4 +- 42sh/src/lexer/token_append.c | 17 +++++--- 42sh/src/lexer/token_expand_var.c | 4 +- 42sh/src/lexer/token_free.c | 5 ++- 42sh/src/lexer/token_init.c | 7 ++-- 42sh/src/lexer/token_print.c | 7 +++- 24 files changed, 224 insertions(+), 102 deletions(-) create mode 100644 42sh/src/glob/is_char_esc.c diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 6b8d2475..943ab15a 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/24 21:22:58 by wescande ### ########.fr */ +/* Updated: 2017/01/27 19:13:15 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,14 +22,23 @@ typedef struct s_ld struct s_ld *prev; } t_ld; -char **glob(const char *str, char **env); -t_ld *expand_brace(const char *pat); +typedef struct s_glob +{ + const char *pat; + const char *esc; + t_ld *match; + t_ld *m_pat; +} t_glob; + +char **glob(const char *str, const char *esc, char **env); +void expand_brace(t_glob *tglob); void glob_print(t_list *token, t_data *data); -int match_pattern(const char *pat, char *str, - char *full_word, t_ld **match); -void dir_research(const char *pat, char *path, t_ld **match); -void dir_research_recursive(const char *pat, char *p, t_ld **match); -bool is_directory(const char *path); +int match_pattern(t_glob *tglob, char *str, char *full_word); +void dir_research(t_glob *tglob, char *path); +void dir_research_recursive(t_glob *tglob, char *p); +int is_directory(const char *path); + +int is_char_esc(const char *esc, const char *ini_str, const char *str_pos); /* ** LIST D: diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 03276719..e1dcf24f 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:50 by jhalford #+# #+# */ -/* Updated: 2017/01/12 14:57:41 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:52:11 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -63,6 +63,7 @@ struct s_token { t_type type; char *data; + char *esc; int size; }; @@ -75,7 +76,7 @@ extern int (*g_lexer[])(t_list **alst, char *str); t_token *token_init(); int ft_tokenize(t_list **alst, char *str, t_lexstate state); int ft_post_tokenize(t_list **alst, char *str); -int token_append(t_token *token, char c); +int token_append(t_token *token, char c, short int esc); void token_free(void *data, size_t size); int token_cmp_type(t_token *token, t_type *ref); void token_print(t_list *lst); diff --git a/42sh/src/glob/dir_glob.c b/42sh/src/glob/dir_glob.c index c4bdb128..804c9465 100644 --- a/42sh/src/glob/dir_glob.c +++ b/42sh/src/glob/dir_glob.c @@ -6,13 +6,13 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/24 21:16:42 by wescande ### ########.fr */ +/* Updated: 2017/01/27 18:32:54 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "glob.h" -bool is_directory(const char *path) +int is_directory(const char *path) { struct stat path_stat; @@ -20,7 +20,7 @@ bool is_directory(const char *path) return (S_ISDIR(path_stat.st_mode)); } -void dir_research(const char *pat, char *p, t_ld **match) +void dir_research(t_glob *gl, char *p) { DIR *dir; struct dirent *in; @@ -38,8 +38,8 @@ void dir_research(const char *pat, char *p, t_ld **match) path_tmp = ft_strjoin(p, in->d_name); else path_tmp = ft_strjoinf(ft_strjoin(p, "/"), in->d_name, 1); - if (match_pattern(pat, in->d_name, path_tmp, match)) - ft_ld_pushfront(match, ft_strdup(path_tmp + 2 * + if (match_pattern(gl, in->d_name, path_tmp)) + ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + 2 * (path_tmp[0] == '.' && path_tmp[1] == '/'))); ft_strdel(&path_tmp); } @@ -47,7 +47,7 @@ void dir_research(const char *pat, char *p, t_ld **match) } } -void dir_research_recursive(const char *pat, char *p, t_ld **match) +void dir_research_recursive(t_glob *gl, char *p) { DIR *dir; struct dirent *in; @@ -66,9 +66,9 @@ void dir_research_recursive(const char *pat, char *p, t_ld **match) else path_tmp = ft_strjoinf(ft_strjoin(p, "/"), in->d_name, 1); if (is_directory(path_tmp)) - dir_research_recursive(pat, path_tmp, match); - if (match_pattern(pat, in->d_name, path_tmp, match)) - ft_ld_pushfront(match, ft_strdup(path_tmp + 2 * + dir_research_recursive(gl, path_tmp); + if (match_pattern(gl, in->d_name, path_tmp)) + ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + 2 * (path_tmp[0] == '.' && path_tmp[1] == '/'))); ft_strdel(&path_tmp); } diff --git a/42sh/src/glob/expand_brace.c b/42sh/src/glob/expand_brace.c index 501b7ac9..8db42a27 100644 --- a/42sh/src/glob/expand_brace.c +++ b/42sh/src/glob/expand_brace.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/12 19:00:29 by wescande #+# #+# */ -/* Updated: 2017/01/24 19:15:35 by wescande ### ########.fr */ +/* Updated: 2017/01/27 20:12:12 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,7 +20,43 @@ ** -char *pat -> pattern string to be looking for expand */ -static int search_brace(t_ld **wk, char *str, int index) +static char **generate_tab(const char *pat, const char *esc, int dup) +{ + char **my_tab; + + if (!(my_tab = (char **)malloc(sizeof(char*) * 3))) + return (NULL); + if (dup) + { + my_tab[0] = ft_strdup(pat); + my_tab[1] = ft_strdup(esc); + } + else + { + my_tab[0] = (char *)pat; + my_tab[1] = (char *)esc; + } + my_tab[2] = NULL; + return (my_tab); +} + +static char *calc_expand_esc(const char *esc, + int nb_start, int nb_middle, int nb_end) +{ + char *new_esc; + int index; + + new_esc = ft_memalloc(sizeof(char) * (nb_start + nb_middle + nb_end) / 8); + index = -1; + while (++index < nb_start) + new_esc[index / 8] |= (esc[index / 8] >> index % 8) & 1 << index % 8; + //copy the nb_start first bit of esc. + //append nb_middle bit at status 0 + //append nb_end last bit from end of esc. + return (new_esc); +} + +static int search_brace(t_ld **wk, char *str, char *esc, int index) { char *start; char *s1; @@ -29,17 +65,17 @@ static int search_brace(t_ld **wk, char *str, int index) start = NULL; while (*str) { - if (*str == '{') - start = str; - else if (*str == '}' && start) + start = *str == '{' ? str : start; + if (*str == '}' && start) { s1 = ft_strsub(start, 1, str - start - 1); split = ft_strsplit(s1, ','); ft_strdel(&s1); s1 = ft_strsub((*wk)->content, 0, start - (char *)(*wk)->content); while (split[++index]) - ft_ld_pushfront(wk, ft_strjoinf(ft_strjoin(s1, split[index]), - str + 1, 1)); + ft_ld_pushfront(wk, generate_tab(ft_strjoinf(ft_strjoin(s1, + split[index]), str + 1, 1), calc_expand_esc(esc, + ft_strlen(s1), ft_strlen(split[index]), ft_strlen(str +1)), 0)); ft_strdel(&s1); ft_tabdel(&split); return (1); @@ -49,29 +85,27 @@ static int search_brace(t_ld **wk, char *str, int index) return (0); } -t_ld *expand_brace(const char *pat) +void expand_brace(t_glob *gl) { - t_ld *ret; t_ld *tmp; int do_it; - ret = NULL; - ft_ld_pushfront(&ret, ft_strdup("")); - ft_ld_pushfront(&ret, ft_strdup(pat)); + ft_ld_pushfront(&gl->m_pat, generate_tab("", "", 1)); + ft_ld_pushfront(&gl->m_pat, generate_tab(gl->pat, gl->esc, 1)); do_it = 1; while (do_it) { do_it = 0; - while (ret->next) + while (gl->m_pat->next) { - if ((tmp = ret) && search_brace(&ret, ret->content, -1)) + if ((tmp = gl->m_pat) && search_brace(&gl->m_pat, + ((char **)gl->m_pat->content)[0],((char **)gl->m_pat->content)[1], -1)) { - ft_ld_del(&tmp, &ft_strdel); + ft_ld_del(&tmp, &ft_tabdel); do_it = 1; } - ret = ret->next; + gl->m_pat = gl->m_pat->next; } - ret = ft_ld_front(ret); + gl->m_pat = ft_ld_front(gl->m_pat); } - return (ret); } diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index 320b15eb..de095b22 100644 --- a/42sh/src/glob/glob.c +++ b/42sh/src/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/26 17:18:20 by wescande ### ########.fr */ +/* Updated: 2017/01/27 19:05:38 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,13 +21,13 @@ ** to just expanse in local directory and not in path */ -static void path_research(const char *pat, char **path, t_ld **match) +static void path_research(t_glob *tglob, char **path) { int i; i = -1; while (path[++i]) - dir_research(pat, path[i], match); + dir_research(tglob, path[i]); } static char **treat_glob(t_ld **match) @@ -42,30 +42,54 @@ static char **treat_glob(t_ld **match) return (gl); } -char **glob(const char *pat, char **env) +static void add_simple_pat(t_glob *gl) { - t_ld *match; - char **path; - t_ld *mul_pat; + char *str; + int start; - match = NULL; - mul_pat = expand_brace(pat); - while (mul_pat->next) + str = ((char **)gl->m_pat->content)[0]; + start = 0; + while (*str) { - if (!(((char *)mul_pat->content)[0] == '/' - || (((char *)mul_pat->content)[0] == '.' - && ((char *)mul_pat->content)[1] == '/')) + if (!is_char_esc(((char **)gl->m_pat->content)[1], + ((char **)gl->m_pat->content)[0], str)) + { + if (*str == '[') + start = 1; + else if (*str == ']' && start == 1) + return ; + else if (*str == '*' || *str == '?') + return ; + } + ++str; + } + ft_ld_pushfront(&gl->match, ((char **)gl->m_pat->content)[0]); +} + +char **glob(const char *pat, const char *esc, char **env) +{ + t_glob tglob; + char **path; + + tglob = (t_glob){pat, esc, NULL, NULL}; + expand_brace(&tglob, tglob.pat); + while (tglob.m_pat->next) + { + add_simple_pat(&tglob); + if (!(((char **)tglob.m_pat->content)[0][0] == '/' + || (((char **)tglob.m_pat->content)[0][0] == '.' + && ((char **)tglob.m_pat->content)[0][1] == '/')) && env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':'))) { - path_research(mul_pat->content, path, &match); + path_research(&tglob, path); ft_tabdel(&path); } - if (((char *)mul_pat->content)[0] != '/') - dir_research(mul_pat->content, ".", &match); + if (((char **)tglob.m_pat->content)[0][0] != '/') + dir_research(&tglob, "."); else - dir_research(mul_pat->content + 1, "/", &match); - mul_pat = mul_pat->next; + dir_research(&tglob, "/"); + tglob.m_pat = tglob.m_pat->next; } - ft_ld_clear(&mul_pat, &ft_strdel); - return (treat_glob(&match)); + ft_ld_clear(&tglob.m_pat, &ft_strdel); + return (treat_glob(&tglob.match)); } diff --git a/42sh/src/glob/glob_print.c b/42sh/src/glob/glob_print.c index 38a8bdc0..ce0cd349 100644 --- a/42sh/src/glob/glob_print.c +++ b/42sh/src/glob/glob_print.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:09:40 by wescande #+# #+# */ -/* Updated: 2017/01/26 17:14:32 by wescande ### ########.fr */ +/* Updated: 2017/01/27 18:29:32 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,6 +26,20 @@ void ft_tabprint_fd(char **mytab, int fd) } } +void print_esc(t_token *token) +{ + char *str = token->data; + while (*str) + { + if (is_char_esc(token->esc, token->data, str)) + ft_dprintf(3, "\\%c", *str); + else + ft_dprintf(3, "%c", *str); + ++str; + } + ft_dprintf(3, "\n"); +} + void glob_print(t_list *lst, t_data *data) { t_token *token; @@ -40,7 +54,8 @@ void glob_print(t_list *lst, t_data *data) type = token->type; while (type >> (i++ + 2)) ; - glob_ret = glob(token->data, data->env); + glob_ret = glob(token->data, token->esc, data->env); + print_esc(token); DG("%02i '%s'", i, token->data); ft_tabprint_fd(glob_ret, 3); lst = lst->next; diff --git a/42sh/src/glob/is_char_esc.c b/42sh/src/glob/is_char_esc.c new file mode 100644 index 00000000..ba85450c --- /dev/null +++ b/42sh/src/glob/is_char_esc.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* is_char_esc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/27 18:19:55 by wescande #+# #+# */ +/* Updated: 2017/01/27 18:23:22 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +int is_char_esc(const char *esc, const char *ini_str, const char *str_pos) +{ + int pos; + + pos = str_pos - ini_str; + if ((esc[pos / 8] >> pos % 8) & 1) + return (1); + return (0); +} diff --git a/42sh/src/lexer/ft_tokenize.c b/42sh/src/lexer/ft_tokenize.c index 3955993f..de620b65 100644 --- a/42sh/src/lexer/ft_tokenize.c +++ b/42sh/src/lexer/ft_tokenize.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:37:11 by jhalford #+# #+# */ -/* Updated: 2017/01/11 16:11:02 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:43:46 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_backslash.c b/42sh/src/lexer/lexer_backslash.c index 9a6f2438..3a0aefff 100644 --- a/42sh/src/lexer/lexer_backslash.c +++ b/42sh/src/lexer/lexer_backslash.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 11:56:49 by jhalford #+# #+# */ -/* Updated: 2016/12/03 12:35:13 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:52:46 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,6 +18,6 @@ int lexer_backslash(t_list **alst, char *str) token = (*alst)->content; token->type = TK_WORD; - token_append(token, str[1]); + token_append(token, str[1], 1); return (ft_tokenize(alst, str + 2, WORD)); } diff --git a/42sh/src/lexer/lexer_default.c b/42sh/src/lexer/lexer_default.c index 04c87fca..08ccabcf 100644 --- a/42sh/src/lexer/lexer_default.c +++ b/42sh/src/lexer/lexer_default.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 18:36:21 by jhalford #+# #+# */ -/* Updated: 2017/01/11 16:10:53 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:53:10 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,7 +28,7 @@ int lexer_default(t_list **alst, char *str) else state = WORD; token = (*alst)->content; - token_append(token, *str); + token_append(token, *str, 0); token->type = TK_N_WORD; return (ft_tokenize(alst, str + 1, state)); } diff --git a/42sh/src/lexer/lexer_dquote.c b/42sh/src/lexer/lexer_dquote.c index d5c1b2e3..56a49ab2 100644 --- a/42sh/src/lexer/lexer_dquote.c +++ b/42sh/src/lexer/lexer_dquote.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 18:36:58 by jhalford #+# #+# */ -/* Updated: 2017/01/10 15:15:24 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:53:31 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,9 +23,9 @@ int lexer_dquote(t_list **alst, char *str) return (ft_tokenize(alst, str + 1, DEFAULT)); if (*str == '\\') { - token_append(token, *(str + 1)); + token_append(token, *(str + 1), 1); return (lexer_dquote(alst, str + 1)); } - token_append(token, *str); + token_append(token, *str, 1); return (lexer_dquote(alst, str)); } diff --git a/42sh/src/lexer/lexer_great.c b/42sh/src/lexer/lexer_great.c index d02a183b..82b9e4b4 100644 --- a/42sh/src/lexer/lexer_great.c +++ b/42sh/src/lexer/lexer_great.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:06:35 by jhalford #+# #+# */ -/* Updated: 2017/01/10 14:48:49 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:54:53 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,17 +17,17 @@ int lexer_great(t_list **alst, char *str) t_token *token; token = (*alst)->content; - token_append(token, str[0]); + token_append(token, str[0], 0); if (*(str + 1) == '&') { token->type = TK_GREATAND; - token_append(token, str[1]); + token_append(token, str[1], 0); return (lexer_greatand(alst, str + 2)); } else if (*(str + 1) == '>') { token->type = TK_DGREAT; - token_append(token, str[1]); + token_append(token, str[1], 0); return (ft_tokenize(&(*alst)->next, str + 2, DEFAULT)); } else diff --git a/42sh/src/lexer/lexer_greatand.c b/42sh/src/lexer/lexer_greatand.c index 7a32ef24..b803f0f1 100644 --- a/42sh/src/lexer/lexer_greatand.c +++ b/42sh/src/lexer/lexer_greatand.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 11:56:58 by jhalford #+# #+# */ -/* Updated: 2016/12/03 11:57:09 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:55:04 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,12 +20,12 @@ int lexer_greatand(t_list **alst, char *str) token->type = TK_GREATAND; if (ft_isdigit(*str)) { - token_append(token, *str); + token_append(token, *str, 0); return (lexer_greatand(alst, str + 1)); } else if (*str == '-') { - token_append(token, *str); + token_append(token, *str, 0); return (ft_tokenize(&(*alst)->next, str + 1, DEFAULT)); } return (ft_tokenize(alst, str, DEFAULT)); diff --git a/42sh/src/lexer/lexer_less.c b/42sh/src/lexer/lexer_less.c index bc3fa958..ea7c8398 100644 --- a/42sh/src/lexer/lexer_less.c +++ b/42sh/src/lexer/lexer_less.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:06:53 by jhalford #+# #+# */ -/* Updated: 2017/01/10 14:27:51 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:55:16 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,17 +17,17 @@ int lexer_less(t_list **alst, char *str) t_token *token; token = (*alst)->content; - token_append(token, str[0]); + token_append(token, str[0], 0); if (*(str + 1) == '&') { token->type = TK_LESSAND; - token_append(token, str[1]); + token_append(token, str[1], 0); return (lexer_lessand(alst, str + 2)); } else if (*(str + 1) == '<') { token->type = TK_DLESS; - token_append(token, str[1]); + token_append(token, str[1], 0); return (ft_tokenize(&(*alst)->next, str + 2, DEFAULT)); } else diff --git a/42sh/src/lexer/lexer_lessand.c b/42sh/src/lexer/lexer_lessand.c index 089c78bd..fc6eef56 100644 --- a/42sh/src/lexer/lexer_lessand.c +++ b/42sh/src/lexer/lexer_lessand.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 11:58:51 by jhalford #+# #+# */ -/* Updated: 2016/12/03 11:58:52 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:55:27 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,12 +20,12 @@ int lexer_lessand(t_list **alst, char *str) token->type = TK_LESSAND; if (ft_isdigit(*str)) { - token_append(token, *str); + token_append(token, *str, 0); return (lexer_lessand(alst, str + 1)); } else if (*str == '-') { - token_append(token, *str); + token_append(token, *str, 0); return (ft_tokenize(&(*alst)->next, str + 1, DEFAULT)); } return (ft_tokenize(alst, str, DEFAULT)); diff --git a/42sh/src/lexer/lexer_number.c b/42sh/src/lexer/lexer_number.c index b5cffe2d..6488442b 100644 --- a/42sh/src/lexer/lexer_number.c +++ b/42sh/src/lexer/lexer_number.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:06:45 by jhalford #+# #+# */ -/* Updated: 2017/01/10 14:29:46 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:52:58 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,7 +27,7 @@ int lexer_number(t_list **alst, char *str) return (ft_tokenize(alst, str, LESS)); else if (ft_isdigit(*str)) { - token_append(token, *str); + token_append(token, *str, 0); return (lexer_number(alst, str + 1)); } return (ft_tokenize(alst, str, DEFAULT)); diff --git a/42sh/src/lexer/lexer_quote.c b/42sh/src/lexer/lexer_quote.c index 401fd07f..4b99e6fe 100644 --- a/42sh/src/lexer/lexer_quote.c +++ b/42sh/src/lexer/lexer_quote.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:07:08 by jhalford #+# #+# */ -/* Updated: 2017/01/10 15:13:06 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:52:21 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,6 +21,6 @@ int lexer_quote(t_list **alst, char *str) str++; if (*str == '\'') return (ft_tokenize(alst, str + 1, WORD)); - token_append(token, *str); + token_append(token, *str, 1); return (lexer_quote(alst, str)); } diff --git a/42sh/src/lexer/lexer_var.c b/42sh/src/lexer/lexer_var.c index 61011338..ab6e0b79 100644 --- a/42sh/src/lexer/lexer_var.c +++ b/42sh/src/lexer/lexer_var.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 14:54:57 by jhalford #+# #+# */ -/* Updated: 2017/01/10 16:36:15 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:55:54 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,7 @@ int lexer_var(t_list **alst, char *str) token->type = TK_N_WORD; str++; if (!ft_strchr(token->data, '$')) - token_append(token, '$'); + token_append(token, '$', 0); if (!*str) { token_expand_var(token); @@ -32,6 +32,6 @@ int lexer_var(t_list **alst, char *str) token_expand_var(token); return (ft_tokenize(alst, str, state)); } - token_append(token, *str); + token_append(token, *str, 0); return (lexer_var(alst, str)); } diff --git a/42sh/src/lexer/lexer_word.c b/42sh/src/lexer/lexer_word.c index 53ed4746..f24a303f 100644 --- a/42sh/src/lexer/lexer_word.c +++ b/42sh/src/lexer/lexer_word.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:07:11 by jhalford #+# #+# */ -/* Updated: 2017/01/11 15:38:03 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:56:02 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,6 +25,6 @@ int lexer_word(t_list **alst, char *str) return (ft_tokenize(&(*alst)->next, str, GREAT)); else if (*str == '<') return (ft_tokenize(&(*alst)->next, str, LESS)); - token_append(token, *str); + token_append(token, *str, 0); return (ft_tokenize(alst, str + 1, WORD)); } diff --git a/42sh/src/lexer/token_append.c b/42sh/src/lexer/token_append.c index c08e5c5a..649f0901 100644 --- a/42sh/src/lexer/token_append.c +++ b/42sh/src/lexer/token_append.c @@ -6,19 +6,26 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/11 17:18:42 by jhalford #+# #+# */ -/* Updated: 2016/11/11 17:47:15 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 20:08:12 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int token_append(t_token *token, char c) +int token_append(t_token *token, char c, short int esc) { - if ((int)ft_strlen(token->data) >= token->size) + int len; + + len = ft_strlen(token->data); + if (len >= token->size) { - token->data = (char *)ft_realloc(token->data, token->size + 10); - token->size += 10; + token->size += 8; + token->data = (char *)ft_realloc(token->data, token->size + 1); + token->esc = (char *)ft_realloc(token->esc, token->size / 8); + token->esc[token->size / 8 - 1] = 0; } ft_strcat(token->data, (char[2]){c, '\0'}); + if (esc) + token->esc[len / 8] |= 1 << len % 8; return (0); } diff --git a/42sh/src/lexer/token_expand_var.c b/42sh/src/lexer/token_expand_var.c index b729611c..9743d062 100644 --- a/42sh/src/lexer/token_expand_var.c +++ b/42sh/src/lexer/token_expand_var.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 14:57:53 by jhalford #+# #+# */ -/* Updated: 2017/01/10 16:37:33 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:56:40 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,5 +24,5 @@ void token_expand_var(t_token *token) *dollar = 0; if (val) while (*val) - token_append(token, *val++); + token_append(token, *val++, 1); } diff --git a/42sh/src/lexer/token_free.c b/42sh/src/lexer/token_free.c index 50ef0d0f..fc42c83a 100644 --- a/42sh/src/lexer/token_free.c +++ b/42sh/src/lexer/token_free.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:07:30 by jhalford #+# #+# */ -/* Updated: 2017/01/12 13:18:46 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:35:37 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,6 +19,9 @@ void token_free(void *data, size_t size) (void)size; token = data; if (!(token->type & TK_NON_FREEABLE)) + { ft_strdel(&token->data); + ft_strdel(&token->esc); + } free(token); } diff --git a/42sh/src/lexer/token_init.c b/42sh/src/lexer/token_init.c index cf9fe1b7..8d113343 100644 --- a/42sh/src/lexer/token_init.c +++ b/42sh/src/lexer/token_init.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 15:30:25 by jhalford #+# #+# */ -/* Updated: 2017/01/11 15:45:10 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 15:35:04 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,7 +18,8 @@ t_token *token_init(void) token = (t_token *)malloc(sizeof(t_token)); token->type = 0; - token->size = 10; - token->data = ft_strnew(token->size); + token->size = 8; + token->data = ft_strnew(token->size + 1); + token->esc = ft_strnew(token->size / 8); return (token); } diff --git a/42sh/src/lexer/token_print.c b/42sh/src/lexer/token_print.c index 97876ddb..3edd1759 100644 --- a/42sh/src/lexer/token_print.c +++ b/42sh/src/lexer/token_print.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:39:01 by jhalford #+# #+# */ -/* Updated: 2017/01/12 14:48:33 by jhalford ### ########.fr */ +/* Updated: 2017/01/27 16:08:16 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,7 @@ void token_print(t_list *lst) t_token *token; int i; t_type type; + int index; while (lst) { @@ -26,6 +27,10 @@ void token_print(t_list *lst) while (type >> (i++ + 2)) ; DG("%02i '%s'", i, token->data); + index = -1; + while (++index < token->size / 8) + ft_dprintf(3, "|%b vs %x vs %c| ", token->esc[index], token->esc[index], token->esc[index]); + ft_dprintf(3, "\n"); lst = lst->next; } } From 4f5c65b9a25455a9e4e3ae9c22a55fc58cb90f9d Mon Sep 17 00:00:00 2001 From: wescande Date: Sat, 28 Jan 2017 01:19:03 +0100 Subject: [PATCH 39/67] =?UTF-8?q?finalisation=20du=20lexer=20avec=20les=20?= =?UTF-8?q?char=20echapp=C3=A9=20->=201=20unsigned=20char=20pour=208=20cha?= =?UTF-8?q?r=20du=20token=20(1=20bit=20pour=201=20char).=20Module=20glob?= =?UTF-8?q?=20en=20place=20en=20tenant=20compte=20des=20echapp=C3=A9.=20fo?= =?UTF-8?q?nction=20is=5Fchar=5Fesc=20en=20place=20pour=20une=20utilisatio?= =?UTF-8?q?n=20plus=20globale?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/Makefile | 4 +- 42sh/includes/glob.h | 30 ++++++--- 42sh/includes/lexer.h | 10 +-- 42sh/src/glob/dir_glob.c | 13 ++-- 42sh/src/glob/expand_brace.c | 113 +++++++++++++++++++++++----------- 42sh/src/glob/glob.c | 88 +++++++++++++++++--------- 42sh/src/glob/glob_print.c | 17 +---- 42sh/src/glob/is_char_esc.c | 7 ++- 42sh/src/glob/match_pattern.c | 72 +++++++++++----------- 42sh/src/lexer/token_append.c | 6 +- 42sh/src/lexer/token_free.c | 4 +- 42sh/src/lexer/token_init.c | 4 +- 42sh/src/lexer/token_print.c | 5 +- 13 files changed, 218 insertions(+), 155 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index 9bfbaf2d..fe295d2b 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -59,6 +59,7 @@ glob/dir_glob.c\ glob/expand_brace.c\ glob/glob.c\ glob/glob_print.c\ +glob/is_char_esc.c\ glob/lib_perso/ft_ld_back.c\ glob/lib_perso/ft_ld_clear.c\ glob/lib_perso/ft_ld_del.c\ @@ -188,7 +189,8 @@ parser/parse_word.c SRCS = $(addprefix $(SRC_DIR), $(SRC_BASE)) OBJS = $(addprefix $(OBJ_DIR), $(SRC_BASE:.c=.o)) -all : $(NAME) +all : + @make -j $(NAME) $(NAME): $(LIBFT_LIB) $(OBJ_DIR) $(OBJS) @$(CC) $(FLAGS) $(D_FLAGS) \ diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 943ab15a..dd568f8f 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/27 19:13:15 by wescande ### ########.fr */ +/* Updated: 2017/01/28 00:14:11 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,6 +15,9 @@ # include "minishell.h" +# define CH(x) ((char **)(x)->content) +# define UCH(x) ((unsigned char **)(x)->content) + typedef struct s_ld { void *content; @@ -24,21 +27,30 @@ typedef struct s_ld typedef struct s_glob { - const char *pat; - const char *esc; - t_ld *match; - t_ld *m_pat; + const char *pat; + const unsigned char *esc; + t_ld *match; + t_ld *m_pat; } t_glob; -char **glob(const char *str, const char *esc, char **env); +typedef struct s_expand +{ + t_ld **wk; + char *str; + unsigned char *esc; + char **split; + char *s1; +} t_expand; + +char **glob(const char *str, const unsigned char *esc, char **env); void expand_brace(t_glob *tglob); void glob_print(t_list *token, t_data *data); int match_pattern(t_glob *tglob, char *str, char *full_word); -void dir_research(t_glob *tglob, char *path); -void dir_research_recursive(t_glob *tglob, char *p); +void dir_research(t_glob *tglob, char *p, const char *pat); +void dir_research_recursive(t_glob *tglob, char *p, const char *pat); int is_directory(const char *path); -int is_char_esc(const char *esc, const char *ini_str, const char *str_pos); +int is_char_esc(const unsigned char *esc, const char *ini_str, const char *str_pos); /* ** LIST D: diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index e1dcf24f..9913c091 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:50 by jhalford #+# #+# */ -/* Updated: 2017/01/27 15:52:11 by wescande ### ########.fr */ +/* Updated: 2017/01/27 21:47:44 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -61,10 +61,10 @@ enum e_lexstate struct s_token { - t_type type; - char *data; - char *esc; - int size; + t_type type; + char *data; + unsigned char *esc; + int size; }; typedef struct s_data t_data; diff --git a/42sh/src/glob/dir_glob.c b/42sh/src/glob/dir_glob.c index 804c9465..92b90348 100644 --- a/42sh/src/glob/dir_glob.c +++ b/42sh/src/glob/dir_glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/27 18:32:54 by wescande ### ########.fr */ +/* Updated: 2017/01/27 23:48:18 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,7 +20,7 @@ int is_directory(const char *path) return (S_ISDIR(path_stat.st_mode)); } -void dir_research(t_glob *gl, char *p) +void dir_research(t_glob *gl, char *p, const char *pat) { DIR *dir; struct dirent *in; @@ -38,6 +38,7 @@ void dir_research(t_glob *gl, char *p) path_tmp = ft_strjoin(p, in->d_name); else path_tmp = ft_strjoinf(ft_strjoin(p, "/"), in->d_name, 1); + gl->pat = pat; if (match_pattern(gl, in->d_name, path_tmp)) ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + 2 * (path_tmp[0] == '.' && path_tmp[1] == '/'))); @@ -47,13 +48,13 @@ void dir_research(t_glob *gl, char *p) } } -void dir_research_recursive(t_glob *gl, char *p) +void dir_research_recursive(t_glob *gl, char *p, const char *pat) { DIR *dir; struct dirent *in; char *path_tmp; - if (ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') + if ((ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') && is_directory(p)) { if (!(dir = opendir(p))) return ; @@ -65,8 +66,8 @@ void dir_research_recursive(t_glob *gl, char *p) path_tmp = ft_strjoin(p, in->d_name); else path_tmp = ft_strjoinf(ft_strjoin(p, "/"), in->d_name, 1); - if (is_directory(path_tmp)) - dir_research_recursive(gl, path_tmp); + dir_research_recursive(gl, path_tmp, pat); + gl->pat = pat; if (match_pattern(gl, in->d_name, path_tmp)) ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + 2 * (path_tmp[0] == '.' && path_tmp[1] == '/'))); diff --git a/42sh/src/glob/expand_brace.c b/42sh/src/glob/expand_brace.c index 8db42a27..78211f16 100644 --- a/42sh/src/glob/expand_brace.c +++ b/42sh/src/glob/expand_brace.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/12 19:00:29 by wescande #+# #+# */ -/* Updated: 2017/01/27 20:12:12 by wescande ### ########.fr */ +/* Updated: 2017/01/28 01:13:26 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,16 +20,17 @@ ** -char *pat -> pattern string to be looking for expand */ -static char **generate_tab(const char *pat, const char *esc, int dup) +static char **gen_tab(const char *pat, + const unsigned char *esc, int dup) { char **my_tab; - if (!(my_tab = (char **)malloc(sizeof(char*) * 3))) + if (!(my_tab = (char **)malloc(sizeof(char *) * 3))) return (NULL); if (dup) { my_tab[0] = ft_strdup(pat); - my_tab[1] = ft_strdup(esc); + my_tab[1] = ft_strdup((const char *)esc); } else { @@ -40,66 +41,104 @@ static char **generate_tab(const char *pat, const char *esc, int dup) return (my_tab); } -static char *calc_expand_esc(const char *esc, - int nb_start, int nb_middle, int nb_end) +static unsigned char *calc_expand_esc(const unsigned char *esc, + int nb_start, int nb_middle, int *nb_end) { - char *new_esc; - int index; + unsigned char *new_esc; + int index; + int pos; - new_esc = ft_memalloc(sizeof(char) * (nb_start + nb_middle + nb_end) / 8); + if (!(new_esc = ft_memalloc(sizeof(char) * + ((nb_start + nb_middle + nb_end[1]) / 8) + 1))) + return (NULL); index = -1; while (++index < nb_start) - new_esc[index / 8] |= (esc[index / 8] >> index % 8) & 1 << index % 8; - //copy the nb_start first bit of esc. - //append nb_middle bit at status 0 - //append nb_end last bit from end of esc. + new_esc[index / 8] |= + ((esc[index / 8] >> (7 - index % 8)) & 1) << (7 - index % 8); + pos = -1; + while (++pos < nb_middle) + { + new_esc[index / 8] |= 1 << (7 - index % 8); + ++index; + } + pos = nb_end[0]; + while (++pos <= nb_end[0] + nb_end[1]) + { + new_esc[index / 8] |= + ((esc[pos / 8] >> (7 - pos % 8)) & 1) << (7 - index % 8); + ++index; + } return (new_esc); } -static int search_brace(t_ld **wk, char *str, char *esc, int index) +static void iter_on_each(t_expand *me) +{ + int i; + char **my_new; + char *first; + unsigned char *second; + t_ld *wk_tmp; + + i = -1; + wk_tmp = *me->wk; + while (me->split[++i]) + { + first = ft_strjoinf(ft_strjoin(me->s1, me->split[i]), me->str + 1, 1); + second = calc_expand_esc(me->esc, + ft_strlen(me->s1), + ft_strlen(me->split[i]), + (int[2]){me->str - CH(*me->wk)[0], ft_strlen(me->str + 1)}); + my_new = gen_tab(first, second, 0); + ft_ld_pushfront(&wk_tmp, my_new); + } + me->wk = &wk_tmp; +} + +static int search_brace(t_expand *me) { char *start; - char *s1; - char **split; start = NULL; - while (*str) + while (*me->str) { - start = *str == '{' ? str : start; - if (*str == '}' && start) + start = *me->str == '{' && !is_char_esc(me->esc, + CH(*me->wk)[0], me->str) ? me->str : start; + if (*me->str == '}' && start + && !is_char_esc(me->esc, CH(*me->wk)[0], me->str)) { - s1 = ft_strsub(start, 1, str - start - 1); - split = ft_strsplit(s1, ','); - ft_strdel(&s1); - s1 = ft_strsub((*wk)->content, 0, start - (char *)(*wk)->content); - while (split[++index]) - ft_ld_pushfront(wk, generate_tab(ft_strjoinf(ft_strjoin(s1, - split[index]), str + 1, 1), calc_expand_esc(esc, - ft_strlen(s1), ft_strlen(split[index]), ft_strlen(str +1)), 0)); - ft_strdel(&s1); - ft_tabdel(&split); + me->s1 = ft_strsub(start, 1, me->str - start - 1); + me->split = ft_strsplit(me->s1, ','); + ft_strdel(&me->s1); + me->s1 = ft_strsub(CH(*me->wk)[0], 0, start - CH(*me->wk)[0]); + iter_on_each(me); + ft_strdel(&me->s1); + ft_tabdel(&me->split); return (1); } - ++str; + ++me->str; } return (0); } -void expand_brace(t_glob *gl) +void expand_brace(t_glob *gl) { - t_ld *tmp; - int do_it; + t_ld *tmp; + int do_it; + t_expand me; - ft_ld_pushfront(&gl->m_pat, generate_tab("", "", 1)); - ft_ld_pushfront(&gl->m_pat, generate_tab(gl->pat, gl->esc, 1)); + ft_ld_pushfront(&gl->m_pat, gen_tab("", (const unsigned char *)"", 1)); + ft_ld_pushfront(&gl->m_pat, gen_tab(gl->pat, gl->esc, 1)); + me = (t_expand){NULL, NULL, NULL, NULL, NULL}; do_it = 1; while (do_it) { do_it = 0; while (gl->m_pat->next) { - if ((tmp = gl->m_pat) && search_brace(&gl->m_pat, - ((char **)gl->m_pat->content)[0],((char **)gl->m_pat->content)[1], -1)) + me.wk = &gl->m_pat; + me.esc = UCH(gl->m_pat)[1]; + me.str = CH(gl->m_pat)[0]; + if ((tmp = gl->m_pat) && search_brace(&me)) { ft_ld_del(&tmp, &ft_tabdel); do_it = 1; diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index de095b22..d09d531d 100644 --- a/42sh/src/glob/glob.c +++ b/42sh/src/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/27 19:05:38 by wescande ### ########.fr */ +/* Updated: 2017/01/28 01:17:04 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,13 +21,13 @@ ** to just expanse in local directory and not in path */ -static void path_research(t_glob *tglob, char **path) +static void path_research(t_glob *gl, char **path) { int i; i = -1; while (path[++i]) - dir_research(tglob, path[i]); + dir_research(gl, path[i], gl->pat); } static char **treat_glob(t_ld **match) @@ -47,49 +47,77 @@ static void add_simple_pat(t_glob *gl) char *str; int start; - str = ((char **)gl->m_pat->content)[0]; + str = (char *)gl->pat; start = 0; while (*str) { - if (!is_char_esc(((char **)gl->m_pat->content)[1], - ((char **)gl->m_pat->content)[0], str)) + if (!is_char_esc(gl->esc, gl->pat, str)) { - if (*str == '[') - start = 1; - else if (*str == ']' && start == 1) - return ; - else if (*str == '*' || *str == '?') - return ; + if (*str == '[') + start = 1; + else if (*str == ']' && start == 1) + return ; + else if (*str == '*' || *str == '?') + return ; } ++str; } - ft_ld_pushfront(&gl->match, ((char **)gl->m_pat->content)[0]); + ft_ld_pushfront(&gl->match, ft_strdup(gl->pat)); } -char **glob(const char *pat, const char *esc, char **env) +static void printme_me(const char *pat, const unsigned char *esc) { - t_glob tglob; + char *str; + int index; + int len; + + str = (char *)pat; + while (*str) + { + ft_dprintf(3, is_char_esc(esc, pat, str) ? "\\%c" : "%c", *str); + ++str; + } + ft_dprintf(3, "\n"); + len = ft_strlen(pat); + index = -1; + while (++index < len) + ft_dprintf(3, ((esc[index / 8] >> (7 - index % 8)) & 1) ? " 1" : "0"); + ft_dprintf(3, "\n"); + index = 0; + while (index < len) + { + ft_dprintf(3, "%08b", esc[index / 8]); + index += 8; + } + ft_dprintf(3, "\n"); +} + +char **glob(const char *pat, const unsigned char *esc, char **env) +{ + t_glob gl; char **path; - tglob = (t_glob){pat, esc, NULL, NULL}; - expand_brace(&tglob, tglob.pat); - while (tglob.m_pat->next) + gl = (t_glob){pat, esc, NULL, NULL}; + expand_brace(&gl); + while (gl.m_pat->next) { - add_simple_pat(&tglob); - if (!(((char **)tglob.m_pat->content)[0][0] == '/' - || (((char **)tglob.m_pat->content)[0][0] == '.' - && ((char **)tglob.m_pat->content)[0][1] == '/')) - && env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':'))) + gl.pat = ((char **)gl.m_pat->content)[0]; + gl.esc = ((unsigned char **)gl.m_pat->content)[1]; + printme_me(gl.pat, gl.esc); + add_simple_pat(&gl); + if (!(gl.pat[0] == '/' || (gl.pat[0] == '.' && gl.pat[1] == '/')) + && env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':'))) { - path_research(&tglob, path); + path_research(&gl, path); ft_tabdel(&path); } - if (((char **)tglob.m_pat->content)[0][0] != '/') - dir_research(&tglob, "."); + gl.pat = ((char **)gl.m_pat->content)[0]; + if (gl.pat[0] != '/') + dir_research(&gl, ".", gl.pat); else - dir_research(&tglob, "/"); - tglob.m_pat = tglob.m_pat->next; + dir_research(&gl, "/", gl.pat + 1); + gl.m_pat = gl.m_pat->next; } - ft_ld_clear(&tglob.m_pat, &ft_strdel); - return (treat_glob(&tglob.match)); + ft_ld_clear(&gl.m_pat, &ft_tabdel); + return (treat_glob(&gl.match)); } diff --git a/42sh/src/glob/glob_print.c b/42sh/src/glob/glob_print.c index ce0cd349..46fcdd8d 100644 --- a/42sh/src/glob/glob_print.c +++ b/42sh/src/glob/glob_print.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:09:40 by wescande #+# #+# */ -/* Updated: 2017/01/27 18:29:32 by wescande ### ########.fr */ +/* Updated: 2017/01/27 21:57:24 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,20 +26,6 @@ void ft_tabprint_fd(char **mytab, int fd) } } -void print_esc(t_token *token) -{ - char *str = token->data; - while (*str) - { - if (is_char_esc(token->esc, token->data, str)) - ft_dprintf(3, "\\%c", *str); - else - ft_dprintf(3, "%c", *str); - ++str; - } - ft_dprintf(3, "\n"); -} - void glob_print(t_list *lst, t_data *data) { t_token *token; @@ -55,7 +41,6 @@ void glob_print(t_list *lst, t_data *data) while (type >> (i++ + 2)) ; glob_ret = glob(token->data, token->esc, data->env); - print_esc(token); DG("%02i '%s'", i, token->data); ft_tabprint_fd(glob_ret, 3); lst = lst->next; diff --git a/42sh/src/glob/is_char_esc.c b/42sh/src/glob/is_char_esc.c index ba85450c..5c06a546 100644 --- a/42sh/src/glob/is_char_esc.c +++ b/42sh/src/glob/is_char_esc.c @@ -6,18 +6,19 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/27 18:19:55 by wescande #+# #+# */ -/* Updated: 2017/01/27 18:23:22 by wescande ### ########.fr */ +/* Updated: 2017/01/27 23:45:51 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "glob.h" -int is_char_esc(const char *esc, const char *ini_str, const char *str_pos) +int is_char_esc(const unsigned char *esc, + const char *ini_str, const char *str_pos) { int pos; pos = str_pos - ini_str; - if ((esc[pos / 8] >> pos % 8) & 1) + if ((esc[pos / 8] >> (7 - pos % 8)) & 1) return (1); return (0); } diff --git a/42sh/src/glob/match_pattern.c b/42sh/src/glob/match_pattern.c index 5e95b55b..8707c3c4 100644 --- a/42sh/src/glob/match_pattern.c +++ b/42sh/src/glob/match_pattern.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/24 17:30:23 by wescande #+# #+# */ -/* Updated: 2017/01/24 20:58:47 by wescande ### ########.fr */ +/* Updated: 2017/01/27 23:45:39 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -31,35 +31,34 @@ static int match_bracket_char(char **cmp, const char *pat, char c, int neg) *cmp += 2; } else if (!neg && **cmp == c) - { return (1); - } else if (neg && **cmp == c) - { return (0); - } return (-1); } -static int match_bracket(const char **pat, char c) +static int match_bracket(t_glob *gl, char c) { char *cmp; int neg; int ret; - cmp = (char *)*pat + 1; - while (**pat != ']') + cmp = (char *)gl->pat + 1; + while (*gl->pat != ']' + || is_char_esc(gl->esc, ((char **)gl->m_pat->content)[0], gl->pat)) { - if (!**pat) + if (!*gl->pat) return (0); - ++*pat; + ++gl->pat; } neg = 0; - if ((*cmp == '^' || *cmp == '!') && ++neg) + if ((*cmp == '^' || *cmp == '!') + && !is_char_esc(gl->esc, ((char **)gl->m_pat->content)[0], cmp) + && ++neg) ++cmp; - while (cmp < *pat) + while (cmp < gl->pat) { - ret = match_bracket_char(&cmp, *pat, c, neg); + ret = match_bracket_char(&cmp, gl->pat, c, neg); if (ret != -1) return (ret); ++cmp; @@ -67,19 +66,19 @@ static int match_bracket(const char **pat, char c) return (neg); } -static int match_star(const char *pat, char *str, - char *full_word, t_ld **match) +static int match_star(t_glob *gl, char *str, char *full_word) { char *fix; - if (pat[1] == '*') - dir_research_recursive(pat, full_word, match); - if (!pat[1]) + if (gl->pat[1] == '*' && + !is_char_esc(gl->esc, ((char **)gl->m_pat->content)[0], gl->pat + 1)) + dir_research_recursive(gl, full_word, gl->pat + 1); + if (!*++gl->pat) return (1); fix = str + ft_strlen(str); while (fix > str) { - if (match_pattern(pat + 1, fix, full_word, match)) + if (match_pattern(gl, fix, full_word)) return (1); --fix; } @@ -94,32 +93,31 @@ const char *manage_pat(const char *pat, char *str) return (pat); } -int match_pattern(const char *pat, char *str, - char *full_word, t_ld **match) +int match_pattern(t_glob *gl, char *str, char *full_word) { - pat = manage_pat(pat, str); - while (*pat) + gl->pat = manage_pat(gl->pat, str); + while (*gl->pat) { - if (*pat == '?') + if (is_char_esc(gl->esc, ((char **)gl->m_pat->content)[0], gl->pat)) + { + if (*str != *gl->pat) + return (0); + } + else if (*gl->pat == '?') str++; - else if (*pat == '[') + else if (*gl->pat == '[') { - if (!match_bracket(&pat, *str)) + if (!match_bracket(gl, *str)) return (0); } - else if (*pat == '*') - return (match_star(pat, str, full_word, match)); - else if (*pat == '\\') - { - if (!*++pat || *str != *pat) - return (0); - } - else if (*pat == '/' && !*str && is_directory(full_word)) - dir_research((pat + 1), full_word, match); - else if (*pat != *str) + else if (*gl->pat == '*') + return (match_star(gl, str, full_word)); + else if (*gl->pat == '/' && !*str && is_directory(full_word)) + dir_research(gl, full_word, gl->pat + 1); + else if (*gl->pat != *str) return (0); ++str; - ++pat; + ++gl->pat; } return (*str ? 0 : 1); } diff --git a/42sh/src/lexer/token_append.c b/42sh/src/lexer/token_append.c index 649f0901..fc9845fd 100644 --- a/42sh/src/lexer/token_append.c +++ b/42sh/src/lexer/token_append.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/11 17:18:42 by jhalford #+# #+# */ -/* Updated: 2017/01/27 20:08:12 by wescande ### ########.fr */ +/* Updated: 2017/01/27 21:54:32 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,11 +21,11 @@ int token_append(t_token *token, char c, short int esc) { token->size += 8; token->data = (char *)ft_realloc(token->data, token->size + 1); - token->esc = (char *)ft_realloc(token->esc, token->size / 8); + token->esc = (unsigned char *)ft_realloc((char *)token->esc, token->size / 8 + 1); token->esc[token->size / 8 - 1] = 0; } ft_strcat(token->data, (char[2]){c, '\0'}); if (esc) - token->esc[len / 8] |= 1 << len % 8; + token->esc[len / 8] |= 1 << (7 - len % 8); return (0); } diff --git a/42sh/src/lexer/token_free.c b/42sh/src/lexer/token_free.c index fc42c83a..466d4407 100644 --- a/42sh/src/lexer/token_free.c +++ b/42sh/src/lexer/token_free.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:07:30 by jhalford #+# #+# */ -/* Updated: 2017/01/27 15:35:37 by wescande ### ########.fr */ +/* Updated: 2017/01/27 21:54:05 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,7 @@ void token_free(void *data, size_t size) if (!(token->type & TK_NON_FREEABLE)) { ft_strdel(&token->data); - ft_strdel(&token->esc); + ft_memdel((void **)&token->esc); } free(token); } diff --git a/42sh/src/lexer/token_init.c b/42sh/src/lexer/token_init.c index 8d113343..009f27dd 100644 --- a/42sh/src/lexer/token_init.c +++ b/42sh/src/lexer/token_init.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 15:30:25 by jhalford #+# #+# */ -/* Updated: 2017/01/27 15:35:04 by wescande ### ########.fr */ +/* Updated: 2017/01/27 21:54:53 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,6 +20,6 @@ t_token *token_init(void) token->type = 0; token->size = 8; token->data = ft_strnew(token->size + 1); - token->esc = ft_strnew(token->size / 8); + token->esc = (unsigned char *)ft_strnew(token->size / 8 + 1); return (token); } diff --git a/42sh/src/lexer/token_print.c b/42sh/src/lexer/token_print.c index 3edd1759..343fe5bc 100644 --- a/42sh/src/lexer/token_print.c +++ b/42sh/src/lexer/token_print.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:39:01 by jhalford #+# #+# */ -/* Updated: 2017/01/27 16:08:16 by wescande ### ########.fr */ +/* Updated: 2017/01/27 21:57:05 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,9 +28,6 @@ void token_print(t_list *lst) ; DG("%02i '%s'", i, token->data); index = -1; - while (++index < token->size / 8) - ft_dprintf(3, "|%b vs %x vs %c| ", token->esc[index], token->esc[index], token->esc[index]); - ft_dprintf(3, "\n"); lst = lst->next; } } From 076d3c3d5be8cb514a034781bcef2db424ad2f6e Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sat, 28 Jan 2017 14:44:00 +0100 Subject: [PATCH 40/67] remise a la norme avant de merge --- 42sh/libft | 2 +- 42sh/src/builtin/bt_read_term.c | 1 - 42sh/src/builtin/builtin_read.c | 10 +++------- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/42sh/libft b/42sh/libft index 4c497745..ab92f0e5 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit 4c4977452745481166749b813e8db51dcf0caf44 +Subproject commit ab92f0e5d817c9d726a8ccf2f11c084ba446bbdf diff --git a/42sh/src/builtin/bt_read_term.c b/42sh/src/builtin/bt_read_term.c index ae5d40a9..853929c4 100644 --- a/42sh/src/builtin/bt_read_term.c +++ b/42sh/src/builtin/bt_read_term.c @@ -40,7 +40,6 @@ int bt_read_terminit(t_read *data) } if (tcsetattr(0, TCSANOW, &term) < 0) return (-1); - /* DG("c_cc[VTIME]=%i", term.c_cc[VTIME]); */ return (0); } diff --git a/42sh/src/builtin/builtin_read.c b/42sh/src/builtin/builtin_read.c index 176acb3a..586f3627 100644 --- a/42sh/src/builtin/builtin_read.c +++ b/42sh/src/builtin/builtin_read.c @@ -32,7 +32,6 @@ int bt_read_loop(t_read *data) { int i; int esc; - int ret; char buf[2]; i = 0; @@ -41,24 +40,21 @@ int bt_read_loop(t_read *data) ft_printf(data->prompt); while (42) { - if ((ret = read(data->fd, buf, 1)) <= 0) + if (read(data->fd, buf, 1) <= 0) return (1); - /* DG("got *buf=%c, ret=%i", *buf, ret); */ - buf[ret] = 0; + buf[1] = 0; if (!esc && *buf == data->delim) break ; esc = esc ? 0 : !(data->opts & READ_OPT_LR) && (*buf == '\\'); ft_strappend(&data->input, buf); if (!(data->opts & READ_OPT_LS)) ft_putchar(*buf); - i++; if (*buf == '\n' && !(data->opts & READ_OPT_LR)) ft_putstr("> "); - if ((data->opts & READ_OPT_LN) && i >= data->nchars) + if ((data->opts & READ_OPT_LN) && ++i >= data->nchars) break ; } ft_putchar('\n'); - DG("input=%s", data->input); return (0); } From 90bd6820c33f3749d4545511c6f6748f06910d72 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sat, 28 Jan 2017 17:56:16 +0100 Subject: [PATCH 41/67] some function shrinking for norme --- 42sh/includes/job_control.h | 1 + 42sh/src/job-control/builtin_bg.c | 10 +-- 42sh/src/job-control/builtin_fg.c | 9 +-- 42sh/src/job-control/job_format_head.c | 2 +- 42sh/src/job-control/process_format.c | 87 ++++++++++++++++---------- 5 files changed, 59 insertions(+), 50 deletions(-) diff --git a/42sh/includes/job_control.h b/42sh/includes/job_control.h index bea10d93..633596b9 100644 --- a/42sh/includes/job_control.h +++ b/42sh/includes/job_control.h @@ -63,6 +63,7 @@ int job_is_stopped(int id); int job_is_completed(int id); void job_new(char **av, pid_t pid); +void job_run(t_job *job, int foreground); int job_wait(int id); void job_remove(int id); void job_free(void *content, size_t content_size); diff --git a/42sh/src/job-control/builtin_bg.c b/42sh/src/job-control/builtin_bg.c index 1f34dcdb..9a9928fc 100644 --- a/42sh/src/job-control/builtin_bg.c +++ b/42sh/src/job-control/builtin_bg.c @@ -15,14 +15,12 @@ int builtin_bg(const char *path, char *const av[], char *const envp[]) { t_jobc *jobc; - t_job *job; t_list *jlist; int rank[2]; int id; (void)path; (void)envp; - (void)av; if (!SHELL_HAS_JOBC(data_singleton()->opts)) { ft_dprintf(2, "{red}bg: %s{eoc}\n", SHELL_MSG_NOJOBC); @@ -31,13 +29,9 @@ int builtin_bg(const char *path, char *const av[], char *const envp[]) jobc = &data_singleton()->jobc; job_getrank(&rank); id = av[1] ? ft_atoi(av[1]) : rank[0]; - jlist = ft_lst_find(jobc->first_job, &id, job_cmp_id); - if (jlist) + if ((jlist = ft_lst_find(jobc->first_job, &id, job_cmp_id))) { - job = jlist->content; - mark_job_as_running(job); - job_format(job, rank, JOBS_OPTS_L); - put_job_in_background(job, 1); + job_run(jlist->content, 0); return (0); } else if (av[1]) diff --git a/42sh/src/job-control/builtin_fg.c b/42sh/src/job-control/builtin_fg.c index 5e6c53b4..7c2dfe48 100644 --- a/42sh/src/job-control/builtin_fg.c +++ b/42sh/src/job-control/builtin_fg.c @@ -15,14 +15,12 @@ int builtin_fg(const char *path, char *const av[], char *const envp[]) { t_jobc *jobc; - t_job *job; t_list *jlist; int rank[2]; int id; (void)path; (void)envp; - (void)av; if (!SHELL_HAS_JOBC(data_singleton()->opts)) { ft_dprintf(2, "{red}fg: %s{eoc}\n", SHELL_MSG_NOJOBC); @@ -31,12 +29,9 @@ int builtin_fg(const char *path, char *const av[], char *const envp[]) jobc = &data_singleton()->jobc; job_getrank(&rank); id = av[1] ? ft_atoi(av[1]) : rank[0]; - jlist = ft_lst_find(jobc->first_job, &id, job_cmp_id); - if (jlist) + if ((jlist = ft_lst_find(jobc->first_job, &id, job_cmp_id))) { - job = jlist->content; - mark_job_as_running(job); - put_job_in_foreground(job, 1); + job_run(jlist->content, 1); return (0); } else if (av[1]) diff --git a/42sh/src/job-control/job_format_head.c b/42sh/src/job-control/job_format_head.c index 0dfcaaf9..f0b0bf22 100644 --- a/42sh/src/job-control/job_format_head.c +++ b/42sh/src/job-control/job_format_head.c @@ -14,7 +14,7 @@ void job_format_head(t_job *j, int rank[2]) { - char crank; + char crank; if (j->id == rank[0]) crank = '+'; diff --git a/42sh/src/job-control/process_format.c b/42sh/src/job-control/process_format.c index 7391dba4..00591d4c 100644 --- a/42sh/src/job-control/process_format.c +++ b/42sh/src/job-control/process_format.c @@ -12,16 +12,10 @@ #include "job_control.h" -void process_format(t_list **plist, int firstp, int opts) +static void process_format_state(t_process *p) { - t_process *p; int state; - p = (*plist)->content; - if (!firstp) - ft_printf(" "); - if (opts & JOBS_OPTS_L) - ft_printf("%i ", p->pid); state = p->attributes & PROCESS_STATE_MASK; if (state == PROCESS_RUNNING) ft_putstr("running "); @@ -41,8 +35,41 @@ void process_format(t_list **plist, int firstp, int opts) ft_printf("exit %i ", p->status); } ft_putchar('\t'); - if (opts & JOBS_OPTS_L) +} + +static void process_format_com_long(t_list **plist) +{ + t_process *p; + + p = (*plist)->content; + if (p->attributes & PROCESS_SUBSHELL) { + ft_putstr("( "); + ft_putstr(p->av[2]); + ft_putstr(" )"); + } + else + ft_sstrprint(p->av, ' '); + if ((*plist)->next) + ft_putstr(" |"); + (*plist) = (*plist)->next; +} + +static void process_format_com_short(t_list **plist, t_flag state) +{ + t_process *p; + + while (*plist) + { + p = (*plist)->content; + if (!(p->attributes & state) || + (state == PROCESS_COMPLETED && p->status != 0)) + break; + if (p->attributes & PROCESS_CONTINUED) + { + p->attributes &= ~PROCESS_STATE_MASK; + p->attributes &= ~PROCESS_RUNNING; + } if (p->attributes & PROCESS_SUBSHELL) { ft_putstr("( "); @@ -52,34 +79,26 @@ void process_format(t_list **plist, int firstp, int opts) else ft_sstrprint(p->av, ' '); if ((*plist)->next) - ft_putstr(" |"); + ft_putstr(" | "); (*plist) = (*plist)->next; } +} + +void process_format(t_list **plist, int firstp, int opts) +{ + t_process *p; + t_flag state; + + p = (*plist)->content; + state = p->attributes & PROCESS_STATE_MASK; + if (!firstp) + ft_printf(" "); + if (opts & JOBS_OPTS_L) + ft_printf("%i ", p->pid); + process_format_state(p); + if (opts & JOBS_OPTS_L) + process_format_com_long(plist); else - { - while (*plist) - { - p = (*plist)->content; - if (!(p->attributes & state) || - (state == PROCESS_COMPLETED && p->status != 0)) - break; - if (p->attributes & PROCESS_CONTINUED) - { - p->attributes &= ~PROCESS_STATE_MASK; - p->attributes &= ~PROCESS_RUNNING; - } - if (p->attributes & PROCESS_SUBSHELL) - { - ft_putstr("( "); - ft_putstr(p->av[2]); - ft_putstr(" )"); - } - else - ft_sstrprint(p->av, ' '); - if ((*plist)->next) - ft_putstr(" | "); - (*plist) = (*plist)->next; - } - } + process_format_com_short(plist, state); ft_putchar('\n'); } From 7dd0f2d11e25ecbc34202466e841e21b87aacc84 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sat, 28 Jan 2017 19:29:48 +0100 Subject: [PATCH 42/67] forgot to add new file job_run.c --- 42sh/src/job-control/job_run.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 42sh/src/job-control/job_run.c diff --git a/42sh/src/job-control/job_run.c b/42sh/src/job-control/job_run.c new file mode 100644 index 00000000..14f8502b --- /dev/null +++ b/42sh/src/job-control/job_run.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* job_run.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/09 16:54:18 by jhalford #+# #+# */ +/* Updated: 2017/01/11 14:37:23 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "job_control.h" + +void job_run(t_job *job, int foreground) +{ + int rank[2]; + + job_getrank(&rank); + mark_job_as_running(job); + job_format(job, rank, JOBS_OPTS_L); + foreground ? put_job_in_foreground(job, 1) : put_job_in_background(job, 1); +} From 4b6a8e6563400c5af6b4eb6f50a18ce93a225a0c Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sat, 28 Jan 2017 19:32:05 +0100 Subject: [PATCH 43/67] removed some DG macros --- 42sh/src/job-control/job_addprocess.c | 2 -- 42sh/src/job-control/process_mark_status.c | 3 --- 2 files changed, 5 deletions(-) diff --git a/42sh/src/job-control/job_addprocess.c b/42sh/src/job-control/job_addprocess.c index 7bd9f659..22a1c28a 100644 --- a/42sh/src/job-control/job_addprocess.c +++ b/42sh/src/job-control/job_addprocess.c @@ -25,13 +25,11 @@ int job_addprocess(t_process *p) job->id = jobc->current_id; job->pgid = p->pid; ft_lstadd(&jobc->first_job, ft_lstnew(job, sizeof(*job))); - /* DG("added new job [%i]", job->id); */ } job = jobc->first_job->content; if (p->pid > 0) { ft_lsteadd(&job->first_process, ft_lstnew(p, sizeof(*p))); - /* DG("added pid=%i to [%i]", p->pid, job->id); */ } if (JOB_IS_BG(job->attributes) && IS_PIPEEND(p->attributes)) job_notify_new(job); diff --git a/42sh/src/job-control/process_mark_status.c b/42sh/src/job-control/process_mark_status.c index 566e95e1..c7bfe4e8 100644 --- a/42sh/src/job-control/process_mark_status.c +++ b/42sh/src/job-control/process_mark_status.c @@ -23,13 +23,11 @@ int process_mark_status(pid_t pid, int status) p->status = status; if (WIFSTOPPED(status)) { - DG("marking: pid=%i, status=%i (stopped sig %i)", pid, status, WTERMSIG(status)); p->attributes &= ~PROCESS_STATE_MASK; p->attributes |= PROCESS_SUSPENDED; } else { - DG("marking: pid=%i, status=%i (completed sig %i)", pid, status, WTERMSIG(status)); p->attributes &= ~PROCESS_STATE_MASK; p->attributes |= PROCESS_COMPLETED; if (WIFSIGNALED(status)) @@ -39,7 +37,6 @@ int process_mark_status(pid_t pid, int status) return(0); } ft_dprintf(2, "No child process %d.\n", pid); - return(-1); } return(-1); } From 7cfa1a4837e7ed9bed7327186538192cfc101632 Mon Sep 17 00:00:00 2001 From: wescande Date: Mon, 30 Jan 2017 12:23:13 +0100 Subject: [PATCH 44/67] finalisation norme --- 42sh/includes/glob.h | 14 ++++++++++---- 42sh/src/glob/dir_glob.c | 6 +++--- 42sh/src/glob/glob.c | 35 ++++------------------------------- 3 files changed, 17 insertions(+), 38 deletions(-) diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index dd568f8f..4ba55910 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/28 00:14:11 by wescande ### ########.fr */ +/* Updated: 2017/01/30 12:12:23 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -40,7 +40,7 @@ typedef struct s_expand unsigned char *esc; char **split; char *s1; -} t_expand; +} t_expand; char **glob(const char *str, const unsigned char *esc, char **env); void expand_brace(t_glob *tglob); @@ -48,9 +48,15 @@ void glob_print(t_list *token, t_data *data); int match_pattern(t_glob *tglob, char *str, char *full_word); void dir_research(t_glob *tglob, char *p, const char *pat); void dir_research_recursive(t_glob *tglob, char *p, const char *pat); +/* +** return TRUE if path file is a directory. +*/ int is_directory(const char *path); - -int is_char_esc(const unsigned char *esc, const char *ini_str, const char *str_pos); +/* +** return TRUE if char at str_pos in ini_str is escape. +*/ +int is_char_esc(const unsigned char *esc, + const char *ini_str, const char *str_pos); /* ** LIST D: diff --git a/42sh/src/glob/dir_glob.c b/42sh/src/glob/dir_glob.c index 92b90348..815e64d6 100644 --- a/42sh/src/glob/dir_glob.c +++ b/42sh/src/glob/dir_glob.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* glob.c :+: :+: :+: */ +/* dir_glob.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/27 23:48:18 by wescande ### ########.fr */ +/* Created: 2017/01/30 12:07:16 by wescande #+# #+# */ +/* Updated: 2017/01/30 12:07:19 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index d09d531d..e086c68e 100644 --- a/42sh/src/glob/glob.c +++ b/42sh/src/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/28 01:17:04 by wescande ### ########.fr */ +/* Updated: 2017/01/30 12:08:49 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,11 +14,12 @@ /* ** glob return expansion of a string. -** pattern searched are ~, *, ?, [a-z], [!a-z], [^a-z], {ab, ac}, ** +** pattern searched are *, ?, [a-z], [!a-z], [^a-z], {ab, ac}, ** ** input parameters are : ** -char *pat -> pattern string to be looking for match +** -char *esc -> escape binary sequence of *pat ** -char **env -> env var. could be NULL -** to just expanse in local directory and not in path +** to just expanse in local directory and not in path dir */ static void path_research(t_glob *gl, char **path) @@ -65,33 +66,6 @@ static void add_simple_pat(t_glob *gl) ft_ld_pushfront(&gl->match, ft_strdup(gl->pat)); } -static void printme_me(const char *pat, const unsigned char *esc) -{ - char *str; - int index; - int len; - - str = (char *)pat; - while (*str) - { - ft_dprintf(3, is_char_esc(esc, pat, str) ? "\\%c" : "%c", *str); - ++str; - } - ft_dprintf(3, "\n"); - len = ft_strlen(pat); - index = -1; - while (++index < len) - ft_dprintf(3, ((esc[index / 8] >> (7 - index % 8)) & 1) ? " 1" : "0"); - ft_dprintf(3, "\n"); - index = 0; - while (index < len) - { - ft_dprintf(3, "%08b", esc[index / 8]); - index += 8; - } - ft_dprintf(3, "\n"); -} - char **glob(const char *pat, const unsigned char *esc, char **env) { t_glob gl; @@ -103,7 +77,6 @@ char **glob(const char *pat, const unsigned char *esc, char **env) { gl.pat = ((char **)gl.m_pat->content)[0]; gl.esc = ((unsigned char **)gl.m_pat->content)[1]; - printme_me(gl.pat, gl.esc); add_simple_pat(&gl); if (!(gl.pat[0] == '/' || (gl.pat[0] == '.' && gl.pat[1] == '/')) && env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':'))) From 95e1f03401eca64a9215e870f46862df38bfeb87 Mon Sep 17 00:00:00 2001 From: wescande Date: Mon, 30 Jan 2017 16:43:41 +0100 Subject: [PATCH 45/67] upgrade Makefile with all .c --- 42sh/Makefile | 59 ++++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index fe295d2b..ba77c040 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -30,10 +30,14 @@ INC_DIR = includes/ OBJ_DIR = objs/ SRC_BASE = \ +builtin/bt_read_get.c\ +builtin/bt_read_parse.c\ +builtin/bt_read_term.c\ builtin/builtin_cd.c\ builtin/builtin_echo.c\ builtin/builtin_env.c\ builtin/builtin_exit.c\ +builtin/builtin_read.c\ builtin/builtin_setenv.c\ builtin/builtin_unsetenv.c\ builtin/is_builtin.c\ @@ -92,6 +96,7 @@ job-control/job_kill_all.c\ job-control/job_notify_change.c\ job-control/job_notify_new.c\ job-control/job_remove.c\ +job-control/job_run.c\ job-control/job_update_id.c\ job-control/job_update_status.c\ job-control/job_wait.c\ @@ -133,35 +138,31 @@ lexer/token_expand_var.c\ lexer/token_free.c\ lexer/token_init.c\ lexer/token_print.c\ -line-editing/curs_ask.c\ -line-editing/curs_clear.c\ -line-editing/curs_goto.c\ -line-editing/curs_move.c\ -line-editing/curs_setup.c\ -line-editing/curs_single.c\ -line-editing/curs_term_setup.c\ -line-editing/curs_write.c\ -line-editing/ft_readline.c\ -line-editing/rl_bitset.c\ -line-editing/rl_clear_function.c\ -line-editing/rl_clipboard_function.c\ -line-editing/rl_clipboard_utility.c\ -line-editing/rl_comp_function.c\ -line-editing/rl_default_function.c\ -line-editing/rl_display.c\ -line-editing/rl_dynamic_buffer.c\ -line-editing/rl_long_move_function.c\ -line-editing/rl_merge_line.c\ -line-editing/rl_page_move_function.c\ -line-editing/rl_prompt.c\ -line-editing/rl_quoting_function.c\ -line-editing/rl_remove_function.c\ -line-editing/rl_setup.c\ -line-editing/rl_short_move_function.c\ -line-editing/rl_stack_line.c\ -line-editing/rl_state_function.c\ -line-editing/rl_word_move_function.c\ -line-editing/rl_word_utility.c\ +line-editing/builtin_history.c\ +line-editing/check_backslash.c\ +line-editing/copy_cut_paste.c\ +line-editing/ft_split_whitespaces.c\ +line-editing/get_touch.c\ +line-editing/get_touch_toolz.c\ +line-editing/get_touch_toolz_2.c\ +line-editing/heredoc.c\ +line-editing/history_parsing.c\ +line-editing/history_parsing_toolz.c\ +line-editing/history_parsing_toolz_2.c\ +line-editing/list_toolz.c\ +line-editing/move_to_line.c\ +line-editing/print_and_del.c\ +line-editing/prompt.c\ +line-editing/quotes_gest.c\ +line-editing/reader.c\ +line-editing/readline.c\ +line-editing/surch_in_history.c\ +line-editing/tool_line.c\ +line-editing/tool_line_2.c\ +line-editing/toolz.c\ +line-editing/toolz2.c\ +line-editing/toolz_parseur.c\ +line-editing/toolz_termcaps.c\ main/data_exit.c\ main/data_init.c\ main/data_singleton.c\ From 3c46e10736bb19fead181f06d25b307706de8c99 Mon Sep 17 00:00:00 2001 From: wescande Date: Mon, 30 Jan 2017 17:19:09 +0100 Subject: [PATCH 46/67] integration du retour de glob dans les tokens --- 42sh/Makefile | 61 ++++++++++--------- 42sh/includes/glob.h | 30 ++++++--- 42sh/includes/lexer.h | 3 +- .../{glob_print.c => glob_expand_token.c} | 18 +++--- 42sh/src/lexer/token_free.c | 3 +- 42sh/src/lexer/token_init.c | 3 +- 42sh/src/main/main.c | 4 +- 7 files changed, 71 insertions(+), 51 deletions(-) rename 42sh/src/glob/{glob_print.c => glob_expand_token.c} (67%) diff --git a/42sh/Makefile b/42sh/Makefile index fe295d2b..b769970d 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -30,10 +30,14 @@ INC_DIR = includes/ OBJ_DIR = objs/ SRC_BASE = \ +builtin/bt_read_get.c\ +builtin/bt_read_parse.c\ +builtin/bt_read_term.c\ builtin/builtin_cd.c\ builtin/builtin_echo.c\ builtin/builtin_env.c\ builtin/builtin_exit.c\ +builtin/builtin_read.c\ builtin/builtin_setenv.c\ builtin/builtin_unsetenv.c\ builtin/is_builtin.c\ @@ -58,7 +62,7 @@ exec/set_exitstatus.c\ glob/dir_glob.c\ glob/expand_brace.c\ glob/glob.c\ -glob/glob_print.c\ +glob/glob_expand_token.c\ glob/is_char_esc.c\ glob/lib_perso/ft_ld_back.c\ glob/lib_perso/ft_ld_clear.c\ @@ -92,6 +96,7 @@ job-control/job_kill_all.c\ job-control/job_notify_change.c\ job-control/job_notify_new.c\ job-control/job_remove.c\ +job-control/job_run.c\ job-control/job_update_id.c\ job-control/job_update_status.c\ job-control/job_wait.c\ @@ -133,35 +138,31 @@ lexer/token_expand_var.c\ lexer/token_free.c\ lexer/token_init.c\ lexer/token_print.c\ -line-editing/curs_ask.c\ -line-editing/curs_clear.c\ -line-editing/curs_goto.c\ -line-editing/curs_move.c\ -line-editing/curs_setup.c\ -line-editing/curs_single.c\ -line-editing/curs_term_setup.c\ -line-editing/curs_write.c\ -line-editing/ft_readline.c\ -line-editing/rl_bitset.c\ -line-editing/rl_clear_function.c\ -line-editing/rl_clipboard_function.c\ -line-editing/rl_clipboard_utility.c\ -line-editing/rl_comp_function.c\ -line-editing/rl_default_function.c\ -line-editing/rl_display.c\ -line-editing/rl_dynamic_buffer.c\ -line-editing/rl_long_move_function.c\ -line-editing/rl_merge_line.c\ -line-editing/rl_page_move_function.c\ -line-editing/rl_prompt.c\ -line-editing/rl_quoting_function.c\ -line-editing/rl_remove_function.c\ -line-editing/rl_setup.c\ -line-editing/rl_short_move_function.c\ -line-editing/rl_stack_line.c\ -line-editing/rl_state_function.c\ -line-editing/rl_word_move_function.c\ -line-editing/rl_word_utility.c\ +line-editing/builtin_history.c\ +line-editing/check_backslash.c\ +line-editing/copy_cut_paste.c\ +line-editing/ft_split_whitespaces.c\ +line-editing/get_touch.c\ +line-editing/get_touch_toolz.c\ +line-editing/get_touch_toolz_2.c\ +line-editing/heredoc.c\ +line-editing/history_parsing.c\ +line-editing/history_parsing_toolz.c\ +line-editing/history_parsing_toolz_2.c\ +line-editing/list_toolz.c\ +line-editing/move_to_line.c\ +line-editing/print_and_del.c\ +line-editing/prompt.c\ +line-editing/quotes_gest.c\ +line-editing/reader.c\ +line-editing/readline.c\ +line-editing/surch_in_history.c\ +line-editing/tool_line.c\ +line-editing/tool_line_2.c\ +line-editing/toolz.c\ +line-editing/toolz2.c\ +line-editing/toolz_parseur.c\ +line-editing/toolz_termcaps.c\ main/data_exit.c\ main/data_init.c\ main/data_singleton.c\ diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 4ba55910..61ee2079 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/30 12:12:23 by wescande ### ########.fr */ +/* Updated: 2017/01/30 17:14:48 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -42,15 +42,16 @@ typedef struct s_expand char *s1; } t_expand; -char **glob(const char *str, const unsigned char *esc, char **env); -void expand_brace(t_glob *tglob); -void glob_print(t_list *token, t_data *data); -int match_pattern(t_glob *tglob, char *str, char *full_word); -void dir_research(t_glob *tglob, char *p, const char *pat); -void dir_research_recursive(t_glob *tglob, char *p, const char *pat); +/* +** interface of glob. +** It fill all token->expand_data with correspind expansion +*/ +void glob_expand_token(t_list *token, t_data *data); + /* ** return TRUE if path file is a directory. */ + int is_directory(const char *path); /* ** return TRUE if char at str_pos in ini_str is escape. @@ -58,6 +59,21 @@ int is_directory(const char *path); int is_char_esc(const unsigned char *esc, const char *ini_str, const char *str_pos); +/* +** Internal function. +** +** +** +** +** +** +** +*/ +char **glob(const char *str, const unsigned char *esc, char **env); +void expand_brace(t_glob *tglob); +int match_pattern(t_glob *tglob, char *str, char *full_word); +void dir_research(t_glob *tglob, char *p, const char *pat); +void dir_research_recursive(t_glob *tglob, char *p, const char *pat); /* ** LIST D: */ diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 1df99c39..7e06d6e8 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:50 by jhalford #+# #+# */ -/* Updated: 2017/01/30 13:07:23 by wescande ### ########.fr */ +/* Updated: 2017/01/30 17:05:20 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -63,6 +63,7 @@ struct s_token { t_type type; char *data; + char **expand_data; unsigned char *esc; int size; }; diff --git a/42sh/src/glob/glob_print.c b/42sh/src/glob/glob_expand_token.c similarity index 67% rename from 42sh/src/glob/glob_print.c rename to 42sh/src/glob/glob_expand_token.c index 46fcdd8d..d7eaf7c0 100644 --- a/42sh/src/glob/glob_print.c +++ b/42sh/src/glob/glob_expand_token.c @@ -1,18 +1,18 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* glob_print.c :+: :+: :+: */ +/* glob_expand_token.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/05 16:09:40 by wescande #+# #+# */ -/* Updated: 2017/01/27 21:57:24 by wescande ### ########.fr */ +/* Created: 2017/01/30 17:10:34 by wescande #+# #+# */ +/* Updated: 2017/01/30 17:12:02 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "glob.h" -void ft_tabprint_fd(char **mytab, int fd) +static void ft_tabprint_fd(char **mytab, int fd) { int i; @@ -26,12 +26,11 @@ void ft_tabprint_fd(char **mytab, int fd) } } -void glob_print(t_list *lst, t_data *data) +void glob_expand_token(t_list *lst, t_data *data) { t_token *token; int i; t_type type; - char **glob_ret; while (lst) { @@ -40,9 +39,10 @@ void glob_print(t_list *lst, t_data *data) type = token->type; while (type >> (i++ + 2)) ; - glob_ret = glob(token->data, token->esc, data->env); - DG("%02i '%s'", i, token->data); - ft_tabprint_fd(glob_ret, 3); + token->expand_data = glob(token->data, token->esc, data->env); + DG("EXPANSION DU TOKEN : %02i '%s'", i, token->data); + ft_tabprint_fd(token->expand_data, 4); + DG("FIN DE L'EXPANSION DU TOKEN"); lst = lst->next; } } diff --git a/42sh/src/lexer/token_free.c b/42sh/src/lexer/token_free.c index 466d4407..064f34bb 100644 --- a/42sh/src/lexer/token_free.c +++ b/42sh/src/lexer/token_free.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:07:30 by jhalford #+# #+# */ -/* Updated: 2017/01/27 21:54:05 by wescande ### ########.fr */ +/* Updated: 2017/01/30 17:06:23 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,6 +21,7 @@ void token_free(void *data, size_t size) if (!(token->type & TK_NON_FREEABLE)) { ft_strdel(&token->data); + ft_tabdel(&token->expand_data); ft_memdel((void **)&token->esc); } free(token); diff --git a/42sh/src/lexer/token_init.c b/42sh/src/lexer/token_init.c index 009f27dd..81c94ca8 100644 --- a/42sh/src/lexer/token_init.c +++ b/42sh/src/lexer/token_init.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 15:30:25 by jhalford #+# #+# */ -/* Updated: 2017/01/27 21:54:53 by wescande ### ########.fr */ +/* Updated: 2017/01/30 17:05:55 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,5 +21,6 @@ t_token *token_init(void) token->size = 8; token->data = ft_strnew(token->size + 1); token->esc = (unsigned char *)ft_strnew(token->size / 8 + 1); + token->expand_data = NULL; return (token); } diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 55c960f3..9de6cd66 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/30 13:09:12 by wescande ### ########.fr */ +/* Updated: 2017/01/30 17:15:28 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,7 +30,7 @@ int shell_single_command(char *command) return (1); DG("after post_tokenize"); token_print(token); - glob_print(token, data_singleton()); + glob_expand_token(token, data_singleton()); if (ft_parse(&ast, &token)) return (1); btree_print(STDBUG, ast, &ft_putast); From e2e18d83bcbd7b9c6b67b43934b3023bd59f267c Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 31 Jan 2017 13:52:21 +0100 Subject: [PATCH 47/67] removed debug macros in job_control --- 42sh/src/exec/launch_process.c | 3 +-- 42sh/src/glob/glob_print.c | 2 +- 42sh/src/job-control/job_is_completed.c | 6 +----- 42sh/src/job-control/job_remove.c | 5 +---- 42sh/src/job-control/job_wait.c | 7 +------ 42sh/src/job-control/process_mark_status.c | 2 +- 42sh/src/job-control/put_job_in_foreground.c | 10 +--------- 42sh/src/lexer/ft_tokenize.c | 2 +- 42sh/src/main/main.c | 4 +--- 9 files changed, 9 insertions(+), 32 deletions(-) diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index fb3a463a..116af8ed 100644 --- a/42sh/src/exec/launch_process.c +++ b/42sh/src/exec/launch_process.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 14:20:45 by jhalford #+# #+# */ -/* Updated: 2017/01/11 18:01:10 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 13:47:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,7 +30,6 @@ int launch_process(t_process *p) { p->attributes &= ~PROCESS_STATE_MASK; p->attributes |= PROCESS_RUNNING; - DG("process is to be forked, %i->[]->%i, attr=%b", p->fdin, p->fdout, p->attributes); if (p->attributes & (PROCESS_BINARY | PROCESS_SCRIPT) && access(p->path, X_OK) == -1) { diff --git a/42sh/src/glob/glob_print.c b/42sh/src/glob/glob_print.c index 46fcdd8d..e25ac25d 100644 --- a/42sh/src/glob/glob_print.c +++ b/42sh/src/glob/glob_print.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:09:40 by wescande #+# #+# */ -/* Updated: 2017/01/27 21:57:24 by wescande ### ########.fr */ +/* Updated: 2017/01/31 13:43:56 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/job-control/job_is_completed.c b/42sh/src/job-control/job_is_completed.c index 1895291c..17970b3d 100644 --- a/42sh/src/job-control/job_is_completed.c +++ b/42sh/src/job-control/job_is_completed.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 15:10:20 by jhalford #+# #+# */ -/* Updated: 2017/01/12 15:15:21 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 13:50:40 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,12 +25,8 @@ int job_is_completed(int id) while (lst) { p = lst->content; - DG("checking pid=%i", p->pid); if (!(p->attributes & PROCESS_COMPLETED)) - { - DG("process %i is not completed", p->pid); return (0); - } lst = lst->next; } return (1); diff --git a/42sh/src/job-control/job_remove.c b/42sh/src/job-control/job_remove.c index afcfa110..6c779b89 100644 --- a/42sh/src/job-control/job_remove.c +++ b/42sh/src/job-control/job_remove.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 12:51:08 by jhalford #+# #+# */ -/* Updated: 2017/01/12 15:16:05 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 13:44:26 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,11 +19,8 @@ void job_remove(int id) jobc = &data_singleton()->jobc; if (job_is_completed(id)) { - DG("job_remove"); if (id < data_singleton()->jobc.current_id) data_singleton()->jobc.current_id = id; ft_lst_delif(&jobc->first_job, &id, job_cmp_id, job_free); } - else - DG("job_remove failed (not completed)"); } diff --git a/42sh/src/job-control/job_wait.c b/42sh/src/job-control/job_wait.c index 89268b18..1c49950a 100644 --- a/42sh/src/job-control/job_wait.c +++ b/42sh/src/job-control/job_wait.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 11:49:05 by jhalford #+# #+# */ -/* Updated: 2017/01/12 15:14:38 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 13:44:17 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,19 +17,14 @@ int job_wait(int id) pid_t pid; int status; - DG("job wait"); if (job_is_stopped(id) || job_is_completed(id)) return (0); - DG("waitpid now"); pid = waitpid(WAIT_ANY, &status, WUNTRACED); - DG("waitpid done"); while (!process_mark_status(pid, status) && !job_is_completed(id) && !job_is_stopped(id)) { - DG("waitpid now"); pid = waitpid(WAIT_ANY, &status, WUNTRACED); - DG("waitpid done"); } return (0); } diff --git a/42sh/src/job-control/process_mark_status.c b/42sh/src/job-control/process_mark_status.c index c7bfe4e8..2ae9375a 100644 --- a/42sh/src/job-control/process_mark_status.c +++ b/42sh/src/job-control/process_mark_status.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/12 12:41:11 by jhalford #+# #+# */ -/* Updated: 2017/01/12 15:14:28 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 13:44:49 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/job-control/put_job_in_foreground.c b/42sh/src/job-control/put_job_in_foreground.c index 3b0f05d6..6027c234 100644 --- a/42sh/src/job-control/put_job_in_foreground.c +++ b/42sh/src/job-control/put_job_in_foreground.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 14:58:36 by jhalford #+# #+# */ -/* Updated: 2017/01/12 13:16:48 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 13:47:41 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,10 +17,8 @@ int put_job_in_foreground(t_job *job, int cont) t_jobc *jobc; jobc = &data_singleton()->jobc; - /* Send the job a continue signal, if necessary. */ if (cont) { - /* Put the job into the foreground. */ signal(SIGTTOU, SIG_IGN); if (tcsetpgrp(STDIN, job->pgid) == -1) DG("couldn't put process in control. errno=%i, pgid=%i", errno, job->pgid); @@ -29,17 +27,11 @@ int put_job_in_foreground(t_job *job, int cont) if (kill(-job->pgid, SIGCONT) < 0) perror("kill (SIGCONT)"); } - /* Wait for it to report. */ - DG("gonna wait for job id=%i", job->id); job_wait(job->id); job_remove(job->id); - - /* Put the shell back in the foreground. */ signal(SIGTTOU, SIG_IGN); tcsetpgrp(STDIN, jobc->shell_pgid); signal(SIGTTOU, sigttou_handler); - - /* Restore the shell’s terminal modes. */ tcgetattr(STDIN, &job->tmodes); tcsetattr(STDIN, TCSADRAIN, &jobc->shell_tmodes); return (0); diff --git a/42sh/src/lexer/ft_tokenize.c b/42sh/src/lexer/ft_tokenize.c index de620b65..b94670d7 100644 --- a/42sh/src/lexer/ft_tokenize.c +++ b/42sh/src/lexer/ft_tokenize.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:37:11 by jhalford #+# #+# */ -/* Updated: 2017/01/27 15:43:46 by wescande ### ########.fr */ +/* Updated: 2017/01/31 13:42:01 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 55c960f3..509212c8 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/30 13:09:12 by wescande ### ########.fr */ +/* Updated: 2017/01/31 13:50:28 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -34,8 +34,6 @@ int shell_single_command(char *command) if (ft_parse(&ast, &token)) return (1); btree_print(STDBUG, ast, &ft_putast); - /* /1* ft_dprintf(STDBUG, "\n--- INFIX BREAKDOWN ---\n"); *1/ */ - /* /1* btree_apply_infix(ast, &ft_putast2); *1/ */ if (ft_exec(&ast)) return (1); return (0); From e7e93fa533d9d5770c4edcf9af35d25a05f96094 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 31 Jan 2017 15:11:26 +0100 Subject: [PATCH 48/67] correction de la norme sur tout le moude job-control --- 42sh/includes/job_control.h | 6 +- 42sh/src/glob/glob.c | 2 +- 42sh/src/glob/glob_print.c | 2 +- 42sh/src/job-control/builtin_fg.c | 2 +- 42sh/src/job-control/builtin_jobs.c | 95 ++++++++++++++++---- 42sh/src/job-control/do_job_notification.c | 17 ++-- 42sh/src/job-control/job_addprocess.c | 4 +- 42sh/src/job-control/job_cmp_id.c | 3 +- 42sh/src/job-control/job_format.c | 10 +-- 42sh/src/job-control/job_format_head.c | 7 +- 42sh/src/job-control/job_getprocess.c | 12 +++ 42sh/src/job-control/job_getrank.c | 4 +- 42sh/src/job-control/job_is_completed.c | 2 +- 42sh/src/job-control/job_notify_change.c | 6 +- 42sh/src/job-control/job_run.c | 7 +- 42sh/src/job-control/job_update_status.c | 6 +- 42sh/src/job-control/mark_job_as_running.c | 4 +- 42sh/src/job-control/process_cmp_pid.c | 2 +- 42sh/src/job-control/process_format.c | 4 +- 42sh/src/job-control/process_mark_status.c | 8 +- 42sh/src/job-control/put_job_in_background.c | 9 +- 42sh/src/job-control/put_job_in_foreground.c | 6 +- 42sh/src/job-control/sigchld_handler.c | 7 +- 42sh/src/line-editing/check_backslash.c | 2 +- 42sh/src/line-editing/prompt.c | 3 +- 42sh/src/line-editing/readline.c | 2 +- 26 files changed, 146 insertions(+), 86 deletions(-) diff --git a/42sh/includes/job_control.h b/42sh/includes/job_control.h index 633596b9..f93e4b0f 100644 --- a/42sh/includes/job_control.h +++ b/42sh/includes/job_control.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/10 16:55:09 by jhalford #+# #+# */ -/* Updated: 2017/01/09 16:56:18 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 14:40:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -53,8 +53,8 @@ void job_update_rank(void); int do_job_notification(void); void job_notify_new(t_job *job); void job_notify_change(int id); -void job_format(t_job *j, int rank[2], int opts); -void job_format_head(t_job *j, int rank[2]); +void job_format(t_job *j, int opts); +void job_format_head(t_job *j); void job_update_status(void); void mark_job_as_running (t_job *j); diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index e086c68e..7f2cee28 100644 --- a/42sh/src/glob/glob.c +++ b/42sh/src/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/30 12:08:49 by wescande ### ########.fr */ +/* Updated: 2017/01/31 14:16:38 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/glob/glob_print.c b/42sh/src/glob/glob_print.c index e25ac25d..c78aa0e7 100644 --- a/42sh/src/glob/glob_print.c +++ b/42sh/src/glob/glob_print.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:09:40 by wescande #+# #+# */ -/* Updated: 2017/01/31 13:43:56 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 13:52:43 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/job-control/builtin_fg.c b/42sh/src/job-control/builtin_fg.c index 7c2dfe48..48945eca 100644 --- a/42sh/src/job-control/builtin_fg.c +++ b/42sh/src/job-control/builtin_fg.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/08 14:30:07 by jhalford #+# #+# */ -/* Updated: 2017/01/11 14:42:04 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:05:31 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/job-control/builtin_jobs.c b/42sh/src/job-control/builtin_jobs.c index 4009347e..9e3fe05d 100644 --- a/42sh/src/job-control/builtin_jobs.c +++ b/42sh/src/job-control/builtin_jobs.c @@ -6,43 +6,100 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 17:43:01 by jhalford #+# #+# */ -/* Updated: 2017/01/11 14:38:50 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:05:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "job_control.h" - -int builtin_jobs(const char *path, char *const av[], char *const envp[]) +static int bt_jobs_parse(char **av, int *i) { - t_jobc *jobc; - t_list *jlist; - t_list *tmplist; - int rank[2]; - int opts; + int opts; + int j; - (void)path; - (void)envp; - (void)av; - if (!SHELL_HAS_JOBC(data_singleton()->opts)) + opts = 0; + *i = 1; + while (av[*i]) { - ft_dprintf(2, "{red}jobs: %s{eoc}\n", SHELL_MSG_NOJOBC); - return (-1); + j = 0; + if (av[*i][j++] != '-') + break ; + while (av[*i][j]) + { + if (av[*i][j] == 'l') + opts |= JOBS_OPTS_L; + else + { + ft_dprintf(2, "{red}%s: bad option: -%c{eoc}\n", + SHELL_NAME, av[*i][j]); + return (-1); + } + j++; + } + (*i)++; } + return (opts); +} + +static void bt_jobs_all(int opts) +{ + t_jobc *jobc; + t_list *jlist; + t_list *tmplist; + jobc = &data_singleton()->jobc; jlist = jobc->first_job; - job_getrank(&rank); - opts = 0; - if (ft_strcmp(av[1], "-l") == 0) - opts |= JOBS_OPTS_L; tmplist = ft_lst_filter(jlist, NULL, NULL); ft_lstsort(&tmplist, job_cmp_id); jlist = tmplist; while (jlist) { - job_format(jlist->content, rank, opts); + job_format(jlist->content, opts); jlist = jlist->next; } ft_lstdel(&tmplist, ft_lst_cfree); +} + +static int bt_jobs_spec(char **av, int opts) +{ + t_jobc *jobc; + t_list *jlist; + t_list *lst; + int id; + + jobc = &data_singleton()->jobc; + jlist = jobc->first_job; + while (*av) + { + id = ft_atoi(*av); + if (!(lst = ft_lst_find(jlist, &id, job_cmp_id))) + { + ft_dprintf(2, "{red}jobs: %s: no such job{eoc}\n", *av); + return (1); + } + job_format(lst->content, opts); + av++; + } + return (0); +} + +int builtin_jobs(const char *path, char *const av[], char *const envp[]) +{ + int opts; + int i; + + (void)path; + (void)envp; + if (!SHELL_HAS_JOBC(data_singleton()->opts)) + { + ft_dprintf(2, "{red}jobs: %s{eoc}\n", SHELL_MSG_NOJOBC); + return (1); + } + if ((opts = bt_jobs_parse((char**)av, &i)) < 0) + return (1); + if (!av[i]) + bt_jobs_all(opts); + else if (bt_jobs_spec((char **)av + i, opts)) + return (1); return (0); } diff --git a/42sh/src/job-control/do_job_notification.c b/42sh/src/job-control/do_job_notification.c index c748bd3f..b47b83b0 100644 --- a/42sh/src/job-control/do_job_notification.c +++ b/42sh/src/job-control/do_job_notification.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 13:01:19 by jhalford #+# #+# */ -/* Updated: 2017/01/11 17:35:15 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:06:05 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,18 +26,15 @@ int do_job_notification(void) while (jlist) { j = jlist->content; - DG("checking [%i]", j->id); - if (job_is_completed(j->id)) + if (job_is_completed(j->id) + || (job_is_stopped(j->id) && !(j->attributes & JOB_NOTIFIED))) { ret = 1; job_notify_change(j->id); - job_remove(j->id); - } - else if (job_is_stopped(j->id) && !(j->attributes & JOB_NOTIFIED)) - { - ret = 1; - job_notify_change(j->id); - j->attributes |= JOB_NOTIFIED; + if (job_is_completed(j->id)) + job_remove(j->id); + else + j->attributes |= JOB_NOTIFIED; } jlist = jlist->next; } diff --git a/42sh/src/job-control/job_addprocess.c b/42sh/src/job-control/job_addprocess.c index 22a1c28a..171df690 100644 --- a/42sh/src/job-control/job_addprocess.c +++ b/42sh/src/job-control/job_addprocess.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:54:51 by jhalford #+# #+# */ -/* Updated: 2017/01/11 14:40:34 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:07:16 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -33,5 +33,5 @@ int job_addprocess(t_process *p) } if (JOB_IS_BG(job->attributes) && IS_PIPEEND(p->attributes)) job_notify_new(job); - return(0); + return (0); } diff --git a/42sh/src/job-control/job_cmp_id.c b/42sh/src/job-control/job_cmp_id.c index cc9614d2..d3f6b162 100644 --- a/42sh/src/job-control/job_cmp_id.c +++ b/42sh/src/job-control/job_cmp_id.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/12 13:38:13 by jhalford #+# #+# */ -/* Updated: 2017/01/10 11:08:46 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:06:26 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,4 +16,3 @@ int job_cmp_id(t_job *job, int *id) { return (job->id - *id); } - diff --git a/42sh/src/job-control/job_format.c b/42sh/src/job-control/job_format.c index 1c8f3dd1..5c811a86 100644 --- a/42sh/src/job-control/job_format.c +++ b/42sh/src/job-control/job_format.c @@ -1,23 +1,23 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* job_format.c :+: :+: :+: */ +/* job_format.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/09 12:47:17 by jhalford #+# #+# */ -/* Updated: 2017/01/10 11:16:50 by jhalford ### ########.fr */ +/* Created: 2017/01/31 15:06:44 by jhalford #+# #+# */ +/* Updated: 2017/01/31 15:06:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "job_control.h" -void job_format(t_job *j, int rank[2], int opts) +void job_format(t_job *j, int opts) { t_list *plist; int firstp; - job_format_head(j, rank); + job_format_head(j); plist = j->first_process; firstp = 1; while (plist) diff --git a/42sh/src/job-control/job_format_head.c b/42sh/src/job-control/job_format_head.c index f0b0bf22..e463a269 100644 --- a/42sh/src/job-control/job_format_head.c +++ b/42sh/src/job-control/job_format_head.c @@ -6,16 +6,19 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:10:38 by jhalford #+# #+# */ -/* Updated: 2017/01/09 13:53:48 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 14:53:13 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "job_control.h" -void job_format_head(t_job *j, int rank[2]) +void job_format_head(t_job *j) { char crank; + int rank[2]; + job_getrank(&rank); + DG("rank[0]=%i,rank[1]=%i", rank[0], rank[1]); if (j->id == rank[0]) crank = '+'; else if (j->id == rank[1]) diff --git a/42sh/src/job-control/job_getprocess.c b/42sh/src/job-control/job_getprocess.c index a4fa75ba..b5223287 100644 --- a/42sh/src/job-control/job_getprocess.c +++ b/42sh/src/job-control/job_getprocess.c @@ -1,3 +1,15 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* job_getprocess.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/31 15:07:30 by jhalford #+# #+# */ +/* Updated: 2017/01/31 15:07:41 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "job_control.h" t_process *job_getprocess(pid_t pid) diff --git a/42sh/src/job-control/job_getrank.c b/42sh/src/job-control/job_getrank.c index 8c7b6996..aadd7745 100644 --- a/42sh/src/job-control/job_getrank.c +++ b/42sh/src/job-control/job_getrank.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 12:38:31 by jhalford #+# #+# */ -/* Updated: 2017/01/10 10:30:20 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:04:33 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,9 +24,11 @@ void job_getrank(int (*rank)[2]) jlist = jobc->first_job; (*rank)[0] = 0; (*rank)[1] = 0; + DG("check 1"); while (jlist && i < 2) { job = jlist->content; + DG("check 2: id=%i", job->id); if (job_is_stopped(job->id)) (*rank)[i++] = job->id; jlist = jlist->next; diff --git a/42sh/src/job-control/job_is_completed.c b/42sh/src/job-control/job_is_completed.c index 17970b3d..8c9a0f1c 100644 --- a/42sh/src/job-control/job_is_completed.c +++ b/42sh/src/job-control/job_is_completed.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 15:10:20 by jhalford #+# #+# */ -/* Updated: 2017/01/31 13:50:40 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 13:52:36 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/job-control/job_notify_change.c b/42sh/src/job-control/job_notify_change.c index 73f0a594..fd6c7728 100644 --- a/42sh/src/job-control/job_notify_change.c +++ b/42sh/src/job-control/job_notify_change.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/12 15:04:03 by jhalford #+# #+# */ -/* Updated: 2017/01/10 11:16:17 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 14:46:48 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,10 +16,8 @@ void job_notify_change(int id) { t_job *job; t_jobc *jobc; - int rank[2]; jobc = &data_singleton()->jobc; job = ft_lst_find(jobc->first_job, &id, job_cmp_id)->content; - job_getrank(&rank); - job_format(job, rank, JOBS_OPTS_L); + job_format(job, JOBS_OPTS_L); } diff --git a/42sh/src/job-control/job_run.c b/42sh/src/job-control/job_run.c index 14f8502b..ce5c0f07 100644 --- a/42sh/src/job-control/job_run.c +++ b/42sh/src/job-control/job_run.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 16:54:18 by jhalford #+# #+# */ -/* Updated: 2017/01/11 14:37:23 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 14:47:26 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,10 +14,7 @@ void job_run(t_job *job, int foreground) { - int rank[2]; - - job_getrank(&rank); mark_job_as_running(job); - job_format(job, rank, JOBS_OPTS_L); + job_format(job, JOBS_OPTS_L); foreground ? put_job_in_foreground(job, 1) : put_job_in_background(job, 1); } diff --git a/42sh/src/job-control/job_update_status.c b/42sh/src/job-control/job_update_status.c index 5426c5fc..e9f9a24e 100644 --- a/42sh/src/job-control/job_update_status.c +++ b/42sh/src/job-control/job_update_status.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 12:56:11 by jhalford #+# #+# */ -/* Updated: 2017/01/10 12:33:09 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:07:51 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ void job_update_status(void) int status; pid_t pid; - pid = waitpid (WAIT_ANY, &status, WUNTRACED | WNOHANG); + pid = waitpid(WAIT_ANY, &status, WUNTRACED | WNOHANG); while (!process_mark_status(pid, status)) - pid = waitpid (WAIT_ANY, &status, WUNTRACED | WNOHANG); + pid = waitpid(WAIT_ANY, &status, WUNTRACED | WNOHANG); } diff --git a/42sh/src/job-control/mark_job_as_running.c b/42sh/src/job-control/mark_job_as_running.c index 0854b8d9..ea82a0e7 100644 --- a/42sh/src/job-control/mark_job_as_running.c +++ b/42sh/src/job-control/mark_job_as_running.c @@ -6,13 +6,13 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/08 14:40:40 by jhalford #+# #+# */ -/* Updated: 2017/01/10 10:52:36 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:08:11 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "job_control.h" -void mark_job_as_running (t_job *j) +void mark_job_as_running(t_job *j) { t_list *plist; t_process *p; diff --git a/42sh/src/job-control/process_cmp_pid.c b/42sh/src/job-control/process_cmp_pid.c index d0b3b09c..7683e116 100644 --- a/42sh/src/job-control/process_cmp_pid.c +++ b/42sh/src/job-control/process_cmp_pid.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/12 13:00:21 by jhalford #+# #+# */ -/* Updated: 2016/12/12 13:40:13 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:06:21 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/job-control/process_format.c b/42sh/src/job-control/process_format.c index 00591d4c..25fe10cb 100644 --- a/42sh/src/job-control/process_format.c +++ b/42sh/src/job-control/process_format.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:05:55 by jhalford #+# #+# */ -/* Updated: 2017/01/12 13:16:45 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:10:56 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -64,7 +64,7 @@ static void process_format_com_short(t_list **plist, t_flag state) p = (*plist)->content; if (!(p->attributes & state) || (state == PROCESS_COMPLETED && p->status != 0)) - break; + break ; if (p->attributes & PROCESS_CONTINUED) { p->attributes &= ~PROCESS_STATE_MASK; diff --git a/42sh/src/job-control/process_mark_status.c b/42sh/src/job-control/process_mark_status.c index 2ae9375a..b02290e7 100644 --- a/42sh/src/job-control/process_mark_status.c +++ b/42sh/src/job-control/process_mark_status.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/12 12:41:11 by jhalford #+# #+# */ -/* Updated: 2017/01/31 13:44:49 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:10:04 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -32,11 +32,11 @@ int process_mark_status(pid_t pid, int status) p->attributes |= PROCESS_COMPLETED; if (WIFSIGNALED(status)) ft_printf("{mag}%d: Terminated by signal %d.\n{eoc}", - (int) pid, WTERMSIG(p->status)); + (int)pid, WTERMSIG(p->status)); } - return(0); + return (0); } ft_dprintf(2, "No child process %d.\n", pid); } - return(-1); + return (-1); } diff --git a/42sh/src/job-control/put_job_in_background.c b/42sh/src/job-control/put_job_in_background.c index a23dee5e..8de13514 100644 --- a/42sh/src/job-control/put_job_in_background.c +++ b/42sh/src/job-control/put_job_in_background.c @@ -6,17 +6,16 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 15:03:29 by jhalford #+# #+# */ -/* Updated: 2017/01/08 13:24:53 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:09:06 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "job_control.h" -int put_job_in_background(t_job *job, int cont) +int put_job_in_background(t_job *job, int cont) { - /* Send the job a continue signal, if necessary. */ if (cont) - if (kill (-job->pgid, SIGCONT) < 0) - perror ("kill (SIGCONT)"); + if (kill(-job->pgid, SIGCONT) < 0) + perror("kill (SIGCONT)"); return (0); } diff --git a/42sh/src/job-control/put_job_in_foreground.c b/42sh/src/job-control/put_job_in_foreground.c index 6027c234..1df2c754 100644 --- a/42sh/src/job-control/put_job_in_foreground.c +++ b/42sh/src/job-control/put_job_in_foreground.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 14:58:36 by jhalford #+# #+# */ -/* Updated: 2017/01/31 13:47:41 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:10:45 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,9 +21,9 @@ int put_job_in_foreground(t_job *job, int cont) { signal(SIGTTOU, SIG_IGN); if (tcsetpgrp(STDIN, job->pgid) == -1) - DG("couldn't put process in control. errno=%i, pgid=%i", errno, job->pgid); + return (1); signal(SIGTTOU, sigttou_handler); - tcsetattr (STDIN, TCSANOW, &job->tmodes); + tcsetattr(STDIN, TCSANOW, &job->tmodes); if (kill(-job->pgid, SIGCONT) < 0) perror("kill (SIGCONT)"); } diff --git a/42sh/src/job-control/sigchld_handler.c b/42sh/src/job-control/sigchld_handler.c index 11800df5..87f795c7 100644 --- a/42sh/src/job-control/sigchld_handler.c +++ b/42sh/src/job-control/sigchld_handler.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/10 17:37:56 by jhalford #+# #+# */ -/* Updated: 2017/01/10 17:59:28 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 15:09:29 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,9 +18,4 @@ void sigchld_handler(int signo) (void)signo; data = data_singleton(); - /* DG("got SIGCHLD"); */ - /* if (do_job_notification()) */ - /* ft_putstr(SHELL_PROMPT); */ - /* if (data_singleton()->mode != MODE_EXEC) */ - /* job_update_status(); */ } diff --git a/42sh/src/line-editing/check_backslash.c b/42sh/src/line-editing/check_backslash.c index fa91a8ab..108ba5df 100644 --- a/42sh/src/line-editing/check_backslash.c +++ b/42sh/src/line-editing/check_backslash.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/26 13:32:52 by gwojda #+# #+# */ -/* Updated: 2017/01/26 13:50:00 by gwojda ### ########.fr */ +/* Updated: 2017/01/31 15:03:59 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/prompt.c b/42sh/src/line-editing/prompt.c index 94482a27..4e26763d 100644 --- a/42sh/src/line-editing/prompt.c +++ b/42sh/src/line-editing/prompt.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:51:33 by gwojda #+# #+# */ -/* Updated: 2017/01/25 16:31:24 by gwojda ### ########.fr */ +/* Updated: 2017/01/31 15:02:39 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -54,6 +54,7 @@ void ft_prompt(void) { int ret; + do_job_notification(); ft_get_date(); ft_putstr("\033[22;36m"); ret = ft_currend_dir(); diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 154089c8..67a48bbd 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/01/26 13:38:29 by gwojda ### ########.fr */ +/* Updated: 2017/01/31 15:04:02 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 9e3640aed111558da3791c766b88628d398f14d1 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 31 Jan 2017 16:43:46 +0100 Subject: [PATCH 49/67] maj libft --- 42sh/libft | 2 +- 42sh/src/main/main.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/42sh/libft b/42sh/libft index 4c497745..fa4a21e3 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit 4c4977452745481166749b813e8db51dcf0caf44 +Subproject commit fa4a21e3d0d0545831d661df1863a399e9154218 diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 509212c8..621c0e7e 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/31 13:50:28 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 16:43:19 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From ad7d814c74703ca288f04bff9798c8c74772315d Mon Sep 17 00:00:00 2001 From: wescande Date: Tue, 31 Jan 2017 19:36:29 +0100 Subject: [PATCH 50/67] extension du globbing implemente SUPER MAKEFILE QUI DECHIRE TA M*RE --- 42sh/Makefile | 14 +++++--- 42sh/includes/glob.h | 17 +++------- 42sh/includes/lexer.h | 3 +- 42sh/includes/parser.h | 4 ++- 42sh/src/exec/ast_free.c | 8 +++-- 42sh/src/exec/exec_command.c | 47 +++++++++++++++++++++++++-- 42sh/src/glob/dir_glob.c | 30 ++++++++--------- 42sh/src/glob/expand_brace.c | 4 ++- 42sh/src/glob/glob.c | 52 ++++-------------------------- 42sh/src/glob/glob_expand_token.c | 48 --------------------------- 42sh/src/lexer/command_getoutput.c | 2 +- 42sh/src/lexer/token_free.c | 3 +- 42sh/src/lexer/token_init.c | 3 +- 42sh/src/main/main.c | 4 +-- 42sh/src/parser/ft_parse.c | 4 +-- 42sh/src/parser/parse_word.c | 8 +++-- 16 files changed, 105 insertions(+), 146 deletions(-) delete mode 100644 42sh/src/glob/glob_expand_token.c diff --git a/42sh/Makefile b/42sh/Makefile index b769970d..911c8683 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -13,11 +13,11 @@ NAME = 42sh CC = gcc -FLAGS = -Wall -Wextra -Werror +FLAGS = -Wall -Wextra -Werror -fsanitize=address -g D_FLAGS = -g LEN_NAME = `printf "%s" $(NAME) |wc -c` -DELTA = $$(echo "$$(tput cols)-24-$(LEN_NAME)"|bc) +DELTA = $$(echo "$$(tput cols)-37-$(LEN_NAME)"|bc) LIBFT_DIR = libft/ LIBFT_LIB = $(LIBFT_DIR)libft.a @@ -62,7 +62,6 @@ exec/set_exitstatus.c\ glob/dir_glob.c\ glob/expand_brace.c\ glob/glob.c\ -glob/glob_expand_token.c\ glob/is_char_esc.c\ glob/lib_perso/ft_ld_back.c\ glob/lib_perso/ft_ld_clear.c\ @@ -189,6 +188,8 @@ parser/parse_word.c SRCS = $(addprefix $(SRC_DIR), $(SRC_BASE)) OBJS = $(addprefix $(OBJ_DIR), $(SRC_BASE:.c=.o)) +NB = $(words $(SRC_BASE)) +INDEX = 0 all : @make -j $(NAME) @@ -210,10 +211,15 @@ $(OBJ_DIR) : @mkdir -p $(dir $(OBJS)) $(OBJ_DIR)%.o : $(SRC_DIR)%.c | $(OBJ_DIR) + @$(eval DONE=$(shell echo $$(($(INDEX)*20/$(NB))))) + @$(eval PERCENT=$(shell echo $$(($(INDEX)*100/$(NB))))) + @$(eval COLOR=$(shell echo $$(($(PERCENT)%35+196)))) + @$(eval TO_DO=$(shell echo $$((20-$(INDEX)*20/$(NB))))) + @printf "\r\033[38;5;11m⌛ MAKE %s : %2d%% \033[48;5;%dm%*s\033[0m%*s\033[48;5;255m \033[0m \033[38;5;11m %*s\033[0m\033[K" $(NAME) $(PERCENT) $(COLOR) $(DONE) "" $(TO_DO) "" $(DELTA) "$@" @$(CC) $(FLAGS) -MMD -c $< -o $@\ -I $(INC_DIR)\ -I $(LIBFT_INC) - @printf "\r\033[38;5;11m⌛ MAKE %s plz wait : %*s\033[0m\033[K" $(NAME) $(DELTA) "$@" + @$(eval INDEX=$(shell echo $$(($(INDEX)+1)))) clean: cleanlib @rm -rf $(OBJ_DIR) diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 61ee2079..fb5efd35 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/30 17:14:48 by wescande ### ########.fr */ +/* Updated: 2017/01/31 17:54:19 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -44,9 +44,8 @@ typedef struct s_expand /* ** interface of glob. -** It fill all token->expand_data with correspind expansion */ -void glob_expand_token(t_list *token, t_data *data); +char **glob(const char *str, const unsigned char *esc); /* ** return TRUE if path file is a directory. @@ -61,19 +60,11 @@ int is_char_esc(const unsigned char *esc, /* ** Internal function. -** -** -** -** -** -** -** */ -char **glob(const char *str, const unsigned char *esc, char **env); void expand_brace(t_glob *tglob); int match_pattern(t_glob *tglob, char *str, char *full_word); -void dir_research(t_glob *tglob, char *p, const char *pat); -void dir_research_recursive(t_glob *tglob, char *p, const char *pat); +int dir_research(t_glob *tglob, char *p, const char *pat); +int dir_research_recursive(t_glob *tglob, char *p, const char *pat); /* ** LIST D: */ diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 7e06d6e8..24b36150 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:50 by jhalford #+# #+# */ -/* Updated: 2017/01/30 17:05:20 by wescande ### ########.fr */ +/* Updated: 2017/01/31 18:35:34 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -63,7 +63,6 @@ struct s_token { t_type type; char *data; - char **expand_data; unsigned char *esc; int size; }; diff --git a/42sh/includes/parser.h b/42sh/includes/parser.h index 3c8a7fed..cdb28caa 100644 --- a/42sh/includes/parser.h +++ b/42sh/includes/parser.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:54 by jhalford #+# #+# */ -/* Updated: 2017/01/11 17:06:17 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 19:17:25 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,6 +16,7 @@ # include "minishell.h" typedef struct s_parser t_parser; +typedef struct s_ld t_ld; typedef struct s_astnode t_astnode; typedef struct s_redir t_redir; typedef union u_astdata t_astdata; @@ -44,6 +45,7 @@ struct s_redir union u_astdata { t_redir redir; + t_ld *token; char **sstr; char *str; }; diff --git a/42sh/src/exec/ast_free.c b/42sh/src/exec/ast_free.c index b0b3f592..fdf827f7 100644 --- a/42sh/src/exec/ast_free.c +++ b/42sh/src/exec/ast_free.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/05 11:50:51 by jhalford #+# #+# */ -/* Updated: 2017/01/11 17:50:03 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 19:15:28 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,9 +19,11 @@ void ast_free(void *data, size_t content_size) (void)content_size; node = data; if (node->type == TK_COMMAND) + ft_ld_clear(&node->data.token, &ft_tabdel); + else if (node->type == TK_SUBSHELL) { - if (node->data.sstr) - ft_sstrfree(node->data.sstr); + ft_sstrfree(node->data.sstr); + node->data.sstr = NULL; } else if (node->type == TK_LESS || node->type == TK_GREAT || node->type == TK_DGREAT) { diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index 6b2c2562..da867828 100644 --- a/42sh/src/exec/exec_command.c +++ b/42sh/src/exec/exec_command.c @@ -6,13 +6,53 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 17:28:14 by jhalford #+# #+# */ -/* Updated: 2017/01/12 13:14:35 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 19:12:23 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "exec.h" -int exec_command(t_btree **ast) +static char **return_array_expand(t_ld *ld) +{ + char **my_tab; + int index; + char **expand; + char **content; + + my_tab = NULL; + while (ld) + { + content = ld->content; + DG("EXPANSION DE :"); + DG("%s", content[0]); + expand = glob(content[0], (unsigned char *)content[1]); + DG(); + index = -1; + while (expand[++index]) + my_tab = ft_sstradd(my_tab, expand[index]); + ft_tabdel(&expand); + ld = ld->next; + } + return (my_tab); +} + +static void ft_tabprint_fd(char **mytab, int fd) +{ + int i; + + DG("Affichage des parametres envoyes apres le glob"); + if (!mytab || !*mytab) + return ; + i = 0; + while (mytab[i]) + { + ft_putendl_fd(mytab[i], fd); + ++i; + } +} + + +int exec_command(t_btree **ast) { t_astnode *node; t_process *p; @@ -21,7 +61,8 @@ int exec_command(t_btree **ast) node = (*ast)->item; p = &data_singleton()->exec.process; job = &data_singleton()->exec.job; - p->av = ft_sstrdup(node->data.sstr); + p->av = return_array_expand(node->data.token); + ft_tabprint_fd(p->av, 4); process_setexec(node->type, p); if (!(launch_process(p))) { diff --git a/42sh/src/glob/dir_glob.c b/42sh/src/glob/dir_glob.c index 815e64d6..a16dcc38 100644 --- a/42sh/src/glob/dir_glob.c +++ b/42sh/src/glob/dir_glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/30 12:07:16 by wescande #+# #+# */ -/* Updated: 2017/01/30 12:07:19 by wescande ### ########.fr */ +/* Updated: 2017/01/31 18:00:16 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,16 +20,16 @@ int is_directory(const char *path) return (S_ISDIR(path_stat.st_mode)); } -void dir_research(t_glob *gl, char *p, const char *pat) +int dir_research(t_glob *gl, char *p, const char *pat) { DIR *dir; struct dirent *in; char *path_tmp; + int ret; - if (ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') - { - if (!(dir = opendir(p))) - return ; + ret = 0; + if ((ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') + && is_directory(p) && (dir = opendir(p))) while ((in = readdir(dir))) { if (ft_strcmp(in->d_name, ".") && ft_strcmp(in->d_name, "..")) @@ -39,25 +39,25 @@ void dir_research(t_glob *gl, char *p, const char *pat) else path_tmp = ft_strjoinf(ft_strjoin(p, "/"), in->d_name, 1); gl->pat = pat; - if (match_pattern(gl, in->d_name, path_tmp)) + if (match_pattern(gl, in->d_name, path_tmp) && ++ret) ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + 2 * (path_tmp[0] == '.' && path_tmp[1] == '/'))); ft_strdel(&path_tmp); } } - } + return (ret); } -void dir_research_recursive(t_glob *gl, char *p, const char *pat) +int dir_research_recursive(t_glob *gl, char *p, const char *pat) { DIR *dir; struct dirent *in; char *path_tmp; + int ret; - if ((ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') && is_directory(p)) - { - if (!(dir = opendir(p))) - return ; + ret = 0; + if ((ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') + && is_directory(p) && (dir = opendir(p))) while ((in = readdir(dir))) { if (ft_strcmp(in->d_name, ".") && ft_strcmp(in->d_name, "..")) @@ -68,11 +68,11 @@ void dir_research_recursive(t_glob *gl, char *p, const char *pat) path_tmp = ft_strjoinf(ft_strjoin(p, "/"), in->d_name, 1); dir_research_recursive(gl, path_tmp, pat); gl->pat = pat; - if (match_pattern(gl, in->d_name, path_tmp)) + if (match_pattern(gl, in->d_name, path_tmp) && ++ret) ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + 2 * (path_tmp[0] == '.' && path_tmp[1] == '/'))); ft_strdel(&path_tmp); } } - } + return (ret); } diff --git a/42sh/src/glob/expand_brace.c b/42sh/src/glob/expand_brace.c index 78211f16..c570b6aa 100644 --- a/42sh/src/glob/expand_brace.c +++ b/42sh/src/glob/expand_brace.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/12 19:00:29 by wescande #+# #+# */ -/* Updated: 2017/01/28 01:13:26 by wescande ### ########.fr */ +/* Updated: 2017/01/31 18:19:34 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,6 +38,7 @@ static char **gen_tab(const char *pat, my_tab[1] = (char *)esc; } my_tab[2] = NULL; + return (my_tab); } @@ -126,6 +127,7 @@ void expand_brace(t_glob *gl) int do_it; t_expand me; + ft_ld_pushfront(&gl->m_pat, gen_tab("", (const unsigned char *)"", 1)); ft_ld_pushfront(&gl->m_pat, gen_tab(gl->pat, gl->esc, 1)); me = (t_expand){NULL, NULL, NULL, NULL, NULL}; diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index e086c68e..bb1b2357 100644 --- a/42sh/src/glob/glob.c +++ b/42sh/src/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/30 12:08:49 by wescande ### ########.fr */ +/* Updated: 2017/01/31 18:19:56 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,15 +22,6 @@ ** to just expanse in local directory and not in path dir */ -static void path_research(t_glob *gl, char **path) -{ - int i; - - i = -1; - while (path[++i]) - dir_research(gl, path[i], gl->pat); -} - static char **treat_glob(t_ld **match) { char **gl; @@ -43,33 +34,10 @@ static char **treat_glob(t_ld **match) return (gl); } -static void add_simple_pat(t_glob *gl) -{ - char *str; - int start; - - str = (char *)gl->pat; - start = 0; - while (*str) - { - if (!is_char_esc(gl->esc, gl->pat, str)) - { - if (*str == '[') - start = 1; - else if (*str == ']' && start == 1) - return ; - else if (*str == '*' || *str == '?') - return ; - } - ++str; - } - ft_ld_pushfront(&gl->match, ft_strdup(gl->pat)); -} - -char **glob(const char *pat, const unsigned char *esc, char **env) +char **glob(const char *pat, const unsigned char *esc) { t_glob gl; - char **path; + int ret; gl = (t_glob){pat, esc, NULL, NULL}; expand_brace(&gl); @@ -77,18 +45,12 @@ char **glob(const char *pat, const unsigned char *esc, char **env) { gl.pat = ((char **)gl.m_pat->content)[0]; gl.esc = ((unsigned char **)gl.m_pat->content)[1]; - add_simple_pat(&gl); - if (!(gl.pat[0] == '/' || (gl.pat[0] == '.' && gl.pat[1] == '/')) - && env && (path = ft_strsplit(ft_getenv(env, "PATH"), ':'))) - { - path_research(&gl, path); - ft_tabdel(&path); - } - gl.pat = ((char **)gl.m_pat->content)[0]; if (gl.pat[0] != '/') - dir_research(&gl, ".", gl.pat); + ret = dir_research(&gl, ".", gl.pat); else - dir_research(&gl, "/", gl.pat + 1); + ret = dir_research(&gl, "/", gl.pat + 1); + if (!ret) + ft_ld_pushfront(&gl.match, ft_strdup(gl.pat)); gl.m_pat = gl.m_pat->next; } ft_ld_clear(&gl.m_pat, &ft_tabdel); diff --git a/42sh/src/glob/glob_expand_token.c b/42sh/src/glob/glob_expand_token.c deleted file mode 100644 index d7eaf7c0..00000000 --- a/42sh/src/glob/glob_expand_token.c +++ /dev/null @@ -1,48 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* glob_expand_token.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: wescande +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/30 17:10:34 by wescande #+# #+# */ -/* Updated: 2017/01/30 17:12:02 by wescande ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "glob.h" - -static void ft_tabprint_fd(char **mytab, int fd) -{ - int i; - - if (!mytab || !*mytab) - return ; - i = 0; - while (mytab[i]) - { - ft_putendl_fd(mytab[i], fd); - ++i; - } -} - -void glob_expand_token(t_list *lst, t_data *data) -{ - t_token *token; - int i; - t_type type; - - while (lst) - { - i = 1; - token = lst->content; - type = token->type; - while (type >> (i++ + 2)) - ; - token->expand_data = glob(token->data, token->esc, data->env); - DG("EXPANSION DU TOKEN : %02i '%s'", i, token->data); - ft_tabprint_fd(token->expand_data, 4); - DG("FIN DE L'EXPANSION DU TOKEN"); - lst = lst->next; - } -} diff --git a/42sh/src/lexer/command_getoutput.c b/42sh/src/lexer/command_getoutput.c index 44b6c2e4..7e4b80f5 100644 --- a/42sh/src/lexer/command_getoutput.c +++ b/42sh/src/lexer/command_getoutput.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/12 14:01:59 by jhalford #+# #+# */ -/* Updated: 2017/01/12 15:31:34 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 16:07:17 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/token_free.c b/42sh/src/lexer/token_free.c index 064f34bb..eda8f28b 100644 --- a/42sh/src/lexer/token_free.c +++ b/42sh/src/lexer/token_free.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:07:30 by jhalford #+# #+# */ -/* Updated: 2017/01/30 17:06:23 by wescande ### ########.fr */ +/* Updated: 2017/01/31 18:36:40 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,6 @@ void token_free(void *data, size_t size) if (!(token->type & TK_NON_FREEABLE)) { ft_strdel(&token->data); - ft_tabdel(&token->expand_data); ft_memdel((void **)&token->esc); } free(token); diff --git a/42sh/src/lexer/token_init.c b/42sh/src/lexer/token_init.c index 81c94ca8..6547b15b 100644 --- a/42sh/src/lexer/token_init.c +++ b/42sh/src/lexer/token_init.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 15:30:25 by jhalford #+# #+# */ -/* Updated: 2017/01/30 17:05:55 by wescande ### ########.fr */ +/* Updated: 2017/01/31 18:36:31 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,6 +21,5 @@ t_token *token_init(void) token->size = 8; token->data = ft_strnew(token->size + 1); token->esc = (unsigned char *)ft_strnew(token->size / 8 + 1); - token->expand_data = NULL; return (token); } diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 9de6cd66..169a7e06 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/30 17:15:28 by wescande ### ########.fr */ +/* Updated: 2017/01/31 18:00:57 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,7 +30,7 @@ int shell_single_command(char *command) return (1); DG("after post_tokenize"); token_print(token); - glob_expand_token(token, data_singleton()); +// glob_expand_token(token, data_singleton()); if (ft_parse(&ast, &token)) return (1); btree_print(STDBUG, ast, &ft_putast); diff --git a/42sh/src/parser/ft_parse.c b/42sh/src/parser/ft_parse.c index 2dbdbb5d..d1a334c6 100644 --- a/42sh/src/parser/ft_parse.c +++ b/42sh/src/parser/ft_parse.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/30 17:14:58 by jhalford #+# #+# */ -/* Updated: 2017/01/12 15:07:31 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 16:10:41 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -41,7 +41,7 @@ int ft_parse(t_btree **ast, t_list **start) if (!*ast) { *ast = btree_create_node(&item, sizeof(item)); - ((t_astnode *)(*ast)->item)->data.sstr = NULL; + ((t_astnode *)(*ast)->item)->data.token = NULL; } while (g_parser[i].type) { diff --git a/42sh/src/parser/parse_word.c b/42sh/src/parser/parse_word.c index 45c64039..b7b1743f 100644 --- a/42sh/src/parser/parse_word.c +++ b/42sh/src/parser/parse_word.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/01/11 17:24:55 by jhalford ### ########.fr */ +/* Updated: 2017/01/31 19:17:58 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,12 +16,16 @@ int parse_word(t_btree **ast, t_list **start, t_list **lst) { t_astnode *node; t_token *token; + char **my_tab; (void)start; + my_tab = NULL; token = (*lst)->content; node = (*ast)->item; node->type = TK_COMMAND; - node->data.sstr = ft_sstradd(node->data.sstr, token->data); + my_tab = ft_sstradd(my_tab, token->data); + my_tab = ft_sstradd(my_tab, (char *)token->esc); + ft_ld_pushback(&node->data.token, my_tab); ft_parse(ast, &(*lst)->next); ft_lst_delif(start, (*lst)->content, &ft_addrcmp, &token_free); return (0); From 43f12953246eb5fcfcc631bde8bbdddf4ae607df Mon Sep 17 00:00:00 2001 From: wescande Date: Tue, 31 Jan 2017 23:25:41 +0100 Subject: [PATCH 51/67] finition sur le globbing (expansion des accolades, gestion des characteres echappe) => normalement aucun bug + mise a la norme --- 42sh/Makefile | 9 ++- 42sh/includes/glob.h | 13 ++++- 42sh/src/exec/exec_command.c | 22 +------- 42sh/src/glob/expand_brace.c | 81 ++++++++++++--------------- 42sh/src/glob/expand_esc.c | 76 +++++++++++++++++++++++++ 42sh/src/glob/ft_strsplit_esc.c | 86 +++++++++++++++++++++++++++++ 42sh/src/glob/ft_strsplit_spe.c | 86 +++++++++++++++++++++++++++++ 42sh/src/glob/glob.c | 6 +- 42sh/src/glob/lib_perso/ft_tablen.c | 27 +++++++++ 9 files changed, 331 insertions(+), 75 deletions(-) create mode 100644 42sh/src/glob/expand_esc.c create mode 100644 42sh/src/glob/ft_strsplit_esc.c create mode 100644 42sh/src/glob/ft_strsplit_spe.c create mode 100644 42sh/src/glob/lib_perso/ft_tablen.c diff --git a/42sh/Makefile b/42sh/Makefile index 158d7b2e..1a249d59 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -16,8 +16,7 @@ CC = gcc FLAGS = -Wall -Wextra -Werror D_FLAGS = -g -LEN_NAME = `printf "%s" $(NAME) |wc -c` -DELTA = $$(echo "$$(tput cols)-37-$(LEN_NAME)"|bc) +DELTA = $$(echo "$$(tput cols)-47"|bc) LIBFT_DIR = libft/ LIBFT_LIB = $(LIBFT_DIR)libft.a @@ -61,6 +60,9 @@ exec/process_setgroup.c\ exec/set_exitstatus.c\ glob/dir_glob.c\ glob/expand_brace.c\ +glob/expand_esc.c\ +glob/ft_strsplit_esc.c\ +glob/ft_strsplit_spe.c\ glob/glob.c\ glob/is_char_esc.c\ glob/lib_perso/ft_ld_back.c\ @@ -77,6 +79,7 @@ glob/lib_perso/ft_ld_swap.c\ glob/lib_perso/ft_ld_to_tab.c\ glob/lib_perso/ft_strjoinf.c\ glob/lib_perso/ft_tabdel.c\ +glob/lib_perso/ft_tablen.c\ glob/match_pattern.c\ job-control/builtin_bg.c\ job-control/builtin_fg.c\ @@ -215,7 +218,7 @@ $(OBJ_DIR)%.o : $(SRC_DIR)%.c | $(OBJ_DIR) @$(eval PERCENT=$(shell echo $$(($(INDEX)*100/$(NB))))) @$(eval COLOR=$(shell echo $$(($(PERCENT)%35+196)))) @$(eval TO_DO=$(shell echo $$((20-$(INDEX)*20/$(NB))))) - @printf "\r\033[38;5;11m⌛ MAKE %s : %2d%% \033[48;5;%dm%*s\033[0m%*s\033[48;5;255m \033[0m \033[38;5;11m %*s\033[0m\033[K" $(NAME) $(PERCENT) $(COLOR) $(DONE) "" $(TO_DO) "" $(DELTA) "$@" + @printf "\r\033[38;5;11m⌛ MAKE %10.10s : %2d%% \033[48;5;%dm%*s\033[0m%*s\033[48;5;255m \033[0m \033[38;5;11m %*s\033[0m\033[K" $(NAME) $(PERCENT) $(COLOR) $(DONE) "" $(TO_DO) "" $(DELTA) "$@" @$(CC) $(FLAGS) -MMD -c $< -o $@\ -I $(INC_DIR)\ -I $(LIBFT_INC) diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index fb5efd35..f6beebb8 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/31 17:54:19 by wescande ### ########.fr */ +/* Updated: 2017/01/31 23:20:22 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,6 +39,7 @@ typedef struct s_expand char *str; unsigned char *esc; char **split; + unsigned char **m_esc; char *s1; } t_expand; @@ -61,10 +62,19 @@ int is_char_esc(const unsigned char *esc, /* ** Internal function. */ +unsigned char *ft_sub_esc(const unsigned char *esc, int start, int len); +unsigned char *calc_expand_esc(const unsigned char *esc, + int nb_start, int nb_middle, int *nb_end); +void modify_esc_split(unsigned char *esc_dest, + unsigned char *esc_src, int start, int len); void expand_brace(t_glob *tglob); int match_pattern(t_glob *tglob, char *str, char *full_word); int dir_research(t_glob *tglob, char *p, const char *pat); int dir_research_recursive(t_glob *tglob, char *p, const char *pat); +char **ft_strsplit_spe(const char *str, + const unsigned char *esc, char c); +unsigned char **ft_strsplit_esc(const char *str, + const unsigned char *esc, char c); /* ** LIST D: */ @@ -87,5 +97,6 @@ t_ld *ft_ld_order(t_ld *ld, int (*f)(), void (*del)()); char *ft_strjoinf(char *str, char *str2, int mode); void ft_tabdel(char ***mytab); +int ft_tablen(char **mytab); #endif diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index da867828..6a6924fc 100644 --- a/42sh/src/exec/exec_command.c +++ b/42sh/src/exec/exec_command.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 17:28:14 by jhalford #+# #+# */ -/* Updated: 2017/01/31 19:12:23 by wescande ### ########.fr */ +/* Updated: 2017/01/31 20:19:48 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,10 +23,7 @@ static char **return_array_expand(t_ld *ld) while (ld) { content = ld->content; - DG("EXPANSION DE :"); - DG("%s", content[0]); expand = glob(content[0], (unsigned char *)content[1]); - DG(); index = -1; while (expand[++index]) my_tab = ft_sstradd(my_tab, expand[index]); @@ -36,22 +33,6 @@ static char **return_array_expand(t_ld *ld) return (my_tab); } -static void ft_tabprint_fd(char **mytab, int fd) -{ - int i; - - DG("Affichage des parametres envoyes apres le glob"); - if (!mytab || !*mytab) - return ; - i = 0; - while (mytab[i]) - { - ft_putendl_fd(mytab[i], fd); - ++i; - } -} - - int exec_command(t_btree **ast) { t_astnode *node; @@ -62,7 +43,6 @@ int exec_command(t_btree **ast) p = &data_singleton()->exec.process; job = &data_singleton()->exec.job; p->av = return_array_expand(node->data.token); - ft_tabprint_fd(p->av, 4); process_setexec(node->type, p); if (!(launch_process(p))) { diff --git a/42sh/src/glob/expand_brace.c b/42sh/src/glob/expand_brace.c index c570b6aa..6aa16d58 100644 --- a/42sh/src/glob/expand_brace.c +++ b/42sh/src/glob/expand_brace.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/12 19:00:29 by wescande #+# #+# */ -/* Updated: 2017/01/31 18:19:34 by wescande ### ########.fr */ +/* Updated: 2017/01/31 23:20:38 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,40 +38,9 @@ static char **gen_tab(const char *pat, my_tab[1] = (char *)esc; } my_tab[2] = NULL; - return (my_tab); } -static unsigned char *calc_expand_esc(const unsigned char *esc, - int nb_start, int nb_middle, int *nb_end) -{ - unsigned char *new_esc; - int index; - int pos; - - if (!(new_esc = ft_memalloc(sizeof(char) * - ((nb_start + nb_middle + nb_end[1]) / 8) + 1))) - return (NULL); - index = -1; - while (++index < nb_start) - new_esc[index / 8] |= - ((esc[index / 8] >> (7 - index % 8)) & 1) << (7 - index % 8); - pos = -1; - while (++pos < nb_middle) - { - new_esc[index / 8] |= 1 << (7 - index % 8); - ++index; - } - pos = nb_end[0]; - while (++pos <= nb_end[0] + nb_end[1]) - { - new_esc[index / 8] |= - ((esc[pos / 8] >> (7 - pos % 8)) & 1) << (7 - index % 8); - ++index; - } - return (new_esc); -} - static void iter_on_each(t_expand *me) { int i; @@ -89,31 +58,50 @@ static void iter_on_each(t_expand *me) ft_strlen(me->s1), ft_strlen(me->split[i]), (int[2]){me->str - CH(*me->wk)[0], ft_strlen(me->str + 1)}); + modify_esc_split(second, me->m_esc[i], + ft_strlen(me->s1), ft_strlen(me->split[i])); my_new = gen_tab(first, second, 0); ft_ld_pushfront(&wk_tmp, my_new); } me->wk = &wk_tmp; } +static void init_expand(t_expand *me, char *start) +{ + unsigned char *esc; + + me->s1 = ft_strsub(start, 1, me->str - start - 1); + esc = ft_sub_esc(me->esc, start - CH(*me->wk)[0] + 1, me->str - start); + me->split = ft_strsplit_spe(me->s1, esc, ','); + me->m_esc = ft_strsplit_esc(me->s1, esc, ','); + ft_strdel(&me->s1); + ft_strdel((char **)&esc); + me->s1 = ft_strsub(CH(*me->wk)[0], 0, start - CH(*me->wk)[0]); + iter_on_each(me); + ft_strdel(&me->s1); + ft_tabdel(&me->split); + ft_tabdel((char ***)&me->m_esc); +} + static int search_brace(t_expand *me) { - char *start; + char *start; + int nb; start = NULL; + nb = 0; while (*me->str) { - start = *me->str == '{' && !is_char_esc(me->esc, - CH(*me->wk)[0], me->str) ? me->str : start; - if (*me->str == '}' && start - && !is_char_esc(me->esc, CH(*me->wk)[0], me->str)) + start = *me->str == '{' + && !is_char_esc(me->esc, CH(*me->wk)[0], me->str) + && nb == 0 ? me->str : start; + nb += *me->str == '{' + && !is_char_esc(me->esc, CH(*me->wk)[0], me->str); + nb -= *me->str == '}' + && !is_char_esc(me->esc, CH(*me->wk)[0], me->str); + if (!nb && start) { - me->s1 = ft_strsub(start, 1, me->str - start - 1); - me->split = ft_strsplit(me->s1, ','); - ft_strdel(&me->s1); - me->s1 = ft_strsub(CH(*me->wk)[0], 0, start - CH(*me->wk)[0]); - iter_on_each(me); - ft_strdel(&me->s1); - ft_tabdel(&me->split); + init_expand(me, start); return (1); } ++me->str; @@ -127,15 +115,14 @@ void expand_brace(t_glob *gl) int do_it; t_expand me; - ft_ld_pushfront(&gl->m_pat, gen_tab("", (const unsigned char *)"", 1)); ft_ld_pushfront(&gl->m_pat, gen_tab(gl->pat, gl->esc, 1)); - me = (t_expand){NULL, NULL, NULL, NULL, NULL}; + me = (t_expand){NULL, NULL, NULL, NULL, NULL, NULL}; do_it = 1; while (do_it) { do_it = 0; - while (gl->m_pat->next) + while (gl->m_pat->next && !do_it) { me.wk = &gl->m_pat; me.esc = UCH(gl->m_pat)[1]; diff --git a/42sh/src/glob/expand_esc.c b/42sh/src/glob/expand_esc.c new file mode 100644 index 00000000..9ad603e4 --- /dev/null +++ b/42sh/src/glob/expand_esc.c @@ -0,0 +1,76 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* expand_esc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/31 23:18:56 by wescande #+# #+# */ +/* Updated: 2017/01/31 23:19:45 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +unsigned char *calc_expand_esc(const unsigned char *esc, + int nb_start, int nb_middle, int *nb_end) +{ + unsigned char *new_esc; + int index; + int pos; + + if (!(new_esc = (unsigned char *)ft_strnew(((nb_start + nb_middle + + nb_end[1]) / 8) + 1))) + return (NULL); + index = -1; + while (++index < nb_start) + new_esc[index / 8] |= + ((esc[index / 8] >> (7 - index % 8)) & 1) << (7 - index % 8); + pos = -1; + while (++pos < nb_middle) + { + new_esc[index / 8] |= 0 << (7 - index % 8); + ++index; + } + pos = nb_end[0]; + while (++pos <= nb_end[0] + nb_end[1]) + { + new_esc[index / 8] |= + ((esc[pos / 8] >> (7 - pos % 8)) & 1) << (7 - index % 8); + ++index; + } + return (new_esc); +} + +void modify_esc_split(unsigned char *esc_dest, + unsigned char *esc_src, int start, int len) +{ + int index; + int wk; + + index = -1; + while (++index < len) + { + wk = index + start - 1; + esc_dest[wk / 8] |= + ((esc_src[index / 8] >> (7 - index % 8)) & 1) << (7 - wk % 8); + } +} + +unsigned char *ft_sub_esc(const unsigned char *esc, + int start, int len) +{ + unsigned char *new_esc; + int index; + + if (!(new_esc = (unsigned char *)ft_strnew(((len) / 8) + 1))) + return (NULL); + index = -1; + while (++index < len) + { + new_esc[index / 8] |= + ((esc[start / 8] >> (7 - start % 8)) & 1) << (7 - index % 8); + ++start; + } + return (new_esc); +} diff --git a/42sh/src/glob/ft_strsplit_esc.c b/42sh/src/glob/ft_strsplit_esc.c new file mode 100644 index 00000000..f37c7b14 --- /dev/null +++ b/42sh/src/glob/ft_strsplit_esc.c @@ -0,0 +1,86 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strsplit_esc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/31 22:18:46 by wescande #+# #+# */ +/* Updated: 2017/01/31 23:15:17 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +static int ft_strlen_c(const char *str, const char *fix, + const unsigned char *esc, char c) +{ + int len; + int nb; + + len = 0; + nb = 0; + while (*str && (*str != c || nb)) + { + nb += *str == '{' && !is_char_esc(esc, fix, str); + nb -= *str == '}' && !is_char_esc(esc, fix, str); + ++str; + ++len; + } + return (len); +} + +static int nb_c(const char *str, const unsigned char *esc, char c) +{ + int len; + int nb; + const char *fix; + + len = 0; + nb = 0; + fix = str; + while (*str) + { + while (*str && *str == c) + ++str; + if (*str) + ++len; + while (*str && (*str != c || nb)) + { + nb += *str == '{' && !is_char_esc(esc, fix, str); + nb -= *str == '}' && !is_char_esc(esc, fix, str); + ++str; + } + } + return (len); +} + +unsigned char **ft_strsplit_esc(const char *str, + const unsigned char *esc, char c) +{ + unsigned char **s1; + int i; + const char *fix; + int len; + int pos; + + if ((pos = -1) && !str) + return (NULL); + if (!(s1 = (unsigned char **)malloc(sizeof(*s1) * (nb_c(str, esc, c) + 1)))) + return (NULL); + i = 0; + fix = str; + while (*str && *str == c && ++pos > -1) + ++str; + while (*str && (len = ft_strlen_c(str, fix, esc, c))) + { + s1[i] = ft_sub_esc(esc, pos, len); + str += len; + pos += len; + ++i; + while (*str && *str == c && ++pos) + ++str; + } + s1[i] = 0; + return (s1); +} diff --git a/42sh/src/glob/ft_strsplit_spe.c b/42sh/src/glob/ft_strsplit_spe.c new file mode 100644 index 00000000..a76d475e --- /dev/null +++ b/42sh/src/glob/ft_strsplit_spe.c @@ -0,0 +1,86 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strsplit_spe.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/31 20:49:30 by wescande #+# #+# */ +/* Updated: 2017/01/31 23:15:41 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +static int ft_strlen_c(const char *str, const char *fix, + const unsigned char *esc, char c) +{ + int len; + int nb; + + len = 0; + nb = 0; + while (*str && (*str != c || nb)) + { + nb += *str == '{' && !is_char_esc(esc, fix, str); + nb -= *str == '}' && !is_char_esc(esc, fix, str); + ++str; + ++len; + } + return (len); +} + +static int ft_nbstr_c(const char *str, const unsigned char *esc, char c) +{ + int len; + int nb; + const char *fix; + + len = 0; + nb = 0; + fix = str; + while (*str) + { + while (*str && *str == c) + ++str; + if (*str) + ++len; + while (*str && (*str != c || nb)) + { + nb += *str == '{' && !is_char_esc(esc, fix, str); + nb -= *str == '}' && !is_char_esc(esc, fix, str); + ++str; + } + } + return (len); +} + +char **ft_strsplit_spe(const char *str, + const unsigned char *esc, char c) +{ + char **s1; + int i; + const char *fix; + int len; + + if (!str) + return (NULL); + if (!(s1 = (char**)malloc(sizeof(*s1) * (ft_nbstr_c(str, esc, c) + 1)))) + return (NULL); + i = 0; + fix = str; + while (*str && *str == c) + ++str; + while (*str && (len = ft_strlen_c(str, fix, esc, c))) + { + if (!(s1[i] = (char*)malloc(sizeof(**s1) * (len + 1)))) + return (NULL); + ft_strncpy(s1[i], str, len); + str = str + len; + ++i; + while (*str && *str == c) + ++str; + } + s1[i] = 0; + return (s1); +} diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index d56b6293..4e294d5a 100644 --- a/42sh/src/glob/glob.c +++ b/42sh/src/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/31 19:40:49 by wescande ### ########.fr */ +/* Updated: 2017/01/31 23:15:27 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,7 +28,6 @@ static char **treat_glob(t_ld **match) gl = NULL; ft_ld_reverse(match); - *match = ft_ld_order(*match, &ft_strcmp, &ft_strdel); gl = ft_ld_to_tab(*match); ft_ld_clear(match, &ft_strdel); return (gl); @@ -50,7 +49,8 @@ char **glob(const char *pat, const unsigned char *esc) else ret = dir_research(&gl, "/", gl.pat + 1); if (!ret) - ft_ld_pushfront(&gl.match, ft_strdup(gl.pat)); + ft_ld_pushfront(&gl.match, + ft_strdup(((char **)gl.m_pat->content)[0])); gl.m_pat = gl.m_pat->next; } ft_ld_clear(&gl.m_pat, &ft_tabdel); diff --git a/42sh/src/glob/lib_perso/ft_tablen.c b/42sh/src/glob/lib_perso/ft_tablen.c new file mode 100644 index 00000000..3efbee0b --- /dev/null +++ b/42sh/src/glob/lib_perso/ft_tablen.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_tablen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/12/28 16:54:07 by wescande #+# #+# */ +/* Updated: 2016/12/28 16:55:46 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +int ft_tablen(char **mytab) +{ + int i; + + if (!mytab || !*mytab) + return (0); + i = 0; + while (mytab[i]) + { + ++i; + } + return (i); +} From feac290feeef3881334274b151c79d1d0381150d Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Wed, 1 Feb 2017 16:54:15 +0100 Subject: [PATCH 52/67] Comportement de control C/D mise a jour (avec le bruit d'erreur pour control D) -- mise a jour de l'edition de lignes, quelques bugs resolus (merci wescande :p) --- 42sh/includes/ft_readline.h | 4 ++-- 42sh/libft | 2 +- 42sh/src/line-editing/check_backslash.c | 2 +- 42sh/src/line-editing/copy_cut_paste.c | 9 ++------ 42sh/src/line-editing/get_touch.c | 27 ++++++++++++++++++----- 42sh/src/line-editing/get_touch_toolz.c | 4 +--- 42sh/src/line-editing/get_touch_toolz_2.c | 3 ++- 42sh/src/line-editing/print_and_del.c | 3 ++- 42sh/src/line-editing/prompt.c | 3 +-- 42sh/src/line-editing/readline.c | 2 +- 42sh/src/line-editing/tool_line.c | 3 ++- 42sh/src/line-editing/tool_line_2.c | 4 +--- 12 files changed, 37 insertions(+), 29 deletions(-) diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index 852800a7..dabaaa87 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/23 10:35:44 by gwojda #+# #+# */ -/* Updated: 2017/01/26 14:58:14 by gwojda ### ########.fr */ +/* Updated: 2017/02/01 15:10:44 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -71,7 +71,7 @@ typedef struct s_line t_list_history *list_beg; } t_line; -int builtin_history(const char *path, char *const av[], char *const envp[]); +int builtin_history(const char *path, char *const av[], char *const envp[]); void ft_check_backslash(char **str); char *ft_strget_history(char *str); void ft_surch_in_history(char **str, size_t *pos); diff --git a/42sh/libft b/42sh/libft index fa4a21e3..ab92f0e5 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit fa4a21e3d0d0545831d661df1863a399e9154218 +Subproject commit ab92f0e5d817c9d726a8ccf2f11c084ba446bbdf diff --git a/42sh/src/line-editing/check_backslash.c b/42sh/src/line-editing/check_backslash.c index 108ba5df..fa91a8ab 100644 --- a/42sh/src/line-editing/check_backslash.c +++ b/42sh/src/line-editing/check_backslash.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/26 13:32:52 by gwojda #+# #+# */ -/* Updated: 2017/01/31 15:03:59 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 13:50:00 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/copy_cut_paste.c b/42sh/src/line-editing/copy_cut_paste.c index 0282e916..19f24b47 100644 --- a/42sh/src/line-editing/copy_cut_paste.c +++ b/42sh/src/line-editing/copy_cut_paste.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 12:45:06 by gwojda #+# #+# */ -/* Updated: 2017/01/25 17:58:33 by gwojda ### ########.fr */ +/* Updated: 2017/02/01 15:16:33 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,18 +26,14 @@ static void ft_v(char *tmp, size_t *pos, char **str) *str = ft_realloc_imput(*str, tmp[i], *pos + i); ++i; } - sleep(1); if (*pos) { --(*pos); ft_get_beggin_with_curs(*str, pos); } - sleep(1); ft_current_str(*str, *pos); - sleep(1); ft_get_next_str(*str, pos); - sleep(1); - ft_putnc('\b', *pos - tmp_pos + 1); + ft_putnc('\b', *pos - tmp_pos); (*pos) = tmp_pos; } @@ -94,7 +90,6 @@ void ft_cxv(int ret, size_t *pos, char **str) if (tmp) ft_strdel(&tmp); tmp = ft_strdupi_space((*str) + (*pos)); - ft_printf("\n\ntmp = \"%s\"\n\n", tmp); } else if (ret == TOUCHE_OPT_V) ft_v(tmp, pos, str); diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index affc537c..6668421f 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/01/26 11:36:19 by gwojda ### ########.fr */ +/* Updated: 2017/02/01 16:50:57 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,9 +18,9 @@ static int ft_lecture_3(int ret, char **str, size_t *i) ft_suppr(str, i); else if (ret == TOUCHE_DELETE && (*str) && (*i) < ft_strlen((*str))) ft_del(str, i); - else if (ret == TOUCHE_HOME) + else if (ret == TOUCHE_HOME && *str) ft_home(*str, i); - else if (ret == TOUCHE_END) + else if (ret == TOUCHE_END && *str) ft_end(*str, i); else return (0); @@ -68,7 +68,6 @@ char *ft_lecture(t_list_history *head) } while (42) { - ft_check_end_of_line(str, i); ret = 0; read(0, &ret, sizeof(int)); if (ret == TOUCHE_F6 && read(0, &ret, sizeof(int)) > 0) @@ -82,12 +81,28 @@ char *ft_lecture(t_list_history *head) ** if (ret == TOUCHE_TAB) ** ret = ft_completion(&str, &i); */ - if (ret == TOUCHE_CTRL_C || ret == TOUCHE_CTRL_D) - exit(1); + if (ret == TOUCHE_CTRL_D) + { + if (!str || str[0] == '\0') + exit(0); + else if (i < ft_strlen(str)) + ft_del(&str, &i); + else + ft_puttermcaps("bl"); + } + if (ret == TOUCHE_CTRL_C) + { + ft_putchar('\n'); + ft_prompt(); + ft_strdel(&str); + i = 0; + } if (ft_lecture_2(ret, &str, &i)) continue ; else if (ret == FLECHE_BAS || ret == FLECHE_HAUT) { + if (!head) + continue ; ft_history(&str, ret, &head, &i); if (str) i = ft_strlen_next(str, i); diff --git a/42sh/src/line-editing/get_touch_toolz.c b/42sh/src/line-editing/get_touch_toolz.c index 06cba8b4..beae3600 100644 --- a/42sh/src/line-editing/get_touch_toolz.c +++ b/42sh/src/line-editing/get_touch_toolz.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:42:54 by gwojda #+# #+# */ -/* Updated: 2017/01/25 15:49:11 by gwojda ### ########.fr */ +/* Updated: 2017/02/01 16:45:22 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,8 +39,6 @@ void ft_history_2(char **str, int ret, t_list_history **head void ft_history(char **str, int ret, t_list_history **head, size_t *pos) { - if (!*head) - return ; ft_history_2(str, ret, head, pos); if (ret == FLECHE_HAUT) { diff --git a/42sh/src/line-editing/get_touch_toolz_2.c b/42sh/src/line-editing/get_touch_toolz_2.c index c38664e4..ad7d2372 100644 --- a/42sh/src/line-editing/get_touch_toolz_2.c +++ b/42sh/src/line-editing/get_touch_toolz_2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:43:58 by gwojda #+# #+# */ -/* Updated: 2017/01/25 16:26:42 by gwojda ### ########.fr */ +/* Updated: 2017/02/01 15:29:20 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -92,6 +92,7 @@ void ft_move_left(size_t *pos, char *str) --(*pos); return ; } + printf("here\n\n"); ft_puttermcaps("cd"); (*pos) -= 2; ft_get_beggin(str, pos); diff --git a/42sh/src/line-editing/print_and_del.c b/42sh/src/line-editing/print_and_del.c index 2dfe8996..be81a660 100644 --- a/42sh/src/line-editing/print_and_del.c +++ b/42sh/src/line-editing/print_and_del.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:02:43 by gwojda #+# #+# */ -/* Updated: 2017/01/25 16:37:45 by gwojda ### ########.fr */ +/* Updated: 2017/02/01 15:25:19 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -34,6 +34,7 @@ void ft_print(char **str, int ret, size_t *i) ft_putchar(*((*str) + *i + j)); ++j; } + ft_check_end_of_line(*str, *i + j); ft_putnc('\b', j - 1); ++(*i); } diff --git a/42sh/src/line-editing/prompt.c b/42sh/src/line-editing/prompt.c index 4e26763d..94482a27 100644 --- a/42sh/src/line-editing/prompt.c +++ b/42sh/src/line-editing/prompt.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:51:33 by gwojda #+# #+# */ -/* Updated: 2017/01/31 15:02:39 by jhalford ### ########.fr */ +/* Updated: 2017/01/25 16:31:24 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -54,7 +54,6 @@ void ft_prompt(void) { int ret; - do_job_notification(); ft_get_date(); ft_putstr("\033[22;36m"); ret = ft_currend_dir(); diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 67a48bbd..154089c8 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/01/31 15:04:02 by jhalford ### ########.fr */ +/* Updated: 2017/01/26 13:38:29 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/tool_line.c b/42sh/src/line-editing/tool_line.c index b0b116cb..0745579b 100644 --- a/42sh/src/line-editing/tool_line.c +++ b/42sh/src/line-editing/tool_line.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 18:20:23 by gwojda #+# #+# */ -/* Updated: 2017/01/24 11:36:56 by gwojda ### ########.fr */ +/* Updated: 2017/02/01 15:27:31 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -47,6 +47,7 @@ void ft_current_str(char *str, size_t pos) while (str[pos + len] && str[pos + len] != '\n') ++len; write(1, str + pos, len); + ft_check_end_of_line(str, pos + len); } int ft_strlen_next(char *str, size_t pos) diff --git a/42sh/src/line-editing/tool_line_2.c b/42sh/src/line-editing/tool_line_2.c index cffc021c..4ef5fe9a 100644 --- a/42sh/src/line-editing/tool_line_2.c +++ b/42sh/src/line-editing/tool_line_2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 19:07:52 by gwojda #+# #+# */ -/* Updated: 2017/01/24 11:37:27 by gwojda ### ########.fr */ +/* Updated: 2017/02/01 15:24:50 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -69,10 +69,8 @@ void ft_check_end_of_line(char *str, size_t pos) { if (!str) return ; - //ft_printf("\n\n\nnd = %d\n\n", ft_nb_last_line(str, pos)); if (ft_nb_last_line(str, pos) == 0) { - //ft_printf("\n\n\nhere\n\n"); ft_putchar(' '); ft_puttermcaps("le"); } From 62cdc4ca84347b27947d40eeaf5bc0d422e8788e Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Wed, 1 Feb 2017 17:30:45 +0100 Subject: [PATCH 53/67] back to looking like the GNU tutorial --- 42sh/Makefile | 1 + 42sh/includes/exec.h | 4 +++- 42sh/src/exec/exec_pipe.c | 2 ++ 42sh/src/exec/launch_process.c | 12 +++++----- 42sh/src/exec/process_redirect.c | 4 ++-- 42sh/src/exec/process_setgroup.c | 22 +++++++++---------- 42sh/src/exec/process_setsig.c | 11 ++++++++++ 42sh/src/job-control/put_job_in_background.c | 6 ++--- 42sh/src/job-control/put_job_in_foreground.c | 23 +++++++++----------- 42sh/src/job-control/sigttin_handler.c | 2 +- 42sh/src/job-control/sigttou_handler.c | 2 +- 42sh/src/main/shell_init.c | 5 ++--- 12 files changed, 52 insertions(+), 42 deletions(-) create mode 100644 42sh/src/exec/process_setsig.c diff --git a/42sh/Makefile b/42sh/Makefile index 1a249d59..b20dd88f 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -57,6 +57,7 @@ exec/process_redirect.c\ exec/process_reset.c\ exec/process_setexec.c\ exec/process_setgroup.c\ +exec/process_setsig.c\ exec/set_exitstatus.c\ glob/dir_glob.c\ glob/expand_brace.c\ diff --git a/42sh/includes/exec.h b/42sh/includes/exec.h index ea6efda7..777b4097 100644 --- a/42sh/includes/exec.h +++ b/42sh/includes/exec.h @@ -46,6 +46,7 @@ struct s_process pid_t pid; int fdin; int fdout; + int toclose; int status; t_flag attributes; }; @@ -83,8 +84,9 @@ int exec_command(t_btree **ast); int launch_process(t_process *p); int process_setexec(t_type type, t_process *p); -int process_setgroup(t_process *p); +int process_setgroup(t_process *p, pid_t pid); int process_redirect(t_process *p); +void process_setsig(void); void process_free(void *content, size_t content_size); void process_reset(void); diff --git a/42sh/src/exec/exec_pipe.c b/42sh/src/exec/exec_pipe.c index 8e777ae1..cd454b9b 100644 --- a/42sh/src/exec/exec_pipe.c +++ b/42sh/src/exec/exec_pipe.c @@ -25,11 +25,13 @@ int exec_pipe(t_btree **ast) DG("pipe %i->%i", fds[PIPE_WRITE], fds[PIPE_READ]); p->fdout = fds[PIPE_WRITE]; start = IS_PIPESTART(p->attributes); + p->toclose = fds[PIPE_READ]; p->attributes &= ~PROCESS_PIPEEND; ft_exec(&(*ast)->left); p->attributes &= ~PROCESS_PIPESTART; + p->toclose = STDIN; close(fds[PIPE_WRITE]); p->fdout = STDOUT; p->fdin = fds[PIPE_READ]; diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index 116af8ed..970b5d25 100644 --- a/42sh/src/exec/launch_process.c +++ b/42sh/src/exec/launch_process.c @@ -39,19 +39,17 @@ int launch_process(t_process *p) pid = fork(); if (pid == 0) { - process_setgroup(p); - signal(SIGINT, SIG_DFL); - signal(SIGQUIT, SIG_DFL); - signal(SIGTSTP, SIG_DFL); - signal(SIGTTIN, sigttin_handler); - signal(SIGTTOU, sigttou_handler); - signal(SIGCHLD, SIG_DFL); + process_setgroup(p, 0); + process_setsig(); process_redirect(p); (*p->execf)(p->path, p->av, data_singleton()->env); exit(42); } else if (pid > 0) + { p->pid = pid; + process_setgroup(p, pid); + } else if (pid == -1) perror("fork"); } diff --git a/42sh/src/exec/process_redirect.c b/42sh/src/exec/process_redirect.c index fed5209d..77830bb0 100644 --- a/42sh/src/exec/process_redirect.c +++ b/42sh/src/exec/process_redirect.c @@ -14,15 +14,15 @@ int process_redirect(t_process *p) { + if (p->toclose != STDIN) + close(p->toclose); if (p->fdin != STDIN) { - /* DG("redirect STDIN to %i", p->fdin); */ dup2(p->fdin, STDIN); close(p->fdin); } if (p->fdout != STDOUT) { - /* DG("redirect STDOUT to %i", p->fdout); */ dup2(p->fdout, STDOUT); close(p->fdout); } diff --git a/42sh/src/exec/process_setgroup.c b/42sh/src/exec/process_setgroup.c index 4cf1e1c4..afac9487 100644 --- a/42sh/src/exec/process_setgroup.c +++ b/42sh/src/exec/process_setgroup.c @@ -13,22 +13,22 @@ #include "job_control.h" #include "exec.h" -int process_setgroup(t_process *p) +int process_setgroup(t_process *p, pid_t pid) { - t_job *job; - int pid; + t_job *j; (void)p; - job = &data_singleton()->exec.job; - pid = getpid(); - if (job->pgid == 0) - job->pgid = pid; - if (setpgid(pid, job->pgid)) - DG("setpgid(%i, %i) failed", pid, job->pgid); - if (JOB_IS_FG(job->attributes)) + if (!SHELL_HAS_JOBC(data_singleton()->opts)) + return (0); + j = &data_singleton()->exec.job; + if (!j->pgid) + j->pgid = pid ? pid : getpid(); + DG("in pid %i gonna setpgid(%i, %i)", getpid(), pid, j->pgid); + setpgid(pid, j->pgid); + if (pid == 0 && JOB_IS_FG(j->attributes)) { signal(SIGTTOU, SIG_IGN); - tcsetpgrp(STDIN, job->pgid); + tcsetpgrp(STDIN, j->pgid); signal(SIGTTOU, SIG_DFL); } return (0); diff --git a/42sh/src/exec/process_setsig.c b/42sh/src/exec/process_setsig.c new file mode 100644 index 00000000..920424cc --- /dev/null +++ b/42sh/src/exec/process_setsig.c @@ -0,0 +1,11 @@ +#include "exec.h" + +void process_setsig(void) +{ + signal(SIGINT, SIG_DFL); + signal(SIGQUIT, SIG_DFL); + signal(SIGTSTP, SIG_DFL); + signal(SIGTTIN, SIG_DFL); + signal(SIGTTOU, SIG_DFL); + signal(SIGCHLD, SIG_DFL); +} diff --git a/42sh/src/job-control/put_job_in_background.c b/42sh/src/job-control/put_job_in_background.c index 8de13514..40820cc2 100644 --- a/42sh/src/job-control/put_job_in_background.c +++ b/42sh/src/job-control/put_job_in_background.c @@ -12,10 +12,10 @@ #include "job_control.h" -int put_job_in_background(t_job *job, int cont) +int put_job_in_background(t_job *j, int cont) { if (cont) - if (kill(-job->pgid, SIGCONT) < 0) - perror("kill (SIGCONT)"); + if (kill(-j->pgid, SIGCONT) < 0) + DG("kill (SIGCONT) malfunction"); return (0); } diff --git a/42sh/src/job-control/put_job_in_foreground.c b/42sh/src/job-control/put_job_in_foreground.c index 1df2c754..65ee9de3 100644 --- a/42sh/src/job-control/put_job_in_foreground.c +++ b/42sh/src/job-control/put_job_in_foreground.c @@ -12,27 +12,24 @@ #include "job_control.h" -int put_job_in_foreground(t_job *job, int cont) +int put_job_in_foreground(t_job *j, int cont) { t_jobc *jobc; jobc = &data_singleton()->jobc; + tcsetpgrp (STDIN, j->pgid); if (cont) { - signal(SIGTTOU, SIG_IGN); - if (tcsetpgrp(STDIN, job->pgid) == -1) - return (1); - signal(SIGTTOU, sigttou_handler); - tcsetattr(STDIN, TCSANOW, &job->tmodes); - if (kill(-job->pgid, SIGCONT) < 0) - perror("kill (SIGCONT)"); + tcsetattr(STDIN, TCSADRAIN, &j->tmodes); + if (kill(-j->pgid, SIGCONT) < 0) + DG("kill (SIGCONT) malfunction"); } - job_wait(job->id); - job_remove(job->id); - signal(SIGTTOU, SIG_IGN); + job_wait(j->id); + job_remove(j->id); + tcsetpgrp(STDIN, jobc->shell_pgid); - signal(SIGTTOU, sigttou_handler); - tcgetattr(STDIN, &job->tmodes); + + tcgetattr(STDIN, &j->tmodes); tcsetattr(STDIN, TCSADRAIN, &jobc->shell_tmodes); return (0); } diff --git a/42sh/src/job-control/sigttin_handler.c b/42sh/src/job-control/sigttin_handler.c index 1b424bf5..95197fce 100644 --- a/42sh/src/job-control/sigttin_handler.c +++ b/42sh/src/job-control/sigttin_handler.c @@ -15,5 +15,5 @@ void sigttin_handler(int signo) { (void)signo; - DG("got SIGTTIN"); + DG("got SIGTTIN, pid=%i, pgid=%i", getpid(), getpgrp()); } diff --git a/42sh/src/job-control/sigttou_handler.c b/42sh/src/job-control/sigttou_handler.c index a999d1e1..e89a5641 100644 --- a/42sh/src/job-control/sigttou_handler.c +++ b/42sh/src/job-control/sigttou_handler.c @@ -15,5 +15,5 @@ void sigttou_handler(int signo) { (void)signo; - DG("got SIGTTOU"); + DG("got SIGTTOU, pid=%i, pgid=%i", getpid(), getpgid(getpid())); } diff --git a/42sh/src/main/shell_init.c b/42sh/src/main/shell_init.c index b540d564..d33221da 100644 --- a/42sh/src/main/shell_init.c +++ b/42sh/src/main/shell_init.c @@ -28,9 +28,8 @@ void shell_init(int ac, char **av) signal(SIGINT, sigint_handler); signal(SIGQUIT, SIG_IGN); signal(SIGTSTP, sigtstp_handler); - /* signal(SIGTSTP, SIG_IGN); */ - signal(SIGTTIN, sigttin_handler); - signal(SIGTTOU, sigttou_handler); + signal(SIGTTIN, SIG_IGN); + signal(SIGTTOU, SIG_IGN); signal(SIGCHLD, sigchld_handler); *shell_pgid = getpid(); if (setpgid(*shell_pgid, *shell_pgid)) From 9641ed9dbb99b95705e4b6f3d4b815a61f12e910 Mon Sep 17 00:00:00 2001 From: wescande Date: Wed, 1 Feb 2017 19:50:32 +0100 Subject: [PATCH 54/67] suppression d'un malheureux leaks + opti recursivite --- 42sh/includes/glob.h | 5 +-- 42sh/src/exec/exec_command.c | 2 +- 42sh/src/glob/dir_glob.c | 72 ++++++++++++++--------------------- 42sh/src/glob/glob.c | 6 +-- 42sh/src/glob/match_pattern.c | 6 +-- 5 files changed, 38 insertions(+), 53 deletions(-) diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index f6beebb8..96cf40f2 100644 --- a/42sh/includes/glob.h +++ b/42sh/includes/glob.h @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:31:18 by wescande #+# #+# */ -/* Updated: 2017/01/31 23:20:22 by wescande ### ########.fr */ +/* Updated: 2017/02/01 19:50:07 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -69,8 +69,7 @@ void modify_esc_split(unsigned char *esc_dest, unsigned char *esc_src, int start, int len); void expand_brace(t_glob *tglob); int match_pattern(t_glob *tglob, char *str, char *full_word); -int dir_research(t_glob *tglob, char *p, const char *pat); -int dir_research_recursive(t_glob *tglob, char *p, const char *pat); +int dir_research(t_glob *tglob, char *p, const char *pat, int rec); char **ft_strsplit_spe(const char *str, const unsigned char *esc, char c); unsigned char **ft_strsplit_esc(const char *str, diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index 6a6924fc..0cbba450 100644 --- a/42sh/src/exec/exec_command.c +++ b/42sh/src/exec/exec_command.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 17:28:14 by jhalford #+# #+# */ -/* Updated: 2017/01/31 20:19:48 by wescande ### ########.fr */ +/* Updated: 2017/02/01 19:29:27 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/glob/dir_glob.c b/42sh/src/glob/dir_glob.c index a16dcc38..3ed4a660 100644 --- a/42sh/src/glob/dir_glob.c +++ b/42sh/src/glob/dir_glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/30 12:07:16 by wescande #+# #+# */ -/* Updated: 2017/01/31 18:00:16 by wescande ### ########.fr */ +/* Updated: 2017/02/01 19:49:44 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,65 +14,51 @@ int is_directory(const char *path) { - struct stat path_stat; + struct stat path_stat; stat(path, &path_stat); return (S_ISDIR(path_stat.st_mode)); } -int dir_research(t_glob *gl, char *p, const char *pat) +static int dir_list_content(t_glob *gl, char **str, const char *pat, + int recursive) { - DIR *dir; - struct dirent *in; - char *path_tmp; - int ret; + int ret; + char *path_tmp; ret = 0; - if ((ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') - && is_directory(p) && (dir = opendir(p))) - while ((in = readdir(dir))) - { - if (ft_strcmp(in->d_name, ".") && ft_strcmp(in->d_name, "..")) - { - if (*p == '/' && !*(p + 1)) - path_tmp = ft_strjoin(p, in->d_name); - else - path_tmp = ft_strjoinf(ft_strjoin(p, "/"), in->d_name, 1); - gl->pat = pat; - if (match_pattern(gl, in->d_name, path_tmp) && ++ret) - ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + 2 * - (path_tmp[0] == '.' && path_tmp[1] == '/'))); - ft_strdel(&path_tmp); - } - } + if (ft_strcmp(str[1], ".") && ft_strcmp(str[1], "..")) + { + if (*str[0] == '/' && !*(str[0] + 1)) + path_tmp = ft_strjoin(str[0], str[1]); + else + path_tmp = ft_strjoinf(ft_strjoin(str[0], "/"), str[1], 1); + if (recursive) + dir_research(gl, path_tmp, pat, recursive); + gl->pat = pat; + if (match_pattern(gl, str[1], path_tmp) && ++ret) + ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + 2 * + (path_tmp[0] == '.' && path_tmp[1] == '/'))); + ft_strdel(&path_tmp); + } return (ret); } -int dir_research_recursive(t_glob *gl, char *p, const char *pat) +int dir_research(t_glob *gl, char *p, + const char *pat, int recursive) { DIR *dir; struct dirent *in; - char *path_tmp; int ret; ret = 0; - if ((ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') - && is_directory(p) && (dir = opendir(p))) + if ((ft_strlen(p) <= 1 || p[ft_strlen(p) - 1] != '.') && is_directory(p)) + { + dir = opendir(p); while ((in = readdir(dir))) - { - if (ft_strcmp(in->d_name, ".") && ft_strcmp(in->d_name, "..")) - { - if (*p == '/' && !*(p + 1)) - path_tmp = ft_strjoin(p, in->d_name); - else - path_tmp = ft_strjoinf(ft_strjoin(p, "/"), in->d_name, 1); - dir_research_recursive(gl, path_tmp, pat); - gl->pat = pat; - if (match_pattern(gl, in->d_name, path_tmp) && ++ret) - ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + 2 * - (path_tmp[0] == '.' && path_tmp[1] == '/'))); - ft_strdel(&path_tmp); - } - } + ret += dir_list_content(gl, + (char *[2]){p, in->d_name}, pat, recursive); + closedir(dir); + } return (ret); } diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index 4e294d5a..1ec41786 100644 --- a/42sh/src/glob/glob.c +++ b/42sh/src/glob/glob.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/31 23:15:27 by wescande ### ########.fr */ +/* Updated: 2017/02/01 19:46:22 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -45,9 +45,9 @@ char **glob(const char *pat, const unsigned char *esc) gl.pat = ((char **)gl.m_pat->content)[0]; gl.esc = ((unsigned char **)gl.m_pat->content)[1]; if (gl.pat[0] != '/') - ret = dir_research(&gl, ".", gl.pat); + ret = dir_research(&gl, ".", gl.pat, 0); else - ret = dir_research(&gl, "/", gl.pat + 1); + ret = dir_research(&gl, "/", gl.pat + 1, 0); if (!ret) ft_ld_pushfront(&gl.match, ft_strdup(((char **)gl.m_pat->content)[0])); diff --git a/42sh/src/glob/match_pattern.c b/42sh/src/glob/match_pattern.c index 8707c3c4..b2688603 100644 --- a/42sh/src/glob/match_pattern.c +++ b/42sh/src/glob/match_pattern.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/24 17:30:23 by wescande #+# #+# */ -/* Updated: 2017/01/27 23:45:39 by wescande ### ########.fr */ +/* Updated: 2017/02/01 19:46:43 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -72,7 +72,7 @@ static int match_star(t_glob *gl, char *str, char *full_word) if (gl->pat[1] == '*' && !is_char_esc(gl->esc, ((char **)gl->m_pat->content)[0], gl->pat + 1)) - dir_research_recursive(gl, full_word, gl->pat + 1); + dir_research(gl, full_word, gl->pat + 1, 1); if (!*++gl->pat) return (1); fix = str + ft_strlen(str); @@ -113,7 +113,7 @@ int match_pattern(t_glob *gl, char *str, char *full_word) else if (*gl->pat == '*') return (match_star(gl, str, full_word)); else if (*gl->pat == '/' && !*str && is_directory(full_word)) - dir_research(gl, full_word, gl->pat + 1); + dir_research(gl, full_word, gl->pat + 1, 0); else if (*gl->pat != *str) return (0); ++str; From 59bbf8ab10a71ecfc6e5c3430a866a303e4c2666 Mon Sep 17 00:00:00 2001 From: wescande Date: Wed, 1 Feb 2017 19:55:39 +0100 Subject: [PATCH 55/67] libft update --- 42sh/libft | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/42sh/libft b/42sh/libft index ab92f0e5..fa4a21e3 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit ab92f0e5d817c9d726a8ccf2f11c084ba446bbdf +Subproject commit fa4a21e3d0d0545831d661df1863a399e9154218 From 6ad4ca18481073d8130d411a91ba8eb828525285 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Wed, 1 Feb 2017 21:27:16 +0100 Subject: [PATCH 56/67] some nices fixes, works nicely --- 42sh/src/exec/exec_command.c | 3 ++- 42sh/src/exec/process_setgroup.c | 5 ++--- 42sh/src/exec/process_setsig.c | 2 +- 42sh/src/job-control/job_run.c | 5 ++++- 42sh/src/job-control/job_wait.c | 4 +++- 42sh/src/job-control/process_mark_status.c | 2 +- 42sh/src/job-control/put_job_in_background.c | 2 +- 42sh/src/job-control/put_job_in_foreground.c | 9 +++++++-- 42sh/src/job-control/sigint_handler.c | 2 +- 42sh/src/line-editing/readline.c | 1 + 10 files changed, 23 insertions(+), 12 deletions(-) diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index 6a6924fc..13b002f5 100644 --- a/42sh/src/exec/exec_command.c +++ b/42sh/src/exec/exec_command.c @@ -57,7 +57,8 @@ int exec_command(t_btree **ast) } p->av = NULL; p->pid = 0; - p->attributes = PROCESS_PIPESTART | PROCESS_PIPEEND; + /* p->attributes = PROCESS_PIPESTART | PROCESS_PIPEEND; */ + p->attributes &= ~(PROCESS_STATE_MASK | PROCESS_TYPE_MASK); btree_delone(ast, &ast_free); return (0); } diff --git a/42sh/src/exec/process_setgroup.c b/42sh/src/exec/process_setgroup.c index afac9487..e9db1959 100644 --- a/42sh/src/exec/process_setgroup.c +++ b/42sh/src/exec/process_setgroup.c @@ -23,13 +23,12 @@ int process_setgroup(t_process *p, pid_t pid) j = &data_singleton()->exec.job; if (!j->pgid) j->pgid = pid ? pid : getpid(); - DG("in pid %i gonna setpgid(%i, %i)", getpid(), pid, j->pgid); + DG("pid:%i gonna setpgid(%i, %i)", getpid(), pid, j->pgid); setpgid(pid, j->pgid); if (pid == 0 && JOB_IS_FG(j->attributes)) { - signal(SIGTTOU, SIG_IGN); + DG("pid:%i gonna setpgrp(%i)", getpid(), j->pgid); tcsetpgrp(STDIN, j->pgid); - signal(SIGTTOU, SIG_DFL); } return (0); } diff --git a/42sh/src/exec/process_setsig.c b/42sh/src/exec/process_setsig.c index 920424cc..b2a68b09 100644 --- a/42sh/src/exec/process_setsig.c +++ b/42sh/src/exec/process_setsig.c @@ -2,7 +2,7 @@ void process_setsig(void) { - signal(SIGINT, SIG_DFL); + /* signal(SIGINT, SIG_DFL); */ signal(SIGQUIT, SIG_DFL); signal(SIGTSTP, SIG_DFL); signal(SIGTTIN, SIG_DFL); diff --git a/42sh/src/job-control/job_run.c b/42sh/src/job-control/job_run.c index ce5c0f07..bd9d0f48 100644 --- a/42sh/src/job-control/job_run.c +++ b/42sh/src/job-control/job_run.c @@ -16,5 +16,8 @@ void job_run(t_job *job, int foreground) { mark_job_as_running(job); job_format(job, JOBS_OPTS_L); - foreground ? put_job_in_foreground(job, 1) : put_job_in_background(job, 1); + if (foreground) + put_job_in_foreground(job, 1); + else + put_job_in_background(job, 1); } diff --git a/42sh/src/job-control/job_wait.c b/42sh/src/job-control/job_wait.c index 1c49950a..4bfb6b60 100644 --- a/42sh/src/job-control/job_wait.c +++ b/42sh/src/job-control/job_wait.c @@ -17,8 +17,10 @@ int job_wait(int id) pid_t pid; int status; - if (job_is_stopped(id) || job_is_completed(id)) + DG("waiting for [%i]", id); + if (job_is_stopped(id)) return (0); + job_update_status(); pid = waitpid(WAIT_ANY, &status, WUNTRACED); while (!process_mark_status(pid, status) && !job_is_completed(id) diff --git a/42sh/src/job-control/process_mark_status.c b/42sh/src/job-control/process_mark_status.c index b02290e7..21cf949c 100644 --- a/42sh/src/job-control/process_mark_status.c +++ b/42sh/src/job-control/process_mark_status.c @@ -32,7 +32,7 @@ int process_mark_status(pid_t pid, int status) p->attributes |= PROCESS_COMPLETED; if (WIFSIGNALED(status)) ft_printf("{mag}%d: Terminated by signal %d.\n{eoc}", - (int)pid, WTERMSIG(p->status)); + (int)pid, WTERMSIG(status)); } return (0); } diff --git a/42sh/src/job-control/put_job_in_background.c b/42sh/src/job-control/put_job_in_background.c index 40820cc2..02357157 100644 --- a/42sh/src/job-control/put_job_in_background.c +++ b/42sh/src/job-control/put_job_in_background.c @@ -16,6 +16,6 @@ int put_job_in_background(t_job *j, int cont) { if (cont) if (kill(-j->pgid, SIGCONT) < 0) - DG("kill (SIGCONT) malfunction"); + DG("kill(SIGCONT) failed"); return (0); } diff --git a/42sh/src/job-control/put_job_in_foreground.c b/42sh/src/job-control/put_job_in_foreground.c index 65ee9de3..0f462a1a 100644 --- a/42sh/src/job-control/put_job_in_foreground.c +++ b/42sh/src/job-control/put_job_in_foreground.c @@ -17,16 +17,21 @@ int put_job_in_foreground(t_job *j, int cont) t_jobc *jobc; jobc = &data_singleton()->jobc; - tcsetpgrp (STDIN, j->pgid); + DG("pid:%i gonna setpgrp(%i) (JOB)", getpid(), j->pgid); + tcsetpgrp(STDIN, j->pgid); + tcsetattr(STDIN, TCSADRAIN, &jobc->shell_tmodes); + if (cont) { tcsetattr(STDIN, TCSADRAIN, &j->tmodes); if (kill(-j->pgid, SIGCONT) < 0) - DG("kill (SIGCONT) malfunction"); + DG("kill(SIGCONT) failed"); } job_wait(j->id); + DG("finished waiting for [%i]", j->id); job_remove(j->id); + DG("pid:%i gonna setpgrp(%i) (SHELL)", getpid(), jobc->shell_pgid); tcsetpgrp(STDIN, jobc->shell_pgid); tcgetattr(STDIN, &j->tmodes); diff --git a/42sh/src/job-control/sigint_handler.c b/42sh/src/job-control/sigint_handler.c index de5ec7dd..9ca6a1b3 100644 --- a/42sh/src/job-control/sigint_handler.c +++ b/42sh/src/job-control/sigint_handler.c @@ -15,5 +15,5 @@ void sigint_handler(int signo) { (void)signo; - DG("got SIGINT in process %i", getpid()); + DG("pid:%i got SIGINT", getpid()); } diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 67a48bbd..28c4beaa 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -66,6 +66,7 @@ void ft_reset_stats_term(int signal) int ft_readline(void) { signal(SIGWINCH, ft_reset_stats_term); + ft_save_stats_term(); if (tcsetattr(0, TCSANOW, ft_stats_term_termcaps()) == -1) return (-1); if (data_singleton()->line.input) From 0d8610ca65d22f3e97c654fb2b4d735d87ec98a4 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Thu, 2 Feb 2017 00:56:16 +0100 Subject: [PATCH 57/67] exit statuses behave correctly now (like bash) --- 42sh/includes/exec.h | 3 ++- 42sh/includes/job_control.h | 2 +- 42sh/src/exec/exec_command.c | 1 - 42sh/src/exec/launch_process.c | 17 +++++++++-------- 42sh/src/exec/set_exitstatus.c | 22 +++++++++++++++++++--- 42sh/src/job-control/job_getprocess.c | 4 ++-- 42sh/src/job-control/job_remove.c | 7 ++++++- 42sh/src/job-control/process_mark_status.c | 4 +++- 8 files changed, 42 insertions(+), 18 deletions(-) diff --git a/42sh/includes/exec.h b/42sh/includes/exec.h index 777b4097..aaee3466 100644 --- a/42sh/includes/exec.h +++ b/42sh/includes/exec.h @@ -33,6 +33,7 @@ # define IS_PIPESTART(a) (a & PROCESS_PIPESTART) # define IS_PIPEEND(a) (a & PROCESS_PIPEEND) +# define IS_PIPESINGLE(a) (a & (PROCESS_PIPESTART | PROCESS_PIPEEND)) # include "libft.h" # include "types.h" @@ -95,7 +96,7 @@ void fd_reset(void); char *ft_findexec(char *path, char *file); -void set_exitstatus(int status); +void set_exitstatus(int status, int override); void ast_free(void *data, size_t content_size); diff --git a/42sh/includes/job_control.h b/42sh/includes/job_control.h index f93e4b0f..76a72498 100644 --- a/42sh/includes/job_control.h +++ b/42sh/includes/job_control.h @@ -45,7 +45,7 @@ struct s_jobc # include "exec.h" -t_process *job_getprocess(pid_t pid); +t_list *job_getprocess(pid_t pid); int job_addprocess(t_process *p); void job_update_id(void); void job_update_rank(void); diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index 13b002f5..fecfa33d 100644 --- a/42sh/src/exec/exec_command.c +++ b/42sh/src/exec/exec_command.c @@ -57,7 +57,6 @@ int exec_command(t_btree **ast) } p->av = NULL; p->pid = 0; - /* p->attributes = PROCESS_PIPESTART | PROCESS_PIPEEND; */ p->attributes &= ~(PROCESS_STATE_MASK | PROCESS_TYPE_MASK); btree_delone(ast, &ast_free); return (0); diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index 970b5d25..db991821 100644 --- a/42sh/src/exec/launch_process.c +++ b/42sh/src/exec/launch_process.c @@ -21,11 +21,10 @@ int launch_process(t_process *p) if (p->attributes & PROCESS_UNKNOWN) { ft_dprintf(2, "{red}%s: command not found: %s{eoc}\n", SHELL_NAME, p->av[0]); - set_exitstatus(127); - return (1); + set_exitstatus(127, 1); } - else if (p->attributes & PROCESS_BUILTIN && p->fdout == STDOUT) - set_exitstatus((*p->execf)(p->path, p->av, data_singleton()->env)); + else if (p->attributes & PROCESS_BUILTIN && IS_PIPESINGLE(p->attributes)) + set_exitstatus((*p->execf)(p->path, p->av, data_singleton()->env), 1); else { p->attributes &= ~PROCESS_STATE_MASK; @@ -34,7 +33,8 @@ int launch_process(t_process *p) && access(p->path, X_OK) == -1) { ft_dprintf(2, "{red}%s: permission denied: %s{eoc}\n", SHELL_NAME, p->av[0]); - return (-1); + set_exitstatus(126, 1); + return (1); } pid = fork(); if (pid == 0) @@ -43,15 +43,16 @@ int launch_process(t_process *p) process_setsig(); process_redirect(p); (*p->execf)(p->path, p->av, data_singleton()->env); - exit(42); + exit(43); } else if (pid > 0) { p->pid = pid; process_setgroup(p, pid); + return (0); } else if (pid == -1) - perror("fork"); + ft_dprintf(2, "{red}internal fork error{eoc}\n"); } - return (0); + return (1); } diff --git a/42sh/src/exec/set_exitstatus.c b/42sh/src/exec/set_exitstatus.c index 584abdcc..19c79d48 100644 --- a/42sh/src/exec/set_exitstatus.c +++ b/42sh/src/exec/set_exitstatus.c @@ -12,11 +12,27 @@ #include "minishell.h" -void set_exitstatus(int status) +void set_exitstatus(int status, int override) { char *astatus; + int exitval; - astatus = ft_itoa(status); - builtin_setenv("setenv", (char*[3]){"?", astatus}, data_singleton()->env); + if (override) + exitval = status; + else + { + if (WIFEXITED(status)) + exitval = WEXITSTATUS(status); + else if (WIFSIGNALED(status)) + exitval = 128 + WTERMSIG(status); + else + { + DG("fail: process was not exited nor signaled."); + return ; + } + } + astatus = ft_itoa(exitval); + builtin_setenv("setenv", (char*[]){"setenv", "?", astatus, 0}, + data_singleton()->env); ft_strdel(&astatus); } diff --git a/42sh/src/job-control/job_getprocess.c b/42sh/src/job-control/job_getprocess.c index b5223287..a5d421c3 100644 --- a/42sh/src/job-control/job_getprocess.c +++ b/42sh/src/job-control/job_getprocess.c @@ -12,7 +12,7 @@ #include "job_control.h" -t_process *job_getprocess(pid_t pid) +t_list *job_getprocess(pid_t pid) { t_jobc *jobc; t_job *j; @@ -25,7 +25,7 @@ t_process *job_getprocess(pid_t pid) { j = jlist->content; if ((lst = ft_lst_find(j->first_process, &pid, &process_cmp_pid))) - return (lst->content); + return (lst); jlist = jlist->next; } return (NULL); diff --git a/42sh/src/job-control/job_remove.c b/42sh/src/job-control/job_remove.c index 6c779b89..9c94db11 100644 --- a/42sh/src/job-control/job_remove.c +++ b/42sh/src/job-control/job_remove.c @@ -14,11 +14,16 @@ void job_remove(int id) { - t_jobc *jobc; + t_jobc *jobc; + t_job *j; + t_process *p; jobc = &data_singleton()->jobc; + j = ft_lst_find(jobc->first_job, &id, job_cmp_id)->content; if (job_is_completed(id)) { + p = ft_lstlast(j->first_process)->content; + set_exitstatus(p->status, 0); if (id < data_singleton()->jobc.current_id) data_singleton()->jobc.current_id = id; ft_lst_delif(&jobc->first_job, &id, job_cmp_id, job_free); diff --git a/42sh/src/job-control/process_mark_status.c b/42sh/src/job-control/process_mark_status.c index 21cf949c..e071c53f 100644 --- a/42sh/src/job-control/process_mark_status.c +++ b/42sh/src/job-control/process_mark_status.c @@ -14,12 +14,14 @@ int process_mark_status(pid_t pid, int status) { + t_list *plist; t_process *p; if (pid > 1) { - if ((p = job_getprocess(pid))) + if ((plist = job_getprocess(pid))) { + p = plist->content; p->status = status; if (WIFSTOPPED(status)) { From da592565e080b2eb3f6cedf26a2927640b5af137 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Thu, 2 Feb 2017 01:20:51 +0100 Subject: [PATCH 58/67] cleaned up debug macros before merge --- 42sh/src/exec/process_setgroup.c | 4 ---- 42sh/src/job-control/job_format_head.c | 1 - 42sh/src/job-control/job_getrank.c | 2 -- 42sh/src/job-control/job_wait.c | 1 - 42sh/src/job-control/put_job_in_foreground.c | 3 --- 42sh/src/main/main.c | 1 - 6 files changed, 12 deletions(-) diff --git a/42sh/src/exec/process_setgroup.c b/42sh/src/exec/process_setgroup.c index e9db1959..186ed6d9 100644 --- a/42sh/src/exec/process_setgroup.c +++ b/42sh/src/exec/process_setgroup.c @@ -23,12 +23,8 @@ int process_setgroup(t_process *p, pid_t pid) j = &data_singleton()->exec.job; if (!j->pgid) j->pgid = pid ? pid : getpid(); - DG("pid:%i gonna setpgid(%i, %i)", getpid(), pid, j->pgid); setpgid(pid, j->pgid); if (pid == 0 && JOB_IS_FG(j->attributes)) - { - DG("pid:%i gonna setpgrp(%i)", getpid(), j->pgid); tcsetpgrp(STDIN, j->pgid); - } return (0); } diff --git a/42sh/src/job-control/job_format_head.c b/42sh/src/job-control/job_format_head.c index e463a269..c7b8854f 100644 --- a/42sh/src/job-control/job_format_head.c +++ b/42sh/src/job-control/job_format_head.c @@ -18,7 +18,6 @@ void job_format_head(t_job *j) int rank[2]; job_getrank(&rank); - DG("rank[0]=%i,rank[1]=%i", rank[0], rank[1]); if (j->id == rank[0]) crank = '+'; else if (j->id == rank[1]) diff --git a/42sh/src/job-control/job_getrank.c b/42sh/src/job-control/job_getrank.c index aadd7745..f07263e0 100644 --- a/42sh/src/job-control/job_getrank.c +++ b/42sh/src/job-control/job_getrank.c @@ -24,11 +24,9 @@ void job_getrank(int (*rank)[2]) jlist = jobc->first_job; (*rank)[0] = 0; (*rank)[1] = 0; - DG("check 1"); while (jlist && i < 2) { job = jlist->content; - DG("check 2: id=%i", job->id); if (job_is_stopped(job->id)) (*rank)[i++] = job->id; jlist = jlist->next; diff --git a/42sh/src/job-control/job_wait.c b/42sh/src/job-control/job_wait.c index 4bfb6b60..62f5ebef 100644 --- a/42sh/src/job-control/job_wait.c +++ b/42sh/src/job-control/job_wait.c @@ -17,7 +17,6 @@ int job_wait(int id) pid_t pid; int status; - DG("waiting for [%i]", id); if (job_is_stopped(id)) return (0); job_update_status(); diff --git a/42sh/src/job-control/put_job_in_foreground.c b/42sh/src/job-control/put_job_in_foreground.c index 0f462a1a..187ca02f 100644 --- a/42sh/src/job-control/put_job_in_foreground.c +++ b/42sh/src/job-control/put_job_in_foreground.c @@ -17,7 +17,6 @@ int put_job_in_foreground(t_job *j, int cont) t_jobc *jobc; jobc = &data_singleton()->jobc; - DG("pid:%i gonna setpgrp(%i) (JOB)", getpid(), j->pgid); tcsetpgrp(STDIN, j->pgid); tcsetattr(STDIN, TCSADRAIN, &jobc->shell_tmodes); @@ -28,10 +27,8 @@ int put_job_in_foreground(t_job *j, int cont) DG("kill(SIGCONT) failed"); } job_wait(j->id); - DG("finished waiting for [%i]", j->id); job_remove(j->id); - DG("pid:%i gonna setpgrp(%i) (SHELL)", getpid(), jobc->shell_pgid); tcsetpgrp(STDIN, jobc->shell_pgid); tcgetattr(STDIN, &j->tmodes); diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index a575c718..6731ea08 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -28,7 +28,6 @@ int shell_single_command(char *command) return (0); if (ft_post_tokenize(&token, command)) return (1); - DG("after post_tokenize"); token_print(token); if (ft_parse(&ast, &token)) return (1); From b576eddd03e89aac09706bb3027def887641492d Mon Sep 17 00:00:00 2001 From: Gautier WOJDA Date: Thu, 2 Feb 2017 11:13:02 +0100 Subject: [PATCH 59/67] correction de leaks --- 42sh/Makefile | 2 +- 42sh/src/line-editing/check_backslash.c | 4 ++-- 42sh/src/line-editing/get_touch.c | 7 ++----- 42sh/src/line-editing/print_and_del.c | 4 ++-- 42sh/src/line-editing/readline.c | 4 ++-- 42sh/src/line-editing/toolz_parseur.c | 2 +- 6 files changed, 10 insertions(+), 13 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index b20dd88f..15ff6d83 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -13,7 +13,7 @@ NAME = 42sh CC = gcc -FLAGS = -Wall -Wextra -Werror +FLAGS = -Wall -Wextra -Werror -g D_FLAGS = -g DELTA = $$(echo "$$(tput cols)-47"|bc) diff --git a/42sh/src/line-editing/check_backslash.c b/42sh/src/line-editing/check_backslash.c index fa91a8ab..14e0fe22 100644 --- a/42sh/src/line-editing/check_backslash.c +++ b/42sh/src/line-editing/check_backslash.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/26 13:32:52 by gwojda #+# #+# */ -/* Updated: 2017/01/26 13:50:00 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 11:11:11 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ void ft_check_backslash(char **str) char *tmp1; char *tmp2; - if (!*str) + if (!*str || !**str) return ; if ((*str)[ft_strlen(*str) - 1] == '\\') { diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index 6668421f..eec81a25 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/02/01 16:50:57 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 10:38:58 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -112,11 +112,8 @@ char *ft_lecture(t_list_history *head) else if (ft_lecture_3(ret, &str, &i)) continue ; else if (ret == 10) - break ; + return (str); else if (ft_isascii(ret) == 0) ft_read_it(ret, &i, &str); } - if (str) - ft_putstr(str + i); - return (str); } diff --git a/42sh/src/line-editing/print_and_del.c b/42sh/src/line-editing/print_and_del.c index be81a660..e4100b9b 100644 --- a/42sh/src/line-editing/print_and_del.c +++ b/42sh/src/line-editing/print_and_del.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:02:43 by gwojda #+# #+# */ -/* Updated: 2017/02/01 15:25:19 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 11:12:29 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -49,7 +49,7 @@ void ft_suppr_2(char **str, size_t *i, size_t tmp) ft_putnc('\b', *i - tmp); (*i) = tmp; if (ft_strlen(*str) == 0) - *str = NULL; + ft_strdel(str); } void ft_suppr(char **str, size_t *i) diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 09a58998..b5be9b33 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/01/26 13:38:29 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 10:41:26 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -70,7 +70,7 @@ int ft_readline(void) if (tcsetattr(0, TCSANOW, ft_stats_term_termcaps()) == -1) return (-1); if (data_singleton()->line.input) - data_singleton()->line.input = NULL; + ft_strdel(&data_singleton()->line.input); ft_prompt(); data_singleton()->line.input = ft_lecture(data_singleton()->line.list_beg); ft_putchar('\n'); diff --git a/42sh/src/line-editing/toolz_parseur.c b/42sh/src/line-editing/toolz_parseur.c index 557027b3..50f2c532 100644 --- a/42sh/src/line-editing/toolz_parseur.c +++ b/42sh/src/line-editing/toolz_parseur.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/16 16:14:46 by gwojda #+# #+# */ -/* Updated: 2017/01/25 11:51:30 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 11:01:10 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ From 1a724c6d6d57c3006ebcea4d2435525c7d3319a4 Mon Sep 17 00:00:00 2001 From: gwojda Date: Thu, 2 Feb 2017 11:15:02 +0100 Subject: [PATCH 60/67] correction de leaks --- 42sh/objs/builtin/bt_read_get.d | 7 +++++++ 42sh/objs/builtin/bt_read_get.o | Bin 0 -> 4032 bytes 42sh/objs/builtin/bt_read_parse.d | 7 +++++++ 42sh/objs/builtin/bt_read_parse.o | Bin 0 -> 5484 bytes 42sh/objs/builtin/bt_read_term.d | 7 +++++++ 42sh/objs/builtin/bt_read_term.o | Bin 0 -> 5028 bytes 42sh/objs/builtin/builtin_cd.d | 7 +++++++ 42sh/objs/builtin/builtin_cd.o | Bin 0 -> 4996 bytes 42sh/objs/builtin/builtin_echo.d | 7 +++++++ 42sh/objs/builtin/builtin_echo.o | Bin 0 -> 2684 bytes 42sh/objs/builtin/builtin_env.d | 7 +++++++ 42sh/objs/builtin/builtin_env.o | Bin 0 -> 2356 bytes 42sh/objs/builtin/builtin_exit.d | 7 +++++++ 42sh/objs/builtin/builtin_exit.o | Bin 0 -> 4544 bytes 42sh/objs/builtin/builtin_read.d | 7 +++++++ 42sh/objs/builtin/builtin_read.o | Bin 0 -> 6604 bytes 42sh/objs/builtin/builtin_setenv.d | 7 +++++++ 42sh/objs/builtin/builtin_setenv.o | Bin 0 -> 3304 bytes 42sh/objs/builtin/builtin_unsetenv.d | 7 +++++++ 42sh/objs/builtin/builtin_unsetenv.o | Bin 0 -> 2808 bytes 42sh/objs/builtin/is_builtin.d | 6 ++++++ 42sh/objs/builtin/is_builtin.o | Bin 0 -> 4660 bytes 42sh/objs/exec/ast_free.d | 7 +++++++ 42sh/objs/exec/ast_free.o | Bin 0 -> 3900 bytes 42sh/objs/exec/exec_ampersand.d | 7 +++++++ 42sh/objs/exec/exec_ampersand.o | Bin 0 -> 3124 bytes 42sh/objs/exec/exec_and_if.d | 7 +++++++ 42sh/objs/exec/exec_and_if.o | Bin 0 -> 7112 bytes 42sh/objs/exec/exec_command.d | 7 +++++++ 42sh/objs/exec/exec_command.o | Bin 0 -> 6752 bytes 42sh/objs/exec/exec_dgreat.d | 7 +++++++ 42sh/objs/exec/exec_dgreat.o | Bin 0 -> 4056 bytes 42sh/objs/exec/exec_great.d | 7 +++++++ 42sh/objs/exec/exec_great.o | Bin 0 -> 4052 bytes 42sh/objs/exec/exec_less.d | 7 +++++++ 42sh/objs/exec/exec_less.o | Bin 0 -> 4040 bytes 42sh/objs/exec/exec_or_if.d | 7 +++++++ 42sh/objs/exec/exec_or_if.o | Bin 0 -> 7100 bytes 42sh/objs/exec/exec_pipe.d | 7 +++++++ 42sh/objs/exec/exec_pipe.o | Bin 0 -> 6740 bytes 42sh/objs/exec/exec_semi.d | 7 +++++++ 42sh/objs/exec/exec_semi.o | Bin 0 -> 2920 bytes 42sh/objs/exec/ft_exec.d | 6 ++++++ 42sh/objs/exec/ft_exec.o | Bin 0 -> 4884 bytes 42sh/objs/exec/ft_findexec.d | 6 ++++++ 42sh/objs/exec/ft_findexec.o | Bin 0 -> 4740 bytes 42sh/objs/exec/launch_process.d | 7 +++++++ 42sh/objs/exec/launch_process.o | Bin 0 -> 5908 bytes 42sh/objs/exec/process_redirect.d | 7 +++++++ 42sh/objs/exec/process_redirect.o | Bin 0 -> 3424 bytes 42sh/objs/exec/process_reset.d | 7 +++++++ 42sh/objs/exec/process_reset.o | Bin 0 -> 5396 bytes 42sh/objs/exec/process_setexec.d | 7 +++++++ 42sh/objs/exec/process_setexec.o | Bin 0 -> 4152 bytes 42sh/objs/exec/process_setgroup.d | 7 +++++++ 42sh/objs/exec/process_setgroup.o | Bin 0 -> 4672 bytes 42sh/objs/exec/process_setsig.d | 7 +++++++ 42sh/objs/exec/process_setsig.o | Bin 0 -> 2392 bytes 42sh/objs/exec/set_exitstatus.d | 7 +++++++ 42sh/objs/exec/set_exitstatus.o | Bin 0 -> 3324 bytes 42sh/objs/glob/dir_glob.d | 6 ++++++ 42sh/objs/glob/dir_glob.o | Bin 0 -> 8296 bytes 42sh/objs/glob/expand_brace.d | 6 ++++++ 42sh/objs/glob/expand_brace.o | Bin 0 -> 8012 bytes 42sh/objs/glob/expand_esc.d | 6 ++++++ 42sh/objs/glob/expand_esc.o | Bin 0 -> 4616 bytes 42sh/objs/glob/ft_strsplit_esc.d | 6 ++++++ 42sh/objs/glob/ft_strsplit_esc.o | Bin 0 -> 5012 bytes 42sh/objs/glob/ft_strsplit_spe.d | 6 ++++++ 42sh/objs/glob/ft_strsplit_spe.o | Bin 0 -> 4984 bytes 42sh/objs/glob/glob.d | 6 ++++++ 42sh/objs/glob/glob.o | Bin 0 -> 4116 bytes 42sh/objs/glob/is_char_esc.d | 6 ++++++ 42sh/objs/glob/is_char_esc.o | Bin 0 -> 2588 bytes 42sh/objs/glob/lib_perso/ft_ld_back.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_back.o | Bin 0 -> 2504 bytes 42sh/objs/glob/lib_perso/ft_ld_clear.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_clear.o | Bin 0 -> 2672 bytes 42sh/objs/glob/lib_perso/ft_ld_del.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_del.o | Bin 0 -> 2880 bytes 42sh/objs/glob/lib_perso/ft_ld_front.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_front.o | Bin 0 -> 2504 bytes 42sh/objs/glob/lib_perso/ft_ld_new.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_new.o | Bin 0 -> 2628 bytes 42sh/objs/glob/lib_perso/ft_ld_order.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_order.o | Bin 0 -> 3136 bytes 42sh/objs/glob/lib_perso/ft_ld_pushback.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_pushback.o | Bin 0 -> 2832 bytes 42sh/objs/glob/lib_perso/ft_ld_pushfront.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_pushfront.o | Bin 0 -> 2868 bytes 42sh/objs/glob/lib_perso/ft_ld_reverse.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_reverse.o | Bin 0 -> 2732 bytes 42sh/objs/glob/lib_perso/ft_ld_size.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_size.o | Bin 0 -> 2832 bytes 42sh/objs/glob/lib_perso/ft_ld_swap.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_swap.o | Bin 0 -> 2780 bytes 42sh/objs/glob/lib_perso/ft_ld_to_tab.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_ld_to_tab.o | Bin 0 -> 2996 bytes 42sh/objs/glob/lib_perso/ft_strjoinf.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_strjoinf.o | Bin 0 -> 2600 bytes 42sh/objs/glob/lib_perso/ft_tabdel.d | 7 +++++++ 42sh/objs/glob/lib_perso/ft_tabdel.o | Bin 0 -> 2608 bytes 42sh/objs/glob/lib_perso/ft_tablen.d | 4 ++++ 42sh/objs/glob/lib_perso/ft_tablen.o | Bin 0 -> 2448 bytes 42sh/objs/glob/match_pattern.d | 6 ++++++ 42sh/objs/glob/match_pattern.o | Bin 0 -> 6928 bytes 42sh/objs/job-control/builtin_bg.d | 7 +++++++ 42sh/objs/job-control/builtin_bg.o | Bin 0 -> 4860 bytes 42sh/objs/job-control/builtin_fg.d | 7 +++++++ 42sh/objs/job-control/builtin_fg.o | Bin 0 -> 4868 bytes 42sh/objs/job-control/builtin_jobs.d | 7 +++++++ 42sh/objs/job-control/builtin_jobs.o | Bin 0 -> 6616 bytes 42sh/objs/job-control/do_job_notification.d | 7 +++++++ 42sh/objs/job-control/do_job_notification.o | Bin 0 -> 4632 bytes 42sh/objs/job-control/job_addprocess.d | 7 +++++++ 42sh/objs/job-control/job_addprocess.o | Bin 0 -> 5080 bytes 42sh/objs/job-control/job_cmp_id.d | 7 +++++++ 42sh/objs/job-control/job_cmp_id.o | Bin 0 -> 3768 bytes 42sh/objs/job-control/job_format.d | 7 +++++++ 42sh/objs/job-control/job_format.o | Bin 0 -> 3992 bytes 42sh/objs/job-control/job_format_head.d | 7 +++++++ 42sh/objs/job-control/job_format_head.o | Bin 0 -> 4356 bytes 42sh/objs/job-control/job_free.d | 7 +++++++ 42sh/objs/job-control/job_free.o | Bin 0 -> 3932 bytes 42sh/objs/job-control/job_getprocess.d | 7 +++++++ 42sh/objs/job-control/job_getprocess.o | Bin 0 -> 4356 bytes 42sh/objs/job-control/job_getrank.d | 7 +++++++ 42sh/objs/job-control/job_getrank.o | Bin 0 -> 4396 bytes 42sh/objs/job-control/job_is_completed.d | 7 +++++++ 42sh/objs/job-control/job_is_completed.o | Bin 0 -> 4832 bytes 42sh/objs/job-control/job_is_stopped.d | 7 +++++++ 42sh/objs/job-control/job_is_stopped.o | Bin 0 -> 4828 bytes 42sh/objs/job-control/job_kill_all.d | 7 +++++++ 42sh/objs/job-control/job_kill_all.o | Bin 0 -> 4188 bytes 42sh/objs/job-control/job_notify_change.d | 7 +++++++ 42sh/objs/job-control/job_notify_change.o | Bin 0 -> 4252 bytes 42sh/objs/job-control/job_notify_new.d | 7 +++++++ 42sh/objs/job-control/job_notify_new.o | Bin 0 -> 4600 bytes 42sh/objs/job-control/job_remove.d | 7 +++++++ 42sh/objs/job-control/job_remove.o | Bin 0 -> 5048 bytes 42sh/objs/job-control/job_run.d | 7 +++++++ 42sh/objs/job-control/job_run.o | Bin 0 -> 4028 bytes 42sh/objs/job-control/job_update_id.d | 7 +++++++ 42sh/objs/job-control/job_update_id.o | Bin 0 -> 3964 bytes 42sh/objs/job-control/job_update_status.d | 7 +++++++ 42sh/objs/job-control/job_update_status.o | Bin 0 -> 2740 bytes 42sh/objs/job-control/job_wait.d | 7 +++++++ 42sh/objs/job-control/job_wait.o | Bin 0 -> 3016 bytes 42sh/objs/job-control/mark_job_as_running.d | 7 +++++++ 42sh/objs/job-control/mark_job_as_running.o | Bin 0 -> 4464 bytes 42sh/objs/job-control/process_cmp_pid.d | 7 +++++++ 42sh/objs/job-control/process_cmp_pid.o | Bin 0 -> 3184 bytes 42sh/objs/job-control/process_format.d | 7 +++++++ 42sh/objs/job-control/process_format.o | Bin 0 -> 6332 bytes 42sh/objs/job-control/process_free.d | 7 +++++++ 42sh/objs/job-control/process_free.o | Bin 0 -> 3552 bytes 42sh/objs/job-control/process_mark_status.d | 7 +++++++ 42sh/objs/job-control/process_mark_status.o | Bin 0 -> 4256 bytes 42sh/objs/job-control/put_job_in_background.d | 7 +++++++ 42sh/objs/job-control/put_job_in_background.o | Bin 0 -> 4220 bytes 42sh/objs/job-control/put_job_in_foreground.d | 7 +++++++ 42sh/objs/job-control/put_job_in_foreground.o | Bin 0 -> 4964 bytes 42sh/objs/job-control/sigchld_handler.d | 7 +++++++ 42sh/objs/job-control/sigchld_handler.o | Bin 0 -> 5468 bytes 42sh/objs/job-control/sigint_handler.d | 7 +++++++ 42sh/objs/job-control/sigint_handler.o | Bin 0 -> 2600 bytes 42sh/objs/job-control/sigtstp_handler.d | 7 +++++++ 42sh/objs/job-control/sigtstp_handler.o | Bin 0 -> 4136 bytes 42sh/objs/job-control/sigttin_handler.d | 7 +++++++ 42sh/objs/job-control/sigttin_handler.o | Bin 0 -> 2664 bytes 42sh/objs/job-control/sigttou_handler.d | 7 +++++++ 42sh/objs/job-control/sigttou_handler.o | Bin 0 -> 2680 bytes 42sh/objs/lexer/command_getoutput.d | 7 +++++++ 42sh/objs/lexer/command_getoutput.o | Bin 0 -> 6672 bytes 42sh/objs/lexer/ft_post_tokenize.d | 7 +++++++ 42sh/objs/lexer/ft_post_tokenize.o | Bin 0 -> 3412 bytes 42sh/objs/lexer/ft_tokenize.d | 6 ++++++ 42sh/objs/lexer/ft_tokenize.o | Bin 0 -> 4996 bytes 42sh/objs/lexer/get_lexer_state.d | 7 +++++++ 42sh/objs/lexer/get_lexer_state.o | Bin 0 -> 3096 bytes 42sh/objs/lexer/lexer_backslash.d | 7 +++++++ 42sh/objs/lexer/lexer_backslash.o | Bin 0 -> 3620 bytes 42sh/objs/lexer/lexer_default.d | 6 ++++++ 42sh/objs/lexer/lexer_default.o | Bin 0 -> 4080 bytes 42sh/objs/lexer/lexer_delim.d | 6 ++++++ 42sh/objs/lexer/lexer_delim.o | Bin 0 -> 3680 bytes 42sh/objs/lexer/lexer_dquote.d | 6 ++++++ 42sh/objs/lexer/lexer_dquote.o | Bin 0 -> 3820 bytes 42sh/objs/lexer/lexer_great.d | 6 ++++++ 42sh/objs/lexer/lexer_great.o | Bin 0 -> 3960 bytes 42sh/objs/lexer/lexer_greatand.d | 6 ++++++ 42sh/objs/lexer/lexer_greatand.o | Bin 0 -> 3864 bytes 42sh/objs/lexer/lexer_less.d | 6 ++++++ 42sh/objs/lexer/lexer_less.o | Bin 0 -> 3956 bytes 42sh/objs/lexer/lexer_lessand.d | 6 ++++++ 42sh/objs/lexer/lexer_lessand.o | Bin 0 -> 3864 bytes 42sh/objs/lexer/lexer_number.d | 6 ++++++ 42sh/objs/lexer/lexer_number.o | Bin 0 -> 4064 bytes 42sh/objs/lexer/lexer_quote.d | 6 ++++++ 42sh/objs/lexer/lexer_quote.o | Bin 0 -> 3696 bytes 42sh/objs/lexer/lexer_sep.d | 6 ++++++ 42sh/objs/lexer/lexer_sep.o | Bin 0 -> 4088 bytes 42sh/objs/lexer/lexer_special.d | 6 ++++++ 42sh/objs/lexer/lexer_special.o | Bin 0 -> 4000 bytes 42sh/objs/lexer/lexer_var.d | 6 ++++++ 42sh/objs/lexer/lexer_var.o | Bin 0 -> 4028 bytes 42sh/objs/lexer/lexer_word.d | 6 ++++++ 42sh/objs/lexer/lexer_word.o | Bin 0 -> 4004 bytes 42sh/objs/lexer/reduce_bquotes.d | 6 ++++++ 42sh/objs/lexer/reduce_bquotes.o | Bin 0 -> 4480 bytes 42sh/objs/lexer/reduce_parens.d | 6 ++++++ 42sh/objs/lexer/reduce_parens.o | Bin 0 -> 4068 bytes 42sh/objs/lexer/token_append.d | 6 ++++++ 42sh/objs/lexer/token_append.o | Bin 0 -> 3372 bytes 42sh/objs/lexer/token_cmp_type.d | 6 ++++++ 42sh/objs/lexer/token_cmp_type.o | Bin 0 -> 2756 bytes 42sh/objs/lexer/token_expand_var.d | 7 +++++++ 42sh/objs/lexer/token_expand_var.o | Bin 0 -> 3128 bytes 42sh/objs/lexer/token_free.d | 6 ++++++ 42sh/objs/lexer/token_free.o | Bin 0 -> 3172 bytes 42sh/objs/lexer/token_init.d | 6 ++++++ 42sh/objs/lexer/token_init.o | Bin 0 -> 2924 bytes 42sh/objs/lexer/token_print.d | 6 ++++++ 42sh/objs/lexer/token_print.o | Bin 0 -> 3640 bytes 42sh/objs/line-editing/builtin_history.d | 7 +++++++ 42sh/objs/line-editing/builtin_history.o | Bin 0 -> 3540 bytes 42sh/objs/line-editing/check_backslash.d | 7 +++++++ 42sh/objs/line-editing/check_backslash.o | Bin 0 -> 3052 bytes 42sh/objs/line-editing/copy_cut_paste.d | 7 +++++++ 42sh/objs/line-editing/copy_cut_paste.o | Bin 0 -> 5508 bytes 42sh/objs/line-editing/ft_split_whitespaces.d | 7 +++++++ 42sh/objs/line-editing/ft_split_whitespaces.o | Bin 0 -> 4208 bytes 42sh/objs/line-editing/get_touch.d | 7 +++++++ 42sh/objs/line-editing/get_touch.o | Bin 0 -> 6440 bytes 42sh/objs/line-editing/get_touch_toolz.d | 7 +++++++ 42sh/objs/line-editing/get_touch_toolz.o | Bin 0 -> 4640 bytes 42sh/objs/line-editing/get_touch_toolz_2.d | 7 +++++++ 42sh/objs/line-editing/get_touch_toolz_2.o | Bin 0 -> 5660 bytes 42sh/objs/line-editing/heredoc.d | 7 +++++++ 42sh/objs/line-editing/heredoc.o | Bin 0 -> 4584 bytes 42sh/objs/line-editing/history_parsing.d | 7 +++++++ 42sh/objs/line-editing/history_parsing.o | Bin 0 -> 5784 bytes 42sh/objs/line-editing/history_parsing_toolz.d | 7 +++++++ 42sh/objs/line-editing/history_parsing_toolz.o | Bin 0 -> 5724 bytes 42sh/objs/line-editing/history_parsing_toolz_2.d | 7 +++++++ 42sh/objs/line-editing/history_parsing_toolz_2.o | Bin 0 -> 4400 bytes 42sh/objs/line-editing/list_toolz.d | 7 +++++++ 42sh/objs/line-editing/list_toolz.o | Bin 0 -> 4124 bytes 42sh/objs/line-editing/move_to_line.d | 7 +++++++ 42sh/objs/line-editing/move_to_line.o | Bin 0 -> 5616 bytes 42sh/objs/line-editing/print_and_del.d | 7 +++++++ 42sh/objs/line-editing/print_and_del.o | Bin 0 -> 5884 bytes 42sh/objs/line-editing/prompt.d | 7 +++++++ 42sh/objs/line-editing/prompt.o | Bin 0 -> 4772 bytes 42sh/objs/line-editing/quotes_gest.d | 7 +++++++ 42sh/objs/line-editing/quotes_gest.o | Bin 0 -> 4924 bytes 42sh/objs/line-editing/reader.d | 7 +++++++ 42sh/objs/line-editing/reader.o | Bin 0 -> 5452 bytes 42sh/objs/line-editing/readline.d | 7 +++++++ 42sh/objs/line-editing/readline.o | Bin 0 -> 6276 bytes 42sh/objs/line-editing/surch_in_history.d | 7 +++++++ 42sh/objs/line-editing/surch_in_history.o | Bin 0 -> 5156 bytes 42sh/objs/line-editing/tool_line.d | 7 +++++++ 42sh/objs/line-editing/tool_line.o | Bin 0 -> 4808 bytes 42sh/objs/line-editing/tool_line_2.d | 7 +++++++ 42sh/objs/line-editing/tool_line_2.o | Bin 0 -> 5984 bytes 42sh/objs/line-editing/toolz.d | 6 ++++++ 42sh/objs/line-editing/toolz.o | Bin 0 -> 4684 bytes 42sh/objs/line-editing/toolz2.d | 7 +++++++ 42sh/objs/line-editing/toolz2.o | Bin 0 -> 3776 bytes 42sh/objs/line-editing/toolz_parseur.d | 7 +++++++ 42sh/objs/line-editing/toolz_parseur.o | Bin 0 -> 6952 bytes 42sh/objs/line-editing/toolz_termcaps.d | 7 +++++++ 42sh/objs/line-editing/toolz_termcaps.o | Bin 0 -> 3688 bytes 42sh/objs/main/data_exit.d | 6 ++++++ 42sh/objs/main/data_exit.o | Bin 0 -> 5448 bytes 42sh/objs/main/data_init.d | 6 ++++++ 42sh/objs/main/data_init.o | Bin 0 -> 6132 bytes 42sh/objs/main/data_singleton.d | 7 +++++++ 42sh/objs/main/data_singleton.o | Bin 0 -> 5644 bytes 42sh/objs/main/ft_cleanup.d | 6 ++++++ 42sh/objs/main/ft_cleanup.o | Bin 0 -> 3584 bytes 42sh/objs/main/ft_putast.d | 6 ++++++ 42sh/objs/main/ft_putast.o | Bin 0 -> 4096 bytes 42sh/objs/main/ft_putast2.d | 6 ++++++ 42sh/objs/main/ft_putast2.o | Bin 0 -> 4580 bytes 42sh/objs/main/lib_expansion.d | 6 ++++++ 42sh/objs/main/lib_expansion.o | Bin 0 -> 2608 bytes 42sh/objs/main/main.d | 6 ++++++ 42sh/objs/main/main.o | Bin 0 -> 5124 bytes 42sh/objs/main/shell_exit.d | 6 ++++++ 42sh/objs/main/shell_exit.o | Bin 0 -> 2628 bytes 42sh/objs/main/shell_get_avdata.d | 7 +++++++ 42sh/objs/main/shell_get_avdata.o | Bin 0 -> 5744 bytes 42sh/objs/main/shell_get_opts.d | 7 +++++++ 42sh/objs/main/shell_get_opts.o | Bin 0 -> 3640 bytes 42sh/objs/main/shell_init.d | 6 ++++++ 42sh/objs/main/shell_init.o | Bin 0 -> 3856 bytes 42sh/objs/main/sig_handler.d | 6 ++++++ 42sh/objs/main/sig_handler.o | Bin 0 -> 2908 bytes 42sh/objs/parser/ft_parse.d | 6 ++++++ 42sh/objs/parser/ft_parse.o | Bin 0 -> 5440 bytes 42sh/objs/parser/parse_dgreat.d | 6 ++++++ 42sh/objs/parser/parse_dgreat.o | Bin 0 -> 4876 bytes 42sh/objs/parser/parse_dless.d | 6 ++++++ 42sh/objs/parser/parse_dless.o | Bin 0 -> 4788 bytes 42sh/objs/parser/parse_great.d | 6 ++++++ 42sh/objs/parser/parse_great.o | Bin 0 -> 4872 bytes 42sh/objs/parser/parse_greatand.d | 7 +++++++ 42sh/objs/parser/parse_greatand.o | Bin 0 -> 4768 bytes 42sh/objs/parser/parse_less.d | 6 ++++++ 42sh/objs/parser/parse_less.o | Bin 0 -> 4860 bytes 42sh/objs/parser/parse_lessand.d | 6 ++++++ 42sh/objs/parser/parse_lessand.o | Bin 0 -> 4768 bytes 42sh/objs/parser/parse_separator.d | 7 +++++++ 42sh/objs/parser/parse_separator.o | Bin 0 -> 4548 bytes 42sh/objs/parser/parse_subshell.d | 7 +++++++ 42sh/objs/parser/parse_subshell.o | Bin 0 -> 4896 bytes 42sh/objs/parser/parse_word.d | 6 ++++++ 42sh/objs/parser/parse_word.o | Bin 0 -> 4688 bytes 320 files changed, 1067 insertions(+) create mode 100644 42sh/objs/builtin/bt_read_get.d create mode 100644 42sh/objs/builtin/bt_read_get.o create mode 100644 42sh/objs/builtin/bt_read_parse.d create mode 100644 42sh/objs/builtin/bt_read_parse.o create mode 100644 42sh/objs/builtin/bt_read_term.d create mode 100644 42sh/objs/builtin/bt_read_term.o create mode 100644 42sh/objs/builtin/builtin_cd.d create mode 100644 42sh/objs/builtin/builtin_cd.o create mode 100644 42sh/objs/builtin/builtin_echo.d create mode 100644 42sh/objs/builtin/builtin_echo.o create mode 100644 42sh/objs/builtin/builtin_env.d create mode 100644 42sh/objs/builtin/builtin_env.o create mode 100644 42sh/objs/builtin/builtin_exit.d create mode 100644 42sh/objs/builtin/builtin_exit.o create mode 100644 42sh/objs/builtin/builtin_read.d create mode 100644 42sh/objs/builtin/builtin_read.o create mode 100644 42sh/objs/builtin/builtin_setenv.d create mode 100644 42sh/objs/builtin/builtin_setenv.o create mode 100644 42sh/objs/builtin/builtin_unsetenv.d create mode 100644 42sh/objs/builtin/builtin_unsetenv.o create mode 100644 42sh/objs/builtin/is_builtin.d create mode 100644 42sh/objs/builtin/is_builtin.o create mode 100644 42sh/objs/exec/ast_free.d create mode 100644 42sh/objs/exec/ast_free.o create mode 100644 42sh/objs/exec/exec_ampersand.d create mode 100644 42sh/objs/exec/exec_ampersand.o create mode 100644 42sh/objs/exec/exec_and_if.d create mode 100644 42sh/objs/exec/exec_and_if.o create mode 100644 42sh/objs/exec/exec_command.d create mode 100644 42sh/objs/exec/exec_command.o create mode 100644 42sh/objs/exec/exec_dgreat.d create mode 100644 42sh/objs/exec/exec_dgreat.o create mode 100644 42sh/objs/exec/exec_great.d create mode 100644 42sh/objs/exec/exec_great.o create mode 100644 42sh/objs/exec/exec_less.d create mode 100644 42sh/objs/exec/exec_less.o create mode 100644 42sh/objs/exec/exec_or_if.d create mode 100644 42sh/objs/exec/exec_or_if.o create mode 100644 42sh/objs/exec/exec_pipe.d create mode 100644 42sh/objs/exec/exec_pipe.o create mode 100644 42sh/objs/exec/exec_semi.d create mode 100644 42sh/objs/exec/exec_semi.o create mode 100644 42sh/objs/exec/ft_exec.d create mode 100644 42sh/objs/exec/ft_exec.o create mode 100644 42sh/objs/exec/ft_findexec.d create mode 100644 42sh/objs/exec/ft_findexec.o create mode 100644 42sh/objs/exec/launch_process.d create mode 100644 42sh/objs/exec/launch_process.o create mode 100644 42sh/objs/exec/process_redirect.d create mode 100644 42sh/objs/exec/process_redirect.o create mode 100644 42sh/objs/exec/process_reset.d create mode 100644 42sh/objs/exec/process_reset.o create mode 100644 42sh/objs/exec/process_setexec.d create mode 100644 42sh/objs/exec/process_setexec.o create mode 100644 42sh/objs/exec/process_setgroup.d create mode 100644 42sh/objs/exec/process_setgroup.o create mode 100644 42sh/objs/exec/process_setsig.d create mode 100644 42sh/objs/exec/process_setsig.o create mode 100644 42sh/objs/exec/set_exitstatus.d create mode 100644 42sh/objs/exec/set_exitstatus.o create mode 100644 42sh/objs/glob/dir_glob.d create mode 100644 42sh/objs/glob/dir_glob.o create mode 100644 42sh/objs/glob/expand_brace.d create mode 100644 42sh/objs/glob/expand_brace.o create mode 100644 42sh/objs/glob/expand_esc.d create mode 100644 42sh/objs/glob/expand_esc.o create mode 100644 42sh/objs/glob/ft_strsplit_esc.d create mode 100644 42sh/objs/glob/ft_strsplit_esc.o create mode 100644 42sh/objs/glob/ft_strsplit_spe.d create mode 100644 42sh/objs/glob/ft_strsplit_spe.o create mode 100644 42sh/objs/glob/glob.d create mode 100644 42sh/objs/glob/glob.o create mode 100644 42sh/objs/glob/is_char_esc.d create mode 100644 42sh/objs/glob/is_char_esc.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_back.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_back.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_clear.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_clear.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_del.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_del.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_front.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_front.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_new.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_new.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_order.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_order.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_pushback.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_pushback.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_pushfront.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_pushfront.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_reverse.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_reverse.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_size.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_size.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_swap.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_swap.o create mode 100644 42sh/objs/glob/lib_perso/ft_ld_to_tab.d create mode 100644 42sh/objs/glob/lib_perso/ft_ld_to_tab.o create mode 100644 42sh/objs/glob/lib_perso/ft_strjoinf.d create mode 100644 42sh/objs/glob/lib_perso/ft_strjoinf.o create mode 100644 42sh/objs/glob/lib_perso/ft_tabdel.d create mode 100644 42sh/objs/glob/lib_perso/ft_tabdel.o create mode 100644 42sh/objs/glob/lib_perso/ft_tablen.d create mode 100644 42sh/objs/glob/lib_perso/ft_tablen.o create mode 100644 42sh/objs/glob/match_pattern.d create mode 100644 42sh/objs/glob/match_pattern.o create mode 100644 42sh/objs/job-control/builtin_bg.d create mode 100644 42sh/objs/job-control/builtin_bg.o create mode 100644 42sh/objs/job-control/builtin_fg.d create mode 100644 42sh/objs/job-control/builtin_fg.o create mode 100644 42sh/objs/job-control/builtin_jobs.d create mode 100644 42sh/objs/job-control/builtin_jobs.o create mode 100644 42sh/objs/job-control/do_job_notification.d create mode 100644 42sh/objs/job-control/do_job_notification.o create mode 100644 42sh/objs/job-control/job_addprocess.d create mode 100644 42sh/objs/job-control/job_addprocess.o create mode 100644 42sh/objs/job-control/job_cmp_id.d create mode 100644 42sh/objs/job-control/job_cmp_id.o create mode 100644 42sh/objs/job-control/job_format.d create mode 100644 42sh/objs/job-control/job_format.o create mode 100644 42sh/objs/job-control/job_format_head.d create mode 100644 42sh/objs/job-control/job_format_head.o create mode 100644 42sh/objs/job-control/job_free.d create mode 100644 42sh/objs/job-control/job_free.o create mode 100644 42sh/objs/job-control/job_getprocess.d create mode 100644 42sh/objs/job-control/job_getprocess.o create mode 100644 42sh/objs/job-control/job_getrank.d create mode 100644 42sh/objs/job-control/job_getrank.o create mode 100644 42sh/objs/job-control/job_is_completed.d create mode 100644 42sh/objs/job-control/job_is_completed.o create mode 100644 42sh/objs/job-control/job_is_stopped.d create mode 100644 42sh/objs/job-control/job_is_stopped.o create mode 100644 42sh/objs/job-control/job_kill_all.d create mode 100644 42sh/objs/job-control/job_kill_all.o create mode 100644 42sh/objs/job-control/job_notify_change.d create mode 100644 42sh/objs/job-control/job_notify_change.o create mode 100644 42sh/objs/job-control/job_notify_new.d create mode 100644 42sh/objs/job-control/job_notify_new.o create mode 100644 42sh/objs/job-control/job_remove.d create mode 100644 42sh/objs/job-control/job_remove.o create mode 100644 42sh/objs/job-control/job_run.d create mode 100644 42sh/objs/job-control/job_run.o create mode 100644 42sh/objs/job-control/job_update_id.d create mode 100644 42sh/objs/job-control/job_update_id.o create mode 100644 42sh/objs/job-control/job_update_status.d create mode 100644 42sh/objs/job-control/job_update_status.o create mode 100644 42sh/objs/job-control/job_wait.d create mode 100644 42sh/objs/job-control/job_wait.o create mode 100644 42sh/objs/job-control/mark_job_as_running.d create mode 100644 42sh/objs/job-control/mark_job_as_running.o create mode 100644 42sh/objs/job-control/process_cmp_pid.d create mode 100644 42sh/objs/job-control/process_cmp_pid.o create mode 100644 42sh/objs/job-control/process_format.d create mode 100644 42sh/objs/job-control/process_format.o create mode 100644 42sh/objs/job-control/process_free.d create mode 100644 42sh/objs/job-control/process_free.o create mode 100644 42sh/objs/job-control/process_mark_status.d create mode 100644 42sh/objs/job-control/process_mark_status.o create mode 100644 42sh/objs/job-control/put_job_in_background.d create mode 100644 42sh/objs/job-control/put_job_in_background.o create mode 100644 42sh/objs/job-control/put_job_in_foreground.d create mode 100644 42sh/objs/job-control/put_job_in_foreground.o create mode 100644 42sh/objs/job-control/sigchld_handler.d create mode 100644 42sh/objs/job-control/sigchld_handler.o create mode 100644 42sh/objs/job-control/sigint_handler.d create mode 100644 42sh/objs/job-control/sigint_handler.o create mode 100644 42sh/objs/job-control/sigtstp_handler.d create mode 100644 42sh/objs/job-control/sigtstp_handler.o create mode 100644 42sh/objs/job-control/sigttin_handler.d create mode 100644 42sh/objs/job-control/sigttin_handler.o create mode 100644 42sh/objs/job-control/sigttou_handler.d create mode 100644 42sh/objs/job-control/sigttou_handler.o create mode 100644 42sh/objs/lexer/command_getoutput.d create mode 100644 42sh/objs/lexer/command_getoutput.o create mode 100644 42sh/objs/lexer/ft_post_tokenize.d create mode 100644 42sh/objs/lexer/ft_post_tokenize.o create mode 100644 42sh/objs/lexer/ft_tokenize.d create mode 100644 42sh/objs/lexer/ft_tokenize.o create mode 100644 42sh/objs/lexer/get_lexer_state.d create mode 100644 42sh/objs/lexer/get_lexer_state.o create mode 100644 42sh/objs/lexer/lexer_backslash.d create mode 100644 42sh/objs/lexer/lexer_backslash.o create mode 100644 42sh/objs/lexer/lexer_default.d create mode 100644 42sh/objs/lexer/lexer_default.o create mode 100644 42sh/objs/lexer/lexer_delim.d create mode 100644 42sh/objs/lexer/lexer_delim.o create mode 100644 42sh/objs/lexer/lexer_dquote.d create mode 100644 42sh/objs/lexer/lexer_dquote.o create mode 100644 42sh/objs/lexer/lexer_great.d create mode 100644 42sh/objs/lexer/lexer_great.o create mode 100644 42sh/objs/lexer/lexer_greatand.d create mode 100644 42sh/objs/lexer/lexer_greatand.o create mode 100644 42sh/objs/lexer/lexer_less.d create mode 100644 42sh/objs/lexer/lexer_less.o create mode 100644 42sh/objs/lexer/lexer_lessand.d create mode 100644 42sh/objs/lexer/lexer_lessand.o create mode 100644 42sh/objs/lexer/lexer_number.d create mode 100644 42sh/objs/lexer/lexer_number.o create mode 100644 42sh/objs/lexer/lexer_quote.d create mode 100644 42sh/objs/lexer/lexer_quote.o create mode 100644 42sh/objs/lexer/lexer_sep.d create mode 100644 42sh/objs/lexer/lexer_sep.o create mode 100644 42sh/objs/lexer/lexer_special.d create mode 100644 42sh/objs/lexer/lexer_special.o create mode 100644 42sh/objs/lexer/lexer_var.d create mode 100644 42sh/objs/lexer/lexer_var.o create mode 100644 42sh/objs/lexer/lexer_word.d create mode 100644 42sh/objs/lexer/lexer_word.o create mode 100644 42sh/objs/lexer/reduce_bquotes.d create mode 100644 42sh/objs/lexer/reduce_bquotes.o create mode 100644 42sh/objs/lexer/reduce_parens.d create mode 100644 42sh/objs/lexer/reduce_parens.o create mode 100644 42sh/objs/lexer/token_append.d create mode 100644 42sh/objs/lexer/token_append.o create mode 100644 42sh/objs/lexer/token_cmp_type.d create mode 100644 42sh/objs/lexer/token_cmp_type.o create mode 100644 42sh/objs/lexer/token_expand_var.d create mode 100644 42sh/objs/lexer/token_expand_var.o create mode 100644 42sh/objs/lexer/token_free.d create mode 100644 42sh/objs/lexer/token_free.o create mode 100644 42sh/objs/lexer/token_init.d create mode 100644 42sh/objs/lexer/token_init.o create mode 100644 42sh/objs/lexer/token_print.d create mode 100644 42sh/objs/lexer/token_print.o create mode 100644 42sh/objs/line-editing/builtin_history.d create mode 100644 42sh/objs/line-editing/builtin_history.o create mode 100644 42sh/objs/line-editing/check_backslash.d create mode 100644 42sh/objs/line-editing/check_backslash.o create mode 100644 42sh/objs/line-editing/copy_cut_paste.d create mode 100644 42sh/objs/line-editing/copy_cut_paste.o create mode 100644 42sh/objs/line-editing/ft_split_whitespaces.d create mode 100644 42sh/objs/line-editing/ft_split_whitespaces.o create mode 100644 42sh/objs/line-editing/get_touch.d create mode 100644 42sh/objs/line-editing/get_touch.o create mode 100644 42sh/objs/line-editing/get_touch_toolz.d create mode 100644 42sh/objs/line-editing/get_touch_toolz.o create mode 100644 42sh/objs/line-editing/get_touch_toolz_2.d create mode 100644 42sh/objs/line-editing/get_touch_toolz_2.o create mode 100644 42sh/objs/line-editing/heredoc.d create mode 100644 42sh/objs/line-editing/heredoc.o create mode 100644 42sh/objs/line-editing/history_parsing.d create mode 100644 42sh/objs/line-editing/history_parsing.o create mode 100644 42sh/objs/line-editing/history_parsing_toolz.d create mode 100644 42sh/objs/line-editing/history_parsing_toolz.o create mode 100644 42sh/objs/line-editing/history_parsing_toolz_2.d create mode 100644 42sh/objs/line-editing/history_parsing_toolz_2.o create mode 100644 42sh/objs/line-editing/list_toolz.d create mode 100644 42sh/objs/line-editing/list_toolz.o create mode 100644 42sh/objs/line-editing/move_to_line.d create mode 100644 42sh/objs/line-editing/move_to_line.o create mode 100644 42sh/objs/line-editing/print_and_del.d create mode 100644 42sh/objs/line-editing/print_and_del.o create mode 100644 42sh/objs/line-editing/prompt.d create mode 100644 42sh/objs/line-editing/prompt.o create mode 100644 42sh/objs/line-editing/quotes_gest.d create mode 100644 42sh/objs/line-editing/quotes_gest.o create mode 100644 42sh/objs/line-editing/reader.d create mode 100644 42sh/objs/line-editing/reader.o create mode 100644 42sh/objs/line-editing/readline.d create mode 100644 42sh/objs/line-editing/readline.o create mode 100644 42sh/objs/line-editing/surch_in_history.d create mode 100644 42sh/objs/line-editing/surch_in_history.o create mode 100644 42sh/objs/line-editing/tool_line.d create mode 100644 42sh/objs/line-editing/tool_line.o create mode 100644 42sh/objs/line-editing/tool_line_2.d create mode 100644 42sh/objs/line-editing/tool_line_2.o create mode 100644 42sh/objs/line-editing/toolz.d create mode 100644 42sh/objs/line-editing/toolz.o create mode 100644 42sh/objs/line-editing/toolz2.d create mode 100644 42sh/objs/line-editing/toolz2.o create mode 100644 42sh/objs/line-editing/toolz_parseur.d create mode 100644 42sh/objs/line-editing/toolz_parseur.o create mode 100644 42sh/objs/line-editing/toolz_termcaps.d create mode 100644 42sh/objs/line-editing/toolz_termcaps.o create mode 100644 42sh/objs/main/data_exit.d create mode 100644 42sh/objs/main/data_exit.o create mode 100644 42sh/objs/main/data_init.d create mode 100644 42sh/objs/main/data_init.o create mode 100644 42sh/objs/main/data_singleton.d create mode 100644 42sh/objs/main/data_singleton.o create mode 100644 42sh/objs/main/ft_cleanup.d create mode 100644 42sh/objs/main/ft_cleanup.o create mode 100644 42sh/objs/main/ft_putast.d create mode 100644 42sh/objs/main/ft_putast.o create mode 100644 42sh/objs/main/ft_putast2.d create mode 100644 42sh/objs/main/ft_putast2.o create mode 100644 42sh/objs/main/lib_expansion.d create mode 100644 42sh/objs/main/lib_expansion.o create mode 100644 42sh/objs/main/main.d create mode 100644 42sh/objs/main/main.o create mode 100644 42sh/objs/main/shell_exit.d create mode 100644 42sh/objs/main/shell_exit.o create mode 100644 42sh/objs/main/shell_get_avdata.d create mode 100644 42sh/objs/main/shell_get_avdata.o create mode 100644 42sh/objs/main/shell_get_opts.d create mode 100644 42sh/objs/main/shell_get_opts.o create mode 100644 42sh/objs/main/shell_init.d create mode 100644 42sh/objs/main/shell_init.o create mode 100644 42sh/objs/main/sig_handler.d create mode 100644 42sh/objs/main/sig_handler.o create mode 100644 42sh/objs/parser/ft_parse.d create mode 100644 42sh/objs/parser/ft_parse.o create mode 100644 42sh/objs/parser/parse_dgreat.d create mode 100644 42sh/objs/parser/parse_dgreat.o create mode 100644 42sh/objs/parser/parse_dless.d create mode 100644 42sh/objs/parser/parse_dless.o create mode 100644 42sh/objs/parser/parse_great.d create mode 100644 42sh/objs/parser/parse_great.o create mode 100644 42sh/objs/parser/parse_greatand.d create mode 100644 42sh/objs/parser/parse_greatand.o create mode 100644 42sh/objs/parser/parse_less.d create mode 100644 42sh/objs/parser/parse_less.o create mode 100644 42sh/objs/parser/parse_lessand.d create mode 100644 42sh/objs/parser/parse_lessand.o create mode 100644 42sh/objs/parser/parse_separator.d create mode 100644 42sh/objs/parser/parse_separator.o create mode 100644 42sh/objs/parser/parse_subshell.d create mode 100644 42sh/objs/parser/parse_subshell.o create mode 100644 42sh/objs/parser/parse_word.d create mode 100644 42sh/objs/parser/parse_word.o diff --git a/42sh/objs/builtin/bt_read_get.d b/42sh/objs/builtin/bt_read_get.d new file mode 100644 index 00000000..84401d1b --- /dev/null +++ b/42sh/objs/builtin/bt_read_get.d @@ -0,0 +1,7 @@ +objs/builtin/bt_read_get.o: src/builtin/bt_read_get.c \ + includes/builtin_read.h includes/types.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/builtin.h includes/minishell.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/glob.h diff --git a/42sh/objs/builtin/bt_read_get.o b/42sh/objs/builtin/bt_read_get.o new file mode 100644 index 0000000000000000000000000000000000000000..f4536907dd8832c00ae735a9a7eb836faaaa3d4e GIT binary patch literal 4032 zcmb7HZ)_A*5P!SZy)M1$-IY=V3iO&oS`e;I2tm0)IYz=JO-m#PDrv23luVPRZGNP8=N9|5uyGbq zQJ{TZOFEviV~qSPyj&q}n%#ImFpeE#P;s?1C7wPoP)Z)8`fKyE@hXflTfA&ORiF?z z-lIHwfaOn|Uk2;vx8|5KzmlF$C(D!Z(yl%KV-6=eA*RF|(&J`|?)+>#dl_fO(~HGi zQp@W@l-{IzGo0U>oKJPe{4Bh}z@WLo?)>I)|1M*^vkeo4^2k-MBfp{^cjNWA@Gj00 z&p2G1vfllSca4*|HA_4kIup{J-v&MpcD>dA<`bIMx7ityVZ2c` zR)I(7_9FU^Q+KUjGNYwR*j+0?(`xSnmHYQQ#(Nn}Y~BN`13tq;Q;eVAY~Dn4*L#EU zzUH9eMr$yJ{J1A;@}qSLk&Dk-XnMH-T!lZCx)&E4B|yuz1MDQKm)P!g=ewE4dtxKk z*L)NkIa-a4RK{YbDr3(C@T{JESUqqd*e2+G?8L3mgvZgb8w9%MQ*s;G;vcyfJMnSo zz=c$>4LdX$FLsKs55XhYwrOU(1(WgqbN~l_VB@Eshln3!#&aNXm_|X zp2MZHx~CgTbluwMniZm4igyiEvN7)^ji>^Io1b3wm6$TS}*SfXk zj215**47G#TOygu4ml0^ct$Ukot9z=-D@~4Ms_G!sMMHJ36aekBB2|)u#ymEGZ#@P z8fBPLIXx|Mg?u_}K1^qGZkkW$ys})PL5S_6E z=6wMpsofRZUK87H#g1}}y#P}G>lEAJitVV0?J#5O-i4=9r=+k1-Y4)l58cyV{|Q95 zXPNpLE9&W#BYw3CjUYWM#pyIo%ZSo_*w8PU~{)2 z2f;+NVEQPQy6Lx}7VBPnqlg@uB;hcpl?ZZB(-dt5Js= z-Kw~@{yO+{A3N!LzAv?8_l4Y&kpJL2Z=boNH6DKP2-SN6{1W&a_(SkzF!crHOxs4^ z6A*0+nW!J;lfmj1GEw`miFS=lw2>T0%|s^ZFPwWK+Eg;puCmvEtwOzHS1H^gKHr2> zLt)ldT5{5R`B*f!8V*Szf4zE|3#B=)RIOdI?R%g=>zUGz`gS&WwEs5Vbn|`%A6fL{DM^0?8u659jlq)R zV~FojJXcB3FG9!n4xdH%nLq2I8M@T@(`kOIEQ=6xV7JHFIlwDHdbr-^?+I8D}18!csM Nx>3m1fZ~S*=wGVmZAbtB literal 0 HcmV?d00001 diff --git a/42sh/objs/builtin/bt_read_parse.d b/42sh/objs/builtin/bt_read_parse.d new file mode 100644 index 00000000..8974b3a4 --- /dev/null +++ b/42sh/objs/builtin/bt_read_parse.d @@ -0,0 +1,7 @@ +objs/builtin/bt_read_parse.o: src/builtin/bt_read_parse.c \ + includes/builtin_read.h includes/types.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/builtin.h includes/minishell.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/glob.h diff --git a/42sh/objs/builtin/bt_read_parse.o b/42sh/objs/builtin/bt_read_parse.o new file mode 100644 index 0000000000000000000000000000000000000000..06499fc08274ccd10a7c401e4fb6288407240e19 GIT binary patch literal 5484 zcmb7Ie{9po6~FJ-zONnIu?-=RDh1pImmecefJ|d7SxL*6ehGX&xma4vozCmE1%c)PxH`!sL$Cdm;L!Xsavt75F02JGxG5vzp5(QK|Sk?N5H z<#-m(q?CV9VOg3~oyo$VSiCFW69%Y|gu|P@(YkH(l-4bB24yiN3FUp4NpEXsKw5ao zbX2I6{kBYocfW5cPODQE?`{5NBGGcZLK$B44)Jma zGjqoKn#2pp1b*iZ@o5J`FkSKlzC$%U`@V+}(%OH4VzY2M^2hH6ZaC=S|^=5r})GNRX-Xn@9=7 z@_0ui-esA;v%sVB9Q>0*GyJ2xh?Ka^z(`nw`d#SLchZiJ963O+52I2c9IB*CG22o9 z-_mIm|Ne+k_}2lW*gt9%^CLt0FkueqeMYkF_;-J*VW%#7`di0#VQ%E`&eF}fh- zxE1r$wdrWg@9J@=u_P%aup{qz`Jvun;4&l$yz(`K4V`f1~M%Rx9Vd@Z&H zL_BZNPC@jmAULB7w9e7?l4=xxDYvUm&@j)dCH;m`xNzW`kDVW&{kZYi z#4-KmkUmagqeO|p3U!PdPh6@&yoc8#)opW%e1m@9VE*P;ultVH&Z&T0O^hvssHBgJ z z0nDT+-7F5WIea&P$l(=cA3&x2sK_nt$s=@g4(XrLsT+$5ZGGG*90)+vO6>8LQy??e zVj+~z>=3%0K-(6e1uR+JHs|zW7WKbjCyoniOac=me59m*ii8IqJAbGz9_tTgHw3yO zu|PVLOQcg90>S8^cskneVtW&*M7B4cOtM3X)V}^h2jj{9;Mz6Wz@e^mvj0$5GT$Gp zUl$YFeep;v3B4#~qM|ZWdrD{2*^>AUx?!}i0e<)5mM9jlh6G1UdB3kRkZ)#%b zdD&BTM8GMFmAhcA*whofZt5(40WG-4{elZX+peD2T}9kdQU$lOnz(@Ewl5;?9?2O3 z?q2bL;sbK71@!erQFhR)TJb3)#w7b+5p2|i&4@|n5dc#I(!}y#+3_^#Zk=*BBi!98 z-R%|bZY6h_Rzkz=jv#=XjcA@HzV+q!o$ zi}W+}?%a+VLlvn9{VOUJv5KHC3y!e}DB*=9Z_P<#RLbWRmxlD~PIR2Wpt^v-P$&-a z-Nrbce>f{BRtzMgyOVf|j-HW?hmX1ao_(iYXzyP9s~;|^jRwB=)b{hq#aDZeum0%I z6)zow&WosTpq@jeb^8eQW7JAGNE?d$r0g#PMWKB_L$o#I&?z}YD@~Uz3IUN8?Fk%q zDzv3&h?Yni(r%$4+CI{d_9_k0_LYXTi)o0qwbc5&JUfsd$^k5<3mtxiDFid4SO@ip zIXX*joyHG7LvAgM^5izA9PlfCkHa|t6bg{u0s}Y5mB~r#c19>m~Fy zflmC#)RTU&DLqm`A-p8&<2Ow`>CY^^w=uWMc0yB8KJiwf6)|H}x$Q#3?GsJrWAsaK z#*Kx08k+J77gtiK7jR7c#5242R?~qI#kN@Cc9*jz&nxm=)t=#8dxLxP+@YQ1^PM5? zXy#6>m(SCj&Ag_W-_yl2&I8(yp?sbD26)9Y`~l5* z1Uk-UEzhg2@*1s;^EU2p;}u$uHXx8IF*d)A*S7JR0j{0Y8jf(gEjz$%HXi_YJ<3&E zY=HZ1OLoE>lS0vdlB>?^+}j3+x2mBkHL`#!KjO^x&`HGd60i6Z1Sb)~4ZcKsk1QM^ zUa4K;cHp1j>T}=XN&)I?oB^)7{tXc!<+)eTt=uPhlNJ!#w7gm?@LKSWHjZT3v>vX# ziAZcfuTnQu0jEuS6yB&6VyBK`hv2V%7>ynD*PzIK_3NNG==DF5{F5fFAAt}DzlDDA z5PenB{h(w|KLPMpy#x)}FO<9wl;r;vdxuqD110&02^ODlJ~Veh{Z&wi zwD%?bxuma1`V~nVB)w14C6aEGG$1L6z>7-?Z01E{oz*(6X z&h7k~GJba%&%)NBkPo*h9xpR`Bj=_yOs+c@&O~y(;Z!;oOZ2fY_*e%2jm&jVYl??3 N3-^d)m5X#S_CKHY^{fB@ literal 0 HcmV?d00001 diff --git a/42sh/objs/builtin/bt_read_term.d b/42sh/objs/builtin/bt_read_term.d new file mode 100644 index 00000000..28b3fbe6 --- /dev/null +++ b/42sh/objs/builtin/bt_read_term.d @@ -0,0 +1,7 @@ +objs/builtin/bt_read_term.o: src/builtin/bt_read_term.c \ + includes/builtin.h includes/types.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/builtin_read.h includes/minishell.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/glob.h diff --git a/42sh/objs/builtin/bt_read_term.o b/42sh/objs/builtin/bt_read_term.o new file mode 100644 index 0000000000000000000000000000000000000000..bedfaf189925af4643091ca30a442226a6958756 GIT binary patch literal 5028 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 UrvE(QaflzDb;3*~RZ6q}0GHNh$p8QV literal 0 HcmV?d00001 diff --git a/42sh/objs/builtin/builtin_cd.d b/42sh/objs/builtin/builtin_cd.d new file mode 100644 index 00000000..d49bffd4 --- /dev/null +++ b/42sh/objs/builtin/builtin_cd.d @@ -0,0 +1,7 @@ +objs/builtin/builtin_cd.o: src/builtin/builtin_cd.c includes/builtin.h \ + includes/types.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/builtin_read.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/glob.h diff --git a/42sh/objs/builtin/builtin_cd.o b/42sh/objs/builtin/builtin_cd.o new file mode 100644 index 0000000000000000000000000000000000000000..f9307fca50f0a5b79bf5e0d70d2528ffd4a347f6 GIT binary patch literal 4996 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 YkEv8UBW&|*+fv7lbT|RgVmQYB3%iB4761SM literal 0 HcmV?d00001 diff --git a/42sh/objs/builtin/builtin_echo.d b/42sh/objs/builtin/builtin_echo.d new file mode 100644 index 00000000..9fbaddaf --- /dev/null +++ b/42sh/objs/builtin/builtin_echo.d @@ -0,0 +1,7 @@ +objs/builtin/builtin_echo.o: src/builtin/builtin_echo.c \ + includes/builtin.h includes/types.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/builtin_read.h includes/minishell.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/glob.h diff --git a/42sh/objs/builtin/builtin_echo.o b/42sh/objs/builtin/builtin_echo.o new file mode 100644 index 0000000000000000000000000000000000000000..6d603b60315be9bbe3ecaeea4b77382a7e07ec44 GIT binary patch literal 2684 zcmb7GO>7%g5T0FoH*TERX%nQNR^UTgibQNDszd}OKeUEz6eQFnr5CidH;(PfSsQzu zxImziBftts;m`}>zy*mD;!F=kfVd$pNL)Bn{76NjA`%=TK$vgdzD>Ma(u9%b&Ci?n zy_xs7`^}$s|LGx8LWBk!27jiZNq|8Qf(^F!q2GBR=(ddUY+w@e0C$2+)5$j-S9k4& z%;kkW+tb=oVLZ;|+as=oaovkyX_{8usg>-4beg6g&%=@FQAzI}O{Drw;4S5Ije-eK z(PNtDUzoZ0%x=`%QfoCHfyXdz=;$?HWT7H%5_vh!~%}dO~ z;+5>>3J(e5{{GwX9vp*YCwseXB$CgT!-DMeB?3)^8g~#} znze#>RsiqZA@Q7R)&H#bO^LTG^C=t>50_X#2J^cc$nWa|@vO=U>U7M8y;ic9Ompu1 z-qH{a%ZrHx1()OPBCOiHfpI2=Dxr zOSV7^*4vbWUy*|@1CQy%KKb!E5N}}=0U%C(7(4=#p%x%dLn04)9^6fQ#+iKucL&@@ zUo_f38?9f{Mtgn7Xg9Wv_Tn95b8*{feI9|nZER+sPf&b=m*05jDSnfMb2I%3-C<;7 z6T@0xAskZZlhn@q6yNAa=dA=95!TM!{^jFNr*n%76rQn8JM(>e$7p?-e({Twb(-ND zn3$Wp^ju;!U#piYc48u#PNoy5tumgC(TOyS(I=yi^j#R7>cggJq)OL?L41QoC={EFMzKFyoY!d!rBIe&S+tL7D!jL8!X;Kqq%b!^D~Bbgjk|DL9WmJ?tHq{S?9E`fZ3k}Gj)$; zJ2)2m-T6N;Tt4#tycjr%Ee=BMwZoE1TdmhZSa$dYhe3d|4ExWi# z>AGJgJ(z{FMRYgGZD1fDc?l{nUnHeDpbYf&M79vcGo1i`^f!ZbI&wVGOl;r{^<2OA z8DB$;N@Hjh<*!&jT7~BTD_uvMd}kJCTjX(M_mG6*iWcsTOliG0HC3P0hV;mgHV7qj zR@3x`7P+bQ=(Dq0SpQB_*FS8iQA{Kj2@s?FwzHgaCm!W&U_bDG9C7nZ->noq_-%7Iw|@cPhf^g0 literal 0 HcmV?d00001 diff --git a/42sh/objs/builtin/builtin_env.d b/42sh/objs/builtin/builtin_env.d new file mode 100644 index 00000000..b0a70ff3 --- /dev/null +++ b/42sh/objs/builtin/builtin_env.d @@ -0,0 +1,7 @@ +objs/builtin/builtin_env.o: src/builtin/builtin_env.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/builtin/builtin_env.o b/42sh/objs/builtin/builtin_env.o new file mode 100644 index 0000000000000000000000000000000000000000..8d5fe6622183f667e64bb2d9c69b81d1643ee036 GIT binary patch literal 2356 zcma)7&1(};5TCcnrXNX@XnRmA5~Q{Yn#5AD_}StIDO4$`tzP7@*``f2-7LwbUw#!7 zF?y*75k$~~e@MZDN6+3BL=ilSqIG6>Hg49|W?X*bzjg3q_{ZuIP#kLH4*?6kKe#6m32Gp$9v{YMt>mW3v7X> z<#Lt$0`YC;=i*H=OsjZBW426F{CJ-k=M~!(=J%n!v5uS8ThWZUeDz3+N~KD?VP;#te)ruD{nwP%^%%NFtQ(%F!Hel^B(>s9fb_{6urdU+n}v}Da# zEE+RXj-T`9zvAo!2h)g0PeZW7c~{W&;pGc*wt~CsOpvnqJy_@L5oZ`C7>~OU1}L~b zS@%6C6%8BFU$0FD^Rhf?jq8nU!H?D@PPySudj`?jh1$dUeQ0SMdB6m!S7_^b`@P|o z{HaX+4Wyb!O=Oexhx2L7Q|^n&wi-KX(Jgi@#kCl~3wcPghGo2v4<&zezfT)CWkfJ`C%L zr?*DXpG2ivDNc*TSDmV*5EaRx|1oL9uMk_z_6idrpeAt%ij^#grMQSk+S=DJi@vlM zHSvqUHa6Tm7>&jsC}+F)cLkR)M}ai9Li~(&VJqkxsKRr!!Fy=&Y}+(C8fPRB6ROhL l-lr%yAK;h+5K6J_XSFDu literal 0 HcmV?d00001 diff --git a/42sh/objs/builtin/builtin_exit.d b/42sh/objs/builtin/builtin_exit.d new file mode 100644 index 00000000..9dba1265 --- /dev/null +++ b/42sh/objs/builtin/builtin_exit.d @@ -0,0 +1,7 @@ +objs/builtin/builtin_exit.o: src/builtin/builtin_exit.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/builtin/builtin_exit.o b/42sh/objs/builtin/builtin_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..5d81416dae8c8d73fa51647a7925907481891ee3 GIT binary patch literal 4544 zcmb7IZEPGz8J@kny>H*0KN34fq;?y_rA?%$jT;M6ZO?ma-$v)X z<95%rlNc%-ASMZ_RYmF#pg}675*74E3*`qOR76?4v?ioc)0*S+c*72eogWD zc<)Gvwc?r9c$HIH<2%g+Lo3TDUWj@6Ti9QjUaQ7eFIp1@Ho6t>YD-RLlOEoRepS55 zqV9(Had>`Sd@^3KR;w7ARh(pa{}tcgWqhMDpv|8cpNCf+JLYb1Ykd1&Zei{(gN6Co#ln2!YGHol%Cq7MQ3~oJ`}yJ53uj0aFBRryFNyT2 zy%?F>vxFwnU*7@cR}7$VZWrsLaBkfhu#4(P7-xVIaL3a8@bBjr3v<62eDFnJUMsh;D*9@y>b6<6vIDuk zTwk_Fui$9v9q5CS>))B%v0d18JwMhkD~@UTTr;LkC#Q@2h>h9#iHEDlO2vHtPP?q> zwHa-vu&RzZZW<+FT8@yD-ASTWbjm_67we)pB@An-CTyqZG;D$Rb>V0(vpqI$)@|1U zd&RUJVS7xkT8;r=$u-+NZU}ao!;CD}Q7WzxdZmihXjry6VHu??!?Ac{yUU=}Cd`tk znWdHUd=;*@?!)L-GvA+^<*Km942xHJHkTyHo8-2XZQqgRw&yj0aP9 zBtDn;Omctcoj9U`{UVs!-$_#dg%nanKzi)&#KqL#q=s*T^WH=PH5EwLWqGCBa-44GPEyv%#oxvZ&yh0|C9PY|Kfm1mq`leSRgMX=~gG<=nv z5_ye=H_%0Bjl6>{_E&U|Q|OLA0XC{`OFRWmAhjp3MI;nR=c#QEY>6grhU5nD*}#@$ z;x=eM<=D-EEg2E%hZwsP-LpUl+z_YZhCoMx-&Th?&_%%CLbIu@Bj88S9;LRP5XsnA zAioM*Xj5z+;+qhIN5k)dMWPX6$1b2tf+Cw@KLTUog$ptM)@F#oTiWghD?}4Y>Rt%j zu`SW0f*(#D_0=}0(NxJ-Q&2Ohim#@jZb&&$cX4h8YBt3c_!8B2r~|2|e6<7Wphz>+ z`$5r&k{NRlYI&hr67&~}y$0gi zZ3Hn}?*fg0%AgaVZ-c%MdJc3E^d{(i5Eq#RLXkik>SAiS}?7s@pyEfx-smik#RL1 zzE{nJ?@^<>)iA_lcvQ`ds~Ag$qo>s16ANni$KglSuJ8mbUsL0wYH&9u9aSS!Y9PEj zpkldz{4@x0_bz}VgrdMURJX2M1m_FZnjf zH%SiWj=w8;KX?iN{!PeO((Gj8CB8xxJVsXPpKj56T6Cc`J@oJnbBfp;YocN}RZD2& Yj#hN4rYn?c_)iIEym?A)`PC@?1NC{ZcK`qY literal 0 HcmV?d00001 diff --git a/42sh/objs/builtin/builtin_read.d b/42sh/objs/builtin/builtin_read.d new file mode 100644 index 00000000..a59151d5 --- /dev/null +++ b/42sh/objs/builtin/builtin_read.d @@ -0,0 +1,7 @@ +objs/builtin/builtin_read.o: src/builtin/builtin_read.c \ + includes/builtin_read.h includes/types.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/builtin.h includes/minishell.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/glob.h diff --git a/42sh/objs/builtin/builtin_read.o b/42sh/objs/builtin/builtin_read.o new file mode 100644 index 0000000000000000000000000000000000000000..b57d2ed3a87ec819063b59a3f0df8713afaf42f1 GIT binary patch literal 6604 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/builtin/builtin_unsetenv.d b/42sh/objs/builtin/builtin_unsetenv.d new file mode 100644 index 00000000..0037f5d5 --- /dev/null +++ b/42sh/objs/builtin/builtin_unsetenv.d @@ -0,0 +1,7 @@ +objs/builtin/builtin_unsetenv.o: src/builtin/builtin_unsetenv.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/builtin/builtin_unsetenv.o b/42sh/objs/builtin/builtin_unsetenv.o new file mode 100644 index 0000000000000000000000000000000000000000..9333471b4e73475c4d3c509ed25689a507441fcf GIT binary patch literal 2808 zcma)8U2Gdg5T3KM7bkXYC$9JrKk`E;AQ8t6K}296p*397L_%#-@`8@@`4T%gXJeo9 zg9-{5DvX6lh58KT4GF3u9*`;!ji^*1A>e_Bil-n2sgXd+V?+^VW^XsxmlkKF+1YP) z_S@On-LrrC>(76>0Te%AgW82!V%Wq{QSL_FA?I!6f*4z)IVch%Cy++SiK6R{wd}Zk z7oSScoca&T-dCbSd_+Cc3qZLcSS2Gx*RxipI;U5hGI#0v(HF;0JST@i@_Z;f&#Svb zvg4B-vXZY*G`ZW$H$lZ|kze=8XJj&EYmxZd^OJlT!MR_)yggf_DPF$MM1H>rz7!Q7 zWfJQrj_8*AEgSZnRoTn8+7=BE4Y+(QZCiw_--2QC6utRLK3T@jd`78Muyos4p!D|a z_f4^SN+i_RF+Z2Dn3?AX?9J~R!8aiIruNCl^D7yqm+vduNb5=^X+%Myg0AN<+ zcYdFI_~hJCzuSWE3o&UG`AD4GDkP|t|>^fg+#dzc5jfZ8gwUsADT>rlu3v{wIJtNoGG>aXu;_3E}(pT2Pk zZqPifp1yu9y-CcPncmbIQ`=fCwGNTD@%sYT(i_;)$OevF*BU)y@VLj@NUiTqZ;Y&S z>e|jzk#`PKU?YuFM;p}*?%$#+HPRckD@r}RvGq~2*=(dYIojM>LUj0wR=b*f>AP`y ztntao(^K(9t6a$!?f7USnMlSTG7I>H85~U_NQ?|84nGW)vN@Eg<_k{VmKHBn#d0ir zF=4{cbOjlP=9Y@{Sz~BqxRTS&(uzI|V$NE{l=sv^^{EWqMFLi(p1w!x$85F9y6!}ZEd;O(DIi1BAC8B&n#_v0~yu$IP*di*` zIJ)ej+}T~!SE)~4 z^+#$5;te=CuF-C!Vtu%{*!|Uebbj>*+A7Z7n{?@kbQa(;GO#RMo*FKhAop%%{G^n0k@*R#`}$V8IFIPqBV< z97GhGVErj}-vkR>W&<-UkYau69E;+}9Vy0A$n!DtH&~a>eE!8Xf5`Evm>#b69x5(7 zNdLU>NCxjji~hmKU8@cWdq~*(g+)Vg>a)TUSA-fNB2Genty+d5h9j*Q^gW*heb%AB dgyupC^sM0+dL?hq6)dM{10TY%tW`jse*wUngY*CZ literal 0 HcmV?d00001 diff --git a/42sh/objs/builtin/is_builtin.d b/42sh/objs/builtin/is_builtin.d new file mode 100644 index 00000000..9f9299ac --- /dev/null +++ b/42sh/objs/builtin/is_builtin.d @@ -0,0 +1,6 @@ +objs/builtin/is_builtin.o: src/builtin/is_builtin.c includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/builtin/is_builtin.o b/42sh/objs/builtin/is_builtin.o new file mode 100644 index 0000000000000000000000000000000000000000..c06f8439aef65e19a1abf2baa24ecfdcef5756f1 GIT binary patch literal 4660 zcma)9ZERat89w*g*LGs(#z|O~X-(tG=?7D5r)dPHw4)gdx}91vM!QywadECc;^Nqr z?@gKxkfNrY7Nvt0fm9HJ3XLym0*w`@gpgVlwo$|=;s@{pC=-ZQ3TQ*1RWMPW=lWcK z+-9^#I_G_#_q^xvd+vG9hkyC+zx_8Xgc1;FP=l!P5Sj!k%6+J3HCJ7;`AAp8JjO97 z9tNji?V}OJG@bl{)6g6Ez|`RbE$nGuk_!14%cdsvQD;TG|h)64@|c3HK|^dGLFeHzUL9&ptQ9M)6C_k=ZYqRbj{#9 zH2K&Enl9(~u~9Zkd6gflvvh>$@s+EV>*eSBX@|EE|B7^y0d;tIeA(&gdVZeYvok)A z@7I#%Zuv@;LX|`Od}o)?+Pu!U=TdS4xW+gkz@NS#$Ng3Z^8PNCd7+-_0I(@`lV1InSmwcm=uP4?v z(}wDsZ(Dq|tmWrZj@GkjqD7cjV_%6x);Klbw&zOzew=Yq<*V_6)WBD(}(rUt3{`BiFPp#fUF`jjEb7lYP(j{ei|EgjA%DD7e z&`_=#OBvC7;zMAPK8A(vOMgP&E5=I3Sebg=SP{m`*meHc(oNBOa^!8C_e6~4shc;L z1vggsqc2b0l3nfP!sZQIXP!!WeF;lXg zYWV7)L3GRRmM@eEi(p?nix-Qf2XkPR(g7_RCY?0bjdcQnzBUtppCKV z;?e4nTsA#1ZqJxj?U*?(ik_2jaI;kl!fptjg2I}~)-Dvq#APvyC-MT-_A@(X#Z zAZpNR^{SP(Z4CFc?7XODof)i@>r={!S}A8b+&9@eHnizM(C-*WM*g4L9=lf)sx*If~ zJpNf&)Dh)12t`-V)VRUak#(3vuX?7OBWwLinEqXtI0?t##7Q5YYdG@!Z*u0kRm+(MfoLQVal z!M9>ZcVDPvU@=g+>hwvWvhdpze}e$Uc;rz_7#RNe`55?fittipWO-u|q@VGQF zD@IXKm+WOG*+UPEA^CN7-yR_6{ zwz1I9wENH#d_+@2pLs%4mT=#2_QeL-@F7T?l-qVnEEjY5Tfo=``Z-AabcpGIEux>6 z_?d>(7bRYR#IskgNz5$8-!A>*5+8=ddg#nr@)?krn!ZQk3?#O%J|^)NNZea`LgFDv zd?GzAaRd^dNr!Oxz6*(Ig}y1}E=c%?Hc7l*N(k5QB`J?X_QLTRB+EQ%FNnPIMJR1h zeBFmR&-VTaAD;B#XMLDs+sA*UbhIbt~7>8}H@+0sVZArvLx| literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/ast_free.d b/42sh/objs/exec/ast_free.d new file mode 100644 index 00000000..580166c4 --- /dev/null +++ b/42sh/objs/exec/ast_free.d @@ -0,0 +1,7 @@ +objs/exec/ast_free.o: src/exec/ast_free.c includes/exec.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/job_control.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/exec/ast_free.o b/42sh/objs/exec/ast_free.o new file mode 100644 index 0000000000000000000000000000000000000000..f9de333756549560e2d0826278fd1864fe117e92 GIT binary patch literal 3900 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 b;%^#Pq`^3DSvDV%C3Q|zD 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/exec_command.d b/42sh/objs/exec/exec_command.d new file mode 100644 index 00000000..314a7cef --- /dev/null +++ b/42sh/objs/exec/exec_command.d @@ -0,0 +1,7 @@ +objs/exec/exec_command.o: src/exec/exec_command.c includes/exec.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/job_control.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/exec/exec_command.o b/42sh/objs/exec/exec_command.o new file mode 100644 index 0000000000000000000000000000000000000000..e53e1c39847adf518c779a2e3cfcdb72f005b134 GIT binary patch literal 6752 zcma)B4RBP|6~6m6Z}YOdNp|xC0R$Ek16uM2SW`g-C7n&g4pmWTYag54mtp0fw*f`Z`7_m}^QCd6D@4N55kSw%v zC+D7fzI)EO=idA7x%*yT{r5*FN`>%v1u9SpD66B2fKaA^juZSJ<&G++V>@k7Tp2zE zsgfXyY1-C+?X(^F+K$!No|4_xTMPn){y1!1oe<>&O2n;XZZXY-)m`W{^L9=`rn&t3 zWmkXI?G~<|7c~d!VK9@6>Ty8VUn&!qK(W7vi`L*v{>jcDozY*cyE|uXI z>Bl^6vyi?qnNFDIisch64k~|36}S@qm{T6Z^QQtUiqGmZdve%a$G|j;@_|~fKILz_ z@~1?B<#4+sG=6@QY3Z?ezJ1EyEEUCZHQ$4XPd$^9;^VqVlYsM}u@kD|5Gv-Q2ay;L zfpc3{f>`LsCF-j!W7k=iRnegjqJu|TqeEMcM~6w5@o#9$(Z|FXy+j8Ot^{SHLmgw2 zp%9?a=y1o;=1KSbKE1Fg6Ykb^JxP2ak)&?2O6c^cqGV9a$f! zV=Owt7Lbmyk)>Q+*^CZHTcfwVxAyqSlhGkGu?o_C+rjAI3#~Ui--FUzIeRPh#iaEb z={QO(I=BV1+Pa0!;SMaJz{5J-k4dJh_x(Qknc0&*-hpGQAp>Ly=f~EiTA~Ff~KyO$XRwFmo{U$Tx^qR4P@a- zB-6H#nz6hsY_r?WS(eBvp0urg5znM;D{Y(kh(VXG~iSM6GNpYB+~o|lI4Az=kEqm7HZjCCT`{P&~;m}jUpSf z`{ZKwK!c0gBeKZ^Y2s?QBBro#0XljT$uz1=0ZW^4Ld@GSyO0+#+s-As3pTR5ZT6&M zy<%Oa8%@@ES<`zjs-9#ne<~=REG;}(x&CA(FXCoWy0YVB7(Z@iB!EXi z@sumaMLZ4-?x$RT*ygjAg(YI`*g61Ktbdbf$GY*XB&-3ff_!j1Vb6IL)w;JLxah47bSxXx+{?a0mnUOmC76BNp8J)PBaF>Hk{Oc@ji5aergNR z;k^Ns;gKnjiuKYEcg1zy#qU?T#0_4c5n7$N{x3pQs4K%J#$~j*yvkZ z3+|csM_#d|t;(M}sOP!?T2^{afYI$fDp$@%^QU@qiF#@`MhElcaTYU?M ztf3^l+feBxnir79nR~a>#G};^n1;$|K=lwnt-fqGSVXJx{~X++LXB20{QDsFP^#7H z4gdR)1}RO^>O+2B4N{t_)z^uDu>n0#0V|nhY)11rG`-*Qz5!NhXdFqq8%0tHH;i|{=CU~@*ajBToBWHxXJ8@p z7JA4)8lu!n>0U@2NpGWcKP0Y*z5tRi8lkp~Vr^L`SV(X5e;u5QtIwnUHLi5NR$t;@ z18EICUm#;kp!sb;`qUuT%+MoJL;63L)+yJzo}+2^K;L)>Re?s;WjBG<`D*>#H9GKN zDTV(|w0;jIUmX{Hn=4Jjq6>}I+FSJV9;zRp)0kPd7p%SX0{>&+oNDQO`uP3qmaK7Qh^fos7`1L&@?VVwHSDCTG{1bb-}9fJqk`b7(sb3xMNwE1bHxo zM(fZ@*hR|&p73fk#(i+o zgz_-N_V6B8tb({yRPorY1y)|_sTNSH39=GZ%xHHIH$1h&;6|xbeS}b%M{9uA_*3bd zjkkTo?^uto@ zmpgU%l+(O+?N@e|*U}2NVI# z0kz(GSK!Tf&5Y}x*!o#PJ1^w>!{zo}KQsRP>(R!K_paKoHx%6X#N!{X3N0+@3q8I0 z!q4}-f2?ij!+&n>ns?--Z-&RFPYqj*_kHr(jOh#0Gk3oA!t8hbJ2&rG(KGYdqnVlU z$j;4USN(AFH+HSxJ7w3{{^!>>y!_IEn&o#s`^e^(HjMma*H2&h*GDJ(H{08iGxsgl zU)hR9c>wea5c4IE$=^Vqg37Q_=YU#3d}LRF`as_SG41RIJpmd4y#x9P#09GcHG;kZ zS^??-Z31lr{Rs3p=ta=mpbtSOKw&(Qyj(D>JaG-+C>)j$AAj7%ER2v4&-WCG$YV~3 zhf_g3odJZBX-ZM&z_Xr_gEDGWsL5SCeii-(?5Oap|#neHFxkMTA zq9VjYqzsu#3GvEOhPxHS`%FQ+K&izWRr%tzM2I)lRB#k#YC=riN{g2zAzrWw;zdV@ zyQ?7H3xs&rC|^9wgm}i47IPyZW@82MVj{HW)QJ26K#18_&5<_|6y!4kL*@cy&nuS7 zyo(jYdxj9N9yNQWdP2Y^u~@ldTN~0^rmBS&eT1g&nwD> z2L)yzkNX0OU;pt`fv+1ag?z3>NiE5R?O&dZh5^zahBbcydueVWhKXLac%U3wX$8IU4fI{Ifp zIv?EMrE9Boqf4*yU82{qV~MVH=~I1cbOVy_m+0uzy=a#D*7!crOME-@8Ad^;j}qVY z`ixzwIjC0v(tI1Al7^bEfDs84^bmNZ?*p{EAPMi)Mzdb#Kd5Vidig#*jNZT!uq*Xu zgcrPB_pg@0h6|XEOvN7t=TP@4eud(T6>n60mf{h`!K9taalYFjSHO{bz8-+g_b9h?p)o-e zON!(pkNoJ4Jb1VmCDt#^;t3+uDn zbB+@yH6>DdTkS)gwt%QqK&TDkp{NfgOd+GctsDTrWT0DZqKBJFlp-$$H~HCStWaVzHE8Et4x-4-$Og^ z|5Er_ggA#eD3lEfB#?C-Y1Kl!YOScu?Rds2Zy`={aI4EIj}WggJ?+|uIsVo0g?LYC zjO)d#I5RaiX~%n7_x^z9gK-Uv1<=cP)%e_kQ?|WNdA)RmWS?c>DCMU%pN}Y&r$m9^Y?u{)Xe-+jV7OwbZu0#o8Rk>09&8 zk&08YtiAWOwm7Hpvf5Y&9?z64@=vdM8=gID&A3?Ipn+wzod-I9cWAsNji*(S5@I%# z$;16ttvCv?eY`s~-X-1Wj2`dMXT-;O$NE#~Y6JE*Ku*|iJ)NKxeWduW*} zAE`ZBD&)3~d9zlre$*Nh^wn;n;`pNA`NFrReb=^yr+LM<=R~pQ__pI)Uga3Rpt5|f zb-_gvDkJo2%_(Q+9j{V$>{6C+ReQ!4Zlyfy3#V4H0gVonWEB zK@%m-vx$;iyHs)UCE%Xsjwn`Zo-K~l+!8)2HXpF!Y{3;Xu+|>49ek^nFgjFvRKnq% zSmy=d@ggG`J;tr+J{e7C%nj)tqZdmP8G*6a*pZB;?@Zm58tmNNx4jeFONxj#?e4=V zzjc)=ZxPY-J*gBD)a({?h^+$)AcTnb8PRkqMLZ!AUGUxAM`ax8oCeV z2mAa8+IDK==u^bTA)cpyzq~*ek4?eCqerewaRM`PIKh=|f@F>ednjSv82c_{pw*_yMjum;$hd5ONeP??6AL`boLU;F@AzqvMX5S$ZZVp>I_2rUmM zv!4qv8)`RT0ffocCOd=A13TH5I(*2H(y9cu;JxT=h)Fw-b;^v8?btV7sp4SI@{R9bN`CX@yX0G= z$G?~Q-Qu=SZoJ*u_`%O>8=pM;+UHO0|N5yP{_D(!@BaQLi_80-U3}#E$4-bgN*p!{GYUVIlIxU3U9dDU8+ae0aBI-C0@5aiN)va3 zZpi$iiD{=z%r%;remV&5D4Mv%v={dxO=qu|IAWTZI672jA5Bb0-H>~WCT>D);%27l zJ&-mrM`_}WXe>@DO-yq=AP$!%?tksYT}%@Xns zl`sK~WA_VVA!B4ZWAP>3>*wHk?n9znzO35|u``|dPGnbCuw8`s7(Nm4W7LN6NxBQQ z!9GAnct_*HEmr4CcxLA2JvXPdT;=xhFRr$DN4=c7A3f1}VdGv0oVu$=W_c?FK9I3H z^qmZ)1Lt(X#r+>Rm8-SsK*Fv;qo72)4Vg;D56PrCC3_}hY(jRLd*sc~VpCH3abS6X%5k46Kt uTAxOE==cRpsZ*}ne$5e9t&Vp@@IJyHV7ypt!Pg01(s(#oGrnp~u>S%qZAHxh literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/exec_great.d b/42sh/objs/exec/exec_great.d new file mode 100644 index 00000000..3f5d26b8 --- /dev/null +++ b/42sh/objs/exec/exec_great.d @@ -0,0 +1,7 @@ +objs/exec/exec_great.o: src/exec/exec_great.c includes/exec.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/job_control.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/exec/exec_great.o b/42sh/objs/exec/exec_great.o new file mode 100644 index 0000000000000000000000000000000000000000..c1697fe85e4ba66700e49e63d8ada1d6e5d5ebab GIT binary patch literal 4052 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 Z??U**ijP9${PYgQa|!84e)d32{{!6hOY8su literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/exec_semi.d b/42sh/objs/exec/exec_semi.d new file mode 100644 index 00000000..abf5cf44 --- /dev/null +++ b/42sh/objs/exec/exec_semi.d @@ -0,0 +1,7 @@ +objs/exec/exec_semi.o: src/exec/exec_semi.c includes/exec.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/job_control.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/exec/exec_semi.o b/42sh/objs/exec/exec_semi.o new file mode 100644 index 0000000000000000000000000000000000000000..ce9212930165e84611263d0aeb8741c89111d209 GIT binary patch literal 2920 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 OdV3h2U9m(x!2Sz+Kq4Oi literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/launch_process.d b/42sh/objs/exec/launch_process.d new file mode 100644 index 00000000..7f1589db --- /dev/null +++ b/42sh/objs/exec/launch_process.d @@ -0,0 +1,7 @@ +objs/exec/launch_process.o: src/exec/launch_process.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/exec/launch_process.o b/42sh/objs/exec/launch_process.o new file mode 100644 index 0000000000000000000000000000000000000000..9e8724a615cd30753b33c398649f92684033f171 GIT binary patch literal 5908 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/process_redirect.d b/42sh/objs/exec/process_redirect.d new file mode 100644 index 00000000..a254e9e5 --- /dev/null +++ b/42sh/objs/exec/process_redirect.d @@ -0,0 +1,7 @@ +objs/exec/process_redirect.o: src/exec/process_redirect.c includes/exec.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/job_control.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/exec/process_redirect.o b/42sh/objs/exec/process_redirect.o new file mode 100644 index 0000000000000000000000000000000000000000..1bb4de2efa9adeeb7c518af04d41da1ae27bb65f GIT binary patch literal 3424 zcma)8U2GIp6uvXFGo5yq-7Qr_DL8Q#D1`2A3&BQ+wo1)bOVS`e8h<9!+1c*mvb*lg zmaTz^wlUU{SPeeli+%IK1SRrdqA^V{K9CrmH1Wa22TXW?=!0TY6Y)DUciQbxpeH@| z{Omd3{X6$euP)yFuZ1x|Vi>?7a8<^jfk6+07sz=R>OwNnEaiZFo7}`Pa)NZ-u^Nu2 zd-mbM7Y{GnzBbDh!lP-wjxgpzhu9fEhNQ0NtkL?IZaX#Ct?LJl4IFxQDa6MK(WXF} z;>o5_Y|@wTN)^*}2l38v96u+?_wCz|tKu1>qcv-s*1K|jKHgaluvWZcIbWfaAfCo& zpWy5KlCSSKoFBiwRo7QD%43#&C*FA~h$h<6+GKd@s(2?1(_Lb4eLkLljQ7Vgs@0OE zmyHv&ygT;$318oSzO0@1U7v?n89nY^aBzJ;bG#(S%dZj7U0>BOgLsPpy!Y3L=S);r z-R~BDiLdbkys$<*JUSOLxV}^Tz54r&g!#soMc{tT$_eb#(d*@t#d1#9hYu`=GB(HY zH15m*&pm>5USEMbfM*r-d=0njCFuIfelXAR`Z?Z+kH>A81+Kcn?+2w~*+mTQm+|-C z#m{e+?^nIc`siHZgdA>j@oDiJ!EwaXzWO0GNP-ywHxo@kykf)60r$|4WT$`6PTtV6 z)2A1*Gp83O-%7IB6m`+;%;3UIBYB;Yrw9KcbF$HiA2m37Zh1dTAi1mH6>`%gV%Y&wVwIx9q^GS)I^(SumCr%MPnDN9R81u`OmhhEunh;W)M8Xx+iXbM$=47-OYMc}#N$T8+>yY>jrv zQZ%k?ina^uae873&ha)(hj7$DfDjX2At8w$Ht=nNZBkl@KBaO6C2eluxLIpBPKf4tG?AECN%XY-|7_; zN%dFX+ASu!)N8QvgtA9WWSC5o$@D!BeE>}njPZJsP?NA*(pw7Y4HMx-Xj~?#3n0 z=e3u=Z_2mmJ`6DVQ*Ok{Tyh0-Z-big?-xToiTD8u1W`v4(BdTguM|R0B0Tbw^oiC( z^$-G6bH$d}u}f3`Tz)-yWy9R{i}A?#rMkE^o;mYg_@m+cX647Horl`3ZKn3|sX4@c z1^xm23-|_@CZMOV72F4Y9!v)b!RUN9K!WIQ$VHdMT~trxq7uWKAfiJi7o9t`UJ%_6 zxu}kKBGo6k=%RQOT@tydPI%NjchSvq7Zox^QDt)%)eyO;GC0<~ZlDFHODBm8m-vGs zgcao9i16kiCN$zgJkp}h@+mqIsV#c<;Xg<=5RJbpKC_O0o>&sGBKrc7g79y29Y%rX z01JM5MTay?^&GlYx^CCf+)5XB_w8Nju_po{aHMtqA4ah6qDNyA>ZYjz)rlMCsa^_n zl-ZJwGV)q1{O-59m5R$HDJIBD+c$E%@|=vnR%J|%KuY^%MVXYNo>x_-ED$33Z}x!lI(7A_$ONBNdZ=qyG9 aC#ugTlRXl!aR`Br9n-y!i=L}jd)fb{g5sM1 literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/process_reset.d b/42sh/objs/exec/process_reset.d new file mode 100644 index 00000000..fbf2d21e --- /dev/null +++ b/42sh/objs/exec/process_reset.d @@ -0,0 +1,7 @@ +objs/exec/process_reset.o: src/exec/process_reset.c includes/exec.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/job_control.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/exec/process_reset.o b/42sh/objs/exec/process_reset.o new file mode 100644 index 0000000000000000000000000000000000000000..87e088dbe6290f5ccc78fd148010cd9f0026923a GIT binary patch literal 5396 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 H5|RA}FE4QM literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/process_setgroup.d b/42sh/objs/exec/process_setgroup.d new file mode 100644 index 00000000..11bec3cd --- /dev/null +++ b/42sh/objs/exec/process_setgroup.d @@ -0,0 +1,7 @@ +objs/exec/process_setgroup.o: src/exec/process_setgroup.c \ + includes/job_control.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/exec.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/exec/process_setgroup.o b/42sh/objs/exec/process_setgroup.o new file mode 100644 index 0000000000000000000000000000000000000000..0a3992abfb6e284be7d674a7ff9114d5c4280f4b GIT binary patch literal 4672 zcma)9e{56N6~6D;?>#$CZ083MN}*<^z$y}lz#wWA0|>n5Z!jcS>SI&Ed6D*L|o z?hB4fN3L}4x!<|xeD}Qf?zz6c_}_ngWC)=I1Ug6%Qr6HVAZW`W*J=EOc0S@woMH@` zkHIM@F&fcK)5(rI-q^$Y`ybhV3;UysazH*V`$)48E_F~$_&(I8Ig}l&=1kkExMtJb zajb%y(ga zKHn8dvsk`-ak#{gdcGI=0ns8-r@|hd!26S*@3#3>GR0ih{y5(c>fYD=jUHc3e_OuM zjOC_SpP$bsKZm$8U#46xWX)n`l<9r!d0&$s`-}ZS^lJ9%+t^a(Hd?-4XvOd2{a)0>wW&J|+(q>=x zeXY_cp3^a_#UuIRkZJDTamy8>1`j2q@f7&D6;EUT$!}iAmmM*OEBLxzfN3r~4-%4Z zyW~3~`6LuLc1HX$wO?jBf8IlqFDH|^CZG3}Psoq&B~Idq7s%w>A!q#as6~kF zoQCX$)HW_b3Dz1HIX;k{{%d+_t}8u#{MvMN?u@v~!1T=a_Vm`JV+3OIQ>db$8QH+Oe#{IswuRw_H5wNm9u$;#Tc zX=j~WrBp32iKZKum}GC{w`(H+=}cP2HFn9?BQdm8y<#N>-s{XNB!#oT@D{j#J4G zRvpx>V-6QGIZ-GTa|yR&Hiuz8TpC0s?7317-Eh8Q-^$W43whgti>s_s(a9oGYSYd? zfz{B}CMdDHOtom|bH(gXg6kFeL+gx|hL}*cGMX>h!ZP!2W{yP#8p|xX2Fr9Uzy%*$ z!m{8o&*{E2uEv9eOm;b&9TINuF?j~1S-Cgbss*BPeMPicX+a67oiMg2+ZzJW`y&rT z)-~>I{VaBGKohDo?QBJzY+eAhH6jq*7KvcL>M=nFV=0tJAw;NE2}C0i@(B@cg73~& zf*urV!xCj@>pH9u(cHkswXSMnu}A0QaG!|H$7zg<&o6+vW(6cdw5&$#R;gPwehz2_QHPogg5#x(p+=}f#>y~vAOnqi_)?Yt@xhIR znhefAfU%md=q}j*$+=JQ6&=OsQG7ciiB}}_>zoJxug4&?Jd}cJ54D81KyQIL)JFPk zKwF8HkkA3zPqY+-qRDs&<6W?YR~dUS2TgAOUJ7pM$3;!m6jqf39WFAe4X)KR1C+~(Q5`_xaA!i%`Afs|$KH5+&6_{Iy!O3=ubuedRFca zGRS?92O)bQ7Gw-E4f!_Yhmc=DE6SuAmWTnu=Ei1ivBGSYPmnI$yH1TATf$qTr(+P+) z@pPdV4+Cjp70|>&lO|RcDrFJ`#JVG&-pI!E{u z>biMDF9c&$?ff{1v3m!D9Y4yrI+?rt``n$U3E>Fmsr|<&{@+_ZBPu2Yu7Kd;kCd literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/process_setsig.d b/42sh/objs/exec/process_setsig.d new file mode 100644 index 00000000..d9f44dd6 --- /dev/null +++ b/42sh/objs/exec/process_setsig.d @@ -0,0 +1,7 @@ +objs/exec/process_setsig.o: src/exec/process_setsig.c includes/exec.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/job_control.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/exec/process_setsig.o b/42sh/objs/exec/process_setsig.o new file mode 100644 index 0000000000000000000000000000000000000000..d6010ad0ea976c8011a285153b1f7140453fe7de GIT binary patch literal 2392 zcmb7G-%Ha`6hC)!bGkX_uPBmOWNDDwGzm#7O|3~9VQLc8Wq$qYCiA$b0&>x_HPz2|$*=YH-v_g?nl=l4IQ0L%&4 zVJpFwc3~I9hH?zsHW?3)RtiK}r5F@7M@*nrNk$aTv-(0-jKzGoZ)`X>SEINb5FRbN z?g6l%OJGU)kmh_sAD^A#W;SD)Iq$vGJ#=l?Md66AxChB^*8#whH{QidrnG(WKIJ>( zc-n0<9Do-aAJ6D>#J7;2!t0kX#o{H5$rOdy@lH|kQ0@x_FD1V%%%3dZzWdF@j49pR zi}z6CNjRvYViwB2cr!80qG;!*@D%Lfc(HUksdFPXL-h9S_mKqZl$@#$XuvwYT=PZ$%N5A;eZmRgW_L22~hxud7SS0>&S9NNx{9_N!8tgZ;)yzo7EF1@?N zXK0dmatdAmb;T`{dJmEb!$P$0cSGXcl>l+XBdI-rALS)L4&HL=E%HZE*P}l{b)v3E zjXdBMwtS(|tCnvsW;_yI`4(N?imXxcT3)Zb-K40sYMQ-Uc^_Tr+ZL9(oaKkG9LZTW zg{3xU`C?fxd?UKN9=Z3Xn{HQdU|@7GIHzaKM9K)Zha#a!ut`helhE8A!AYpCHPmtz z%#0S+7j!M0&ZIQmG`Xo~&BRnlgYbxn!QrX-)bvCw+}3Kwxt3n!t&lLXQ0NV;ik<=cJA``tX@@Suuc6b|oSI`Zp zgrb@r>yr8499l?n&wuW8IL_k-CoAb72N$QVWcTfklM#iD(xbqf3<0CJyQ8Xlq-jYK zVH2T4FUCI5qE-~@tK@)^A4_w4><-HR`p~*mND?{}4BV()_^Q*{1Bfg=@wTC+t&uNn zRNm@;EmevzLRClET8ZvK^f!U+?5K=Fw?FXM(Nm#P zJ&HaKh+xmyFMkF0lxrf))bYYU9`^HP(I}Hw7og7NDEHKU^qi!hi#>IeBaS!_sG6e! zu=#@2#EtB9c}U+7+TA1d8L3Z5jf(u-m!!rk4wYz7Lc_c%rW|j95laFuBu@T+0l?=N Ar~m)} literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/set_exitstatus.d b/42sh/objs/exec/set_exitstatus.d new file mode 100644 index 00000000..03e77b61 --- /dev/null +++ b/42sh/objs/exec/set_exitstatus.d @@ -0,0 +1,7 @@ +objs/exec/set_exitstatus.o: src/exec/set_exitstatus.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/exec/set_exitstatus.o b/42sh/objs/exec/set_exitstatus.o new file mode 100644 index 0000000000000000000000000000000000000000..47255672510d4fb8da9622551a14dce69c7ef48f GIT binary patch literal 3324 zcmb7HU2GIp6uz_DnJ(RSw=G~KA{n(+NZhuRnh@Fo4P7%JBn^LpMklkgv)h4XcC#~E zTIvd+psckD8l#DcF~r0dH4VW;V~l_#5@M7n4?OtL2T35&#K#5_>vv}EwA-OTJ;}Z2 z=broB@6P?({q@e@|JE`lgc&N78k7qnDj5Z`0!1PJK9b^XQ(XH#Fd3Cb-cMB>W7wGk zQPthaeY@v;-|8U}5W*ua{ZYnZ6sTdxNcp0wy6qHAE6W2xJRfI>x345JRT8SQ$yC*} zkt$_XfVwTJ+W%tT&gW;d&T(EJ^2mDuJcQ>#`gpm#z98P#dD)DuiOde=8}l-JJS~+f z8kkg&pO3en_g*ZXX=U=%C5U&HkNz>oJI?u?$9mAZKo;az)U2#w-;38v8>~tmUsC0G z=7M;KG~J~bL#QP+G_xd97oRPwU^S#9JGMwMpMdINQyO2SCtNEtz=NqZxz;i0FzIy%; z=IN*<>#%91Rdsv+Tq)3yM%>#JGpqeRSb-fP3`=G$_HgmiIj>laF z*g@YW?Vq=tX}O5O`A%}YbG*}OKHop?!>}DK|pLnv$1r+aqR`D3`&FT0~{y zxlf_KT}5`~(xlf^NnW^p0Fm1$UNv66>~>NnN;i~=hAG6AiRHhMswA%{l|46<%8n^z zob2Q+<)`F7XkwFSEq%i~_I^g$sFByp8O_XXkPF4UZrHYbShHm-@5sim=@@C4 zMcFp9mXL7Vw&AFhXFHlxvfFfqfME@>O{|aZDS7+$y*uO~qiCCX zOJ3jB(bgfa)^oUA6YD$Rv~_j1tzGi~xb{6ZI=5#J=MSW{_O4EQP}K_~Y9})-hsLTJ zoOv8r9>W#Qw81nU&ENCdswqnV{Ei4?{7>!~h z)wCh4S=d|`j%|o`N1v(Rgl#Q~EW`tpE_Kaw8NI09QI60iXZ7q^QjodVmofi653NH( zSVbk)@FO_aDD2hIAjAbh44v6c54jMhe0T#Rvz`<>qZ}u%=^fPY`rjq5nKD`EeN^GM zP)T5;?CMj9lwU9#S3IA#3uC`rz56vWc87-EKtV`#U-E-}XCVJ4hrSV&WdsJHgCsBs zTEvS?r`Y4!aqLu7mp^!IGyGjB^sR_5O^?`DiSO;oBxEpIgEzlS! zf`4{cVE^LqxHOh{y9n9gxFAY(kx6Nr*dS%asMI5dd&FAlW$CmSL!e&zLagb5+Al>M zaTy}bQbw%bhoJO*{3NyQJe{%Qmq_`c8aAipXL}>b@!pkuO70 z@MCN}v12SDqXLKC70?m*4bWJn1mz&U{0^vL&nA9{CjV!yFG6GfiO->NOD8_!@wcJz zGc)lf_i2p@e+x7qrEadD=9;ckibJ`&m+L0zI2wHEgHh!&x^%03va9{I0sqy2Uk>6(5} l)dvr%bO$r)fuHVa!!y$b{55bg^Aocrt(bN*O((B`(|>Np>t+A| literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/dir_glob.d b/42sh/objs/glob/dir_glob.d new file mode 100644 index 00000000..c1ca3587 --- /dev/null +++ b/42sh/objs/glob/dir_glob.d @@ -0,0 +1,6 @@ +objs/glob/dir_glob.o: src/glob/dir_glob.c includes/glob.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/dir_glob.o b/42sh/objs/glob/dir_glob.o new file mode 100644 index 0000000000000000000000000000000000000000..95e17061a2e96115342cb86e94b553586dbdeb15 GIT binary patch literal 8296 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 F_&+Ki`IP_w literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/expand_brace.d b/42sh/objs/glob/expand_brace.d new file mode 100644 index 00000000..7e65a07b --- /dev/null +++ b/42sh/objs/glob/expand_brace.d @@ -0,0 +1,6 @@ +objs/glob/expand_brace.o: src/glob/expand_brace.c includes/glob.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/expand_brace.o b/42sh/objs/glob/expand_brace.o new file mode 100644 index 0000000000000000000000000000000000000000..1aead206784743abf54a158dba510434fe97d34a GIT binary patch literal 8012 zcmbVReQ+GbmG7P19*uTaE7`Iw`IC)pWIOT7lJO-5I;>h5N6p{n(Qe|BE<4ScUs-!C?B^)kg zNP_P7x_j2r%3Pf5QqSx6`t`5hd;Pk%XY|JVzyF|uF_)X+f$Bk>;CKX4QP!fG#D7RB zu96+oO2^@W$*9(-ah8>f59SmDVp;cvJMX*7JFPw%ghF^^OW!)iK1Ko$8z$lu%Zg=l znPjS03Ci&t9P)|EfhtLzr{**iwXE)VSH9N*sE}CJ{`=eR`E*IEU)gm~0k)UnL2(JB zgV#3@yC&YNMhRLpo(U}F!CezC+SQebAEo#$wa>x(iGsOaykx3pfQFRg9j}x?4U`xt zhpHt#zn(F_Y+lp8Of=OS&o0ONwi+adGWPIFr&XfY#Osg7go)+$Ie5eG+e=>#$hha{HWo+p6$()|UKq8fE@2vM(KtmE)yVzBzbz zUngGfc>0?DeqG_+rUIC|PCRU40a@);)o-KE2{-!>n)^a2K&QUkdbEd4d(yOjIZN;mgOzQm zTMR>QqTVd#G3Jw!95qaPbZ}u|L5=x2wM)aAfMdUDj_1eB@uAbr|6$tinD)=pLgfw9 z{&4~=`+{k|0+26U1sN3@#c}Eu7QJp3pDguHhA)xng`rEV`q4{hL4YS~o)|l47CT_u zJ@sbcL4%ErTL7qjl$Km*KRK~yVQiFykBR5^T-Bo#(7CVRVLI;F;nSjBY=x^3x5CBn z)DjWm7M>_c?C`utX5(3RpY`t=((eQ&PzRyoToK>;ME>c8mn)3lz^F7-@>J))09m1IjrTpY3FC{jv3Q_L&DhM zi^9xN+VbXP_zI1i`z#)Xp&3};K;q)iyff)V)2;wNyNJKTn5z?7@VM9x1s5!xmCZJ| zfEgxRYoI~VL^l#fMD=`=GI*K2!qCaEm}4?LqlN;#)fnCjqk6E^zz~A!vqs^)f36S;S4;*RYtFP%hwP_%F0;=5WrafSQI`IOj5L)0neA zSXh7px>zy%7qjr8>lHj*IyG$aL`;B1#xYQApEq~BZWjIk$o#bZOKinyl{zA`wp6%-wX ziS0O0q*>!CwVVGW$CQ$2FL?O2+(KoELc|n9SCoh1WV{MpI!e@3k`I=qE}Rd_4N<-y z(#}DFe5T!F56xm%VBgb`Fsrg0XHPLaL*WX~n6W7Y8a;I8wY-LvzfbNMh!CO}G>YwL z-&t=K_neb~6iX%Uoa1_K9Q(sr znep}s5pml~%W-S?O7*Btd#Z3g{lKdNg0;~VGkD;@!S>+McqW@1NCo#cHZ?W{x5xT$ zFAnW(0@Ju>cVqJomd(U=_4W;P?TQbkqqzTcWumcoV~p+U$YSWO-eUuYyQ91I?9L{v zSo*lNo8?p4WN#|o9gHQS873Z!hqB&y%F0E%ST-Kb#1ayZB~!_qCDm9m7tdG&DJve0 zCD4&$y?rcakqs;>NjjQi@obFsM{`igS$*B;!6P=1%Ed7tMXzvadjIIRNH^D?X59l; zGRJW3D$SF1COme8(d$$;-A5W0A!nOecRtPfk4sZ?(F{<#Sdt{E_%YU#%w%(L0W)^9 zV@E8S!L`D5W1yD112y{kzzWw&q_I}b?!<-F-5`i(D{}`v>GR?4#2cZ#($(s92X67* z>f7eO&Ci(5nWh9Zs$$O))+irBI+f)@#=L7VnS{kPt=8oZ_t+FkUx7Z1-7Jam_4 zfw)Pa(J!L7V1TlJ7xUn{crXplm3Fyw?eW2X5$&}wr9yi=Jx^Tbu;lvQB`&*?IQQeH zAAXcnyj)_0enrl?>hJd0fmLn z0whcz1Svqm3Pf6Z2St}vo>GIIRd5|VNgz83Bq2a{DoeU=rnws(mu@9)7r6wx?!KM4 zCN+U+64y)!iQV_gj#9ZMFX*=nrU69RW^*d!D#@ z0({%y)&h`KX*Aq>7LUK8L)+=oVRw_Z)n5&|o>IAiFlg_QpV~IUAQQ83Fov8jKQE$zC1qMkz9Xf} z`kjO7JF;h4zjOZF`yu_#(ej%Q>37!L_250sHCW@S@mClppi4e(KsD#djfDm0P-ks{ znlEXes**cG>g^}nFH1e;2fLOY?Tax-&++6Mc$6nK?@B!7*ER88hMxI9QcwA}Ot0F5 zz0ca9>2m!!P=%+9W=3^6Hy_+VVtx5;`aHGxB7-{+wCGyWn2^7ql}HC!-1E%EYrV!Z zyiSksO%blm@LJud6>LLB2(weXu{*BM@+8*g(%3)gZj&vDv&f4~D6=Z)}noqXdN z?lvO4N`H;7kishcAGuGTfr#h@UJY7{t}5t{@Qo+AF~YfStm3``uQ|$Bp=*7Fdm=m# z;cnf16s+6d$!~zX8j?;LsOj!6M!3tpqLVZCS06TVe4W?$8lXow{@i*m*M9~5wR!?F zXV5l%-y%+f8Fin9uCSyIeX6PH2e=5RDV>EJIzn^;(*QY)sw2enG9fH}z0a1g1P=GxV{SfCb3zreg%o%r0CwJxH zXQ$D_S9^_i5$`P#z9Yi7iRFinNDJ6lOMwH%h6vvp;hQh>n_8&7w~@C*`0WwiigpV( zTDU&NH$itZbQ{EKYA3lLNwiefNixa}N*67n|BSEB^X>X&-W1`Dm$|QnYa=u*r421d z6)cykXcnAi9h&O}0M@GjKMo;S9YBZ@?hrcjE{> z>mvN-lYC!-U>i?1@C7w#Z5-V?$IN=~fQ z(Gj=*GO~u!@{gJi2LMap2MfPlp)e@Uv3)m#;=UZZ5fmk~1{B{fLhqv!cj(ZxqA!4= zEA*7&A5ipDif#c7puYkX-?&2G$0TU(vq5prhK?(m1oeSG1d89<5dB{ZpZP;|N*+-3 zPdK~qF)MTt6yJ_QXF>6!6*>k=`hTVS5a=&J@l7@qSM(hSiEjbLJtnkM(GPH*;pZ&$ z5-5J}Lyv(Ppd+BLZ(j-&f1ybP0iW4I&w|#2ei4-7(*=qWx&;s78wJZk@R{sb{hS=H ze^=37MJ+`)DM~jq{OL3g(O)QN|>eenY>Zc;`3sP4IN@bV>}3MJ)TzGM?_5i~EaZ{p-qjx^peo&zJFSW&D9M z{<~#-XBq!N8UL?kd|R2lp)!8BOrK(bzfuwJA|+1tE$K(!Vt!j0&#eAlWS`U79hXgfsc@RGKs1+ppIC(3E)Kxg0M0U=7 z_ZsueMta5dx#ym9fA{>({d)ZI^M9_E5+Yd%{6H;%nxODg2Ng;!)EsvHkD}QPLmJ0G z5jtQJtPbpiqN=IzNXlp%`eEhB;Wb^fzQX51JZ$c$BE*8m5^@TKD5@F?_YC!_$x-< zh}RzovJlPj2|OMi*&HvBNW{WwJkXEf74dzB$0xSbtxe-I@CJHLumv{9_a4XF&1rsp z%VvBF;!6aAX1tF~ct;-)FLg4pA>V&-ya*5L2M>q`hmJv-DPC}(A9$wJ zq4;n#9#Yk=&cY0x;&{h-r?Zj}yi;PZ|4>3P?U!($8X1JuHH@md{ytdXcxl5-5*&}K z1h#jdXrs)Z-)Nj6n)xR9`L7jG@Qdj+h>!0{VPUYC7bmvt#z9Bpm!O^j{}PZhAl+z& zdI)M^LB3eUUN5w5*7kd}PdsDU#5Lsa(MIoTLs`wgb#Z02L!0iX|C8ps*{MzI{)yY4 zkKK{b0j!$;1~`Cn6Fivt#_ck8iN z(tUFWfrF%vzF(F*{o%pW6;eJ4%jaP_kFG4}HqDpO6+SKISg+!l-j{Lw_$ML+o~Mka zyvy?Ru3(hU6PPZq&(kHAh|BBqbiv5eC6T8K1$lb2I8Sfp^RyPb&xm~v7Ci?Xa-Ok? z#IaiuR$PvquR+X&u>GWs<~-UEBrL1>mL`=&Bgcy@$BQh-7fb{ft^VxTKP1f$yKYfa z<{8=fBC=qbTTd2t0c?snL3V*{ii|;aR*=mwvW9IYPc|nu#Y~>;ayNvEoYwOh%eI@& zhwfj3P*{|6<`c27!HM_)_)aSGMk3}}BIa2l%qyLRqrzZki^zj1v!476BcBoE=NWlC zGH?WD1oM?v?OhGCB~i zYjribn(Ceo#^6Z!M?yC2?k<8b!{N&9|%PwClNzUCSuVPiKNuzP!Dzx ztnnWBEDH>#NHm^8r9T=9#lqMM$3r9@9%i2Kh=fN-VjziQ;A<|KVhxCt7^7q1I2ryP zk*cI8Dr=~<(kXARtdgqXF0(ku^EGhC?k3jCXYF>lgG*fCRxP!cTPye5+w4zOJYVx1 zd=XGeEW8T`$Sv#CQu81jVtbNdlb_=}c!G$H-QyKx57P+w2A3$rXQt&DP^?Gc$0p(P zz)A;yQKarD=#oQnp`ey?3EX9p<2(R^7Q2X=^OB+U{i0AieuZi8fK9fXJMt^ksu2dX z!@onV2FHPR=ntrEMU9jm;xljKPp{N{60Hpq&OS2D+K7U&{24VD*J2+tO~kU0*IPXB?m79A9E{wzF9*Zvi(O zOZ3}-PD?DTn|NOA@E~jP?7||lf_)N^SsM>J>gS_B-GA=ks~_LV?fJA5bo>t_1eK)+ z`u_u4^!5h^AEW57)81_=c>A$DP+c-Q}nq!coQ$lzUA_}&%#@+PsfaJNAzvWuNy zH!MYVK~Vbs3q%@mO3sQ>TN=DD(jADng2CLsFU}6>sC2$=Ik?4GM#HZY+@8K?`0+T% zMt(8y%Wyv)Pm$j?$hw6cZAto1L|rs+c|YLRU_seBYs90tlR+4eZC2bjnHLbo5G z_Mg!zH?_Ws&Q|$TYB@`7$EYkvXc@#-4PzdS&>ddta8rv5LimhU8X;`IPIr1~ZJO3Z z=o90#*-cx$v?)!$Y!1PS6I#yD@|PhRFO}qPQDS?Y+RAOa3&`1k93npi{M^ubmTooX zdF(oU%1d{qX>EiyjMM#YdcaFt)3iB7D}buQpt_Y&eS}IcQ!<13JwaPw{60vko9>xqSfcF6_3r1;LeRVKLz`LhEwf%g|L%r76;`ivmJ+r($x+LeKcr>gpW6VX$0(O{)-AuDN+!SjyqrE*sWSTp^ zT=()9Y&EmvoRSi=ct&Lp9QJ^y9j~J+B*gjg`elB$&r-KNnxPBEYiw%j3BN+|=i;;D z9hB~m8?Qam(nT)$@%|(6jng8c9h3Nu+4W;=L3}-pk=Af@e!MYSyqwm&IES%@3&!hg z3<-$&`0RKR9(#1W#_sNpuo-FWBzW`ky(;n9TPplWd{(@!rUPPu^YQHzn~bq4ndXhh zj3@AQH-_@#b>_wU?_d`{Sx0wj~vXBy!Ej1#i0`+^YJY!vK;MvfAq+B zp{`Ek*=xok2iqgfrdhvZc523IWxV}Tcp35NPWc1&A5pYCeBm~;r3b5PDNS?keJ~*7 zWh^zT!9^nD2nn`#n^XxhbAH<+B4U2NHS+u?C5j<=F--uU+>>+gQC&(XvfFYbna3mD1281WBwCoca&F_L}LMlv>;(C?1uLl4kC z99A@Ob4(EyBi=X7w0_!I#)zJ!_)}*wxsirnIyR{d2JTLhG(Mylp=o3Iud0#!r;r#) zecXs=^S!?T?-6~Be2lb?$@S6oLy2J{9hlYz9k5R{oYjtg2I?HKHW<6Rd73o+C=N^O zLzpj#Z}x%q_Aulr{p^oz+@*GC!j#mfr`|$ZQxN7x6cY_enD zSp2t2GBB2tnZR-8p$VUvmoU>#AmKA9{mcxYg%j40wGq-STq6a;Q~&@2Mm-CfHR9)X zfAx1-1(W-sCUF_NA&cEGozU-%=pwNZeZumKkz$JM|vHwZqfNOzV?kktY|N=bCnO4UFDZP$Rjr>+Q@n2ig&G2%(yu1;YbpKO%+%k7Uao)z`)i4YF|Ge;h~>6Mo`I~$ zAIpP!AO8CTn56Wv^%oKss}$|jsM;`*Y?#0aKmPm5&briIVs^3-I`ya zyHuf@c7<+R6}p+yZzl9xDgD+=g$DA&p+Yxi@|#53IQ;V~bR(tT$f?lnWW(*;3XMNH z!gxv_mle8A6%zh-h0+ao;=@X^;m%YkN|n~{SXHW{KjM}3^?MsCUkUd_+q)u_o4hsN zn#why4!k_pZK?s|-MGQKel3gkgsNLRx|*t6dg)mg?e1vrHN(-6H^iy~QFvFk9_%{M z+*rMFL$u8db-!wEV6jNFy)_bUt_-y`_OLuh7HKj=QrHoWVB8+*W%Obc)(Fi)EV`bx zvzGQl3>K`rD+(v3lq#z{e=RYCQy4s%;S4SKxERi^VBL5I7d%sTFl?tf= z;E;f`Qo`vLa8^nk;WgNfF+;eiMIh=5ZDo?yV@Xqh=*Tc?4??IU*JLd_iGwX<*8#hM`<9)=GtaIc zXUxIY!%|WH?OBYkLdek-`#xp)_aZJ-kzJ8IpIF$f3U?Q~I(ezHmoL4>ok6ZTTltm? ze7n=nKkMf&X81-Q-{9jFe(pZPokxVe-~xBWxDzJD&Nwdu^|bJ^QC{ljPx|;WKVRyKYzl{mu0xe#~s)BGUr9U9FZ!0-0kCPkQW_+ z%PwB%^nqR%l(4xkfc0~&g_n==GCzOH$3NlcE4;iS!&hXu`aUnfgz9PTP+tqGMM3TY zXoBg0mx6#ytsmviV%JNY$7a*mCG@KETigwt#nuFw*$LE9JFaUVu=ssoTe*5X$9&02 zUXIj#l-AQ;uDVV_=~`mJMOl1&b%sCZ=QRM0LIwFUmzNg?VbuCDHWOr00Q~AHkrFRf z7Y6~>$C*>zCo*}1GAaIONmonyOrE?_@*u*0o20d%9t5=SfafJ|pLwX5MjzQK wKyz3|zix8*=kj=F=08Bp_NYm34SL2{+E|k{?riL!e>F)D>vdv^_X=bG12LooN&o-= literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/ft_strsplit_spe.d b/42sh/objs/glob/ft_strsplit_spe.d new file mode 100644 index 00000000..2b355416 --- /dev/null +++ b/42sh/objs/glob/ft_strsplit_spe.d @@ -0,0 +1,6 @@ +objs/glob/ft_strsplit_spe.o: src/glob/ft_strsplit_spe.c includes/glob.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/ft_strsplit_spe.o b/42sh/objs/glob/ft_strsplit_spe.o new file mode 100644 index 0000000000000000000000000000000000000000..5cc94abf4c15c76802247c094367c617d2223a11 GIT binary patch literal 4984 zcmb7IYiv}<6`s4-v%9QeuOC1Od0-SnpuuZHXiH#uSn+Kx8?QoBOt+}f#a^%Njm+Be zdIO}PvM`SJksqc4HBoY18bQE3eh|qmw$v6kirR%ralbQn z?%H0=qa)2dbLO1+=9_b7X2-s8_a9%o7*kY+4{8BwJIALC73DG1EOp+e9G+_#dT9)b ztpk%$)u`EJFT{*Z`VWHr*ymZM>!YaQM0^+u{mTcU|l5aVw#PShD5U&@9Yp= zrdjiY>Q}yNo0*MsQue&;$(ihi!)}nY@mkx$qB|dNk6fQU##Lyya&lI@`i6#%$m@hZ zlb?;ZM-G2fylAYcjfUjo{ZsNgPf0}iiR9Oc__?jFS^0I;$C@MYd+|PNS^ zGyI*9t4bNGB{S+aR4U{{mGFq`biPm@sni*%zZ%_t-|_rg;9dE!yF8Tat-^v_9~mqV>?7GhS?C z(Bvt7V*KOD$;okavV6pT?cmeGS+E|$WMCe&n5Xo!n6+9va;7G!_owy#9DYBBWMHMG z4Hi8fs;~~1;E0j&V{M5EBV2dZ8k-3U#ZW#oQo)Iu zjDD#aGt{KupVCj}Ge2?vSe!`fCvse8kHuGCPfq5T3>Nf(7)2e#^(bD1VL3&UhwT33hfJN!qu60a17(z0q2Rv)1@Jfz0x+sOWb1A%% z*01E#1`(0MtVm%Fo=##$AA>EWkIg#IW$oY!I2~6IYs^%vole|-{>!BPxz zLt>$)_0N;~<+Oe|H}%h8m(jLp|2P@Er1d>WgiBh#w0bys zzFg5h8B&9zso*H`3j}ZXo&CwWiw{S*nAR_f(V4o@mFH7+V!Y9P4tqF}9bZg)_~*zQ z7LN2(y*i*R=>n&z{0!lIiu@RNiNtSP~A?^?M_9iz0N*j?fJ&Lf6vz zwWNMMtzXYY=x9D1B6KykzA>?_XNl0&w0?D3gl?pQH>O8uLxPqiD28d|_5u7su$z<~?n%HP%Vs|=CV~JP+qiz_}Xt-$8%5}>+n%`;p0>a@D=5* z7>!?^9rWX;tXF&_xZ_Ye{eCLze*-(TmcyiNIB99kzZ4qbIUR>WACk6_2148ZYtlA- z08ePfN2F~g6lgWSC2b4Y@Wi+1vv=i>ow6fA)};!WG38!CV5ua~E(k1@1lk0FrIJ94 zfPGp{+4wtxDVJJE5LiYi%ym>wWrs!C(M7)6%qcZ{N-@;dtOyj%h(M7fuuBjqkyHLi z5GW;$sc+-M3mhLqag(>>Q)>0&qrL-`l4pFs+JMOY@MB|$LVb#OGLW>=9ewIMFaGNN z_qM;2(bnM3XWLO5QAOw=`%tNfWI}Eh8e?6Mgt3-BDE6FE#rClZ=`<%!=H&n5LxH6_ z-+~cs!ciH=-(Q6Sk1)wx)s-v^mmPWY=m&qgQw!Zh?Leha(fky+a!8b2sMJM~lU)=w z>Y@`^xN6T`L{ixhLOYUR0m#)0=3RCtLDMfQ#?q2v3$tO^E z{hIIKVKN&jv@FBbH}Nj@aW}pghP2R zUm4)O0ACc~3wycO&mEU}rSm+0>hqKVRi1%bWvTJHTBBcmarbhxr2M@A={YS7CAf zkk7+hu1}$J&%Xi3A&ea6>M8C}_k~nXh`Yg>csk&$U?5X# zzvNDj`(@4(Q|ow1*j49Gc_A2k9)RoK$z9HXUl3FeO>>`rjF$%Z<6;?4`nc*o2BUkv z#S(Gx^X0u1)GBaAq(Xe5+s9oYI5j`OXOvtDz+e3YOL`;3J?gv=$oe^Rsyl~hC2!G6 zJRjMaC_Oe6jwgKF0UjRWArggD`uQ@XHNY!D0@(=h1>k|yd%)xVKBMHKI=lbC9U1O1 ziGjn39rtE|_+L!LdMS6}453-ENXjsF8=4i*K;ln=im$8FXg;DmK!t#ZSn$ zq&$yK()*<}q}(Fqaw(t6>o1c!gc!d`O8R;90uTpA6uLG^x6eHN{iKmy7HUpYnViQq tvuE?{%(Pw}F}y|WcJ9@}%xK)C*M&*%4Rd#WEBz~pM%Zr?Iof)h{12;k>gxai literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/glob.d b/42sh/objs/glob/glob.d new file mode 100644 index 00000000..8d55867f --- /dev/null +++ b/42sh/objs/glob/glob.d @@ -0,0 +1,6 @@ +objs/glob/glob.o: src/glob/glob.c includes/glob.h includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/glob.o b/42sh/objs/glob/glob.o new file mode 100644 index 0000000000000000000000000000000000000000..84693bc0c64519e11086b76bf429a6431e7c66d9 GIT binary patch literal 4116 zcmb7HZEO@p7@pnhY_E66-IW3si*iB*G4@&k6V#$@h?O8WS{XiW1RCLVp-z)EE*&QW7;pe+ZaRpLce)9}5ahI{VD? z&O6V%^X|;-_0+}RFI6+9co-h2Rj5N8j|eKtOjMotf0TBw-Ems_I2@XcYFLgljDpo) zkOW{DkHk738Rt&x4GIE<^eC3bAY=F=vW>tghGFIlxn#OW8r*u04rx%?PQgql>V!5m z4I^Q76?+VbiXOvQ_GtUs*s9550I- zSI&Bh;+-6yqjyLOT&rF(-JPK!ZoL3)2$YxQx_^`L?Z?Z|?5;^GaMqiPr+cjY<$8yl z7h#WO&-i3x9ImL>7dJ(S?)V%%8QwMM#k1LzWu)VM6y9a)JuKtvl=1AmYJ9d{rfai! z!S47jNxep?_sccviTJW{)2%m0o-apF^^Ye`wp{tM<11{4_qxiGt-B47K~zgOER4>j8)4fj>t;AHfdY~J=&7TvH#>kUF)@ajqV)Y zu06ng9~_Z-y;5(l)RUB9`A(NGIr}-4ObbQ#dh6x+Um){$Uat2$#3xOY;-kEXyU=fM z1nR6u{Tcq0`rRSMb^)oq29*lwIFm6bat~ zo&z4yPsEOrEO1C*1%2h>F#3-Ge*hi@o(2v9NA&WE5!){|qL=!;EVScY8eRdd0GM9J zWDaZdfkCa=*ecVo7LGQ7cqdig8arr1O%BWIV5j*jXTaRBr^tD$|Y zUN4^-bEQm`hQed3EFIsp@ypQc9hi+Vna_yG<%!rivgwt<^UjRt^~(LSy;Ss-W5{<5 z`5vUaA%!DOK=)7=zVwQ9ra$WvA>pUk8qOQJ2&mdI^p3KweAk`|EY z;)T&W7qEQJZ0<>Ay2K-DvgY-93~BD!lG&VyH!oh8?={TqR%0PEd*eA)Oy`q5X)6&C zjK;A-&WaZd(agpR%*varC&i>CZ+G;?3uZ5DsRYZ@!_1@$R=U8_^bya}7pTvm!8xnI zlCUea%B{gV?g@sqhG4BS728$~v6Xc=w2jOYywC5)#;%IOZK~4d^91kl-|L?rSXp;J zjt%Ebl_naXEuKWHFCWC1cb?F$nE|lH81vOBo}k}P$~Z<-Fzd=XB1>@K0ytfay+~0} zgL&y#u>iY+0HxIi@pOJUsEa_=C3tw&b^DGh|T-kW~)9XHh(uMRj-kHPAJNTKI)w*bV+ufpfA7; zLfLJ^8fZ?Y(&q9~(CVMmqG)SW_?5^s$M+l{qR#SDTojdhvpSdgDK3giovqIG`bqo& z3{fNM+_3*chuxyit!FANwPqb2FOmO^zE=SC>U96>z@0Sc1`>Q5>{(*0}gW)J&Q>FrRJm#Mt{?5mp`cb#0c>FvZz1GGRLRip*@7Ah5yexP%M zI=W&K*xkCg2u82Rhc11p(@?2+P!;?h@-U7csC0J|x7R>@q))qqRxq;qwSi}ky*kkF zL2X0Jwq5>Df9$@=jJ!B-@Xc>8&Cy zp%+Ugde_oK8733$sYW0Q?E*5!%8?%?cED6ienaP%LSSWZ_OFm9t`hPADALP@4{~x{5mh% zesUhhTz1UfLCr`W-# zdZzp-XFekY)$N>Vp7{5i`#$4gJF4m0V|*G$VPgIX4JifrZ29ME#`Z>bNJ#q1~X;hQ%=43_cT$=jy0{6XcppK32G*i qIU{G~;f#;B6vMX~KMyQsSpC^JerI>(;wIRH9|6*_kTIZxkl4Qi&tOad literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/is_char_esc.d b/42sh/objs/glob/is_char_esc.d new file mode 100644 index 00000000..a5a5af79 --- /dev/null +++ b/42sh/objs/glob/is_char_esc.d @@ -0,0 +1,6 @@ +objs/glob/is_char_esc.o: src/glob/is_char_esc.c includes/glob.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/is_char_esc.o b/42sh/objs/glob/is_char_esc.o new file mode 100644 index 0000000000000000000000000000000000000000..ac1fd1aff14eb3890e0e8608ca0adee7ed45fd38 GIT binary patch literal 2588 zcma)7U5Hyn6rM>kH|Zu#(%m9fi`<90cEKj=vaqFHwV{dJu3M1WZTF#NOzz%IQnEK8 zH)&I`T39WHAZ#rnzK9^G4;6fp7GI=&@IgU~edt3Uq##sKSVYmTi}jrONt4^w&4Dv# z&Y3gcd}n^{{eJDYf5U{(Ab|!n1X^Rzn4lorK>x1#D+k&E>pT^VMxG`S7R;xJN%`YLn`|2H2 zt4}LJmp9}m@v4Or;(-199EG<-;r%%vp5Rx@+kU*Z4{uvU0pBye{geC}r)v+a_j8r~ zmYVqqi7(dSbmauj`@aV*g||=PMF2;IL?lW`Nev03?_Z_t3PgXsm(=8CHOT@zls_KA z5BDXB3DF^J36g&lbY11gAdKU{gS-UVD_F0-=e_Yk`g2zMXYn>Jvd8UGzRn%bPT3?q=fTW$@l^H1LOwk?;gz^uJIyCZ zPZ}w^4Fc(;>3Zd&>nxZE0MWAepbH1S?7UX>2rAt|pNx;NU_5C&9^XQTfqNhY!C|^@ zC>Y-p-5Y%>c3|Xrs4U1xK!pyBz^8Ar&t*GEF#cRL3a4fy2quI_g&`MV2jm5fh@*>< zr*Tt2_DdsL{a5K;WgVbLjzI!V&~s>lf%CPB@ZW(JywdCFB|ntjE1j+v3YW`=3F07dKNjD<|KLhVANFaJ(0Cp3j+2yS3gGNo@W zhWvByg7o5Vl!I>zbt@)aJQvu%S#Gq%4Uk=sN$EfF&CpU@1C;7_LV8~SJQTrUQ}-$blaxhL(i!5jqS>P*1n*jz3k}0{Mkydt8 Z*(a0*gNqt_ltlsw!2(A>c<&P>7%g5T4!5t{vO4of=9C2w6(`Rk1@4AF$73Q1WxBl5A)QmK5-ptN??|Z-d z^Iw1d6CqMGLIWLxHgq&uDC7impMyupE*C;>a}6Z$fk~_>4nl-zS2}IK@B0@PS1Gx0=&9}85OVQu6ZS4yaI0?HW}Zit^1 zmB4)?GyH%Mc6|f$Y>Q2ItLB!4SU%HF#Ty~BvoiQ0@HF&4!}*h26~e2mi?t?p*Dnxa z_&u27V#vJL65Ww_(xo`jdeCPZya!Ir^$^4JU6ptr%c4Cw-<>1)@i|CyZan5yF!?Fy z9hv_lvf)`=oE8MwFR zqs8sT{d>Q6yWL*WTR#@~;$)YXSI%ZHSDLL_-ObMBW^yyxXKV+z{rR~WIJwiaxfh4`aza` zA0?%{$wpH@?R@0Cd`!jaO5iNmmGRTouI~_K^z7^atv~g!~QC zHgZ%dp;eT>lM`qa9s{ZzyaQBoZD+I04{`sT<2E3hFH3ISKVjp&)1##n-H6>VR&~v& z>M^!U`nd6pK4C2BktIY+dTd8mjU`pZ&=~kde{dr&?Nib|AuS9KXRJueH7RZa5q)MH F`WG6PGWGxf literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_clear.d b/42sh/objs/glob/lib_perso/ft_ld_clear.d new file mode 100644 index 00000000..dea17772 --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_clear.d @@ -0,0 +1,7 @@ +objs/glob/lib_perso/ft_ld_clear.o: src/glob/lib_perso/ft_ld_clear.c \ + includes/glob.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_clear.o b/42sh/objs/glob/lib_perso/ft_ld_clear.o new file mode 100644 index 0000000000000000000000000000000000000000..f35314f32b74db1c346ffe4c5eddd3619b986f44 GIT binary patch literal 2672 zcmb7FO>7%g5T3W|T|0KNc9N!~1Rg6eBHq)|~0p>9!d7dauG-J}{6=_4kPCMk$wSxslT$>-cZ zGc|wazAtALF(EvH{;3B*p;!d2l96IrC8yY`SdC^q2wB$gbCah|$j2aYJ`j;V1i$SB z0V{op=ho~X6vn$J6NSB@hXT9c6^g~WbAi_1%}?Sj{ZG8ASFTY>7_UKxhjN=6P-*i~ zHgNyM5e3`Gqg2oLuU_yfPGcutt}7ehTY)F*(RO7>yv2eYPz>{vc!K6W@Cv@~I+j;h zBzim6dqlkbm>_g#PktP)Ry-dZaG2ksz1TfS+Hm!+7fO+>zY^JHQ9rd$JZ!oEGR$v;8XiTi_tQP`?Aju(vuU-wrK(r5teN8+fsYdcFD-&U zA|8ceaelAhG_+o4!7A7Bba{bgb>9bX3cLya7&Zl-a3KM(Am?P|_vco<05QDYTLSMB zQIx~JAW7}QkM<=+2?X`D_fAfW?+fAHnnB0#pdx6{VAs5+ z<2Avfe}YdJWXW-X^|L38K}|JM`iRlb25=9R3+mB5%>)?ygBSgA~K27uVq)D`;;{F7}eLa}JfBUm< zXiWi8w3#5GEq*TTPW-)cXm3alP$CL73IiRjhCd-{70z>G_M^+!?|gW90{zpd zv>C*gcIO}}3T+I9Xt8*>BoAT|#kUY!o{6J49fIf*NsV1P1#CIRQoYgGP0XTxe+2dF zJ%VYs<>|ttk$O*grH^kUz{i-Qz%-7G{blsw$mkuYY-gW9)wA7Ji7xbxR=|$Ibn2+g z0{`%Owm&L0$+T$vcP*~ZYss=^Ol$hIrs@@K=r!#CPGiS3b)I5z{UuF7+o#{s`YC4` z-8qfDuIR`KV4jm2doJJ$W6yJ6&kFmbu#XChhFIz6gry57i2*4iIO%YMd8ZE+Utzh9 Otu3A4f{+e%IKaOKv{5Pm literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_del.d b/42sh/objs/glob/lib_perso/ft_ld_del.d new file mode 100644 index 00000000..a2e32a1f --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_del.d @@ -0,0 +1,7 @@ +objs/glob/lib_perso/ft_ld_del.o: src/glob/lib_perso/ft_ld_del.c \ + includes/glob.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_del.o b/42sh/objs/glob/lib_perso/ft_ld_del.o new file mode 100644 index 0000000000000000000000000000000000000000..e921ae862f30759e07eb16bdb232f1cf70acfd20 GIT binary patch literal 2880 zcmb7GZ)jUp6uk?gaFw^V0qNE`h55|iCL?``NxF5q zf|$A)tI&QL2>RV`eiQ`3KOiXT1ceC-MG!hr=m(MF-0JVVcW;`!P8Sc{bM86!oZma= z{(ay6_4`dPV~U4?p>?5^IamY@bP#QajQ>J$@&&C6DRp2nY9Sf~nPx4!Tyy%4eq!p> zi9KEReij|VqtAZtck+Vrs`Mdgnwe~BX~C@4Dz@1)k3Jipd%Ec&aW;fyQELv#jw(AO zC0?vxMKCpTxT;FgwL7Sh*5~xbglF`TZ#HR%!AHO!?eUW3axrUK$wf+UU%lUm zuTO}CUbt<34qhpB#$I4|ettRtp!*!b-sup}&aa$IyYZqfypKD?tDP_3vfep?mlOH@ z(jguWoek;E??YF9hED+R3D^3jON*$pW-eLh3RcE6XOHf=GPWu3BEnb(9-01@=a(@T zUN&#$Dp*}7z%*U=f!MT@0&iX536%vH%ga7Vx&Mj<%SLq9J1OuKu>r4$dbvV#io} z46au{07l~K?sqbz@x>OLC}0Z#-A(`i6I(_j9)@`n=DQs;KAYHtSw}FrAaCUw%?orI zBi*QfK63iAI34N8?Ci-z5_u?H#65I)d<05#Y&81F!>n3K#}0osNTbwDh$W^ zaiNa2sXWBUsvUrEqVV?hE1qB=KoE@SJ zx|wl2Zpf2Bk~R{NV{@L+PX{mGpnB~hAfw~}YKqMwi54Mxb(@p7bc+}N2AH0d}($Lpn+&&$VA0r;fek$6ED6(**cyM7mG(IZ6vc( zUY=vha##s>d-ZjA(S1bcZSy)I?e5COXYpY8qWV;i{2jRgAC(#4igG>J18(1VKv4Fd zC|0o2#ia~AIL%{&vjt~5dC|PHD}Bu!=Lsp?>;IGcwNpHl>X7zyr_0HqFBm z+&j$!+Dwb4L-S%xo8SY}d??2eOCjX%L-YjKwU2BMb%JYJ9m8P^doWD++Kg?;OM?$^ zT^Pf6RP6}&JufvyJECeR7nQ$B)iZYZQAcVqAs-O(9w8yfPn#E#Vnf6P(T;0T@yIl1 L3EfJT9-4muY$%2( literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_front.d b/42sh/objs/glob/lib_perso/ft_ld_front.d new file mode 100644 index 00000000..1e5baf04 --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_front.d @@ -0,0 +1,7 @@ +objs/glob/lib_perso/ft_ld_front.o: src/glob/lib_perso/ft_ld_front.c \ + includes/glob.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_front.o b/42sh/objs/glob/lib_perso/ft_ld_front.o new file mode 100644 index 0000000000000000000000000000000000000000..01aaeebbc2a7ed91aa745ff983c76fcfbf76327a GIT binary patch literal 2504 zcma)7O>7%Q6n?XtT|0JSJ2jLP5V8~~Edo14m52a|L}`#?B@*gy4pgJ{+HqVtyO!-V zPL)VVt$Lk0>t1?_O~5c!P@A$Pe368OL*)+7fZQnt$NmOuCXOY_T@ z9{a&;PE8nZ;Il*YUXa69%2K(wUXjgK!wXA!{_5<7w|gl8&OH@*p!oF?h_t?W53lCh zUO0^Rus<2|k{Jpdf@c+rjq(lVJIF7>R}#jX-8_!}j~{1#IluF3erLOrzqQ?=#ayjglyzjgxs{fzmCzd3X=QE7U2Ybe!tr46U zgESRdNaNv35*y{;GNPYQWPEHa&+|KY@YcAisgIa`~LI&$@cHxF?o*>Y}QX1sO3<& z76+o+kAGASZvyKRoCx8|BFKa_@Gs0~+~@gd>GQ1*zW;1%2L44TZvykRpeLaa-VhG) zBGEgR|6>xtSD3Az+3Nx$3`oFC+`K@dof4^$Nc1kU_?|us{qY}0>2`xI(rhC2zBV`N z?<3Ji$kC{PQHZ}2qZkE$11k340jfH7ZN0<~ao;h=Z9qETmh7s3z=nH=M^6gFjNLMq z4c)95F}4L`*!ZG82*}hRawj_$wMHr Ij~QbB0a8gd*8l(j literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_new.d b/42sh/objs/glob/lib_perso/ft_ld_new.d new file mode 100644 index 00000000..55f411ee --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_new.d @@ -0,0 +1,7 @@ +objs/glob/lib_perso/ft_ld_new.o: src/glob/lib_perso/ft_ld_new.c \ + includes/glob.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_new.o b/42sh/objs/glob/lib_perso/ft_ld_new.o new file mode 100644 index 0000000000000000000000000000000000000000..05e746d95d5503b0ac9d993dd1b4a39b61c17b45 GIT binary patch literal 2628 zcmb7GO>7%Q6rNdoH%^?`PC`pcQDrIRPoj26bBOpU2{dRM5()J$T+nE}c4AkX^V-VmtI4~iyV9*ipE(H&u1@+r?S_9HPFd1>0f*>IprOk%4rGI|m-ShwY z+H#aZcm(}mP}T)!Tj!7#qF5?ytciM~7KVj5y)u9Htxk%@`9ej0RrPfe7&E%;4xU$a z!*CSux9()vSFK3k06eEqsFf~Ly}k8mye$ROFJ8r8t}?~Ho-tE#4Z zkF8JQRSTEG1CG`gD7@o(j|pvbbY#C>^#zU_#rraXcf3!$#+Bfa`@N;`R#iE6pLiI$ z5HecdF&cP~-tTvh#dE9c*k?m*_|1x66k_SLM3B-}cv%&E0K70Xq~>?ue3Z&!wT9D` z3xw#s56TK}PT}opJmn`DD=RZp`u+1Neux;|@3#u?rdl+Mxgbg$P#^UrLkUSFfT;Zw z;0#={r=XvJMjh-Oa5vFAuDLtjkA1;z{bcX_oV`U4Yu&M1AMM($jfZyYew&utt%bI| zv&+&~bL3rHcxYc+Zrd#mvu*z{7nZDSbSzA1BLyJb-no~3@9sQ}Rd#9V;&S$KsaCI4 z{p@URDmRsV-t}-7oS2=0lbe~&z4QXB*WCP?S1shdNaAQ zuMgvZO=hS7Ar8*;xa>C8$gKh)k4V=}`mgO+!0D~-%AZX;}@IZqfjHa`pP?;+s@1a71W ze$cp4{+zr~I(}w^lG*3xZ7NoMG4*ofC*iUF`@L@2BdP}8Jzi@Iy|5eEVoUhsER+I>qhRP0+frMbN&stHM)}~1) UqW7W8#fP|4HxuiQNB=MV11K~?WdHyG literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_order.d b/42sh/objs/glob/lib_perso/ft_ld_order.d new file mode 100644 index 00000000..4cb5cbf3 --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_order.d @@ -0,0 +1,7 @@ +objs/glob/lib_perso/ft_ld_order.o: src/glob/lib_perso/ft_ld_order.c \ + includes/glob.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_order.o b/42sh/objs/glob/lib_perso/ft_ld_order.o new file mode 100644 index 0000000000000000000000000000000000000000..8e83fcf91e0018c223abaefd61b0833c519dfcb1 GIT binary patch literal 3136 zcma)8YiLwQ6rOuGbN6Q78snq3WlPdVrP*C2plxGKs3|wwEEMY_{ZVc=yPJosyURXI zlmw(v>$+5w(iZwm|MidHze4E`rGh906-p7>LaDY*Y76>rsnG3r?wyIdYcw7>bLN~m z^UXPD9`|1T_n-fqj42L=2HXP9aWp|NXdSpp#)r^f-!l*V^Kc z?5MIsQsSkv3CrA!cS*!0=j@~88fi(q_{c~;b&&8IvCiw}vf6Jr5#aNCX){95q$;y!sijP=kk_;qkS(GtXB%j$=g?e8(lzZDbx*DT0uHsmocxxR<|Dy4ZVp#>Q1a4UT}Ww#Kj)oKm-F1RfV zWppv})_48%I0T1=_Qrw-Q~AO~HWSErG68ooyU|gy6xg5S1-7mSj zJcDgJaEKh7slqhahHqU@gUbDktlDY_dmcWkZHmL^b`uC=x|cb8gKea2!%1zWjd!&x zG|5fp)zgXbm)&l-dfVv~{Ry^jqE0IFu;)pDVz#ha`T1PDv(ljK9fgD9SB{f#sAr~5 zSvslEa%U{1Lky$$ zPM)Uv zks~MEL(oky)rpEku~XvMU?MV;iR!r;45BKKiHbtc80b-fIuQgdY^I>wkPKfr zyo)JQ0VUvZ>ZjpF3q1+$yGK~HnmjM8-xoNpzT&lujXj62%A)X8lzToeT7}jCD-YgN z+^Iyml%x-0-BrYmg*)Bo(71h+TNjV1!>@3sOW(oUO5CYMIUnY#_8Qmcxa%zUYQsEm zntP+%@gvu@E8GPSUzD%u|R9fTzNR@<(Hg?vuPr-g)|N@)9p^g;Szkko}vooe;#_4Q5T%(SaKn#T(# R73-0diuJY$FM8`3`yV&Q%Mkzo literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_pushback.d b/42sh/objs/glob/lib_perso/ft_ld_pushback.d new file mode 100644 index 00000000..e9d3b84c --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_pushback.d @@ -0,0 +1,7 @@ +objs/glob/lib_perso/ft_ld_pushback.o: src/glob/lib_perso/ft_ld_pushback.c \ + includes/glob.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_pushback.o b/42sh/objs/glob/lib_perso/ft_ld_pushback.o new file mode 100644 index 0000000000000000000000000000000000000000..bad0e0b35a6d6e87b8ee186b693c26b6fc5704b2 GIT binary patch literal 2832 zcmb7G-A^M`6u&d&P78&$fQ#&|F-`CTjkJh75JeZVi_TU^%zhvyu47vY?OLW|KNeUa z66>m!7dG)>HQ9~vuORWs_`!pkjsF2JCTKL_$q+T-@7%c;+F@7fNzOeV_uSu{d+yiV z{qy&K{ETTnh6daMb~u_S7<3Z6N6!1umh9W0F(73FlM#o>39_tmW~uDzu6=1@=F*|9 zw9lkMcmzGu#u()WV~vC&%bLxkD)UyUTof+LI```Mg%?#fQ#fBp&y&VMmr``4kW_g2 zLRz@Jc%xLDI{KkWyksg>%v>Y<#{3lCio|RdFK5pcXoweYQ|9-R#51Y*AP4o6OLWiq z7L)dTrgRjq))0+-5ODG8+J*>KzlCI4r0C60;i)nnkC$|ue8#eq3zXiG`FhvULkc=EU-7f?J{e$XHhCB-Q@Q=WK!Ko$sE+yDJBMBCNFY~;aS0oN1FmsozXzUx^1vRV7tto{}?YpZ)^t+H!YSNB->{SXG4 z>l1rsb%cd)bO{Rq>y_Odg8bz*G@F!PZA&=J+Qg1orIBag6eHJ1RL?eS@am3Pdnp2a z$J`nVAdKR6UB6$r*H^a@5-_XZM6Y~3PUkT?IXOKQy_PAKas@j&5*v&SM*GuwTp|M_ zgD_&lL$RlyV5MR@KA$h7;`v<4au8jJ&y}tGtmRZn*;F$9RxHipmrLk~&o36P&L-o- zL#3>hc9yLnMuDtEO}b#0Gj^HT^mI6Mk2a#PWWGebi;OUt)~P)j>gK*s#5f)5)Vi<+ zdYGN>#!B=+_(IPHpTl~!bZfp)Fz6b*gZV<|yU7^Ak{a}0`C~xp(#G1{5s$Z@X=g0J znJyiK*gD)`vL7+d-QWSS-P_qyR8dgZ z*-y#pjJejEx5?@vi|L|e=EZT7rlJ@%5ainK^Y_NP-!9WU>6_$V6cN}+bz{lp9lHxBWR6u zHicHx{t9)V)#w{wEoZ0mm07$BM^6=Fbjo5`ifcR?IABz;79DF1DaaSrxWDZW-fqnB z&N&`Qa3jG_81wuzWH7;fGqAqoL3A7M@g5@!Gr`+Nd0>WzjhDF(RtLhMc0lbis=^gX z7|#nOl;D~%sT)Y1UBMTT)WBIttk%E~BoY}|bN$AWl#faIu#^xq&Ujr)+Bso36j3ef fOrh7?{hoeixpkpSLaOQxQnt7|tc7Hr{{8+1VheR9 literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_pushfront.d b/42sh/objs/glob/lib_perso/ft_ld_pushfront.d new file mode 100644 index 00000000..38ce7b12 --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_pushfront.d @@ -0,0 +1,7 @@ +objs/glob/lib_perso/ft_ld_pushfront.o: \ + src/glob/lib_perso/ft_ld_pushfront.c includes/glob.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_pushfront.o b/42sh/objs/glob/lib_perso/ft_ld_pushfront.o new file mode 100644 index 0000000000000000000000000000000000000000..404dc999237299048c23f0a42b8928105cd1056d GIT binary patch literal 2868 zcmb7GO=w(I6h7}w-kV7#nVC#%o7yS^QCr2##28`FS`*sn>zIl*ZOo=T=P#KFlbLaT zl2j6?9jy-8q#G?rbtSlPA+8E;6vYT4BDhfyx+z3Z$V!5W@jLh3n@nC>6Azqwe(t&7 zJNMkb_x+#0|KlanJcI_^1}+KLI)A&2IDddMYf&Ers~snwN?=>+dlpB$hl`#Hz^z?pD?$&l%gwz zrNS$e(!%Y=OK@>o=;wXnB~z(Nc8>9P=BMx$CFXwd^2MnV4{_stE%W<9;!SYzK`W@A zT%tS9w~{PQXREvM-rW&Rbj;`AwX{1TRQ+a?X_2BkKZU2txHn$1TrOnoVse(#+cn?o z^6MvLLdW;a&%rCDX2b%!^ZQZaJs|Ni`@|FZm6K^V-i8bB?S10aE|u>%-=pFX5KYPa zKHeuD4xNB>=XXWosriQ6CGfUzt#7(Ci+R@UdT~Bq%-HtW>FrRWk0f41I^)1&*C*J2 za?M?M*_=I9!Rk5#Y$|;?t+JA+7Q6ReK>ywAz7dhyWs| znMVTMS{N&$2kA@?*5x3CC-9{IDXd;wkLC&Z{f=RDktcAbhmANE+T_>E8wFBW8}4vM z9P50hlgMX~E**^6KD5K6?=a5U?mn^kJLyq)m|k*(Xw}=KKMvD#63q-)ySI&R_+IUR z!SCg(>^h|Pk-<*|KXzKL-sdx3SJq*@FGQx!!{wb%Td$usaTRVosA)d^+QK_R{}wH* zGK1?uhHuxe<=$hfJL*`ke85(iEz(6x*7%6UQ&Ef>2y$%aF`OG;{gmg)-(>&1h`{!1 z8OtvB*iF#?iQ&pJ-@{-aK4%)4kOtm5K9SD%*UrAb_|_LU7KdSvgGF^Ax!ecAAg(m0 z%GJX>ZpoYzcZ~>>=d|IeMgrm0&z3mA@Gf(O!rh<=O1Vi?pg2eju4?-fZ{>zTvT#)i1 yDespOg2$P1yvchh$bgdWgKRN{-fBPM>L=T&6W<$B-MW~R!?{oF*<``_JNy^ag@7mk literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_reverse.d b/42sh/objs/glob/lib_perso/ft_ld_reverse.d new file mode 100644 index 00000000..6aaf3863 --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_reverse.d @@ -0,0 +1,7 @@ +objs/glob/lib_perso/ft_ld_reverse.o: src/glob/lib_perso/ft_ld_reverse.c \ + includes/glob.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_reverse.o b/42sh/objs/glob/lib_perso/ft_ld_reverse.o new file mode 100644 index 0000000000000000000000000000000000000000..01d3e7cd0113f0f62790ba6e9fc8447e64239ecb GIT binary patch literal 2732 zcma)8O>7%Q6rNdk*X!7^ofy&-5V910C2EH#5&=>*5e?dgM4Oyc)<&YJkP|PpRi(0+v!$KT+aq`%+J1L6i1Bpb8olnZqltWhW zIThQ7JNbraa$4l$F8Ol#e6@Iv_}lAKe5;bPTfVY8SD`MQeDBKoZc4r^O+I8C^Cy?+ zw&Shl-1%Z{H=oy*4Ig1r6rh*FhijY$M-U_kQ7nnM zDpps;?f1cZl5ZmT%!VbO3|W-1lJd!_{pXZjpRseio09Jf*~tSRN#PFl(Yz!nA&LYD z6+Z}d5R!idHVun9*bC5Bp*^m&74ODBX*GVf)_zM{jSJh>I_cpp>Sr~kHmz@_Zu$P& zg-w>Y^d!OSfY&EXeBOe8%UYk^v>KBpe8j$=^m7{Y4H#&C`J~xw%H(aU!L7Bg(yx9w zNyjZcGjnP-eXdxol`C#~EHj)LPCsHhxFZgZ4I{{mj$|Hxl+~(scHXJvvraiLJY-k0 zb9Lbq1g<(n#f;6eCu{Js^XDsP3%Ts*NUbDnZ&{46wnXOC>Wq4_8Z~ystry)obLpw@ z=-zaMG(O}Ad$G!RAAc~O(nIm2ac{hj_hYKH48VRq(G!Y46@5DTaO`jl+fQej1dgU~ z3y!vhdV&#Z48R1v@L;8QC?1Ux1unc^7K$HDQ80$Zj`%Ox518{{ADgtoEXE!q19?6$ zeybjzAQO-R_$k`7Ji&QL+gQT00RIiN`?L-3ZHoFX2T|!7Mg1~5^FBo>ikMEVeg%#3 z4w@CHc2D?qm_hAs^AhZL1nt*`m`PdRQ#7azndXLy4roJ37SX9YcF^%jOKn!Nm^fbo zEO_O<{rdV(G)}*G*i4Yp)|a5pzSw8YR{p(mXue4AqC^OtS z9-vX!2&`s=R;KmH89y~Vt#jj$W}x0+d0-Ac5fpA@rF}@+`=y1UI*pg4jl(7YC?U5c T#3de#a;}PdKn3zjp+5ftnt^L3 literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_size.d b/42sh/objs/glob/lib_perso/ft_ld_size.d new file mode 100644 index 00000000..24e21184 --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_size.d @@ -0,0 +1,7 @@ +objs/glob/lib_perso/ft_ld_size.o: src/glob/lib_perso/ft_ld_size.c \ + includes/glob.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_size.o b/42sh/objs/glob/lib_perso/ft_ld_size.o new file mode 100644 index 0000000000000000000000000000000000000000..3f7da76c681410cc8fdb8ad47f9e0492cafdc7ae GIT binary patch literal 2832 zcma)8U1%It6uvW?nf*(4H(jl%)v}OUE!dqHqYWyWXj3;e1!>w^uw~ev$!6nbcG=l& zl9FIBVvX^k#Rn<0VnN!sQWQaufYO3ul`8tsM?r)LN{jfgG~oK3nR}DjNosP~bI;G5 z`^`D`-g9Sf-u>%eKVy=QVF0&)%L;}B7_<#sC+9sVOtGLdTnZbQj5taULAqWwCaaF_ z*oOy>9bUDCHp~^mqt~7fIeEdD6)_}rJ!fQUdEKg3Y`3oOd#(S_{*@4cv&cQa@%&Z- z7?WN43SP04wcTF47%h&AK2}|ZqppjW&SWaaNy@i5KY=&TVK$3bFh@!>#fx{2=l2uG z+f9oP`ULC8w{PA2DrqxsSZnddnxYxI%kdmkdu)mj`!Sx*+9`VT6L?}7H^xhs%SA&s z)8mxhntI>hZ-0&_w7g+{4qhoUW^b@JzsnqNC&$|x;L57-)a%NxoX&djZg}us-y~jj zs=RK!w>jQ5p3j?`#6#2Bkly@0rG^KIdS47Wwrlj%n=Or_&Z=HBCkkdx*N67GV%aT@ zm*CD(;F0UP=-)N{W{m1173{7vLD!q_gF46S<9P3KJZ`cuW1~VRDb8Q9VA_b@dV6^j z{LCkP%j^CA9{JI_#3(k501z!k2lyA5r2hl?5G3+ouY%n~XI!w`zZv~VYX0}s+@G=3 z{7gOd&A=U+lUkUmFWJicKs_}#Q)kh)AGZAicT#g-NvV0r1w2~l3qY^`ajVg2z=4O? zV<)clQzIpYhK?RgoHQy{p=2g{lU>QK#ADeax_?h^7mQ?2ck+qd%&KIye6f_#iiM0` zMs!IVsp`d?ZWT@$$t=^3Sa53jiPBgut@U(Uqk6VHrFXN{C`O@rm3Aau!BMfN!Y-D~ ze4=Jrg}iCx5(N{U93yOI(U2{fRRd0wJ`-iSGYN-D?b0KWxZ;b%)a{XWX$#g>PQtlG z>I?ZI&xD^1KiWDNf1wqpO<^*34aRZl^)#8vRyG)SCNQS%WWLDr;V?GOABCT>KwR=g z!ePQ=EZBy}gK;u?vCSd-8}{`5Xy%b&VySX3|xfhXt_Ul z3GzE~Js@|o;1y^$$m)GRcSVNl}+xfmN9e?X8)oCXW znRG&$=90@h7YDH6#@{GLK>+c66bPd3mzWBv;PVw`ghzhLjdXgxbnv6;&wt%@dvW@y ztRT50a057^Og~BxsXNj9JP>RXiNd8*hnO@OlVYv@z!^kQDs;~*EfY?oAS literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_swap.d b/42sh/objs/glob/lib_perso/ft_ld_swap.d new file mode 100644 index 00000000..b13b245c --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_swap.d @@ -0,0 +1,7 @@ +objs/glob/lib_perso/ft_ld_swap.o: src/glob/lib_perso/ft_ld_swap.c \ + includes/glob.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_swap.o b/42sh/objs/glob/lib_perso/ft_ld_swap.o new file mode 100644 index 0000000000000000000000000000000000000000..36eacd9012934a32e34e7b2f4b68da3613314f7f GIT binary patch literal 2780 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 RDCtOw{zqwf`(=o+{{c~4sLucZ literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_strjoinf.d b/42sh/objs/glob/lib_perso/ft_strjoinf.d new file mode 100644 index 00000000..ba0b015d --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_strjoinf.d @@ -0,0 +1,7 @@ +objs/glob/lib_perso/ft_strjoinf.o: src/glob/lib_perso/ft_strjoinf.c \ + includes/glob.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_strjoinf.o b/42sh/objs/glob/lib_perso/ft_strjoinf.o new file mode 100644 index 0000000000000000000000000000000000000000..838b3c00236c0e8326d9eb56fa0ac0f0d6a01304 GIT binary patch literal 2600 zcma)7TWcFv5T3L0t`tj_)HH9^|@;gN}^!JaU_yd(dAr5$Pt)K?-fe1mYYykvRA5RX@-J`|R}j zv)gv4Rir|Al=k`|0Fj~xu7xoqIiI&n%M0A|8^X=`)F+dtKkS5rIP22Wmi2W40F;Q{ z!K=BJaL4hUM1xUpYB9$icxI{8urE`+-SvfdB?)s-ysA@nX-XV#jy4bJ=Rm*%S>J73 zKe>Io_S-O>1>4(+_qW88aL}U7?517umP|{O7_TqH3t{)iGwb!5%^h=z%G=TJQwj90 ztm)f*>kIJQ(xTYlcztimZjMU4Uk`{U>Z_Yp9PeTb@6iGA{44cc`~5=Vm1TX|lvK7w zY(Ij2@zM#%czu7y>ht%-v)m=@)91_1O4XU?e0FL(H9$(f1G;qnfOzD(i|0>nRjfX{ z!pjZZ-CzRe-S5Gm#G8;isU*fKYqXEy*=Zw|^qq(6Qt+lq%THb8UZ5ZpQt}kys zq-jQL`hIh5gXO-Yx=>5xzQU5gxUtq20q9b8`6y?vPv1A1zv!Rdo21*N&(5AZrC+ui zUe$H<@xpLnSRb@%_#_OC52H~S8!e2y4qn45F4Wvou~sedI!3$2vQIDXqKkLEU_o)t zLvL|m#a)~?i({i+gqacq8DAg6EsQ4OPbn)A4}yvsbeNY9gE0Ud;Bh z!?<)x4o(i>0Xil`&rwKZ-%qD;t2qW0J&+r4wvF}M}%B|HEVUvkg z{c6;ztqJQ#9FxkeOW%;yPm!RA98J_ze4>prlSX)QNMc)p0$=c)_ubnZq0&WqlqZ6a zuDRrj&)q_b;_nwji$#2d0+HzQFwjt{_&1?5Pd32twd-k1|L*e%)XyMOFXX3Y7%Q6n?YzterTqofH)i2ra1mR3f&Cf`}k03Djt56AAT?_E3%1>$T&^u`Sza z6O=;1w8BK7rV=L(aN>x1tT-Sdka9o*jvRYIqLPs!PEkRa_hx4jd($>~(wjH$&6{t( zH-Gl8_x}1X0>DCm4Qd#*#<8(bQ65L#rr-l4p~h~|92D&%CXgm5h$2MOTW-McDC8t0mdJZ5hce zj>aojT^S1E9j3+Uk#7!&=j3vA?-JGD&rjoBP?!hBD^&_rni9mTDtr;x; z&3*a#c-7p3+~6R;V+!wx!u#cbc#>buaf5id0N&pR#A~k9?pyD5g;!Ag4o6jI*Qg9X zAcS8pUOEXGASjk>@!ldHg?_{Hr}jL+ z&zl#8I_|DNL5TkMAfxc672XdDPq`2SnAd%>`uvqk6^R(Ex2EvE(vy%E$?p%~N9Q0( z39&(H2XgayPS5CQ*KHI=px_G&|kayA(gzg>?FbB3TA^l@6^GoI}Hy?P^vV6jj(6qhj=KSG@po%uu)uHBZa|HHa!@MzZ!cj z_WaQ6L%1^>3>A3$5I%epeJ)P`Ma?4+iXV%`XzM;l^|vWXI|f7WA{msEzLBl|G1=Kr z9bo73n7|T@g^cy(itN*mT-aEzt&lfDEqdh-$Q%6>Ti_Jq?^Dyl#-s@*Ge4w27?=I@ zj7?m$Vp&pr-+$H@ZpV^DRDK<8%1`N=OQGOg-0yBL{(d=BFzF+dh(afyfr*ymuL>=o z&oguNlbCCLu{w?ZX;i9(_)@)elTfHi3Q@@_^e`q7{0gzfY$1GiNz_~a5=ytLcMN9Y$?L|O!}{m@OUyCgWo#MyCq9fVqi>+Hy{8#=PbwZ~ z$z@>YOoS4QM+U#=!{&KDTHqrmxOswy%p#9n;DgwWPVumLk`F9#!~BTH&2Mq=JF~@& z&v^7Ak6?x|g`pN7z%DbF3=_$~s!wK2NS-kEitn3gWuH^_DP_?RG4l;&=>#MsQyKwy d6t%~d{azmgUPk;=g*R4q{mYBpx+mY&{{eLDN;Uuh literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_tablen.d b/42sh/objs/glob/lib_perso/ft_tablen.d new file mode 100644 index 00000000..f64294f1 --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_tablen.d @@ -0,0 +1,4 @@ +objs/glob/lib_perso/ft_tablen.o: src/glob/lib_perso/ft_tablen.c \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h diff --git a/42sh/objs/glob/lib_perso/ft_tablen.o b/42sh/objs/glob/lib_perso/ft_tablen.o new file mode 100644 index 0000000000000000000000000000000000000000..a44a69cd5fa945bc4208da5f1c1dcf691aab8424 GIT binary patch literal 2448 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 C909Wc literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/builtin_fg.d b/42sh/objs/job-control/builtin_fg.d new file mode 100644 index 00000000..10176373 --- /dev/null +++ b/42sh/objs/job-control/builtin_fg.d @@ -0,0 +1,7 @@ +objs/job-control/builtin_fg.o: src/job-control/builtin_fg.c \ + includes/job_control.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/exec.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/builtin_fg.o b/42sh/objs/job-control/builtin_fg.o new file mode 100644 index 0000000000000000000000000000000000000000..4b5a43eed57665c1655614710769248f2677a157 GIT binary patch literal 4868 zcma)AYm5`u6}~gx8PD45$3CEhCCCKWhBj+c9?kOXF5q-XAf*YLkTz(r$FBkJjAM@p zkKG2b5aGBqK~?zCKP6GBpo&Jcq7^?jEhUvUq%YJ&DUI3)sY%yX0L-h1wM?z!JRbLX6U$NSs=eDJZKF~P^spthl&lhDLaQSLxh34cl%3c3TAxs8Xx z$*4y8JWaE+du$FMG;M2g+twS{>y^j}6yhUa7IZR(KLQ6xctz9nid{C$JXf^xc|2)8 zzJ;7=Dq>Tgx|){BrmJ}kq|S(@ZFqF(q5B$EzvF)WfXg4X@WF5zrN>va^qcZMMH}8! zwDu<8c5lj;N~g=&-Q@3d|2)38IL+50F7oWn*;6pd{ubeXT z*~%yRelEN7z4nC;uh)<_7C9CZuReD&bNT`y?dK{j(??;-pY3uk2jA`3^n%6>$L2j>z}>1bkpa(kMni& zS$((3ha`3=Tm5^C$FJw#iiqb{L$>&*TO)W*TdSH+8fHe*Hf?BFqH}=r#kg_@_$Xz5 zh4|y|yoE1Y&~jzGU3Wt3d2oXB4RXE%oR33>W31ryNjCD=FdfF$=e^ANQrwwy{CVH{ z6#r;noU<_KCK5S63-yn%C(URVV@DwAINgHUTxbcZe97jaTlR<5+WYGGl^tr`IiS@# zQ)|g@|@${p%|w9ly(G!=bT5HbS&T(lx*rN z?vS_iTtM$(#?Y@1PjHuO$7dy7U=D4uGoXw2o@+)HtEBmvSJ{Dl6729d0`*q8-%T|#!44{memL1DkRWq|P z_VtCvc0QwFf~k77T+W&{QSi|rI>%z0Ha)UAwmVy{7?v3uh%b&Wj@_*narpKRECz@# zTN3}mB33EuiKfL9>8eq*4O7eI<2p+WS1>=3f705SNhOvosT4H5v{zfgZdftHv{@-- z7noj1m04;x%bL4O43s*vHAhrjku%B_M+1G)sMxIH3VLk#&$!eo#=b10Mzbl$Qe`B+ zqXaHmW1BDP^-*hgz4(RqS-0 z9@pS51~-IGVPUvi@`a;vZ@5$FLMVxGD7%EgfG@lx3 z2#=(JgoyA%5TCI!>tb5?Y|a?_znOi;gFt()S2; zr?6g|@7Tms-zV5ZYcOeqnl|}W2>*HN;{%Gxg8Um&yh(l1%6~%RoJ~j2Y42@+7Gj&! z7dQ?{t4Mc?^I6~@K+h6dB+gd?z39;*(&xna9f3Ze(=_&ZaekD^adedxXimUFyrcbP zh*@G+;1$Rs)M5`2{sd@*&_PuE=-TEgYu3q-vc@w^%d( zt!xw+bfWfO3T;KfzV; z8&(wAG?7w{Po%sg69|Csa{`8_FeQ1Wk+VrX-c z^tRM1uaV}-_e+u0Qs|Tq1m$EM4skCf<3 Hk+J^)!&(91 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/builtin_jobs.d b/42sh/objs/job-control/builtin_jobs.d new file mode 100644 index 00000000..6dfcec77 --- /dev/null +++ b/42sh/objs/job-control/builtin_jobs.d @@ -0,0 +1,7 @@ +objs/job-control/builtin_jobs.o: src/job-control/builtin_jobs.c \ + includes/job_control.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/exec.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/builtin_jobs.o b/42sh/objs/job-control/builtin_jobs.o new file mode 100644 index 0000000000000000000000000000000000000000..dc7e255fb2a60e5e896e4a05d9274fd4db262295 GIT binary patch literal 6616 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/do_job_notification.d b/42sh/objs/job-control/do_job_notification.d new file mode 100644 index 00000000..b6900664 --- /dev/null +++ b/42sh/objs/job-control/do_job_notification.d @@ -0,0 +1,7 @@ +objs/job-control/do_job_notification.o: \ + src/job-control/do_job_notification.c includes/job_control.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/exec.h includes/minishell.h \ + includes/lexer.h includes/parser.h includes/ft_readline.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/job-control/do_job_notification.o b/42sh/objs/job-control/do_job_notification.o new file mode 100644 index 0000000000000000000000000000000000000000..90591b6abb4f69902f3c1a81ce60c228dd359014 GIT binary patch literal 4632 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 S322sAa>;}azL}*h#Qy;NyBH1t diff --git a/42sh/objs/job-control/job_cmp_id.d b/42sh/objs/job-control/job_cmp_id.d deleted file mode 100644 index a5e9d84a..00000000 --- a/42sh/objs/job-control/job_cmp_id.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/job_cmp_id.o: src/job-control/job_cmp_id.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/job_cmp_id.o b/42sh/objs/job-control/job_cmp_id.o deleted file mode 100644 index 3a3d2a516c5a0cde68f79c5e4bea0396fc035401..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3768 zcmb7GU2GIp6uvXNGdtVa?k;UXfPG2X+y&$k@tEHk< z&W|#@3*Prx8Q(23tj^2E7w}aExBDNsIlg0(Z>i+7X2|EqSIyhae7`pFJvKu=Z+G>g z?|X&J-!8f9hi1r!qVp-6l_a#jSGuUVbKNs@6^gj&E=ZHgWgiLK*BFyut_)NxI`o_QQ8-Mg{ z-+28@-;?#TPwME;T&q9yeh=#*Gca)f-I=js&2=i}Om}uwc2#DDT|yDB>|O;UyQV99 z{WZd^*}3hN!IgHU?A0nIjxBq%YB`0hEpl62%+C$)tZXmjb8EWX5zDUbwz|ZmmvG7+ zP2pMWUB7nhqjaCX=x>y@^ zDz30C$B)6YsX${}6(6uIAAwy8ZCltjJQ|$#NWSK;&I%%vTP+p~!tVp708nNrS0~%G zNHVR@PtH=>@a@$sz&2%lOC))dd9%4Z(cgY6DlDQ2RYLvkIGC4;NOGNNB8jw=AfnHK z3g+PcY*!*l(#+i7$oCF8tUTN(~H9n6MzKU@klI0M2DOn8*U3cfpOUcQecCAE5K!(PgqxC5wo^sagS&S4HhWmreZDo1^P;2Z zw5W#bQ0T<#9L$S747E*NXb>Wcx>)TL#(s>B)5@rwQR6U1KhwHO?KF%JF^X`Tm#Cd- zV>w0+txmObuFyZn!*PhVNIwPjG$h)mllVnQ%chz>ZxR z`x0tytj+iadIR8C2P66s)}6FwGlnG?6==;t3?i;?!uT9Kj79oG81e*&JQz*W!_dgx zl10}SHx=_n48DNG6AE}ua{6W~OvAi4G?OsX=GM?m!JKPaFu#Yy(=apUUJR4i-1sb* z-R8m2Y=gO8BpAs$NIa&r{>Eo9_;!c{zc_=B8%mU0XDF$iR55?XIG@B7jeCZW@9XIU z;2&w!;Y|@>I$gxk>wn+Ov>AjD&qCOy&ZXTv_dMGF@ri?@4bnj}wBWZ@ht}}B$aD@c zMn!J=w?KH>HMB z_3HF9149cx+VR25FC991?%7|C&;P3BxkujkdfDl%NA~}bPK+J-0$isdDqeUtWCi4A z$UTre#DhEm;VemW~zi}6Jm8qhy_iEbuJ;6F(FpAr2nt1iV5A%4tR%6 z9%m$(*1|+n_G}W$uC$U)#Ec1eag_y-jc1u==g)`7q3B7bA6IX04ax#14}4Ye89Wu` zuVgEFg=;{Rrb`-ku3f70?#k8OT25LyXLa|D(-C)flM8^HC4U?z?{M7oSjD%4zkuur zcRz5%7^Tw~M=|#Aap1Tve6GN~8Ui+U%^> pc9*7RRTXc&7S9omo|Af+)QhBs@}GYvH8&~6E^Pb-k^eA+{sruW4f+58 diff --git a/42sh/objs/job-control/job_format.d b/42sh/objs/job-control/job_format.d deleted file mode 100644 index ef37f587..00000000 --- a/42sh/objs/job-control/job_format.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/job_format.o: src/job-control/job_format.c \ - includes/job_control.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/exec.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/job_format.o b/42sh/objs/job-control/job_format.o deleted file mode 100644 index e7802527be6c0713c5552b73f2163ff599ec5867..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3992 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 diff --git a/42sh/objs/job-control/job_getprocess.d b/42sh/objs/job-control/job_getprocess.d deleted file mode 100644 index d5cffe0c..00000000 --- a/42sh/objs/job-control/job_getprocess.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/job_getprocess.o: src/job-control/job_getprocess.c \ - includes/job_control.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/exec.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/job_getprocess.o b/42sh/objs/job-control/job_getprocess.o deleted file mode 100644 index 63c4d7657800ba7932ac83846768006a7d22c8b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4356 zcma)94Qw1o6`sBG?yc|NKMiSJr!92jnIR@pTo&ODett*gy68E*W1vTPft6xAXl&eNPphI3Dq>HGN6G z`K&ENY>&_9Q=elUeA!y9oUGveP6pe zk9E3MqjE>7GHY2=yZwPucY0n*fv3U8lys4Q>YKOm<%(9mj<4%Yu&mbeAf@;w6yKwY zPq_liFZwpMUvK47MKZRp_lV+~Qo+2c)_dX|;^V&Hkq{B@fMf6*AtzNmJqbO*$B^3~ z&5f_1sFG}cbXj{kv-sD{!aqkA?|SV~ahAg~`U?BS$+MXy3eDxr!d=TEadMhZmSibp z?%n@dW@&mkv(%kgoPH4|%Z)E0`9O)8H*muAJiu4`xi9!05^4 za}TVpu4bN^(w%CtB`YR^{Sn7oMBs}ryX#l3wKoKX0z!XqfXJXYsain z(K=GNR=MQ3!toU8auru7Z8@dmIl<0y`TetXB&G!6m#dXRs!?%Dg-UKVRl=+ae}8JF zSxWN+-^G~iqjRCc3YM?@A(4|V6Ov#4J;SD!Cc z9bsFgd^uYXu1y7U+p0>ywj=_-?EAK`ZH!op*)C@5a&@d#gk!4-CUYcpR491eLkUJtfuFzYK`XWMwUB+I|$sO0awCmzMdN7_e`r=($H_|yU z46s|92nXZuk9;7qExNbogHa^8E&>YL+k@Yl9WAb&5JZg)P~JRT3wpF*JQ5*^5N1pS z<9mDPjG@vxd0z-`0d{jFg2$1yu}Jdh+E|@qV{4>%7S}YsD6ttYx)BqT;BH=quOwwgT07;or$MiYj|Rfh%{%@y#-6nb}HAZn&y zIrQGc*djwPGiF4K?u79-h#A#D5#8gvF}P;*!@e7bn~Wax-2~i?(NDp>05OwrQ_;`C z+=z`eyWoyRPy22++zAom7Tm{V4%Z%1l|Isgf??Oo`om(>RK$t{1ZI6 z9|Ks4FusgoKLONvP522Y9Y4RBkM7FAls^^JC??rF%=^9n*^i6gVzSB%gdX;Ww9F;c zJ{L#$YBT@k#_&h3R|&`Rr%MwCw2tc|iwIcIMuPY#wK_^ZmfEZc5~`=wI<3*oPw zIQ00*|GfUiV*k@W>fQa=`RU}T@0x#n;Gy5VvAv_1Oh%7B-UwWm{GHv~_w;9;dhiD? zZvEF!Pwaeial@K_?m!%L0& zfB6_ft}$mZ+H30YB}GePlCo*XZx`B~Ni7)-nLG#>@70i>zfPLfRW)CTUGd~Sfm>o; zIictdcZC6c6Y1NL{Kt26fSZgOM@@4@YH!-)q5y zria6i=~o-B9?I)s<5oRs?9!HuDoddjGa3Ke!OL9Cp1=YQyd!08@kccMq25uN^epcisOv)O2ZZjcB*wj zH@RYSo6keA`MKcDr|E(za2Is5*w9L$oO7!cVdZg=#O*DQKQ7o$?;2{^^EK|R5dQ@_ C3!E4L diff --git a/42sh/objs/job-control/job_getrank.d b/42sh/objs/job-control/job_getrank.d deleted file mode 100644 index c3aff64a..00000000 --- a/42sh/objs/job-control/job_getrank.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/job_getrank.o: src/job-control/job_getrank.c \ - includes/job_control.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/exec.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/job_getrank.o b/42sh/objs/job-control/job_getrank.o deleted file mode 100644 index 5de045244c0b57ea44ae4b0d29e8845d01e5c689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4396 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 diff --git a/42sh/objs/job-control/job_is_completed.d b/42sh/objs/job-control/job_is_completed.d deleted file mode 100644 index 48c70771..00000000 --- a/42sh/objs/job-control/job_is_completed.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/job_is_completed.o: src/job-control/job_is_completed.c \ - includes/job_control.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/exec.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/job_is_completed.o b/42sh/objs/job-control/job_is_completed.o deleted file mode 100644 index 5621a926880a10ab571e0cdca5a417c6caf07919..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4832 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 diff --git a/42sh/objs/job-control/job_kill_all.d b/42sh/objs/job-control/job_kill_all.d deleted file mode 100644 index c5740e59..00000000 --- a/42sh/objs/job-control/job_kill_all.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/job_kill_all.o: src/job-control/job_kill_all.c \ - includes/job_control.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/exec.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/job_kill_all.o b/42sh/objs/job-control/job_kill_all.o deleted file mode 100644 index 6beaad1c37319fe28906e588e6de7cc8bd648166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4188 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�zxQ$feus$DyZlZAhcURmk54LI~;W%9HI}J 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 OSFeIzbI)S|^ZXAXK21*m diff --git a/42sh/objs/job-control/job_update_id.d b/42sh/objs/job-control/job_update_id.d deleted file mode 100644 index 50bd8dbb..00000000 --- a/42sh/objs/job-control/job_update_id.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/job_update_id.o: src/job-control/job_update_id.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/job_update_id.o b/42sh/objs/job-control/job_update_id.o deleted file mode 100644 index 6fa80ee261f04c483b70ea614e63daeb4f2536c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3964 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 diff --git a/42sh/objs/job-control/process_cmp_pid.d b/42sh/objs/job-control/process_cmp_pid.d deleted file mode 100644 index 04fae973..00000000 --- a/42sh/objs/job-control/process_cmp_pid.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/process_cmp_pid.o: src/job-control/process_cmp_pid.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/process_cmp_pid.o b/42sh/objs/job-control/process_cmp_pid.o deleted file mode 100644 index 74022643dee25e000a804e8f2dc88f12fbfb46e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3184 zcma)8O>7%Q6rNpsHyb-~oTh|CO;aN$X$y&+CJ|T=Xab>fN~oZ}9Dvn&?Zgg_*Lc_Y z0V-Mvl}7EMt>C}`)B^`3kSHQ>;RF>N5LGW6fC~}`2_%quKq6|z&-Zp`9A}%7Jn7B* z@tben%$s@Z>o@=Sr-3mkz%YP=;Ie`t1_pJ4SIKz?I;VO+T%b81VFQy9w~!O0>rQUb z@pR8V`uH7?9XNB)u*pM6I8JSEaH&6Ml&rjf;=Kx#9E0m@!n&QX1!t*=N z@VjvMAzF-kKz`*yrhx)62rjaFxP>V|l8hUup0&rjfqW856iD3^;ly=2T$ zdbjQOVV>V8PwU#I`FVI&X4WmRKffi8*TeA|8@aM3eEY4-uWXopytjRL16#y%mdYFM z_j8W-JU_svw}^*F=R*4P+r{65*zbp-wT*Jkw_nqm!#*9oT3RTSvbsJsQ9mQi@nYQh z9q=gSQQSYCvJWqp*QYC}t~Wu~*Y|@w#~b5#s~nG;EX-J5=p;oyC>BaCqJO{dalD`T zq!a*%Chm|QolBGg!rsA9@*UtQ9{()lcKR9o6u6#fzv7kbvhsNlxXvaSid;UQ?#*+L0}RdtwS znMKRaG21bms?7|?sT49*2M@u~r;El6D_W(Qm^)B5QmfP(X;T7`sJbK4Ds97A%LzEQ zNn@cvZTnH7fWl<%nruTO>|ue(BjGTLrnE5fsO=Em9DJ|Zq(CGbCIH5? zX2edmk&(g`XuM0BY}*aUkm61Z_ql?drN!OCYHrD!SU)fGp}KO5uTkv@2#0ih24PZ* zG)p2NUtE0IwO_;ttNej$ogwJp0tO|h;A6tn(-=;I13MdDhe*lyY8N3X2f1I4Gwm%{ z&14P8aZP&%Rwr2rIUdyr^axo=Io_dNhefN)gL1q}`&L-{qIlF|)b-HYK}*nwE1yTj0aI6{+RV9Es4Fileqkwz#g z^|&hp(ybPtehO7dt2F;haIjx}72ZFg26hE+(T|!!+hHtyWIRoZV3f-x&-T99dgncV zQ;FPjhfH`O>*kWnKlfiyJ^p4fAp{UplOUpIC@~dM!5^D2BRukx6hwK_6$yf=U(q-1 z#L8=bU45bF>-NjPeiUt*U#ZHy(ZN$^!^_j6ZU%8CfkHKGozX$&g zrUmG1d%-F26JR<`2u6q84hf+5*S=zX~+qbm=59V~zMjBbaq0$|AjV zm`RIKDcaPaUEu3J@%3>1dgQ6{}A}PG8#CRqF$TG)0J_fJk^^49XGC~2cf$S z7=HIl*jQ^tffh*#g+5c7)q~3RQKj{uf-WIrL+k->Lu!)CJ}$etgrF?cFSw)wXrV!n L_)>_^4*dTCiNvqd diff --git a/42sh/objs/job-control/process_format.d b/42sh/objs/job-control/process_format.d deleted file mode 100644 index fc880582..00000000 --- a/42sh/objs/job-control/process_format.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/process_format.o: src/job-control/process_format.c \ - includes/job_control.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/exec.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/process_format.o b/42sh/objs/job-control/process_format.o deleted file mode 100644 index 0c9df5f893a77efb5a052924f9d1e4b0a1bb14ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6332 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 YcEv}QLruVmZ$qI(NJ%G@{HSE?e__B&jsO4v diff --git a/42sh/objs/job-control/process_free.d b/42sh/objs/job-control/process_free.d deleted file mode 100644 index fc14ce85..00000000 --- a/42sh/objs/job-control/process_free.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/process_free.o: src/job-control/process_free.c \ - includes/job_control.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/exec.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/process_free.o b/42sh/objs/job-control/process_free.o deleted file mode 100644 index 80b8efae45c891dfaedd9c003f3a1b75ac37c7b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3552 zcmb7HYitx%6uvXNGrR1oTZ(}4aLJZZOuM_Z1sfzl704E9VvuKo8K$$d4_s!Jo!QbN zCXF>nLreri^oJ5PCYl&SNFXsG#vgzoMj|o3e)2<;YJ9~Xf)XF!nYq($mm>8h=bp#C z=ey_LbMBqp&;I=B?*LEB4-PChXG-SMjCcoC%?YtFJ`c}3#(U$b zl}cGx4D}#|cgKFe$>KjIWs=QY*)MbC!5cd=*t|#9Q5fcV(7% z_DE&M{qE&>7x@8xKTAAZItQ{bzIn2{QE$I*hxx{*SVMj_^C0$VD>dVA$;c_nz^19G zjP-K71UFs<9;K*=`r{!t;ORvrUqyCZ2Su6w9_-s`4^d~_~xni38<6DjzGpkaQWJ^*j0VbBwx`bJ9-HC&Gn_Hi&feshAH9sR`mDcQ4+T~0i8sgLeXVqjp`+~QQPCz8e>4?s#Q*26&T1Cw`M(AbJC?slzRVo;I zE>VJ4h1m*+W7edk4l%8$R#`>0i%cKZwLGS|+;J-9Sf!M!U%*o_+}(wNe6D1mGix@p zO|5KNh{;y%n#EMxu9gOCHtw3O ze6h9RN5U&28&E<%iHY3M--4I6XPPR}*H50$`deHdd=gukFSb4$M%e_LU}tPji{Oie z!vx7#D2n0!7E*dqcj5bl{+1P3CL%d=qiqgj?@>5T2?eRnScG*r8e`iyC$@#lllRUu z2)l9^5}E|TC!QQWJN9c(QnwwB}RjnIw;*KL+wGl}~`Z2om=NUIz;V zgRg+eZ=pK}l9tT52-fR=D0BsUC4%&Kh)EW@1}#NerB578|YFZOgKWMfIf1_>sa6h4f=y+Sfb<|93qLp^d0=#dhb3@+h^LYNUAH5zlJsh%py52D`|*p@R+&tpwo9=~v-?U&5x@vwaD zQTx7xsp^|syTpTGI?Z`T)Hdb;(K509?CeHngVgMI+f$;ELv zNzfWlKWHDw1U&~j4SE+u=MLtS$$W4$szNf2g1G4hL^AD1*9wkC3y_I2#%EEA$VA1$ zO;odFqB6$Kq(&Je6D5^nU4=>}8sa9Zc{0%@;8;`_WTJB6Cb~OhqRYiiRD@)rs^liR zPh_Gi#^L`fy#b`oOBX!6OHT;XnwM_j$aW?S$Ax$#5PS)92z9D+&FgiN>vg8&ZTj<*)61?1nZDTAY~9H*_AlSj2nzrJ diff --git a/42sh/objs/job-control/process_mark_status.d b/42sh/objs/job-control/process_mark_status.d deleted file mode 100644 index 1b4add33..00000000 --- a/42sh/objs/job-control/process_mark_status.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/process_mark_status.o: \ - src/job-control/process_mark_status.c includes/job_control.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/exec.h includes/minishell.h \ - includes/lexer.h includes/parser.h includes/ft_readline.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/job-control/process_mark_status.o b/42sh/objs/job-control/process_mark_status.o deleted file mode 100644 index 6d4dc64c24c533e33210de8109688f2e4504b178..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4256 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 diff --git a/42sh/objs/job-control/put_job_in_foreground.d b/42sh/objs/job-control/put_job_in_foreground.d deleted file mode 100644 index 6f37d31a..00000000 --- a/42sh/objs/job-control/put_job_in_foreground.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/put_job_in_foreground.o: \ - src/job-control/put_job_in_foreground.c includes/job_control.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/exec.h includes/minishell.h \ - includes/lexer.h includes/parser.h includes/ft_readline.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/job-control/put_job_in_foreground.o b/42sh/objs/job-control/put_job_in_foreground.o deleted file mode 100644 index 25c76b0c4fc9c65ffd4f3b86d9acd26b89cc9140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4964 zcmb7IZID}489q13y-7Bo+uhc!+of5yt!*K@{Q_30uq_RywTM%?K*x{UgXRk4&qE5fl_pYsz7JtM;R;AA66>rh*;|agX{C$d$MHH z#nvc!L;!@KN#pO*1$lmQ*N zVtfu>DLra$aBF;TOT1+g@71fsv*RnLj8?oJdEOd$?_DLHwXZzy`)-nW1-a_Ip{AX1 z#FqVV-WN%1L$=2EBYA!s@g0s_3C}2v;XN(AR@{>>W^{e~mgX5}BwkD!j{}b>vj*o+ z?s-dmW=GZIg#0%a`MkjZEBH(#_7Tim@Zl920tJ^ zu8Zvwa3(VNF3=GCX*mae5S-=o)1c3Z$rkHrQ0 zt({4#)8NT^;zDvNF+ElGNc%HFf4;>WQT4rkS^3FmdDp;4wxll;=X*Lu=1|0pSbPL zPwiY48%gC0rZdncsug2kw3Ln;rJ_|S6$Z*RONXxKi~2~ZVrDC)S~1gah)t|JvF+RM zz9TknR;u|@F*ex0rhiRrrBOh!j1R7X(!XI{|JqeojX5w}1=K)xPiZuh8rZO|n$wN) zK7E~-Hwck0T4Ge#;fX4P6#0xOXW8X5y2ZnusvryXhKdR6*I^)K;Wsv2vrs}TeWZ}e zibAQFjoBSRNAi`brI#xu!>rP!kgr;Jg3Y)tCVV8a10M-)?YI>s+^q_iG;Kxpcs9&Y)n&pRz9kSqQP3iS4&Fsz z4ulZC4#gb~1c-;?5Q6X44l1loZLGh6SqD{!;H-m6htMn%#=?q1^hhtzZvt494-N!w zVKo{@sd7rKkF`Mr#r0%p&DXcaeQUNTHw?<%V{la>%3d(RXr+xi#LL$i(nREcoV z<9amr6Kd@%iK0%j^JuJ!-mjsngR~F(DDHOk_#X%7G}lsBpYVSZ(reUWu0D_dDM&Na zdR=`!|5-@w+=FXfeNq3-koHjPbM7eE~nAx_=_@_UuA3vQ8x=sHCx47QhcpQ28H`;_Pu znb)3igd=`Mi^I!1i0(KHTDR{6*uAb5{$GLH%fFJ#avGYwQLDHtzlUaT;%Zl4(ElfB z_SRg-MZ)XfwJ8ac{o_a8xbrwR=Z2L#J9>!+(mrM2{UEmHxztJV>_hWCJ?tT-PZY&57E#TLg~At*41cLYkN+G%oAOezV_6H60QL3%L(Y1)lWnwX3< zF)JkeBvhJsWTlCvfhLw4Igy2fCe{;aVlL3c^pHU?`)Oj0kY4}mJbH1~cxEx9x%Cjj z0ctkeN7WwKze6Z{qe?XB^*sV#M!f`d;a>!snUV8_*c6U_$#q+(@tHOWUza!!Pepk* z973<~Ng$==;)C0TQK<2EdZ1RV3`lJtzkcw>xt8j_78e)>boqfY@5KeTCp?gsDtXE3 z&oRfGIgpWSv$6-WeSLu)xo5*V?uDu)=Q+0x>EK){pkOA_6u3@vM-;WK?R9mD_K4~o zQ9HCxs*AL3s%xXVRQtKQoZ>cB(~d!iX&2Q#aQ8Mfq@7oT5WR4Fh`mQUrMg^w9co~g z8s?;a`0P@nj@Y3cRTop-sCH`O>W3(9!vlQ1@(J20R{)DHf>;2Qk@#B(4xeoCKY*j8 z#9szS;PI2-c-{ChaJ)kNI}Ts?7&w+E{#B`e0UUc9&w&$fi{z`piO14}N5yY)xHcg9 z3dygL9E^S%;~^gfk3eWNem^&VK+oFHIMd#e+`P*A`W=iuo3vaW&wnZ2AoqSI! zk6W%~R85OlT8i0*ID!jo%F5}*l9kEZL+~nRD`kOOv6aHTwU{lKR;eg-ehmm66EbD| X^<<4W;1zSMG;ZSb&G!L-aKwKBxZoH{ diff --git a/42sh/objs/job-control/sigchld_handler.d b/42sh/objs/job-control/sigchld_handler.d deleted file mode 100644 index a896c719..00000000 --- a/42sh/objs/job-control/sigchld_handler.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/sigchld_handler.o: src/job-control/sigchld_handler.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/sigchld_handler.o b/42sh/objs/job-control/sigchld_handler.o deleted file mode 100644 index df4c4add7b0ea7bbfdf2010fb3c56e60d48756d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5468 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 diff --git a/42sh/objs/job-control/sigint_handler.d b/42sh/objs/job-control/sigint_handler.d deleted file mode 100644 index acac959f..00000000 --- a/42sh/objs/job-control/sigint_handler.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/sigint_handler.o: src/job-control/sigint_handler.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/sigint_handler.o b/42sh/objs/job-control/sigint_handler.o deleted file mode 100644 index 41f0c5d09f6f810c216734e30aff244418726360..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2600 zcma);O>7%Q6oB8@S;vV}$4MwE0>Of6pep`p2qG$|)M`REB0;E4O2pq_uh;fQ&aSoI zqz%R*Ql$tBRRW0vM^32RdTdWrqEg|+l_Qr*9Ey}9;-}%g+1bRNrr1xKee-7CeDmJ? z*}wet$Ae)276trZ8NzZ~!;g*y) z%LjH?drMY`N3pDq00{IDY==IiIX9cWXFFBd$aya>8`;|q9hX-#af8lNUt=eXqE8;~dBYZOhDcS7Nf#3lGZ zDf8}dHwqMk(?)wjN4bnY2f@9V}j z4POoDwErJ}^bdb*+0JIW zwPn@Y>FHBVy;XAS?N+J2(N1SxF1IY#Y&Y!k>9nm^U0=VraDL(KWzjkcP0!4&xuuNh zI=<)Db4|NyJ3g-!opRmsvL+PhZt9DRmzMNR%WK-Mqt9mZ*}VRuS;q$@Gn+>vJ2Ra< zb)r8kx6(vLu6o&BD;IM!)6E(;8(VxDdZ#7RaRCDXHo?-#DJ_~z#hy$~ut{9(NERC> z+1b%(@^s?0#0z6@jNt}o5RnZFQ}_-ZhiLLlB0+oh0hZv1#l`U)gO{*{WGPVM8~!To zAKkElU8TKZB zGnSgvv3n@p{6TzZ-p9xhg$@vd7-|iF9B4TJ^4p&$W>8c7gTtze^`{V>z8d0 XxN<9~zudroR(=I|)$;L9(>(tHSm{Vp diff --git a/42sh/objs/job-control/sigtstp_handler.d b/42sh/objs/job-control/sigtstp_handler.d deleted file mode 100644 index f5091436..00000000 --- a/42sh/objs/job-control/sigtstp_handler.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/sigtstp_handler.o: src/job-control/sigtstp_handler.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/sigtstp_handler.o b/42sh/objs/job-control/sigtstp_handler.o deleted file mode 100644 index 67fff5c298967c41f214d87205528b5fc1b2490c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4136 zcma)9TWlOx89p=X*^Bq$b?iiroP;fjLkrzq$4RLZAjA;U4FnW&=}lC_?(BGXqVdeK zGftW~mQsSMxHM9$mIoe+S_xVnc*sMMnukKFR)VTrDj^||5VZtIQPrxbNCcWf_`aDl z?(Q@tKGJ{w%lXfD{+i~9!d8}fq0B%a!80IZ3E&gS=4mh@cgdjw4@=97vVJJ z`0fBCnk|I-ffz`--ZUEvEghgz-+#}{;V-Rvy(p!p_#>e`6~lw64>H2DT_f<<^?tnj z`@DtNlMdW^yFQNyuij{M%@h3nZjASuL|7}H<;=O9633fhLZDrh`_<$*e-r1yb3wad zeBHX!GQAJuZHnd4`-34!Pk%$a`MME=7>_T)li`V*`_Zf*dCZl+0 zjd&>H05TrmB^EncwBPUNL%pYu?bmSUu}@!La86oIQ`Zmf@9`BY60anUmx0HWJd6C3 zXCA{d+xlD=ryEX)-v>h0*FK52BJrduu>E!HoOu`4snm*wo`*}vA#y;6GMUlBX4kV^r!-xetW1_}HEi57 z<>^T%m0eSn9k;Ckt$NG@NVRp+J>INWcTIV1-RPXsr$lUF>W(Wc#}^3C5WXHTFJyC8 z*9$DL+m`1GFJ#<>i7Arno^{#;(rHuonN0OAvOF+Cw_T@IT5!0I*~D+-3x|)R*EVfi z@3gF@=vd9(d65d&ol_Vv7P?(5ro%Iw>)jx5);W>9j%i{Y_90SeP==L>!ibhA6qDnHVPzdMRIR|cPT4n@ zDD268Ci{up=X0o9O{mgvU<66Lt54Ooi9}&Hh_fyLZnBOL?N3cnh=>h zd=HFJnMM^2qGUvN)d5wMTXoRrkY7c@SV2*UK6DGv?*v$p3um)?S#bYg?BH0BbtZD+ zb~3cDg)Hc!Pm0xhCo(8^^D9IdQj~=H_?eS|JcoWjeZ2D!wc&a6LR(@tkmLtOit@vt z%y{|&*uC2J%#+|h18KLaTSev_NZSyNcAL62o!JP9klH8Jt+@>CvmE=By0s{hFJmC} z8+1PasTJ~V6}8s$?b;l0w|qRuyF3nk(!5^&K-`_ z0@Pye{zx5yI+kldeFc;*LM`RaL41?yFx2VXlaaa(>OPTYs52Z+DTUX;hyH?YROJ5z z)}lSFXg0Z0JWZAgW;{wUgRXXDrUn*VuH?wppoO+%AYZI}{cUDLaKzx1z}i2Truf|J zXubG1^Woz_8l@u|uVDqBz6m@J1HrQ(1Too|fqV@3aHK(eQkch#A@m6Q0(2G$waK&R zvrj+w+P{BijE+C??(5_Jqt@mHb)tBzF*5$smF@5R^O5%EBB;Ku&5Mssq|y;;=+95SFRH1`t|586ElV4 z!|E6FVe%uT;H!!^;HfCr3VHOrQ5dWed%y8u8ukKTq3VLytxBzG?VSE}zr{P{RrT<@ zw9gZE5r2#E5rCy^&#$z3Lxq1NShM9dR4q6g1s=qO)EC>RKW2>o#r zuiop4Aw?S;yr^wT{$5MXX=?H-nxd9R)C_ii5Sxc%d3VUym%*`qnZGB3D)Wm8iYw(huo)9UhP j>-)?S_%`wDusSW<^j#;I(Cpx^wLd5Hmg(ci1Lpq##*lYw diff --git a/42sh/objs/job-control/sigttin_handler.d b/42sh/objs/job-control/sigttin_handler.d deleted file mode 100644 index a4343464..00000000 --- a/42sh/objs/job-control/sigttin_handler.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/sigttin_handler.o: src/job-control/sigttin_handler.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/sigttin_handler.o b/42sh/objs/job-control/sigttin_handler.o deleted file mode 100644 index ad4ad2862ab0cf5710cd6b4834561dce37b9c5a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2664 zcma)8O>7%Q6n2!iP@y(yD?v5byPNe!&hBcx z`NLQ$6d|lC2u|EMb3#4B1!xO`8ys^)Afz0E)FXn5@ZRifVsBI8C%t)Z-n{wdo0&Ij z|NQr#|8@beIADX?f%;tn8wC~R2~?H(kC4x3BFe8aC+s68kfv!6g>&Cn_X9uZ&lj%E z@ApIRs&ojCxUBa8bW*GXZjcFubFJ!omTk%a=dE}lPB?x}fP}LFV*9S}IMWL%fQki5Z-?;$5J_Zjxa-tX4S?uUIO1#wwlX!FW>= zqg_19UUX?`?@!lKj5F`=EP4Igp=Mv`wS>Fy3#G{oZYJzsp5UP>k{m@j}?c z@rtfnF}Ph^CVCI;_jd_&UTh8E-l6;gJg2lIE;!0>Sf0)aiMQJ(p5W&ewJ6?H1n-${ z3A}G2_Yv^(H{1jFYs%~yIe(^2Jbc6gGRp7E2)~aH#nYT++^5f1>@~~QIiH)}-wME% z#8YJOE5xHu%}-c=@~R^HHOhR^!`lreM85}r$?Qpqwec?0;JHmcTTT(Y)P|$omNdB#b`_s1yJNd?)+aOc7 z)tlcd*YDLVd$nHMFe>$tu`^YrR&px!TB)*9AIY56YlfrMO~+R*&(6%x&t5#OxR(C% zh=tY^j!5W*s;A|aoKi+}Y~OP#xvFLQzGd@r(bg-5m(?IoZ&sO`yYjlSYIs%4v6YGJ zXm(UNrB(1llbIOBPIi1Od*-<|&~gh^1j(6e&XQitjgM8!Tyr=07(^DPzU_cz`@ja+ zNNOk%Po+DbObxI>yoOj7gM)0cH=cSi`BL&^--SLb%>=|`V0H*^>IB47uOyRnn{S~8 z#n&wgw+~KZgydpiL>vBI$ub291MG^439O&7cV(SIe_@d9n^i~r61MG!$t2lx*R CvRR@4 diff --git a/42sh/objs/job-control/sigttou_handler.d b/42sh/objs/job-control/sigttou_handler.d deleted file mode 100644 index f3ac4caf..00000000 --- a/42sh/objs/job-control/sigttou_handler.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/sigttou_handler.o: src/job-control/sigttou_handler.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/sigttou_handler.o b/42sh/objs/job-control/sigttou_handler.o deleted file mode 100644 index 5f04426d5f26030f3c3bfbac7d431cbdf3c50137..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2680 zcma)8O>7%Q6n<;h&W}^aNhkt=U{y6KpxRDDfT%!;mAG|LT4{|9F zX)u<8Dj}?@5=e07LhoFV;6xFi3NBnZ=7I<)NIgSE_}=VnVsBI8C%t*^&Aj>Mo0&Ij z|MK@=|Mn1RVL}5v1ic+WqeCH&LUSBHKtAV*kWH22$G{}k1P?-laLsG3=X>#d_Uimz z?0fGhhw+%pMxTd+V8hR0D}+&ZYnEM7okDct`8fXg>1g|GqEKfDyrNlHDG7ke5g}&Z z$Xq(JoAsmeK2Y{n01w?AkUn0;G31OO-WfjZHW}l?>Xd!)@`XapT;=_D^7HX#6h^mr zmc8iklptP9@q1U{S&HA+xDUP;$iDn)dAnrR@5lQiu-~7$-0yPUkQ9Ubd^{iaV7z>_ zS}}#4UuJsu?e|Xw^pe~f(a#6+^YEO)lDyy`zcF<>#}r<)S2=qoaDHw4s(B-b_i6y| znJ)3%_3FO+wH4l3#pgnoczDDTGRW_%0Kd-;#50^_?9&x1_L^lEg_xV&I~sgX6rQd+ zZv&4%HNT?%)K#erFF^>iEEa3HT|e&p9>~cUn)ZfiQ{kzQVnk)%XS@4;En6Z6_dCsG zIL|YrgBQ!@1NdfN;u9q2FQTEFG4 zZ|k|6kx!A_YTnDW?rib2Tq}E5I<4%sXTAP!d1tws&*?DV46}b@;qL5>>~^O0-It_h zY~`;1puhcn!?IVKjdioq9Gy5>*Bb?=(rgqeE6vg5v&Dw#7|oL7>X*-*ou7Yg;e=kb ziZ72^uqElpgnp{mjP#OINE(jq)|^VZZk1fuSrO&DU96b3ltCGOy87JQmGkT;`MnyR~Kh~|ALp5SgbS^CUQbFg;vx4i62I*@fuJqP`4DU9~7>n)3;Xy4D>hC=o(LysL zp+11oMGq`_O0Gjk_(pJA$>XrN)Z~-OKJ1Mr`Rssq=5jr zq{AabN1<(@^xNa-1LMrAeVoLiE2??7ENsUuS~U{E*TV_LD*mFmizG^>i^uO-Jbt48 E07ti6CjbBd diff --git a/42sh/objs/lexer/command_getoutput.d b/42sh/objs/lexer/command_getoutput.d deleted file mode 100644 index 9d85b93f..00000000 --- a/42sh/objs/lexer/command_getoutput.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/lexer/command_getoutput.o: src/lexer/command_getoutput.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/lexer/command_getoutput.o b/42sh/objs/lexer/command_getoutput.o deleted file mode 100644 index a1a5a746375e6312655aa2c9d4f9709511704896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6672 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 WnXNPsjFEQ7Q~ZB|W%2_C`uRVG3Vy)= diff --git a/42sh/objs/lexer/ft_post_tokenize.d b/42sh/objs/lexer/ft_post_tokenize.d deleted file mode 100644 index 805f8c09..00000000 --- a/42sh/objs/lexer/ft_post_tokenize.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/lexer/ft_post_tokenize.o: src/lexer/ft_post_tokenize.c \ - includes/lexer.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/parser.h includes/ft_readline.h \ - includes/exec.h includes/job_control.h includes/builtin.h \ - includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/ft_post_tokenize.o b/42sh/objs/lexer/ft_post_tokenize.o deleted file mode 100644 index ec3e207538b98ee3bf33d3e89adb3018707d2416..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3412 zcmb7HU2GIp6uvXNv%BrKy9)&Zslp^}0Ta4g3TT6!YZP`@*Cr)-A;^(5z> zd(J)gn{&^(KfB*v`R#g`F(JUvfP>)ABs4M@v;>?c{T8$<hJeIu=FQ^hEcTN2a}&QF1_MT*0P%cred^R1_DlWT?&zKiZ=+9Sf{O2^ueN@Q`L#o>ox$O;p#N;J**N zJ8UDzTgmab%Agj!KFR6xThtvy|9TJd_%8BE1ppAecZ>KaFV0;UbrVCuF9v@Ae}W1& zGWHlG!H}#aS}!qAaqZ9@``glE7t*7@%IUG{@9DA1WO^KOyfQgSGsk+)kN(5r`%EETLk~QUzBA=hs$Tlgy5$fb(W}xo z-ZPmV`}}=(7$1cV5uF?Fxt1RNQhxS}k)po4Ix?)4s%@RCEqNqsl&T}yQl;9~z9u)K z8ERG624!rcfsCG$`%Pm&&hDxhwq~uDSF~9x9G7}#nQE$}4QXbo-&V?oWh=JvoTeA| zXi1fI)1@Hy^=*Gt-mRHd(a`0tWJj_?Ua6LFleKqsKuNCcOs>A?_CTp^7Urk&gT~HW zCbhQHDky4sSm|W`kFug}vrNgdnXQzH5SA-cL$@^yaj94ckWr)9v>7udPKjfLUNZE& zT+yv!Ue|Im0qXR)(%YpLGA1)Mn+fxTwpf!Ch$TYJv3bILY#=cS<9uObeIT|zdVh39 zLvPbVD0o0(A~*FmVVA9)p-QbR5PL8h#l{T9899U(LAVf%MVf>_EE**|#_Ag3+uKA+ z7q)qQoJ#s9*gdKd=ioN5Rb&SBy25F__j>wJdj?^977jvO7$Ol6C(474{sLNPg>M|~ z7qmffBKHGn^T?G+w11^wXg@?~3{ChAG<(6~lE^5;VsU=m%aEtYv_NcOb+4iK6=@5_ zmPj4-E|9iJY)P>C@M-jqf`d!LXCdAN2cD5mK!hV9!VX?iOgFr}EV zC^OhKL{t$nQGMt_1W`iCL^BtGK?F)Bsu?#?PRT?G<`XIXWTL8YFDeC@s5;#1c1a2& z0p6l9!zI4$2xbO(nG^PGVZu;CNHl~ahv7xvxeNT(6(@mH-nM1kvBXQ_!;Nm8`9@*~ z;VB4LV~uE?mlp`a^aX{hK`m8sc&}3x%S>@CRb10`?@Ws|Y^4?>Zr;N1>%CVwEi!tHMChuY?fj>Byocj4NXX47=od^B!2j`v@CS^ zR)Z(S)+R|fD%N3H06YeUY@dL{Hx?dnW&1v^Z-GQO?eq#DlJ@%`;U7wIxtzVT|Kne5Z)-K`y`eyz?FQ_EFUO(|zgO}D01{+cj_a-6XXif-7sqUq?l QGX8wn{q9)pqXO*z01^il&j0`b diff --git a/42sh/objs/lexer/ft_tokenize.d b/42sh/objs/lexer/ft_tokenize.d deleted file mode 100644 index 070f092c..00000000 --- a/42sh/objs/lexer/ft_tokenize.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/ft_tokenize.o: src/lexer/ft_tokenize.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/ft_tokenize.o b/42sh/objs/lexer/ft_tokenize.o deleted file mode 100644 index c2b2b65b6933111c769d7d2714c99add601fb119..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4996 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 diff --git a/42sh/objs/lexer/get_lexer_state.d b/42sh/objs/lexer/get_lexer_state.d deleted file mode 100644 index 33d84a61..00000000 --- a/42sh/objs/lexer/get_lexer_state.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/lexer/get_lexer_state.o: src/lexer/get_lexer_state.c \ - includes/lexer.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/parser.h includes/ft_readline.h \ - includes/exec.h includes/job_control.h includes/builtin.h \ - includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/get_lexer_state.o b/42sh/objs/lexer/get_lexer_state.o deleted file mode 100644 index 2e641a787970e8765cdc825b8c45c14f1814e66e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3096 zcma)8O>7%g5T4!5Zk*V$-5QmjR$!qtKUHIgsE3LgS~qrag42dLNjZQP$8i!@j%{qG zO``@OB|$3T5F~nl1LXqZP`Drtr~(yH2{<6A-~e}!utcSDKnk>?e6#!3S#J`Ok!I%2 zn|a^Pyx;x)pWFX76G;j|fSbT26(R@*Jq%vw&TYuAnT|Cc1F~#j60?sxLAqYe&R5O0 zX^+OAAKkF6RzD{JVm$urdu}r?7_V}_MY=wjotT@}E7h{mrR%Y?(UDV@n=G8$qUT4E zXFY&OwzZL;iI*>CjBY1hZ$mWE4KA*c8X_#b^u$Ctd!FlW%+JCr3XI+27&RcdypDJT@%>laJcpuylcqatju)q^00d~e}v$oD#K36aho%Is#6DGfP zzleH&*d{-o7e5bhn}IwT4}pJ1Jh#`OgV0bk47L-0!eV>>ZrWps%fBU-{_rO*FWyP4 zF5dBdar}24x3o^aWe*x($L}$Atqn4<8b^R@>F;*mitw?j{RvU`b@-NpcKeubnG37? zFV)9#UA0f`z8C5~uCw;G-Pc+7@m8!Y+I^4LeLQ=$wB6U`$fw(p&r9{OZ9MiM3-I;= zGs6DW_`Sr^P5+BuMfu_gCX?es!SmU2C08s2kA`|fy}_AP_^o8QN$#nQgUu8zmlrHLhl;uDpiem9o(Xr$x zbaG&bQt@FrduAj?r^kj)#z*Lxk$7~JlJQi^Y(`JV42$)1V`oO=6f@PyX#caRWHgna z@#qMphU5JM(Ih!iA|pZbyZr2BX3}Mn_DBc40afw(wf){b(q8Nexk*yIZugV!V^}n$ zixlqx%w$stp?jqht%{dDot}ZfacmYXSb%7c;>tmy)n`F#igr!JH%4EACLEY?wSR`@kTso};)T zzUn~#muNGRus&=?izQ}^2C`C@7Dh;#_e*|Hvuh1e{E-9T;9aAF`_>krsMr6R+}~#X zo_P=}(i#M9kwNvbh}scR4^64vgKB7tz)d4}?$`la zmJbC~X-;lI^*o;_uIDXNYi|hMA@rj{LvfroCbSpYhYpLlX*023rmA|bg1_E;ZkBY% Hv0o(5G4XobA%I=FPG8HST5R@(k0V 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 diff --git a/42sh/objs/lexer/lexer_delim.d b/42sh/objs/lexer/lexer_delim.d deleted file mode 100644 index 67eadabb..00000000 --- a/42sh/objs/lexer/lexer_delim.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/lexer_delim.o: src/lexer/lexer_delim.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_delim.o b/42sh/objs/lexer/lexer_delim.o deleted file mode 100644 index def05d85d1e730077a4b98e216765c3c5d9b8a14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3680 zcmb7GZ){Ul6hH61zSnlIYs-d{|EU=uMpy?-vLGmh6*?$?TsI&F@+{qBD|T(|>kv?p zFeNM_2BLm3QHe2;FGfG82{EV%8cq11_$LzL2l${FMk5+Yrl9k8-n$Rlf;ew>&bjB@ zbARugo^$Wr=YRhEx0gs#2n^%_6;-eZ2xBT}jE(;?T7AyKQQm{$>cAwX5F0TJqipUe zJ99_xj&JS0p}Vu^#DwwqvmezHacocyuyBWA^qM;c`wXjGvQ383u_e~E+Fd3W=Kv># zF-vn~1(z%4h|j^x6*9KD7B5)kP4o&US3RmcT)gy-9VK%&=U*M4i}$L)m?&O0zq7zw zYVqC_Uq3DKT`uZ!4!@r$-!0=SrSpBJbu(VEw&r!!$wIp&-atBIhgch*izmV(`cJ%c zv6wTBe0qSxyD8ttM10FcSkeUX3Ojb$1+IEzX0R?}~s({D!EhZ>BJSJj=#l{_$+S*D#VDH(ZI% z3A~6f_5+X4?HKw`gj|DX_8U7(sIIfYFsko^F@d*2;2jotLM5H3-<`8`&s#2=w-Iae zZ5QWtOlZ{}kPrTxS3Bf9UIuLfRSwRVsVd=0huh4162spo zhJK19hM&5e7#xzj zd>n=giJ^8Z--YFcUqS~4!6yv3(ZuklHo$QF+NB2JfRACtHIKxvC5AqZY(E|2GZ;xG zH?NQEHcM8vkdL&tw6?TH=4EoYI2N?GLTPDR)Uxm%vPzj~&fH^`9FF@mmmO%yP_)Ow z)@a}3gDN(Uy%}9kiim{mOV3 zt?7!#x+xh?rJQMOLx-)ge5hw*cbqyLu`;%5T`Cz%C1`W3i&C57t2$#zvV(HMp=`cP z>6}%jvXRR|SdPdP@?{fCLK;?fpGnM&GIv(GgqF9B&~t@+Ut}^}O_$STS{b^IX~WndNRy;F!A4aHhPCOzNm2v4 zO7=)fP}i60_oMZcd87nq@D<+z*9K`tof71gy91q#52C|Wm1JS+Y$Vd!s#Nc6?0!Jk z0ptr2JNTO*90=UdjTK+g>*3qk$l&cb5dr&M|B&NB2Vp<=I|XPy3yjLU!F`J5?O5NuZf~S#WWgi=qr@=kSA#hbW0#;6CLwaKCZ_yiR!wTvtwl2b5Fb z_3j%-*B^dq^Cwu4L((@8k}4l7@*-$e-D z4`BXZ!Onw}sda3eqBQ7yQf9+jnJhPxei_;v*6xs-efnI?RNHoDe^IuNfOu5yWxaMU?xOMkuYBecyt91aalUNV*xc1k?%I1}cCKf?foj0NLe&FW0XL5`!y^ zKjH=uCaxx%xWG7XJh-#i#H}X0_@J<<1;qJbTm-R+`$cTzK4lZvdNv4y3(O|2xiCeA ziF-_#I3@PtmK9&L8w4iqFk#{bVK43$v5|Y0P29%9bi49;Q53ga*kuoK88AxKa7!-j z>mq4SSPBQczN6wZGvGNo<`mVvOehu%ACgzqI}J+oJA7pO@JrIwU_D6~FoC3OK9d{l z#eY@TUnq(WTBWG4N3)CDmsDG@lHVT zAOMd{e&>pWqJ$(hPyuT_YdtgbtY`AZB-?0x$H-l`|Z4GL7$LwArb0=7aXbaJqleDc5Rl>A#D50 lLIxp2aC8SxD^!|Zqm!|-Y-BC*tny24mRtoZ_T$Ho=s%QnAO8RV diff --git a/42sh/objs/lexer/lexer_dquote.d b/42sh/objs/lexer/lexer_dquote.d deleted file mode 100644 index 0c60c15b..00000000 --- a/42sh/objs/lexer/lexer_dquote.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/lexer_dquote.o: src/lexer/lexer_dquote.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_dquote.o b/42sh/objs/lexer/lexer_dquote.o deleted file mode 100644 index 384a8a3cb04741fb9af16001bd285a260d47bc3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3820 zcma)8Ym6J!6}~g$8QVKv+sTG>(~!tz16?H6-aLq+vZe86O}vXYgncAPO*?VClU;)| zUOaXl6sjnzv{@F^qy-7760Ouq1*xL_QK|wW1%X0Uq_*OrQi&fyRjchwrAU=RfNsBU z=FY};0?E~!bM86!-0z+{=iIsT`-}hjUswo56JVeaXjTVHfzZ}~F3|WX?b(PwaGG<_ z0v(uwl%NsKvg-EHy5INpiQGLCm-L|bC)pt$m(9n8U~Ev1Qv}VjrtAZaY0ItGJd>R9eN;}>~x%w+|zYoj2?8p0)>APZlwW2d^yO-m=*p~Crj@HdWyCUA9 zV#y1!J-z@>h9|C$SDc-#*p^c~#PBZL?^zk&fDCKbRpayVst4}%65Jl&MTxgT;yrwg zcwT(7#Zo)odU+lKyl1WvuYPRyiu)aucrVBo_{KHj;m~=I?eTpg&qEO3qcOShOQJ2m zrRpKm z#Cu2LNmZCa%mjVP;Jj7Jj)&O3-%}E=PX^Q7>CZm(De>{WB4xiDV%+LQNKlji6{QN`j=jR)X`Gv;&`Gu`~<{RgsozK69)F}ep z#r)hkMLI1e&Kh$UZb+P55Acm|vsX3Hjb#wyJovo;Cag1=iY)@?DAyCXYUn1Cz{kBaf!Zn5{S zu_3W*a&#~^CU%bHvJ;|^8z1+(*g zjy;tkpu=mDw_0hYSQGW?eYOL9U%FEAMAJy&A$W|lr;7EWu-%ea#`Ivk5R?_ljqxsB zizkh>@fFHSq+JauTHG|hWZs54)_R2&zaHlzl!og{WqXGf=g1dh!(Cs&@zZsoO4D$c z5XP1kHM{|{Z#PWgb*EFO)Ht5@Ez_V_%+LYsQ1h!h9B_h3i;1TUd;8E>q z@DAes9YC?G%LebSTvw!sTcfp~}@T;OGc7hw~nf+U- ztr+Jn!f(j6vf513RThsAph;D7A`FF?-@YYtTJ;M9|+Ktq%Q+pz2FM5O2 zR;xWp5sUVtzXT6`ee^bT4Nz!bcr`>g5+Qb^!2U*WEOHM-v;;N)Qg(I>L8O%1P5S(p zrtMtuAbN~l$#TW}(EBB|L9A##gr2wQ9coXvi2e-f-5gvQCbk}l@Ine#!I-uDcs38= zef=m=HD2>={*`lh|C4EcIr&CuU+_Fy=hDd;MMpH=Mv5>XbtKpn z#AD+a>yG0g5HDIr$_pa`^1YUpqUb-TXI_8y{7wJ9@S82)tUpp-*VXsdrZ-Eg*7hGi zWhP^Xe^E+3{^0jM_`}-IZ+6!G@F%Z-_~L`Ne)KBlv09krPe4g*x(CE683yeG@%`~n z^>NTsATM3;=3QcJc_lL&9qlxt*C$dgy zVy=1jp>c7Vm~&}jS<%G$ktV)Bnpm=OMXx|$VueW)H%Kp5i=4=srHN%MO`nzCFp?6a z3$ubIzXt?rX+hSN2gZbQG^r$G;mB#Z()I9s;)0*o;Cmvn@#MGE9i4uS3UM=hRq-8o zD#}OkPH=^5fRwURsx+qXm$rOOiA=+-Wu!e*-n?yVtHnL$X1uSpEBqTIJwv4C%LJDj ziV&BHKjeF(kE)b+1(XmX2&p2v{9~ad6g}4QU)?lD^sWItGN7x*oq8OaZZ!1p3%Y@> zIiMQ@`sa)}eI2wfz%Zg~C-g83mxhzZGx{0~Ya@EMaYkQ{?hU@@PxXZHTTCC()sbbC z4rnKI#rU!s#j8PB&w&tD-$^O=Lc-qnm@kb-q`XN={-$8ud)<^zN*%vdB0)ge*lkh; fbJwg3>!7?HdCT%Iz^(=NvwvG!`0=-$Da`vn^B_-g diff --git a/42sh/objs/lexer/lexer_great.d b/42sh/objs/lexer/lexer_great.d deleted file mode 100644 index 858a14b1..00000000 --- a/42sh/objs/lexer/lexer_great.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/lexer_great.o: src/lexer/lexer_great.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_great.o b/42sh/objs/lexer/lexer_great.o deleted file mode 100644 index 242668e0e4bd3f4bf5def813c953d7595468ae07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3960 zcma)8Ym6J!6}~g$8IO0owv$b_c>r~_O8~*zo3M={*oHV+li9_2bRS86K&Os(vTN$t zmLDNWp-owWur_KF75<=BRH#zR?F_#v0H?8b4w5MEr$QjKK(W zU2eUYnz#twU`|X$z1`Q!`oFW*GGwU8`&N=l)%`-X9 z*uKoP3ZA(e@0%UoLVU(-kM`yr9syqdz=4{3nEUU{ zFTi_7!dx$2v3#(?kZ!yb3y5)6?)Qw$?=Ad)vV2#~ua+;*x%DgY-tVgU*L!^YHhxvS zL-~T2Vt0N4o=i_%8!un2mRzTtKg9H|*zX52zfqacqu0#O$EzH8&?|6veks|%gA(t| zb>eyXRr7^zyvZ)SKV2tY<7oA&`#mi2ek}h$!)mL9KkcfAzhAs`9%OfZ8~Ac!1p9qG z>g#R13$IW)gnc%gX8ECFdDd}qV{N`-zr;&Q;}Y=LlJBAaWXfH5?!0rbhU)qOj?;M_ z9FcfiC7#*q<4ILu`}4t^GI-xg#j=Okz26^6yh)ji4Lpv2enNiyUlMe%{K7H$)u2oA zeHz8V#@=HY_JG<4A3>6@Wc$)J=QDQe&-TK5!yA5Mw;s7*x0*}#V)KH%xQV}3^Sr(I z2&lOfKeK6xV9+t&r!0K5zLk9^e&X}6A$Bo)-aaRiz5@cXaH=Xn1n_n)*$c0$cIy|d z>>oUHD|_j$Cp>@p+RDO*TjD2po-U)AS3~0}@?5;fUO1QNfPH%zHr0;8KN9&MMA!>I z4MG&Vbq>h{A&c2d_QD&(51h^L5J={7dv_)eyR~|;QciA84X1{aw-!n`xrR0mLrINn zOl`PL)N6%w$vxuMeD2KE+8z)~9Q+gt0ERLRpEnRzr#wv#h(UyV3jFtwM|4fOjdBg6m3U zYmXM=$}Q3HzI$*4=(hXur5HmncAn+0n=KK**0qZ>Oew7Bg2^g8y@;ik-ISsk?s$#f(V-?vCSOkX)r@E z_d`SqV0VF(9X&)!DqE}x$nVj#l~0_-jJYcrKCy_|E7Z2(iPl#z^ESO*9at?QFG1bS z#g*Z`5V~pd5(^&!W7X`bj1A$Pn3U)mZ}>L&Z3E} zCcXHg(8QCQ`@?t_L=*c(2C`3SVyy>37%VVNthqF$rHMTzP23W_*s}78UW35I4wEJ} z2))=XGLSt>6Wdst{$F{+C`wQ+L~+C!?t^%ffCUv-j!g>XNJ2?O!{#aZlpEkQf6=e0 zj29vkOFXV_@Admrh+Xhi#Wx78d>rcqSNJ55QY;rr%~^caEniR~-K^Kr(w;8fxp`Bk zrGB)Y_D<@$@GppP(nx`q>6}tLPF8viXQDT2XxDr z(ECPpb5xHT_v!u6)Ct`*7IXvC6%)EKs%yrJSe(!kMpOSZq&A_iHBReEOa~`)3x?mj+F2X`hiOVpLSed9=CPr>$-Ho?+3Rg aZ+7RPymEPU`SR~| diff --git a/42sh/objs/lexer/lexer_greatand.d b/42sh/objs/lexer/lexer_greatand.d deleted file mode 100644 index 2d8aa9c4..00000000 --- a/42sh/objs/lexer/lexer_greatand.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/lexer_greatand.o: src/lexer/lexer_greatand.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_greatand.o b/42sh/objs/lexer/lexer_greatand.o deleted file mode 100644 index 1f7e550dd6c764bbb453a18130a7f06e3ce62e97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3864 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 X$~Tv9ckt>u_yl(=)6LTgP{n@%tJPrF diff --git a/42sh/objs/lexer/lexer_lessand.d b/42sh/objs/lexer/lexer_lessand.d deleted file mode 100644 index d234e206..00000000 --- a/42sh/objs/lexer/lexer_lessand.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/lexer_lessand.o: src/lexer/lexer_lessand.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_lessand.o b/42sh/objs/lexer/lexer_lessand.o deleted file mode 100644 index 1533346beba8b99a137bd751b8ce4e25559045bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3864 zcmb7HYit`;7CtlM8ILoL?Ixw94~kI=bb-X_gDQe-soS`n1ouH6rCNao*PbRW?l|kQ zONz=akb)YeKoKCZ(n{qA5@@vuka!BQ-4#d$Apu%IfP_%_0SYVFWf4dP3gJ65caqqY zZTBkYdC&dsxpU9G*LmyvFMkRXNeY31LZC4fED1te3_8WmUun9csHa^7<{;@wymP4p!%uD;bp1o`E5@2=SUIp6yH0=#1a<6QBI z&Ym(4X~a7%W`9Mj_lVe+F?>I$ExX56PT-b29VM^q*#CW+pSIKhJq69I8)z*Ac(#sxtz3 zkbt*!!8D=Ms6wZE#y*b zSG%KDe(Zp?nrsA(yVYFPrrylv^l)|vGTXP61~WV8`t1X~v~76n#>@b18OWrED4Q7^ z^wspXUe98A-SGCI4E6eAV|vrIgW2?;NjuX6G`J(PsV|)+FRdUUDmqolmE0;-tx^%f z^+mqyRBdz#X}QH)ZDM9sxlnTzoFLB$yHs{Yk~POIjyQH9$$$<&l>DycM{^abmT$Hl z;QP`QlFu|dS$GH@+Tciz5N{o9hjrO%(g9E6lBnwwxE0MOg&J3@>==FvHAU#eT5LpD_ zLl8B!&YQ_-Mr>azgLmVAMZKR1$2lJ^BhvZ!P?WA1Rhn6gEt3H=G<)3 z&J*a69wO|mO!aP6?>7PL8pMgdG3-&Qc zS={s~M4QrLd;z%v(aJ)(os4f_UCh>ba=UI^25lo-i{$nMMI&9%C6Ky2ay0~hs?ZJL zHi)pUGq#>(eGQl<>AN5zd9d{$X-m^)h@`aM*arD1yEgEQqtG~aDa|wPgZ3O-8!@Bt zM`+%nH_7d76nPRRFHC9){|-Xcb$*hjqhWLG)NU2Y!Ksd<36rC?hk?ZspU-h$-NJ&BD(*XeDa}#4}AUh(j{x0 z3m$pwjqhGQc;yeTV%+ z3qZJdH`&D-jPu5gD~nxRY9fjc3cET%ygoE8Ja%!th=JZ7!(_PvgvJ}pQM~8E#bw1V zt})@_Vq_PWteDX&5V*L)go_J=qqthcK(1MKaTyEO|JvR#HYM0DjPjef4H%}b1$!>t zIzZBRLP|u#`cW~@GDJRn%HP%CHlcJZakspw*{@Kd%MmNnQAA4853y!&UM8n26`g#k zR=}^c*=LGUHMf!y{#0>I_quwId%#V3ceP9Y1JXIlNOf-s9yin=-V(ph4~LGT6i)?= z5K;)q6!C9K7)o4HqfOtchSsmP_NaP~Dr?uOF<32HOP0>3rTyyVLHr`^Gj$o?W$`QVf zUPm&>s^bYE@8RTNXN6n^i6wVD=u7R0ke3L#Tu2Cx(~b$b5;6`)&{&;kdgpt-y`-U^ ltUXn$=oX42MZCSxy?2z~V_&oIZ-MO;h<`rVmDz`#eg>?^Qwjh8 diff --git a/42sh/objs/lexer/lexer_number.d b/42sh/objs/lexer/lexer_number.d deleted file mode 100644 index 244fa71b..00000000 --- a/42sh/objs/lexer/lexer_number.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/lexer_number.o: src/lexer/lexer_number.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_number.o b/42sh/objs/lexer/lexer_number.o deleted file mode 100644 index 95dcdfe7193f594ef4c6f9f84a74b159dccc1b8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4064 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 diff --git a/42sh/objs/lexer/lexer_special.d b/42sh/objs/lexer/lexer_special.d deleted file mode 100644 index 64780515..00000000 --- a/42sh/objs/lexer/lexer_special.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/lexer_special.o: src/lexer/lexer_special.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_special.o b/42sh/objs/lexer/lexer_special.o deleted file mode 100644 index 093d8081054b86c0952a319d2263efc61093ccf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4000 zcmb7HTWlOx8UANyXLfeS-rd+Ca!6WMa@r;+_PUO#EHELPc$2Yfr@@!BK}FNedSY+b z%q~0Q#Hj+Laf`Bbg;JIFsa5+>iGX-0sC}raauJaNswj6VUXUe--{MPzHycZ?R z?c$Z(V-@bwj(0#T649^ZeBY7v{R`_Sx9_I))e7#s<9!&fNA9OAk1i%cts!rUccM@f zCAQZW;>q%E1Ful6mL1zIoZ#|4G~dm#z7bi@w{KZrfLA$sTx@WAeX|m8o5Z_vn|PwW zYN6PUce)KPZZ_5}RNB@rsLwxLz3F^kka%y%1?;;`JbZKlvc0~C_~S$i=eyPs*iF2x zzGCGB=IPsu?x~VHXWJ8_O}TVd;$@^W-5GqhTX6x%lH2f{1^ZYHyBl<{?biF?C5g93 z;tfbVX%eQt5b7+$@2y;N1!DVrS0$b=i>U&S+qRFWkJly531)B*xcDB>PUJ@+%aB7H z1|0%5Hy(mXev-|hTk5k`{ff2xZpNyAW!jXw3u!VT>$YmnjD_8S@9mIFE#*urKhe3W2eKO_wFFCR?L>2C8ri}+p9XoQlZ>mr0lGR&e{1>mE&`T?9iaMU>B>W?Ll&EbnyIw z@6c#|e{ObS26AF-lBV;A=)ni3M(N<} zKA-nO4IiR#!Y)_b`OKp0mF8V%F2jH>zqkB678eRN@+)6*T;K=Nlaj9ncCru%f^qM; zf?puVD^defz=#sKQe}g3SF&4ElWBcRa)Z)^^B##RYSJ`6ZGHy(t!^hZxfLH-v>&Nm z%ASOp~b3Lq(!CxYE&`uU;H+~{e<3~coMj)!}RF89p%D*TSbqPG8o?(aj7w3;D-7#cwGGsctZUixT(GY-l6^wyfb`#Z;YlK#%Dy4l=3GCMTzCx*bUDhni7#n+GAk4^sBMkF_+ACR;Mbk=Q%W(eyMJOQ)w_JI2ij<|alJ1BZ7vwNo zk+f%B?EH1vpD341e?79VGyM0XirffYU})uoWG6V!lB-opZn3;LhhKkeDk5t7}p|5O&rk-{r6fo)HssWb6RX1 zDWBC$SY0EUA-W1=b41feG!+mj&h(LXM5LuhG{kNhNb5!xV~%Udacwik>w)@-5$&#V zZO6ElKsn!y=vd)RV$G?q8Z30*5uPAX-!}tWe@e=`rMy#02wqP8MJf6BUkZ+}vD#$P lJ#98$GtF_bkKuv$eAhWe!2@iU+!EgMmJJhG;+f{>{=dduUcmqW diff --git a/42sh/objs/lexer/lexer_var.d b/42sh/objs/lexer/lexer_var.d deleted file mode 100644 index 84b1cba5..00000000 --- a/42sh/objs/lexer/lexer_var.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/lexer_var.o: src/lexer/lexer_var.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_var.o b/42sh/objs/lexer/lexer_var.o deleted file mode 100644 index 1c10585616cff32ecfd2c9bcef66da399851dbb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4028 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 J_z{J^{THUK%~SvY diff --git a/42sh/objs/lexer/reduce_parens.d b/42sh/objs/lexer/reduce_parens.d deleted file mode 100644 index 86ff00c5..00000000 --- a/42sh/objs/lexer/reduce_parens.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/reduce_parens.o: src/lexer/reduce_parens.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/reduce_parens.o b/42sh/objs/lexer/reduce_parens.o deleted file mode 100644 index 883f41e46596891895ce81939343f275505942ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4068 zcmb7HeQaA-6~FJ<_r>|L^R=uc-Dat!47SE0%^+h*NZ3qY-Bzl~GJ*tpIQC28)p<7d zbNaCc3Zc_Hv#HgzQ6XRx5}=`JfW)Lt8&WqAsc6|MA+i1es7O>=1c;5l3LS*s@4fqy z*z0IH%DLy`p8LD!p8MgKH~#gv|1=4qg#;RK7+jQS;$YBb@D)1Whh($gagt*|felPS zj?oFSEZ08l`nqr5pPagX-43*enFNSy6>|S z2R4DxZXz;-l9roQ@cMp@;>>oE*%VM^$X49H_?Z9LLG<9vKzb~ypcEs zS(SKW*LC$tvwGQF`s=t^^ETXkY~NY4y7;zPt-Q6IJS%Xk&06Jcvo>Z{UpK3-y+uH? zn!IE#T@kUb4`Euf2CFvS0q@1-O`c!5&5!iDQH9tEKEYo1D!XBbrN#5`Gs%@fG(o;KudZfo60;mY4wOj0HhICU z{w_#(<>2b-s-M&ep1bAbyKt+X7yKQ_174E#v6l4S(_E^CUg$0CEqodemVYyUrg}riSOO} zz`po`T`K1aPJFn3pno8KdnS(ubI0%ijQ*j){*QiGluMaJ-ac%X5+yrZ$=FsgU9z2W ze?}xG%NU%PJyduwn@$W3mglTY@rX4jT+1ySv>j1ak~fr2ihRMDjeAYbaYZ)mrbT8h zT@rRVBPvcgH|yBhxaTS7j@p7jb@PgJzU%@lpMxm-B2#c&8-Yq%-bgl6p`kgv~Hp$bjIr=XhOTtyb4!nbNDR8rcjrB1M(>Q zdRT}zVLe3aCKjR{+G$$7D1>MUaS4A$guFF$3hG~=hCgpyg=mWC#Ky(^%!ElLVBUR_ zZ~M>XdEwIbzyCJV)Az(bF7&-56X$+@?5?XH*y-FdaQuAsbv(8j*8-)p^Mi@&B&uq z7jJ`#;;E;LS3tRVDd>7?-SxlruL+fBtr5MExOR}=Zs-WMRXch>Xoowrj<%-ANknn- zE#T8v2)4Sa#tShK?RZ$fw>|jHK7v?XoFue%HQJ6=;~Zcu=VbDgEWXm#UVf3NluHTa zPvmwEf2`h9K2lD2uX|Yt@28@Fj!1RyHhwQ~%xdt|60+n$%5aI}ob2pm07Bd%;QW~DSv z%68*(ax+}*zAO4Bf>P+21$aWn7@WfJJ@RI#;gk#+p@rvUB-Az~n~W(LMqum9vJ0Kf zBk0`Y4Y|#z$n9|5k&^eMkjz1xW{jWi?|7A$_4?v=1J9s7WaWeXn?>By`O}Yjj70J=tLMY;BCcyTRVwU<<466bNg^wbI#aDKlU6bo}m4+wLJ7 kUkmKQ`M^KE`P_`~KOHQ@`QHu7o+;V(TI38q)G^}pcK`qY diff --git a/42sh/objs/lexer/token_append.d b/42sh/objs/lexer/token_append.d deleted file mode 100644 index 748d74c0..00000000 --- a/42sh/objs/lexer/token_append.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/token_append.o: src/lexer/token_append.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_append.o b/42sh/objs/lexer/token_append.o deleted file mode 100644 index 56e739c658bee16f66033aabed166f343f30662a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3372 zcmb7HZ){Ul6u<9v_qAQSwrmLHZwdp2z`8N^VPOL{$K*8$&4-$ln;C`CPqFe&V;yvhI!6=_szC|%#)mZ z?m73K-#z!-d(UgXz4O~$Cn21JKm%L>oT1Q!fPoeO7tr_sx++)$qv!)<>wrm+{b&S| zBuyF8tiGl1=PWo!~K`WXX71Z7_-Go zs{LtnDaSL|>H(I&MJ@|CZ|Cm;`_0DH0VQ`Y-YL8gMYP6Uq*&ei?ssooHbX3r&&Ffn zk%!~OGnteksqwuS-aY$$i^bQxOcUK_&;dMrGq5>OL%AEo`? zQc2ZBEZ^^ChF8Uc=>Y(wGY^Ol^Af-b9xE{zd=U67drt+BO*jm^4Y-(a31oH!iiaNB zkBR!v;>fQJ{rW^({tr#!Idn2%%rpW0OW~QZzaXE!%?r;|IWq ziXjF^F1U0th>B%=zY`Ore`NR;5%ta={YPW4?pa*?9OmXc)=y(_ zQt!O3PwKI2Cyl}DQ+JKwYpZ|IqgV9XM(oOWKN-W5dO?p(oSeGbEsu2@QCPDp(Bc2A zf-{CE+=cvwj=Yy!HztmJ)v)W!b}Sg7?(Ut@&^{%bOQzLObGRYg5LzXtpvu)XH-Hju zY7DPiO>$YeKBWvP*?KMgyrN1_92B)LER*_J4t(ne_NVvs#p|0Ia|ub#9FQ7`oQP-1 zpqfh#s7hbR)QVk6Qq_oQAev;!9FzF|(1;?HRtG|6gY*01TAV03ndFiO6#^oW&T1s3 zsDzutt@PDUhc6&3^3CC@A!WRubk)G6T0tDXO&$+iyoxYPtLEA&9li~o7SCheuA0qo zEh!~DGogdfRH8cP0gUB9h^vNk_&gr;Cd6F@$Xzw4G~=cB;-Vm78lD*OlC>y+IxS(g z_J@{V52|A~Gy=zO#=Z=Vi(_?*%zTl#oiD%uM1C3tKNFaeoZGFlz05t;>y| z8&G?kuMN1rfF45f9eiz&I5}ABZB(lr?}DH%$3+y73GwN65i?;k3)yd}qn9Wnb9|2zgz5@IU@Eu^Rp_qN#Hzp2i zB@kvFO?Vh^?~pKoXu_PbS$HeZgja-_a4j_9QO*Mf!UI4Po**;rW+uED%n=U;XW{i= zrvJ*J6EcB&2ag$I*B4Pr$j&Qwa693K0$jlBbd9oQ7Q@V*JBTzrZC`)V?h72_JF4uT znQoZNlMa~4aew)$pv4?uwA@VXftn$w2K(@PUtCI{3c)n9I)xL~3v|Qnv&b=rqt%tJ zm+1l_LR}FmXu?KXCA88?=(kdbkf44TSs|RDYe24x(B=r;*h&|`*m>%Y&?ezY+5#h0 zAm@UFfhDbUna~2h=cz9ubkj$`ys(un1sA~8Xl;agh1X~en4!D8mGT-DglB~wSjII% zSHZf=zo(0PsP8nb2B#zFG(SRl!L^JR%)=++5I$_8?ifheUEMAwmxF}6TlbWu3tO3d zl*y$`fK%| G1^)mMGX-P- diff --git a/42sh/objs/lexer/token_cmp_type.d b/42sh/objs/lexer/token_cmp_type.d deleted file mode 100644 index d37d7e4e..00000000 --- a/42sh/objs/lexer/token_cmp_type.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/token_cmp_type.o: src/lexer/token_cmp_type.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_cmp_type.o b/42sh/objs/lexer/token_cmp_type.o deleted file mode 100644 index b3c384397d9fca9239106bc8d2963b07731817d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2756 zcmb7GU5Fc16h3#7$xb)fB;80^tx6zktwob{UF@Pu-PqPkr5@JDE+gW+yQ} z+uhPit00C2T_0BZSoA?(1O=5^A1vy_LJ?m?5TW|g2SufbV6@QsotZmnGVN+SaPGP1 z%(>s3pL_4j*MI+dwU0>n2m{y;uBaH|V9>4L78^IAi}KkTuK~F_Fo`+BMv$)8&E>i? zcl3k%pFVh9cW1lggz>sw>!*{h4@+IonRAW2UaMDav##%ZDn0vH+r`D%kd|{YzP1CA z(lKx2mCA-~_Tv5C>5TbH0gqu5yzJau)m-9uyW?~58WN^gyrMN<<|SUdJU0*I;{GY) ztMs?)c+-5VSu1bWZp3@0%bVyYZe}-idAR*p%o=ux-uPTR8DQ;7a+o5$Q3(b>nM|_p6;l(@W!JF<8uf9^bX}%XF zo{$B!dc?z_vmw3l{lEtvHdkGGq^)SUvQl%hK!JV^o_g|@K*@)hJ3la}U(WaKn z_w*+54Z|zSo~cBz9+BzDkkx^JCYBMdai2&wY{R^AVq!IsABh$*k6jWh*|O97&GEcN!%e z>ifn=pd`mellR|4wW^USnagH1RWCnpTDq}V(Ro`W4N4uVVRb5hw7ihZrp88V1>LBu z=%du_Nkyyfn5eGXkEkXk1F?}sschxr_Q3wRY&}axAzLN0W>CYb74w#vi`$l3@t8?f zbDqRjaaTB|`oht`_V89Qh{`ER7zf2OyK|tUOS|N}y>nfI zID7<;L_{pG@F{OB^BpB3FJOdL`O?;Y!AO3-u2sLv8!vDQ!wOhA(8trbvPWw|e$J*z zB|+NTn0>=qT1jZydzk&m+M`M$s(pqTzfak#B!(#P6{fGTI_O`AP&M^C2>-hn0z$pS z^A9j+LS=ZO%#-O1=jt*FYLlZopNsj8Kbl;KBVe{C!AzZNS@*8J2Kqlfd|5N|31Z@# zLQnuw#aBN_jOP+R=LYZr<|s!_z8bvk0qc&|#@LI|(9(xSeEs+*YU;w7cP{*O9M4|| zzXkpXyaE0m%d>^>KcOn$Dhl2~v>QGUfs~Xxq`Xr~2>bc0l<=hp4=y>EPWuL9 F^FOhyY$X5y diff --git a/42sh/objs/lexer/token_expand_var.d b/42sh/objs/lexer/token_expand_var.d deleted file mode 100644 index 77dc04d1..00000000 --- a/42sh/objs/lexer/token_expand_var.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/lexer/token_expand_var.o: src/lexer/token_expand_var.c \ - includes/lexer.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/parser.h includes/ft_readline.h \ - includes/exec.h includes/job_control.h includes/builtin.h \ - includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_expand_var.o b/42sh/objs/lexer/token_expand_var.o deleted file mode 100644 index 2a5f009c461d8fcfdd19309bc0f38ef9cb2ffa9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3128 zcma)8U2GIp6uvXtJDu&cyW3U~5zQp62#MWYp@|g{s8AUSBn0{M!A!QZ!|viTyV;$V zf}n*Wx*?GgLgHhi4;m5^P4od15dsn-519DCgT9HeB>s??2uiemXXZ}3JAmaR=boQA z_nULh{h7J?_pkppGbTkC25=L&%rWR-(4*kn6)5+|i z^zN$nmU#OLkyWtZ8msTR&q` z;OWAd1|Fq6f&C{^4&m8(b5{kc>rXJv#{1x$z*{ZwHVZsqGQj2oon)~8iUr3*4A;wo z`$u~CV|-=aKj&~5Mu^Pe8;qld=$ImxJ93MNdE?-J&Y zADm+GBdcfFgy;}`W; zFZ9#-)HiP2zDXakE7d~D(fg9=WLjTr6>+Kb^rc}WdzU7kS;DFnD^;{d?Mlimy=FV6 zJzCCS4~=9hNsFbnRWU!6+gsY5&7^vlR`aG+-e)dl;aK0nT+@5NszTEKCMStv$;s*7 zP;gw9&A1t6jtVW$*{X&ON=rna$2 zY<(vgeb`;mZkQ`IjkeMsVE>$`v?8pPJxv0%-WT3@TIe$;DsV{Khww;>OHxEWF-rHQ z6sM1FlYF9lnXL9}zLmd9RtH&(@57)R!9a?)J+%I>j z>c`N2B=9nj)1Ylh^W8hqLzz^)Mj!~&xMN?mRuwS7A*j| zXf;IC|23%@Z5X{T9uTCNO9aQ(Dh_AqI~l$raGfC3yK0ho|0G3eeLRZ9CH`=W zI*%_@2DvuKqdR%CvVkkgVIEO(yyF$#t+;&23Z5S1>LB;r8+Z$X73BqGrx&D=9OUiF zH4mlfI=qLt^o^__RlMaSxQVfz4Ul+oPah=wJqsYQk$Rr>Z6zh-A|am;5`y9t`ZXr` z2xOdq1ucQBGd;cDrp;e(KNqr@xyv#$Ra$p1Gm|b)vs!R+McXYo MK?MFPY$wauf33Z~-T(jq diff --git a/42sh/objs/lexer/token_free.d b/42sh/objs/lexer/token_free.d deleted file mode 100644 index 1663b0e6..00000000 --- a/42sh/objs/lexer/token_free.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/token_free.o: src/lexer/token_free.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_free.o b/42sh/objs/lexer/token_free.o deleted file mode 100644 index 2d57db0ce6da1b1cf667fcdae29c878bc7522607..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3172 zcma)8U2GIp6h1S%Gdt{--Gw3`2$`h(XkvFOEu>MzRzS8;6M}#wB9raz&|Tclt~LH+=BHs3e+bVxm!F6KUcD;SC7KoN>%QIhZC@LZ3ghvzU&e?yHyFoR_+(jmd!RmOxwWcrS=N?Udw0F$edj^YQ#+oE=D$gh&kHRJU);a#31 zUTviE(ESccyaVz8|D7WqE}ejE&Tm3Cg}>j|qJheKYEyl4+I*$X7Q@(-zlPNdh*#+xh71i}7SXSeEkd*heN8*i3JZTbO3%<_M@4r&f5s1zE z-6`=d$w^n_ey1OiAD>H-V`E+*C%=^K7VkdwKynPG(@ypWi1*7ZOBVPtySgVcb}ch{ z-OP-=HJur&-^iS8(?l(Ql2+*pE|;F70H4?SC8n z-hBPLUcOgmfB)W>&BJ!pEtVa#JJpfuFrUno@EEjrcfd$>txG-g6uH%0x?~UA)pV`= zhV7tWww=mRdXI~l>A@rAL-}mFYn@xLa+MKl9o>(je72S)w|LYRgH_`SWvgf%i=D7b zWoOW=J8p5%vGZopsd=-hW(gE>rR4TyCkru03>=>;WUFMmIhsKc9{!{(P*%rVwNN~% zFOM%!7NQ(#g8Euf6#hjDrx37E>4}Eo&&HmMt!;S$<p5D`QD zh{bsf`;uW{26=9ywaP2TU->DD1ac(=l#0=u5^CJ z2PXCp+2w^a%w<>e+eb* zO0p$loROJ4fyl|*USa$@M7{CkyXxlo{@*h`LX}QnRFpgM`4|;m1FXzEZj`RO)pXIx zmFjsrUF_`M(CBeT+_ZRqT#`X91)e%Qh=B6~QUz`b`NY9MCyDnHY8cDXJZ>35p@gDE zqkn6LzFps;CG_puqK%sVi5Axj+GDUn+qEV7sJ7BmBl-zVg{tVIs*X+2K7e4=_I^lU zwr_;QV(rg+eto@^YouH$B?QmY&q}!jG69EAE1(2SakYXr>p`2WgEjsWp0`Uv9kPdn J8u%rk{{T4^z(W84 diff --git a/42sh/objs/lexer/token_init.d b/42sh/objs/lexer/token_init.d deleted file mode 100644 index dbe2d77f..00000000 --- a/42sh/objs/lexer/token_init.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/token_init.o: src/lexer/token_init.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_init.o b/42sh/objs/lexer/token_init.o deleted file mode 100644 index bf1ff6fb83822fe27d6365bd17e319e950e8cccc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2924 zcma)8T}&KR6h1S{9Tpar<);l|HDkc4jVzR+A$5bSw01#EYHceI>SUQ6VCyoA`vbJ8 z+5~Mx9;AtFf{DhMn8p|rHEJaBfkqRW^uZV3e9)IhAF8i{P1Nt)xdXe~A2`Xm=jWdL z&AIp7pZV#ZKmV;J(gK7ATm_yMXiPBZ9`HIl??7>m1uZG*+rT8|2JQq|R>7Goc)DjF zKRkMT%l0)tgz@;ZKi3j*ZZOWV@X4}L&RB86$`^9dWm$(_h#z~}?(YqF8x*2qJE zGpZJFd53s7bP}>Mzgo2^{Q16LQ&L$^t*Eb^ox(f|R?(eJyD7^WIaE5LTj80?xe7c^ zxh~}0D^M%&oJnguhw6F*EUWxJII8dlyl(nU;VF{SCgG{)(2cH)QOJ=YDNHv2Y|Py9ZjA|K6BiMZ~&? zwkSIz5^?^=$V)%O`J|a6BPX9VXPjIqH(SyC!C{r&7tT-k$uVWlx{BdZ=K@ILa%@n~|L?GFf-R zlug<#P%2qSl0BKsk(0Nn=;qTCu9GsQC!ap!5C?62)Kf`o)E*2si$FMH+#7Dxny~JA z0}VB!O1mKf;e(+kP@}45Ef5ZcJVVq|AUxE}MjxtcbinKng%DO91zwXjQ0t9*sBWnF z$vUE7FX_s~$n*=?D{heMOm*}q3(%k^Wa~dc`T>}Mel#zFwIfw22vh498OS%-HK4bX zI1lXtTXDTTD3+joz}8cGdqjK;?Nhb}_4ZZ@yaV-BHk*t&2ocmTK^TkNXgUWQ@1Y55 z#$^amrQQPCd=<5mpP@r<(4r7pP`@zuE!&N3f)dZi6aFSv$NmQ@#osQ5b7yYhKoB23jSNVEhb=^m=M(pHUHGhXmfh#x4z(R{?_0mx z`+B5q=4;!$cy>i}UHj0Z1-4B-d*;{1u!{?%269o@#T8O6xeZ|QzED_PE{@`CRMg!TsT$McNh4a3+H8zbM*gyC zXO59J7ttbh)xjl1@kjQ6mu`BCr^XY-!;$m)V7>o)^EqO4ilf!Eo8fx2@&y8dmUit- zF@@J^^G+a=S3`7?=dyKFaX-ka=v2c}QlLQ-yJ~+IL1R?t#xo*p3_}*BY=e9N_THFi zi-|}~=pTyku-J#N{ct}X69;2rUrdp!mdUi7DTMQk$&t0{@V@&MbM?oxC2&no4H)zw&<& C(tuU~ diff --git a/42sh/objs/lexer/token_print.d b/42sh/objs/lexer/token_print.d deleted file mode 100644 index 0e00e9ea..00000000 --- a/42sh/objs/lexer/token_print.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/lexer/token_print.o: src/lexer/token_print.c includes/lexer.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_print.o b/42sh/objs/lexer/token_print.o deleted file mode 100644 index 2c84facdf77a2aee47634e96028aaab3b662dd3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3640 zcma)8U2GIp6uvXtnQnL6?Y7(UW5sMz3To)?Qi?VTNQJ^uOF}BeYQS+jJ8c)Yv+K@m zX(?4=jk+lih#?a7p>I4$h!2{;gNjIk3W+B0fQD#aOvF?{F{X$SzcX{E-CZbflXK6{ zJ@>ok+T>W*}r3xr3p?5nUjl)a7*aYa!LGn3H!xKU9G@f@6XK7K&v0%u~O3cR@1 zlkHOgYKg&fdX&FuJe7gob9f_!@-O7 z^klR_%D*r^2k$KoaKCs7y*EWuit*m#s}J*hce`!iW6pWZk#8oZ_i4uMcmX=hymq}T zPqD>2<~tBmtq_ajbMSb0?A~~>bULXidTfBgyDi@u9^Wb+)?fFG&&Esj?6eNJIKC|$ zZ!yP7W<*TL!kf*6+^<4=)t|%Sr^JjE(ydXEW0FU0N^Qb=_auJ@^uk>bcy7q+P_h5+Q zt>t*#9FMEa%UHi76L;=gGND_D#rdA#c-Q%)BRt=WbHqpcV!ef4d!s4%1)$6Dr@YF2 zj4cC49Bd0HzfrzK1qtUn+(qt+=6;TjO+}))(dp>e=rpT*;}G1>woTnai;lNVN5@$- z*LDpeh{Q>VljEDGa^H-d7IIxvV_%55ucH?*oo3TJf8__7yMOg-kbj}YKc^I;`&ZKK zIk^bk`ti1@=y=z)j`4PPGpwrvg$Y8fMu(t|CbNGK9~SWV)IYHW!>2{ku`mOnBlM!3ts)NtRf z)XsP;+}vdJD{6XJX<~Uxv7})#Q%NSk44bJb-PClGajqDN-5R4#F{!L#8PvOFgq}?4 zeZj15B>HqM9z^I&r_ZFd0AOuya84JGjKr*oR!5WKF*C;0{#b@-hRSB}EQ_@~IVBkG znKs0PDxtv_kX$~$T<5D2s!>{E2*zq*t;gki!uzCmY57xhJtQV_!=?bf!p#M$RLRIH z&jYh(;e#I#Tt2UtAQ*F3FqdyrfRq;0d|4&R!m}8*HC``Od6w1%hbI*`E4S*Or2L1# z`Hs)jzGD!!?SQLLDF`m{&``pX527y-52ZgNt?F-EO9lWhRKJ2AV=rB#vA{-K+g?j! zH8jSg!|3D*bORu9VJZEsED)>RBj6XvR3p|i_ZTF?5NpMHxBDcdKS-M=*85qR{1ap= ziihN1A-)T8ZTB1nD|Jf~VA4%=vWx}KkhZb(JXla#<0edsN?J>+{0{AT(pqU1`uWgE zdm5{_J&-73X`NWVfXST@zlVcV?U^LzmR^L#Ll2WINIOaX7qVOMRMMmpT-0Y&3R(@?0#ZSPpd5&51B_9z%mbm(A(M&D zo|~w2$TR`MC80)DK_)t9?nMtcX|E#jB@DbSo^n!5HSAkxjH9*45laKdIO=jcxzX@lJ zOqgro#EO>33N6O45w@O90|ip>nE)Oh@K8U!M79TH)F6MKp_IUbzAv^9-m#gN$WMt$N&HU diff --git a/42sh/objs/line-editing/builtin_history.d b/42sh/objs/line-editing/builtin_history.d deleted file mode 100644 index 6f1e9d61..00000000 --- a/42sh/objs/line-editing/builtin_history.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/builtin_history.o: src/line-editing/builtin_history.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/builtin_history.o b/42sh/objs/line-editing/builtin_history.o deleted file mode 100644 index d1db041c0ba9e7e7b2dd35111b8c807832f01839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3540 zcmb7HeQZ-z6u+(~}Z zzyYB&DhQYuV0pk3f_wF0*W5_(ox#ynq z&i%b}&$;)!cJ$`2|2P>F>?SEnG_U1SYJwZAcqUF2fBrX*(_C*eCsXTV z@t#6L0jO?Kl+8O^w>>lEwSdQUom*~O@L;ZhR1^a*orzA1=c@2#>>4Gjk}5n*yhu+^ zF5XA^tBlXYD{+jO;-%Ey3@x$Zo#1bOgzr1=GJyRxMqQvy8(%J>CgSLFU=Gx2zM?EZL>Y&IQN)W~iM@2>rxv$_(-J__C3x6>k<@29Sw&V}^LzKz7>wuHkqBPvBg)fnPRS>S62`msp3i#1*$o-!n3YQc+Uc4MEKQc(A#)R>}d*<8M&o8twzu?2XP(k7fg9Y2ssIIZV z+7I?~ycUkv&GER(peD^ZN%Ov?Q>u<=-S05RTg`(x&G*}UkN7ArdN1@CiKgJ^fLq{C zP{$xC0R*!ZTu$@~Vn?}ghVxFj_>(+zy+tnW`$H}kuF1vDs~@v#v|28;G|R>Cn0z@r zPVn;3zA@%Igoev5hi{X|#K@HS;5?d^;62pLopi0#;wOv=a$i1tKH4AFHNK-Cnx!4O5xk`(504_zGxUM1Og3tH*2Mi z5ZJP1M@OJ9p3A2)YM?pT6l@AS9!;Z-H8wXv39ecZT)vd$bI}l;g~oU+rQx#^>M5ks zm?+6qUd!YLf>9Rg%mXEq*pt~6i-cCK$S0L(c0gIdEUql2YAhSkk}R5xo4Z@Bj90Z?ml7!uMJiAxd-@*tjd05vzGPLgEl;*GIM&$~G53#{&Bw+a>url%?w?IkLpE@ zif*|hc7ZkRKjJy@*Vz0sZ%?j^22SlgcXi3{pY2_Ji;DId_+9Wh@Cf)@@NZyB9AQy5 zaKebFK4hYzQ!fQk9mqswoDBvIgULjd;HCrIMCIcPscPg!#pGU8K{8QMxz~Rs$%zD* zo5l(dKb?e8L1x;7!EH?F_Y3}Nr|THJ=p_rl-8c2@O`4~hwR-)BZJTP0BBQ6m*T&v} zry$(&)?n1X*su!Lmc&AZd@htyqv=8{9!jljexlNnAIOIkAdK{ z)YmIYFNibBCwg%ly2AHWE>@oPv#IE!kHcpK@cL2rDY%Xc8*-}oSx zPa0ARak+%cg9VnrHDZNb5DG1x<}I_Agkt9Wej^ diff --git a/42sh/objs/line-editing/check_backslash.d b/42sh/objs/line-editing/check_backslash.d deleted file mode 100644 index 9adf390f..00000000 --- a/42sh/objs/line-editing/check_backslash.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/check_backslash.o: src/line-editing/check_backslash.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/check_backslash.o b/42sh/objs/line-editing/check_backslash.o deleted file mode 100644 index 1fcbe8ce376b9816499e51958767304e554fc9ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3052 zcma)8UuauZ7(X}3xyh0=Njr;^sRWs`!jg2Q!|J-V#dTh5McLZgqH?*py=~H^Nlb3G z)W5@abD>V`!@xK3%@;)kAAFfIg@J;;sNmZe6(=a{!H22C`uom3H%o3i*ALG5{+{3Y zzVq+i@BjYe-yma(pP@qwpnb{FCDB0lplPJvhTf(Dper)Q)q%;VCCCZVb=#`jj_l|Y zqtg?&bXU461;QifLYT1*vIW>_VlL^rS+y(q;=DBIdOMzrXp$DIowmd?ve}AtlGd|5 zKNoLCVr&;LUz{t^5HH?$GQYDD?_-(Y57-a6XTQp<+AqjkowMDq= zw`iCmMQ?sCp1X{9#xu(0f~6OYMM`f|y_0hGL7C5iJLc!$m9h(BgT48!NxVH0@1BalZgLh$@c=l3x%X)v7cu&auKHnxDF0p|0=9i=g1mxDsb~t)VFK2WtxWA=E z)M@Lr;;DRbR@cXmw8Sz^;w7cA2Y6)q6X#Fvxd+e6>2nqAt~0><9^@q6u*B0Oo>WvGUJS?|r;^NGW>^9SlMT^{bCx+JpJ7`=}1*B!9N=(VQej#{k` zyH1KkKut!k)^2DGwK;&CBJvAbJs~wl*R|!ZlP`XCILX3ngf4e-e0=KZ0iBvw0g|kc^qL%oBRnFi%tqMm3iF=xNbhEsq_pv!!_e3-LVwgFj!tBNJe(L&|(y2Tc+sXa0gt|M{sdQoU zd}$cFl;N;H_E_X#b@4#yIu-b#&?* z)L~-n_=raHyA7oXa&+g*_!d97PRWTG!P8Di+gLJr$8LaH@wXF0^WH^)Ai9?dQ^7et zRJ3S}naK;U_JdRY6ida>g#`WIR6)Q{I!>h1%cUfgHgcy|UOvW@dO}G=gQ0g3Mbq4i zR=-I|8yoIcu#s5etncv-_c!7SVtnjT^osINtOLD5bD$~S^NM;l9axdij^>8@;|dRj zFY=%|#-n4rYmRr0@x&lk2f1IJ=euV3-SBh_^82QFXp9HP$n${c{pvR}e6RWwkEk^s zMpS5!cdJi1;xq(5Y~AV%->2F<4EMBf?}imxfbi5qA}E9)1gr0JWyPnWq90LEfU(rK zqE?o=B>AV{SclXH;Ml&@d*CQ2wI=;^G|8WL^zN+mKM#(VD>WtUkAUNiOcBR;H6!_6 z$?umOO!$vVJ_H^YD@Y#aU2ajC4qK~!+@sSGZuOJgs`q$wI*P4+rsG*D*KB%8q$nN~ qeb%rIy^1HQVA-Xj@F8ZQlyAxf%Mm>%LWCA9)2>x4$Q4U`!~O#}dzl*m diff --git a/42sh/objs/line-editing/copy_cut_paste.d b/42sh/objs/line-editing/copy_cut_paste.d deleted file mode 100644 index 65d4fff3..00000000 --- a/42sh/objs/line-editing/copy_cut_paste.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/copy_cut_paste.o: src/line-editing/copy_cut_paste.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/copy_cut_paste.o b/42sh/objs/line-editing/copy_cut_paste.o deleted file mode 100644 index f117337cf4eccff6baabc1c680370f59f79f7087..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5508 zcmb7IZE#dq89sM+&)v;#vYP}-QJ`)|K1ypgAw|sKrcEsAT(-nPN+MD4ve{fVi^=ZJ zeuRKzCT2mi1hCZ7u^pxUz^OV_8K-CmmGWhvQwxkg@DD$tLx*HWM`SWK(^lg1o_lVx zyGaGl3U)JheN9~I?Os6XJMJ8v^sZi?&32PGqU zU^1#zBt+5mjM1Ml`zF7&W!u(S-s&BoKu`#eVmVpO*h3_6ut6eL(e=)B+G0R;eM9rs z=2=0%jKei6ViHydOO6^louP}hs&v*NNa-YhHhX3SR1BAzazGaJ^=EQeZ#`lH{=-z$fGw~9gyTt;R#cp~oqSHz=6q4 z{X)jBfYRC8j7o*_q)K>n9OqsU5ZY5DiH+~58AfseI(_Kucs8`nlqbL*M!Ac0Q2 zisst`AO9^s3<-Tcv?GlKs*S)LrsKp+(5C=a7hgxX2ZN-}HBO^2-vK%)(nr{8BP|#M z{;hX3yQ1YUo6QM8ePDJu>nKyi#0#xc?gM+HGnX(J87Fn=N6b}Khw|}b0^`e6{(lVJlr{r5ECw@i47d!b5 z(lpGNm>n&0MLYjjrsc1hQRb0jZeSeCr_ByKKI%}|NZX`HZ8A47i5a1dYYlK{p(4BE z!wZ#>>|}0qI-i}K_%ni-fF0(VU}?ol@~~*77b9IIVg1jsz&!19inBY4Wyf28C%)w2bA?=dW6ZV>mcCYc|Y9-HwZqF4jyR zAOEIJ?XCVkBbAON;{Jv}U7*hYSfmGE%$kNeFoCu8fiB=T!dKx#bL4rP(GBPX{&#+`7&C;=bhMu82FPy?f-vS6?wsCn3#b zeMPbPC~iRRyhct{Croa;7_M4Gs=f>jcW_d5#nH_`nGy0-1=X%MH2(=hyx z5PN9uaKAj?tbr3>L;9Rpk2I1g%zVO8pAw+g0)0Ji{Bqc{b?W8)iKXlAwS&HN^hSC+ zbR#Miku&HT0z?tp05l*ttQ;t*j!RxlHu~ZY0JUP3?sH6=M~@}r#XkUH>gAUrChv+_SZw(_5U*#G&D>IR2B-@ki(NyLAAe;4!=`ytdH zp`JpeS*JK@F&2TM&@S0@{6IPo|r)p#INKdxQsEs|@u&!8=-kYw~<^K(HK0N?5b%Ac$W%5%2 zhPERsle3H6d7UZT<#w&%PBp~wXIG=#-N98g!@cS|d;y6<+^4?AJrFt7Zgq$|pjg_$ zmq527$R7>yvLJU3ahsauz7ApM0!jt!tA)3szR#IGe3v`juBQPV3PBmgP$9lt?ckpU zT^8g^1de@(J43umZRC{@t3mF_0I?C^Aq?2fKMne5ko!Y?RgkX;aW^c6xQhaZ(UG^g z(t)wQev3QYXL;E#ki;!s^#WgXhTCqy<{fVP9#_8x$TI{^*{(XqSEIW!$d?CsCB__5 zpHsI%)y>^V)~-Is%a4Ij(A~)W4ep^SXyo=I+_r-zi(+G{{rMXh)YZf*vb-D;MCOFA zDzKv5*1^lrwGHv5>W{_TA&tk+@YNw+7vzCCnQ-S0bE+`sV)Uh01DbNUVMVHuL>0Kj zLH=-v+k#lB4hV(7M(WpudQp&9K^;KCSpbp-JmdeXcMRhydM<*mey2&!nEcC>@eK;HNOUhT@Bq@ zD9h*uCwdSK+0hRgWVf57kZ(6>?=zr)s#$09%hrRzpIR^Jzf8S4A*sCF#OI3a+93zN z`UR=4m2{<~^sFSiosu?5>X#Hm=!Yd80`&sWdP~5UdC^#R+)2p~k^+VPPbB>ye5hb< znNRA7r(doLSk_R&hfDagCHz-Pc$pWZW})Bp3h`el;pxUN)c>Z0XS#TgQcI6hqGp>i zdJ}zy9_vkJ@d|}FWrTb1%UOXWYGm|IBO1l)bWbdU_ii?o7N&5?7^&V!IBD`^7{{*^ s;+H%zR5q0|;stzvUx41pq{Dl*$B0|qE~96rJNsJJdqphPVDSk1FaFobHvj+t diff --git a/42sh/objs/line-editing/ft_split_whitespaces.d b/42sh/objs/line-editing/ft_split_whitespaces.d deleted file mode 100644 index 8c32499c..00000000 --- a/42sh/objs/line-editing/ft_split_whitespaces.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/ft_split_whitespaces.o: \ - src/line-editing/ft_split_whitespaces.c includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/line-editing/ft_split_whitespaces.o b/42sh/objs/line-editing/ft_split_whitespaces.o deleted file mode 100644 index 25103a254994ca10cc709de98e5abde5948596ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4208 zcmb_fTWlN06`fsjRwgNPC0lXQI7t~mmLIJic9h0;=tM@%U>#XN;Y5yF#931-QldeT z3?GpaRH$LffoQgD}xK*&Q*>k;rgv)XZel!ep9f zUORpMCCAMioZm{zon4zQr=vO@(hgocX$f;Z-UG?Y$tlQnJ7ef=@xsHy>Bw7zU(3(I zn~(rI#fv4PNlK~5OUXS7(k7C4ZS_9tCzrl0zjQb;8p$-`&CC6?Q5XyQoZhD17H>Rk z35xan96X2KSL20Ksd&UpgvW_q!+LK>e$J6P^_Bc=yyWm@vBCBHp4RMjwaexGW`}r! zUn*?Xh{-4j$@r!Gnbf% zB}Pp1+?i@9?g)u@Ng8K>N3YChIDhihsl$tmnb9lS78( zk2!tPo9}NdArR}=yDIViEf3)2ZaaG&{G_RdADx313h~)55;-43DwO%-b!e$2U>(kF{ z>kA0qqwpD42ss1DX;bnKJ$?EIxB6ys_pgWUf28Qw=>1vq<53Ki^Peb%PpIT-5^jSNju$W)mC=8Sh>rbGyddt0!<)_L_|1s6gnfQ8} zBD#0kp`njzxGCh5s_~;7(M#*>o68W>-kj>UN(w@C2XiSUqSfe z+k1e1h=7Wrl3@+38_Kd#Sh81X4ctWqP!9L);^5u<@0G&fUBaf#Twm)zk-;7z11rXo zdl4X;)dN}ub?>=&b5_*5de)XgB@rl(j$M*p!6bIqDan>&RV~RDW3?n(jEFo>9BNOc zK79&CI(1G-=!|bINrMOI9+6WLOD$Coa7Y~B(#4yn>9-?r?%aiez*~`YCYDSDj(7ER z^#l%Cas1$Q9`C`RtM^#f(Zej0wz}iEH98|Bv1}|c+8xcBnN&QMH7CYm*+>SLUL@0H zvF^bPpt?sVl9xxq-Mz;$W2TjQ+dRgsv2dDEQZ_x3OU29yF{no%V?2^DCz9!r42vbQ z3{OU%FP9nYOlegP`1f*`zeU^cZ&mi-e5*P;yBAkUJ9GJ8@cD4nxVsRxN9psr{3m_S z`wljr-TNXgM$VZkO_ZSZ)(o2(lkiQ@A+XtTng`W{1wF=^*|$kSwtk#BUsEdGIj(U$ zG)3)#qN`8{y-g&_1^OOSbcMVMSLY^wA;w36uBmg`U(%@ch&>vklcnsTP#}r<8B5x9 zfb=8sKC7H01*DWfdR8LE1=4d8>5@P?PNA6P^&6COf_$tgCGng!C>P!*Z@WV7O@i$; z1Un>b>em!{Pyo3;M4!9W?;vd#)d6SumD2{zL6Y=scADa`&wq&_iN`(w%NQ$OAR z*XehL&tOdD9YGU|gf5_w2y)P$ixFd@oanzO$IhIDOHw~4UV)AOCx*CDYa=j-{lld} zbL@%zl|gg$T$%A%fe(JzhyE*QAEJ?+YSRu4p>shdDvmV$FD6Z>5V1vcRpdD$m|BsR zq^%qL&Mx1vvl{%)@|1VZGi93^7PxwcyR}cb`cr=J2mG)Wn6Ruw5-tTi2KBl=IxyLo{?|4(5YsmI# zqax`!ZH^y7z{w$gILHqMc`GIu0#1L9H|1(VRfKxrQ?GKb_H(WyYfqFvy1<_b@~5M` zV}W-Ed2f`TSOD@Vq(-@Kfwu+u<5B)ZkUxf~d44F!JEIi%EyT|AChd8?KgORV`dRM2 zYLoBh?)SLrnw)ichcG40mlw-WuvF%{Fps*u%e5T$7a&lTrG013Fx4zVy8Q> zW%%pt!v^AY>!hm((m96*jsFe}llC{M-;?^f)P~f3Qg=xGRGmE_$4~;VU+M$UeoWxJ rGx(%sI&rXh2qnfakI!@f;lL z7o~*(Nu969DJW`LBeBiJgauF`v8*)@4&Hyyj8?z$Yg$RJa^XQ-1L@$Uv(Z`cZq{d@ zMWL~=mIpU0US#v;d~7Sluhu^Y?|Ta7O7T*ec$Q4uc<(6xzE6_^>4@?#J(n?`6wT^i zK9Whq3YX$-Qby90u>m!293FI5ye*NaaMA6bgQwiP0=!5rmyTJP$QE+%lKw`Nf6f#g z{J;K5yzJ)3#Q?kgdtc!#RULf!3h{)0xk%KFcg}_PyDP-AcjRX6@1h3jn5F`F{tEH1 zhy|qEzfQlzbNYM1P#wQWT;m(fZb3h7tC-oA%8Xdny=yM2V$V@{o0RYdY$UXnk753) zHSNNSC9QZKqbm*E`@xSC-T{TTPvI$+VL2zAGSQj!o5~18cYpiT`oCK_v!GR4zYYIX zNNfC~xS&bK0@4wxT!4H6`kkQ1<}=*hsp!N(D=|av?oX{R2rRz#_d!rk4}fm#R*{^ z+FzU?fn*>hW>^18=+a&hDi2MBN^fX@nwTUU@mW^+c^%5*zYOhPH+6hyiYh|m?+T2k zMyEP9E?WtMkBl*jSB9LF*=}@Ra6JyE_H8w=%f;io(!!zZj>&?7Tw!_`|mL(vN6EO?!gom-wc6{iB1cZOG-~@Jm5e^Selt-t8oI18gbnJr*m5PYQU63>ZNHBx&co+;i z1I;m^c?_DeywP*tU@*88+B?@1t z^!C7`Z&kZJCL&7{V*l{8Q*m+Bt4g1quT0lUkcGAC^Nk`3tEIe5HXoqR@LJ`XNVS&E+&QN~2@r;7pV7_^!)) zyi&R%8W6KWMq+fjTtxSVRU~K{9v}J)Up9FyeMISUA867(QXcvY!xwz?E#vB4q&iFd zF}=QFj0I7NFrE&T`k1j-ECM-^RO=^DFGlK?CylW+QW-M?%6nEgrez?k!;Z0vHUZHa z@Drg`Z>m*Q1BgqF1PmdNw1nhTBfwcF!l0vn&z0#{hie{eUEy-aXLFhj(v2Z_@4f5S z1-HiXg;X{Z?Ca|3>IvQuP2-wl_Vs}2>RsNo>_%3|N4wKFE6mtP%Eq;{I}x)jJ6nt< zyP~XnxB&a^#J23?Ba!aj<%Ogb&F!$3v$$=gV^O=9k5v_Gd`QqtOxtA84{x>o-!5MHPEK;&DE4{c1II~slnvcR*-Po1PLdRBXuF#pfMWr*wd zEb;kimlNFWo+T|zCu`r6_#B74uG2S;;=3q%AF2N%NWD)dAYBB7g}yo%0w*pgbV;FQ zMu}t^ldlMh8_wg(nIplM{`9X?=l_gMTL!)VMv%qufOa8M5@7}1D>%kPbWnaz@lKo6 z1|@f!)Yj+Gp?d&jyfsClevt28#_{e92;T{lDydEC4-Fw5!F40Avz}f10?(c~*>U9g z%IawF(9V}9uKW9|J8%7TC+eR;{sHpK$iG7V1M=UHXbFkZ4>1c#(*PQEAcGk%)#Y+T6r6B$y#+LY()^NoD8mo6V}q%K3#@^rpGe+bjqCo` zOZ*!B7}w*xK~M0YZu9yuHi9p4y`(?H+w>%#uZOue%-i*Y+>2sB-@xnj@NOt2xaSox zzQx>I4)-3u2=J2)uW+x`hibD zPzE$8i{tzn%oPb1KwaxhfEJX^+Ge)7%7# zz0%wW3e&k?1|@%Q1touJUxv%(Cjh~oWc~(p5$I7xqo57o*Mp+#CLL#R*@SO`egp~# z{iLFFG!U=0Z=J6F#CI!touc%AfaC*;1{DPn^5+%(8kCxmoxS)`#XEa1o!SPnlYT4h z9F}c#@jrI)i(Pyju&Uq~#jBcs&ZSRv)%6tDYQE9M54rT|IIY%qt_cu}MB`Ike}{|z z3bd;0r(FDPF8&=C|4kPkaq;I|{3#cIlZ$`F#bfT*`1hd8e`evBa4!B-E)?_8q=hSe zwJ^GUt5C$B>~t(+iH86w=koaBhGzhZsX`9F&ShDZV%t-ar(?)cO{GM&^NgZ~g`aj7FC+ZBBSA8Y--6XO+p_r)A&6x_ Rsms+Mcyp1mg2ZzS>A(FSjCcS5 diff --git a/42sh/objs/line-editing/get_touch_toolz.d b/42sh/objs/line-editing/get_touch_toolz.d deleted file mode 100644 index c22115d5..00000000 --- a/42sh/objs/line-editing/get_touch_toolz.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/get_touch_toolz.o: src/line-editing/get_touch_toolz.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/get_touch_toolz.o b/42sh/objs/line-editing/get_touch_toolz.o deleted file mode 100644 index a05e707c2e83d9ad1c8e7a9aef39fdb0270e27a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4640 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 diff --git a/42sh/objs/line-editing/heredoc.d b/42sh/objs/line-editing/heredoc.d deleted file mode 100644 index 2e3c71b6..00000000 --- a/42sh/objs/line-editing/heredoc.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/heredoc.o: src/line-editing/heredoc.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/heredoc.o b/42sh/objs/line-editing/heredoc.o deleted file mode 100644 index 987791416e696a6911fe55e70d1f52d3371ec3e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4584 zcmb7GU2GKB6~43UJNpM-+h8CG4ohnSsH|-)Cv}?%F)G_m7A&Rw#YT$8>)Exv#O!X? zv%$1+MZKnCv!XRBs8SzV9-4?qRIQR$qEsbriDL3lr4I?>r4kRMvDE~-lBGCQs{5Tg zckK1pDfDRXo_l`och5QZXYL30Kl_i5F~!U9hgO9)!SNSC13iMKll&$0cEC2=kv@(L zOh&Cnjx!7^HEc-%%rFkex(+YNPA@=#fC!Ibxe#WojuchwG%<$^!yK~m=}f;=xbYku z3>P%*mmSGG%SFVKO!XG}4S))ZVeETh@4;^`dTo+%{Yh%(U3gG0gLLo)v*xOJA4xoC zg5S$JI`Ws{C3<`FsaL3e%j0wKiW1;q@zR;TEDdqvby4v_?X)R~2W{Sn1(m6CnKYbvcnLU9#Eu)Y*na(5)_2&QT=}L3jJ`Zp z*B;=$58CN60*%{@ZCbmCBQ#i^0cjF!@%*MU0@0oCO^NqUxdAT&kLXpzCsoVhYlICZ z#zOW%BI72sF(|22`)V2c6`9eVM6ld;lHMOCRgSPa}G1WPUO>N8XdM zSz@~<&i+|9kId=i!hHC8)rR6cJKH%E9@_|;ZpNVRgnqqJydUWZUwE(MY+>fL*vw@m ze1?w7bT$6UvAN=eQi{z@|7KxfVHz5N3bi*jtDApY27NC)w%Hydj5qc25t=txoCp3z z!oT-g?4ApMR^ZQ0zYcu89Gln8&N*GVSuV`#rO7FpP%pk4dGSVHc*__`Y?XZV$(Zd~ z9+}sR&oY_7zu+xGc9PZ0fzz78!eiH9sZiQQ(86afkpA40Z(&WY(wdb1LN&rL-5fzw zU+AR|#6+lM_zZoR?E2`Y$W<@b+35nQ!!df?Moj-z7)7pSL?P1EixZy3d`q#ZX|Vz= z@Dm9vEyHdqQ*mU<$&ogtPHC45Q#GAX>V$2YKiPH2k{AuwzoiNYHMxUy^{^)&E`Se1JP76ZQ;q$EPSNWlN*y+&rwPhBr6cIA z{$}Xu(DpUYt$UWPOwK$~_1roQ+9lk^RmfvFKW+6hoOI!e}tC6ERJL0~yC ztU(5ry+UqV8tn;sen(P7+Pbciv{g*tBM<*YC{)FN35-|ygn{XY_UaS@UFg(MaY3Y0 zn96X17f3be-?bR`5zy>e`6oy!)Qq~kumr%8c`1#`8S~viCn<13kfGv&PhH* ztIhfU_)zhvttT)LrU`N5#Uj z&#_+EN72u~tHAF{{vkL%w9#wee(*QJ@e+t$0>=@I{urG6e*jK?J>dA&cjJ%j2f=;d zol+kH2SxuX_7;og!148r9b9GwJ*N_|K2A4+~o@~=zYEcp|XKQ4KPyNTy4E!6nmmSLsjvN}2ARN_oFamU%&I z6TRCj{h5J}d#+&7ms@tlmz?_0Ws-%Q(4%kS6Yi)*Kbf!+#tB1${n6|L#`>X_h}LR%r090R0!vp9JUt diff --git a/42sh/objs/line-editing/history_parsing.d b/42sh/objs/line-editing/history_parsing.d deleted file mode 100644 index 0661272d..00000000 --- a/42sh/objs/line-editing/history_parsing.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/history_parsing.o: src/line-editing/history_parsing.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/history_parsing.o b/42sh/objs/line-editing/history_parsing.o deleted file mode 100644 index 5329e824d01291ae5861d4802d1b2f959b8ee390..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5784 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 QDS%3ktT7Z$h<}6s1K6sXX8-^I diff --git a/42sh/objs/line-editing/move_to_line.d b/42sh/objs/line-editing/move_to_line.d deleted file mode 100644 index ffd8acb6..00000000 --- a/42sh/objs/line-editing/move_to_line.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/move_to_line.o: src/line-editing/move_to_line.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/move_to_line.o b/42sh/objs/line-editing/move_to_line.o deleted file mode 100644 index 8cfa5288b262bd321be3caa66e5cb13178aa3041..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5616 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 Q)9^o&aFX_)xg*(s0P`mZ@&Et; diff --git a/42sh/objs/line-editing/quotes_gest.d b/42sh/objs/line-editing/quotes_gest.d deleted file mode 100644 index 80169471..00000000 --- a/42sh/objs/line-editing/quotes_gest.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/quotes_gest.o: src/line-editing/quotes_gest.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/quotes_gest.o b/42sh/objs/line-editing/quotes_gest.o deleted file mode 100644 index 1aba088c7d3963bb8dcb5337f13366236dcaf8a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4924 zcmbVQZ){W76~E8+d3Nj&Czvn_6jGoNTJi^!b^%NlG(4FEYa0b>DymoGKe55FGykDb zEfd0oI&m3c6Vf(qq952)O?*Jxw{9wQt$=Ei#wI?n50k1XP)t)Pn$#_A>9XH>?>>^e zK#6*l`_4Uo?(dv?-nsW(=dYiC@;|2#ie2D=?m)jncr>A-J%Ju%{t@jr9z*e=v@v;L z3hwoCo~9MzM+=ex(X>5*@SbVj96iGUpfMf~%MC(!S>O=InV3z}qWMBDmFbfLE1rq7 zNb22gbEZLUvsuIwiytiZX#mwVnzrM`?YqD8z^Y5e^@)_Mu;4*F3(~|(XQL0rd)AUu zkIdr(hmXLE96XqdAL0DXj?cvVxdfOmUMiEw@)RrH`!c>4xhT*snDH$XLN!DWU2iUu z>5J#*;w|H1n9;tdoxvExhvM}|qI!td_)I(*o_IW7WMCj2*D{fQ4sXtSm&^FVGOYWL zjnBZ#9z3MKU~7B@iMK}L?O7lP)5Nmg8SxE7qE@`0S@4d|6R&V=;GygNqr|%)oFyT%0Td2n6gB_-Zl5>K)Mh(iPh;GCu zYjRe6oEQBp^cV*RE0>@LVb7sm2j%0Dx7qj5XEwIwF8AF`)nmtdgTuFj!-Eso0^@9Z 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 Hf3yD!15oQh diff --git a/42sh/objs/line-editing/surch_in_history.d b/42sh/objs/line-editing/surch_in_history.d deleted file mode 100644 index 80ec0a32..00000000 --- a/42sh/objs/line-editing/surch_in_history.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/surch_in_history.o: src/line-editing/surch_in_history.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/surch_in_history.o b/42sh/objs/line-editing/surch_in_history.o deleted file mode 100644 index d360a3f3cee5be5858605794986d2086abbf1fca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5156 zcmb7IZA@F&89vwMTsuI_M?#epl32?ZL^GxdO-TYRXra3EVCvG4Lel8Q*caQCvAyf- z5UQeOa#z)}m|AUX_hTQ?q)pW}t@*J`YnpB8QkC@2zEo|jzo^7Cn6fs?pG8en_Ppnw z3+6)B^oVoc^L{<=`<`>|xd;F00=A@0o z1Cvp&mwvi#8Rsm?fav=1{^8>*yfeD)u}6eQxmW<$MxrWqo`}ZafFa z3GtfW@wBN7vnM4 zaTV>u4Hb+%To*4oI%*ncY5rE{=irS=nES;`WyZ4P;>NRNeg^||V$=tg2z9R9i$+XVi zCmvp60qM?fgkE+ur`|&wZNB2^syCJ$N1c{l$V{X%aa|ucT4Br1OT05ucm{a%3Vt8^ zk0_c8&q(THCRW#0y3d0-iT9GNW>+PiWEqw_>5PdkzrU%BKy=relP|$8nZ*+U+xu6@ zPwvT8`O&kK!($sCO zRJf^?h8DEq)NNMxJR&l!3~{+|bAf;t4+u&BO|94keGuI5sZ6a5QJIzAD*aK|34R6& zxX|Mw6Jpyo*4wIi`w`=+vf?n^(~W{{=i=MJ)7Qr8c05n6%$;9p=!RAroYTsK2zjVn zxPcM41{oOAl7jdU`L*I(idOR5*>yPvs8Z2HjJh4zQ4+s*x&E2{S&FO8^h=MzZLRny z%B2ICrbCEDT|maft#tYJ>)c@Why;aa; zppoGKDQ0)42qy#3{C2Du*f9nF(9&*>M*Y-g#I^3c3cE)K%0I5q#Zx^EmJ|KijvtlMZ(W-Qru2J-#myYoW5_izyOk@0&PFB_x{)<<82;K0C%!60F#vYB94 zdq;amur-#(XDrm!0j9lkfBQpiEN{lbX`BTiBc8Hw?Fi=!2(G6xdNP%_vgTxajD?5t zfC(oivd_e$;m-Z}q#nyn>igN4rN`39R?nF@^ep0S_b3iN(}r8)QGx}`1B0}!~} z&jokT=92U#D|JUGi01+x)b7{>D3cf|Efpv&!xH5Kp^;qr--0`B>&^(w7K(rx=!xc} zs+{;1IAv!A=1vDwWVVz1syr_zKOno^lr^}xh_HtufEyMO_KK`|7&7&zFjf^#65r!^ zybj*G-S-s?e~qE%Y4sftpPv(+`XR;~XM*-*p9Wrh8R+Zae85SjF#GeqghuoG&fUIC ze`{)e^Jm}tYcCE(Mz`WPx|nFtc64fD%0Qi4kSG`YbyA`^F)0Q$cT9@+S#0P~p-x{w zYE%d1?uE1p-$KHpMmnm4^q1!LeDvGr9=_9Y{>7Sa-}-ZNEco5$sFn%zZ=(MI{USO| z9py(LAR3qFQ z;kD|Ic#Rr~@J;G3c_Yb&Iadq38p8(l3hz{J@y9TXa8JAXcdm?Z_Aef+_9yrbSnTWO z9o;+};el>)tc`G0?cpA1T7cUOx5w1YNUgtH{|1EM~5q5~V5qWrFWxf@;w?PZTdSq6Mp%QD0V?;9uGh0 zEGWK9p(~(-`wLKk3yPB}^a3dPPk?R!pO*ZSpx88_0Z@u}02Fui5FOjNB!}Jw4S-IA zQXVgY63*8_@$m~KK*^uJZp62O;{6K!1r$&!`4bgy1!zI?k4PGpbdRLlCGC|oC@F}* zp;M0Vo&v4Iz-cPR#9xpCIva#u+Pnw8!km5V;@@!bmWzMQ#V1|-M=pNA#kU}MWqdlR zD|wpVO8&5mZ*%eUE?&+vq;?~$N<3m#@jBhPEHhzP&Ml4!k?U$Fgr+f`J!|Nx@mv9S zFgVJ4TZKg4?nt@nx<`UkK8IhcY)^_eY9tc4!%d_tToMarUO)ocGR*NLcuhR%nA>~cp=AdIkciU3p0tdVP!MImsCdDjzCF_VQ3l#qY~n_g{Zjl NHcBCoP9}yq{2y*YdHw(Z diff --git a/42sh/objs/line-editing/tool_line.d b/42sh/objs/line-editing/tool_line.d deleted file mode 100644 index fe07586b..00000000 --- a/42sh/objs/line-editing/tool_line.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/tool_line.o: src/line-editing/tool_line.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/tool_line.o b/42sh/objs/line-editing/tool_line.o deleted file mode 100644 index 427d0cd32e5cad4bcbf3e14cf03e0f065e02a519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4808 zcmcIneQaCR6~E8UeRkr;PLq-p${NGcZUkz(r5zQsSUQ^N)oLWf+6*D8hvPguX0C1d zqfMbmS>3X@K_b=o5MmwKw2f*i&`Cp@G}u~obRU|u{e_scNu4w#s)i-%G%W*Z+3(zU zo?|-(x=y>&^||NVbAI=C&;5AUzyI)qe|v<`+yXzSZK!#PpCBsA&8SOc{FrjuXLrm} z42q)zQ&0_%5ydo1)?~?U+xouYhxV=LPOFcIpb#Dn8(C{hC{tv2ifN8pW95`tEESZ= zG?oK7jnKv70UV72?^HRa}i1(d{7T_dKt&qeHgD zI~Y$Wip~5SJfTHt1We`dS^#yiMK zW0geHeCzn-C@ zzKPsH%(G;cvxn2!anszpd&O0VE_dq(xiC8Jti+j74S41IH^7vp z2&S`&Uu8b%3SS0wuJ4TWISYqF6|TGq?t}SmWtZI-3fYa=DC2mQX^3 z_ZJZ#P94rYHXaXe-&UM36Zs?NHjyluDXV0TS*cVy>u6bApX!N$-h8i5cynD6w{AeW{Iwo`9e@Z!d(6i@o(j8VwS5+QxW6+(iOqk1f=%^Tw*(bI)?8Hadou z7SJ@e>(t~=Rr?75LCarI+BXT-HHRN6_o+b;F`9>__0`4oHN^GVaYO9CP>Y+Qxc<7h z{)V`IifeP7%KVM|ZYxooYmuYpn7=mqJoOINp$s;l3_e|ta+gApPPCH@ZS)6(vO}Zp zmHF>zK-$rObdN&Pe}XvK=9xmA{wCVG<{>xl3;1~(x_hJdduaX+P1hs(pCCM5TrpqW zWx%RFICS-6byXpoChS)YPW&=WvJI8mrR7Vb)q&}E_x<+ElP`L|@#Dc0$GnfAFN1m% z^=Z^^qpH<_Orlazs|p!Xnh*$V;B2&}8Z(aMthD7kWqvNn2Mm>po8uc71 zrI~nA_In{wDCK0LRTv5zw0U2{hj>WR(`wTcZU6(tr5`OzAQD+q0v%2QVg5?zOVlz0n0Xr zCTN%PX8{UrS3v~q;tpui*YS7RuE%6oOx`>z*T-Z}RQ4Z}u6LwI|BZB`$EBZ^o`R&;m)5EIvlp;g@tBLd$Z!0H`A7tj?Lb_xr^u&af__}G~ NKWHwgo^_xg{sTE)e|P`@ diff --git a/42sh/objs/line-editing/tool_line_2.d b/42sh/objs/line-editing/tool_line_2.d deleted file mode 100644 index c09973c9..00000000 --- a/42sh/objs/line-editing/tool_line_2.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/tool_line_2.o: src/line-editing/tool_line_2.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/tool_line_2.o b/42sh/objs/line-editing/tool_line_2.o deleted file mode 100644 index 606522327e43ea9aed8a97c3a8f1a8bd4dbf21b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5984 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 OH6!??aVg|eQTBf>_5Vcx diff --git a/42sh/objs/line-editing/toolz.d b/42sh/objs/line-editing/toolz.d deleted file mode 100644 index bb228103..00000000 --- a/42sh/objs/line-editing/toolz.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/line-editing/toolz.o: src/line-editing/toolz.c includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/line-editing/toolz.o b/42sh/objs/line-editing/toolz.o deleted file mode 100644 index d26c6ab5a8b303751fd2994c551847485d922f6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4684 zcmb7IeM}t36`$F=**iXb2mVr`H0>!RCRW2oTw6lsl0wZz>oYWIVyNAgtdHe@i{QAz zogt}FDQ8!lF;Sw%RU@@()cldOaU!+q2ca!BPGnG}DpsUQjZ{@sN(CoTiB?yYrf%r( z&CU|o!;Ldy_RahH&6_uG=0?2z{@*_EF~&U%A9OGJRe?_k9qmqZgZNvtS4(ZhlCp7l zU^40z%Fi^@@zJzmKuq&w5;y1ItqXDNT%<8$yvJ|q)u6?)ZMD@TwHv^D1eZt1YURE%BvdmK*PnF1(rB#7jSw+Ht)%6<&`D=ufwaheIqO z-SKtFL&})5-p}vavQm5K+FxsM0P9SfndC?!*=?GwEn7V%72bR( z;KPjEf>as{k#(8@(^ho8xoy7O*xEv5RVuB>D&|@n4|B{z6@+=DBsjO1XWuUgUf5S8 z3~(Hf9~kq? z%#I#eGqPhVh^iSDc^hx7F;WOlQ!OCOHA>ROy>OGmmC3z)DzgThTxKnQgA$??*S(w} zIl$Z80C)anJZftnxH>s+Snb$@%zALnyFa_mCfk;S=f^Q^v93|-x_8t)Bz4A)y0FyU z51lc6WENzGN;-E)!n=J62%9ODeIl`s~Eg&`vBi z2<2bMzk_+?ZhV;0bLUty{WyeLTRYl9XX8V|iNR#3p|-xZK6Ibek6*N!hI%lyhY!_0 zaF7iTS#|xm7HZ<%i8Njyb?L#u{-7+%2o}qZ$Ovk$DwE;FUY>xCL((z$jh`6mGfg;(RNvR=536@BvnZ=SU!Q#oY zj68=KujKaz_6Sd)Lcc3e$# zs$U4EDFK=5hqtjlx6AQ8r ze^Cv12mO5VAm>7R?i(-5G1-F~{gLFpgDG_Fx%8{VRT9U%XYir6XcNXe`Z3~nNtDso z_iMM%JJmUH3;mKpY_Vw(zLOjN z^ka;VR`7~)pZ{4{(IP*AKJzci`o@NepRwjZ#kaI$yVNsM+O@!LP1&h+>}W^z)39#i zsrBq=_dM*LRd#A!JKFskcI(Pct*^-L2Uv^7>R`$Fe*(Mk<&*<-?!M0%b1rnUU?o&K zvU!4BcuW2JL`g=J>0zOTg-7>)`Lxic1-~qqzYXf&*xINljgo<1e_fR7QBe{Vewasf zY3=V6J_w=L^{n7o!QO@I1#;E&3FuxF0ex2N4~si{L}*s{!osWf3eT^EcIgShGnlIh z4lANMBMu^x17T4W78OyUpVCk0rw~>jW<4d!F=bfn0_WAQh_VSG^aq7!x)aI?y%lps z1=A(eoG5t>bG|1k7sdWrad%jR7R9}@;{LFxTNH<9Vf&z{(EUAPcT|Y9&?fXh2=DKN z_Kc|hiYtZ*8G|3QdN6BwT0en7v^Wf*ArRz4k7_zLgv}w-c=p$fgQBi#dO-2FFO7X5 z`7f{wxW8&%Q1l3>AACFQB3#-O{V(Li|5MR8<( z(U77ba=x&lbe4h$;0!1=3?=WJ;ZDVqjvD!q{Sq0X(U~LOIn$4TS1MAodKcgB;tdzi v%;Gl&iMGB%h<6?x&e$4ANmt0_3&b25!XpJDyk3|&5bLLZZjiD4u3`TJJ{dB& diff --git a/42sh/objs/line-editing/toolz2.d b/42sh/objs/line-editing/toolz2.d deleted file mode 100644 index 2b7b1449..00000000 --- a/42sh/objs/line-editing/toolz2.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/toolz2.o: src/line-editing/toolz2.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/toolz2.o b/42sh/objs/line-editing/toolz2.o deleted file mode 100644 index 9c61b6402b0f1c36ed414a8444f47afb9a04a4a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3776 zcmb7HZD>NN%i( zLZK>VU0Dkb^w(e$_NSshgo$jdTL&E|6Sl$Fzy8>u!W_bicCOex@44@-XuTT3N1|b6XXp{CK=}(+a@N;i$8h3@MdC$TThpUL=+3iW!MWH_@B7->b}TkZBD*m7j%|Y(1hra3Q~1I=ql_ zONjs%jZIPo`_1E*ibM-eT zn(W3tO(UD=i6`0&qoF>pHll{{dfB`T-Urti?>ggM zU_3Sj%uahudiM7lPbkE~{ibv)`zM~Xx6~Tk0zW>JbNEqR)LrPY3PZt_Xg?#Lj#`^n zh{Mp}A@-u>3+h^c}jM#zNDywf@j_xbHiE^Qdoatzi5> zctC!ESQtx$F%v@(9>`9FbD@ba*0dZz5BE(8-x=D;o#p7Z+zYn;6EE4CNz4^1?W?h7?FifB^Q(H#+JXgJUqI2uc5;>kpyCRi1$3T%pY z;bN<(se%#QS{>Z7S!B}D$}XIaidb9R#6whRCX-z!s)JEcxj%!+l^s3FBW;n&t<{-M zBbqvHREu`gNVKMnu2_PGsjO+n(%sQWDnn)_ej1Y}f;@gzg|Odg$L#w+zXB5NfI+=aTaD>jkz?rCC(0&M$QE=YH!OwhBN%DVYAW+H zHQt0w-7%CJCTkU2oma_PO_nGgK}YhVrGRoABkcuiP3JhfZIar7vlQN_t;1|u=%k{w zkth+tYbr_>mNki*wwbNYFUfk5CJNU8I$7izBIPQnfY0?g#ySS!ck05FL%(-w_yS7E zrwQxQ!Lgm8%96gCt-Ex->6J$-E`3n9GrsCgx;t9XQfR$sYCq6a5fZfl=x>!JgsK|G z&1|chV_eC$&4<<}Dda;O{!b2lW@^t67=*^OFDGudBHVt2M?$fx-gBO4;Nz42(xcZJ zU=ug`>x{}re5kbL&=4vgxu}-xqUw^1O3tqTB3cX*_QIHD3!g>;nj)2L zd5VSdx{!B)^O)~~dFPQg$a&0rUfylwI7AhCP5Z}NhF+uEplO8{rVz6?rYc{Fbz30Y z>C>d{{!6;`?b0_a(XY@i%hk}HVHq%`bGv?8YFR06N|)PJEp`2dT&}+*%k(|cb5O3^ zBQbF59n$rSbYQ6IeNucS-R{dU4@#lmmqqSRrJj`~ebNJ1$9AmMDT|R?qz_5QfOI$0 zOosy-5Vt@Hb*&hK2FK->pqK^F9V&=3U!HCK&zPSt40`SGq8S}Alb$SPXH8+4cmp%GIr|tICi3W=qdfb;RL(@U KTR9)UmHz@%pe8B+ diff --git a/42sh/objs/line-editing/toolz_parseur.d b/42sh/objs/line-editing/toolz_parseur.d deleted file mode 100644 index 11a90259..00000000 --- a/42sh/objs/line-editing/toolz_parseur.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/toolz_parseur.o: src/line-editing/toolz_parseur.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/toolz_parseur.o b/42sh/objs/line-editing/toolz_parseur.o deleted file mode 100644 index 02074ee62c605f7a1024ffe5d7ff4d58fb50b6c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6952 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 N^&^e2tY2x2{SV2Qievx) diff --git a/42sh/objs/line-editing/toolz_termcaps.d b/42sh/objs/line-editing/toolz_termcaps.d deleted file mode 100644 index 443bda74..00000000 --- a/42sh/objs/line-editing/toolz_termcaps.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/line-editing/toolz_termcaps.o: src/line-editing/toolz_termcaps.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/line-editing/toolz_termcaps.o b/42sh/objs/line-editing/toolz_termcaps.o deleted file mode 100644 index 8243f0f8d1e9a0795f67f8f91753b370f107cca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3688 zcmb7GYiv|S6rOvxbGO~LyDchl)7_i*t&B+)1|R4Z&=VX!F6ht}L!UR@^hIqJaM=fLM8wiJxm`zoKp}urPP3cLYQq|2n+P1xF4l@(y z8fg}hpR)#x$pt+4XW+%+0iiC%>nXBk?B+c2{C$1N&>oDx*gq4mpPZO4UQ`RmaY`xP zcjTXk^4C>q00$v|#1=(h#+&qOkx;4}@0Lh9IR|8@>H$yOoOlENfN-(YKNFAKn+Kjh zk%)y<%|C$dmBo9T{48B?Wh9o_NB)gg;P<_ihQ^GTWo_ zXZWY@OUxPX7le0-VA|%12bWGjminjDeKq5)sD6}xf%pK#sjF#iZ&VAaYRBfn87By@ zmy~M(54Y$e^Zu6Iw@|+tPQvaQ6I8Xh9!wM72;mJA9*GP@^Xdqdd7fiYO(2%WJFFNp zTj&5b))?}6@Q+kQ=Na=-hbGlVqH(Yh`em?3*Bb1MVfn(ey#~FoVcgh@01FKs!gu+y zfB3Qor+wM<)Vk5(i@wakDK^|W=@?oBvwS)4lrPsg?fAAq%G|ZJI*xzeI-H(7>Ye;l zavVXw#_LV9%;=0S>zx|^a%N@*=VdQuul8Ij#P?nCj-e|B>)d$QIya7bZ_KWDml@*~?*yh_gy|T10@>mi9Y=7dgpwjU z&4kxE-&#xOM7DFnmxFZW(o;ff@lIsD6Pbe(%s|VbJZ4Pj9LsvIXRp4WOJD!zezq$= z4tvSI23KdY-uyW5Ea%PpGM8OFm)fxSxH>wzJ6(H1$y7A1xi+|)-OaAGff!WGrVY&? zxLek{*FDKn$$$rsT~jC+)uUR(qsQa1{qWu;2Lk>?${k>yt`vZHB75VzgMLrT`c%If zNbFPBv#_p4Lb{6gDS^)f$*Ji6(5yo1Q)B*=u8NZ#)pUkWUZCHfWQll+2~!=PFMks5 zrAl%vu0>pFEftMup`Z(A#X=gB>ZMioh1_DVQNPc6 z7QO@tw{RwtYRf`+d|Qe{zLHt&o2skf@GB062398!0|L_c6ar&DStV{Rt6@(gfwt8k z;%h$9v)81T2Bq!@aFRp1kHjJ$8~i}X9Kb+Id@Q7TgqC~ZgY8#?FsXYlaFVlRuCr*a z6X#aQ$NGOk+eQN^PY9-4Qui>9t|&oTQG~RDkYWO96*|oL3H($jHdut80$!1;vCXyS|FOa1BMPHHGh#vCEugJ{GKn!@ z!(rTUjPq=M_2h*E&)#c3G+h1OpFb}NxQ-vdSkTv_&_9HZsltwaViui1p^ZXE6=riK zP-vKTRN*F&3R8|M+$EZLid48eWc9Extp(|anXDH-2B^W&x0k4HP+YXA5nqh63y#C!aQXZB5YsyL^ z02*WNemoXbzd*qA!K!9!gT*27D%)SYR@uoLMtEI2UwoL$*SJObfy>`;+b&+Ev~$_b znX;8DwhO%K+#I$)p5yXY+}88J_-`=2o#r-xtq=3scJ4gPm5l%!K?Ikgqx2X^j{|&F zI|n-(NDGvcym2EM+pclBQkNCT&<+Tug0ZHJm?faA;R9hbT`&@-oF$6?voNH*N%VQ5 z9-^y>E+^Vb)I}7Cm`_(+f%?lF0BAO3QSK$h%OvMX#$#V#&RR-jrk1@!re^k~g7-%E Y!)|GjSV)g+Vv6zhz_TZ$qIZk^3p9>w4FCWD diff --git a/42sh/objs/main/data_exit.d b/42sh/objs/main/data_exit.d deleted file mode 100644 index 3514ca62..00000000 --- a/42sh/objs/main/data_exit.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/main/data_exit.o: src/main/data_exit.c includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/data_exit.o b/42sh/objs/main/data_exit.o deleted file mode 100644 index f3db03c9cab118fd4c39d751e7c4a50127435787..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5448 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 Am;e9( diff --git a/42sh/objs/main/data_init.d b/42sh/objs/main/data_init.d deleted file mode 100644 index 5c7edda2..00000000 --- a/42sh/objs/main/data_init.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/main/data_init.o: src/main/data_init.c includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/data_init.o b/42sh/objs/main/data_init.o deleted file mode 100644 index 53dece1942e02e9c3820589f7de913f4f05641c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6132 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 diff --git a/42sh/objs/main/data_singleton.d b/42sh/objs/main/data_singleton.d deleted file mode 100644 index f5fa418f..00000000 --- a/42sh/objs/main/data_singleton.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/main/data_singleton.o: src/main/data_singleton.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/main/data_singleton.o b/42sh/objs/main/data_singleton.o deleted file mode 100644 index fd416492769513a233311aa4221f227ac51d5296..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5644 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 diff --git a/42sh/objs/main/ft_cleanup.d b/42sh/objs/main/ft_cleanup.d deleted file mode 100644 index e3878be1..00000000 --- a/42sh/objs/main/ft_cleanup.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/main/ft_cleanup.o: src/main/ft_cleanup.c includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/ft_cleanup.o b/42sh/objs/main/ft_cleanup.o deleted file mode 100644 index ddf90f93c1118e7a60dca71ea3addaf163b676e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3584 zcmb7HU2GIp6uvXt+1>88+tMuvYRnj@D6zY=fK;JKX=?^k5=09A;V_+@?hb5c*WFp5 zlt!_l-84-wLF1G0!6+tbYV-jTi3ANlYQl>~O%w?U3HbA7A_7vsGkd4q9g4tB&OP@# z_ndFeJ@;qZ)0h9e7GO;9F?5hB$WaNM3_+U*Q3&6l?eUi;&T=0YgOice^Eg$tja@be zP^!AI`>Bo7*d3kY1LC7xo~vQ3j%-!zB~orvRXuO#Oe@I^UOt!SEk1vY=jq0a?qDiD zVe}P}Do7oRs&;Me*znkt*KR5f+QpJ$&(Pv3TLq=6miW>c-SP7B=@s6Lbp|WRfGRv( zKCQ1WXY8Q*Rp#gNy~b&7mCv;LGZfYu?H2iPi5*IBemcMZ z?s_}J(+lMz&wBOD0M==%1#72iB~-Pit2|@%ptl#((w8$Ih86P4nz3FbH<{Cn7n-5*xO`~cfw=OL%6RXDGPdrdviH;|C01N_vUs9++~W(^@|;(6U#iz}$$Co5$&2LP^|EHmO<89$ z#PT^kKA@Rayx&$`SDoEH?V8RC+75be*O6qE^lTmxh=LhwphMjPvennZd(ix zTiP0HdEf>q#C!7yj3;+ywk5Rq($;)R)w6?YE1OP~*+y=_>C8-?>8jbE){@NDNvSqV zXRM@Lu<~ZoG7_?B*>K4?F1qUY0HcnC$umE$b!eLyEpde6a^}U#04jiJXaCjBnnh1TD&I`P#uVHl1 zsI4g}r$5KXB~Jj?AZ&UTNN5xUpYQdF7yAj!d78Ydwxd(TuprS7$F~r%MiA#S=}i~b z0tThGT^IqZm)>(>9pGH)W58b_Vm+WNoyJh2jAsG1NoQTy0Jxg@e*_+ahyfw+3UnYC z{2i+L8oEa2{~PL4h!_+ChoFN(=s2l>6G*{gHOQ4GI~1ygE7%05l`!2Slv+6!p+Y&U zhmMgEtvr^nH+B;3c6{h-B#lIdMz4+li;qe8gCfj`j~dO9rX0!Vo%g@_=S=90J);MM zKb<<%*mdfK6Yn0`v+PP1b0ZMigbyH}L#U`!4vM7`@gF0q6q%@kb0BE6rDUQF#(|Lc)mW z2XUIGACj0(zVw>lA&I3*H>rB+miQV4Nel&#h%HgcFD{8ncluwJ{3|7&KPlCHB>B%v z^Zol>gAg1M!^q$a62KNVABV1Dto;+{An-nD{Q2Cx6B_rsc^fo7-u^r^zBqdWG}hHj zt0CM8O@0rRaQh-|zXzK98lZ_k%2eIM84Pj)CrZ{~U-bR8z#mcpP6vV;dO z@!%&sxZ8v8@L;-1<@_`*$4s^LykToL{ujY8=?<}5Sn@4n3~=_{JDbvTr_>V is;9QA{hFC}W)oTbhh+Cx&L#_5F2U5^^-NvU$^HXeaTfCc diff --git a/42sh/objs/main/ft_putast.d b/42sh/objs/main/ft_putast.d deleted file mode 100644 index 59069e77..00000000 --- a/42sh/objs/main/ft_putast.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/main/ft_putast.o: src/main/ft_putast.c includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/ft_putast.o b/42sh/objs/main/ft_putast.o deleted file mode 100644 index 1a063903d3067ac446bf18a4b554acabd08e7d08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmbtWYiv|S6rOvxce~v!+byM~yyS*r1tM)h42>XA9=g1QR9->M&31Qb7nZy0?v`f} z2q07x2_}saOu+A(oqM}oiZpSOGv_(q zoVjym=6-$i+O1L{G>eBS2y5cWKG8yyLQpadcn`Qb>)ntXzC+PAOoP zwPL}V6@9uRy~-reh{s%(R0uJIh7z%x%xRVt&E_%*yImQI@f@5dlz%IeDQJ3uOwqDp z@wU!(3!u_tS@T!7v_9rW{i^aBtN58BJOuWGbnud?=zw?zKX^gA>MKz4;(&OOwzf=s zGxP1ApM&>`f*CAc!d{=^kYc>oRDKuKdUvROK85|@zMu`5UnXL=$Fq0hbrjW5IFJV^ z=m*5x6p6|di}Q2vRC?mxc#(8E8Mo}nCZ>1CdJ`(YnJS@$_slPkmulM}H@G;z;|g!Q z!rMPcJeglQ5-r9%SA_T8An|hB(gUvdn!@`*eZUKY#KR$$kj43(Rp-H3?>q9)7VPdF z^%6~O!a8$Sr@bX%$1H2f{KDw#3eQx=i@;+^UPAq;l#A*m-eIlJV0ZHaitmGvI$v`X z-gSkiRDtDpI5N3=eiODtEMD(&g*RFy(-h2){_!sP@w>>oFyNPgOuiO$MaB1mmqX_^ zEC&@fPNAkLG!IH%8ScIs?%sJldxu5rJ~u$xiLdnq?8ek?K&gXpnF%ogOo98w4fun0 zB7Euu>}}Rv?Fau&wYAhNE+ zy8#Z#k}130lwHEkiC82T$q$iICx=KW6OSb_@Z@<`aa(XuG?~iA#gql>2OTpVL;{%555NM`w%le9|h{$Q2i35L9*f|c4(4aL;}<4|pm-xGW! zFeC6l`NFE%IDZ~P=*qOP3NPKXeyUL+X!VX4p5UxN02^D1V=H_$Fz0cED67&u!9akZ zLimRua$yyfW}N%L@B*JW$22e;0FZe6A0$I-$urqIKQiuZ=NPnAYZ0JTXdB2p`jK=( z>i9VjCHj$$G_}et=!KC&=Z&$`N{udX-vM-;AbnWbF0fktVShLHNt&kXb;AD^q)(_d z>vcZi`v~G;s_s5_9wN{2L{{wXpmGQ6C=o z9n7bjGEh!4jv#-+Dk1AQsj(07zL(J5>1 zfoL9(CcNMVE`HueSTKloV&gH8KkJmsl#Q|Z!_}kx}z#*U|639NV<}U|{4!_L$>WdZ%2w<$v}f#&T!=0+r!| z@X>4p%>}Ilb%1t&4ug(?PJvh}+!!#yovHyxW0lavGE*k*8%^8{oK7}YHcc#b6~*~! zT82)USiLl{%$13?O%uy~JP3`&O%v;VI0%g=i6$N^6~&69iAAWQSe7)gEL0Rv5KSjR zYDS(uns^{p_UDy}r$U+jYxhgBv)mz!>TBwjAacLvl!UguRcKp7TBy9#_cEfG;Aqgr zzX^5wwsXsfmSE^Pecq6K0poxmRu_v9scHWNhoI-9&J}3R!-AVTn(U16x6^$+@Wdb_ z9m(LCY3N|_wI@?;c?mVaVwBBOp&4cVgGQ-$k>T|&HY&+;hR1u(2plnLpamB7)B5`c zuk}ayUs|uBE!MsG63@$TBdWJ6zE1I3ikph-ieJH!vGVFOiXT^epW;!)=PJ%UV*GS) cKzJJ!uUGs&#lfV1wc>~s73`d5x%(pi1=%uHqyPW_ diff --git a/42sh/objs/main/ft_putast2.d b/42sh/objs/main/ft_putast2.d deleted file mode 100644 index 093f5803..00000000 --- a/42sh/objs/main/ft_putast2.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/main/ft_putast2.o: src/main/ft_putast2.c includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/ft_putast2.o b/42sh/objs/main/ft_putast2.o deleted file mode 100644 index 003c5f0a1e8c12ef44952d17dcb5c23285125635..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4580 zcma)Ae{38_6`tMm?(O+(-#LyQw{_Y}oum!w*^Zkk#&w*yjnT!8ag@YK+z2h_yR&`i zdGEM8Ck}OxiR+fg6j4NkkbnfCrvE??QuzZAO;L*?ghZ)Cg9LwI2?D7^tDsg*RjP*X z+nqh{Z5@)4-@YI7-ZyV%-pua#jgQ{>Bq)Ru5O{!UK(A_e#6W0wffCej(LP)2bSz6B zR|lpbMP;06mNTPKG>+Bd&^<93L-cj&uF0^K14`I(Vw4-C({$R$4eFpxr}Kgr<#wk_pt5&ZIpOTby8SizWI9cD#0si~oyu{n(bc=b3Csl#%o^oaK%K6P&HllyN%Mx!)uHUP2z8i0m zAJ@gc3&YMqV)Ct^hv3hx_&WFzaF*RZkhgINlJ5w4U2Z9lCeB<u+7M6D=7Csb_XAZka3|*RaB5jz3o>=4= zF1ggAk;P*xTC9@th>PIN42#SRcT`#JESwRdwj1Sz**YX3{Tr+N-~RE+NNQ!I8!&q2 zgDcw2O{w@?srDIO@i8hsKd<&--N-rCL>6T}XRCdnVbk14WjcwaS!X`}wU#Ic5aG$V z0$@WW7G95j;k5&U!+XTOJ^Kd5<0Hev1E1gB8x#GTdqp28_FyWPFJ;nOL_Z9@qMr5}l(Z1a?lI$RA55JGXV0rp#2~q}eT2yo8lcXR?;fMA<|j4Wd+$cvYdp zX1TmI8M7Z*t1QyVa?%O0r5T3UQZbXx7SZGIlH`_PkUe2>B413y!DcfKOHCzVmA-zUzE4B5I^3=MaiJ%7Y5(Ar! z%V1G;bLb859(p`T|F>Lii`rfj`YW`Z?E4IJt9=uyRude8Wf`KnF8nVrLyg&v_AvJo zj=;Q?G;d<72}4QTl_SM#({wZ1(#4rc5`&ymj5%dSkL{nHx0bQwpPc|L7r+ax#(v>p!qQIc8puHqWquWtv+<3=TqxIrUmO0x+{H(=-#_=8@6TNr{nCZ^ zf0AGSfe6;b}-Kp5wxwBVZzprclYvH>ew${J+kN3B}^GWSj{)pJWgIFCQ zEJz!u6Z9Bp6f^~5)qDf=L(t2h%OGwHnBY#efTOWuXky7p6ZefKZUzn|8>^hA97uXC zOA~8Inpny7x(Jdc);Uctf%qaoW1-W;LSF|$dly6#t4VsX`eF|P4|uw0}at<)yM0d5_UFB6;HrZQU2Rdk0&>P(^A~m3a;){ZYIso;FVVgUNG<} zB#U^-bWE}SCUg05M?zW1D-OjPQM6F)ueG2)r0Mz-S|j<87SN3iTKJsS0y$h>MZI5Z zxvFiT=a7C?Q^&OMm>t{Fr-e^zQT?LR*$3b;Z4LZ33~3uDw9X+dIHVc+l-2~BF{Ei2 z$aqp~Jf}SXLrow0#`M#+SqqG5#!;`MR)0=wgvw*fYa|s&PK=in-|~4@l)XR!$#YFha4W?EA>vPZ<6|Ua6s#{ zlW&&%Udh31JHN}>Pn-w@w{<}9sA7jtkNNa9KAo}NcwwSG`GHWtKQ_uHz9(qF7ZFSz V%^LS={Pgg2W~_A1qw-ry{0{?6kCgxb diff --git a/42sh/objs/main/lib_expansion.d b/42sh/objs/main/lib_expansion.d deleted file mode 100644 index 19e6d001..00000000 --- a/42sh/objs/main/lib_expansion.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/main/lib_expansion.o: src/main/lib_expansion.c includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/lib_expansion.o b/42sh/objs/main/lib_expansion.o deleted file mode 100644 index a4018877ae615b3997516dc1af5d29e0136d8fff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2608 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 T2~K*_ZB84uo|qtSFvtG@1q@OX diff --git a/42sh/objs/main/shell_exit.d b/42sh/objs/main/shell_exit.d deleted file mode 100644 index ea1130bb..00000000 --- a/42sh/objs/main/shell_exit.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/main/shell_exit.o: src/main/shell_exit.c includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/shell_exit.o b/42sh/objs/main/shell_exit.o deleted file mode 100644 index bfddb613ad3350ca73fed1cf141c945730687dff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2628 zcmbW3TW=dh6vt=n*ts}y9H0^vP#MucBe0#M0a9*F+N82dkf8JeLe*rwyN)+(b}jEF zO|UFgii9vyMLz;BJi{yEfr!gPU+7ohfk+_HN2H2d_@CLciM>gbh$GFOIWy<{=FC-l z|IY{i_6ngT1wJS}C|fCf@+gp#C}pw_k*6sT@-zEHHkg7+jyfSy2G)8I)(eaW>d>(635GQP9X_Xg*8nR%yZGa+->584;Vf%9$X?vmy2=Y0~JZ;g2&>TuqQZm1OF`9-`4do)k4 z*Bwi``U<7DZ@z5?y~YXIN9GsuyvnlL;COyNGVe6=zBndNAlF_d2XBm zkDeM6=Z}{n#cedl_sXe<0{2_Pq z`=;%#wVE52(;A(e@bk@z=d_v?XSFq2IBPa7&uIBI%W6I3)kPuuUQS>_T2n*alAO5KVvv}SqjtRFp5)?#fh;)2&HR20!vG`yk%1_ zO-=eWY1B95q}UrrXd~Ka_R&-_n@c~D9nl`a;wFlMDl-Gg>?@g9GtUj4AH-kjY}Q<|Bba$_?7}4^Y#FH3XO6oh=h1DugEq?Qm;fx?p5z02KvYBnL=m zEZOnc9mxOjd5mBXIu9C-S5l<#xM##syk7W{j|vVyJY||qmqbHoA6*gJdQQs?_V(R{ z*J*e?iL&?)fp&JHB@?sR+{cNFL(y5k37>>obxr##J0vs+nozXp1c{EV#Su~|^zZIP za#%|x2DbaQH&ai&pDLyArlzW?#O0Kh{wC269AGz4Fka!j8cP(Wq4E1sI17#b!t>Br zq5|a$?g_fbJ+SGnlKnC?{L&@X&$2$n8cOw_V@+cY(}!gUy2BJaZqzN_iS<7dvoFSM zdRIDmLUx>eY3hNluA-2E;ahng9R* diff --git a/42sh/objs/main/shell_get_avdata.d b/42sh/objs/main/shell_get_avdata.d deleted file mode 100644 index 768cbd51..00000000 --- a/42sh/objs/main/shell_get_avdata.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/main/shell_get_avdata.o: src/main/shell_get_avdata.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/main/shell_get_avdata.o b/42sh/objs/main/shell_get_avdata.o deleted file mode 100644 index 4c8aa047292bd43a31a540bb9531d07794351eeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5744 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 Cn=tVJ diff --git a/42sh/objs/main/sig_handler.d b/42sh/objs/main/sig_handler.d deleted file mode 100644 index 7371f664..00000000 --- a/42sh/objs/main/sig_handler.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/main/sig_handler.o: src/main/sig_handler.c includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/sig_handler.o b/42sh/objs/main/sig_handler.o deleted file mode 100644 index d5e47b087c60fc942a69a4c5fb3f5fbb9abddf87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2908 zcmb7GO>7%Q6rSDnu9Micof;w#s4`LlMQZFcwJHk|n$Q#+2m+O~aS>>={)xSfy|(<* zB#@$3PEezQM8$yv+{%FyCyrHx1P4GuaN|&fkN^p!azjwji15ALnbh8-Bz@AG_p@)m zeLpi}fBVlL|N0qIG=>H21AnGtiGe{6g41N*g|5;Ipr1sHw1LTpBlHl&d9$$8bamIB zJ&~EcV@qv8D1=AQt9>pGj0-Y`B;$YHsr6Gh0z*p}jBUj0X?yE=Y-2uI8LKym*>SOyK>zM?5o|tryNw{oVOVJo6s$ zEPK96uXyqDB0pL06b%z}4f7DA-m%`gX%`EP?Rd96_1+M8E~>Nch*vRlPKw_AB%Xxb z9nY-Q$^~wl6-sYgy&D23BNF;y*Zf?(YWA!%U~hi2qMAX0m+TSB9pS0BBfpxN^WrUe z@G^VEYcAJztoK8K_mRkFWsi6`#15o4zX`fPK(gLguWNU#o_cfD3hHd~mc3}%dCq61 zI$~K#;KhV94LoxFg8e5(<-seI_b-fF{HQO^T^K+Bh?0K*{3lEwWD*G+goI!(fjf!nB^ICTe6*{6D!u+| zx_vXUetx5UenSnf5qSEtbA;O|7G52IeVwuq&daIa2z33#t;2tHyV|!{cr8eg?~GF^ zPTcPloNj*+dF^vHNhd5eGjsZd*ttTzVO8x|Dn1e)i5<+9aV-p|MqtE~qw&L!vqn9a zsF;?WXjnyFGVOf1P><(W;#31~CW?#Ivw1U-9Bq_%uC~laS&`SQJOlG4&Bm-_(~!$C zExUPS6dEM!z$4wRGNoS`3Pp7-6fqtO^(*_)N;S!}&~)@z@QJ{a0TmENjT;78Z2MGq8RFxl`D=; zZ-LS;Po^m$%8i(2M?^k_xj#6hmwsFc554i-(G>JFm=Yv^985$XAiGQkNaB)@$cwuP zx|bN*|HStZ7>Jre`Dys2@i`~L{XW$|&qgj>3bfRri1E$S&ACrk|E4>e+VLis8gLOz zxltPi!651^xv1~7<3UbaA*tKKMNOwDnuT!vUmbqrNVOt*i^Nz6rHf>3%IhbYvJ_Dw zL4VJ?h@$)+24^-1X>(JKl}&~sZ>h)k$-f2PBSvL!V^x&fp?z2t`UY4@v>NqrLt4M0 z2m3zJ4dXf8Z+vZx>AgnJBf8Is>p`O@3SV3w$msqtxW3ZWGrDp{HBgA$Z^Ltd0owh~ zLgI776Rtg;6!x&N>E1-#cncEg8WkbOTz}|MVIL3@!ioDpNNQY|7C|(d4wJ=PTcrw# fLg3EljCXW`@dc|~W_-TMYprGh7a8O3WySsj!7*g7 diff --git a/42sh/objs/parser/ft_parse.d b/42sh/objs/parser/ft_parse.d deleted file mode 100644 index 62311a5d..00000000 --- a/42sh/objs/parser/ft_parse.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/parser/ft_parse.o: src/parser/ft_parse.c includes/parser.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/ft_parse.o b/42sh/objs/parser/ft_parse.o deleted file mode 100644 index fac45b6976f169dbccd8d7647162851883387f36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5440 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 K8O&e^QT_`m69RYu diff --git a/42sh/objs/parser/parse_dgreat.d b/42sh/objs/parser/parse_dgreat.d deleted file mode 100644 index 8cebf65a..00000000 --- a/42sh/objs/parser/parse_dgreat.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/parser/parse_dgreat.o: src/parser/parse_dgreat.c includes/parser.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_dgreat.o b/42sh/objs/parser/parse_dgreat.o deleted file mode 100644 index c8ad53d989011b4437930934ee065bb72d9f7aa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4876 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 O171Y&a}jrOl>Y!#i_Gl+ diff --git a/42sh/objs/parser/parse_great.d b/42sh/objs/parser/parse_great.d deleted file mode 100644 index 25da9143..00000000 --- a/42sh/objs/parser/parse_great.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/parser/parse_great.o: src/parser/parse_great.c includes/parser.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_great.o b/42sh/objs/parser/parse_great.o deleted file mode 100644 index f5bac75a4c283f96550b38b4e415d3dd81f87cd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4872 zcmb7Ie{2-T6`nhL_x60)KK}v(1x^?U(AWnC3T+O86AXtT3ZZd=+O*sA-P%5K++BC~ zz#x;*xNUMZY7^y0|42h4)Y4W}NtC8lBT5T|3J_HqDJ`N>rKVEa8a1dCr4nf(==aUe z8v6nb9r?|h_syGcW@qQUo%8ShbMb0Oh(MJ<1*wJPO%5=yTf;TCNDPG5u9E0N9 z;1ra4f+(ixT0^ea_U!w+x7~l;_FF5s2o&;h+TS(^5hhSA_EGu8G&5FTX~1+`TSBI} z?!m6D>-}!w^PE(CztP9L{6^4kQ2TtjLR!L=eD6>47NTrS94*_EJbb=XU!QI5B>&{~ z`FzhQnp@?|=KBjAQpxu%zCe^trRT^^6Qa4%+edWWaD8?vKVUf@YZ2cS%YT3jkoI!FwM#N zU`X+;ReVO&<5Q-H2r=llsr`7%W%H7;@_B!u_`a$ZlLQ}2;wJ0kdy_5^Zy*=n3Rwq# zzKU0&nZB?Nu>~@*a0*IA2u*akX}dRB{%dmN-7U%T-b=}HX)IapeLFeYdnq~E$iH&$ zd06L@r-ED%n&@myj_iqw`mgasoa+9NGhg_N?CnM`oJ6wR{bq7hS!<&navBIkB#Fq>mR7zC6LgRHYa8vvqZ~_?PXRcl zc;vStIjY9&z3#geL*aiy`E_67`bLfcv1u z(t{~m^aCwCY~|6H%W$0;QRGL?;m4SQUi5iBj?$Ks7URz?Y2-HXvFITJ4T1S}Ov6OHa6XfLtdqcpn^6w;p?`1lBvxTRds735d@}Q zFX#}O3guALL;H;bKt>-;GT)Rw2x5m;)ozCOC)=((Nf( z`w3=uMZ9A)K{Ve->GXg-f-)kE5kp+bhvne^KL>$jr{twi+( zAZ@zw2dGx9G5jZJPOMFuSd$aK1AIG%Xq;H+9IdTxpIu!dVzdiwP@Z6NN+JVKt=Th;d`MEa)Ar!f1htH3bs{;AB44*qZiAyZ9?-QK>D;u z8p_aP(nIpkW#?R^t3FMcb^K$6h`-2q{lIF@$h z*lQ^Nj}OQ5tKCd86s!|#(xEl{py0O~hXO*JA0_hh;#{ZNyaBX8rb4Dc-2K^EWA_{w z{@L3L{&}eP%ZGXvzI*2L4P!IjN;l7Z`tqAIA3y%W@U!Pm&iVd3?=3C=<6pzCY4Nj1 zhgWg*CFR17a;uD*W&@^LK2XBA$<^@q9-8FLk>fZLw*lobYh5L zxbm4$c(w@fuqlW^PKYt3Aci9$#;1aqVhAzkD2TB}h~dZWLSZ5x#OOvYW??!Z#7Yh1 z$tJ|(s=OF2gcv}Ii^+fx^MmqYf+NIC0Bv;A2{)nW5<;h&n{c_smX}5 z+lkAIjDvK<%i8!Y4TSRM)iKD|=lP(G%~Urm7}bIoCC|gV>Ur&fT%pfv<*Xsg_L{f_ zfXFLV^#LtXV{~aXdXLtS&_W36BkkIPkRtKvk zq0Q{kA_@3z(i#CwL-zscKj(-xk3f$W+@`hkXp8jK+A;uh02m$GtR6|y>bcCu%w#pr zXxEW>@JwKu5xJt~gf;^}56r-KgJJCWY-|pmy*&ht4Qb~M0`F(_-=G1l{xdZ3*A)JW z!WkaOe(m3e#$L3q^l&|{^a7=4D-A_Hoi_(+h^S|!3jb#`!4&f=Y-an3{fP>j*>__9 z`U+c^6V8M%`*GuT?M$gCo2g93PVZ1{w~&<}jsyN*l*{%@OOD3b;T;ygL2->2;=eSi B-?{(* diff --git a/42sh/objs/parser/parse_greatand.d b/42sh/objs/parser/parse_greatand.d deleted file mode 100644 index 4df2f669..00000000 --- a/42sh/objs/parser/parse_greatand.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/parser/parse_greatand.o: src/parser/parse_greatand.c \ - includes/parser.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/ft_readline.h \ - includes/exec.h includes/job_control.h includes/builtin.h \ - includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_greatand.o b/42sh/objs/parser/parse_greatand.o deleted file mode 100644 index ba7346b0186e795ec597d6a782f3087db65873c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4768 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 O;@2Qv=GNTnBmM`0WX=Tu diff --git a/42sh/objs/parser/parse_less.d b/42sh/objs/parser/parse_less.d deleted file mode 100644 index 7e5bbc1b..00000000 --- a/42sh/objs/parser/parse_less.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/parser/parse_less.o: src/parser/parse_less.c includes/parser.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_less.o b/42sh/objs/parser/parse_less.o deleted file mode 100644 index 7128079eb83285b8b15246fb3a386fe259895627..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4860 zcma)Adu$xV8J|0Q_x5~#obC9Lq)AS35)z7ijuVL0IH?V|TudU|6w?Tbw&%OGec^m} zz1_>J4kSu>97YwPqEd@^C@SegZ9w87rJ==vs7Vw=k*HA8{u7~A7y)XiXhi{${(iHw z_W4MfjQq_v-*3M8&Ft)a-_H5ZpMCUYKnP!jKn1CUz(? zv%x7Sbp%mN)3J6rZrinQ@85R&tnIa;Tm%aFIPFxu5J3W!Vjq=POfzW>7e-Cn$xFyI zZ~kuI)^B;;!sB^O@x7|gba@TG*P!Ph0M-WCTW_RZ=Q7(Vo>o#6nGwdJc=uE{?t1!s5Rr?DBbLNQg17P3^^7I+c-(<gFdZunosUfpU5HIK@UJ*@ z7S`F=Nk1n*6P*pQ1AD@v?tY$#ll@ENf_!5Fg3m_{2Ed(RecF`zK$J`daAcGb8Fiz?m->i%hORg+zKh^bidB!DT! zBfk={Ni}BgtnXF~h5u{Hum1uUd0+}C_u!<2@o=20*#F98{}-_XCkF3+y^l#EvU&3z zTOvEGyq(HsBHbOG9i5Sti8L}>dv_;{jkeVJn?-tZ|XZW*jTyn09IpdQh1T z&tp7~K#?HqbT%^@DP-)_XvRuLNSC%o9Fb3rjyb}1;(2nXQ<%bbl_C`xem2vQ4w0<_hsajmN~ZGYakZ^(`+QtV8t%AZ@0aG)^pZj@BLW+=uD{I`w(RXHc#B^}$L&zo5f9KEPtM zUZ&NJ2M~eh&z7lYyflY)qq#kJjU;SF~kJI6qh(E;7zy383%sC?{2 zlv4gH`EWeH*7N9yf^}j|I<$r#68vW4P(X8z2&Ki zm(H*F=i#9r93EKt;pw~Trx(1Pn78mJ|9WfTgU6qoc>J9cOP>AvC##Ded^~Yfi=O$z z#Py#qSd&?FWW9E#bKgUuPkxtO^y#U!_lB!?y!gy7&;0kJFRSjo^O<`NCnAqev|^LK z4%rC#HY5qz3E`1^67oFcb;vuA_aXeq*Wm${LV6&#L53kbMGrxqfEVmi1|TzF~JdHCi3WE6XJna^h{TTno+5XIP(P@WKw|_BS1Mb z*6GY-p&+JMLWdw~JY$*=LtS|>q6jg_)LNL12r)ycfeaHuj2Q(ntq@|SQ3IL02)&HT zTZDr6Zq>m57YYF!a~@}ql$I!2UG7qNCPI9BwhG^_urFL4Fdl_3XZji>_ivJ2yr{+t z(N`OOz<*PXcekB@uU|YzYTxIzHK=`@3F4c*Z{hlsNEed$VG}Lb`KYp@sWsg<%th?o zc2r(uY|PB7ns-M7pS*Z=jPdQcE@)#f)ddSirQkiu^>FWbZhJJH9d=u3YnPRGoA`2o z$SoChJ}p#b^l4T4fL7n51$s2UeydgkE2tMV0~(ONO{>sHwW?zP2edGN9<2^;wXm9c zw1op&2pE7S0J_!*TQndUT3wgLn3j~rX>Ar+ z2G1VMaX>C-UXQi_zyM6&)BYfKo0$U--p*aeZnX0*fp@dvJT#yU=b(wdpzz-+{8?yZ zzV?IA*ogLZF0MzFUZM12rJ=~DzoInSqK=g+%(f+_JU^v&ds+YbGMm2$O8xuGY+=rx v2VsujvhC!Pg`8~0lgWHyT(zBSN`g2F_!m(+H6krJ80Uu9SN!b64Ibrxgy-3) diff --git a/42sh/objs/parser/parse_lessand.d b/42sh/objs/parser/parse_lessand.d deleted file mode 100644 index ad28cc5e..00000000 --- a/42sh/objs/parser/parse_lessand.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/parser/parse_lessand.o: src/parser/parse_lessand.c includes/parser.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_lessand.o b/42sh/objs/parser/parse_lessand.o deleted file mode 100644 index c9aa2e8da0ec7c69ee7995009b23304a04755951..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4768 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 Lx4AXz`UvqqfHcf$ diff --git a/42sh/objs/parser/parse_separator.d b/42sh/objs/parser/parse_separator.d deleted file mode 100644 index 7e6a25ab..00000000 --- a/42sh/objs/parser/parse_separator.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/parser/parse_separator.o: src/parser/parse_separator.c \ - includes/parser.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/ft_readline.h \ - includes/exec.h includes/job_control.h includes/builtin.h \ - includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_separator.o b/42sh/objs/parser/parse_separator.o deleted file mode 100644 index c4a348c3d0bc8e29a61c2bcdc53032871986c762..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4548 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 t58=s5U08MdAgl>o|FT&pGhLE0UN`>NkM{yE|p} z%`k7K-8QvpY$6?35-ZR@AYdCqB_@&*gdjrPrbW;i+bAIh6K#mZst^j)q>8rwe)rwC zoqZH3H+$~6=iGCC_w$^0XHWk7oeL2mLNx*vs1`J%p-O;I=7UViA5-3lc^#*fjV}XJ zkmAbEvP$+;NeN(!NB9k8^pkS%^C7YQ-KhzgSkpQe z<b@QErx7{*p73SukyrlS>0X%fgf%Nfm`Ly&4;{9Td zwGclrq*-+}$HK=;jgA)WZQQ@P^YifzD1qO;soBH3R3H&QD^UC9CXg&pH{)+HiBVM_dN|Y#I`0fyb+OE$*K> z^8lVbVT~1Wx*kd}AM`4`0X0Y*iAh~;sX-c>P+gMw@s`Uv5;3^mg2LOXCbLN;y44>u zKkkb(iFuBkd?%-J^|0lQM2;R^Jb-d z)~t-2F{eo_{Hu)o0n+(d=`^I%<|~+FtuQMm&u~<8dgE!cGH4tTN*sur(|un1fwd3% z7Srnuvl6=GA>~2CoF2juQ%0}@7(*Csz%XAK;C^5j%y4=LGZW_CnYdZ`rE+QTdfS!J zS#!D!qwDxr898NEevJv9sto-`ny;8K_Z}a(=U8`I3^MK$8#dgrF|o}qy4k#w=0}{QbnT+YEVn%BPT09zPg*2Lpmvkv+w)s9spRUF z?u3;t?66h}=`d?4vQ9~)+>$6+qoty43s>=M$(|JHyi>BBlI3Q1q6d{#LMqCniiiQJ zgq+Je|7Q@xE@oW!r>P-2fdTe*s#GYWXqjx zF?7)(nH)w|93qn{r92neD$_-_igqSjM32W^#T}8(~r<&TW>`2s?kJPsn)mR-mab_YD+{-m7VD@o5D8=sFZ&oW{OiTFyp<@X$7Jn4L1y!muL#|dfJ)X6 z|3ZEQRJ$m`H6KE=W{dVTSj5mdl0F}5eG#h2a#XKDrOh|~2-c~!MBfDGz}lRFH97F# zq2B@*jROmv-uf7E?n8ARoqC(W=U1n`CRz`E0Hj~f1uRADNlJZKfQTGIvzcP2)(NH= zk!QfZK+U|^8nC$D9la6!992moa04A|pWZ7s1k!VqR#5srq)|#MA&JOEh(jQ~-Pi~g z*Ox{|z&6JSH%3< zpa~|wT;%=(!_#@skHycve3GG)Qg%JyEY-f0gT5D0K8+3i`E_X{7z*ZzdFkL9zHt2J z;@*R(#}5xdd_HIzRXYyO56?VM2dMPj?7}k}AK&%t>80-;9=Y%E@Upjm_4Vd6SN%TS zw&20{Pc69r=wrJce*O4op7_hT6_tOyx9ewG^2AHK)_i!?DrezSH)tn%_w0+E`$>M` z`Bzu(j@NJd>A@eJ_}4oZ>UQ6K@ZQ7e#KXIIeR*%!fxZgLfVP9a19}W}1au7aI_Php z|A3mXfNMbgps#>dxMs;n3-R55@Q7Lx&0%n!n<`#-1A)%eOiO^I$6t9mM--8uLx*Bxkp9Dkky#^cO-wxl@pngusixC#jpf?oyu(1Jk zh+}ZhmmXJmBc*fY41Sm-%Wg5Lq-1tg-*s~}?hZF8Un{N%JhSj11Ezdo^-S;tJu|ei zpXwzAp;qugc)# z)ZDK{`n52m21sps8SQUrEyLPks8;DEZSk)%|Q&%Uc5SrhqK0F}$Qp#Z0*%o2g8un4UzN4_Dj)XFO+@@{X_qFLb)$ eR^UHAx$Kzqlm@s$e3If-WGcu1-TV*uhv5eR diff --git a/42sh/objs/parser/parse_word.d b/42sh/objs/parser/parse_word.d deleted file mode 100644 index 2131817c..00000000 --- a/42sh/objs/parser/parse_word.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/parser/parse_word.o: src/parser/parse_word.c includes/parser.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_word.o b/42sh/objs/parser/parse_word.o deleted file mode 100644 index 93d75188d7552b89675929ca16a26e0e374b8a60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4688 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 Date: Thu, 2 Feb 2017 11:47:58 +0100 Subject: [PATCH 62/67] correction de bugs sur les termcaps - normalement tu peux spammer wesande ! :p --- 42sh/Makefile | 2 +- 42sh/src/line-editing/get_touch.c | 6 +++--- 42sh/src/line-editing/get_touch_toolz.c | 6 ++++-- 42sh/src/line-editing/get_touch_toolz_2.c | 6 +++++- 42sh/src/line-editing/toolz_parseur.c | 13 +++++++------ 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index 15ff6d83..b20dd88f 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -13,7 +13,7 @@ NAME = 42sh CC = gcc -FLAGS = -Wall -Wextra -Werror -g +FLAGS = -Wall -Wextra -Werror D_FLAGS = -g DELTA = $$(echo "$$(tput cols)-47"|bc) diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index eec81a25..14d09512 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/02/02 10:38:58 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 11:34:22 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,9 +18,9 @@ static int ft_lecture_3(int ret, char **str, size_t *i) ft_suppr(str, i); else if (ret == TOUCHE_DELETE && (*str) && (*i) < ft_strlen((*str))) ft_del(str, i); - else if (ret == TOUCHE_HOME && *str) + else if (ret == TOUCHE_HOME) ft_home(*str, i); - else if (ret == TOUCHE_END && *str) + else if (ret == TOUCHE_END) ft_end(*str, i); else return (0); diff --git a/42sh/src/line-editing/get_touch_toolz.c b/42sh/src/line-editing/get_touch_toolz.c index beae3600..ae54f960 100644 --- a/42sh/src/line-editing/get_touch_toolz.c +++ b/42sh/src/line-editing/get_touch_toolz.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:42:54 by gwojda #+# #+# */ -/* Updated: 2017/02/01 16:45:22 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 11:41:52 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,8 +18,10 @@ void ft_history_2(char **str, int ret, t_list_history **head if (*str) { if (*pos) + { --(*pos); - ft_get_beggin_with_curs(*str, pos); + ft_get_beggin_with_curs(*str, pos); + } ft_puttermcaps("cd"); *pos = 0; ft_strdel(str); diff --git a/42sh/src/line-editing/get_touch_toolz_2.c b/42sh/src/line-editing/get_touch_toolz_2.c index ad7d2372..d7c6b2e4 100644 --- a/42sh/src/line-editing/get_touch_toolz_2.c +++ b/42sh/src/line-editing/get_touch_toolz_2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:43:58 by gwojda #+# #+# */ -/* Updated: 2017/02/01 15:29:20 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 11:34:34 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,6 +20,8 @@ int ft_put(int nb) void ft_end(char *str, size_t *pos) { + if (!str) + return ; if (*pos) { --(*pos); @@ -35,6 +37,8 @@ void ft_end(char *str, size_t *pos) void ft_home(char *str, size_t *pos) { + if (!str) + return ; if (*pos) { --(*pos); diff --git a/42sh/src/line-editing/toolz_parseur.c b/42sh/src/line-editing/toolz_parseur.c index 50f2c532..adc6b90b 100644 --- a/42sh/src/line-editing/toolz_parseur.c +++ b/42sh/src/line-editing/toolz_parseur.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/16 16:14:46 by gwojda #+# #+# */ -/* Updated: 2017/02/02 11:01:10 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 11:46:55 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -69,10 +69,11 @@ void ft_found_prev_word(char *str, size_t *pos) } (*pos) = (i && str[*pos - i] == '\n') ? *pos - i + 1 : *pos - i; i = 0; - if (str[*pos - 1] == '\n') + if (*pos >= 1 && str[*pos - 1] == '\n') { ft_puttermcaps("cd"); - (*pos) -= 2; + if (*pos >= 2) + (*pos) -= 2; ft_get_beggin(str, pos); ft_current_str(str, *pos); ft_get_next_str(str, pos); @@ -80,12 +81,12 @@ void ft_found_prev_word(char *str, size_t *pos) } else { - if (!(str[*pos] == '\n' || str[*pos] == ' ')) + if (*pos && !(str[*pos] == '\n' || str[*pos] == ' ')) { ft_puttermcaps("le"); --(*pos); } - while (str[*pos - i] == '\n' || str[*pos - i] == ' ') + while (*pos - i && (str[*pos - i] == '\n' || str[*pos - i] == ' ')) { ft_puttermcaps("le"); ++i; @@ -123,7 +124,7 @@ void ft_found_next_word(char *str, size_t *pos) } ft_puttermcaps("cd"); ft_get_next_str(str, pos); - (*pos) += 2; + (*pos) += (*pos) ? 2 : 1; ft_current_str(str, *pos); ft_get_next_str(str, pos); if (!str[*pos]) From 97ac417f812cd2c4067033e295a2b90aada09104 Mon Sep 17 00:00:00 2001 From: gwojda Date: Thu, 2 Feb 2017 13:40:20 +0100 Subject: [PATCH 63/67] ajout d'un fichier pour garder l'historique des utilisations precedentes (.42sh_history dans le dossier du 42sh) + gestion du resize de fenetre --- 42sh/includes/ft_readline.h | 4 +++- 42sh/src/line-editing/readline.c | 38 +++++++++++++++++++------------- 42sh/src/line-editing/toolz2.c | 19 ++++++++++++++-- 3 files changed, 43 insertions(+), 18 deletions(-) diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index dabaaa87..fb23daf1 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,13 +6,14 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/23 10:35:44 by gwojda #+# #+# */ -/* Updated: 2017/02/01 15:10:44 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 13:23:12 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef FT_READLINE_H # define FT_READLINE_H +# include # include # include # include @@ -71,6 +72,7 @@ typedef struct s_line t_list_history *list_beg; } t_line; +void ft_add_in_history_file(char *str); int builtin_history(const char *path, char *const av[], char *const envp[]); void ft_check_backslash(char **str); char *ft_strget_history(char *str); diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index b5be9b33..c0aec11e 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/02/02 10:41:26 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 13:34:47 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,6 +22,24 @@ void ft_init_line(void) data_singleton()->line.opt = 0; } +void ft_init_history(void) +{ + int fd; + char *str; + + fd = open(".42sh_history", O_RDONLY); + if (fd == -1) + return ; + while (get_next_line(fd, &str) > 0) + { + ft_push_back_history(&data_singleton()->line.list_beg, + ft_create_history_list(str)); + free(str); + } + free(str); + close(fd); +} + struct termios *ft_save_stats_term(void) { static struct termios *term_save = NULL; @@ -41,6 +59,7 @@ struct termios *ft_stats_term_termcaps(void) if (!term) { ft_init_line(); + ft_init_history(); term = (struct termios *)malloc(sizeof(struct termios)); tcgetattr(0, term); (*term).c_lflag &= ~(ECHO | ICANON | ISIG); @@ -50,22 +69,8 @@ struct termios *ft_stats_term_termcaps(void) return (term); } -void ft_reset_stats_term(int signal) -{ - char *name_term; - - if (signal == SIGWINCH) - { - if ((name_term = getenv("TERM")) == NULL) - return ; - if (tgetent(NULL, name_term) == -1) - return ; - } -} - int ft_readline(void) { - signal(SIGWINCH, ft_reset_stats_term); ft_save_stats_term(); if (tcsetattr(0, TCSANOW, ft_stats_term_termcaps()) == -1) return (-1); @@ -80,8 +85,11 @@ int ft_readline(void) ft_check_backslash(&data_singleton()->line.input); ft_history_parsing(); if (data_singleton()->line.input) + { ft_push_back_history(&data_singleton()->line.list_beg, ft_create_history_list(data_singleton()->line.input)); + ft_add_in_history_file(data_singleton()->line.input); + } if (tcsetattr(0, TCSANOW, ft_save_stats_term()) == -1) return (-1); return (0); diff --git a/42sh/src/line-editing/toolz2.c b/42sh/src/line-editing/toolz2.c index 9be15d3e..95c99d85 100644 --- a/42sh/src/line-editing/toolz2.c +++ b/42sh/src/line-editing/toolz2.c @@ -6,12 +6,24 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/07 11:00:28 by gwojda #+# #+# */ -/* Updated: 2017/01/24 15:00:16 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 13:31:57 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" +void ft_add_in_history_file(char *str) +{ + int fd; + + fd = open(".42sh_history", O_CREAT | O_WRONLY | O_APPEND, S_IWUSR | S_IRUSR); + if (fd == -1) + return ; + write(fd, str, ft_strlen(str)); + write(fd, "\n", 1); + close(fd); +} + int ft_nbr_len(int nbr) { if (nbr % 10 != nbr) @@ -33,7 +45,10 @@ void ft_puttermcaps(char *str) int ft_size_term(void) { - return (tgetnum("co")); + struct winsize w; + + ioctl(0, TIOCGWINSZ, &w); + return (w.ws_col); } long long ft_pow(int nbr, int power) From 073ef322e4a8f74a44a03bebf76f796f8a6750e6 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Thu, 2 Feb 2017 14:57:30 +0100 Subject: [PATCH 64/67] fixed backquotes --- 42sh/includes/lexer.h | 4 +-- 42sh/includes/minishell.h | 2 +- 42sh/includes/parser.h | 2 +- 42sh/src/exec/exec_command.c | 42 +++++++++++++++++------------ 42sh/src/exec/ft_exec.c | 3 +-- 42sh/src/exec/launch_process.c | 2 +- 42sh/src/glob/lib_perso/ft_tabdel.c | 2 +- 42sh/src/job-control/process_free.c | 6 ++++- 42sh/src/lexer/command_getoutput.c | 2 +- 42sh/src/lexer/ft_post_tokenize.c | 10 +++---- 42sh/src/lexer/ft_tokenize.c | 2 +- 42sh/src/lexer/reduce_bquotes.c | 2 +- 42sh/src/line-editing/readline.c | 2 +- 42sh/src/main/main.c | 12 +++++---- 42sh/src/parser/parse_subshell.c | 2 +- 42sh/src/parser/parse_word.c | 2 +- 16 files changed, 55 insertions(+), 42 deletions(-) diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 24b36150..d27214cd 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:50 by jhalford #+# #+# */ -/* Updated: 2017/01/31 18:35:34 by wescande ### ########.fr */ +/* Updated: 2017/02/02 14:55:46 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -75,7 +75,7 @@ extern int (*g_lexer[])(t_list **alst, char *str); t_token *token_init(); int ft_tokenize(t_list **alst, char *str, t_lexstate state); -int ft_post_tokenize(t_list **alst, char *str); +int ft_post_tokenize(t_list **alst, char **str); int token_append(t_token *token, char c, short int esc); void token_free(void *data, size_t size); int token_cmp_type(t_token *token, t_type *ref); diff --git a/42sh/includes/minishell.h b/42sh/includes/minishell.h index 775ced98..a2b32c83 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/01/30 13:07:38 by wescande ### ########.fr */ +/* Updated: 2017/02/02 14:46:23 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/includes/parser.h b/42sh/includes/parser.h index cdb28caa..3a6f5392 100644 --- a/42sh/includes/parser.h +++ b/42sh/includes/parser.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:54 by jhalford #+# #+# */ -/* Updated: 2017/01/31 19:17:25 by wescande ### ########.fr */ +/* Updated: 2017/02/02 14:03:15 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index dac7a201..035558a5 100644 --- a/42sh/src/exec/exec_command.c +++ b/42sh/src/exec/exec_command.c @@ -6,31 +6,39 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 17:28:14 by jhalford #+# #+# */ -/* Updated: 2017/02/01 19:29:27 by wescande ### ########.fr */ +/* Updated: 2017/02/02 14:49:22 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "exec.h" -static char **return_array_expand(t_ld *ld) +static char **token_to_argv(t_astnode *node) { - char **my_tab; - int index; - char **expand; - char **content; + char **my_tab; + int index; + char **expand; + char **content; + t_ld *ld; - my_tab = NULL; - while (ld) + if (node->type == TK_COMMAND) { - content = ld->content; - expand = glob(content[0], (unsigned char *)content[1]); - index = -1; - while (expand[++index]) - my_tab = ft_sstradd(my_tab, expand[index]); - ft_tabdel(&expand); - ld = ld->next; + ld = node->data.token; + my_tab = NULL; + while (ld) + { + content = ld->content; + expand = glob(content[0], (unsigned char *)content[1]); + index = -1; + while (expand[++index]) + my_tab = ft_sstradd(my_tab, expand[index]); + ft_tabdel(&expand); + ld = ld->next; + } + return (my_tab); } - return (my_tab); + else if (node->type == TK_SUBSHELL) + return (ft_sstrdup(node->data.sstr)); + return (NULL); } int exec_command(t_btree **ast) @@ -42,7 +50,7 @@ int exec_command(t_btree **ast) node = (*ast)->item; p = &data_singleton()->exec.process; job = &data_singleton()->exec.job; - p->av = return_array_expand(node->data.token); + p->av = token_to_argv(node); process_setexec(node->type, p); if (!(launch_process(p))) { diff --git a/42sh/src/exec/ft_exec.c b/42sh/src/exec/ft_exec.c index 2f18bdc8..193eddcb 100644 --- a/42sh/src/exec/ft_exec.c +++ b/42sh/src/exec/ft_exec.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/27 20:30:32 by jhalford #+# #+# */ -/* Updated: 2017/01/11 18:01:05 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 14:49:49 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,7 +38,6 @@ int ft_exec(t_btree **ast) while (g_execmap[i].type) { if (item->type & g_execmap[i].type) - /* return ((*g_execmap[i].f)(ast)); */ (*g_execmap[i].f)(ast); i++; } diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index db991821..38ff2aaf 100644 --- a/42sh/src/exec/launch_process.c +++ b/42sh/src/exec/launch_process.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 14:20:45 by jhalford #+# #+# */ -/* Updated: 2017/01/31 13:47:57 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 14:28:55 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/glob/lib_perso/ft_tabdel.c b/42sh/src/glob/lib_perso/ft_tabdel.c index ac72a1a1..d4f9cff0 100644 --- a/42sh/src/glob/lib_perso/ft_tabdel.c +++ b/42sh/src/glob/lib_perso/ft_tabdel.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/04 16:29:54 by wescande #+# #+# */ -/* Updated: 2017/01/24 16:52:50 by wescande ### ########.fr */ +/* Updated: 2017/02/02 14:22:46 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/job-control/process_free.c b/42sh/src/job-control/process_free.c index ee4824e4..6910a7c2 100644 --- a/42sh/src/job-control/process_free.c +++ b/42sh/src/job-control/process_free.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/12 12:41:11 by jhalford #+# #+# */ -/* Updated: 2017/01/02 19:11:34 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 14:34:40 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,8 +17,12 @@ void process_free(void *content, size_t content_size) t_process *p; (void)content_size; + DG("check 0"); p = content; + DG("check 1"); ft_strdel(&p->path); + DG("check 2"); ft_sstrfree(p->av); + DG("check 3"); free(p); } diff --git a/42sh/src/lexer/command_getoutput.c b/42sh/src/lexer/command_getoutput.c index 7e4b80f5..2684662a 100644 --- a/42sh/src/lexer/command_getoutput.c +++ b/42sh/src/lexer/command_getoutput.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/12 14:01:59 by jhalford #+# #+# */ -/* Updated: 2017/01/31 16:07:17 by wescande ### ########.fr */ +/* Updated: 2017/02/02 14:52:30 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/ft_post_tokenize.c b/42sh/src/lexer/ft_post_tokenize.c index a3de30d2..7545b99a 100644 --- a/42sh/src/lexer/ft_post_tokenize.c +++ b/42sh/src/lexer/ft_post_tokenize.c @@ -6,22 +6,22 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 16:11:11 by jhalford #+# #+# */ -/* Updated: 2017/01/12 13:58:20 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 14:54:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int ft_post_tokenize(t_list **alst, char *str) +int ft_post_tokenize(t_list **alst, char **str) { int ret; - while ((ret = reduce_parens(alst, str))) + while ((ret = reduce_parens(alst, *str))) if (ret == -1) return (-1); - while ((ret = reduce_bquotes(alst, &str))) + while ((ret = reduce_bquotes(alst, str))) if (ret == -1) return (-1); - DG("new command from bquotes: '%s'", str); + DG("new command from bquotes: '%s'", *str); return (0); } diff --git a/42sh/src/lexer/ft_tokenize.c b/42sh/src/lexer/ft_tokenize.c index b94670d7..8abae3d3 100644 --- a/42sh/src/lexer/ft_tokenize.c +++ b/42sh/src/lexer/ft_tokenize.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:37:11 by jhalford #+# #+# */ -/* Updated: 2017/01/31 13:42:01 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 14:55:43 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/reduce_bquotes.c b/42sh/src/lexer/reduce_bquotes.c index 5198a2f2..1fe3cf4a 100644 --- a/42sh/src/lexer/reduce_bquotes.c +++ b/42sh/src/lexer/reduce_bquotes.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 16:46:27 by jhalford #+# #+# */ -/* Updated: 2017/01/12 15:10:16 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 14:52:28 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index c0aec11e..79e7f552 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/02/02 13:34:47 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 14:38:30 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 6731ea08..5a28ed2d 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/01/31 19:41:25 by wescande ### ########.fr */ +/* Updated: 2017/02/02 14:55:29 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,16 +24,18 @@ int shell_single_command(char *command) DG("{inv}{mag}got command '%s'", command); if (ft_tokenize(&token, command, DEFAULT)) return (1); + if (ft_post_tokenize(&token, &command)) + return (1); if (!token) return (0); - if (ft_post_tokenize(&token, command)) - return (1); + ft_strdel(&command); token_print(token); if (ft_parse(&ast, &token)) return (1); btree_print(STDBUG, ast, &ft_putast); if (ft_exec(&ast)) return (1); + DG("after exec!"); return (0); } @@ -44,14 +46,14 @@ int main(int ac, char **av) shell_init(ac, av); if (data_singleton()->opts & SHELL_OPTS_LC) { - shell_single_command(shell_get_avdata()); + shell_single_command(ft_strdup(shell_get_avdata())); return (0); } while (1) { if (ft_readline()) return (1); - if (shell_single_command(data_singleton()->line.input)) + if (shell_single_command(ft_strdup(data_singleton()->line.input))) return (1); } return (0); diff --git a/42sh/src/parser/parse_subshell.c b/42sh/src/parser/parse_subshell.c index bcb38158..213fec47 100644 --- a/42sh/src/parser/parse_subshell.c +++ b/42sh/src/parser/parse_subshell.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 16:52:44 by jhalford #+# #+# */ -/* Updated: 2017/01/12 15:10:24 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 14:11:09 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/parse_word.c b/42sh/src/parser/parse_word.c index b7b1743f..60535449 100644 --- a/42sh/src/parser/parse_word.c +++ b/42sh/src/parser/parse_word.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/01/31 19:17:58 by wescande ### ########.fr */ +/* Updated: 2017/02/02 14:24:53 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From b08b727779a9649a2fa8b729aef3b9ee429ba5f1 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Thu, 2 Feb 2017 15:23:31 +0100 Subject: [PATCH 65/67] orphan backquotes and orpan parens generate parse errors --- 42sh/.gitignore | 1 + 42sh/includes/lexer.h | 2 +- 42sh/src/builtin/builtin_exit.c | 2 +- 42sh/src/exec/ft_exec.c | 2 +- 42sh/src/lexer/command_getoutput.c | 2 +- 42sh/src/lexer/ft_post_tokenize.c | 15 ++++++++++++++- 42sh/src/lexer/reduce_bquotes.c | 9 +++++++-- 42sh/src/lexer/reduce_parens.c | 2 +- 42sh/src/main/main.c | 4 ++-- 9 files changed, 29 insertions(+), 10 deletions(-) diff --git a/42sh/.gitignore b/42sh/.gitignore index 23a58579..d5fb06f4 100644 --- a/42sh/.gitignore +++ b/42sh/.gitignore @@ -3,4 +3,5 @@ minishell 42sh out debug +.42sh_history *.dSYM diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index d27214cd..8efb7a2b 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:50 by jhalford #+# #+# */ -/* Updated: 2017/02/02 14:55:46 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:14:58 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/builtin/builtin_exit.c b/42sh/src/builtin/builtin_exit.c index 80148cb8..220886c9 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/01/09 16:25:06 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:04:48 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/ft_exec.c b/42sh/src/exec/ft_exec.c index 193eddcb..e257cd9e 100644 --- a/42sh/src/exec/ft_exec.c +++ b/42sh/src/exec/ft_exec.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/27 20:30:32 by jhalford #+# #+# */ -/* Updated: 2017/02/02 14:49:49 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:04:50 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/command_getoutput.c b/42sh/src/lexer/command_getoutput.c index 2684662a..7dbd1c46 100644 --- a/42sh/src/lexer/command_getoutput.c +++ b/42sh/src/lexer/command_getoutput.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/12 14:01:59 by jhalford #+# #+# */ -/* Updated: 2017/02/02 14:52:30 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:16:25 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/ft_post_tokenize.c b/42sh/src/lexer/ft_post_tokenize.c index 7545b99a..f95e1cb0 100644 --- a/42sh/src/lexer/ft_post_tokenize.c +++ b/42sh/src/lexer/ft_post_tokenize.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 16:11:11 by jhalford #+# #+# */ -/* Updated: 2017/02/02 14:54:57 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:22:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,13 +15,26 @@ int ft_post_tokenize(t_list **alst, char **str) { int ret; + t_flag tk; while ((ret = reduce_parens(alst, *str))) if (ret == -1) + { + ft_dprintf(2, "{red}%s: parse error near '('{eoc}\n", SHELL_NAME); return (-1); + } + tk = TK_PAREN_CLOSE; + if (ft_lst_find(*alst, &tk, token_cmp_type)) + { + ft_dprintf(2, "{red}%s: parse error near ')'{eoc}\n", SHELL_NAME); + return (-1); + } while ((ret = reduce_bquotes(alst, str))) if (ret == -1) + { + ft_dprintf(2, "{red}%s: parse error near '`'{eoc}\n", SHELL_NAME); return (-1); + } DG("new command from bquotes: '%s'", *str); return (0); } diff --git a/42sh/src/lexer/reduce_bquotes.c b/42sh/src/lexer/reduce_bquotes.c index 1fe3cf4a..418edde5 100644 --- a/42sh/src/lexer/reduce_bquotes.c +++ b/42sh/src/lexer/reduce_bquotes.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 16:46:27 by jhalford #+# #+# */ -/* Updated: 2017/02/02 14:52:28 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:16:24 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,10 +24,12 @@ int reduce_bquotes(t_list **alst, char **str) char *bq_end; tk = TK_BQUOTE; + DG("check 0"); if ((start = ft_lst_find(*alst, &tk, token_cmp_type))) { + DG("check 1"); end = &start->next; - while (end) + while (end && *end) { token = (*end)->content; if (token->type == TK_BQUOTE) @@ -35,7 +37,10 @@ int reduce_bquotes(t_list **alst, char **str) end = &(*end)->next; } if (!*end) + { + DG("check 42"); return (-1); + } bq_start = ((t_token*)start->content)->data; bq_end = ((t_token*)(*end)->content)->data; ft_lstdel(end, token_free); diff --git a/42sh/src/lexer/reduce_parens.c b/42sh/src/lexer/reduce_parens.c index dfad6686..7f4f3c39 100644 --- a/42sh/src/lexer/reduce_parens.c +++ b/42sh/src/lexer/reduce_parens.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 16:13:31 by jhalford #+# #+# */ -/* Updated: 2017/01/12 13:50:10 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:19:02 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 5a28ed2d..2df0292f 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/02/02 14:55:29 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:22:00 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -53,7 +53,7 @@ int main(int ac, char **av) { if (ft_readline()) return (1); - if (shell_single_command(ft_strdup(data_singleton()->line.input))) + if (shell_single_command(ft_strdup(data_singleton()->line.input)) < 0) return (1); } return (0); From 7265a6c340effec6a208480a364bee77b2ac828d Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Thu, 2 Feb 2017 15:45:55 +0100 Subject: [PATCH 66/67] cleaner main, added ft_lexer to encapsulate all phases of tokenization --- 42sh/Makefile | 1 + 42sh/includes/lexer.h | 6 ++++-- 42sh/src/exec/exec_command.c | 2 +- 42sh/src/job-control/process_free.c | 6 +----- 42sh/src/lexer/ft_lexer.c | 28 ++++++++++++++++++++++++++++ 42sh/src/lexer/ft_post_tokenize.c | 2 +- 42sh/src/lexer/ft_tokenize.c | 2 +- 42sh/src/main/main.c | 15 +++++---------- 42sh/src/parser/ft_parse.c | 2 +- 9 files changed, 43 insertions(+), 21 deletions(-) create mode 100644 42sh/src/lexer/ft_lexer.c diff --git a/42sh/Makefile b/42sh/Makefile index b20dd88f..8d286750 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -116,6 +116,7 @@ job-control/sigtstp_handler.c\ job-control/sigttin_handler.c\ job-control/sigttou_handler.c\ lexer/command_getoutput.c\ +lexer/ft_lexer.c\ lexer/ft_post_tokenize.c\ lexer/ft_tokenize.c\ lexer/get_lexer_state.c\ diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 8efb7a2b..0b4f3424 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:50 by jhalford #+# #+# */ -/* Updated: 2017/02/02 15:14:58 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:36:09 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -73,9 +73,11 @@ typedef enum e_lexstate t_lexstate; extern int (*g_lexer[])(t_list **alst, char *str); -t_token *token_init(); +int ft_lexer(t_list **alst, char **str); int ft_tokenize(t_list **alst, char *str, t_lexstate state); int ft_post_tokenize(t_list **alst, char **str); + +t_token *token_init(); int token_append(t_token *token, char c, short int esc); void token_free(void *data, size_t size); int token_cmp_type(t_token *token, t_type *ref); diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index 035558a5..e0f5e71b 100644 --- a/42sh/src/exec/exec_command.c +++ b/42sh/src/exec/exec_command.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 17:28:14 by jhalford #+# #+# */ -/* Updated: 2017/02/02 14:49:22 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:45:32 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/job-control/process_free.c b/42sh/src/job-control/process_free.c index 6910a7c2..f0f77c0a 100644 --- a/42sh/src/job-control/process_free.c +++ b/42sh/src/job-control/process_free.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/12 12:41:11 by jhalford #+# #+# */ -/* Updated: 2017/02/02 14:34:40 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:45:25 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,12 +17,8 @@ void process_free(void *content, size_t content_size) t_process *p; (void)content_size; - DG("check 0"); p = content; - DG("check 1"); ft_strdel(&p->path); - DG("check 2"); ft_sstrfree(p->av); - DG("check 3"); free(p); } diff --git a/42sh/src/lexer/ft_lexer.c b/42sh/src/lexer/ft_lexer.c new file mode 100644 index 00000000..a0abdd90 --- /dev/null +++ b/42sh/src/lexer/ft_lexer.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lexer.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/02 15:30:59 by jhalford #+# #+# */ +/* Updated: 2017/02/02 15:42:24 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "lexer.h" + +int ft_lexer(t_list **alst, char **command) +{ + int ret; + + ret = 0; + if (!*command) + ret = 1; + else if (ft_tokenize(alst, *command, DEFAULT)) + ret = 1; + else if (ft_post_tokenize(alst, command)) + ret = 1; + ft_strdel(command); + return (ret); +} diff --git a/42sh/src/lexer/ft_post_tokenize.c b/42sh/src/lexer/ft_post_tokenize.c index f95e1cb0..f88d45b5 100644 --- a/42sh/src/lexer/ft_post_tokenize.c +++ b/42sh/src/lexer/ft_post_tokenize.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 16:11:11 by jhalford #+# #+# */ -/* Updated: 2017/02/02 15:22:34 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:29:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/ft_tokenize.c b/42sh/src/lexer/ft_tokenize.c index 8abae3d3..a2334864 100644 --- a/42sh/src/lexer/ft_tokenize.c +++ b/42sh/src/lexer/ft_tokenize.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:37:11 by jhalford #+# #+# */ -/* Updated: 2017/02/02 14:55:43 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:34:45 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 2df0292f..8fb8d026 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/02/02 15:22:00 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 15:45:17 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,23 +19,18 @@ int shell_single_command(char *command) token = NULL; ast = NULL; - if (!command) - return (0); + DG("{inv}{mag}got command '%s'", command); - if (ft_tokenize(&token, command, DEFAULT)) + if (ft_lexer(&token, &command) || !token) return (1); - if (ft_post_tokenize(&token, &command)) - return (1); - if (!token) - return (0); - ft_strdel(&command); + token_print(token); if (ft_parse(&ast, &token)) return (1); + btree_print(STDBUG, ast, &ft_putast); if (ft_exec(&ast)) return (1); - DG("after exec!"); return (0); } diff --git a/42sh/src/parser/ft_parse.c b/42sh/src/parser/ft_parse.c index d1a334c6..beb0cfaa 100644 --- a/42sh/src/parser/ft_parse.c +++ b/42sh/src/parser/ft_parse.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/30 17:14:58 by jhalford #+# #+# */ -/* Updated: 2017/01/31 16:10:41 by wescande ### ########.fr */ +/* Updated: 2017/02/02 15:45:33 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 7fb9aa2da5d606838392f81a78039d1c251688c4 Mon Sep 17 00:00:00 2001 From: gwojda Date: Thu, 2 Feb 2017 19:07:32 +0100 Subject: [PATCH 67/67] =?UTF-8?q?changement=20du=20squelette=20(passage=20?= =?UTF-8?q?a=20un=20tableau=20de=20pointeur=20sur=20fonction)=20-=20pas=20?= =?UTF-8?q?encore=20tout=20rest=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/Makefile | 2 + 42sh/includes/builtin.h | 5 +- 42sh/includes/ft_readline.h | 129 +++++++++++---------- 42sh/src/line-editing/check_backslash.c | 4 +- 42sh/src/line-editing/control_c_and_d.c | 49 ++++++++ 42sh/src/line-editing/copy_cut_paste.c | 94 ++++++++------- 42sh/src/line-editing/get_touch.c | 134 +++++++--------------- 42sh/src/line-editing/get_touch_toolz.c | 131 ++++++++++++++------- 42sh/src/line-editing/get_touch_toolz_2.c | 30 ++++- 42sh/src/line-editing/heredoc.c | 4 +- 42sh/src/line-editing/history.c | 87 ++++++++++++++ 42sh/src/line-editing/history_parsing.c | 8 +- 42sh/src/line-editing/list_toolz.c | 11 +- 42sh/src/line-editing/move_to_line.c | 28 ++--- 42sh/src/line-editing/print_and_del.c | 26 ++++- 42sh/src/line-editing/quotes_gest.c | 19 +-- 42sh/src/line-editing/readline.c | 11 +- 42sh/src/line-editing/surch_in_history.c | 8 +- 42sh/src/line-editing/tool_line_2.c | 8 +- 42sh/src/line-editing/toolz.c | 31 +---- 42sh/src/line-editing/toolz2.c | 2 +- 42sh/src/line-editing/toolz_parseur.c | 94 +-------------- 22 files changed, 490 insertions(+), 425 deletions(-) create mode 100644 42sh/src/line-editing/control_c_and_d.c create mode 100644 42sh/src/line-editing/history.c diff --git a/42sh/Makefile b/42sh/Makefile index 8d286750..e240d66b 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -144,12 +144,14 @@ lexer/token_init.c\ lexer/token_print.c\ line-editing/builtin_history.c\ line-editing/check_backslash.c\ +line-editing/control_c_and_d.c\ line-editing/copy_cut_paste.c\ line-editing/ft_split_whitespaces.c\ line-editing/get_touch.c\ line-editing/get_touch_toolz.c\ line-editing/get_touch_toolz_2.c\ line-editing/heredoc.c\ +line-editing/history.c\ line-editing/history_parsing.c\ line-editing/history_parsing_toolz.c\ line-editing/history_parsing_toolz_2.c\ diff --git a/42sh/includes/builtin.h b/42sh/includes/builtin.h index f2324223..45db3c5a 100644 --- a/42sh/includes/builtin.h +++ b/42sh/includes/builtin.h @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* builtin.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 17:21:56 by jhalford #+# #+# */ -/* Updated: 2017/01/21 18:42:34 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 19:07:01 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,5 +27,6 @@ int builtin_unsetenv(const char *path, char *const argv[], char *const envp[]); int builtin_jobs(const char *path, char *const av[], char *const envp[]); int builtin_fg(const char *path, char *const av[], char *const envp[]); int builtin_bg(const char *path, char *const av[], char *const envp[]); +int builtin_history(const char *path, char *const av[], char *const envp[]); #endif diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index fb23daf1..c79f8815 100644 --- a/42sh/includes/ft_readline.h +++ b/42sh/includes/ft_readline.h @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/23 10:35:44 by gwojda #+# #+# */ -/* Updated: 2017/02/02 13:23:12 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 18:28:44 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,6 +38,7 @@ # define TOUCHE_CTRL_C 3 # define TOUCHE_CTRL_D 4 # define TOUCHE_CTRL_R 18 +# define TOUCHE_SUPPR 127 # define TOUCHE_HOME 4741915 # define TOUCHE_END 4610843 # define TOUCHE_TAB 9 @@ -65,84 +66,82 @@ typedef struct s_list_history typedef struct s_line { char *input; + char *copy_tmp; + size_t pos; int prompt_size; int list_size; char opt; t_list_history *list_end; + t_list_history *list_cur; t_list_history *list_beg; } t_line; -void ft_add_in_history_file(char *str); -int builtin_history(const char *path, char *const av[], char *const envp[]); -void ft_check_backslash(char **str); -char *ft_strget_history(char *str); -void ft_surch_in_history(char **str, size_t *pos); -void ft_realloc_str_history_3(char **str, size_t pos, char *s); -void ft_move_right(size_t *pos, char *str); -void ft_move_left(size_t *pos, char *str); -int ft_put(int nb); -void ft_end(char *str, size_t *pos); -void ft_home(char *str, size_t *pos); -void ft_realloc_str_history_2(char **str, size_t pos, char *s); -void ft_realloc_str_history(char **str, size_t pos - , int nb_his, int len); -char *ft_strdupi_w(char const *s); -void ft_history_parsing(); -void ft_check_heredoc(char **str); -void ft_history_builtin(void); +typedef struct s_key +{ + int value; + void (*f)(void); +} t_key; + +extern t_key g_keys[]; + + +void ft_putnc(char c, int n); int ft_nbr_len(int nbr); -int ft_found_next_char(char *str, size_t i); -void ft_check_end_of_line(char *str, size_t pos); -void ft_printall(char *str, size_t *pos); +void ft_puttermcaps(char *str); void ft_get_beggin_with_curs(char *str, size_t *pos); -void ft_history(char **str, int ret, t_list_history **head, size_t *pos); -void ft_suppr(char **str, size_t *i); -void ft_del(char **str, size_t *i); +void ft_check_end_of_line(char *str, size_t pos); +int ft_size_term(void); +void ft_add_in_history_file(char *str); +void ft_get_beggin(char *str, size_t *pos); +void ft_get_next_str(char *str, size_t *pos); +void ft_putall_current_str(char *str, size_t *pos); void ft_current_str(char *str, size_t pos); int ft_strlen_next(char *str, size_t pos); -void ft_putall_current_str(char *str, size_t *pos); -void ft_get_next_str(char *str, size_t *pos); -void ft_get_beggin(char *str, size_t *pos); - -long long ft_pow(int nbr, int power); -char *ft_strndup(char const *s, int n); -char *ft_strdupi(char const *s); -void ft_puttermcaps(char *str); -void ft_putnc(char c, int n); -int ft_size_term(void); -void ft_free_tabstr(char ***env); -int ft_is_whitespaces(char *str); -int ft_get_size_prev(char *str, size_t pos); -int ft_nb_line(char *str, size_t pos); -int ft_get_ind_prev(char *str, size_t pos); -void ft_found_next_word(char *str, size_t *pos); -void ft_move_to_beggin(char *str, size_t *pos); -int ft_nb_last_line(char *str, size_t pos); -void ft_found_prev_word(char *str, size_t *pos); +void ft_push_back_history(t_list_history **head, t_list_history *new); +void ft_prompt(void); char *ft_remove_imput(char *str, size_t pos); char *ft_realloc_imput(char *str, int a, size_t pos); -int ft_readline(void); -struct termios *ft_stats_term_termcaps(void); -struct termios *ft_save_stats_term(void); -void ft_init_line(void); -void ft_read_it(int input, size_t *pos, char **str); -void ft_check_quotes(char **s, t_list_history *head); -int ft_check_quotes_num(char *s); -void ft_print(char **str, int ret, size_t *i); -void ft_move_to_line(int ret, size_t *pos, char *str); -void ft_get_head(t_list_history **head); -void ft_push_back_history(t_list_history **head, t_list_history *new); +char *ft_strdupi(char const *s); +char *ft_strndup(char const *s, int n); t_list_history *ft_create_history_list(char *str); -void ft_curse_move(char *str); -void ft_move_suppr(char *str, size_t pos); -void ft_move_dell(char *str, size_t pos); -void ft_move_to_word(int ret, size_t *pos, char *str); -void ft_move_term(int ret, size_t *pos, char *str); -void ft_home_end(char *str, int ret, size_t *pos); +char *ft_strdupi_w(char const *s); +void ft_realloc_str_history(char **str, size_t pos, int nb_his, int len); +void ft_realloc_str_history_2(char **str, size_t pos, char *s); +long long ft_pow(int nbr, int power); +void ft_realloc_str_history_3(char **str, size_t pos, char *s); +void ft_check_backslash(char **str); +char *ft_strget_history(char *str); +int ft_nb_last_line(char *str, size_t pos); int ft_put(int nb); -char **ft_split_whitespaces(char const *s); -void ft_cxv(int ret, size_t *pos, char **str); -char *ft_lecture(t_list_history *head); -void ft_prompt(void); + +char *ft_read_stdin(void); +void ft_end(void); +void ft_home(void); +void ft_move_right(void); +void ft_move_left(void); +void ft_up(void); +void ft_down(void); +void ft_buff_f6(void); +void ft_control_d(void); +void ft_control_c(void); +void ft_del(void); +void ft_suppr(void); +void ft_print(int ret); +void ft_surch_in_history(void); +void ft_printall(void); +void ft_history_down(void); +void ft_history_up(void); +void ft_found_next_word(void); +void ft_found_prev_word(void); +void ft_c(void); +void ft_x(void); +void ft_v(void); +void ft_history_parsing(void); +void ft_read_it(int input, size_t *pos, char **str); +int ft_readline(void); + +void ft_check_heredoc(char **str); +void ft_check_quotes(char **s); + #endif diff --git a/42sh/src/line-editing/check_backslash.c b/42sh/src/line-editing/check_backslash.c index 14e0fe22..1ab0256e 100644 --- a/42sh/src/line-editing/check_backslash.c +++ b/42sh/src/line-editing/check_backslash.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/26 13:32:52 by gwojda #+# #+# */ -/* Updated: 2017/02/02 11:11:11 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 16:01:25 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,7 @@ void ft_check_backslash(char **str) tmp1 = *str; tmp2 = ft_strjoin(tmp1, "\n"); free(tmp1); - tmp1 = ft_lecture(data_singleton()->line.list_beg); + tmp1 = ft_read_stdin(); *str = ft_strjoin(tmp2, tmp1); free(tmp1); free(tmp2); diff --git a/42sh/src/line-editing/control_c_and_d.c b/42sh/src/line-editing/control_c_and_d.c new file mode 100644 index 00000000..a194e7a0 --- /dev/null +++ b/42sh/src/line-editing/control_c_and_d.c @@ -0,0 +1,49 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* control_c_and_d.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/02 15:17:28 by gwojda #+# #+# */ +/* Updated: 2017/02/02 16:43:15 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_buff_f6(void) +{ + int ret; + + ret = 0; + read(0, &ret, sizeof(int)); +} + +void ft_control_d(void) +{ + char **str; + size_t *pos; + + str = &data_singleton()->line.input; + pos = &data_singleton()->line.pos; + if (!(*str) || (*str)[0] == '\0') + builtin_exit(NULL, (char*[]){"exit", NULL}, NULL); + else if (*pos < ft_strlen(*str)) + ft_del(); + else + ft_puttermcaps("bl"); +} + +void ft_control_c(void) +{ + char **str; + size_t *pos; + + str = &data_singleton()->line.input; + pos = &data_singleton()->line.pos; + ft_putchar('\n'); + ft_prompt(); + ft_strdel(str); + *pos = 0; +} diff --git a/42sh/src/line-editing/copy_cut_paste.c b/42sh/src/line-editing/copy_cut_paste.c index 19f24b47..587469bb 100644 --- a/42sh/src/line-editing/copy_cut_paste.c +++ b/42sh/src/line-editing/copy_cut_paste.c @@ -6,37 +6,12 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 12:45:06 by gwojda #+# #+# */ -/* Updated: 2017/02/01 15:16:33 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 16:10:51 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -static void ft_v(char *tmp, size_t *pos, char **str) -{ - size_t tmp_pos; - int i; - - i = 0; - tmp_pos = *pos; - if (!tmp) - return ; - while (tmp[i]) - { - *str = ft_realloc_imput(*str, tmp[i], *pos + i); - ++i; - } - if (*pos) - { - --(*pos); - ft_get_beggin_with_curs(*str, pos); - } - ft_current_str(*str, *pos); - ft_get_next_str(*str, pos); - ft_putnc('\b', *pos - tmp_pos); - (*pos) = tmp_pos; -} - static char *ft_strdupi_space(char const *s) { int i; @@ -61,10 +36,49 @@ static char *ft_strdupi_space(char const *s) return (str); } -static void ft_x(char **tmp, size_t *pos, char **str) +void ft_v(void) { - int i; + size_t tmp_pos; + int i; + char *tmp; + char **str; + size_t *pos; + tmp = data_singleton()->line.copy_tmp; + str = &data_singleton()->line.input; + pos = &data_singleton()->line.pos; + i = 0; + tmp_pos = *pos; + if (!*str || !tmp) + return ; + while (tmp[i]) + { + *str = ft_realloc_imput(*str, tmp[i], *pos + i); + ++i; + } + if (*pos) + { + --(*pos); + ft_get_beggin_with_curs(*str, pos); + } + ft_current_str(*str, *pos); + ft_get_next_str(*str, pos); + ft_putnc('\b', *pos - tmp_pos); + (*pos) = tmp_pos; +} + +void ft_x(void) +{ + int i; + char **tmp; + char **str; + size_t *pos; + + tmp = &data_singleton()->line.copy_tmp; + str = &data_singleton()->line.input; + pos = &data_singleton()->line.pos; + if (!*str) + return ; if (*tmp) ft_strdel(tmp); *tmp = ft_strdupi_space(&(*str)[(*pos)]); @@ -77,20 +91,16 @@ static void ft_x(char **tmp, size_t *pos, char **str) ft_puttermcaps("cd"); } -void ft_cxv(int ret, size_t *pos, char **str) +void ft_c(void) { - static char *tmp = NULL; + char *tmp; + char **str; + size_t *pos; - if (!*str) - return ; - if (ret == TOUCHE_OPT_X) - ft_x(&tmp, pos, str); - else if (ret == TOUCHE_OPT_C) - { - if (tmp) - ft_strdel(&tmp); - tmp = ft_strdupi_space((*str) + (*pos)); - } - else if (ret == TOUCHE_OPT_V) - ft_v(tmp, pos, str); + tmp = data_singleton()->line.copy_tmp; + str = &data_singleton()->line.input; + pos = &data_singleton()->line.pos; + if (tmp) + ft_strdel(&tmp); + tmp = ft_strdupi_space((*str) + (*pos)); } diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index 14d09512..2ecde44c 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,114 +6,64 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/02/02 11:34:22 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 18:27:07 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -static int ft_lecture_3(int ret, char **str, size_t *i) +t_key g_key[] = { - if (ret == 127 && (*i) > 0) - ft_suppr(str, i); - else if (ret == TOUCHE_DELETE && (*str) && (*i) < ft_strlen((*str))) - ft_del(str, i); - else if (ret == TOUCHE_HOME) - ft_home(*str, i); - else if (ret == TOUCHE_END) - ft_end(*str, i); - else - return (0); - return (1); -} + {FLECHE_HAUT , &ft_history_up }, + {FLECHE_BAS , &ft_history_down }, + {FLECHE_GAUCHE , &ft_move_left }, + {FLECHE_DROITE , &ft_move_right }, + {TOUCHE_DELETE , &ft_del }, + {TOUCHE_CTRL_C , &ft_control_c }, + {TOUCHE_CTRL_D , &ft_control_d }, + {TOUCHE_CTRL_R , &ft_history_parsing }, + {TOUCHE_SUPPR , &ft_suppr }, + {TOUCHE_HOME , &ft_home }, + {TOUCHE_END , &ft_end }, + {TOUCHE_OPT_UP , &ft_up }, + {TOUCHE_OPT_DOWN , &ft_down }, + {TOUCHE_OPT_LEFT , &ft_found_prev_word }, + {TOUCHE_OPT_RIGHT , &ft_found_next_word }, + {TOUCHE_OPT_C , &ft_c }, + {TOUCHE_OPT_V , &ft_v }, + {TOUCHE_OPT_X , &ft_x }, + {TOUCHE_F5 , &ft_printall }, + {TOUCHE_F6 , &ft_buff_f6 }, + {0 , 0 }, +}; -static int ft_lecture_2(int ret, char **str, size_t *i) +char *ft_read_stdin(void) { - if (ret == TOUCHE_F5) - ft_printall(*str, i); - else if (ret == TOUCHE_OPT_LEFT || ret == TOUCHE_OPT_RIGHT) - ft_move_to_word(ret, i, *str); - else if (ret == TOUCHE_OPT_X || ret == TOUCHE_OPT_C - || ret == TOUCHE_OPT_V) - ft_cxv(ret, i, str); - else if (ret == FLECHE_DROITE) - ft_move_right(i, *str); - else if (ret == FLECHE_GAUCHE) - ft_move_left(i, *str); - else if (ret == TOUCHE_OPT_UP || ret == TOUCHE_OPT_DOWN) - ft_move_to_line(ret, i, *str); - else if (ft_isprint(ret)) - ft_print(str, ret, i); - else - return (0); - return (1); -} + int ret; + int j; -char *ft_lecture(t_list_history *head) -{ - char *str; - int ret; - size_t i; - - str = NULL; - if (data_singleton()->line.opt & HIST) - str = data_singleton()->line.input; - i = 0; - if (str) + if (data_singleton()->line.input) { - ft_current_str(str, i); - ft_get_next_str(str, &i); - if (str[i]) - ++i; + ft_current_str(data_singleton()->line.input, data_singleton()->line.pos); + ft_get_next_str(data_singleton()->line.input, &data_singleton()->line.pos); + if (data_singleton()->line.input[data_singleton()->line.pos]) + ++(data_singleton()->line.pos); } while (42) { ret = 0; + j = 0; read(0, &ret, sizeof(int)); - if (ret == TOUCHE_F6 && read(0, &ret, sizeof(int)) > 0) - continue ; - if (ret == TOUCHE_CTRL_R) - { - ft_surch_in_history(&str, &i); - continue ; - } -/* -** if (ret == TOUCHE_TAB) -** ret = ft_completion(&str, &i); -*/ - if (ret == TOUCHE_CTRL_D) - { - if (!str || str[0] == '\0') - exit(0); - else if (i < ft_strlen(str)) - ft_del(&str, &i); - else - ft_puttermcaps("bl"); - } - if (ret == TOUCHE_CTRL_C) - { - ft_putchar('\n'); - ft_prompt(); - ft_strdel(&str); - i = 0; - } - if (ft_lecture_2(ret, &str, &i)) - continue ; - else if (ret == FLECHE_BAS || ret == FLECHE_HAUT) - { - if (!head) - continue ; - ft_history(&str, ret, &head, &i); - if (str) - i = ft_strlen_next(str, i); - else - i = 0; - } - else if (ft_lecture_3(ret, &str, &i)) - continue ; + while (g_key[j].value && g_key[j].value != ret) + ++j; + if (g_key[j].value) + g_key[j].f(); + else if (ft_isprint(ret)) + ft_print(ret); else if (ret == 10) - return (str); + return (data_singleton()->line.input); else if (ft_isascii(ret) == 0) - ft_read_it(ret, &i, &str); + ft_read_it(ret, &data_singleton()->line.pos, + &data_singleton()->line.input); } } diff --git a/42sh/src/line-editing/get_touch_toolz.c b/42sh/src/line-editing/get_touch_toolz.c index ae54f960..e5937fac 100644 --- a/42sh/src/line-editing/get_touch_toolz.c +++ b/42sh/src/line-editing/get_touch_toolz.c @@ -6,61 +6,108 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:42:54 by gwojda #+# #+# */ -/* Updated: 2017/02/02 11:41:52 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 15:22:35 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -void ft_history_2(char **str, int ret, t_list_history **head - , size_t *pos) +void ft_found_prev_word(void) { - if (*str) + int i; + char *str; + size_t *pos; + + str = data_singleton()->line.input; + pos = &data_singleton()->line.pos; + i = 0; + if (!*pos) + return ; + if (str[*pos - 1] != '\n' && !(str[*pos] == '\n' || str[*pos] == ' ')) + { + ft_puttermcaps("le"); + --(*pos); + } + while ((int)*pos - i - 1 > 0 && str[*pos - i - 1] == ' ') + { + ft_puttermcaps("le"); + ++i; + } + (*pos) = (i && str[*pos - i] == '\n') ? *pos - i + 1 : *pos - i; + i = 0; + if (*pos >= 1 && str[*pos - 1] == '\n') + { + ft_puttermcaps("cd"); + if (*pos >= 2) + (*pos) -= 2; + ft_get_beggin(str, pos); + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + ++(*pos); + } + else + { + if (*pos && !(str[*pos] == '\n' || str[*pos] == ' ')) + { + ft_puttermcaps("le"); + --(*pos); + } + while (*pos - i && (str[*pos - i] == '\n' || str[*pos - i] == ' ')) + { + ft_puttermcaps("le"); + ++i; + } + while (*pos - i && str[*pos - i] != '\n' && str[*pos - i] != ' ') + { + ft_puttermcaps("le"); + ++i; + } + if (str[*pos - i] == '\n' || str[*pos - i] == ' ') + { + ft_puttermcaps("nd"); + ++(*pos); + } + (*pos) -= i; + } +} + +void ft_found_next_word(void) +{ + int i; + char *str; + size_t *pos; + + str = data_singleton()->line.input; + pos = &data_singleton()->line.pos; + i = 0; + while (str[i + *pos] && str[i + *pos] == ' ') + { + ft_putchar(str[i + *pos]); + ++i; + } + if (str[*pos] == '\n') { if (*pos) { --(*pos); - ft_get_beggin_with_curs(*str, pos); + ft_get_beggin_with_curs(str, pos); } ft_puttermcaps("cd"); - *pos = 0; - ft_strdel(str); + ft_get_next_str(str, pos); + (*pos) += (*pos) ? 2 : 1; + ft_current_str(str, *pos); + ft_get_next_str(str, pos); + if (!str[*pos]) + --(*pos); + ft_get_beggin_with_curs(str, pos); } - if (ret == FLECHE_BAS) + else { - if ((*head)->next) - (*head) = (*head)->next; - if (!(*head)->str) - *str = NULL; - else - *str = ft_strdup((*head)->str); - if (*str) - ft_current_str(*str, *pos); + while (str[i + *pos] && str[i + *pos] != '\n' && str[i + *pos] != ' ') + { + ft_putchar(str[i + *pos]); + ++i; + } + *pos += i; } } - -void ft_history(char **str, int ret, t_list_history **head, size_t *pos) -{ - ft_history_2(str, ret, head, pos); - if (ret == FLECHE_HAUT) - { - if ((*head)->prev) - (*head) = (*head)->prev; - if (!(*head)->str) - *str = NULL; - else - *str = ft_strdup((*head)->str); - if (*str) - ft_current_str(*str, *pos); - } -} - -void ft_move_to_word(int ret, size_t *pos, char *str) -{ - if (!str) - return ; - if (ret == TOUCHE_OPT_LEFT) - ft_found_prev_word(str, pos); - else if (ret == TOUCHE_OPT_RIGHT) - ft_found_next_word(str, pos); -} diff --git a/42sh/src/line-editing/get_touch_toolz_2.c b/42sh/src/line-editing/get_touch_toolz_2.c index d7c6b2e4..05805aa2 100644 --- a/42sh/src/line-editing/get_touch_toolz_2.c +++ b/42sh/src/line-editing/get_touch_toolz_2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:43:58 by gwojda #+# #+# */ -/* Updated: 2017/02/02 11:34:34 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 17:54:27 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,8 +18,13 @@ int ft_put(int nb) return (1); } -void ft_end(char *str, size_t *pos) +void ft_end(void) { + char *str; + size_t *pos; + + str = data_singleton()->line.input; + pos = &data_singleton()->line.pos; if (!str) return ; if (*pos) @@ -35,8 +40,13 @@ void ft_end(char *str, size_t *pos) ft_get_next_str(str, pos); } -void ft_home(char *str, size_t *pos) +void ft_home(void) { + char *str; + size_t *pos; + + str = data_singleton()->line.input; + pos = &data_singleton()->line.pos; if (!str) return ; if (*pos) @@ -56,10 +66,14 @@ void ft_home(char *str, size_t *pos) ft_get_beggin_with_curs(str, pos); } -void ft_move_right(size_t *pos, char *str) +void ft_move_right(void) { size_t tmp; + char *str; + size_t *pos; + str = data_singleton()->line.input; + pos = &data_singleton()->line.pos; if (ft_strlen(str) <= *pos) return ; if (str[*pos] == '\n') @@ -84,8 +98,13 @@ void ft_move_right(size_t *pos, char *str) } } -void ft_move_left(size_t *pos, char *str) +void ft_move_left(void) { + char *str; + size_t *pos; + + str = data_singleton()->line.input; + pos = &data_singleton()->line.pos; if (!*pos) return ; if (str[*pos - 1] == '\n') @@ -96,7 +115,6 @@ void ft_move_left(size_t *pos, char *str) --(*pos); return ; } - printf("here\n\n"); ft_puttermcaps("cd"); (*pos) -= 2; ft_get_beggin(str, pos); diff --git a/42sh/src/line-editing/heredoc.c b/42sh/src/line-editing/heredoc.c index 649524d0..7637dcbd 100644 --- a/42sh/src/line-editing/heredoc.c +++ b/42sh/src/line-editing/heredoc.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/24 15:52:34 by gwojda #+# #+# */ -/* Updated: 2017/01/25 16:03:11 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 16:09:42 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -41,7 +41,7 @@ static void ft_check_heredoc_2(char **str, char *end) *str = ft_strjoin(*str, "\n"); free(tmp); tmp = *str; - tmp2 = ft_lecture(data_singleton()->line.list_beg); + tmp2 = ft_read_stdin(); if (!ft_strcmp(end, tmp2)) boolean = 1; *str = ft_strjoin(tmp, tmp2); diff --git a/42sh/src/line-editing/history.c b/42sh/src/line-editing/history.c new file mode 100644 index 00000000..295af73e --- /dev/null +++ b/42sh/src/line-editing/history.c @@ -0,0 +1,87 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* history.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/02 15:22:19 by gwojda #+# #+# */ +/* Updated: 2017/02/02 18:04:16 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_history_down(void) +{ + t_list_history *head; + char **str; + size_t *pos; + + str = &data_singleton()->line.input; + pos = &data_singleton()->line.pos; + head = data_singleton()->line.list_cur; + if (!head || !*str) + return ; + if (*str) + { + if (*pos) + { + --(*pos); + ft_get_beggin_with_curs(*str, pos); + } + ft_puttermcaps("cd"); + *pos = 0; + ft_strdel(str); + } + if (head->next) + head = head->next; + if (!head->str) + *str = NULL; + else + *str = ft_strdup(head->str); + if (*str) + ft_current_str(*str, *pos); + if (*str) + *pos = ft_strlen_next(*str, *pos); + else + *pos = 0; + data_singleton()->line.list_cur = head; +} + +void ft_history_up(void) +{ + t_list_history *head; + char **str; + size_t *pos; + + str = &data_singleton()->line.input; + pos = &data_singleton()->line.pos; + head = data_singleton()->line.list_cur; + if (!head) + return ; + if (*str) + { + if (*pos) + { + --(*pos); + ft_get_beggin_with_curs(*str, pos); + } + ft_puttermcaps("cd"); + *pos = 0; + ft_strdel(str); + } + if (head->prev) + head = head->prev; + if (!head->str) + *str = NULL; + else + *str = ft_strdup(head->str); + if (*str) + ft_current_str(*str, *pos); + if (*str) + *pos = ft_strlen_next(*str, *pos); + else + *pos = 0; + data_singleton()->line.list_cur = head; +} diff --git a/42sh/src/line-editing/history_parsing.c b/42sh/src/line-editing/history_parsing.c index ec518952..bd3f67d4 100644 --- a/42sh/src/line-editing/history_parsing.c +++ b/42sh/src/line-editing/history_parsing.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/25 11:39:47 by gwojda #+# #+# */ -/* Updated: 2017/01/25 20:05:40 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 16:20:26 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -56,12 +56,10 @@ static void ft_history_parsing_2(void) { data_singleton()->line.opt = data_singleton()->line.opt | HIST; ft_prompt(); - data_singleton()->line.input = ft_lecture( - data_singleton()->line.list_beg); + data_singleton()->line.input = ft_read_stdin(); ft_putchar('\n'); data_singleton()->line.opt = data_singleton()->line.opt | ~HIST; - ft_check_quotes(&data_singleton()->line.input, - data_singleton()->line.list_beg); + ft_check_quotes(&data_singleton()->line.input); ft_check_heredoc(&data_singleton()->line.input); ft_history_parsing(); } diff --git a/42sh/src/line-editing/list_toolz.c b/42sh/src/line-editing/list_toolz.c index 86df0fe5..51bde359 100644 --- a/42sh/src/line-editing/list_toolz.c +++ b/42sh/src/line-editing/list_toolz.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/17 11:37:47 by gwojda #+# #+# */ -/* Updated: 2017/01/24 15:19:04 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 16:08:01 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -49,12 +49,3 @@ void ft_push_back_history(t_list_history **head, t_list_history *new) new->next = (*head); (*head)->prev = new; } - -void ft_get_head(t_list_history **head) -{ - if (head && *head) - { - while ((*head)->next && (*head)->next->str) - (*head) = (*head)->next; - } -} diff --git a/42sh/src/line-editing/move_to_line.c b/42sh/src/line-editing/move_to_line.c index 87b3a5d1..c8161cfb 100644 --- a/42sh/src/line-editing/move_to_line.c +++ b/42sh/src/line-editing/move_to_line.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:21:40 by gwojda #+# #+# */ -/* Updated: 2017/01/25 16:40:09 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 15:07:08 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,11 +38,17 @@ static void ft_up_2(size_t *pos, char *str) (*pos) -= i; } -static void ft_up(size_t *pos, char *str) +void ft_up(void) { int i; + char *str; + size_t *pos; i = 0; + str = data_singleton()->line.input; + pos = &data_singleton()->line.pos; + if (!str) + return ; if (str[*pos - 1] == '\n') { ft_puttermcaps("cd"); @@ -73,12 +79,18 @@ static void ft_down_2(size_t *pos, char *str) ft_get_beggin_with_curs(str, pos); } -static void ft_down(size_t *pos, char *str) +void ft_down(void) { int i; int len; + char *str; + size_t *pos; i = 0; + str = data_singleton()->line.input; + pos = &data_singleton()->line.pos; + if (!str) + return ; if (str[*pos] == '\n') ft_down_2(pos, str); else @@ -92,13 +104,3 @@ static void ft_down(size_t *pos, char *str) *pos += i; } } - -void ft_move_to_line(int ret, size_t *pos, char *str) -{ - if (!str) - return ; - if (ret == TOUCHE_OPT_UP) - ft_up(pos, str); - else if (ret == TOUCHE_OPT_DOWN) - ft_down(pos, str); -} diff --git a/42sh/src/line-editing/print_and_del.c b/42sh/src/line-editing/print_and_del.c index e4100b9b..ac352ae1 100644 --- a/42sh/src/line-editing/print_and_del.c +++ b/42sh/src/line-editing/print_and_del.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 16:02:43 by gwojda #+# #+# */ -/* Updated: 2017/02/02 11:12:29 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 15:10:50 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,11 +23,15 @@ int ft_found_next_char(char *str, size_t i) return (0); } -void ft_print(char **str, int ret, size_t *i) +void ft_print(int ret) { - int j; + int j; + char **str; + size_t *i; j = 0; + str = &data_singleton()->line.input; + i = &data_singleton()->line.pos; *str = ft_realloc_imput(*str, ret, *i); while (*((*str) + *i + j) && *((*str) + *i + j) != '\n') { @@ -52,12 +56,18 @@ void ft_suppr_2(char **str, size_t *i, size_t tmp) ft_strdel(str); } -void ft_suppr(char **str, size_t *i) +void ft_suppr(void) { size_t tmp; char boolean; + char **str; + size_t *i; + str = &data_singleton()->line.input; + i = &data_singleton()->line.pos; boolean = 0; + if (*i <= 0) + return ; if ((*str)[*i - 1] != '\n') boolean = 1; --(*i); @@ -75,12 +85,18 @@ void ft_suppr(char **str, size_t *i) ft_suppr_2(str, i, tmp); } -void ft_del(char **str, size_t *i) +void ft_del(void) { size_t tmp; + char **str; + size_t *i; + str = &data_singleton()->line.input; + i = &data_singleton()->line.pos; tmp = *i; *str = ft_remove_imput((*str), tmp); + if (!((*str) && (*i) < ft_strlen((*str)))) + return ; if (*i) { --(*i); diff --git a/42sh/src/line-editing/quotes_gest.c b/42sh/src/line-editing/quotes_gest.c index caf7ba9d..c4be15f9 100644 --- a/42sh/src/line-editing/quotes_gest.c +++ b/42sh/src/line-editing/quotes_gest.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/05 12:20:19 by gwojda #+# #+# */ -/* Updated: 2017/01/25 16:50:14 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 17:53:41 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -51,13 +51,15 @@ int ft_check_quotes_num(char *s) return (0); } -void ft_check_quotes(char **s, t_list_history *head) +void ft_check_quotes(char **s) { - int ret; - char *tmp; - char *tmp2; - int prompt_size_mem; + int ret; + char *tmp; + char *tmp2; + int prompt_size_mem; + t_list_history *head; + head = data_singleton()->line.list_beg; if (!*s) return ; while ((ret = (ft_check_quotes_num(*s)))) @@ -71,12 +73,15 @@ void ft_check_quotes(char **s, t_list_history *head) ft_strdel(&tmp); tmp = *s; prompt_size_mem = data_singleton()->line.prompt_size; - tmp2 = ft_lecture(head); + data_singleton()->line.input = NULL; + data_singleton()->line.pos = 0; + tmp2 = ft_read_stdin(); data_singleton()->line.prompt_size = prompt_size_mem; ft_putchar('\n'); if (!tmp2) continue ; *s = ft_strjoin(tmp, tmp2); + data_singleton()->line.input = *s; ft_strdel(&tmp); ft_strdel(&tmp2); } diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 79e7f552..f48668b4 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/02/02 14:38:30 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 18:03:23 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,6 +15,8 @@ void ft_init_line(void) { data_singleton()->line.input = NULL; + data_singleton()->line.copy_tmp = NULL; + data_singleton()->line.pos = 0; data_singleton()->line.prompt_size = 0; data_singleton()->line.list_size = 0; data_singleton()->line.list_end = NULL; @@ -76,11 +78,12 @@ int ft_readline(void) return (-1); if (data_singleton()->line.input) ft_strdel(&data_singleton()->line.input); + data_singleton()->line.list_cur = data_singleton()->line.list_beg; + data_singleton()->line.pos = 0; ft_prompt(); - data_singleton()->line.input = ft_lecture(data_singleton()->line.list_beg); + data_singleton()->line.input = ft_read_stdin(); ft_putchar('\n'); - ft_check_quotes(&data_singleton()->line.input, - data_singleton()->line.list_beg); + ft_check_quotes(&data_singleton()->line.input); ft_check_heredoc(&data_singleton()->line.input); ft_check_backslash(&data_singleton()->line.input); ft_history_parsing(); diff --git a/42sh/src/line-editing/surch_in_history.c b/42sh/src/line-editing/surch_in_history.c index 6630548b..424dc5d2 100644 --- a/42sh/src/line-editing/surch_in_history.c +++ b/42sh/src/line-editing/surch_in_history.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/26 10:43:16 by gwojda #+# #+# */ -/* Updated: 2017/01/26 14:01:53 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 15:16:42 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -32,12 +32,16 @@ void ft_surch_and_realloc(char **str, char **str_srch, int ret, size_t *srch_pos *str = ft_strget_history(*str_srch); } -void ft_surch_in_history(char **str, size_t *pos) +void ft_surch_in_history(void) { char *str_srch; int ret; size_t srch_pos; + char **str; + size_t *pos; + str = &data_singleton()->line.input; + pos = &data_singleton()->line.pos; srch_pos = 0; str_srch = NULL; if (*str) diff --git a/42sh/src/line-editing/tool_line_2.c b/42sh/src/line-editing/tool_line_2.c index 4ef5fe9a..c5c9dd8e 100644 --- a/42sh/src/line-editing/tool_line_2.c +++ b/42sh/src/line-editing/tool_line_2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 19:07:52 by gwojda #+# #+# */ -/* Updated: 2017/02/01 15:24:50 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 14:16:24 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,11 +24,15 @@ static void ft_clear_window() execve("/usr/bin/clear", tab_str, data_singleton()->env); } -void ft_printall(char *str, size_t *pos) +void ft_printall(void) { size_t pos_tmp; int ret; + char *str; + size_t *pos; + str = data_singleton()->line.input; + pos = &data_singleton()->line.pos; ret = 0; if (read(0, &ret, sizeof(int)) == -1 || ret != 126 || !str) return ; diff --git a/42sh/src/line-editing/toolz.c b/42sh/src/line-editing/toolz.c index c71ea256..1051442e 100644 --- a/42sh/src/line-editing/toolz.c +++ b/42sh/src/line-editing/toolz.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/16 17:06:30 by gwojda #+# #+# */ -/* Updated: 2017/01/20 18:54:46 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 16:22:47 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,35 +24,6 @@ void ft_putnc(char c, int n) } } -void ft_free_tabstr(char ***env) -{ - int i; - - i = 0; - while ((*env)[i]) - { - free((*env)[i]); - ++i; - } - free(*env); - env = NULL; -} - -int ft_is_whitespaces(char *str) -{ - int i; - - i = 0; - while (str[i]) - { - if (str[i] != '\t' || str[i] != ' ') - return (1); - ++i; - } - return (0); -} - - char *ft_strndup(char const *s, int n) { int i; diff --git a/42sh/src/line-editing/toolz2.c b/42sh/src/line-editing/toolz2.c index 95c99d85..ce1c62f6 100644 --- a/42sh/src/line-editing/toolz2.c +++ b/42sh/src/line-editing/toolz2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/07 11:00:28 by gwojda #+# #+# */ -/* Updated: 2017/02/02 13:31:57 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 16:04:55 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/toolz_parseur.c b/42sh/src/line-editing/toolz_parseur.c index adc6b90b..a0781e12 100644 --- a/42sh/src/line-editing/toolz_parseur.c +++ b/42sh/src/line-editing/toolz_parseur.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/16 16:14:46 by gwojda #+# #+# */ -/* Updated: 2017/02/02 11:46:55 by gwojda ### ########.fr */ +/* Updated: 2017/02/02 14:29:34 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -49,95 +49,3 @@ char *ft_remove_imput(char *str, size_t pos) free(new_str); return (new_str2); } - -void ft_found_prev_word(char *str, size_t *pos) -{ - int i; - - i = 0; - if (!*pos) - return ; - if (str[*pos - 1] != '\n' && !(str[*pos] == '\n' || str[*pos] == ' ')) - { - ft_puttermcaps("le"); - --(*pos); - } - while ((int)*pos - i - 1 > 0 && str[*pos - i - 1] == ' ') - { - ft_puttermcaps("le"); - ++i; - } - (*pos) = (i && str[*pos - i] == '\n') ? *pos - i + 1 : *pos - i; - i = 0; - if (*pos >= 1 && str[*pos - 1] == '\n') - { - ft_puttermcaps("cd"); - if (*pos >= 2) - (*pos) -= 2; - ft_get_beggin(str, pos); - ft_current_str(str, *pos); - ft_get_next_str(str, pos); - ++(*pos); - } - else - { - if (*pos && !(str[*pos] == '\n' || str[*pos] == ' ')) - { - ft_puttermcaps("le"); - --(*pos); - } - while (*pos - i && (str[*pos - i] == '\n' || str[*pos - i] == ' ')) - { - ft_puttermcaps("le"); - ++i; - } - while (*pos - i && str[*pos - i] != '\n' && str[*pos - i] != ' ') - { - ft_puttermcaps("le"); - ++i; - } - if (str[*pos - i] == '\n' || str[*pos - i] == ' ') - { - ft_puttermcaps("nd"); - ++(*pos); - } - (*pos) -= i; - } -} - -void ft_found_next_word(char *str, size_t *pos) -{ - int i; - - i = 0; - while (str[i + *pos] && str[i + *pos] == ' ') - { - ft_putchar(str[i + *pos]); - ++i; - } - if (str[*pos] == '\n') - { - if (*pos) - { - --(*pos); - ft_get_beggin_with_curs(str, pos); - } - ft_puttermcaps("cd"); - ft_get_next_str(str, pos); - (*pos) += (*pos) ? 2 : 1; - ft_current_str(str, *pos); - ft_get_next_str(str, pos); - if (!str[*pos]) - --(*pos); - ft_get_beggin_with_curs(str, pos); - } - else - { - while (str[i + *pos] && str[i + *pos] != '\n' && str[i + *pos] != ' ') - { - ft_putchar(str[i + *pos]); - ++i; - } - *pos += i; - } -}

%f;y-kDuqC*G#o|^Z#0PhO5nw~$_^no1bohnJz(rKVbpGw>LT+O4MM7;pLBay6AS&iY=Dnrbu7 z`Q8dOwa7RR?-8=BR8!qT=U{pgmG%@K=!(7!c4!r<=impDb?$s4n*c<%`IXQ&!;G?< zzMU3XLU~j_Aj!PYZkWelYUvRBpM(ULg}wpwBFw;i?L$5c>)&R-=TSu=fmUn~yeOmH zxDEPUh_Q%^Qh~*Z8;iLp2VjxZSfZw)#ss_#SZ8A?mPqJ-fgAb&RU3`j;iXV5p+=(z zdJ&q1nn`#Uyv6ixAz=yLz4T_0qCT_|_I<#@^FnvS{1nXKcI^vLp|DQw*tbxn>mo}0 z2#i41yGp1%XM8T{PmkzDrTF;}vi!%s~ zGsFF<#Lp=E#UQ-Ga7-K|Viv^tdTwq-y(6(@u&MP&=i2}A)W+etZ(Gf+PhWhq_2d`Z zPCxcy_;;s{H?KYQrC&b(^L=+-($C!E%sMjp(u&|{V%xEU|L#8USR@hMb?nFszxwcp zf8CP!*W;see_!{^zFQlz?N;)ceJxldZqqf8&p?JC%%8_0--R57oP@jsc@J_K636=A z4!IMOhI|fEfP58l81e$-Wyl!_GXZ~s8;tWoVU`l&%a#x`j}ViQGe_aZC&YY^t(d)p zcz{TVp%Y?a$c{`NLQFB)>N(kwr;CJ`L~O-LpdCK6&w@Xm?C z1BMXSO}66sN{HvHr03=*#B7kQct{cA*(D*K*MyiClAfm(As%27Vy+Ql{z-^QMTmJO zN93_ai07Q7XR;Dv5=)3*1VRTP65?S@D2Yna|GyjvVSjVaqQ})DKV77mQT)VE9^NdJ zJqaZd4TYbSi`=sVA>AC zcJGwHk?wihk&V6UoQHAG7SG2miSF}00qlJbwL*Jma!b}cm z`hdPczo-TDQLX-`T9ZDY1y*a30WGd~X^oy&KcL0*PiTwb&Bx=H@df-DkO6J>YE54a zs(RS?i|ePgX6TLqE#^k0rjoEj+293x& z#-R~=$A0Pamk!=zM-m!cI(WUJUgc@MOX_y1=SdC4cKQcWbDzWk_+=T4Dpzc%@we9a zY+K!)hi|pd|4~%?!W_np-F6Du-GcX7vru$$!+XtX|LSiRfnO3%23PpPNIvTn3tsz5 S322sAa>;}azL}*h#Qy;NyBH1t literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_cmp_id.d b/42sh/objs/job-control/job_cmp_id.d new file mode 100644 index 00000000..a5e9d84a --- /dev/null +++ b/42sh/objs/job-control/job_cmp_id.d @@ -0,0 +1,7 @@ +objs/job-control/job_cmp_id.o: src/job-control/job_cmp_id.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/job_cmp_id.o b/42sh/objs/job-control/job_cmp_id.o new file mode 100644 index 0000000000000000000000000000000000000000..3a3d2a516c5a0cde68f79c5e4bea0396fc035401 GIT binary patch literal 3768 zcmb7GU2GIp6uvXNGdtVa?k;UXfPG2X+y&$k@tEHk< z&W|#@3*Prx8Q(23tj^2E7w}aExBDNsIlg0(Z>i+7X2|EqSIyhae7`pFJvKu=Z+G>g z?|X&J-!8f9hi1r!qVp-6l_a#jSGuUVbKNs@6^gj&E=ZHgWgiLK*BFyut_)NxI`o_QQ8-Mg{ z-+28@-;?#TPwME;T&q9yeh=#*Gca)f-I=js&2=i}Om}uwc2#DDT|yDB>|O;UyQV99 z{WZd^*}3hN!IgHU?A0nIjxBq%YB`0hEpl62%+C$)tZXmjb8EWX5zDUbwz|ZmmvG7+ zP2pMWUB7nhqjaCX=x>y@^ zDz30C$B)6YsX${}6(6uIAAwy8ZCltjJQ|$#NWSK;&I%%vTP+p~!tVp708nNrS0~%G zNHVR@PtH=>@a@$sz&2%lOC))dd9%4Z(cgY6DlDQ2RYLvkIGC4;NOGNNB8jw=AfnHK z3g+PcY*!*l(#+i7$oCF8tUTN(~H9n6MzKU@klI0M2DOn8*U3cfpOUcQecCAE5K!(PgqxC5wo^sagS&S4HhWmreZDo1^P;2Z zw5W#bQ0T<#9L$S747E*NXb>Wcx>)TL#(s>B)5@rwQR6U1KhwHO?KF%JF^X`Tm#Cd- zV>w0+txmObuFyZn!*PhVNIwPjG$h)mllVnQ%chz>ZxR z`x0tytj+iadIR8C2P66s)}6FwGlnG?6==;t3?i;?!uT9Kj79oG81e*&JQz*W!_dgx zl10}SHx=_n48DNG6AE}ua{6W~OvAi4G?OsX=GM?m!JKPaFu#Yy(=apUUJR4i-1sb* z-R8m2Y=gO8BpAs$NIa&r{>Eo9_;!c{zc_=B8%mU0XDF$iR55?XIG@B7jeCZW@9XIU z;2&w!;Y|@>I$gxk>wn+Ov>AjD&qCOy&ZXTv_dMGF@ri?@4bnj}wBWZ@ht}}B$aD@c zMn!J=w?KH>HMB z_3HF9149cx+VR25FC991?%7|C&;P3BxkujkdfDl%NA~}bPK+J-0$isdDqeUtWCi4A z$UTre#DhEm;VemW~zi}6Jm8qhy_iEbuJ;6F(FpAr2nt1iV5A%4tR%6 z9%m$(*1|+n_G}W$uC$U)#Ec1eag_y-jc1u==g)`7q3B7bA6IX04ax#14}4Ye89Wu` zuVgEFg=;{Rrb`-ku3f70?#k8OT25LyXLa|D(-C)flM8^HC4U?z?{M7oSjD%4zkuur zcRz5%7^Tw~M=|#Aap1Tve6GN~8Ui+U%^> pc9*7RRTXc&7S9omo|Af+)QhBs@}GYvH8&~6E^Pb-k^eA+{sruW4f+58 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_format.d b/42sh/objs/job-control/job_format.d new file mode 100644 index 00000000..ef37f587 --- /dev/null +++ b/42sh/objs/job-control/job_format.d @@ -0,0 +1,7 @@ +objs/job-control/job_format.o: src/job-control/job_format.c \ + includes/job_control.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/exec.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/job_format.o b/42sh/objs/job-control/job_format.o new file mode 100644 index 0000000000000000000000000000000000000000..e7802527be6c0713c5552b73f2163ff599ec5867 GIT binary patch literal 3992 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_getprocess.d b/42sh/objs/job-control/job_getprocess.d new file mode 100644 index 00000000..d5cffe0c --- /dev/null +++ b/42sh/objs/job-control/job_getprocess.d @@ -0,0 +1,7 @@ +objs/job-control/job_getprocess.o: src/job-control/job_getprocess.c \ + includes/job_control.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/exec.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/job_getprocess.o b/42sh/objs/job-control/job_getprocess.o new file mode 100644 index 0000000000000000000000000000000000000000..63c4d7657800ba7932ac83846768006a7d22c8b3 GIT binary patch literal 4356 zcma)94Qw1o6`sBG?yc|NKMiSJr!92jnIR@pTo&ODett*gy68E*W1vTPft6xAXl&eNPphI3Dq>HGN6G z`K&ENY>&_9Q=elUeA!y9oUGveP6pe zk9E3MqjE>7GHY2=yZwPucY0n*fv3U8lys4Q>YKOm<%(9mj<4%Yu&mbeAf@;w6yKwY zPq_liFZwpMUvK47MKZRp_lV+~Qo+2c)_dX|;^V&Hkq{B@fMf6*AtzNmJqbO*$B^3~ z&5f_1sFG}cbXj{kv-sD{!aqkA?|SV~ahAg~`U?BS$+MXy3eDxr!d=TEadMhZmSibp z?%n@dW@&mkv(%kgoPH4|%Z)E0`9O)8H*muAJiu4`xi9!05^4 za}TVpu4bN^(w%CtB`YR^{Sn7oMBs}ryX#l3wKoKX0z!XqfXJXYsain z(K=GNR=MQ3!toU8auru7Z8@dmIl<0y`TetXB&G!6m#dXRs!?%Dg-UKVRl=+ae}8JF zSxWN+-^G~iqjRCc3YM?@A(4|V6Ov#4J;SD!Cc z9bsFgd^uYXu1y7U+p0>ywj=_-?EAK`ZH!op*)C@5a&@d#gk!4-CUYcpR491eLkUJtfuFzYK`XWMwUB+I|$sO0awCmzMdN7_e`r=($H_|yU z46s|92nXZuk9;7qExNbogHa^8E&>YL+k@Yl9WAb&5JZg)P~JRT3wpF*JQ5*^5N1pS z<9mDPjG@vxd0z-`0d{jFg2$1yu}Jdh+E|@qV{4>%7S}YsD6ttYx)BqT;BH=quOwwgT07;or$MiYj|Rfh%{%@y#-6nb}HAZn&y zIrQGc*djwPGiF4K?u79-h#A#D5#8gvF}P;*!@e7bn~Wax-2~i?(NDp>05OwrQ_;`C z+=z`eyWoyRPy22++zAom7Tm{V4%Z%1l|Isgf??Oo`om(>RK$t{1ZI6 z9|Ks4FusgoKLONvP522Y9Y4RBkM7FAls^^JC??rF%=^9n*^i6gVzSB%gdX;Ww9F;c zJ{L#$YBT@k#_&h3R|&`Rr%MwCw2tc|iwIcIMuPY#wK_^ZmfEZc5~`=wI<3*oPw zIQ00*|GfUiV*k@W>fQa=`RU}T@0x#n;Gy5VvAv_1Oh%7B-UwWm{GHv~_w;9;dhiD? zZvEF!Pwaeial@K_?m!%L0& zfB6_ft}$mZ+H30YB}GePlCo*XZx`B~Ni7)-nLG#>@70i>zfPLfRW)CTUGd~Sfm>o; zIictdcZC6c6Y1NL{Kt26fSZgOM@@4@YH!-)q5y zria6i=~o-B9?I)s<5oRs?9!HuDoddjGa3Ke!OL9Cp1=YQyd!08@kccMq25uN^epcisOv)O2ZZjcB*wj zH@RYSo6keA`MKcDr|E(za2Is5*w9L$oO7!cVdZg=#O*DQKQ7o$?;2{^^EK|R5dQ@_ C3!E4L literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_getrank.d b/42sh/objs/job-control/job_getrank.d new file mode 100644 index 00000000..c3aff64a --- /dev/null +++ b/42sh/objs/job-control/job_getrank.d @@ -0,0 +1,7 @@ +objs/job-control/job_getrank.o: src/job-control/job_getrank.c \ + includes/job_control.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/exec.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/job_getrank.o b/42sh/objs/job-control/job_getrank.o new file mode 100644 index 0000000000000000000000000000000000000000..5de045244c0b57ea44ae4b0d29e8845d01e5c689 GIT binary patch literal 4396 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_is_completed.d b/42sh/objs/job-control/job_is_completed.d new file mode 100644 index 00000000..48c70771 --- /dev/null +++ b/42sh/objs/job-control/job_is_completed.d @@ -0,0 +1,7 @@ +objs/job-control/job_is_completed.o: src/job-control/job_is_completed.c \ + includes/job_control.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/exec.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/job_is_completed.o b/42sh/objs/job-control/job_is_completed.o new file mode 100644 index 0000000000000000000000000000000000000000..5621a926880a10ab571e0cdca5a417c6caf07919 GIT binary patch literal 4832 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_kill_all.d b/42sh/objs/job-control/job_kill_all.d new file mode 100644 index 00000000..c5740e59 --- /dev/null +++ b/42sh/objs/job-control/job_kill_all.d @@ -0,0 +1,7 @@ +objs/job-control/job_kill_all.o: src/job-control/job_kill_all.c \ + includes/job_control.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/exec.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/job_kill_all.o b/42sh/objs/job-control/job_kill_all.o new file mode 100644 index 0000000000000000000000000000000000000000..6beaad1c37319fe28906e588e6de7cc8bd648166 GIT binary patch literal 4188 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�zxQ$feus$DyZlZAhcURmk54LI~;W%9HI}J zrz55yH4sG8b=#b_UD?&|8{To>HQkd=OM&q?Y>ADP#5easv!jq8?ObRb>d zbpOVCKkq#jUYzAV7kWsmJn{tj#8tg`*}UNZwec>@u@>S$&P;%cg3NpUHR$3GP5VZpG)Y|KvNbiDype=_1~)>!9m% z>%n;$Z%D?Qmhq&@nlRzX5*qT$h!<34;oS)PtN=&Fm!GR@Ax|6F;x(*esR z3^iMNM=I|O9Ir$64NoqBcX{~A?C@EcNqOtp*@JwREIZY{I*-5$8d;Q`?*2X~J!@C@tXd(gqS3o6KiX~Nb9OPG zrK}gt$^4YrV~E}n3;w<1yYsuoQoUsICwQ?S!*Zl_cc``iJcXY;x7L@8%w#&hOaf&=CFb7oDL*{og| z$KZv`Shb(0!gS4QJTOYdA_mi8={nhy`7xYy+bm9I@|H04Ogfty7q&r02R-iqhVCHH zvz~4U!+=F49b+O@bQ0%DXC$j&niz+@8_5NBxeJ5&V|j#=b;`DjnbDHXOmru{GgGJI zEZwy$6!V5@!NkqE09y~TDpG1nIEfTe_JlB}O(P96mt!$RdMuMemoM4E&Kudhg|)U* zcF7V-qp~d4tombdZBeXIX~G8c^#E*AhQj{Xry~QA<*k?%ng9E*sS@ zio)m(w;}qS2o~qSk;n#!jq~wnIZ|y>oeY{g941Cl3Ek=!WL*$Z(M5)~*=0_DTFR9= z=>f|2Q9M!_6vgj5JTvLY`_b3=4i|W(QW|GnZQ>BZD@{#^fM+|;QfofIcxr)No%T(z zz_-!u0fiO?_krzDJ3^0xzYS75eQhH2E~Ftit1EnM!B7+uhg0wHwM9b zsKMy4r^cYhqgy?-0cuNh1nN0ZFb*{lor0)g@q&#|`=gJ0Y7^8UQO{IK!GIEbAH3lz zx_P4h64(R8gNmw?EAdIPfaCEsiXlZ?h`@o{(LDtqbZhWgu$^jah;NtkQkQbwjsSID zM8elr7y2%=hvA~$##KBC&3R?FV=AFvLUUeA8)hN`GcbD@P-v<8DwrD74gv{0jqYv2 zt-<%e`onjG{tA98_Gh?@173u-lv+23xD0J2wH^);f-{o|_hN`pJ+%EuG~DNFTO8t+ zbF@`hxloIzt@gFGhZ3H)#@E(anM8Q4udPpL987CRr+$RcnxgeV4h*1E;1)_WGOE(F z4M5X_UMIBe5S!_y?WDvg*Z^PLm_!iaQIsH>tGgcnXYxCDcL5ufcn=NGs(q=~`d&r* ze{AT_`@%d1Lt}!9(7;vP$5AUB9eW;}Kc+zt?-lfmfq3`en5Z;@Kg9MoGOZ=wviQho z^P*SJb^PtAE$P-@8S@rB{r6uiI{DT1HxIrT{OudB&D-?G!#{oDM>Fd#YiB-dFF1Ps zl{Iw}@%v9a`p>?72P5(5)QO|VPW|iqe;J8id}5;Y_u*$|7B-q4M&g;77A(?A&<4;p z&=_bp=n2qwK*vGcac_bC1iAuhz#HNgUI$8o9t7n;Uk7~)bPV(Z&>0ZR16%~_1?Pjt z15IcMorLyDh!u)6M`Jah6^n$l;>IS#vmhas9YU-Y(vcN~5bKV#;+7)BJtiR*4njOT z(vgRn5X*?P;;ALXav&j=CqlHAmuS`^LM&0zil>Ya51tIq15bz*Kw4dZN{D4nLaf(> z_Jd@29%Mp1+Y(}ZA;g*^Ar=xsd@*uF)_OuL{xUoZ6d@Ka39&8^Vxf=_k0c=;G#UPX zoq+)MH}@<&D($o@G0L3goeSlWdxbI`SK`q?kiT9WW-;i}KN#uiRp~Fp##sC@-{An)W&f)7*sossEu0idDRaiMSIz&VOcTi>mZEZ{XKB3|N0lf zk?MMR=(_nG1iNnjF@ZYP{Qx)?pnDTIK3lujfn#;L=Y!La^^Nv-x?Jm(yhHLOl7rDs z`$+Nu@CGI%TPt{#D!Oa*Z8bV=tL?v1qko}B-&Ld6*XTk| z?Cj}uR%#8r^M33*&%8VHzBBX6$Cv+`5kgA|bf7e-ZJ;ZG(6)hAY5bH{&c+{}H7xOWP@_6Dy?l`sjT&LlLQ6SBZbMV2L z`@hiGkg_DeVhCjEyZHQN$n+xhE8Snb|61b{dg~`**~Lr#fpL7O4d(^4dV-{exn{)9zAvkIX0IDxjMthwCO5c0zMRUBn-tzpHi;+WYggTV zyvaVii<`uY&a^lD-y;fdO0D{(P2!>GBxHYlPpbS){&#e6ZDWVK_IiI3}2B(fbZG=twt8~nKyv*3^LGw2(j-o`0N>0aX| z<)fA5cPdNomnzHWR+l?hDo>wVeUC$bOTezSbnc2MJTZEWefi!G|Gs4d>-&|ZKa?K* z{R~U0bolTC_mxi8gV1aFrRj;uiOJHfZWHIg`1B-{i94nyzHple1GjvvH8<|I{3vKO zDLX;OpKwL_Xo$h(#;Mk^TD5$~RJh={?K94lP%h*ma@dEm_iDoPBhhX^XnQp$;%QqA zkVa0T;``nye5giI;LUX+)Ij9SH>(ZNZ266n?1(Y%1!3g0gO*zl>C*JV2(w7WNbB%X z+zGw2b-}K8LZwTdFwhG8`I4niT|@F$xyD31JRvsl07-4DR7Uk;)$$rZSCe zwr+xYk8R^i7FjF?y1qzkyX$MvH`fKlw?R$gMETvA=uV6-5XiRgVGRtUK;iqjBk6D@DLApw9k3Lq+>;`t7>pZ59Z57s8 zd@$0+-@ukA?lj&8TLz^o2JwFcO5JX(f}IDMyQ~XfhLuhO#3-O!fu7lB5@Ks+DDx)x zewZ^O4D4NK2dLe^P;P`YOKlXPh^+B-$p3QqEk5~iru+qdHxD{O`Yisr- zgx5gXoCaKbCQ%2WTK1tt%|k8P-%Qj3)U7tLFM+Z}s3rR>!~twbb_>*L`{_g-g1S%S z=sgX}X0*W%!SgBjj))u|FyE%#(kvI;(h4WYGIGQczhu!>zBN+;ljk8h(pR?FW=i?W zO7k+aMWz7wgtV?7OH=>Yt7yIW*Yn|1bqF*O6~nlQl)oYlG&v-k`zwVEI^^c>)z3GMGQ@^lYpM3l&`{fr$4*uq`FMiU|Z!UiC@cfRK zPyFd;FZ}$^AASFyE8E{3_~B!}e(RPG9=!0xzl*t(7v2EY2Ou2_aRZ1udpC$VPz6Px z?}B~|IuE)CdKL68=p#@LyRZwyJcBBj9;i(=W*|*WNnR0XOk0}X1}PIOhb9)28pxWW ziClRxESgv&%8NBZ6U#xp9+)3AF(cJLW-U!jALYf0qKTEMyjVjtu{@QDnL`s(Qkj@u zG%@8A7R!XD1L%|&laVGSsWP#GXyT$O6Kk0!uA4Hkf@xw=EBODHRT*Rqvjg5eO&w&! zS=W+W)6U*6w9`ecn9Eqt!iy8#2r8};>+03yAQUtC;*Zwb%zxxi3%)WdV_n#UAW)crrPz~epkf{fDX z%4x{*9*5mP=JEv_yEnr~jf<~c%$p=eh%U{LWZ6%ZlHk_)f*a=x<(9oVCtc zN*cu;Rpv~u{`tP|`}=gk7m$NXezA&Yk6K;fELMZ#Qmcl1Rr#LZz#?|!tI5H;Xs+rW OSFeIzbI)S|^ZXAXK21*m literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_update_id.d b/42sh/objs/job-control/job_update_id.d new file mode 100644 index 00000000..50bd8dbb --- /dev/null +++ b/42sh/objs/job-control/job_update_id.d @@ -0,0 +1,7 @@ +objs/job-control/job_update_id.o: src/job-control/job_update_id.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/job_update_id.o b/42sh/objs/job-control/job_update_id.o new file mode 100644 index 0000000000000000000000000000000000000000..6fa80ee261f04c483b70ea614e63daeb4f2536c1 GIT binary patch literal 3964 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/process_cmp_pid.d b/42sh/objs/job-control/process_cmp_pid.d new file mode 100644 index 00000000..04fae973 --- /dev/null +++ b/42sh/objs/job-control/process_cmp_pid.d @@ -0,0 +1,7 @@ +objs/job-control/process_cmp_pid.o: src/job-control/process_cmp_pid.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/process_cmp_pid.o b/42sh/objs/job-control/process_cmp_pid.o new file mode 100644 index 0000000000000000000000000000000000000000..74022643dee25e000a804e8f2dc88f12fbfb46e4 GIT binary patch literal 3184 zcma)8O>7%Q6rNpsHyb-~oTh|CO;aN$X$y&+CJ|T=Xab>fN~oZ}9Dvn&?Zgg_*Lc_Y z0V-Mvl}7EMt>C}`)B^`3kSHQ>;RF>N5LGW6fC~}`2_%quKq6|z&-Zp`9A}%7Jn7B* z@tben%$s@Z>o@=Sr-3mkz%YP=;Ie`t1_pJ4SIKz?I;VO+T%b81VFQy9w~!O0>rQUb z@pR8V`uH7?9XNB)u*pM6I8JSEaH&6Ml&rjf;=Kx#9E0m@!n&QX1!t*=N z@VjvMAzF-kKz`*yrhx)62rjaFxP>V|l8hUup0&rjfqW856iD3^;ly=2T$ zdbjQOVV>V8PwU#I`FVI&X4WmRKffi8*TeA|8@aM3eEY4-uWXopytjRL16#y%mdYFM z_j8W-JU_svw}^*F=R*4P+r{65*zbp-wT*Jkw_nqm!#*9oT3RTSvbsJsQ9mQi@nYQh z9q=gSQQSYCvJWqp*QYC}t~Wu~*Y|@w#~b5#s~nG;EX-J5=p;oyC>BaCqJO{dalD`T zq!a*%Chm|QolBGg!rsA9@*UtQ9{()lcKR9o6u6#fzv7kbvhsNlxXvaSid;UQ?#*+L0}RdtwS znMKRaG21bms?7|?sT49*2M@u~r;El6D_W(Qm^)B5QmfP(X;T7`sJbK4Ds97A%LzEQ zNn@cvZTnH7fWl<%nruTO>|ue(BjGTLrnE5fsO=Em9DJ|Zq(CGbCIH5? zX2edmk&(g`XuM0BY}*aUkm61Z_ql?drN!OCYHrD!SU)fGp}KO5uTkv@2#0ih24PZ* zG)p2NUtE0IwO_;ttNej$ogwJp0tO|h;A6tn(-=;I13MdDhe*lyY8N3X2f1I4Gwm%{ z&14P8aZP&%Rwr2rIUdyr^axo=Io_dNhefN)gL1q}`&L-{qIlF|)b-HYK}*nwE1yTj0aI6{+RV9Es4Fileqkwz#g z^|&hp(ybPtehO7dt2F;haIjx}72ZFg26hE+(T|!!+hHtyWIRoZV3f-x&-T99dgncV zQ;FPjhfH`O>*kWnKlfiyJ^p4fAp{UplOUpIC@~dM!5^D2BRukx6hwK_6$yf=U(q-1 z#L8=bU45bF>-NjPeiUt*U#ZHy(ZN$^!^_j6ZU%8CfkHKGozX$&g zrUmG1d%-F26JR<`2u6q84hf+5*S=zX~+qbm=59V~zMjBbaq0$|AjV zm`RIKDcaPaUEu3J@%3>1dgQ6{}A}PG8#CRqF$TG)0J_fJk^^49XGC~2cf$S z7=HIl*jQ^tffh*#g+5c7)q~3RQKj{uf-WIrL+k->Lu!)CJ}$etgrF?cFSw)wXrV!n L_)>_^4*dTCiNvqd literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/process_format.d b/42sh/objs/job-control/process_format.d new file mode 100644 index 00000000..fc880582 --- /dev/null +++ b/42sh/objs/job-control/process_format.d @@ -0,0 +1,7 @@ +objs/job-control/process_format.o: src/job-control/process_format.c \ + includes/job_control.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/exec.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/process_format.o b/42sh/objs/job-control/process_format.o new file mode 100644 index 0000000000000000000000000000000000000000..0c9df5f893a77efb5a052924f9d1e4b0a1bb14ff GIT binary patch literal 6332 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 YcEv}QLruVmZ$qI(NJ%G@{HSE?e__B&jsO4v literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/process_free.d b/42sh/objs/job-control/process_free.d new file mode 100644 index 00000000..fc14ce85 --- /dev/null +++ b/42sh/objs/job-control/process_free.d @@ -0,0 +1,7 @@ +objs/job-control/process_free.o: src/job-control/process_free.c \ + includes/job_control.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/exec.h \ + includes/minishell.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/process_free.o b/42sh/objs/job-control/process_free.o new file mode 100644 index 0000000000000000000000000000000000000000..80b8efae45c891dfaedd9c003f3a1b75ac37c7b2 GIT binary patch literal 3552 zcmb7HYitx%6uvXNGrR1oTZ(}4aLJZZOuM_Z1sfzl704E9VvuKo8K$$d4_s!Jo!QbN zCXF>nLreri^oJ5PCYl&SNFXsG#vgzoMj|o3e)2<;YJ9~Xf)XF!nYq($mm>8h=bp#C z=ey_LbMBqp&;I=B?*LEB4-PChXG-SMjCcoC%?YtFJ`c}3#(U$b zl}cGx4D}#|cgKFe$>KjIWs=QY*)MbC!5cd=*t|#9Q5fcV(7% z_DE&M{qE&>7x@8xKTAAZItQ{bzIn2{QE$I*hxx{*SVMj_^C0$VD>dVA$;c_nz^19G zjP-K71UFs<9;K*=`r{!t;ORvrUqyCZ2Su6w9_-s`4^d~_~xni38<6DjzGpkaQWJ^*j0VbBwx`bJ9-HC&Gn_Hi&feshAH9sR`mDcQ4+T~0i8sgLeXVqjp`+~QQPCz8e>4?s#Q*26&T1Cw`M(AbJC?slzRVo;I zE>VJ4h1m*+W7edk4l%8$R#`>0i%cKZwLGS|+;J-9Sf!M!U%*o_+}(wNe6D1mGix@p zO|5KNh{;y%n#EMxu9gOCHtw3O ze6h9RN5U&28&E<%iHY3M--4I6XPPR}*H50$`deHdd=gukFSb4$M%e_LU}tPji{Oie z!vx7#D2n0!7E*dqcj5bl{+1P3CL%d=qiqgj?@>5T2?eRnScG*r8e`iyC$@#lllRUu z2)l9^5}E|TC!QQWJN9c(QnwwB}RjnIw;*KL+wGl}~`Z2om=NUIz;V zgRg+eZ=pK}l9tT52-fR=D0BsUC4%&Kh)EW@1}#NerB578|YFZOgKWMfIf1_>sa6h4f=y+Sfb<|93qLp^d0=#dhb3@+h^LYNUAH5zlJsh%py52D`|*p@R+&tpwo9=~v-?U&5x@vwaD zQTx7xsp^|syTpTGI?Z`T)Hdb;(K509?CeHngVgMI+f$;ELv zNzfWlKWHDw1U&~j4SE+u=MLtS$$W4$szNf2g1G4hL^AD1*9wkC3y_I2#%EEA$VA1$ zO;odFqB6$Kq(&Je6D5^nU4=>}8sa9Zc{0%@;8;`_WTJB6Cb~OhqRYiiRD@)rs^liR zPh_Gi#^L`fy#b`oOBX!6OHT;XnwM_j$aW?S$Ax$#5PS)92z9D+&FgiN>vg8&ZTj<*)61?1nZDTAY~9H*_AlSj2nzrJ literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/process_mark_status.d b/42sh/objs/job-control/process_mark_status.d new file mode 100644 index 00000000..1b4add33 --- /dev/null +++ b/42sh/objs/job-control/process_mark_status.d @@ -0,0 +1,7 @@ +objs/job-control/process_mark_status.o: \ + src/job-control/process_mark_status.c includes/job_control.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/exec.h includes/minishell.h \ + includes/lexer.h includes/parser.h includes/ft_readline.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/job-control/process_mark_status.o b/42sh/objs/job-control/process_mark_status.o new file mode 100644 index 0000000000000000000000000000000000000000..6d4dc64c24c533e33210de8109688f2e4504b178 GIT binary patch literal 4256 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/put_job_in_foreground.d b/42sh/objs/job-control/put_job_in_foreground.d new file mode 100644 index 00000000..6f37d31a --- /dev/null +++ b/42sh/objs/job-control/put_job_in_foreground.d @@ -0,0 +1,7 @@ +objs/job-control/put_job_in_foreground.o: \ + src/job-control/put_job_in_foreground.c includes/job_control.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/exec.h includes/minishell.h \ + includes/lexer.h includes/parser.h includes/ft_readline.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/job-control/put_job_in_foreground.o b/42sh/objs/job-control/put_job_in_foreground.o new file mode 100644 index 0000000000000000000000000000000000000000..25c76b0c4fc9c65ffd4f3b86d9acd26b89cc9140 GIT binary patch literal 4964 zcmb7IZID}489q13y-7Bo+uhc!+of5yt!*K@{Q_30uq_RywTM%?K*x{UgXRk4&qE5fl_pYsz7JtM;R;AA66>rh*;|agX{C$d$MHH z#nvc!L;!@KN#pO*1$lmQ*N zVtfu>DLra$aBF;TOT1+g@71fsv*RnLj8?oJdEOd$?_DLHwXZzy`)-nW1-a_Ip{AX1 z#FqVV-WN%1L$=2EBYA!s@g0s_3C}2v;XN(AR@{>>W^{e~mgX5}BwkD!j{}b>vj*o+ z?s-dmW=GZIg#0%a`MkjZEBH(#_7Tim@Zl920tJ^ zu8Zvwa3(VNF3=GCX*mae5S-=o)1c3Z$rkHrQ0 zt({4#)8NT^;zDvNF+ElGNc%HFf4;>WQT4rkS^3FmdDp;4wxll;=X*Lu=1|0pSbPL zPwiY48%gC0rZdncsug2kw3Ln;rJ_|S6$Z*RONXxKi~2~ZVrDC)S~1gah)t|JvF+RM zz9TknR;u|@F*ex0rhiRrrBOh!j1R7X(!XI{|JqeojX5w}1=K)xPiZuh8rZO|n$wN) zK7E~-Hwck0T4Ge#;fX4P6#0xOXW8X5y2ZnusvryXhKdR6*I^)K;Wsv2vrs}TeWZ}e zibAQFjoBSRNAi`brI#xu!>rP!kgr;Jg3Y)tCVV8a10M-)?YI>s+^q_iG;Kxpcs9&Y)n&pRz9kSqQP3iS4&Fsz z4ulZC4#gb~1c-;?5Q6X44l1loZLGh6SqD{!;H-m6htMn%#=?q1^hhtzZvt494-N!w zVKo{@sd7rKkF`Mr#r0%p&DXcaeQUNTHw?<%V{la>%3d(RXr+xi#LL$i(nREcoV z<9amr6Kd@%iK0%j^JuJ!-mjsngR~F(DDHOk_#X%7G}lsBpYVSZ(reUWu0D_dDM&Na zdR=`!|5-@w+=FXfeNq3-koHjPbM7eE~nAx_=_@_UuA3vQ8x=sHCx47QhcpQ28H`;_Pu znb)3igd=`Mi^I!1i0(KHTDR{6*uAb5{$GLH%fFJ#avGYwQLDHtzlUaT;%Zl4(ElfB z_SRg-MZ)XfwJ8ac{o_a8xbrwR=Z2L#J9>!+(mrM2{UEmHxztJV>_hWCJ?tT-PZY&57E#TLg~At*41cLYkN+G%oAOezV_6H60QL3%L(Y1)lWnwX3< zF)JkeBvhJsWTlCvfhLw4Igy2fCe{;aVlL3c^pHU?`)Oj0kY4}mJbH1~cxEx9x%Cjj z0ctkeN7WwKze6Z{qe?XB^*sV#M!f`d;a>!snUV8_*c6U_$#q+(@tHOWUza!!Pepk* z973<~Ng$==;)C0TQK<2EdZ1RV3`lJtzkcw>xt8j_78e)>boqfY@5KeTCp?gsDtXE3 z&oRfGIgpWSv$6-WeSLu)xo5*V?uDu)=Q+0x>EK){pkOA_6u3@vM-;WK?R9mD_K4~o zQ9HCxs*AL3s%xXVRQtKQoZ>cB(~d!iX&2Q#aQ8Mfq@7oT5WR4Fh`mQUrMg^w9co~g z8s?;a`0P@nj@Y3cRTop-sCH`O>W3(9!vlQ1@(J20R{)DHf>;2Qk@#B(4xeoCKY*j8 z#9szS;PI2-c-{ChaJ)kNI}Ts?7&w+E{#B`e0UUc9&w&$fi{z`piO14}N5yY)xHcg9 z3dygL9E^S%;~^gfk3eWNem^&VK+oFHIMd#e+`P*A`W=iuo3vaW&wnZ2AoqSI! zk6W%~R85OlT8i0*ID!jo%F5}*l9kEZL+~nRD`kOOv6aHTwU{lKR;eg-ehmm66EbD| X^<<4W;1zSMG;ZSb&G!L-aKwKBxZoH{ literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/sigchld_handler.d b/42sh/objs/job-control/sigchld_handler.d new file mode 100644 index 00000000..a896c719 --- /dev/null +++ b/42sh/objs/job-control/sigchld_handler.d @@ -0,0 +1,7 @@ +objs/job-control/sigchld_handler.o: src/job-control/sigchld_handler.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/sigchld_handler.o b/42sh/objs/job-control/sigchld_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..df4c4add7b0ea7bbfdf2010fb3c56e60d48756d4 GIT binary patch literal 5468 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/sigint_handler.d b/42sh/objs/job-control/sigint_handler.d new file mode 100644 index 00000000..acac959f --- /dev/null +++ b/42sh/objs/job-control/sigint_handler.d @@ -0,0 +1,7 @@ +objs/job-control/sigint_handler.o: src/job-control/sigint_handler.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/sigint_handler.o b/42sh/objs/job-control/sigint_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..41f0c5d09f6f810c216734e30aff244418726360 GIT binary patch literal 2600 zcma);O>7%Q6oB8@S;vV}$4MwE0>Of6pep`p2qG$|)M`REB0;E4O2pq_uh;fQ&aSoI zqz%R*Ql$tBRRW0vM^32RdTdWrqEg|+l_Qr*9Ey}9;-}%g+1bRNrr1xKee-7CeDmJ? z*}wet$Ae)276trZ8NzZ~!;g*y) z%LjH?drMY`N3pDq00{IDY==IiIX9cWXFFBd$aya>8`;|q9hX-#af8lNUt=eXqE8;~dBYZOhDcS7Nf#3lGZ zDf8}dHwqMk(?)wjN4bnY2f@9V}j z4POoDwErJ}^bdb*+0JIW zwPn@Y>FHBVy;XAS?N+J2(N1SxF1IY#Y&Y!k>9nm^U0=VraDL(KWzjkcP0!4&xuuNh zI=<)Db4|NyJ3g-!opRmsvL+PhZt9DRmzMNR%WK-Mqt9mZ*}VRuS;q$@Gn+>vJ2Ra< zb)r8kx6(vLu6o&BD;IM!)6E(;8(VxDdZ#7RaRCDXHo?-#DJ_~z#hy$~ut{9(NERC> z+1b%(@^s?0#0z6@jNt}o5RnZFQ}_-ZhiLLlB0+oh0hZv1#l`U)gO{*{WGPVM8~!To zAKkElU8TKZB zGnSgvv3n@p{6TzZ-p9xhg$@vd7-|iF9B4TJ^4p&$W>8c7gTtze^`{V>z8d0 XxN<9~zudroR(=I|)$;L9(>(tHSm{Vp literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/sigtstp_handler.d b/42sh/objs/job-control/sigtstp_handler.d new file mode 100644 index 00000000..f5091436 --- /dev/null +++ b/42sh/objs/job-control/sigtstp_handler.d @@ -0,0 +1,7 @@ +objs/job-control/sigtstp_handler.o: src/job-control/sigtstp_handler.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/sigtstp_handler.o b/42sh/objs/job-control/sigtstp_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..67fff5c298967c41f214d87205528b5fc1b2490c GIT binary patch literal 4136 zcma)9TWlOx89p=X*^Bq$b?iiroP;fjLkrzq$4RLZAjA;U4FnW&=}lC_?(BGXqVdeK zGftW~mQsSMxHM9$mIoe+S_xVnc*sMMnukKFR)VTrDj^||5VZtIQPrxbNCcWf_`aDl z?(Q@tKGJ{w%lXfD{+i~9!d8}fq0B%a!80IZ3E&gS=4mh@cgdjw4@=97vVJJ z`0fBCnk|I-ffz`--ZUEvEghgz-+#}{;V-Rvy(p!p_#>e`6~lw64>H2DT_f<<^?tnj z`@DtNlMdW^yFQNyuij{M%@h3nZjASuL|7}H<;=O9633fhLZDrh`_<$*e-r1yb3wad zeBHX!GQAJuZHnd4`-34!Pk%$a`MME=7>_T)li`V*`_Zf*dCZl+0 zjd&>H05TrmB^EncwBPUNL%pYu?bmSUu}@!La86oIQ`Zmf@9`BY60anUmx0HWJd6C3 zXCA{d+xlD=ryEX)-v>h0*FK52BJrduu>E!HoOu`4snm*wo`*}vA#y;6GMUlBX4kV^r!-xetW1_}HEi57 z<>^T%m0eSn9k;Ckt$NG@NVRp+J>INWcTIV1-RPXsr$lUF>W(Wc#}^3C5WXHTFJyC8 z*9$DL+m`1GFJ#<>i7Arno^{#;(rHuonN0OAvOF+Cw_T@IT5!0I*~D+-3x|)R*EVfi z@3gF@=vd9(d65d&ol_Vv7P?(5ro%Iw>)jx5);W>9j%i{Y_90SeP==L>!ibhA6qDnHVPzdMRIR|cPT4n@ zDD268Ci{up=X0o9O{mgvU<66Lt54Ooi9}&Hh_fyLZnBOL?N3cnh=>h zd=HFJnMM^2qGUvN)d5wMTXoRrkY7c@SV2*UK6DGv?*v$p3um)?S#bYg?BH0BbtZD+ zb~3cDg)Hc!Pm0xhCo(8^^D9IdQj~=H_?eS|JcoWjeZ2D!wc&a6LR(@tkmLtOit@vt z%y{|&*uC2J%#+|h18KLaTSev_NZSyNcAL62o!JP9klH8Jt+@>CvmE=By0s{hFJmC} z8+1PasTJ~V6}8s$?b;l0w|qRuyF3nk(!5^&K-`_ z0@Pye{zx5yI+kldeFc;*LM`RaL41?yFx2VXlaaa(>OPTYs52Z+DTUX;hyH?YROJ5z z)}lSFXg0Z0JWZAgW;{wUgRXXDrUn*VuH?wppoO+%AYZI}{cUDLaKzx1z}i2Truf|J zXubG1^Woz_8l@u|uVDqBz6m@J1HrQ(1Too|fqV@3aHK(eQkch#A@m6Q0(2G$waK&R zvrj+w+P{BijE+C??(5_Jqt@mHb)tBzF*5$smF@5R^O5%EBB;Ku&5Mssq|y;;=+95SFRH1`t|586ElV4 z!|E6FVe%uT;H!!^;HfCr3VHOrQ5dWed%y8u8ukKTq3VLytxBzG?VSE}zr{P{RrT<@ zw9gZE5r2#E5rCy^&#$z3Lxq1NShM9dR4q6g1s=qO)EC>RKW2>o#r zuiop4Aw?S;yr^wT{$5MXX=?H-nxd9R)C_ii5Sxc%d3VUym%*`qnZGB3D)Wm8iYw(huo)9UhP j>-)?S_%`wDusSW<^j#;I(Cpx^wLd5Hmg(ci1Lpq##*lYw literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/sigttin_handler.d b/42sh/objs/job-control/sigttin_handler.d new file mode 100644 index 00000000..a4343464 --- /dev/null +++ b/42sh/objs/job-control/sigttin_handler.d @@ -0,0 +1,7 @@ +objs/job-control/sigttin_handler.o: src/job-control/sigttin_handler.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/sigttin_handler.o b/42sh/objs/job-control/sigttin_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..ad4ad2862ab0cf5710cd6b4834561dce37b9c5a1 GIT binary patch literal 2664 zcma)8O>7%Q6n2!iP@y(yD?v5byPNe!&hBcx z`NLQ$6d|lC2u|EMb3#4B1!xO`8ys^)Afz0E)FXn5@ZRifVsBI8C%t)Z-n{wdo0&Ij z|NQr#|8@beIADX?f%;tn8wC~R2~?H(kC4x3BFe8aC+s68kfv!6g>&Cn_X9uZ&lj%E z@ApIRs&ojCxUBa8bW*GXZjcFubFJ!omTk%a=dE}lPB?x}fP}LFV*9S}IMWL%fQki5Z-?;$5J_Zjxa-tX4S?uUIO1#wwlX!FW>= zqg_19UUX?`?@!lKj5F`=EP4Igp=Mv`wS>Fy3#G{oZYJzsp5UP>k{m@j}?c z@rtfnF}Ph^CVCI;_jd_&UTh8E-l6;gJg2lIE;!0>Sf0)aiMQJ(p5W&ewJ6?H1n-${ z3A}G2_Yv^(H{1jFYs%~yIe(^2Jbc6gGRp7E2)~aH#nYT++^5f1>@~~QIiH)}-wME% z#8YJOE5xHu%}-c=@~R^HHOhR^!`lreM85}r$?Qpqwec?0;JHmcTTT(Y)P|$omNdB#b`_s1yJNd?)+aOc7 z)tlcd*YDLVd$nHMFe>$tu`^YrR&px!TB)*9AIY56YlfrMO~+R*&(6%x&t5#OxR(C% zh=tY^j!5W*s;A|aoKi+}Y~OP#xvFLQzGd@r(bg-5m(?IoZ&sO`yYjlSYIs%4v6YGJ zXm(UNrB(1llbIOBPIi1Od*-<|&~gh^1j(6e&XQitjgM8!Tyr=07(^DPzU_cz`@ja+ zNNOk%Po+DbObxI>yoOj7gM)0cH=cSi`BL&^--SLb%>=|`V0H*^>IB47uOyRnn{S~8 z#n&wgw+~KZgydpiL>vBI$ub291MG^439O&7cV(SIe_@d9n^i~r61MG!$t2lx*R CvRR@4 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/sigttou_handler.d b/42sh/objs/job-control/sigttou_handler.d new file mode 100644 index 00000000..f3ac4caf --- /dev/null +++ b/42sh/objs/job-control/sigttou_handler.d @@ -0,0 +1,7 @@ +objs/job-control/sigttou_handler.o: src/job-control/sigttou_handler.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/job-control/sigttou_handler.o b/42sh/objs/job-control/sigttou_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..5f04426d5f26030f3c3bfbac7d431cbdf3c50137 GIT binary patch literal 2680 zcma)8O>7%Q6n<;h&W}^aNhkt=U{y6KpxRDDfT%!;mAG|LT4{|9F zX)u<8Dj}?@5=e07LhoFV;6xFi3NBnZ=7I<)NIgSE_}=VnVsBI8C%t*^&Aj>Mo0&Ij z|MK@=|Mn1RVL}5v1ic+WqeCH&LUSBHKtAV*kWH22$G{}k1P?-laLsG3=X>#d_Uimz z?0fGhhw+%pMxTd+V8hR0D}+&ZYnEM7okDct`8fXg>1g|GqEKfDyrNlHDG7ke5g}&Z z$Xq(JoAsmeK2Y{n01w?AkUn0;G31OO-WfjZHW}l?>Xd!)@`XapT;=_D^7HX#6h^mr zmc8iklptP9@q1U{S&HA+xDUP;$iDn)dAnrR@5lQiu-~7$-0yPUkQ9Ubd^{iaV7z>_ zS}}#4UuJsu?e|Xw^pe~f(a#6+^YEO)lDyy`zcF<>#}r<)S2=qoaDHw4s(B-b_i6y| znJ)3%_3FO+wH4l3#pgnoczDDTGRW_%0Kd-;#50^_?9&x1_L^lEg_xV&I~sgX6rQd+ zZv&4%HNT?%)K#erFF^>iEEa3HT|e&p9>~cUn)ZfiQ{kzQVnk)%XS@4;En6Z6_dCsG zIL|YrgBQ!@1NdfN;u9q2FQTEFG4 zZ|k|6kx!A_YTnDW?rib2Tq}E5I<4%sXTAP!d1tws&*?DV46}b@;qL5>>~^O0-It_h zY~`;1puhcn!?IVKjdioq9Gy5>*Bb?=(rgqeE6vg5v&Dw#7|oL7>X*-*ou7Yg;e=kb ziZ72^uqElpgnp{mjP#OINE(jq)|^VZZk1fuSrO&DU96b3ltCGOy87JQmGkT;`MnyR~Kh~|ALp5SgbS^CUQbFg;vx4i62I*@fuJqP`4DU9~7>n)3;Xy4D>hC=o(LysL zp+11oMGq`_O0Gjk_(pJA$>XrN)Z~-OKJ1Mr`Rssq=5jr zq{AabN1<(@^xNa-1LMrAeVoLiE2??7ENsUuS~U{E*TV_LD*mFmizG^>i^uO-Jbt48 E07ti6CjbBd literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/command_getoutput.d b/42sh/objs/lexer/command_getoutput.d new file mode 100644 index 00000000..9d85b93f --- /dev/null +++ b/42sh/objs/lexer/command_getoutput.d @@ -0,0 +1,7 @@ +objs/lexer/command_getoutput.o: src/lexer/command_getoutput.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/lexer/command_getoutput.o b/42sh/objs/lexer/command_getoutput.o new file mode 100644 index 0000000000000000000000000000000000000000..a1a5a746375e6312655aa2c9d4f9709511704896 GIT binary patch literal 6672 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 WnXNPsjFEQ7Q~ZB|W%2_C`uRVG3Vy)= literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/ft_post_tokenize.d b/42sh/objs/lexer/ft_post_tokenize.d new file mode 100644 index 00000000..805f8c09 --- /dev/null +++ b/42sh/objs/lexer/ft_post_tokenize.d @@ -0,0 +1,7 @@ +objs/lexer/ft_post_tokenize.o: src/lexer/ft_post_tokenize.c \ + includes/lexer.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/parser.h includes/ft_readline.h \ + includes/exec.h includes/job_control.h includes/builtin.h \ + includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/ft_post_tokenize.o b/42sh/objs/lexer/ft_post_tokenize.o new file mode 100644 index 0000000000000000000000000000000000000000..ec3e207538b98ee3bf33d3e89adb3018707d2416 GIT binary patch literal 3412 zcmb7HU2GIp6uvXNv%BrKy9)&Zslp^}0Ta4g3TT6!YZP`@*Cr)-A;^(5z> zd(J)gn{&^(KfB*v`R#g`F(JUvfP>)ABs4M@v;>?c{T8$<hJeIu=FQ^hEcTN2a}&QF1_MT*0P%cred^R1_DlWT?&zKiZ=+9Sf{O2^ueN@Q`L#o>ox$O;p#N;J**N zJ8UDzTgmab%Agj!KFR6xThtvy|9TJd_%8BE1ppAecZ>KaFV0;UbrVCuF9v@Ae}W1& zGWHlG!H}#aS}!qAaqZ9@``glE7t*7@%IUG{@9DA1WO^KOyfQgSGsk+)kN(5r`%EETLk~QUzBA=hs$Tlgy5$fb(W}xo z-ZPmV`}}=(7$1cV5uF?Fxt1RNQhxS}k)po4Ix?)4s%@RCEqNqsl&T}yQl;9~z9u)K z8ERG624!rcfsCG$`%Pm&&hDxhwq~uDSF~9x9G7}#nQE$}4QXbo-&V?oWh=JvoTeA| zXi1fI)1@Hy^=*Gt-mRHd(a`0tWJj_?Ua6LFleKqsKuNCcOs>A?_CTp^7Urk&gT~HW zCbhQHDky4sSm|W`kFug}vrNgdnXQzH5SA-cL$@^yaj94ckWr)9v>7udPKjfLUNZE& zT+yv!Ue|Im0qXR)(%YpLGA1)Mn+fxTwpf!Ch$TYJv3bILY#=cS<9uObeIT|zdVh39 zLvPbVD0o0(A~*FmVVA9)p-QbR5PL8h#l{T9899U(LAVf%MVf>_EE**|#_Ag3+uKA+ z7q)qQoJ#s9*gdKd=ioN5Rb&SBy25F__j>wJdj?^977jvO7$Ol6C(474{sLNPg>M|~ z7qmffBKHGn^T?G+w11^wXg@?~3{ChAG<(6~lE^5;VsU=m%aEtYv_NcOb+4iK6=@5_ zmPj4-E|9iJY)P>C@M-jqf`d!LXCdAN2cD5mK!hV9!VX?iOgFr}EV zC^OhKL{t$nQGMt_1W`iCL^BtGK?F)Bsu?#?PRT?G<`XIXWTL8YFDeC@s5;#1c1a2& z0p6l9!zI4$2xbO(nG^PGVZu;CNHl~ahv7xvxeNT(6(@mH-nM1kvBXQ_!;Nm8`9@*~ z;VB4LV~uE?mlp`a^aX{hK`m8sc&}3x%S>@CRb10`?@Ws|Y^4?>Zr;N1>%CVwEi!tHMChuY?fj>Byocj4NXX47=od^B!2j`v@CS^ zR)Z(S)+R|fD%N3H06YeUY@dL{Hx?dnW&1v^Z-GQO?eq#DlJ@%`;U7wIxtzVT|Kne5Z)-K`y`eyz?FQ_EFUO(|zgO}D01{+cj_a-6XXif-7sqUq?l QGX8wn{q9)pqXO*z01^il&j0`b literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/ft_tokenize.d b/42sh/objs/lexer/ft_tokenize.d new file mode 100644 index 00000000..070f092c --- /dev/null +++ b/42sh/objs/lexer/ft_tokenize.d @@ -0,0 +1,6 @@ +objs/lexer/ft_tokenize.o: src/lexer/ft_tokenize.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/ft_tokenize.o b/42sh/objs/lexer/ft_tokenize.o new file mode 100644 index 0000000000000000000000000000000000000000..c2b2b65b6933111c769d7d2714c99add601fb119 GIT binary patch literal 4996 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/get_lexer_state.d b/42sh/objs/lexer/get_lexer_state.d new file mode 100644 index 00000000..33d84a61 --- /dev/null +++ b/42sh/objs/lexer/get_lexer_state.d @@ -0,0 +1,7 @@ +objs/lexer/get_lexer_state.o: src/lexer/get_lexer_state.c \ + includes/lexer.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/parser.h includes/ft_readline.h \ + includes/exec.h includes/job_control.h includes/builtin.h \ + includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/get_lexer_state.o b/42sh/objs/lexer/get_lexer_state.o new file mode 100644 index 0000000000000000000000000000000000000000..2e641a787970e8765cdc825b8c45c14f1814e66e GIT binary patch literal 3096 zcma)8O>7%g5T4!5Zk*V$-5QmjR$!qtKUHIgsE3LgS~qrag42dLNjZQP$8i!@j%{qG zO``@OB|$3T5F~nl1LXqZP`Drtr~(yH2{<6A-~e}!utcSDKnk>?e6#!3S#J`Ok!I%2 zn|a^Pyx;x)pWFX76G;j|fSbT26(R@*Jq%vw&TYuAnT|Cc1F~#j60?sxLAqYe&R5O0 zX^+OAAKkF6RzD{JVm$urdu}r?7_V}_MY=wjotT@}E7h{mrR%Y?(UDV@n=G8$qUT4E zXFY&OwzZL;iI*>CjBY1hZ$mWE4KA*c8X_#b^u$Ctd!FlW%+JCr3XI+27&RcdypDJT@%>laJcpuylcqatju)q^00d~e}v$oD#K36aho%Is#6DGfP zzleH&*d{-o7e5bhn}IwT4}pJ1Jh#`OgV0bk47L-0!eV>>ZrWps%fBU-{_rO*FWyP4 zF5dBdar}24x3o^aWe*x($L}$Atqn4<8b^R@>F;*mitw?j{RvU`b@-NpcKeubnG37? zFV)9#UA0f`z8C5~uCw;G-Pc+7@m8!Y+I^4LeLQ=$wB6U`$fw(p&r9{OZ9MiM3-I;= zGs6DW_`Sr^P5+BuMfu_gCX?es!SmU2C08s2kA`|fy}_AP_^o8QN$#nQgUu8zmlrHLhl;uDpiem9o(Xr$x zbaG&bQt@FrduAj?r^kj)#z*Lxk$7~JlJQi^Y(`JV42$)1V`oO=6f@PyX#caRWHgna z@#qMphU5JM(Ih!iA|pZbyZr2BX3}Mn_DBc40afw(wf){b(q8Nexk*yIZugV!V^}n$ zixlqx%w$stp?jqht%{dDot}ZfacmYXSb%7c;>tmy)n`F#igr!JH%4EACLEY?wSR`@kTso};)T zzUn~#muNGRus&=?izQ}^2C`C@7Dh;#_e*|Hvuh1e{E-9T;9aAF`_>krsMr6R+}~#X zo_P=}(i#M9kwNvbh}scR4^64vgKB7tz)d4}?$`la zmJbC~X-;lI^*o;_uIDXNYi|hMA@rj{LvfroCbSpYhYpLlX*023rmA|bg1_E;ZkBY% Hv0o(5G4XobA%I=FPG8HST5R@(k0V zFs}3X9Lv@=t!uk{nQY2-74u!=Jns5E{M@b$oRLrO?#>yz=={^;bNSxj1P{uWHhZ(Q zrI>G+-~B9)vr=)0kKp<7^vxJwPB;4u>rTFPMLGY`&jX!=8ToeVDLcgC_*_2sG2Wj~ z9~j6OnyK%k@a{NolE+uiHsbaq4 zMSS%S$d}(UFynbIaK4ZE1Kjq2e0b?>%HsG&z0RrJ^Hv4!civQXC(fDI3g+&#*`sO6 z=BYd0=X_!AYycm9Q%<7(c*sT1&*;~BbI7i&Py`wz*868 zW8Re*`86^0NB9&GBu4g+Cq@cmiP6G%Vsr)lMhaJ9T}^!9WuFTyF}k13v9eEh30H~r z6vYNFmbZ;1hR%qIk*`PMSL|zvp>yG9&&KGr3MZ4B+QPexoR!X+;gyk^NKJT2DuZvq zvXwP3B6YQq#~))>E)~rfgGSELTDP9sVP$lyKayh6E(_bEeY>;Ud-P~st<|rk2KH#R z%+RpK%IkT9HOJS)x{{s1WJ??Ch;L+@H?%ji^<8a^@piVhJs#_1$#_SHGmWipwk^VE zx;AviS+fI;v8Ht$$yi5%ZHl$Cj*aoAmROS6flY?Q(q^9N87t57S|$y!97tu&yn#y` zH7mW>V5GD>6^))lHQP?unXK6tE|^xj&op|%L}*geq8^j#*K;hN-C>yEchKTU?-w}< zYzAA=?jAj_Gs8-;2~L~F4ndeDEDBc0QZVGL3eFPBk#Er>NI_M7N?nDjl9n(jI1g3k ziC}5D&`=@;>B^&lmWroQyt2$h?rN!E%v(3j^ex2h)v5|2rHs)6{~Ulr!B|Pflsl=V zSld!TpBJRP(4usJ9MTZ9 zM|v4rmJUICrK8Y3>2+vDdK=m=9fvNFPC%>DY3P7-2D;R3Uu>eM3!A>e1+h%{9w5l# z;lZD5`w}#)f#rx;EL#ih6%Y5% z@3#hpj8rlMhpo|2ojQD8KHL5$h?t#$XHj0!!-wMQ8b^A88`;X-4`428H z{%icpx&!%F((@~peOLQ!YIar4!C^HN*mW`$KDzIBiIFC>IRS3_1nS|D2?S;z~JqmXwYcDk^Z@;3*FL7B#nQ2}rlWs_W#V7zZMsItgK zrN&q3+!X=R`7o&PXcg59-$->zF3L4^A`D6}xhUt{MP)@Usxj`OVk8%pEWe{&AaGHI zaTgT`t)gn-8>wc=MPM( zjOy;LSTOXG*i`CNCu5i47ul=Of^aKX3N6q*AVS(qWePp`w=~hFShQf}qTC-%FJHN0 zy2sjMMeXmj#hmsL=_jV5PJ-r!3PdMyt~whqM@jNV0mFkJJR6XZaN(k83k zR=J{HR_bNZyG{-P*qN za%XPu(j=r+sYzAKRh6n#0tu-gRiZ_Jgp~dPs2~JVB2{WD2vR@@kVqs46*VAKrL-b^ z-|Xz=d`ZEK^xm8I=FK;6X5P%~zWuMi{W~IrW(Y7)2((~=B|#{+gRar|G3C*y-*AR~ zPy!v8f|Q^U#c^ux@tR-v^{LFv)D1nTt!EG@#N)76<30|Qr)Up~;}qP(^*P6@Ri(*s zh7YAD?hl$pfb){VdnMdx3MzU~p$za!mAo{!;=Q)YTZntD=H9Zt$|Jzb9X?!jj}d=$ zd;#9e3TCZ%#qw;0U0U(7+(48+sQF%0@omQjsO`IDeAQfe&h>7_+p6}{M-}31TTpAr zTjCwf=n~HBph4cFVjL*lb96lm9xHZ0s-1#g4hSht|kvVMMiwG#`sobPK2@Aql}?_DDv4xNN-jc<{M6D62$ zSG%t_@s{}Vm7|zv&8e3kFP00AGdA4hD_&K2No5=a9#b-l{8J&f;JNe8Y!$ofcW|85 z_rZCEw@2a4C_JSKOn*M8QwHa)R4hxx*7;iMJWQ)#zM4~e^rTR*C`H7Vk_Fc+cTD&F_Ut^Y=7c|G3bd9vX-D0|BQ zVlbY|T;k-eaFbByMqdH>Y{##&%NfK6Jds_>Tm&qLk@ZUysh^98J;8|kSF(%0&@h?o z(pyWJ3qhdEnUAuIzv_SVmucPv$+5A6`;*7qs#mO(lY@Qzef`Pp`4XjK4mx5(+8$9V%QgZ z)B7Hr97|7T#liH1m>kdS8%d7|8CDRGD3)s?SMqA2=9G#Mo-gv1a?M4Pl8#qA=?XHZ z#vIR8armSWdZ|*LOV-O?ajxtZk_0UCjpdV=pU+iM;hcaUOs`gX%q_#VFp zNXZCS$klSf_41-Ih>y#dv~}9Hc$aC!JHi{|>$FZJydKhwxNYBOe-5X@*e;CtCY-WR zA6z@NJ#9vuEuV^wbbSFiWST-(rjafo!n;EYVY72SC~bZHFL|+HTu{e1oPv9Q*`ooRpU4;7_9VHnqJN z+&+VvT#bGDmL3s354FI?&d6gBre$4#h&&C(sIrskEQGvdDS0Ka_%{DbuedOMnOn}K zrhOU2(%hGNYv1cA|Bny8PX%c`!BBV?Y9b72V&`o^JlZK)7z=%PHB)D_yhbe$vR6JR zjH#>l!oaojyPoWb9Xp#(zI5uxX6nsvfA`G~^dD9$zsaxP*#FeC_8mLRn_v9LI~!}y z6*s^B=eyo}P28ZZ(jxPTCgz4R$uxk8dC~2AaqH;CeN0I`BJ@ruf)b%CsK8HXCgnLu_8%b{pEdWxuD*C_s&H4e}8)W~F4Gt|8MJ!oUxr->9jN z!aa^kcerkDf=rH@+eXc{Ayfapsf9nUN9EOqOP=d0djG_kKz`F-)ZWvOw0}{_9ZGJ1 z#1iy=9THu`&nbDAl6NWzA=_V8622lqrV76$n^c(t&HCLf?f13lg0Hw+ZG1jBvo)va i6^e63d>5cDpLD*<&YUY>eE9nBzu)BG_rfg~#D4&C&2Sh1 literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_delim.d b/42sh/objs/lexer/lexer_delim.d new file mode 100644 index 00000000..67eadabb --- /dev/null +++ b/42sh/objs/lexer/lexer_delim.d @@ -0,0 +1,6 @@ +objs/lexer/lexer_delim.o: src/lexer/lexer_delim.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_delim.o b/42sh/objs/lexer/lexer_delim.o new file mode 100644 index 0000000000000000000000000000000000000000..def05d85d1e730077a4b98e216765c3c5d9b8a14 GIT binary patch literal 3680 zcmb7GZ){Ul6hH61zSnlIYs-d{|EU=uMpy?-vLGmh6*?$?TsI&F@+{qBD|T(|>kv?p zFeNM_2BLm3QHe2;FGfG82{EV%8cq11_$LzL2l${FMk5+Yrl9k8-n$Rlf;ew>&bjB@ zbARugo^$Wr=YRhEx0gs#2n^%_6;-eZ2xBT}jE(;?T7AyKQQm{$>cAwX5F0TJqipUe zJ99_xj&JS0p}Vu^#DwwqvmezHacocyuyBWA^qM;c`wXjGvQ383u_e~E+Fd3W=Kv># zF-vn~1(z%4h|j^x6*9KD7B5)kP4o&US3RmcT)gy-9VK%&=U*M4i}$L)m?&O0zq7zw zYVqC_Uq3DKT`uZ!4!@r$-!0=SrSpBJbu(VEw&r!!$wIp&-atBIhgch*izmV(`cJ%c zv6wTBe0qSxyD8ttM10FcSkeUX3Ojb$1+IEzX0R?}~s({D!EhZ>BJSJj=#l{_$+S*D#VDH(ZI% z3A~6f_5+X4?HKw`gj|DX_8U7(sIIfYFsko^F@d*2;2jotLM5H3-<`8`&s#2=w-Iae zZ5QWtOlZ{}kPrTxS3Bf9UIuLfRSwRVsVd=0huh4162spo zhJK19hM&5e7#xzj zd>n=giJ^8Z--YFcUqS~4!6yv3(ZuklHo$QF+NB2JfRACtHIKxvC5AqZY(E|2GZ;xG zH?NQEHcM8vkdL&tw6?TH=4EoYI2N?GLTPDR)Uxm%vPzj~&fH^`9FF@mmmO%yP_)Ow z)@a}3gDN(Uy%}9kiim{mOV3 zt?7!#x+xh?rJQMOLx-)ge5hw*cbqyLu`;%5T`Cz%C1`W3i&C57t2$#zvV(HMp=`cP z>6}%jvXRR|SdPdP@?{fCLK;?fpGnM&GIv(GgqF9B&~t@+Ut}^}O_$STS{b^IX~WndNRy;F!A4aHhPCOzNm2v4 zO7=)fP}i60_oMZcd87nq@D<+z*9K`tof71gy91q#52C|Wm1JS+Y$Vd!s#Nc6?0!Jk z0ptr2JNTO*90=UdjTK+g>*3qk$l&cb5dr&M|B&NB2Vp<=I|XPy3yjLU!F`J5?O5NuZf~S#WWgi=qr@=kSA#hbW0#;6CLwaKCZ_yiR!wTvtwl2b5Fb z_3j%-*B^dq^Cwu4L((@8k}4l7@*-$e-D z4`BXZ!Onw}sda3eqBQ7yQf9+jnJhPxei_;v*6xs-efnI?RNHoDe^IuNfOu5yWxaMU?xOMkuYBecyt91aalUNV*xc1k?%I1}cCKf?foj0NLe&FW0XL5`!y^ zKjH=uCaxx%xWG7XJh-#i#H}X0_@J<<1;qJbTm-R+`$cTzK4lZvdNv4y3(O|2xiCeA ziF-_#I3@PtmK9&L8w4iqFk#{bVK43$v5|Y0P29%9bi49;Q53ga*kuoK88AxKa7!-j z>mq4SSPBQczN6wZGvGNo<`mVvOehu%ACgzqI}J+oJA7pO@JrIwU_D6~FoC3OK9d{l z#eY@TUnq(WTBWG4N3)CDmsDG@lHVT zAOMd{e&>pWqJ$(hPyuT_YdtgbtY`AZB-?0x$H-l`|Z4GL7$LwArb0=7aXbaJqleDc5Rl>A#D50 lLIxp2aC8SxD^!|Zqm!|-Y-BC*tny24mRtoZ_T$Ho=s%QnAO8RV literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_dquote.d b/42sh/objs/lexer/lexer_dquote.d new file mode 100644 index 00000000..0c60c15b --- /dev/null +++ b/42sh/objs/lexer/lexer_dquote.d @@ -0,0 +1,6 @@ +objs/lexer/lexer_dquote.o: src/lexer/lexer_dquote.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_dquote.o b/42sh/objs/lexer/lexer_dquote.o new file mode 100644 index 0000000000000000000000000000000000000000..384a8a3cb04741fb9af16001bd285a260d47bc3c GIT binary patch literal 3820 zcma)8Ym6J!6}~g$8QVKv+sTG>(~!tz16?H6-aLq+vZe86O}vXYgncAPO*?VClU;)| zUOaXl6sjnzv{@F^qy-7760Ouq1*xL_QK|wW1%X0Uq_*OrQi&fyRjchwrAU=RfNsBU z=FY};0?E~!bM86!-0z+{=iIsT`-}hjUswo56JVeaXjTVHfzZ}~F3|WX?b(PwaGG<_ z0v(uwl%NsKvg-EHy5INpiQGLCm-L|bC)pt$m(9n8U~Ev1Qv}VjrtAZaY0ItGJd>R9eN;}>~x%w+|zYoj2?8p0)>APZlwW2d^yO-m=*p~Crj@HdWyCUA9 zV#y1!J-z@>h9|C$SDc-#*p^c~#PBZL?^zk&fDCKbRpayVst4}%65Jl&MTxgT;yrwg zcwT(7#Zo)odU+lKyl1WvuYPRyiu)aucrVBo_{KHj;m~=I?eTpg&qEO3qcOShOQJ2m zrRpKm z#Cu2LNmZCa%mjVP;Jj7Jj)&O3-%}E=PX^Q7>CZm(De>{WB4xiDV%+LQNKlji6{QN`j=jR)X`Gv;&`Gu`~<{RgsozK69)F}ep z#r)hkMLI1e&Kh$UZb+P55Acm|vsX3Hjb#wyJovo;Cag1=iY)@?DAyCXYUn1Cz{kBaf!Zn5{S zu_3W*a&#~^CU%bHvJ;|^8z1+(*g zjy;tkpu=mDw_0hYSQGW?eYOL9U%FEAMAJy&A$W|lr;7EWu-%ea#`Ivk5R?_ljqxsB zizkh>@fFHSq+JauTHG|hWZs54)_R2&zaHlzl!og{WqXGf=g1dh!(Cs&@zZsoO4D$c z5XP1kHM{|{Z#PWgb*EFO)Ht5@Ez_V_%+LYsQ1h!h9B_h3i;1TUd;8E>q z@DAes9YC?G%LebSTvw!sTcfp~}@T;OGc7hw~nf+U- ztr+Jn!f(j6vf513RThsAph;D7A`FF?-@YYtTJ;M9|+Ktq%Q+pz2FM5O2 zR;xWp5sUVtzXT6`ee^bT4Nz!bcr`>g5+Qb^!2U*WEOHM-v;;N)Qg(I>L8O%1P5S(p zrtMtuAbN~l$#TW}(EBB|L9A##gr2wQ9coXvi2e-f-5gvQCbk}l@Ine#!I-uDcs38= zef=m=HD2>={*`lh|C4EcIr&CuU+_Fy=hDd;MMpH=Mv5>XbtKpn z#AD+a>yG0g5HDIr$_pa`^1YUpqUb-TXI_8y{7wJ9@S82)tUpp-*VXsdrZ-Eg*7hGi zWhP^Xe^E+3{^0jM_`}-IZ+6!G@F%Z-_~L`Ne)KBlv09krPe4g*x(CE683yeG@%`~n z^>NTsATM3;=3QcJc_lL&9qlxt*C$dgy zVy=1jp>c7Vm~&}jS<%G$ktV)Bnpm=OMXx|$VueW)H%Kp5i=4=srHN%MO`nzCFp?6a z3$ubIzXt?rX+hSN2gZbQG^r$G;mB#Z()I9s;)0*o;Cmvn@#MGE9i4uS3UM=hRq-8o zD#}OkPH=^5fRwURsx+qXm$rOOiA=+-Wu!e*-n?yVtHnL$X1uSpEBqTIJwv4C%LJDj ziV&BHKjeF(kE)b+1(XmX2&p2v{9~ad6g}4QU)?lD^sWItGN7x*oq8OaZZ!1p3%Y@> zIiMQ@`sa)}eI2wfz%Zg~C-g83mxhzZGx{0~Ya@EMaYkQ{?hU@@PxXZHTTCC()sbbC z4rnKI#rU!s#j8PB&w&tD-$^O=Lc-qnm@kb-q`XN={-$8ud)<^zN*%vdB0)ge*lkh; fbJwg3>!7?HdCT%Iz^(=NvwvG!`0=-$Da`vn^B_-g literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_great.d b/42sh/objs/lexer/lexer_great.d new file mode 100644 index 00000000..858a14b1 --- /dev/null +++ b/42sh/objs/lexer/lexer_great.d @@ -0,0 +1,6 @@ +objs/lexer/lexer_great.o: src/lexer/lexer_great.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_great.o b/42sh/objs/lexer/lexer_great.o new file mode 100644 index 0000000000000000000000000000000000000000..242668e0e4bd3f4bf5def813c953d7595468ae07 GIT binary patch literal 3960 zcma)8Ym6J!6}~g$8IO0owv$b_c>r~_O8~*zo3M={*oHV+li9_2bRS86K&Os(vTN$t zmLDNWp-owWur_KF75<=BRH#zR?F_#v0H?8b4w5MEr$QjKK(W zU2eUYnz#twU`|X$z1`Q!`oFW*GGwU8`&N=l)%`-X9 z*uKoP3ZA(e@0%UoLVU(-kM`yr9syqdz=4{3nEUU{ zFTi_7!dx$2v3#(?kZ!yb3y5)6?)Qw$?=Ad)vV2#~ua+;*x%DgY-tVgU*L!^YHhxvS zL-~T2Vt0N4o=i_%8!un2mRzTtKg9H|*zX52zfqacqu0#O$EzH8&?|6veks|%gA(t| zb>eyXRr7^zyvZ)SKV2tY<7oA&`#mi2ek}h$!)mL9KkcfAzhAs`9%OfZ8~Ac!1p9qG z>g#R13$IW)gnc%gX8ECFdDd}qV{N`-zr;&Q;}Y=LlJBAaWXfH5?!0rbhU)qOj?;M_ z9FcfiC7#*q<4ILu`}4t^GI-xg#j=Okz26^6yh)ji4Lpv2enNiyUlMe%{K7H$)u2oA zeHz8V#@=HY_JG<4A3>6@Wc$)J=QDQe&-TK5!yA5Mw;s7*x0*}#V)KH%xQV}3^Sr(I z2&lOfKeK6xV9+t&r!0K5zLk9^e&X}6A$Bo)-aaRiz5@cXaH=Xn1n_n)*$c0$cIy|d z>>oUHD|_j$Cp>@p+RDO*TjD2po-U)AS3~0}@?5;fUO1QNfPH%zHr0;8KN9&MMA!>I z4MG&Vbq>h{A&c2d_QD&(51h^L5J={7dv_)eyR~|;QciA84X1{aw-!n`xrR0mLrINn zOl`PL)N6%w$vxuMeD2KE+8z)~9Q+gt0ERLRpEnRzr#wv#h(UyV3jFtwM|4fOjdBg6m3U zYmXM=$}Q3HzI$*4=(hXur5HmncAn+0n=KK**0qZ>Oew7Bg2^g8y@;ik-ISsk?s$#f(V-?vCSOkX)r@E z_d`SqV0VF(9X&)!DqE}x$nVj#l~0_-jJYcrKCy_|E7Z2(iPl#z^ESO*9at?QFG1bS z#g*Z`5V~pd5(^&!W7X`bj1A$Pn3U)mZ}>L&Z3E} zCcXHg(8QCQ`@?t_L=*c(2C`3SVyy>37%VVNthqF$rHMTzP23W_*s}78UW35I4wEJ} z2))=XGLSt>6Wdst{$F{+C`wQ+L~+C!?t^%ffCUv-j!g>XNJ2?O!{#aZlpEkQf6=e0 zj29vkOFXV_@Admrh+Xhi#Wx78d>rcqSNJ55QY;rr%~^caEniR~-K^Kr(w;8fxp`Bk zrGB)Y_D<@$@GppP(nx`q>6}tLPF8viXQDT2XxDr z(ECPpb5xHT_v!u6)Ct`*7IXvC6%)EKs%yrJSe(!kMpOSZq&A_iHBReEOa~`)3x?mj+F2X`hiOVpLSed9=CPr>$-Ho?+3Rg aZ+7RPymEPU`SR~| literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_greatand.d b/42sh/objs/lexer/lexer_greatand.d new file mode 100644 index 00000000..2d8aa9c4 --- /dev/null +++ b/42sh/objs/lexer/lexer_greatand.d @@ -0,0 +1,6 @@ +objs/lexer/lexer_greatand.o: src/lexer/lexer_greatand.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_greatand.o b/42sh/objs/lexer/lexer_greatand.o new file mode 100644 index 0000000000000000000000000000000000000000..1f7e550dd6c764bbb453a18130a7f06e3ce62e97 GIT binary patch literal 3864 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 X$~Tv9ckt>u_yl(=)6LTgP{n@%tJPrF literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_lessand.d b/42sh/objs/lexer/lexer_lessand.d new file mode 100644 index 00000000..d234e206 --- /dev/null +++ b/42sh/objs/lexer/lexer_lessand.d @@ -0,0 +1,6 @@ +objs/lexer/lexer_lessand.o: src/lexer/lexer_lessand.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_lessand.o b/42sh/objs/lexer/lexer_lessand.o new file mode 100644 index 0000000000000000000000000000000000000000..1533346beba8b99a137bd751b8ce4e25559045bd GIT binary patch literal 3864 zcmb7HYit`;7CtlM8ILoL?Ixw94~kI=bb-X_gDQe-soS`n1ouH6rCNao*PbRW?l|kQ zONz=akb)YeKoKCZ(n{qA5@@vuka!BQ-4#d$Apu%IfP_%_0SYVFWf4dP3gJ65caqqY zZTBkYdC&dsxpU9G*LmyvFMkRXNeY31LZC4fED1te3_8WmUun9csHa^7<{;@wymP4p!%uD;bp1o`E5@2=SUIp6yH0=#1a<6QBI z&Ym(4X~a7%W`9Mj_lVe+F?>I$ExX56PT-b29VM^q*#CW+pSIKhJq69I8)z*Ac(#sxtz3 zkbt*!!8D=Ms6wZE#y*b zSG%KDe(Zp?nrsA(yVYFPrrylv^l)|vGTXP61~WV8`t1X~v~76n#>@b18OWrED4Q7^ z^wspXUe98A-SGCI4E6eAV|vrIgW2?;NjuX6G`J(PsV|)+FRdUUDmqolmE0;-tx^%f z^+mqyRBdz#X}QH)ZDM9sxlnTzoFLB$yHs{Yk~POIjyQH9$$$<&l>DycM{^abmT$Hl z;QP`QlFu|dS$GH@+Tciz5N{o9hjrO%(g9E6lBnwwxE0MOg&J3@>==FvHAU#eT5LpD_ zLl8B!&YQ_-Mr>azgLmVAMZKR1$2lJ^BhvZ!P?WA1Rhn6gEt3H=G<)3 z&J*a69wO|mO!aP6?>7PL8pMgdG3-&Qc zS={s~M4QrLd;z%v(aJ)(os4f_UCh>ba=UI^25lo-i{$nMMI&9%C6Ky2ay0~hs?ZJL zHi)pUGq#>(eGQl<>AN5zd9d{$X-m^)h@`aM*arD1yEgEQqtG~aDa|wPgZ3O-8!@Bt zM`+%nH_7d76nPRRFHC9){|-Xcb$*hjqhWLG)NU2Y!Ksd<36rC?hk?ZspU-h$-NJ&BD(*XeDa}#4}AUh(j{x0 z3m$pwjqhGQc;yeTV%+ z3qZJdH`&D-jPu5gD~nxRY9fjc3cET%ygoE8Ja%!th=JZ7!(_PvgvJ}pQM~8E#bw1V zt})@_Vq_PWteDX&5V*L)go_J=qqthcK(1MKaTyEO|JvR#HYM0DjPjef4H%}b1$!>t zIzZBRLP|u#`cW~@GDJRn%HP%CHlcJZakspw*{@Kd%MmNnQAA4853y!&UM8n26`g#k zR=}^c*=LGUHMf!y{#0>I_quwId%#V3ceP9Y1JXIlNOf-s9yin=-V(ph4~LGT6i)?= z5K;)q6!C9K7)o4HqfOtchSsmP_NaP~Dr?uOF<32HOP0>3rTyyVLHr`^Gj$o?W$`QVf zUPm&>s^bYE@8RTNXN6n^i6wVD=u7R0ke3L#Tu2Cx(~b$b5;6`)&{&;kdgpt-y`-U^ ltUXn$=oX42MZCSxy?2z~V_&oIZ-MO;h<`rVmDz`#eg>?^Qwjh8 literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_number.d b/42sh/objs/lexer/lexer_number.d new file mode 100644 index 00000000..244fa71b --- /dev/null +++ b/42sh/objs/lexer/lexer_number.d @@ -0,0 +1,6 @@ +objs/lexer/lexer_number.o: src/lexer/lexer_number.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_number.o b/42sh/objs/lexer/lexer_number.o new file mode 100644 index 0000000000000000000000000000000000000000..95dcdfe7193f594ef4c6f9f84a74b159dccc1b8d GIT binary patch literal 4064 zcma)9du&@*89&$8*S_|3;xs8)x<0VT7)4s*H0`PYA*?YZBm~+6@yD37A%q4J6PtKUJTwFqLt;YxqY|2wBG9G@P2E-ze!p|i zO>MVhIr8^?=X;#r`Of?L&+q^HzhNOXU4VgtphW{L0YcdVx=iDTl*19vah7dRd>xpA z6sHlzwyVyGs#o{)$@KK(Ro$;enFI>)*zLtu4+qL=+WlhNv(8Ly-mX;3(q!Aicc;b= z`flOloKtw;4XwNUO2DsB`gp}sUYeWno@|H~qQ|UnE$a;tK3;BSrtBOeeq(+<-qQ+Z zqj&{(uEZwIc!OL(lnZLSe^mK(VFA?gT{pjS&YgEE*Wz`l_4H7M_+iwqt;_4;9nIxs zip}}?cq+XO;N=zlEi?j!T_@JciH$^~xDZ%X0ar10L{AfC)` zF_&+~JK2O6vDW9!uQbh{mtXbd;&sRSq{92Vn!uh7;^ELq$maZx^Khd0;|;fXdL3`d zFJC%}aaQe`d%WPz+IDuhE>=9F@Dj?{2Rv@c0qj4Oauc4jV9%AYx?Tg@ZoChEsqpqG zyfKBRRDt0y_;pJEycG+sL~I_fQ0L*WO6IH@@4gSokMq(-V9VPGOuh@0K|Gh@JCGT= zL1Uo$!Y)X`dgBJ`Q<>#AGfV&K%PgOIJF{F{&8*bk&aCX^Z@G3cvvO*6l}O9!3rm+p z{1KVb3PM+Et1D9%l<&%=pCKl*l3tC!VlKTm6#wdt&|hNSK#;-fk!R{72UR35%WEQM z)*}aGYni|<7!&8U$r^m(ZUMO7aSzkwPL!#@4gBYEC$nyjaJS zFkT9BdXTF>Q`#o&ldTn=fI=-kHIbdCGeR33V6%aqwn{o9r-OBfw=Y$2+asQvG_Ns z{}UYALJxC~Pl1O5PkebVwM{usyXRqQ?dQQo_;tny&9@-T|A0l-z%GFFEm1;u>FpLV z`w^{g4s;9a9ca6$eJs#zT02o2qt+SdZWFP{5bA_5c0@){4S|C9ggYU^rb&nS1=e>- zpE(B+xgTs0q}?7JhDc~bRu=LnH0@)LjN(YN6nnf6wO6U_M~~Ji)Z`Q#2y}Oe$jeag zqO(0b4Plt(A0WadFjI^4qW{O}&EPtkNM%r!7b_*UlPsRi`?`Dl7q=edl5?tQUy%`w zZE0$5i>qm^9{;0a@J%X6n;D3rgESF>G_dlPARg_MEX;*5ynv}QTfT25h|dcj5$4p< z^Vj~%zu)tfw%D;3^NDXi^m8Nm+B46-_Fmve<Z*WvnWCz7>FIjQW)!tQ~+jh4#EN>X0>72!QZy$eLDf0OV=;>yIE@h(>=dR#MN(RU3iG-`AV8s?z!@z5Pc99qk?5t=h@2+bSYp?zZ1 zum%l%+6af1j1UaaLW6L>Al=p|eKGh5)HXK!}NW16P90KICkTCb0Q+8hd^xvjrHzda1^DRik zh0Z8>vywZMgpmHHl;r1R91Z-!YMm;!Ht9Q?^v^Wu!k(+zh01JUzJQN_`W2HN`MmQp a!Jc>I1MQUYSD0Tj-ivSJ--P4N3h_Uq;c-TT<~FJv84E#Ay3Z=yGObJeZN!^6vL+g37n@&2ph^YC637&nWTv$hv_ zN-f?ovHB^o-%gR2@A3Ua`mPyYDPs+q_SJa9H8~H4sy7Smns_@iStrEW_&huj9^Du( zQ!M69!^-UB@UGhLUJ+lL2rG2M_*}fgwjEA_YvVg6@D>QX&YQ$@;wxsdwRqpu;O)3c zyz+4In)|&Z@J@&i`20=c;m|pdwecMn=fT@=S6FQPim1tNwy+cXEE^STcg`9xjC98p zSE6x&7Zb)J@c2&gMcjJ@-5NY|$k<*&cHIevQF9-N^R>nurh@`csH77Od3~1NdCTW4 z2eEd)YXqJwzTf9!zv1h|$KR!%fpzyobMUi3)8Wti>VRCr!=R0zsg0Lls@m{WhyUpJ zr$&EBjr`J*8h!FyYP2$u8mpX3jjiC{Xk{GQcc%Ff|5*u_T;6fYX@?UUW2h@u$V?z~R9GfJw}3aR%K9m5I^hw-c4g$w@emB`>B% zPPc45mEgk|OQ$!jkL@x`cCKK>RyMaZx5O4_^SD8lu55wQ+`6p!t~8dMgO5}CtyeKTAeq%|QW!Xt~qU5)pl)K!&aVd`om z(psxj{{qauSJwd)h!Q&lXF#|RM4`qhE9rIc?P_H3l{gw<=YfBp7R)M5-Ax4Tx_v+n{Z?I_% zuQ-4n$1Wv!#T-8l;K@>%@56 zc#P}Ld1)Y35J$?FeE{ToO-=^UKd#05%UwiY@zfL}J_l47#_ciEe5NEC)n{EQF0Cj;L1{Fa2L5D#{ zKu)^g%lVrDiN=}6kGKGYiL=QjPB6|JH?Ax;aj6L}J}7Kz2Khi}-+|b~^&%#6owA8@ zy#R#931$=LT$tj*#5E>Nye0PHk`*gD1p*USm@sjHuoqX0n8-EDCN5)P`mgl*krXdo zn8i)p1q@Qvyo^hGdq~<-FV%{49Vi ztxcV&y`|2DHXnv=RoSmbwNGH|R^@JWhBl(kK{o_#zba|>$U*FvXg8L?T1y{tH@@^m zS89BfVpv-!Sb{fw=b@{mHg={wdl=tUJ?)Y z+46g7(~+W3Z)hfywh1OxngsiR0BM`H4}+~6u#HYon1CT*^aDsi;!g@i6cAF&M#JyC zcb{jwE$x-hIrp4F-ZKxi947s+^y_F~W-c#`Iz zc{(r|QG|?Wx^5c_w%d30$<+SI4|T71oPt0jJX&@L02CXPB@$lK^=aeK{H$)-WyhrJ zqYos?-_9)y#3zM>TRzXxecn8pH>Y(yGg|XR=S_hZ6UM#3qmo=e{fUs9@QgWqri|>m6Lh`td$1z# zh6G+o;0cvs`*U8Oq<7y6dDB5`-fv9Y*C#|UFNyswT_Zj^mnZ>;+`^*ZyFibL`*a4f zpN2tuLG_K6AQD%ye(1XWDXscPt#ZC!s~*3gRp(c=<@pO*WspT48Npm_Idwr>hG1GX zwE_(^6j&O-@W<+gD{n?IZ&j=QX!ZHEwY6&MgL7R7=-g)byu?;1h*L4J>d$I0a3!;| zTvfedoz=+q1C>iXkwA$~Yx@#-^nL>{Gce{~3~`j%GRbM_pavAb8=_E~h#ZvF9VbixQ1%hkg5_Feg* zQ9^<<8YQ!A83`g`#*C!NuQipCbMr( z?1)je@! z@uBH#eET+QPS2H&>D!p0!`ZU4w!ubIJCjqHNyyCD9yXEM%O1FYe3accwP!dr&UTHb zl9McxnwW6A$@@kfjpV1N?w?GtQCAEnM|MwSk`o%+mmFskds8E0$qaKsqF`9wv{|-b z+051pc?ioDxuR(s7!p#q@(&w~m~PW0%9e4v9V7HY(VUIVn^u0-G^S$&XwoB2Z*Fcb zTV{6gvxW(LS6V{S_lArl90Z5a?CGqXWrmewHB1M_2|;R?Hn(+hr7fy%Y-^V~kY3p* zDQ%(9r$ReW0m>GpwB3wb>+6GShcwipw9&}z;jzwp!;EpxWMLZXWK7-Op!zpq_FyOk zpg@F?LvTHW3&B`RXWdGnR``x}68Hcve;7BNu{S6l>aYM69t*QONuUk8!r|V(4*397 zpLC}(LuSPUlN9>*BP$DJP>zH9lt;k1@+ELpc>>(8oCFUj&w>Y)Z-BQbFMx-XSHQ!{ z>)@^4bIxl2aio2xF(5~zUqeV-eya2fNB=E2w7J_U_Q)=9RetKhe$v_}XczvUl7}zw zdx*fFz=Hn(dk>^+X!#vPm(mgX1LP)nE9>NL7CH}YGif);-GR_;=na#$Uha;vaFDPs z!Gqr#+<`8AB76t^Q3!t^K-hr{_3r>vrNDlOU=HkVkhH615F#cGhIT@JolHZt;)Cc> z>{60eG|>AFX~S4CbQC>j(<5?s7Yn`!bvF%m_{Sl5AVANhKMzJ((W%q zt~&kmFT62DnWYmY`?6zgoJ*$Wx%kYk)#G2!hn^pzb>xVKj}+EZAvqEpVuVMH#;ERS z9A90G;^;v1JkpcqdabR|-@Q{j{?4~odj5X#%=XXQkLPdc?ETfYU*^_r>|c5;6b&DF zITw3+@yq{wcjHIzGH-eIo9|ru-r^_Ue;f0D1NsZ-zaYw0H;7U)2092Tf=+;*27L?U zqzk^3zx9yR(8Z5Y0SFUilT4Ig+&5}eS!AM86JB&t$kYd-{h?9ek%{U>Or$y`6Xkjn z2#pdD^_$01SYC5VWI*dFRB(XkKWq=l#y4f_L6iZyN~&x>wGy)Ow%wne`vkF>hgiF$;u%pQlMB)#9( z3NFzaASrL=3iH$W_gH(HSbW|p$AvwfziZ&`MvHaKiaXzFi@6U+-y9*;-Vi)!s6D(P zuHAJ-AH^u12q-=*?~_^3{W?NXA`|i)^KhE`PHDo@k~Yh;GYQW=UdY}YIFH{-j+r{_jmzuED(gFyHJ{UU`-pa z&+!%mL4K7>>X017;j_a|K3MPP+$8i)(*ZEn`xRGLolN1%_6Yq}AtC6f)n|mH|CSLL ryhhzRm324i^!=$HXZj4@dCNA9qs)DW^}LzKlU_@vyQW=bg literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_special.d b/42sh/objs/lexer/lexer_special.d new file mode 100644 index 00000000..64780515 --- /dev/null +++ b/42sh/objs/lexer/lexer_special.d @@ -0,0 +1,6 @@ +objs/lexer/lexer_special.o: src/lexer/lexer_special.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_special.o b/42sh/objs/lexer/lexer_special.o new file mode 100644 index 0000000000000000000000000000000000000000..093d8081054b86c0952a319d2263efc61093ccf1 GIT binary patch literal 4000 zcmb7HTWlOx8UANyXLfeS-rd+Ca!6WMa@r;+_PUO#EHELPc$2Yfr@@!BK}FNedSY+b z%q~0Q#Hj+Laf`Bbg;JIFsa5+>iGX-0sC}raauJaNswj6VUXUe--{MPzHycZ?R z?c$Z(V-@bwj(0#T649^ZeBY7v{R`_Sx9_I))e7#s<9!&fNA9OAk1i%cts!rUccM@f zCAQZW;>q%E1Ful6mL1zIoZ#|4G~dm#z7bi@w{KZrfLA$sTx@WAeX|m8o5Z_vn|PwW zYN6PUce)KPZZ_5}RNB@rsLwxLz3F^kka%y%1?;;`JbZKlvc0~C_~S$i=eyPs*iF2x zzGCGB=IPsu?x~VHXWJ8_O}TVd;$@^W-5GqhTX6x%lH2f{1^ZYHyBl<{?biF?C5g93 z;tfbVX%eQt5b7+$@2y;N1!DVrS0$b=i>U&S+qRFWkJly531)B*xcDB>PUJ@+%aB7H z1|0%5Hy(mXev-|hTk5k`{ff2xZpNyAW!jXw3u!VT>$YmnjD_8S@9mIFE#*urKhe3W2eKO_wFFCR?L>2C8ri}+p9XoQlZ>mr0lGR&e{1>mE&`T?9iaMU>B>W?Ll&EbnyIw z@6c#|e{ObS26AF-lBV;A=)ni3M(N<} zKA-nO4IiR#!Y)_b`OKp0mF8V%F2jH>zqkB678eRN@+)6*T;K=Nlaj9ncCru%f^qM; zf?puVD^defz=#sKQe}g3SF&4ElWBcRa)Z)^^B##RYSJ`6ZGHy(t!^hZxfLH-v>&Nm z%ASOp~b3Lq(!CxYE&`uU;H+~{e<3~coMj)!}RF89p%D*TSbqPG8o?(aj7w3;D-7#cwGGsctZUixT(GY-l6^wyfb`#Z;YlK#%Dy4l=3GCMTzCx*bUDhni7#n+GAk4^sBMkF_+ACR;Mbk=Q%W(eyMJOQ)w_JI2ij<|alJ1BZ7vwNo zk+f%B?EH1vpD341e?79VGyM0XirffYU})uoWG6V!lB-opZn3;LhhKkeDk5t7}p|5O&rk-{r6fo)HssWb6RX1 zDWBC$SY0EUA-W1=b41feG!+mj&h(LXM5LuhG{kNhNb5!xV~%Udacwik>w)@-5$&#V zZO6ElKsn!y=vd)RV$G?q8Z30*5uPAX-!}tWe@e=`rMy#02wqP8MJf6BUkZ+}vD#$P lJ#98$GtF_bkKuv$eAhWe!2@iU+!EgMmJJhG;+f{>{=dduUcmqW literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_var.d b/42sh/objs/lexer/lexer_var.d new file mode 100644 index 00000000..84b1cba5 --- /dev/null +++ b/42sh/objs/lexer/lexer_var.d @@ -0,0 +1,6 @@ +objs/lexer/lexer_var.o: src/lexer/lexer_var.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/lexer_var.o b/42sh/objs/lexer/lexer_var.o new file mode 100644 index 0000000000000000000000000000000000000000..1c10585616cff32ecfd2c9bcef66da399851dbb2 GIT binary patch literal 4028 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 J_z{J^{THUK%~SvY literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/reduce_parens.d b/42sh/objs/lexer/reduce_parens.d new file mode 100644 index 00000000..86ff00c5 --- /dev/null +++ b/42sh/objs/lexer/reduce_parens.d @@ -0,0 +1,6 @@ +objs/lexer/reduce_parens.o: src/lexer/reduce_parens.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/reduce_parens.o b/42sh/objs/lexer/reduce_parens.o new file mode 100644 index 0000000000000000000000000000000000000000..883f41e46596891895ce81939343f275505942ef GIT binary patch literal 4068 zcmb7HeQaA-6~FJ<_r>|L^R=uc-Dat!47SE0%^+h*NZ3qY-Bzl~GJ*tpIQC28)p<7d zbNaCc3Zc_Hv#HgzQ6XRx5}=`JfW)Lt8&WqAsc6|MA+i1es7O>=1c;5l3LS*s@4fqy z*z0IH%DLy`p8LD!p8MgKH~#gv|1=4qg#;RK7+jQS;$YBb@D)1Whh($gagt*|felPS zj?oFSEZ08l`nqr5pPagX-43*enFNSy6>|S z2R4DxZXz;-l9roQ@cMp@;>>oE*%VM^$X49H_?Z9LLG<9vKzb~ypcEs zS(SKW*LC$tvwGQF`s=t^^ETXkY~NY4y7;zPt-Q6IJS%Xk&06Jcvo>Z{UpK3-y+uH? zn!IE#T@kUb4`Euf2CFvS0q@1-O`c!5&5!iDQH9tEKEYo1D!XBbrN#5`Gs%@fG(o;KudZfo60;mY4wOj0HhICU z{w_#(<>2b-s-M&ep1bAbyKt+X7yKQ_174E#v6l4S(_E^CUg$0CEqodemVYyUrg}riSOO} zz`po`T`K1aPJFn3pno8KdnS(ubI0%ijQ*j){*QiGluMaJ-ac%X5+yrZ$=FsgU9z2W ze?}xG%NU%PJyduwn@$W3mglTY@rX4jT+1ySv>j1ak~fr2ihRMDjeAYbaYZ)mrbT8h zT@rRVBPvcgH|yBhxaTS7j@p7jb@PgJzU%@lpMxm-B2#c&8-Yq%-bgl6p`kgv~Hp$bjIr=XhOTtyb4!nbNDR8rcjrB1M(>Q zdRT}zVLe3aCKjR{+G$$7D1>MUaS4A$guFF$3hG~=hCgpyg=mWC#Ky(^%!ElLVBUR_ zZ~M>XdEwIbzyCJV)Az(bF7&-56X$+@?5?XH*y-FdaQuAsbv(8j*8-)p^Mi@&B&uq z7jJ`#;;E;LS3tRVDd>7?-SxlruL+fBtr5MExOR}=Zs-WMRXch>Xoowrj<%-ANknn- zE#T8v2)4Sa#tShK?RZ$fw>|jHK7v?XoFue%HQJ6=;~Zcu=VbDgEWXm#UVf3NluHTa zPvmwEf2`h9K2lD2uX|Yt@28@Fj!1RyHhwQ~%xdt|60+n$%5aI}ob2pm07Bd%;QW~DSv z%68*(ax+}*zAO4Bf>P+21$aWn7@WfJJ@RI#;gk#+p@rvUB-Az~n~W(LMqum9vJ0Kf zBk0`Y4Y|#z$n9|5k&^eMkjz1xW{jWi?|7A$_4?v=1J9s7WaWeXn?>By`O}Yjj70J=tLMY;BCcyTRVwU<<466bNg^wbI#aDKlU6bo}m4+wLJ7 kUkmKQ`M^KE`P_`~KOHQ@`QHu7o+;V(TI38q)G^}pcK`qY literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/token_append.d b/42sh/objs/lexer/token_append.d new file mode 100644 index 00000000..748d74c0 --- /dev/null +++ b/42sh/objs/lexer/token_append.d @@ -0,0 +1,6 @@ +objs/lexer/token_append.o: src/lexer/token_append.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_append.o b/42sh/objs/lexer/token_append.o new file mode 100644 index 0000000000000000000000000000000000000000..56e739c658bee16f66033aabed166f343f30662a GIT binary patch literal 3372 zcmb7HZ){Ul6u<9v_qAQSwrmLHZwdp2z`8N^VPOL{$K*8$&4-$ln;C`CPqFe&V;yvhI!6=_szC|%#)mZ z?m73K-#z!-d(UgXz4O~$Cn21JKm%L>oT1Q!fPoeO7tr_sx++)$qv!)<>wrm+{b&S| zBuyF8tiGl1=PWo!~K`WXX71Z7_-Go zs{LtnDaSL|>H(I&MJ@|CZ|Cm;`_0DH0VQ`Y-YL8gMYP6Uq*&ei?ssooHbX3r&&Ffn zk%!~OGnteksqwuS-aY$$i^bQxOcUK_&;dMrGq5>OL%AEo`? zQc2ZBEZ^^ChF8Uc=>Y(wGY^Ol^Af-b9xE{zd=U67drt+BO*jm^4Y-(a31oH!iiaNB zkBR!v;>fQJ{rW^({tr#!Idn2%%rpW0OW~QZzaXE!%?r;|IWq ziXjF^F1U0th>B%=zY`Ore`NR;5%ta={YPW4?pa*?9OmXc)=y(_ zQt!O3PwKI2Cyl}DQ+JKwYpZ|IqgV9XM(oOWKN-W5dO?p(oSeGbEsu2@QCPDp(Bc2A zf-{CE+=cvwj=Yy!HztmJ)v)W!b}Sg7?(Ut@&^{%bOQzLObGRYg5LzXtpvu)XH-Hju zY7DPiO>$YeKBWvP*?KMgyrN1_92B)LER*_J4t(ne_NVvs#p|0Ia|ub#9FQ7`oQP-1 zpqfh#s7hbR)QVk6Qq_oQAev;!9FzF|(1;?HRtG|6gY*01TAV03ndFiO6#^oW&T1s3 zsDzutt@PDUhc6&3^3CC@A!WRubk)G6T0tDXO&$+iyoxYPtLEA&9li~o7SCheuA0qo zEh!~DGogdfRH8cP0gUB9h^vNk_&gr;Cd6F@$Xzw4G~=cB;-Vm78lD*OlC>y+IxS(g z_J@{V52|A~Gy=zO#=Z=Vi(_?*%zTl#oiD%uM1C3tKNFaeoZGFlz05t;>y| z8&G?kuMN1rfF45f9eiz&I5}ABZB(lr?}DH%$3+y73GwN65i?;k3)yd}qn9Wnb9|2zgz5@IU@Eu^Rp_qN#Hzp2i zB@kvFO?Vh^?~pKoXu_PbS$HeZgja-_a4j_9QO*Mf!UI4Po**;rW+uED%n=U;XW{i= zrvJ*J6EcB&2ag$I*B4Pr$j&Qwa693K0$jlBbd9oQ7Q@V*JBTzrZC`)V?h72_JF4uT znQoZNlMa~4aew)$pv4?uwA@VXftn$w2K(@PUtCI{3c)n9I)xL~3v|Qnv&b=rqt%tJ zm+1l_LR}FmXu?KXCA88?=(kdbkf44TSs|RDYe24x(B=r;*h&|`*m>%Y&?ezY+5#h0 zAm@UFfhDbUna~2h=cz9ubkj$`ys(un1sA~8Xl;agh1X~en4!D8mGT-DglB~wSjII% zSHZf=zo(0PsP8nb2B#zFG(SRl!L^JR%)=++5I$_8?ifheUEMAwmxF}6TlbWu3tO3d zl*y$`fK%| G1^)mMGX-P- literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/token_cmp_type.d b/42sh/objs/lexer/token_cmp_type.d new file mode 100644 index 00000000..d37d7e4e --- /dev/null +++ b/42sh/objs/lexer/token_cmp_type.d @@ -0,0 +1,6 @@ +objs/lexer/token_cmp_type.o: src/lexer/token_cmp_type.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_cmp_type.o b/42sh/objs/lexer/token_cmp_type.o new file mode 100644 index 0000000000000000000000000000000000000000..b3c384397d9fca9239106bc8d2963b07731817d9 GIT binary patch literal 2756 zcmb7GU5Fc16h3#7$xb)fB;80^tx6zktwob{UF@Pu-PqPkr5@JDE+gW+yQ} z+uhPit00C2T_0BZSoA?(1O=5^A1vy_LJ?m?5TW|g2SufbV6@QsotZmnGVN+SaPGP1 z%(>s3pL_4j*MI+dwU0>n2m{y;uBaH|V9>4L78^IAi}KkTuK~F_Fo`+BMv$)8&E>i? zcl3k%pFVh9cW1lggz>sw>!*{h4@+IonRAW2UaMDav##%ZDn0vH+r`D%kd|{YzP1CA z(lKx2mCA-~_Tv5C>5TbH0gqu5yzJau)m-9uyW?~58WN^gyrMN<<|SUdJU0*I;{GY) ztMs?)c+-5VSu1bWZp3@0%bVyYZe}-idAR*p%o=ux-uPTR8DQ;7a+o5$Q3(b>nM|_p6;l(@W!JF<8uf9^bX}%XF zo{$B!dc?z_vmw3l{lEtvHdkGGq^)SUvQl%hK!JV^o_g|@K*@)hJ3la}U(WaKn z_w*+54Z|zSo~cBz9+BzDkkx^JCYBMdai2&wY{R^AVq!IsABh$*k6jWh*|O97&GEcN!%e z>ifn=pd`mellR|4wW^USnagH1RWCnpTDq}V(Ro`W4N4uVVRb5hw7ihZrp88V1>LBu z=%du_Nkyyfn5eGXkEkXk1F?}sschxr_Q3wRY&}axAzLN0W>CYb74w#vi`$l3@t8?f zbDqRjaaTB|`oht`_V89Qh{`ER7zf2OyK|tUOS|N}y>nfI zID7<;L_{pG@F{OB^BpB3FJOdL`O?;Y!AO3-u2sLv8!vDQ!wOhA(8trbvPWw|e$J*z zB|+NTn0>=qT1jZydzk&m+M`M$s(pqTzfak#B!(#P6{fGTI_O`AP&M^C2>-hn0z$pS z^A9j+LS=ZO%#-O1=jt*FYLlZopNsj8Kbl;KBVe{C!AzZNS@*8J2Kqlfd|5N|31Z@# zLQnuw#aBN_jOP+R=LYZr<|s!_z8bvk0qc&|#@LI|(9(xSeEs+*YU;w7cP{*O9M4|| zzXkpXyaE0m%d>^>KcOn$Dhl2~v>QGUfs~Xxq`Xr~2>bc0l<=hp4=y>EPWuL9 F^FOhyY$X5y literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/token_expand_var.d b/42sh/objs/lexer/token_expand_var.d new file mode 100644 index 00000000..77dc04d1 --- /dev/null +++ b/42sh/objs/lexer/token_expand_var.d @@ -0,0 +1,7 @@ +objs/lexer/token_expand_var.o: src/lexer/token_expand_var.c \ + includes/lexer.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/parser.h includes/ft_readline.h \ + includes/exec.h includes/job_control.h includes/builtin.h \ + includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_expand_var.o b/42sh/objs/lexer/token_expand_var.o new file mode 100644 index 0000000000000000000000000000000000000000..2a5f009c461d8fcfdd19309bc0f38ef9cb2ffa9b GIT binary patch literal 3128 zcma)8U2GIp6uvXtJDu&cyW3U~5zQp62#MWYp@|g{s8AUSBn0{M!A!QZ!|viTyV;$V zf}n*Wx*?GgLgHhi4;m5^P4od15dsn-519DCgT9HeB>s??2uiemXXZ}3JAmaR=boQA z_nULh{h7J?_pkppGbTkC25=L&%rWR-(4*kn6)5+|i z^zN$nmU#OLkyWtZ8msTR&q` z;OWAd1|Fq6f&C{^4&m8(b5{kc>rXJv#{1x$z*{ZwHVZsqGQj2oon)~8iUr3*4A;wo z`$u~CV|-=aKj&~5Mu^Pe8;qld=$ImxJ93MNdE?-J&Y zADm+GBdcfFgy;}`W; zFZ9#-)HiP2zDXakE7d~D(fg9=WLjTr6>+Kb^rc}WdzU7kS;DFnD^;{d?Mlimy=FV6 zJzCCS4~=9hNsFbnRWU!6+gsY5&7^vlR`aG+-e)dl;aK0nT+@5NszTEKCMStv$;s*7 zP;gw9&A1t6jtVW$*{X&ON=rna$2 zY<(vgeb`;mZkQ`IjkeMsVE>$`v?8pPJxv0%-WT3@TIe$;DsV{Khww;>OHxEWF-rHQ z6sM1FlYF9lnXL9}zLmd9RtH&(@57)R!9a?)J+%I>j z>c`N2B=9nj)1Ylh^W8hqLzz^)Mj!~&xMN?mRuwS7A*j| zXf;IC|23%@Z5X{T9uTCNO9aQ(Dh_AqI~l$raGfC3yK0ho|0G3eeLRZ9CH`=W zI*%_@2DvuKqdR%CvVkkgVIEO(yyF$#t+;&23Z5S1>LB;r8+Z$X73BqGrx&D=9OUiF zH4mlfI=qLt^o^__RlMaSxQVfz4Ul+oPah=wJqsYQk$Rr>Z6zh-A|am;5`y9t`ZXr` z2xOdq1ucQBGd;cDrp;e(KNqr@xyv#$Ra$p1Gm|b)vs!R+McXYo MK?MFPY$wauf33Z~-T(jq literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/token_free.d b/42sh/objs/lexer/token_free.d new file mode 100644 index 00000000..1663b0e6 --- /dev/null +++ b/42sh/objs/lexer/token_free.d @@ -0,0 +1,6 @@ +objs/lexer/token_free.o: src/lexer/token_free.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_free.o b/42sh/objs/lexer/token_free.o new file mode 100644 index 0000000000000000000000000000000000000000..2d57db0ce6da1b1cf667fcdae29c878bc7522607 GIT binary patch literal 3172 zcma)8U2GIp6h1S%Gdt{--Gw3`2$`h(XkvFOEu>MzRzS8;6M}#wB9raz&|Tclt~LH+=BHs3e+bVxm!F6KUcD;SC7KoN>%QIhZC@LZ3ghvzU&e?yHyFoR_+(jmd!RmOxwWcrS=N?Udw0F$edj^YQ#+oE=D$gh&kHRJU);a#31 zUTviE(ESccyaVz8|D7WqE}ejE&Tm3Cg}>j|qJheKYEyl4+I*$X7Q@(-zlPNdh*#+xh71i}7SXSeEkd*heN8*i3JZTbO3%<_M@4r&f5s1zE z-6`=d$w^n_ey1OiAD>H-V`E+*C%=^K7VkdwKynPG(@ypWi1*7ZOBVPtySgVcb}ch{ z-OP-=HJur&-^iS8(?l(Ql2+*pE|;F70H4?SC8n z-hBPLUcOgmfB)W>&BJ!pEtVa#JJpfuFrUno@EEjrcfd$>txG-g6uH%0x?~UA)pV`= zhV7tWww=mRdXI~l>A@rAL-}mFYn@xLa+MKl9o>(je72S)w|LYRgH_`SWvgf%i=D7b zWoOW=J8p5%vGZopsd=-hW(gE>rR4TyCkru03>=>;WUFMmIhsKc9{!{(P*%rVwNN~% zFOM%!7NQ(#g8Euf6#hjDrx37E>4}Eo&&HmMt!;S$<p5D`QD zh{bsf`;uW{26=9ywaP2TU->DD1ac(=l#0=u5^CJ z2PXCp+2w^a%w<>e+eb* zO0p$loROJ4fyl|*USa$@M7{CkyXxlo{@*h`LX}QnRFpgM`4|;m1FXzEZj`RO)pXIx zmFjsrUF_`M(CBeT+_ZRqT#`X91)e%Qh=B6~QUz`b`NY9MCyDnHY8cDXJZ>35p@gDE zqkn6LzFps;CG_puqK%sVi5Axj+GDUn+qEV7sJ7BmBl-zVg{tVIs*X+2K7e4=_I^lU zwr_;QV(rg+eto@^YouH$B?QmY&q}!jG69EAE1(2SakYXr>p`2WgEjsWp0`Uv9kPdn J8u%rk{{T4^z(W84 literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/token_init.d b/42sh/objs/lexer/token_init.d new file mode 100644 index 00000000..dbe2d77f --- /dev/null +++ b/42sh/objs/lexer/token_init.d @@ -0,0 +1,6 @@ +objs/lexer/token_init.o: src/lexer/token_init.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_init.o b/42sh/objs/lexer/token_init.o new file mode 100644 index 0000000000000000000000000000000000000000..bf1ff6fb83822fe27d6365bd17e319e950e8cccc GIT binary patch literal 2924 zcma)8T}&KR6h1S{9Tpar<);l|HDkc4jVzR+A$5bSw01#EYHceI>SUQ6VCyoA`vbJ8 z+5~Mx9;AtFf{DhMn8p|rHEJaBfkqRW^uZV3e9)IhAF8i{P1Nt)xdXe~A2`Xm=jWdL z&AIp7pZV#ZKmV;J(gK7ATm_yMXiPBZ9`HIl??7>m1uZG*+rT8|2JQq|R>7Goc)DjF zKRkMT%l0)tgz@;ZKi3j*ZZOWV@X4}L&RB86$`^9dWm$(_h#z~}?(YqF8x*2qJE zGpZJFd53s7bP}>Mzgo2^{Q16LQ&L$^t*Eb^ox(f|R?(eJyD7^WIaE5LTj80?xe7c^ zxh~}0D^M%&oJnguhw6F*EUWxJII8dlyl(nU;VF{SCgG{)(2cH)QOJ=YDNHv2Y|Py9ZjA|K6BiMZ~&? zwkSIz5^?^=$V)%O`J|a6BPX9VXPjIqH(SyC!C{r&7tT-k$uVWlx{BdZ=K@ILa%@n~|L?GFf-R zlug<#P%2qSl0BKsk(0Nn=;qTCu9GsQC!ap!5C?62)Kf`o)E*2si$FMH+#7Dxny~JA z0}VB!O1mKf;e(+kP@}45Ef5ZcJVVq|AUxE}MjxtcbinKng%DO91zwXjQ0t9*sBWnF z$vUE7FX_s~$n*=?D{heMOm*}q3(%k^Wa~dc`T>}Mel#zFwIfw22vh498OS%-HK4bX zI1lXtTXDTTD3+joz}8cGdqjK;?Nhb}_4ZZ@yaV-BHk*t&2ocmTK^TkNXgUWQ@1Y55 z#$^amrQQPCd=<5mpP@r<(4r7pP`@zuE!&N3f)dZi6aFSv$NmQ@#osQ5b7yYhKoB23jSNVEhb=^m=M(pHUHGhXmfh#x4z(R{?_0mx z`+B5q=4;!$cy>i}UHj0Z1-4B-d*;{1u!{?%269o@#T8O6xeZ|QzED_PE{@`CRMg!TsT$McNh4a3+H8zbM*gyC zXO59J7ttbh)xjl1@kjQ6mu`BCr^XY-!;$m)V7>o)^EqO4ilf!Eo8fx2@&y8dmUit- zF@@J^^G+a=S3`7?=dyKFaX-ka=v2c}QlLQ-yJ~+IL1R?t#xo*p3_}*BY=e9N_THFi zi-|}~=pTyku-J#N{ct}X69;2rUrdp!mdUi7DTMQk$&t0{@V@&MbM?oxC2&no4H)zw&<& C(tuU~ literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/token_print.d b/42sh/objs/lexer/token_print.d new file mode 100644 index 00000000..0e00e9ea --- /dev/null +++ b/42sh/objs/lexer/token_print.d @@ -0,0 +1,6 @@ +objs/lexer/token_print.o: src/lexer/token_print.c includes/lexer.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/lexer/token_print.o b/42sh/objs/lexer/token_print.o new file mode 100644 index 0000000000000000000000000000000000000000..2c84facdf77a2aee47634e96028aaab3b662dd3e GIT binary patch literal 3640 zcma)8U2GIp6uvXtnQnL6?Y7(UW5sMz3To)?Qi?VTNQJ^uOF}BeYQS+jJ8c)Yv+K@m zX(?4=jk+lih#?a7p>I4$h!2{;gNjIk3W+B0fQD#aOvF?{F{X$SzcX{E-CZbflXK6{ zJ@>ok+T>W*}r3xr3p?5nUjl)a7*aYa!LGn3H!xKU9G@f@6XK7K&v0%u~O3cR@1 zlkHOgYKg&fdX&FuJe7gob9f_!@-O7 z^klR_%D*r^2k$KoaKCs7y*EWuit*m#s}J*hce`!iW6pWZk#8oZ_i4uMcmX=hymq}T zPqD>2<~tBmtq_ajbMSb0?A~~>bULXidTfBgyDi@u9^Wb+)?fFG&&Esj?6eNJIKC|$ zZ!yP7W<*TL!kf*6+^<4=)t|%Sr^JjE(ydXEW0FU0N^Qb=_auJ@^uk>bcy7q+P_h5+Q zt>t*#9FMEa%UHi76L;=gGND_D#rdA#c-Q%)BRt=WbHqpcV!ef4d!s4%1)$6Dr@YF2 zj4cC49Bd0HzfrzK1qtUn+(qt+=6;TjO+}))(dp>e=rpT*;}G1>woTnai;lNVN5@$- z*LDpeh{Q>VljEDGa^H-d7IIxvV_%55ucH?*oo3TJf8__7yMOg-kbj}YKc^I;`&ZKK zIk^bk`ti1@=y=z)j`4PPGpwrvg$Y8fMu(t|CbNGK9~SWV)IYHW!>2{ku`mOnBlM!3ts)NtRf z)XsP;+}vdJD{6XJX<~Uxv7})#Q%NSk44bJb-PClGajqDN-5R4#F{!L#8PvOFgq}?4 zeZj15B>HqM9z^I&r_ZFd0AOuya84JGjKr*oR!5WKF*C;0{#b@-hRSB}EQ_@~IVBkG znKs0PDxtv_kX$~$T<5D2s!>{E2*zq*t;gki!uzCmY57xhJtQV_!=?bf!p#M$RLRIH z&jYh(;e#I#Tt2UtAQ*F3FqdyrfRq;0d|4&R!m}8*HC``Od6w1%hbI*`E4S*Or2L1# z`Hs)jzGD!!?SQLLDF`m{&``pX527y-52ZgNt?F-EO9lWhRKJ2AV=rB#vA{-K+g?j! zH8jSg!|3D*bORu9VJZEsED)>RBj6XvR3p|i_ZTF?5NpMHxBDcdKS-M=*85qR{1ap= ziihN1A-)T8ZTB1nD|Jf~VA4%=vWx}KkhZb(JXla#<0edsN?J>+{0{AT(pqU1`uWgE zdm5{_J&-73X`NWVfXST@zlVcV?U^LzmR^L#Ll2WINIOaX7qVOMRMMmpT-0Y&3R(@?0#ZSPpd5&51B_9z%mbm(A(M&D zo|~w2$TR`MC80)DK_)t9?nMtcX|E#jB@DbSo^n!5HSAkxjH9*45laKdIO=jcxzX@lJ zOqgro#EO>33N6O45w@O90|ip>nE)Oh@K8U!M79TH)F6MKp_IUbzAv^9-m#gN$WMt$N&HU literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/builtin_history.d b/42sh/objs/line-editing/builtin_history.d new file mode 100644 index 00000000..6f1e9d61 --- /dev/null +++ b/42sh/objs/line-editing/builtin_history.d @@ -0,0 +1,7 @@ +objs/line-editing/builtin_history.o: src/line-editing/builtin_history.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/builtin_history.o b/42sh/objs/line-editing/builtin_history.o new file mode 100644 index 0000000000000000000000000000000000000000..d1db041c0ba9e7e7b2dd35111b8c807832f01839 GIT binary patch literal 3540 zcmb7HeQZ-z6u+(~}Z zzyYB&DhQYuV0pk3f_wF0*W5_(ox#ynq z&i%b}&$;)!cJ$`2|2P>F>?SEnG_U1SYJwZAcqUF2fBrX*(_C*eCsXTV z@t#6L0jO?Kl+8O^w>>lEwSdQUom*~O@L;ZhR1^a*orzA1=c@2#>>4Gjk}5n*yhu+^ zF5XA^tBlXYD{+jO;-%Ey3@x$Zo#1bOgzr1=GJyRxMqQvy8(%J>CgSLFU=Gx2zM?EZL>Y&IQN)W~iM@2>rxv$_(-J__C3x6>k<@29Sw&V}^LzKz7>wuHkqBPvBg)fnPRS>S62`msp3i#1*$o-!n3YQc+Uc4MEKQc(A#)R>}d*<8M&o8twzu?2XP(k7fg9Y2ssIIZV z+7I?~ycUkv&GER(peD^ZN%Ov?Q>u<=-S05RTg`(x&G*}UkN7ArdN1@CiKgJ^fLq{C zP{$xC0R*!ZTu$@~Vn?}ghVxFj_>(+zy+tnW`$H}kuF1vDs~@v#v|28;G|R>Cn0z@r zPVn;3zA@%Igoev5hi{X|#K@HS;5?d^;62pLopi0#;wOv=a$i1tKH4AFHNK-Cnx!4O5xk`(504_zGxUM1Og3tH*2Mi z5ZJP1M@OJ9p3A2)YM?pT6l@AS9!;Z-H8wXv39ecZT)vd$bI}l;g~oU+rQx#^>M5ks zm?+6qUd!YLf>9Rg%mXEq*pt~6i-cCK$S0L(c0gIdEUql2YAhSkk}R5xo4Z@Bj90Z?ml7!uMJiAxd-@*tjd05vzGPLgEl;*GIM&$~G53#{&Bw+a>url%?w?IkLpE@ zif*|hc7ZkRKjJy@*Vz0sZ%?j^22SlgcXi3{pY2_Ji;DId_+9Wh@Cf)@@NZyB9AQy5 zaKebFK4hYzQ!fQk9mqswoDBvIgULjd;HCrIMCIcPscPg!#pGU8K{8QMxz~Rs$%zD* zo5l(dKb?e8L1x;7!EH?F_Y3}Nr|THJ=p_rl-8c2@O`4~hwR-)BZJTP0BBQ6m*T&v} zry$(&)?n1X*su!Lmc&AZd@htyqv=8{9!jljexlNnAIOIkAdK{ z)YmIYFNibBCwg%ly2AHWE>@oPv#IE!kHcpK@cL2rDY%Xc8*-}oSx zPa0ARak+%cg9VnrHDZNb5DG1x<}I_Agkt9Wej^ literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/check_backslash.d b/42sh/objs/line-editing/check_backslash.d new file mode 100644 index 00000000..9adf390f --- /dev/null +++ b/42sh/objs/line-editing/check_backslash.d @@ -0,0 +1,7 @@ +objs/line-editing/check_backslash.o: src/line-editing/check_backslash.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/check_backslash.o b/42sh/objs/line-editing/check_backslash.o new file mode 100644 index 0000000000000000000000000000000000000000..1fcbe8ce376b9816499e51958767304e554fc9ee GIT binary patch literal 3052 zcma)8UuauZ7(X}3xyh0=Njr;^sRWs`!jg2Q!|J-V#dTh5McLZgqH?*py=~H^Nlb3G z)W5@abD>V`!@xK3%@;)kAAFfIg@J;;sNmZe6(=a{!H22C`uom3H%o3i*ALG5{+{3Y zzVq+i@BjYe-yma(pP@qwpnb{FCDB0lplPJvhTf(Dper)Q)q%;VCCCZVb=#`jj_l|Y zqtg?&bXU461;QifLYT1*vIW>_VlL^rS+y(q;=DBIdOMzrXp$DIowmd?ve}AtlGd|5 zKNoLCVr&;LUz{t^5HH?$GQYDD?_-(Y57-a6XTQp<+AqjkowMDq= zw`iCmMQ?sCp1X{9#xu(0f~6OYMM`f|y_0hGL7C5iJLc!$m9h(BgT48!NxVH0@1BalZgLh$@c=l3x%X)v7cu&auKHnxDF0p|0=9i=g1mxDsb~t)VFK2WtxWA=E z)M@Lr;;DRbR@cXmw8Sz^;w7cA2Y6)q6X#Fvxd+e6>2nqAt~0><9^@q6u*B0Oo>WvGUJS?|r;^NGW>^9SlMT^{bCx+JpJ7`=}1*B!9N=(VQej#{k` zyH1KkKut!k)^2DGwK;&CBJvAbJs~wl*R|!ZlP`XCILX3ngf4e-e0=KZ0iBvw0g|kc^qL%oBRnFi%tqMm3iF=xNbhEsq_pv!!_e3-LVwgFj!tBNJe(L&|(y2Tc+sXa0gt|M{sdQoU zd}$cFl;N;H_E_X#b@4#yIu-b#&?* z)L~-n_=raHyA7oXa&+g*_!d97PRWTG!P8Di+gLJr$8LaH@wXF0^WH^)Ai9?dQ^7et zRJ3S}naK;U_JdRY6ida>g#`WIR6)Q{I!>h1%cUfgHgcy|UOvW@dO}G=gQ0g3Mbq4i zR=-I|8yoIcu#s5etncv-_c!7SVtnjT^osINtOLD5bD$~S^NM;l9axdij^>8@;|dRj zFY=%|#-n4rYmRr0@x&lk2f1IJ=euV3-SBh_^82QFXp9HP$n${c{pvR}e6RWwkEk^s zMpS5!cdJi1;xq(5Y~AV%->2F<4EMBf?}imxfbi5qA}E9)1gr0JWyPnWq90LEfU(rK zqE?o=B>AV{SclXH;Ml&@d*CQ2wI=;^G|8WL^zN+mKM#(VD>WtUkAUNiOcBR;H6!_6 z$?umOO!$vVJ_H^YD@Y#aU2ajC4qK~!+@sSGZuOJgs`q$wI*P4+rsG*D*KB%8q$nN~ qeb%rIy^1HQVA-Xj@F8ZQlyAxf%Mm>%LWCA9)2>x4$Q4U`!~O#}dzl*m literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/copy_cut_paste.d b/42sh/objs/line-editing/copy_cut_paste.d new file mode 100644 index 00000000..65d4fff3 --- /dev/null +++ b/42sh/objs/line-editing/copy_cut_paste.d @@ -0,0 +1,7 @@ +objs/line-editing/copy_cut_paste.o: src/line-editing/copy_cut_paste.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/copy_cut_paste.o b/42sh/objs/line-editing/copy_cut_paste.o new file mode 100644 index 0000000000000000000000000000000000000000..f117337cf4eccff6baabc1c680370f59f79f7087 GIT binary patch literal 5508 zcmb7IZE#dq89sM+&)v;#vYP}-QJ`)|K1ypgAw|sKrcEsAT(-nPN+MD4ve{fVi^=ZJ zeuRKzCT2mi1hCZ7u^pxUz^OV_8K-CmmGWhvQwxkg@DD$tLx*HWM`SWK(^lg1o_lVx zyGaGl3U)JheN9~I?Os6XJMJ8v^sZi?&32PGqU zU^1#zBt+5mjM1Ml`zF7&W!u(S-s&BoKu`#eVmVpO*h3_6ut6eL(e=)B+G0R;eM9rs z=2=0%jKei6ViHydOO6^louP}hs&v*NNa-YhHhX3SR1BAzazGaJ^=EQeZ#`lH{=-z$fGw~9gyTt;R#cp~oqSHz=6q4 z{X)jBfYRC8j7o*_q)K>n9OqsU5ZY5DiH+~58AfseI(_Kucs8`nlqbL*M!Ac0Q2 zisst`AO9^s3<-Tcv?GlKs*S)LrsKp+(5C=a7hgxX2ZN-}HBO^2-vK%)(nr{8BP|#M z{;hX3yQ1YUo6QM8ePDJu>nKyi#0#xc?gM+HGnX(J87Fn=N6b}Khw|}b0^`e6{(lVJlr{r5ECw@i47d!b5 z(lpGNm>n&0MLYjjrsc1hQRb0jZeSeCr_ByKKI%}|NZX`HZ8A47i5a1dYYlK{p(4BE z!wZ#>>|}0qI-i}K_%ni-fF0(VU}?ol@~~*77b9IIVg1jsz&!19inBY4Wyf28C%)w2bA?=dW6ZV>mcCYc|Y9-HwZqF4jyR zAOEIJ?XCVkBbAON;{Jv}U7*hYSfmGE%$kNeFoCu8fiB=T!dKx#bL4rP(GBPX{&#+`7&C;=bhMu82FPy?f-vS6?wsCn3#b zeMPbPC~iRRyhct{Croa;7_M4Gs=f>jcW_d5#nH_`nGy0-1=X%MH2(=hyx z5PN9uaKAj?tbr3>L;9Rpk2I1g%zVO8pAw+g0)0Ji{Bqc{b?W8)iKXlAwS&HN^hSC+ zbR#Miku&HT0z?tp05l*ttQ;t*j!RxlHu~ZY0JUP3?sH6=M~@}r#XkUH>gAUrChv+_SZw(_5U*#G&D>IR2B-@ki(NyLAAe;4!=`ytdH zp`JpeS*JK@F&2TM&@S0@{6IPo|r)p#INKdxQsEs|@u&!8=-kYw~<^K(HK0N?5b%Ac$W%5%2 zhPERsle3H6d7UZT<#w&%PBp~wXIG=#-N98g!@cS|d;y6<+^4?AJrFt7Zgq$|pjg_$ zmq527$R7>yvLJU3ahsauz7ApM0!jt!tA)3szR#IGe3v`juBQPV3PBmgP$9lt?ckpU zT^8g^1de@(J43umZRC{@t3mF_0I?C^Aq?2fKMne5ko!Y?RgkX;aW^c6xQhaZ(UG^g z(t)wQev3QYXL;E#ki;!s^#WgXhTCqy<{fVP9#_8x$TI{^*{(XqSEIW!$d?CsCB__5 zpHsI%)y>^V)~-Is%a4Ij(A~)W4ep^SXyo=I+_r-zi(+G{{rMXh)YZf*vb-D;MCOFA zDzKv5*1^lrwGHv5>W{_TA&tk+@YNw+7vzCCnQ-S0bE+`sV)Uh01DbNUVMVHuL>0Kj zLH=-v+k#lB4hV(7M(WpudQp&9K^;KCSpbp-JmdeXcMRhydM<*mey2&!nEcC>@eK;HNOUhT@Bq@ zD9h*uCwdSK+0hRgWVf57kZ(6>?=zr)s#$09%hrRzpIR^Jzf8S4A*sCF#OI3a+93zN z`UR=4m2{<~^sFSiosu?5>X#Hm=!Yd80`&sWdP~5UdC^#R+)2p~k^+VPPbB>ye5hb< znNRA7r(doLSk_R&hfDagCHz-Pc$pWZW})Bp3h`el;pxUN)c>Z0XS#TgQcI6hqGp>i zdJ}zy9_vkJ@d|}FWrTb1%UOXWYGm|IBO1l)bWbdU_ii?o7N&5?7^&V!IBD`^7{{*^ s;+H%zR5q0|;stzvUx41pq{Dl*$B0|qE~96rJNsJJdqphPVDSk1FaFobHvj+t literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/ft_split_whitespaces.d b/42sh/objs/line-editing/ft_split_whitespaces.d new file mode 100644 index 00000000..8c32499c --- /dev/null +++ b/42sh/objs/line-editing/ft_split_whitespaces.d @@ -0,0 +1,7 @@ +objs/line-editing/ft_split_whitespaces.o: \ + src/line-editing/ft_split_whitespaces.c includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/line-editing/ft_split_whitespaces.o b/42sh/objs/line-editing/ft_split_whitespaces.o new file mode 100644 index 0000000000000000000000000000000000000000..25103a254994ca10cc709de98e5abde5948596ed GIT binary patch literal 4208 zcmb_fTWlN06`fsjRwgNPC0lXQI7t~mmLIJic9h0;=tM@%U>#XN;Y5yF#931-QldeT z3?GpaRH$LffoQgD}xK*&Q*>k;rgv)XZel!ep9f zUORpMCCAMioZm{zon4zQr=vO@(hgocX$f;Z-UG?Y$tlQnJ7ef=@xsHy>Bw7zU(3(I zn~(rI#fv4PNlK~5OUXS7(k7C4ZS_9tCzrl0zjQb;8p$-`&CC6?Q5XyQoZhD17H>Rk z35xan96X2KSL20Ksd&UpgvW_q!+LK>e$J6P^_Bc=yyWm@vBCBHp4RMjwaexGW`}r! zUn*?Xh{-4j$@r!Gnbf% zB}Pp1+?i@9?g)u@Ng8K>N3YChIDhihsl$tmnb9lS78( zk2!tPo9}NdArR}=yDIViEf3)2ZaaG&{G_RdADx313h~)55;-43DwO%-b!e$2U>(kF{ z>kA0qqwpD42ss1DX;bnKJ$?EIxB6ys_pgWUf28Qw=>1vq<53Ki^Peb%PpIT-5^jSNju$W)mC=8Sh>rbGyddt0!<)_L_|1s6gnfQ8} zBD#0kp`njzxGCh5s_~;7(M#*>o68W>-kj>UN(w@C2XiSUqSfe z+k1e1h=7Wrl3@+38_Kd#Sh81X4ctWqP!9L);^5u<@0G&fUBaf#Twm)zk-;7z11rXo zdl4X;)dN}ub?>=&b5_*5de)XgB@rl(j$M*p!6bIqDan>&RV~RDW3?n(jEFo>9BNOc zK79&CI(1G-=!|bINrMOI9+6WLOD$Coa7Y~B(#4yn>9-?r?%aiez*~`YCYDSDj(7ER z^#l%Cas1$Q9`C`RtM^#f(Zej0wz}iEH98|Bv1}|c+8xcBnN&QMH7CYm*+>SLUL@0H zvF^bPpt?sVl9xxq-Mz;$W2TjQ+dRgsv2dDEQZ_x3OU29yF{no%V?2^DCz9!r42vbQ z3{OU%FP9nYOlegP`1f*`zeU^cZ&mi-e5*P;yBAkUJ9GJ8@cD4nxVsRxN9psr{3m_S z`wljr-TNXgM$VZkO_ZSZ)(o2(lkiQ@A+XtTng`W{1wF=^*|$kSwtk#BUsEdGIj(U$ zG)3)#qN`8{y-g&_1^OOSbcMVMSLY^wA;w36uBmg`U(%@ch&>vklcnsTP#}r<8B5x9 zfb=8sKC7H01*DWfdR8LE1=4d8>5@P?PNA6P^&6COf_$tgCGng!C>P!*Z@WV7O@i$; z1Un>b>em!{Pyo3;M4!9W?;vd#)d6SumD2{zL6Y=scADa`&wq&_iN`(w%NQ$OAR z*XehL&tOdD9YGU|gf5_w2y)P$ixFd@oanzO$IhIDOHw~4UV)AOCx*CDYa=j-{lld} zbL@%zl|gg$T$%A%fe(JzhyE*QAEJ?+YSRu4p>shdDvmV$FD6Z>5V1vcRpdD$m|BsR zq^%qL&Mx1vvl{%)@|1VZGi93^7PxwcyR}cb`cr=J2mG)Wn6Ruw5-tTi2KBl=IxyLo{?|4(5YsmI# zqax`!ZH^y7z{w$gILHqMc`GIu0#1L9H|1(VRfKxrQ?GKb_H(WyYfqFvy1<_b@~5M` zV}W-Ed2f`TSOD@Vq(-@Kfwu+u<5B)ZkUxf~d44F!JEIi%EyT|AChd8?KgORV`dRM2 zYLoBh?)SLrnw)ichcG40mlw-WuvF%{Fps*u%e5T$7a&lTrG013Fx4zVy8Q> zW%%pt!v^AY>!hm((m96*jsFe}llC{M-;?^f)P~f3Qg=xGRGmE_$4~;VU+M$UeoWxJ rGx(%sI&rXh2qnfakI!@f;lL z7o~*(Nu969DJW`LBeBiJgauF`v8*)@4&Hyyj8?z$Yg$RJa^XQ-1L@$Uv(Z`cZq{d@ zMWL~=mIpU0US#v;d~7Sluhu^Y?|Ta7O7T*ec$Q4uc<(6xzE6_^>4@?#J(n?`6wT^i zK9Whq3YX$-Qby90u>m!293FI5ye*NaaMA6bgQwiP0=!5rmyTJP$QE+%lKw`Nf6f#g z{J;K5yzJ)3#Q?kgdtc!#RULf!3h{)0xk%KFcg}_PyDP-AcjRX6@1h3jn5F`F{tEH1 zhy|qEzfQlzbNYM1P#wQWT;m(fZb3h7tC-oA%8Xdny=yM2V$V@{o0RYdY$UXnk753) zHSNNSC9QZKqbm*E`@xSC-T{TTPvI$+VL2zAGSQj!o5~18cYpiT`oCK_v!GR4zYYIX zNNfC~xS&bK0@4wxT!4H6`kkQ1<}=*hsp!N(D=|av?oX{R2rRz#_d!rk4}fm#R*{^ z+FzU?fn*>hW>^18=+a&hDi2MBN^fX@nwTUU@mW^+c^%5*zYOhPH+6hyiYh|m?+T2k zMyEP9E?WtMkBl*jSB9LF*=}@Ra6JyE_H8w=%f;io(!!zZj>&?7Tw!_`|mL(vN6EO?!gom-wc6{iB1cZOG-~@Jm5e^Selt-t8oI18gbnJr*m5PYQU63>ZNHBx&co+;i z1I;m^c?_DeywP*tU@*88+B?@1t z^!C7`Z&kZJCL&7{V*l{8Q*m+Bt4g1quT0lUkcGAC^Nk`3tEIe5HXoqR@LJ`XNVS&E+&QN~2@r;7pV7_^!)) zyi&R%8W6KWMq+fjTtxSVRU~K{9v}J)Up9FyeMISUA867(QXcvY!xwz?E#vB4q&iFd zF}=QFj0I7NFrE&T`k1j-ECM-^RO=^DFGlK?CylW+QW-M?%6nEgrez?k!;Z0vHUZHa z@Drg`Z>m*Q1BgqF1PmdNw1nhTBfwcF!l0vn&z0#{hie{eUEy-aXLFhj(v2Z_@4f5S z1-HiXg;X{Z?Ca|3>IvQuP2-wl_Vs}2>RsNo>_%3|N4wKFE6mtP%Eq;{I}x)jJ6nt< zyP~XnxB&a^#J23?Ba!aj<%Ogb&F!$3v$$=gV^O=9k5v_Gd`QqtOxtA84{x>o-!5MHPEK;&DE4{c1II~slnvcR*-Po1PLdRBXuF#pfMWr*wd zEb;kimlNFWo+T|zCu`r6_#B74uG2S;;=3q%AF2N%NWD)dAYBB7g}yo%0w*pgbV;FQ zMu}t^ldlMh8_wg(nIplM{`9X?=l_gMTL!)VMv%qufOa8M5@7}1D>%kPbWnaz@lKo6 z1|@f!)Yj+Gp?d&jyfsClevt28#_{e92;T{lDydEC4-Fw5!F40Avz}f10?(c~*>U9g z%IawF(9V}9uKW9|J8%7TC+eR;{sHpK$iG7V1M=UHXbFkZ4>1c#(*PQEAcGk%)#Y+T6r6B$y#+LY()^NoD8mo6V}q%K3#@^rpGe+bjqCo` zOZ*!B7}w*xK~M0YZu9yuHi9p4y`(?H+w>%#uZOue%-i*Y+>2sB-@xnj@NOt2xaSox zzQx>I4)-3u2=J2)uW+x`hibD zPzE$8i{tzn%oPb1KwaxhfEJX^+Ge)7%7# zz0%wW3e&k?1|@%Q1touJUxv%(Cjh~oWc~(p5$I7xqo57o*Mp+#CLL#R*@SO`egp~# z{iLFFG!U=0Z=J6F#CI!touc%AfaC*;1{DPn^5+%(8kCxmoxS)`#XEa1o!SPnlYT4h z9F}c#@jrI)i(Pyju&Uq~#jBcs&ZSRv)%6tDYQE9M54rT|IIY%qt_cu}MB`Ike}{|z z3bd;0r(FDPF8&=C|4kPkaq;I|{3#cIlZ$`F#bfT*`1hd8e`evBa4!B-E)?_8q=hSe zwJ^GUt5C$B>~t(+iH86w=koaBhGzhZsX`9F&ShDZV%t-ar(?)cO{GM&^NgZ~g`aj7FC+ZBBSA8Y--6XO+p_r)A&6x_ Rsms+Mcyp1mg2ZzS>A(FSjCcS5 literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/get_touch_toolz.d b/42sh/objs/line-editing/get_touch_toolz.d new file mode 100644 index 00000000..c22115d5 --- /dev/null +++ b/42sh/objs/line-editing/get_touch_toolz.d @@ -0,0 +1,7 @@ +objs/line-editing/get_touch_toolz.o: src/line-editing/get_touch_toolz.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/get_touch_toolz.o b/42sh/objs/line-editing/get_touch_toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..a05e707c2e83d9ad1c8e7a9aef39fdb0270e27a0 GIT binary patch literal 4640 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/heredoc.d b/42sh/objs/line-editing/heredoc.d new file mode 100644 index 00000000..2e3c71b6 --- /dev/null +++ b/42sh/objs/line-editing/heredoc.d @@ -0,0 +1,7 @@ +objs/line-editing/heredoc.o: src/line-editing/heredoc.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/heredoc.o b/42sh/objs/line-editing/heredoc.o new file mode 100644 index 0000000000000000000000000000000000000000..987791416e696a6911fe55e70d1f52d3371ec3e8 GIT binary patch literal 4584 zcmb7GU2GKB6~43UJNpM-+h8CG4ohnSsH|-)Cv}?%F)G_m7A&Rw#YT$8>)Exv#O!X? zv%$1+MZKnCv!XRBs8SzV9-4?qRIQR$qEsbriDL3lr4I?>r4kRMvDE~-lBGCQs{5Tg zckK1pDfDRXo_l`och5QZXYL30Kl_i5F~!U9hgO9)!SNSC13iMKll&$0cEC2=kv@(L zOh&Cnjx!7^HEc-%%rFkex(+YNPA@=#fC!Ibxe#WojuchwG%<$^!yK~m=}f;=xbYku z3>P%*mmSGG%SFVKO!XG}4S))ZVeETh@4;^`dTo+%{Yh%(U3gG0gLLo)v*xOJA4xoC zg5S$JI`Ws{C3<`FsaL3e%j0wKiW1;q@zR;TEDdqvby4v_?X)R~2W{Sn1(m6CnKYbvcnLU9#Eu)Y*na(5)_2&QT=}L3jJ`Zp z*B;=$58CN60*%{@ZCbmCBQ#i^0cjF!@%*MU0@0oCO^NqUxdAT&kLXpzCsoVhYlICZ z#zOW%BI72sF(|22`)V2c6`9eVM6ld;lHMOCRgSPa}G1WPUO>N8XdM zSz@~<&i+|9kId=i!hHC8)rR6cJKH%E9@_|;ZpNVRgnqqJydUWZUwE(MY+>fL*vw@m ze1?w7bT$6UvAN=eQi{z@|7KxfVHz5N3bi*jtDApY27NC)w%Hydj5qc25t=txoCp3z z!oT-g?4ApMR^ZQ0zYcu89Gln8&N*GVSuV`#rO7FpP%pk4dGSVHc*__`Y?XZV$(Zd~ z9+}sR&oY_7zu+xGc9PZ0fzz78!eiH9sZiQQ(86afkpA40Z(&WY(wdb1LN&rL-5fzw zU+AR|#6+lM_zZoR?E2`Y$W<@b+35nQ!!df?Moj-z7)7pSL?P1EixZy3d`q#ZX|Vz= z@Dm9vEyHdqQ*mU<$&ogtPHC45Q#GAX>V$2YKiPH2k{AuwzoiNYHMxUy^{^)&E`Se1JP76ZQ;q$EPSNWlN*y+&rwPhBr6cIA z{$}Xu(DpUYt$UWPOwK$~_1roQ+9lk^RmfvFKW+6hoOI!e}tC6ERJL0~yC ztU(5ry+UqV8tn;sen(P7+Pbciv{g*tBM<*YC{)FN35-|ygn{XY_UaS@UFg(MaY3Y0 zn96X17f3be-?bR`5zy>e`6oy!)Qq~kumr%8c`1#`8S~viCn<13kfGv&PhH* ztIhfU_)zhvttT)LrU`N5#Uj z&#_+EN72u~tHAF{{vkL%w9#wee(*QJ@e+t$0>=@I{urG6e*jK?J>dA&cjJ%j2f=;d zol+kH2SxuX_7;og!148r9b9GwJ*N_|K2A4+~o@~=zYEcp|XKQ4KPyNTy4E!6nmmSLsjvN}2ARN_oFamU%&I z6TRCj{h5J}d#+&7ms@tlmz?_0Ws-%Q(4%kS6Yi)*Kbf!+#tB1${n6|L#`>X_h}LR%r090R0!vp9JUt literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/history_parsing.d b/42sh/objs/line-editing/history_parsing.d new file mode 100644 index 00000000..0661272d --- /dev/null +++ b/42sh/objs/line-editing/history_parsing.d @@ -0,0 +1,7 @@ +objs/line-editing/history_parsing.o: src/line-editing/history_parsing.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/history_parsing.o b/42sh/objs/line-editing/history_parsing.o new file mode 100644 index 0000000000000000000000000000000000000000..5329e824d01291ae5861d4802d1b2f959b8ee390 GIT binary patch literal 5784 zcmb7IZERE589vv}xpCrPn~(BQ0&&V$D`6+3v@l2^sF+<0jHnPsR&}?IKN7db_8c2R z+em2~CS0#l=sIcI4@ReM+K*Jr{?RhAgwpb%Y0wH)-M?sBC8D+yEm2EZMfSYso}0us zW@JY`_c`x--t(OIJ@>ump6hFOzr0t;m||zRpjM!ca9q5oD9cbalJ8SqtuZ>rq>U+q zlTr1^ak`$3_GG01(Dj3X!w08jvvr;vKp{SAMiwyUBSi)4BQT4uhr6?xc(PL}tb8U9 z#YN?GwSnf(oIiG`ha?$2*?cHDxs_{rX61-m>sPT|#N{B~szCd~aCR zG~=9_%50S73w3m4qDN`{O8qnWUX`Qg$`?<@QZ&TMw@@{RR!~x)+?M|RZ6RYa^s@eC zLdni(_iVmKN`@K5GjE1qG|TcG35A7=R{u;s=^lG9UnreUMD=9o2)Q>a-VM^fLFv}~ z2l{95r8-^^H`wamsN`EM`QDl%pYSgo3S0R;v+#W|N51UwblG^T9EM{t>EHMq`S1`6 zN~?b<$!Es9-zABs!E%4YsUwIptLKu(;>n1v@7+0V%Gj?ZU!PR=fRCQ#+C|2`fTo2n z+NH-bxVy#x>wd7b%Fv%RfZdUNQe;T)F0)NI_58+@g3%i9b;BX?y7~Ks2WKNd& zN9!W?LZ|WcQ0G$Aov_Ci$083gwh;sAF>6JoLh({1z6#XYOA6%!N}E>rOv``axfGZn z%MSy$*)Y3FO|97C)e3<-TE6!VbDyC7Xgom|(HRa*XvKYZ`kEEy9-wVdlN$H=MN0l| zz5B!}Qof#>0HvZ8d+!L+JW-LaG?8E`1}5?&N+B>Y{>RD5$-ds(;G?+=AMzJH&%Gau z#r*EN0Vo-h{p_4isIy8_E^GM_n^w3~XuDzb zx7~Q`0(ylLTKGv#`AW-=!s1$??YgiiTrzyauww5ReEqc8cD*nvl#np67u4G|<(`)R z5CgxJ=87Ch(b?64I{r`iTRxcW?i0Jq2O}J71OEa|`A9m32rnbP5$QqiWy~<56)p&Q z{MdbG@wx}*IE#YtG0R!ZGHlLr7PAab%_46S=3?WE=^|QF7kU4Rf$z2a#a3j1_5OS1 zjdP#Z8uM3_lUIk?$+k%`*K2K)CtDju)4aRIo)*K6Lg1Fv{goawvHXR!S9BHvUzCvE zGe|#|q@RP-YOnL{NX~cZIWJtD&gPPQ zFjI#fn$0kjir&Lcp0?jtz6+Mmvznf+@D2?a9 znmY2Pj!iupM%K?rF0v>DjOW61eT1I-b4GmN28hUcq-}L>~HipdLIoZaMti`ZiL|9*yP{v80*f28xq*C zebGofi?d-vSG+r$${g3zA&g9R`opZDts5*2oySryL_!T4o4UL7aQe93#9~?9VqHe1 zKVD8*Zm_OxBiD2m;7s^>hlf9M1er0gYeIi>z1s@i^QdXmK2+f=@K2~zMA*QrkQfslqfLuNMJz7RFQjRIgmchY{lQCh z()4*QHsm)|oI6CJ7$`0~R)4&^~}l3r2ccrPV+bS~pVBB1+Z& z@}v^8khe5+s=RHqh^C|rOX(YS-Ur3HzMt% z-?QxALEJX>16V4`e_Zo$RVYGK#k%_;mu78$Vl}Gd+982IU<$9O-p{Mw;f_7LPR(*P z$Sc)7TvZQqyV}WZ?Ys(2TR*gCxJ!MHS2pt+G*|9HN02-E`8=4}_q21Hy=RcC_Ugk> z(@>?IGy5)wmoKlr&Am{n!G6)%tN0ppJrd;WVtjFsukR;j zp5=}pw;?1?`>bhK!p%lZyDi9{3UUvoT>^$hLB1@;?LqY`?s4q>zXv(?ahv0}T*-0f z*ud+m_wX%^_;cTL|CQz>Hj9rVasj z^F?p)wWJEFd1HC^_4B3Gjw`rxL0*eH7vr!r7V{HxF`IGg@>rsvn&Y*9;mcuK=jV%? zxpS!BvhYrSYtyt|xN>|(2FPGX5e{GIM zh~HL)^h9!=su2Gf_+A6z=U1nu{Sw@SAk?d3?%&-;C$fA zK&0|R5g>j(9Tz;Gz5_tA+Y7{Jvv0eU8zrui=#i)bv90ILYe3>X4aBk3_a>0m;Uyr&6_xs*NQ#yKtxGcPrG&i_a}qa6Y>>EC;!26nOKg$o zl?V`gyCnV_=)wf%p1l%nA;VcJwC9m*?#aJ^?1pTXPBdnSEN_vAEb=ys++>l@SY-O- znaRJ-BGa*FWj*}RfXV)Km ziAV^;glknx*P(S%k-Dx(oy02k2O6r%ND6~6O>OoE6WXNJo755{)@G4fvQ?D*&U@!M zj!6bw<=%78x##}w`MCGK>wNIve|_l|LU9T-s4mn&iN=qLvH(>heunb#ENh^^IyMhX zLA8eG>3TYHAk7Sju5WMe+&;ny;3gMA0!?l(TV2+U7F1j90rIS&kmj&f`HV&I7 zPFC16E$W!c!k+F(SEg47s5zqR8-LjL+;@sv@3CE5C`c%8l;J@%1=7Zg#lxn4Ii9a9 zrk{9CwbEu8V?wa0)7qB| z8NHFz{dkvXGnABH*@>ByO^dfT6gEvPx6j7obchGzg%XKaL^ncv$-Mjgz0CFvusv@+ z&^`+<-nGX}aJhZkJr+3zk1S9?v?o)j_-w^X+2}?j~d;&zGY+SjA6z*!os(JM@O)L{pYe| zWq6T3y(fw6T7%{HfySHmJmamv#l%P2lwf=J@sLT1=QnDYh~@qYJ`W$W6$SgEd)&H5 z0W!rtii@dIX&FL;^HDv}C#dtFZ-P>P8!8pju`Bspc7#affu%#seWYb?w`#fm2`!fy z%XQq&Z5`F}nF%f1BC3zmF~4;cjh1hp(DF?nW4WQ+`=f-cy|n%X1WC)a7xJ0Wv%(UF z`)}vk|77)Z?IT*Ye?(Lt3z``H1wfD3V>h&Xf5Bq%{a|PXp*h>fv~XrrQ^vI16aQLn4+Q()2>-{ltL+7n*^cB} z5tjB*I53Jx(1C}>1ZmtlL`nlMylbNN;e&A3H6s|HUDY59(VwytCB#MTe1vvh)r zb50IH_G0^oZz&w(MfNCTK(nA_2NeqLt+V&;-7}{mJUQ|UHG8>n*QEirf18~@E!TnU zbzpd{oxOis$e7iHi6z+sGNLj%8Dc9_bYD?o9xhWzJl00&@4&J_4tHiyQ?6*)D++Li zC-I9ZY$+}=nZi6$nCm~U<|HAh_@Z>s-oeP*Zc<7@5cZjb4>`( zHsslkkD1?x$m^?i79N;aq<*b9vGr#4u_k*C#WyoXF@_^IwA@u3DBkPl_RfrGx%W&% zvlF74cEHUS+iw%NVh*~q=nH%>j>(`B8D&``^{$= z)77@%X%T~WBCQiCTAG^5Cg`{m`=$oy~!N`E6b;lj#@2576SBbT*l|>LoT2sB77ZUVS)OVc-b{uI^)y=dyVO%u8uz@5 z<{EhCV$W4{N6>Zr$Xx(&d))s4kuLSGr1%jUKdP&xA^m5sLgi5nq_rz}01nLn~({0d*i7te>d%!oKQZds2`kBcIVdfWonn%U9ho?_#&!gzj zyM`*Bc4nb>8TsYJW^>_1L_SfWL0Xgiq&U#q#npXLG#)uo`O5gn!qcbjtqc249zIuC z{^^Co-}vG%#(#qP2I@J~Vbs5&eu7HLAS{Y7jx7~R8;R(6)RDkSF^Op7%{3)vGD$?) zWf5%*5}iiF6KO+`i1rC<6<9?3g|+@)klZDS#Z0^KnJ4V2g(Vj)>3!paELm*P`^N3V zaeapQc5akI&k5x~jZ#zP_6z`pJb423)z7RPv3)|c`D%Xbcy^X*;hB0H(NBDC>9L*D z>cybvxnt?Ez0>ObjIbvxJ+}Kky?+?MKcJUj}V0Bpj;i4jpK4d+6>mf z%+XjEl&gX=FfLmx)puYFg&&R~CNqU+*HKyFz3?cpsXZ#cHXxr2%BPy8wdUM$SvxKr z?;uXs>^M2pP13uwBuEY~_OuX5>?{0auI~c%fPRV%g`HJ@4HWle{RO6HL2=jC{{ocs zUSN4Q%eS$-p5=a)yFjr_{T(!TveeH5CH#M2(-QulK?(P5=6}h2mic|m?*v7u|1KKb z4fU;{fPVZLP{K8Ui$Ar8>6efbPxlH@y2pwBhUvGM2AD2qx|r#1rmalh=i0FoJ8fA1(9(G{8*Q2GEG>{OUYcmlbbH&PYFj!NQQf$R}S1nWmjRZ#!d$e|9|i>^kp`zOFhW!lP+z0Q8c`%Ptdfn`vgUXKFdKYFC8F zG!H*F_ViP(nz=X;S`^x!DVX*qXL5utUa^!Gf=)b(64cT@_O~$3@V;19ZmwzIE+NZ=? z)2Xxwu`@mwPlmSvyi~bd%$inen!>why)_wMQij7nGd>5ebmpws;LiAdEAjdz-suhE ziTKK?bSK`29eCf~AfA1peBbpxAUE-S8Q*Ig#KWZ%ke%^;B=Ow!zSJ#&*Gb3zrc2XU zr)}1(a|J77n#T^Wo1$FE`!yFU1;O682U z;RJeXBU|b+#jUE(98c(tzv}f5M)k&}TWLyEBI+9Kx0qCY}> z?z*vNOb_bY0GM{JO5()ay412&%Qf=fKOr zn^<`BkQ*BmfNTsQNheOfGe$Kua_rd2n&iXRxP z=FN2Zf;q^hZ2BPQvbHImNm9wCiukOO#uc0USvsGpF#38IF%7d#BCeWM+u1UGLM?hf z6j-%zF>BiR9%ND#6e3gd#gdha)U0YDXJs>yf(6LwGAoy=tP0O_;+-JrpexwVlugRR zp+4>j^=dmpo0QF{1ZoVz&B|!N6M8&29Q;!Ek-kGzdpJ|2=tv)4BL~`8-swaxT9}ck zub+8BBf%glg?|eq4lZL|eTpX(4ALZw1$tm~q>q>(DmVp-1Qb4^I(4&01;^NPk`i$r zIgTX+du1t8PL{zbVdY;$JnGf*HNg|>Rj=lMO57$D*5D?8Puyn1;gbI)u8%AkACP$N zM9Rr4q}`_w=J{)4oP!O`KxI_fM=0R(Uct%vCN<(7m0U7JTvT!=wh|W;^J#a1=zAGI znxgq2_tTF247@th^#;f`^TVXeh0!>S)P%a*ANY;SJ)!RIWg2<=C-CzJ z$i2J#lNkO9L(eyTe*^LPH8CyIpBdAk5*eplV)H~JnIg+Ljq}M^b$Djyo*|5NbdhAx z7&OB9?6N)oTT@nzrOIu zKYnm$ZpUk{tPXoKZ?SabhcEoXhiGCZMazy@=x-Fn+ltB{F{z?&f zkcc))ifE5WM2W}Ir$)O;BHCK|sG?EsNi>NcDf+Z5_^?8EW#lfJJn00}*4z`j%hBAU zcT=Zae3~iedzId9pMOTiu@gv_S7@r$Rre;bu~6@e>XSY0x18cVjQ+iUJ9cs&)@io| z=SXF*!ctN0hI;U;P%P+5XQ5>UD_yK*@a&7%s+G9p;)VS~Uu~CEFI3~Ed?0>uamEx* z(algbkLBr9J6;&$M97K>#*2Vh7ae%fJYj`*1>WKj&E`HsJIXaJ$vs+*`+kk#6&}E_ zS2MWZ;3~9T(5eQ=H6Di4m*5=IP#ty#_ZWOL6k8ngJy-ZHgYTH(UaiLav?;#T;5!Ze zWrIHixLM5~j2%SEu@TXzq!Cc;MU=JzFP7+EU_<&pf|C3OD9K-uayqXhw?Xk2r3#GaZFC;n zh;tg91tohreMGNHihl*^Fhsu(3K#7qNxvp(T+&A*-6d&6QV`+yb4gEuh5_W>ISd64 zA{u?NNanU@Flgly9XyrPR(+&{r@Py#XXd@{4JooRwX&ZfWnvhbKFI&-5=R559Uu&ot0lEoE(T{XX5>4Tk|*ECT`j9tawA=h@fcaXW>bD?BRIf zbUG0;lHnnuHzVI$lApDujy#l~iI?izD;C(!Z;#x+%VdI+kBBGurNa?B-lz?4UQOA| znN8dLnf!8x(zE7!PU0PtFs+Y>heIbI?fja=p<>L+_w$G1MN&h^GiMAZ4-6)whSB|8 zc}BewZ;v#N1CO?35Ep>lnznpnaic$j)inbQqw+quAo0c|o?ctR5f;G5WtR}8^E;Rn zi1vJSdH(;D8}LWqQP~cD(p15Z=EX-2HReX3&IZ(1;ZM{qLhga2X?qE^yimSYEw?{P zyGJkls^@R{FVJ9xD|%sMQZL*br%=7nIj-kN#+mn69jVtkr^r09g_QirB<#dkFT(8_ z^{@$3ADJ}cizDNDp~~!U7ng!;i$q1c&^ZM;rRTr&@4o6?(#|YCATp&Fh9^H`0;{Mu z=C3FPz0ve;#n|s)z?RE}YkG0(q+aZSw_CWj+%DXK4Y<{Mp~EEtiePD4id`;PeUhN% z<(uK>;l!}RpD}>|@8b-tmq;X8F==fh>ibxq_|}op;VD-eYtlOx!1<^Tee1tDywetqHU|&9a$Da{?!*DHa{f4JHSmWOGI?l}a2A zL|AiA768oy2U2^Z;pTN~vT-AlK4h$6IYaox;hf4GVp*GtCpr=jXIPqE!X$kL^yiF7 zCKk@c3>hOL$ebPqYF{|=y46F*fmqIn$HGxY!!XfG#ttxLjdt1X?4c1=Xc4e#+7|s!M%L#TN$C=xxvxm5@qbJ13z~QFgqCU)8Gw zNO7sB(}b>i3BOuB9lt@^9O`85G5SThD#%mpd1&eqh2jo=C)$4W5z6;MGvmIM{#Ihj zj?2`$zASD%#W7X*GyUZbomA_tq^YAqHpTqv6K(9}>CIL9K75T`eDTz~zO(f3(5GV* zm6(zL7pPPyOVW>$f^r#^^xLRZtTD+(#XcsD^?!UU?(8pPACr|S_Kl6jOkhW zJ!!VA^h4(n2aQbqxj0Q z-*$}d8eB_Jx&i}na;~`lXbqhzjtitH4zI!&xm_*1N;|4;;hNUV9ohh|x?XD5X(8^& z@rBwh?xkiguM2Ti+sLUy)$&5RAyw!KFxXF=yZ?Zi<1XzqfI}RAHQHJ3gscwndIWQA zj5|YoPLMA`$m8hXK{C_^`2zCT0*~GYczEIALDc*p=Kv4!l>jCD<)0t{klBS1d$}7F zgW&yXrL(HFai5vbf*@BhY=}1ikpLWk3-b9P?t_6c1^~L}-s|=S%{(z{nmaGX@%D3% zNYkOkc`b4SBX^KD^ztXh_~H;>hBlzT2IzGGieUi_TnDIttn!MgVud$g!Ehd%#AgxY zH|8oeeFRDNosdpQdNc8OHqqHYh;~Ox`e-8kl9WX$^HQ#m@<}P%rSwY)A>wySN#l3{ zXcfBrNw>}tb&+nJy$#UI+*z|tC;sLA%$W7TB QDS%3ktT7Z$h<}6s1K6sXX8-^I literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/move_to_line.d b/42sh/objs/line-editing/move_to_line.d new file mode 100644 index 00000000..ffd8acb6 --- /dev/null +++ b/42sh/objs/line-editing/move_to_line.d @@ -0,0 +1,7 @@ +objs/line-editing/move_to_line.o: src/line-editing/move_to_line.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/move_to_line.o b/42sh/objs/line-editing/move_to_line.o new file mode 100644 index 0000000000000000000000000000000000000000..8cfa5288b262bd321be3caa66e5cb13178aa3041 GIT binary patch literal 5616 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 Q)9^o&aFX_)xg*(s0P`mZ@&Et; literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/quotes_gest.d b/42sh/objs/line-editing/quotes_gest.d new file mode 100644 index 00000000..80169471 --- /dev/null +++ b/42sh/objs/line-editing/quotes_gest.d @@ -0,0 +1,7 @@ +objs/line-editing/quotes_gest.o: src/line-editing/quotes_gest.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/quotes_gest.o b/42sh/objs/line-editing/quotes_gest.o new file mode 100644 index 0000000000000000000000000000000000000000..1aba088c7d3963bb8dcb5337f13366236dcaf8a4 GIT binary patch literal 4924 zcmbVQZ){W76~E8+d3Nj&Czvn_6jGoNTJi^!b^%NlG(4FEYa0b>DymoGKe55FGykDb zEfd0oI&m3c6Vf(qq952)O?*Jxw{9wQt$=Ei#wI?n50k1XP)t)Pn$#_A>9XH>?>>^e zK#6*l`_4Uo?(dv?-nsW(=dYiC@;|2#ie2D=?m)jncr>A-J%Ju%{t@jr9z*e=v@v;L z3hwoCo~9MzM+=ex(X>5*@SbVj96iGUpfMf~%MC(!S>O=InV3z}qWMBDmFbfLE1rq7 zNb22gbEZLUvsuIwiytiZX#mwVnzrM`?YqD8z^Y5e^@)_Mu;4*F3(~|(XQL0rd)AUu zkIdr(hmXLE96XqdAL0DXj?cvVxdfOmUMiEw@)RrH`!c>4xhT*snDH$XLN!DWU2iUu z>5J#*;w|H1n9;tdoxvExhvM}|qI!td_)I(*o_IW7WMCj2*D{fQ4sXtSm&^FVGOYWL zjnBZ#9z3MKU~7B@iMK}L?O7lP)5Nmg8SxE7qE@`0S@4d|6R&V=;GygNqr|%)oFyT%0Td2n6gB_-Zl5>K)Mh(iPh;GCu zYjRe6oEQBp^cV*RE0>@LVb7sm2j%0Dx7qj5XEwIwF8AF`)nmtdgTuFj!-Eso0^@9Z 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 Hf3yD!15oQh literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/surch_in_history.d b/42sh/objs/line-editing/surch_in_history.d new file mode 100644 index 00000000..80ec0a32 --- /dev/null +++ b/42sh/objs/line-editing/surch_in_history.d @@ -0,0 +1,7 @@ +objs/line-editing/surch_in_history.o: src/line-editing/surch_in_history.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/surch_in_history.o b/42sh/objs/line-editing/surch_in_history.o new file mode 100644 index 0000000000000000000000000000000000000000..d360a3f3cee5be5858605794986d2086abbf1fca GIT binary patch literal 5156 zcmb7IZA@F&89vwMTsuI_M?#epl32?ZL^GxdO-TYRXra3EVCvG4Lel8Q*caQCvAyf- z5UQeOa#z)}m|AUX_hTQ?q)pW}t@*J`YnpB8QkC@2zEo|jzo^7Cn6fs?pG8en_Ppnw z3+6)B^oVoc^L{<=`<`>|xd;F00=A@0o z1Cvp&mwvi#8Rsm?fav=1{^8>*yfeD)u}6eQxmW<$MxrWqo`}ZafFa z3GtfW@wBN7vnM4 zaTV>u4Hb+%To*4oI%*ncY5rE{=irS=nES;`WyZ4P;>NRNeg^||V$=tg2z9R9i$+XVi zCmvp60qM?fgkE+ur`|&wZNB2^syCJ$N1c{l$V{X%aa|ucT4Br1OT05ucm{a%3Vt8^ zk0_c8&q(THCRW#0y3d0-iT9GNW>+PiWEqw_>5PdkzrU%BKy=relP|$8nZ*+U+xu6@ zPwvT8`O&kK!($sCO zRJf^?h8DEq)NNMxJR&l!3~{+|bAf;t4+u&BO|94keGuI5sZ6a5QJIzAD*aK|34R6& zxX|Mw6Jpyo*4wIi`w`=+vf?n^(~W{{=i=MJ)7Qr8c05n6%$;9p=!RAroYTsK2zjVn zxPcM41{oOAl7jdU`L*I(idOR5*>yPvs8Z2HjJh4zQ4+s*x&E2{S&FO8^h=MzZLRny z%B2ICrbCEDT|maft#tYJ>)c@Why;aa; zppoGKDQ0)42qy#3{C2Du*f9nF(9&*>M*Y-g#I^3c3cE)K%0I5q#Zx^EmJ|KijvtlMZ(W-Qru2J-#myYoW5_izyOk@0&PFB_x{)<<82;K0C%!60F#vYB94 zdq;amur-#(XDrm!0j9lkfBQpiEN{lbX`BTiBc8Hw?Fi=!2(G6xdNP%_vgTxajD?5t zfC(oivd_e$;m-Z}q#nyn>igN4rN`39R?nF@^ep0S_b3iN(}r8)QGx}`1B0}!~} z&jokT=92U#D|JUGi01+x)b7{>D3cf|Efpv&!xH5Kp^;qr--0`B>&^(w7K(rx=!xc} zs+{;1IAv!A=1vDwWVVz1syr_zKOno^lr^}xh_HtufEyMO_KK`|7&7&zFjf^#65r!^ zybj*G-S-s?e~qE%Y4sftpPv(+`XR;~XM*-*p9Wrh8R+Zae85SjF#GeqghuoG&fUIC ze`{)e^Jm}tYcCE(Mz`WPx|nFtc64fD%0Qi4kSG`YbyA`^F)0Q$cT9@+S#0P~p-x{w zYE%d1?uE1p-$KHpMmnm4^q1!LeDvGr9=_9Y{>7Sa-}-ZNEco5$sFn%zZ=(MI{USO| z9py(LAR3qFQ z;kD|Ic#Rr~@J;G3c_Yb&Iadq38p8(l3hz{J@y9TXa8JAXcdm?Z_Aef+_9yrbSnTWO z9o;+};el>)tc`G0?cpA1T7cUOx5w1YNUgtH{|1EM~5q5~V5qWrFWxf@;w?PZTdSq6Mp%QD0V?;9uGh0 zEGWK9p(~(-`wLKk3yPB}^a3dPPk?R!pO*ZSpx88_0Z@u}02Fui5FOjNB!}Jw4S-IA zQXVgY63*8_@$m~KK*^uJZp62O;{6K!1r$&!`4bgy1!zI?k4PGpbdRLlCGC|oC@F}* zp;M0Vo&v4Iz-cPR#9xpCIva#u+Pnw8!km5V;@@!bmWzMQ#V1|-M=pNA#kU}MWqdlR zD|wpVO8&5mZ*%eUE?&+vq;?~$N<3m#@jBhPEHhzP&Ml4!k?U$Fgr+f`J!|Nx@mv9S zFgVJ4TZKg4?nt@nx<`UkK8IhcY)^_eY9tc4!%d_tToMarUO)ocGR*NLcuhR%nA>~cp=AdIkciU3p0tdVP!MImsCdDjzCF_VQ3l#qY~n_g{Zjl NHcBCoP9}yq{2y*YdHw(Z literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/tool_line.d b/42sh/objs/line-editing/tool_line.d new file mode 100644 index 00000000..fe07586b --- /dev/null +++ b/42sh/objs/line-editing/tool_line.d @@ -0,0 +1,7 @@ +objs/line-editing/tool_line.o: src/line-editing/tool_line.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/tool_line.o b/42sh/objs/line-editing/tool_line.o new file mode 100644 index 0000000000000000000000000000000000000000..427d0cd32e5cad4bcbf3e14cf03e0f065e02a519 GIT binary patch literal 4808 zcmcIneQaCR6~E8UeRkr;PLq-p${NGcZUkz(r5zQsSUQ^N)oLWf+6*D8hvPguX0C1d zqfMbmS>3X@K_b=o5MmwKw2f*i&`Cp@G}u~obRU|u{e_scNu4w#s)i-%G%W*Z+3(zU zo?|-(x=y>&^||NVbAI=C&;5AUzyI)qe|v<`+yXzSZK!#PpCBsA&8SOc{FrjuXLrm} z42q)zQ&0_%5ydo1)?~?U+xouYhxV=LPOFcIpb#Dn8(C{hC{tv2ifN8pW95`tEESZ= zG?oK7jnKv70UV72?^HRa}i1(d{7T_dKt&qeHgD zI~Y$Wip~5SJfTHt1We`dS^#yiMK zW0geHeCzn-C@ zzKPsH%(G;cvxn2!anszpd&O0VE_dq(xiC8Jti+j74S41IH^7vp z2&S`&Uu8b%3SS0wuJ4TWISYqF6|TGq?t}SmWtZI-3fYa=DC2mQX^3 z_ZJZ#P94rYHXaXe-&UM36Zs?NHjyluDXV0TS*cVy>u6bApX!N$-h8i5cynD6w{AeW{Iwo`9e@Z!d(6i@o(j8VwS5+QxW6+(iOqk1f=%^Tw*(bI)?8Hadou z7SJ@e>(t~=Rr?75LCarI+BXT-HHRN6_o+b;F`9>__0`4oHN^GVaYO9CP>Y+Qxc<7h z{)V`IifeP7%KVM|ZYxooYmuYpn7=mqJoOINp$s;l3_e|ta+gApPPCH@ZS)6(vO}Zp zmHF>zK-$rObdN&Pe}XvK=9xmA{wCVG<{>xl3;1~(x_hJdduaX+P1hs(pCCM5TrpqW zWx%RFICS-6byXpoChS)YPW&=WvJI8mrR7Vb)q&}E_x<+ElP`L|@#Dc0$GnfAFN1m% z^=Z^^qpH<_Orlazs|p!Xnh*$V;B2&}8Z(aMthD7kWqvNn2Mm>po8uc71 zrI~nA_In{wDCK0LRTv5zw0U2{hj>WR(`wTcZU6(tr5`OzAQD+q0v%2QVg5?zOVlz0n0Xr zCTN%PX8{UrS3v~q;tpui*YS7RuE%6oOx`>z*T-Z}RQ4Z}u6LwI|BZB`$EBZ^o`R&;m)5EIvlp;g@tBLd$Z!0H`A7tj?Lb_xr^u&af__}G~ NKWHwgo^_xg{sTE)e|P`@ literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/tool_line_2.d b/42sh/objs/line-editing/tool_line_2.d new file mode 100644 index 00000000..c09973c9 --- /dev/null +++ b/42sh/objs/line-editing/tool_line_2.d @@ -0,0 +1,7 @@ +objs/line-editing/tool_line_2.o: src/line-editing/tool_line_2.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/tool_line_2.o b/42sh/objs/line-editing/tool_line_2.o new file mode 100644 index 0000000000000000000000000000000000000000..606522327e43ea9aed8a97c3a8f1a8bd4dbf21b3 GIT binary patch literal 5984 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 OH6!??aVg|eQTBf>_5Vcx literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/toolz.d b/42sh/objs/line-editing/toolz.d new file mode 100644 index 00000000..bb228103 --- /dev/null +++ b/42sh/objs/line-editing/toolz.d @@ -0,0 +1,6 @@ +objs/line-editing/toolz.o: src/line-editing/toolz.c includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/line-editing/toolz.o b/42sh/objs/line-editing/toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..d26c6ab5a8b303751fd2994c551847485d922f6f GIT binary patch literal 4684 zcmb7IeM}t36`$F=**iXb2mVr`H0>!RCRW2oTw6lsl0wZz>oYWIVyNAgtdHe@i{QAz zogt}FDQ8!lF;Sw%RU@@()cldOaU!+q2ca!BPGnG}DpsUQjZ{@sN(CoTiB?yYrf%r( z&CU|o!;Ldy_RahH&6_uG=0?2z{@*_EF~&U%A9OGJRe?_k9qmqZgZNvtS4(ZhlCp7l zU^40z%Fi^@@zJzmKuq&w5;y1ItqXDNT%<8$yvJ|q)u6?)ZMD@TwHv^D1eZt1YURE%BvdmK*PnF1(rB#7jSw+Ht)%6<&`D=ufwaheIqO z-SKtFL&})5-p}vavQm5K+FxsM0P9SfndC?!*=?GwEn7V%72bR( z;KPjEf>as{k#(8@(^ho8xoy7O*xEv5RVuB>D&|@n4|B{z6@+=DBsjO1XWuUgUf5S8 z3~(Hf9~kq? z%#I#eGqPhVh^iSDc^hx7F;WOlQ!OCOHA>ROy>OGmmC3z)DzgThTxKnQgA$??*S(w} zIl$Z80C)anJZftnxH>s+Snb$@%zALnyFa_mCfk;S=f^Q^v93|-x_8t)Bz4A)y0FyU z51lc6WENzGN;-E)!n=J62%9ODeIl`s~Eg&`vBi z2<2bMzk_+?ZhV;0bLUty{WyeLTRYl9XX8V|iNR#3p|-xZK6Ibek6*N!hI%lyhY!_0 zaF7iTS#|xm7HZ<%i8Njyb?L#u{-7+%2o}qZ$Ovk$DwE;FUY>xCL((z$jh`6mGfg;(RNvR=536@BvnZ=SU!Q#oY zj68=KujKaz_6Sd)Lcc3e$# zs$U4EDFK=5hqtjlx6AQ8r ze^Cv12mO5VAm>7R?i(-5G1-F~{gLFpgDG_Fx%8{VRT9U%XYir6XcNXe`Z3~nNtDso z_iMM%JJmUH3;mKpY_Vw(zLOjN z^ka;VR`7~)pZ{4{(IP*AKJzci`o@NepRwjZ#kaI$yVNsM+O@!LP1&h+>}W^z)39#i zsrBq=_dM*LRd#A!JKFskcI(Pct*^-L2Uv^7>R`$Fe*(Mk<&*<-?!M0%b1rnUU?o&K zvU!4BcuW2JL`g=J>0zOTg-7>)`Lxic1-~qqzYXf&*xINljgo<1e_fR7QBe{Vewasf zY3=V6J_w=L^{n7o!QO@I1#;E&3FuxF0ex2N4~si{L}*s{!osWf3eT^EcIgShGnlIh z4lANMBMu^x17T4W78OyUpVCk0rw~>jW<4d!F=bfn0_WAQh_VSG^aq7!x)aI?y%lps z1=A(eoG5t>bG|1k7sdWrad%jR7R9}@;{LFxTNH<9Vf&z{(EUAPcT|Y9&?fXh2=DKN z_Kc|hiYtZ*8G|3QdN6BwT0en7v^Wf*ArRz4k7_zLgv}w-c=p$fgQBi#dO-2FFO7X5 z`7f{wxW8&%Q1l3>AACFQB3#-O{V(Li|5MR8<( z(U77ba=x&lbe4h$;0!1=3?=WJ;ZDVqjvD!q{Sq0X(U~LOIn$4TS1MAodKcgB;tdzi v%;Gl&iMGB%h<6?x&e$4ANmt0_3&b25!XpJDyk3|&5bLLZZjiD4u3`TJJ{dB& literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/toolz2.d b/42sh/objs/line-editing/toolz2.d new file mode 100644 index 00000000..2b7b1449 --- /dev/null +++ b/42sh/objs/line-editing/toolz2.d @@ -0,0 +1,7 @@ +objs/line-editing/toolz2.o: src/line-editing/toolz2.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/toolz2.o b/42sh/objs/line-editing/toolz2.o new file mode 100644 index 0000000000000000000000000000000000000000..9c61b6402b0f1c36ed414a8444f47afb9a04a4a0 GIT binary patch literal 3776 zcmb7HZD>NN%i( zLZK>VU0Dkb^w(e$_NSshgo$jdTL&E|6Sl$Fzy8>u!W_bicCOex@44@-XuTT3N1|b6XXp{CK=}(+a@N;i$8h3@MdC$TThpUL=+3iW!MWH_@B7->b}TkZBD*m7j%|Y(1hra3Q~1I=ql_ zONjs%jZIPo`_1E*ibM-eT zn(W3tO(UD=i6`0&qoF>pHll{{dfB`T-Urti?>ggM zU_3Sj%uahudiM7lPbkE~{ibv)`zM~Xx6~Tk0zW>JbNEqR)LrPY3PZt_Xg?#Lj#`^n zh{Mp}A@-u>3+h^c}jM#zNDywf@j_xbHiE^Qdoatzi5> zctC!ESQtx$F%v@(9>`9FbD@ba*0dZz5BE(8-x=D;o#p7Z+zYn;6EE4CNz4^1?W?h7?FifB^Q(H#+JXgJUqI2uc5;>kpyCRi1$3T%pY z;bN<(se%#QS{>Z7S!B}D$}XIaidb9R#6whRCX-z!s)JEcxj%!+l^s3FBW;n&t<{-M zBbqvHREu`gNVKMnu2_PGsjO+n(%sQWDnn)_ej1Y}f;@gzg|Odg$L#w+zXB5NfI+=aTaD>jkz?rCC(0&M$QE=YH!OwhBN%DVYAW+H zHQt0w-7%CJCTkU2oma_PO_nGgK}YhVrGRoABkcuiP3JhfZIar7vlQN_t;1|u=%k{w zkth+tYbr_>mNki*wwbNYFUfk5CJNU8I$7izBIPQnfY0?g#ySS!ck05FL%(-w_yS7E zrwQxQ!Lgm8%96gCt-Ex->6J$-E`3n9GrsCgx;t9XQfR$sYCq6a5fZfl=x>!JgsK|G z&1|chV_eC$&4<<}Dda;O{!b2lW@^t67=*^OFDGudBHVt2M?$fx-gBO4;Nz42(xcZJ zU=ug`>x{}re5kbL&=4vgxu}-xqUw^1O3tqTB3cX*_QIHD3!g>;nj)2L zd5VSdx{!B)^O)~~dFPQg$a&0rUfylwI7AhCP5Z}NhF+uEplO8{rVz6?rYc{Fbz30Y z>C>d{{!6;`?b0_a(XY@i%hk}HVHq%`bGv?8YFR06N|)PJEp`2dT&}+*%k(|cb5O3^ zBQbF59n$rSbYQ6IeNucS-R{dU4@#lmmqqSRrJj`~ebNJ1$9AmMDT|R?qz_5QfOI$0 zOosy-5Vt@Hb*&hK2FK->pqK^F9V&=3U!HCK&zPSt40`SGq8S}Alb$SPXH8+4cmp%GIr|tICi3W=qdfb;RL(@U KTR9)UmHz@%pe8B+ literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/toolz_parseur.d b/42sh/objs/line-editing/toolz_parseur.d new file mode 100644 index 00000000..11a90259 --- /dev/null +++ b/42sh/objs/line-editing/toolz_parseur.d @@ -0,0 +1,7 @@ +objs/line-editing/toolz_parseur.o: src/line-editing/toolz_parseur.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/toolz_parseur.o b/42sh/objs/line-editing/toolz_parseur.o new file mode 100644 index 0000000000000000000000000000000000000000..02074ee62c605f7a1024ffe5d7ff4d58fb50b6c5 GIT binary patch literal 6952 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 N^&^e2tY2x2{SV2Qievx) literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/toolz_termcaps.d b/42sh/objs/line-editing/toolz_termcaps.d new file mode 100644 index 00000000..443bda74 --- /dev/null +++ b/42sh/objs/line-editing/toolz_termcaps.d @@ -0,0 +1,7 @@ +objs/line-editing/toolz_termcaps.o: src/line-editing/toolz_termcaps.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/line-editing/toolz_termcaps.o b/42sh/objs/line-editing/toolz_termcaps.o new file mode 100644 index 0000000000000000000000000000000000000000..8243f0f8d1e9a0795f67f8f91753b370f107cca1 GIT binary patch literal 3688 zcmb7GYiv|S6rOvxbGO~LyDchl)7_i*t&B+)1|R4Z&=VX!F6ht}L!UR@^hIqJaM=fLM8wiJxm`zoKp}urPP3cLYQq|2n+P1xF4l@(y z8fg}hpR)#x$pt+4XW+%+0iiC%>nXBk?B+c2{C$1N&>oDx*gq4mpPZO4UQ`RmaY`xP zcjTXk^4C>q00$v|#1=(h#+&qOkx;4}@0Lh9IR|8@>H$yOoOlENfN-(YKNFAKn+Kjh zk%)y<%|C$dmBo9T{48B?Wh9o_NB)gg;P<_ihQ^GTWo_ zXZWY@OUxPX7le0-VA|%12bWGjminjDeKq5)sD6}xf%pK#sjF#iZ&VAaYRBfn87By@ zmy~M(54Y$e^Zu6Iw@|+tPQvaQ6I8Xh9!wM72;mJA9*GP@^Xdqdd7fiYO(2%WJFFNp zTj&5b))?}6@Q+kQ=Na=-hbGlVqH(Yh`em?3*Bb1MVfn(ey#~FoVcgh@01FKs!gu+y zfB3Qor+wM<)Vk5(i@wakDK^|W=@?oBvwS)4lrPsg?fAAq%G|ZJI*xzeI-H(7>Ye;l zavVXw#_LV9%;=0S>zx|^a%N@*=VdQuul8Ij#P?nCj-e|B>)d$QIya7bZ_KWDml@*~?*yh_gy|T10@>mi9Y=7dgpwjU z&4kxE-&#xOM7DFnmxFZW(o;ff@lIsD6Pbe(%s|VbJZ4Pj9LsvIXRp4WOJD!zezq$= z4tvSI23KdY-uyW5Ea%PpGM8OFm)fxSxH>wzJ6(H1$y7A1xi+|)-OaAGff!WGrVY&? zxLek{*FDKn$$$rsT~jC+)uUR(qsQa1{qWu;2Lk>?${k>yt`vZHB75VzgMLrT`c%If zNbFPBv#_p4Lb{6gDS^)f$*Ji6(5yo1Q)B*=u8NZ#)pUkWUZCHfWQll+2~!=PFMks5 zrAl%vu0>pFEftMup`Z(A#X=gB>ZMioh1_DVQNPc6 z7QO@tw{RwtYRf`+d|Qe{zLHt&o2skf@GB062398!0|L_c6ar&DStV{Rt6@(gfwt8k z;%h$9v)81T2Bq!@aFRp1kHjJ$8~i}X9Kb+Id@Q7TgqC~ZgY8#?FsXYlaFVlRuCr*a z6X#aQ$NGOk+eQN^PY9-4Qui>9t|&oTQG~RDkYWO96*|oL3H($jHdut80$!1;vCXyS|FOa1BMPHHGh#vCEugJ{GKn!@ z!(rTUjPq=M_2h*E&)#c3G+h1OpFb}NxQ-vdSkTv_&_9HZsltwaViui1p^ZXE6=riK zP-vKTRN*F&3R8|M+$EZLid48eWc9Extp(|anXDH-2B^W&x0k4HP+YXA5nqh63y#C!aQXZB5YsyL^ z02*WNemoXbzd*qA!K!9!gT*27D%)SYR@uoLMtEI2UwoL$*SJObfy>`;+b&+Ev~$_b znX;8DwhO%K+#I$)p5yXY+}88J_-`=2o#r-xtq=3scJ4gPm5l%!K?Ikgqx2X^j{|&F zI|n-(NDGvcym2EM+pclBQkNCT&<+Tug0ZHJm?faA;R9hbT`&@-oF$6?voNH*N%VQ5 z9-^y>E+^Vb)I}7Cm`_(+f%?lF0BAO3QSK$h%OvMX#$#V#&RR-jrk1@!re^k~g7-%E Y!)|GjSV)g+Vv6zhz_TZ$qIZk^3p9>w4FCWD literal 0 HcmV?d00001 diff --git a/42sh/objs/main/data_exit.d b/42sh/objs/main/data_exit.d new file mode 100644 index 00000000..3514ca62 --- /dev/null +++ b/42sh/objs/main/data_exit.d @@ -0,0 +1,6 @@ +objs/main/data_exit.o: src/main/data_exit.c includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/data_exit.o b/42sh/objs/main/data_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..f3db03c9cab118fd4c39d751e7c4a50127435787 GIT binary patch literal 5448 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 Am;e9( literal 0 HcmV?d00001 diff --git a/42sh/objs/main/data_init.d b/42sh/objs/main/data_init.d new file mode 100644 index 00000000..5c7edda2 --- /dev/null +++ b/42sh/objs/main/data_init.d @@ -0,0 +1,6 @@ +objs/main/data_init.o: src/main/data_init.c includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/data_init.o b/42sh/objs/main/data_init.o new file mode 100644 index 0000000000000000000000000000000000000000..53dece1942e02e9c3820589f7de913f4f05641c5 GIT binary patch literal 6132 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/main/data_singleton.d b/42sh/objs/main/data_singleton.d new file mode 100644 index 00000000..f5fa418f --- /dev/null +++ b/42sh/objs/main/data_singleton.d @@ -0,0 +1,7 @@ +objs/main/data_singleton.o: src/main/data_singleton.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/main/data_singleton.o b/42sh/objs/main/data_singleton.o new file mode 100644 index 0000000000000000000000000000000000000000..fd416492769513a233311aa4221f227ac51d5296 GIT binary patch literal 5644 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/main/ft_cleanup.d b/42sh/objs/main/ft_cleanup.d new file mode 100644 index 00000000..e3878be1 --- /dev/null +++ b/42sh/objs/main/ft_cleanup.d @@ -0,0 +1,6 @@ +objs/main/ft_cleanup.o: src/main/ft_cleanup.c includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/ft_cleanup.o b/42sh/objs/main/ft_cleanup.o new file mode 100644 index 0000000000000000000000000000000000000000..ddf90f93c1118e7a60dca71ea3addaf163b676e3 GIT binary patch literal 3584 zcmb7HU2GIp6uvXt+1>88+tMuvYRnj@D6zY=fK;JKX=?^k5=09A;V_+@?hb5c*WFp5 zlt!_l-84-wLF1G0!6+tbYV-jTi3ANlYQl>~O%w?U3HbA7A_7vsGkd4q9g4tB&OP@# z_ndFeJ@;qZ)0h9e7GO;9F?5hB$WaNM3_+U*Q3&6l?eUi;&T=0YgOice^Eg$tja@be zP^!AI`>Bo7*d3kY1LC7xo~vQ3j%-!zB~orvRXuO#Oe@I^UOt!SEk1vY=jq0a?qDiD zVe}P}Do7oRs&;Me*znkt*KR5f+QpJ$&(Pv3TLq=6miW>c-SP7B=@s6Lbp|WRfGRv( zKCQ1WXY8Q*Rp#gNy~b&7mCv;LGZfYu?H2iPi5*IBemcMZ z?s_}J(+lMz&wBOD0M==%1#72iB~-Pit2|@%ptl#((w8$Ih86P4nz3FbH<{Cn7n-5*xO`~cfw=OL%6RXDGPdrdviH;|C01N_vUs9++~W(^@|;(6U#iz}$$Co5$&2LP^|EHmO<89$ z#PT^kKA@Rayx&$`SDoEH?V8RC+75be*O6qE^lTmxh=LhwphMjPvennZd(ix zTiP0HdEf>q#C!7yj3;+ywk5Rq($;)R)w6?YE1OP~*+y=_>C8-?>8jbE){@NDNvSqV zXRM@Lu<~ZoG7_?B*>K4?F1qUY0HcnC$umE$b!eLyEpde6a^}U#04jiJXaCjBnnh1TD&I`P#uVHl1 zsI4g}r$5KXB~Jj?AZ&UTNN5xUpYQdF7yAj!d78Ydwxd(TuprS7$F~r%MiA#S=}i~b z0tThGT^IqZm)>(>9pGH)W58b_Vm+WNoyJh2jAsG1NoQTy0Jxg@e*_+ahyfw+3UnYC z{2i+L8oEa2{~PL4h!_+ChoFN(=s2l>6G*{gHOQ4GI~1ygE7%05l`!2Slv+6!p+Y&U zhmMgEtvr^nH+B;3c6{h-B#lIdMz4+li;qe8gCfj`j~dO9rX0!Vo%g@_=S=90J);MM zKb<<%*mdfK6Yn0`v+PP1b0ZMigbyH}L#U`!4vM7`@gF0q6q%@kb0BE6rDUQF#(|Lc)mW z2XUIGACj0(zVw>lA&I3*H>rB+miQV4Nel&#h%HgcFD{8ncluwJ{3|7&KPlCHB>B%v z^Zol>gAg1M!^q$a62KNVABV1Dto;+{An-nD{Q2Cx6B_rsc^fo7-u^r^zBqdWG}hHj zt0CM8O@0rRaQh-|zXzK98lZ_k%2eIM84Pj)CrZ{~U-bR8z#mcpP6vV;dO z@!%&sxZ8v8@L;-1<@_`*$4s^LykToL{ujY8=?<}5Sn@4n3~=_{JDbvTr_>V is;9QA{hFC}W)oTbhh+Cx&L#_5F2U5^^-NvU$^HXeaTfCc literal 0 HcmV?d00001 diff --git a/42sh/objs/main/ft_putast.d b/42sh/objs/main/ft_putast.d new file mode 100644 index 00000000..59069e77 --- /dev/null +++ b/42sh/objs/main/ft_putast.d @@ -0,0 +1,6 @@ +objs/main/ft_putast.o: src/main/ft_putast.c includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/ft_putast.o b/42sh/objs/main/ft_putast.o new file mode 100644 index 0000000000000000000000000000000000000000..1a063903d3067ac446bf18a4b554acabd08e7d08 GIT binary patch literal 4096 zcmbtWYiv|S6rOvxce~v!+byM~yyS*r1tM)h42>XA9=g1QR9->M&31Qb7nZy0?v`f} z2q07x2_}saOu+A(oqM}oiZpSOGv_(q zoVjym=6-$i+O1L{G>eBS2y5cWKG8yyLQpadcn`Qb>)ntXzC+PAOoP zwPL}V6@9uRy~-reh{s%(R0uJIh7z%x%xRVt&E_%*yImQI@f@5dlz%IeDQJ3uOwqDp z@wU!(3!u_tS@T!7v_9rW{i^aBtN58BJOuWGbnud?=zw?zKX^gA>MKz4;(&OOwzf=s zGxP1ApM&>`f*CAc!d{=^kYc>oRDKuKdUvROK85|@zMu`5UnXL=$Fq0hbrjW5IFJV^ z=m*5x6p6|di}Q2vRC?mxc#(8E8Mo}nCZ>1CdJ`(YnJS@$_slPkmulM}H@G;z;|g!Q z!rMPcJeglQ5-r9%SA_T8An|hB(gUvdn!@`*eZUKY#KR$$kj43(Rp-H3?>q9)7VPdF z^%6~O!a8$Sr@bX%$1H2f{KDw#3eQx=i@;+^UPAq;l#A*m-eIlJV0ZHaitmGvI$v`X z-gSkiRDtDpI5N3=eiODtEMD(&g*RFy(-h2){_!sP@w>>oFyNPgOuiO$MaB1mmqX_^ zEC&@fPNAkLG!IH%8ScIs?%sJldxu5rJ~u$xiLdnq?8ek?K&gXpnF%ogOo98w4fun0 zB7Euu>}}Rv?Fau&wYAhNE+ zy8#Z#k}130lwHEkiC82T$q$iICx=KW6OSb_@Z@<`aa(XuG?~iA#gql>2OTpVL;{%555NM`w%le9|h{$Q2i35L9*f|c4(4aL;}<4|pm-xGW! zFeC6l`NFE%IDZ~P=*qOP3NPKXeyUL+X!VX4p5UxN02^D1V=H_$Fz0cED67&u!9akZ zLimRua$yyfW}N%L@B*JW$22e;0FZe6A0$I-$urqIKQiuZ=NPnAYZ0JTXdB2p`jK=( z>i9VjCHj$$G_}et=!KC&=Z&$`N{udX-vM-;AbnWbF0fktVShLHNt&kXb;AD^q)(_d z>vcZi`v~G;s_s5_9wN{2L{{wXpmGQ6C=o z9n7bjGEh!4jv#-+Dk1AQsj(07zL(J5>1 zfoL9(CcNMVE`HueSTKloV&gH8KkJmsl#Q|Z!_}kx}z#*U|639NV<}U|{4!_L$>WdZ%2w<$v}f#&T!=0+r!| z@X>4p%>}Ilb%1t&4ug(?PJvh}+!!#yovHyxW0lavGE*k*8%^8{oK7}YHcc#b6~*~! zT82)USiLl{%$13?O%uy~JP3`&O%v;VI0%g=i6$N^6~&69iAAWQSe7)gEL0Rv5KSjR zYDS(uns^{p_UDy}r$U+jYxhgBv)mz!>TBwjAacLvl!UguRcKp7TBy9#_cEfG;Aqgr zzX^5wwsXsfmSE^Pecq6K0poxmRu_v9scHWNhoI-9&J}3R!-AVTn(U16x6^$+@Wdb_ z9m(LCY3N|_wI@?;c?mVaVwBBOp&4cVgGQ-$k>T|&HY&+;hR1u(2plnLpamB7)B5`c zuk}ayUs|uBE!MsG63@$TBdWJ6zE1I3ikph-ieJH!vGVFOiXT^epW;!)=PJ%UV*GS) cKzJJ!uUGs&#lfV1wc>~s73`d5x%(pi1=%uHqyPW_ literal 0 HcmV?d00001 diff --git a/42sh/objs/main/ft_putast2.d b/42sh/objs/main/ft_putast2.d new file mode 100644 index 00000000..093f5803 --- /dev/null +++ b/42sh/objs/main/ft_putast2.d @@ -0,0 +1,6 @@ +objs/main/ft_putast2.o: src/main/ft_putast2.c includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/ft_putast2.o b/42sh/objs/main/ft_putast2.o new file mode 100644 index 0000000000000000000000000000000000000000..003c5f0a1e8c12ef44952d17dcb5c23285125635 GIT binary patch literal 4580 zcma)Ae{38_6`tMm?(O+(-#LyQw{_Y}oum!w*^Zkk#&w*yjnT!8ag@YK+z2h_yR&`i zdGEM8Ck}OxiR+fg6j4NkkbnfCrvE??QuzZAO;L*?ghZ)Cg9LwI2?D7^tDsg*RjP*X z+nqh{Z5@)4-@YI7-ZyV%-pua#jgQ{>Bq)Ru5O{!UK(A_e#6W0wffCej(LP)2bSz6B zR|lpbMP;06mNTPKG>+Bd&^<93L-cj&uF0^K14`I(Vw4-C({$R$4eFpxr}Kgr<#wk_pt5&ZIpOTby8SizWI9cD#0si~oyu{n(bc=b3Csl#%o^oaK%K6P&HllyN%Mx!)uHUP2z8i0m zAJ@gc3&YMqV)Ct^hv3hx_&WFzaF*RZkhgINlJ5w4U2Z9lCeB<u+7M6D=7Csb_XAZka3|*RaB5jz3o>=4= zF1ggAk;P*xTC9@th>PIN42#SRcT`#JESwRdwj1Sz**YX3{Tr+N-~RE+NNQ!I8!&q2 zgDcw2O{w@?srDIO@i8hsKd<&--N-rCL>6T}XRCdnVbk14WjcwaS!X`}wU#Ic5aG$V z0$@WW7G95j;k5&U!+XTOJ^Kd5<0Hev1E1gB8x#GTdqp28_FyWPFJ;nOL_Z9@qMr5}l(Z1a?lI$RA55JGXV0rp#2~q}eT2yo8lcXR?;fMA<|j4Wd+$cvYdp zX1TmI8M7Z*t1QyVa?%O0r5T3UQZbXx7SZGIlH`_PkUe2>B413y!DcfKOHCzVmA-zUzE4B5I^3=MaiJ%7Y5(Ar! z%V1G;bLb859(p`T|F>Lii`rfj`YW`Z?E4IJt9=uyRude8Wf`KnF8nVrLyg&v_AvJo zj=;Q?G;d<72}4QTl_SM#({wZ1(#4rc5`&ymj5%dSkL{nHx0bQwpPc|L7r+ax#(v>p!qQIc8puHqWquWtv+<3=TqxIrUmO0x+{H(=-#_=8@6TNr{nCZ^ zf0AGSfe6;b}-Kp5wxwBVZzprclYvH>ew${J+kN3B}^GWSj{)pJWgIFCQ zEJz!u6Z9Bp6f^~5)qDf=L(t2h%OGwHnBY#efTOWuXky7p6ZefKZUzn|8>^hA97uXC zOA~8Inpny7x(Jdc);Uctf%qaoW1-W;LSF|$dly6#t4VsX`eF|P4|uw0}at<)yM0d5_UFB6;HrZQU2Rdk0&>P(^A~m3a;){ZYIso;FVVgUNG<} zB#U^-bWE}SCUg05M?zW1D-OjPQM6F)ueG2)r0Mz-S|j<87SN3iTKJsS0y$h>MZI5Z zxvFiT=a7C?Q^&OMm>t{Fr-e^zQT?LR*$3b;Z4LZ33~3uDw9X+dIHVc+l-2~BF{Ei2 z$aqp~Jf}SXLrow0#`M#+SqqG5#!;`MR)0=wgvw*fYa|s&PK=in-|~4@l)XR!$#YFha4W?EA>vPZ<6|Ua6s#{ zlW&&%Udh31JHN}>Pn-w@w{<}9sA7jtkNNa9KAo}NcwwSG`GHWtKQ_uHz9(qF7ZFSz V%^LS={Pgg2W~_A1qw-ry{0{?6kCgxb literal 0 HcmV?d00001 diff --git a/42sh/objs/main/lib_expansion.d b/42sh/objs/main/lib_expansion.d new file mode 100644 index 00000000..19e6d001 --- /dev/null +++ b/42sh/objs/main/lib_expansion.d @@ -0,0 +1,6 @@ +objs/main/lib_expansion.o: src/main/lib_expansion.c includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/lib_expansion.o b/42sh/objs/main/lib_expansion.o new file mode 100644 index 0000000000000000000000000000000000000000..a4018877ae615b3997516dc1af5d29e0136d8fff GIT binary patch literal 2608 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 T2~K*_ZB84uo|qtSFvtG@1q@OX literal 0 HcmV?d00001 diff --git a/42sh/objs/main/shell_exit.d b/42sh/objs/main/shell_exit.d new file mode 100644 index 00000000..ea1130bb --- /dev/null +++ b/42sh/objs/main/shell_exit.d @@ -0,0 +1,6 @@ +objs/main/shell_exit.o: src/main/shell_exit.c includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/shell_exit.o b/42sh/objs/main/shell_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..bfddb613ad3350ca73fed1cf141c945730687dff GIT binary patch literal 2628 zcmbW3TW=dh6vt=n*ts}y9H0^vP#MucBe0#M0a9*F+N82dkf8JeLe*rwyN)+(b}jEF zO|UFgii9vyMLz;BJi{yEfr!gPU+7ohfk+_HN2H2d_@CLciM>gbh$GFOIWy<{=FC-l z|IY{i_6ngT1wJS}C|fCf@+gp#C}pw_k*6sT@-zEHHkg7+jyfSy2G)8I)(eaW>d>(635GQP9X_Xg*8nR%yZGa+->584;Vf%9$X?vmy2=Y0~JZ;g2&>TuqQZm1OF`9-`4do)k4 z*Bwi``U<7DZ@z5?y~YXIN9GsuyvnlL;COyNGVe6=zBndNAlF_d2XBm zkDeM6=Z}{n#cedl_sXe<0{2_Pq z`=;%#wVE52(;A(e@bk@z=d_v?XSFq2IBPa7&uIBI%W6I3)kPuuUQS>_T2n*alAO5KVvv}SqjtRFp5)?#fh;)2&HR20!vG`yk%1_ zO-=eWY1B95q}UrrXd~Ka_R&-_n@c~D9nl`a;wFlMDl-Gg>?@g9GtUj4AH-kjY}Q<|Bba$_?7}4^Y#FH3XO6oh=h1DugEq?Qm;fx?p5z02KvYBnL=m zEZOnc9mxOjd5mBXIu9C-S5l<#xM##syk7W{j|vVyJY||qmqbHoA6*gJdQQs?_V(R{ z*J*e?iL&?)fp&JHB@?sR+{cNFL(y5k37>>obxr##J0vs+nozXp1c{EV#Su~|^zZIP za#%|x2DbaQH&ai&pDLyArlzW?#O0Kh{wC269AGz4Fka!j8cP(Wq4E1sI17#b!t>Br zq5|a$?g_fbJ+SGnlKnC?{L&@X&$2$n8cOw_V@+cY(}!gUy2BJaZqzN_iS<7dvoFSM zdRIDmLUx>eY3hNluA-2E;ahng9R* literal 0 HcmV?d00001 diff --git a/42sh/objs/main/shell_get_avdata.d b/42sh/objs/main/shell_get_avdata.d new file mode 100644 index 00000000..768cbd51 --- /dev/null +++ b/42sh/objs/main/shell_get_avdata.d @@ -0,0 +1,7 @@ +objs/main/shell_get_avdata.o: src/main/shell_get_avdata.c \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/builtin.h includes/builtin_read.h \ + includes/glob.h diff --git a/42sh/objs/main/shell_get_avdata.o b/42sh/objs/main/shell_get_avdata.o new file mode 100644 index 0000000000000000000000000000000000000000..4c8aa047292bd43a31a540bb9531d07794351eeb GIT binary patch literal 5744 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 Cn=tVJ literal 0 HcmV?d00001 diff --git a/42sh/objs/main/sig_handler.d b/42sh/objs/main/sig_handler.d new file mode 100644 index 00000000..7371f664 --- /dev/null +++ b/42sh/objs/main/sig_handler.d @@ -0,0 +1,6 @@ +objs/main/sig_handler.o: src/main/sig_handler.c includes/minishell.h \ + includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ + includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ + includes/color.h includes/types.h includes/lexer.h includes/parser.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/main/sig_handler.o b/42sh/objs/main/sig_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..d5e47b087c60fc942a69a4c5fb3f5fbb9abddf87 GIT binary patch literal 2908 zcmb7GO>7%Q6rSDnu9Micof;w#s4`LlMQZFcwJHk|n$Q#+2m+O~aS>>={)xSfy|(<* zB#@$3PEezQM8$yv+{%FyCyrHx1P4GuaN|&fkN^p!azjwji15ALnbh8-Bz@AG_p@)m zeLpi}fBVlL|N0qIG=>H21AnGtiGe{6g41N*g|5;Ipr1sHw1LTpBlHl&d9$$8bamIB zJ&~EcV@qv8D1=AQt9>pGj0-Y`B;$YHsr6Gh0z*p}jBUj0X?yE=Y-2uI8LKym*>SOyK>zM?5o|tryNw{oVOVJo6s$ zEPK96uXyqDB0pL06b%z}4f7DA-m%`gX%`EP?Rd96_1+M8E~>Nch*vRlPKw_AB%Xxb z9nY-Q$^~wl6-sYgy&D23BNF;y*Zf?(YWA!%U~hi2qMAX0m+TSB9pS0BBfpxN^WrUe z@G^VEYcAJztoK8K_mRkFWsi6`#15o4zX`fPK(gLguWNU#o_cfD3hHd~mc3}%dCq61 zI$~K#;KhV94LoxFg8e5(<-seI_b-fF{HQO^T^K+Bh?0K*{3lEwWD*G+goI!(fjf!nB^ICTe6*{6D!u+| zx_vXUetx5UenSnf5qSEtbA;O|7G52IeVwuq&daIa2z33#t;2tHyV|!{cr8eg?~GF^ zPTcPloNj*+dF^vHNhd5eGjsZd*ttTzVO8x|Dn1e)i5<+9aV-p|MqtE~qw&L!vqn9a zsF;?WXjnyFGVOf1P><(W;#31~CW?#Ivw1U-9Bq_%uC~laS&`SQJOlG4&Bm-_(~!$C zExUPS6dEM!z$4wRGNoS`3Pp7-6fqtO^(*_)N;S!}&~)@z@QJ{a0TmENjT;78Z2MGq8RFxl`D=; zZ-LS;Po^m$%8i(2M?^k_xj#6hmwsFc554i-(G>JFm=Yv^985$XAiGQkNaB)@$cwuP zx|bN*|HStZ7>Jre`Dys2@i`~L{XW$|&qgj>3bfRri1E$S&ACrk|E4>e+VLis8gLOz zxltPi!651^xv1~7<3UbaA*tKKMNOwDnuT!vUmbqrNVOt*i^Nz6rHf>3%IhbYvJ_Dw zL4VJ?h@$)+24^-1X>(JKl}&~sZ>h)k$-f2PBSvL!V^x&fp?z2t`UY4@v>NqrLt4M0 z2m3zJ4dXf8Z+vZx>AgnJBf8Is>p`O@3SV3w$msqtxW3ZWGrDp{HBgA$Z^Ltd0owh~ zLgI776Rtg;6!x&N>E1-#cncEg8WkbOTz}|MVIL3@!ioDpNNQY|7C|(d4wJ=PTcrw# fLg3EljCXW`@dc|~W_-TMYprGh7a8O3WySsj!7*g7 literal 0 HcmV?d00001 diff --git a/42sh/objs/parser/ft_parse.d b/42sh/objs/parser/ft_parse.d new file mode 100644 index 00000000..62311a5d --- /dev/null +++ b/42sh/objs/parser/ft_parse.d @@ -0,0 +1,6 @@ +objs/parser/ft_parse.o: src/parser/ft_parse.c includes/parser.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/ft_parse.o b/42sh/objs/parser/ft_parse.o new file mode 100644 index 0000000000000000000000000000000000000000..fac45b6976f169dbccd8d7647162851883387f36 GIT binary patch literal 5440 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 K8O&e^QT_`m69RYu literal 0 HcmV?d00001 diff --git a/42sh/objs/parser/parse_dgreat.d b/42sh/objs/parser/parse_dgreat.d new file mode 100644 index 00000000..8cebf65a --- /dev/null +++ b/42sh/objs/parser/parse_dgreat.d @@ -0,0 +1,6 @@ +objs/parser/parse_dgreat.o: src/parser/parse_dgreat.c includes/parser.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_dgreat.o b/42sh/objs/parser/parse_dgreat.o new file mode 100644 index 0000000000000000000000000000000000000000..c8ad53d989011b4437930934ee065bb72d9f7aa0 GIT binary patch literal 4876 zcmb7IZEO_B8J;_P_x60)K7WCM0#^(K(%1(Eid77?lQ=Afs1$HYKey+*wSDBcyWH-9 zK_*G%B+b=P1&Km`RL}^uRBaXdl}1Eq3KUvGky@lyDgD!?Qa>CeD72yyEfMs2W@r6z zfrgI!&O7fj?>sX*JMX)5{>^_b-v|j2s1T?im5{uKDh5HB4Y@|}Hf7xmuj2s6p!ha8 z1*MiCieu(kpi(?eq%W(@5vaI_* z)xGrrzgze`zf^p`&?mb5M$m6i`+S*PQo`kY*Qa?4F=k91E!)#Pe7;0~f5F~O{^{%U z`3@ccyH=wyF0lC-JIV z^6g3_cD!#v~UB7gPd8E>r%VwMV#se(`|*}ZXC-6#^PW(APpZY3;A82!&HDJ>q)Wsb$i+89O!)Iv zoPcKf!aBqj$kf6qC}klu)#bMBKC|>!bM&1pW@-Nwvs4^6OMP#eV|`c5v3mZM`Yyq` zWS$E$|DcJ^dUJGNRMbAn6LGHRJ1h7z+QNE5DvAT;J#^pxlXb62>EPu2RoW$9mo~N6&8g{F!d1irD7O4?P&$ zZ5Nz$E*tA;Ti&)jwltYRerxSm4x?>Vd)ta-!YL%<`9#673!bu4g9SU`wk1Wp51_gxO2k*SJ4047zt?IP(p~w9bk-FK#}%&C?-p!ZI7+8odzVP&vaX$VEhoJXJ*X^~ zCo@q%$Vd=&CYK$I6|+uyFl(n`q|4X?t|+7jhg{*fi2}JZX-wgGN|A~zKcE@l*<8wo z4^|;t&P0omjt;5hG_v9psf3&GhR9ZtLu9L9r_u%Vc-m1qE0URjz7JZo%*O?M|e&!s0jw$FxpXcK!Z97RZ@!XO|ZWAAi9wJZ|SX|SfRn$cF zxixixdK~0n8^HQNS5-yL$0BPZcg@(?@NpdT3QYtRw6Ou-w^h?jZIP&`Ss#fYH1%3R zhtNzYk3tBeAy82hiI5Lhi)#38Y@pGBK(AsJjLe$iAli_{yv$`VvcwE=4;9J-o|3hH z-I&O6J`i}wfrnvF2MRds6uN{T?C}f zHhvG)tksAA2+fJLX%lO5;=cjki6I&%7CJ}kE_oh9brqd@qj3YOSzjII?thaGYxn@% zu$O6d-~mMF`)F3vY}Oi~G$V8xO0H{WWCfa0y*0cRI*1L^<7D7GBea&w4S{u*)(To* zg_Wn(4oifp(d-7KHyInDqWY5XC!vpWflKMX&9{~XTPnk!hSkN27qB>=>-Y?7Npo;{>du zn9R73M`L2wje7lV_-NlnH(!&vt=oj+0h7WH6N_hiU&WVK>}_En$>@M?qXWv+v9!y_ z-bDF-d^n!p?M9NJV4YZp4z1xQ1;5@n6cFP4ERmmA=Ni@K9iRy^6EX|pK9im|{@{_3 zpS-!`-D7=^9P3^B&iT*QjnDaQvT^Qn|GYT&%cl>IJpabo1>gG1)fJ_;|1t847QgV? z$m;8JR%YiNU#neM{`k|8t1sr}U3-1iqtO|=UwYx&7yf$=LHF&Df-m zK-NQe$Wo9!kgq@vLw*1`19=1T7KESsT0Fo)NGIeIkbVeH(bJHxLykjELw*NgbYh5L zxbm4$c(w@fuqlW^PKdFuAci9$#*KoQVhAzkD2TB}h~dZWLSZ5x#OOvYW;p~Q#7Yh1 z$tJ|(s=OF2gcv}Ii^+fxy_FXe93f^RpB^?L9(YC1bVZ06j8{7p<_kE;qyjHSfO2N6 z)0xRaK^d5YjzZLU#xx;@y7FQ~5n_<3wJ;qKVun%!8771nGYVo_A;e6h1~PdOVwUq4 zp&-6nHSm9hLI}s4#~CD(MSYjZJgxZg5!km?1csx5=!}qY0A8HuLy)0=k?Q76|GOr- zYobpD@2mEr8HWeHLGeR)1_IY>s!<0x2P80g-o7XEznmw2Kn3=4` zd2JF|1kX-PGb&fq*s09{&v5%*C_P_kDDue*05wF^vQlLZ^b}L5@qV{Zyc0HmMojhR zMQp0Qq0AQ6)N>)M0bIJ>LaLaT%|t3yNbXW?H6uEgq%{ie+W&!P2nhdX9uF z>yG<-w|_q976H#`#rKji-4!%KL4!Kr%N5cRuH^gk9B&~CGN{=MVva|^ml_;&?A_#_ z8(+ZpT}5%deA)a^fkP_!N_>GRT}tZ_-#&-+Q?Ku;@j0pdu+MwRE&noMy z^6g5cWr&sW1$^pth->quip8954?C7;R7j}q`5xlTTBU-7EXyIS%6RjvA~*U5*Zla!V5HP_6I?*~Dm`Y`K? z_nR*4!gG37DZeM1&sf&hJ7!#k=vI7j1x|vGTk$gXpL*vNeD;VnFV+Ey-Am-KajzMBhi8`ND+k?L#k|M6%rXR&rcfn`1sQ31l+)NVhntiH2{^ z9{jjJ7!G^QDYQYc(N}f8LICC4K+`uBL@?fkfKMjN697)CG4k<~<7&)-8Q<*~3jf!Y zU*9DLG1|(mqn8IleCyWx?vC%a9XDIZ$Gbb%bgqf7 zOy_Wlb#$+R(Yd~>bL}eOI_X3)<+!%vD=U+;UAHqW5(B{8#PFWN&P*z?zRMl4(#3sN zmyq7Ro5)E?Rx{&wmyl1)D{pdkudE9*|2WcTe*ttS}I9|%T z+2OpMiIXm84|&4L4v%=k^->PGb6HH``bv?CJU@~-;Q2zvh7Y2UEqA)bY(|GvavE82 zicHE&`9ox@#38cf*qN+@9$&jk=S4bKaBZ=t;AGG#RmoTBk(48bfEFIK^XSWE7-vQl z`6+Yx$)%tdeZG&YwC$$F^m9uZxlDX4dI+siTVCI+SJlUiMfHtZ6Ev&46u?XXf@Lk`c78W#&Ia) zr>MfeLdC03sNLKT6%RE<9)-R_XkMsYL>@zn$55yRE|J$@ET%O-)EQOsva^ z&ja6yAvz}(21gqndA@<_eRLZ0Os0C9adX4~^g}vq-~+_b`US0SJb(zlj3(nWFe8+1 zhEG8)Co(^pfQlI%k$;{iiHKteHY%*?wkNzUM znIy?C_9mgY!KCo}!Q$KgWorM^Psf-@GCQC<>3}kOEbYp%S5W>RACBj@c^=775GUd= zpmp4R`Gv-&fDq?LiTu1C*Q++a^DU71kXDFyD7$#-?(dKO{M{9QKQ{37WBn`NJM-nn zsfBN+=Pmlq`)@6J?9{WPPrY;ch98~(U~Tzt{}}zHo;ds3=*=H4T$f*b{1*M}nuiZY zKln*u@#V?&55;PC|Lpk}&i?D-$2AXq>G=nbrQ=VHwqcPz4cP?Yw#q>EKpuxY3wZ_d z2IL*c1qeUs4S0a1kRHfAkUq62j7r* z1)iGrVSOEHjdMV>nY$J)PU&1JgC8)7lItXtmB_B^{>)s&-RCCc6~@Iu#B190{S1Wi z&eb`>7w7w+jb&7KD;U*+S0vxVzvTJt;ap+RZ{_U0w&OSP{Rfd>sv0ysT4VO=HAcVQ z*rSJg^pJ6vUI!~;lynmskg-FrGKTe<69D`57=RwV0dDoMT6*+F{dyD_fEECTC!JTF z(AUAbpL8c(eG|PA)qnd*mQ& O171Y&a}jrOl>Y!#i_Gl+ literal 0 HcmV?d00001 diff --git a/42sh/objs/parser/parse_great.d b/42sh/objs/parser/parse_great.d new file mode 100644 index 00000000..25da9143 --- /dev/null +++ b/42sh/objs/parser/parse_great.d @@ -0,0 +1,6 @@ +objs/parser/parse_great.o: src/parser/parse_great.c includes/parser.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_great.o b/42sh/objs/parser/parse_great.o new file mode 100644 index 0000000000000000000000000000000000000000..f5bac75a4c283f96550b38b4e415d3dd81f87cd3 GIT binary patch literal 4872 zcmb7Ie{2-T6`nhL_x60)KK}v(1x^?U(AWnC3T+O86AXtT3ZZd=+O*sA-P%5K++BC~ zz#x;*xNUMZY7^y0|42h4)Y4W}NtC8lBT5T|3J_HqDJ`N>rKVEa8a1dCr4nf(==aUe z8v6nb9r?|h_syGcW@qQUo%8ShbMb0Oh(MJ<1*wJPO%5=yTf;TCNDPG5u9E0N9 z;1ra4f+(ixT0^ea_U!w+x7~l;_FF5s2o&;h+TS(^5hhSA_EGu8G&5FTX~1+`TSBI} z?!m6D>-}!w^PE(CztP9L{6^4kQ2TtjLR!L=eD6>47NTrS94*_EJbb=XU!QI5B>&{~ z`FzhQnp@?|=KBjAQpxu%zCe^trRT^^6Qa4%+edWWaD8?vKVUf@YZ2cS%YT3jkoI!FwM#N zU`X+;ReVO&<5Q-H2r=llsr`7%W%H7;@_B!u_`a$ZlLQ}2;wJ0kdy_5^Zy*=n3Rwq# zzKU0&nZB?Nu>~@*a0*IA2u*akX}dRB{%dmN-7U%T-b=}HX)IapeLFeYdnq~E$iH&$ zd06L@r-ED%n&@myj_iqw`mgasoa+9NGhg_N?CnM`oJ6wR{bq7hS!<&navBIkB#Fq>mR7zC6LgRHYa8vvqZ~_?PXRcl zc;vStIjY9&z3#geL*aiy`E_67`bLfcv1u z(t{~m^aCwCY~|6H%W$0;QRGL?;m4SQUi5iBj?$Ks7URz?Y2-HXvFITJ4T1S}Ov6OHa6XfLtdqcpn^6w;p?`1lBvxTRds735d@}Q zFX#}O3guALL;H;bKt>-;GT)Rw2x5m;)ozCOC)=((Nf( z`w3=uMZ9A)K{Ve->GXg-f-)kE5kp+bhvne^KL>$jr{twi+( zAZ@zw2dGx9G5jZJPOMFuSd$aK1AIG%Xq;H+9IdTxpIu!dVzdiwP@Z6NN+JVKt=Th;d`MEa)Ar!f1htH3bs{;AB44*qZiAyZ9?-QK>D;u z8p_aP(nIpkW#?R^t3FMcb^K$6h`-2q{lIF@$h z*lQ^Nj}OQ5tKCd86s!|#(xEl{py0O~hXO*JA0_hh;#{ZNyaBX8rb4Dc-2K^EWA_{w z{@L3L{&}eP%ZGXvzI*2L4P!IjN;l7Z`tqAIA3y%W@U!Pm&iVd3?=3C=<6pzCY4Nj1 zhgWg*CFR17a;uD*W&@^LK2XBA$<^@q9-8FLk>fZLw*lobYh5L zxbm4$c(w@fuqlW^PKYt3Aci9$#;1aqVhAzkD2TB}h~dZWLSZ5x#OOvYW??!Z#7Yh1 z$tJ|(s=OF2gcv}Ii^+fx^MmqYf+NIC0Bv;A2{)nW5<;h&n{c_smX}5 z+lkAIjDvK<%i8!Y4TSRM)iKD|=lP(G%~Urm7}bIoCC|gV>Ur&fT%pfv<*Xsg_L{f_ zfXFLV^#LtXV{~aXdXLtS&_W36BkkIPkRtKvk zq0Q{kA_@3z(i#CwL-zscKj(-xk3f$W+@`hkXp8jK+A;uh02m$GtR6|y>bcCu%w#pr zXxEW>@JwKu5xJt~gf;^}56r-KgJJCWY-|pmy*&ht4Qb~M0`F(_-=G1l{xdZ3*A)JW z!WkaOe(m3e#$L3q^l&|{^a7=4D-A_Hoi_(+h^S|!3jb#`!4&f=Y-an3{fP>j*>__9 z`U+c^6V8M%`*GuT?M$gCo2g93PVZ1{w~&<}jsyN*l*{%@OOD3b;T;ygL2->2;=eSi B-?{(* literal 0 HcmV?d00001 diff --git a/42sh/objs/parser/parse_greatand.d b/42sh/objs/parser/parse_greatand.d new file mode 100644 index 00000000..4df2f669 --- /dev/null +++ b/42sh/objs/parser/parse_greatand.d @@ -0,0 +1,7 @@ +objs/parser/parse_greatand.o: src/parser/parse_greatand.c \ + includes/parser.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/ft_readline.h \ + includes/exec.h includes/job_control.h includes/builtin.h \ + includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_greatand.o b/42sh/objs/parser/parse_greatand.o new file mode 100644 index 0000000000000000000000000000000000000000..ba7346b0186e795ec597d6a782f3087db65873c3 GIT binary patch literal 4768 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 O;@2Qv=GNTnBmM`0WX=Tu literal 0 HcmV?d00001 diff --git a/42sh/objs/parser/parse_less.d b/42sh/objs/parser/parse_less.d new file mode 100644 index 00000000..7e5bbc1b --- /dev/null +++ b/42sh/objs/parser/parse_less.d @@ -0,0 +1,6 @@ +objs/parser/parse_less.o: src/parser/parse_less.c includes/parser.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_less.o b/42sh/objs/parser/parse_less.o new file mode 100644 index 0000000000000000000000000000000000000000..7128079eb83285b8b15246fb3a386fe259895627 GIT binary patch literal 4860 zcma)Adu$xV8J|0Q_x5~#obC9Lq)AS35)z7ijuVL0IH?V|TudU|6w?Tbw&%OGec^m} zz1_>J4kSu>97YwPqEd@^C@SegZ9w87rJ==vs7Vw=k*HA8{u7~A7y)XiXhi{${(iHw z_W4MfjQq_v-*3M8&Ft)a-_H5ZpMCUYKnP!jKn1CUz(? zv%x7Sbp%mN)3J6rZrinQ@85R&tnIa;Tm%aFIPFxu5J3W!Vjq=POfzW>7e-Cn$xFyI zZ~kuI)^B;;!sB^O@x7|gba@TG*P!Ph0M-WCTW_RZ=Q7(Vo>o#6nGwdJc=uE{?t1!s5Rr?DBbLNQg17P3^^7I+c-(<gFdZunosUfpU5HIK@UJ*@ z7S`F=Nk1n*6P*pQ1AD@v?tY$#ll@ENf_!5Fg3m_{2Ed(RecF`zK$J`daAcGb8Fiz?m->i%hORg+zKh^bidB!DT! zBfk={Ni}BgtnXF~h5u{Hum1uUd0+}C_u!<2@o=20*#F98{}-_XCkF3+y^l#EvU&3z zTOvEGyq(HsBHbOG9i5Sti8L}>dv_;{jkeVJn?-tZ|XZW*jTyn09IpdQh1T z&tp7~K#?HqbT%^@DP-)_XvRuLNSC%o9Fb3rjyb}1;(2nXQ<%bbl_C`xem2vQ4w0<_hsajmN~ZGYakZ^(`+QtV8t%AZ@0aG)^pZj@BLW+=uD{I`w(RXHc#B^}$L&zo5f9KEPtM zUZ&NJ2M~eh&z7lYyflY)qq#kJjU;SF~kJI6qh(E;7zy383%sC?{2 zlv4gH`EWeH*7N9yf^}j|I<$r#68vW4P(X8z2&Ki zm(H*F=i#9r93EKt;pw~Trx(1Pn78mJ|9WfTgU6qoc>J9cOP>AvC##Ded^~Yfi=O$z z#Py#qSd&?FWW9E#bKgUuPkxtO^y#U!_lB!?y!gy7&;0kJFRSjo^O<`NCnAqev|^LK z4%rC#HY5qz3E`1^67oFcb;vuA_aXeq*Wm${LV6&#L53kbMGrxqfEVmi1|TzF~JdHCi3WE6XJna^h{TTno+5XIP(P@WKw|_BS1Mb z*6GY-p&+JMLWdw~JY$*=LtS|>q6jg_)LNL12r)ycfeaHuj2Q(ntq@|SQ3IL02)&HT zTZDr6Zq>m57YYF!a~@}ql$I!2UG7qNCPI9BwhG^_urFL4Fdl_3XZji>_ivJ2yr{+t z(N`OOz<*PXcekB@uU|YzYTxIzHK=`@3F4c*Z{hlsNEed$VG}Lb`KYp@sWsg<%th?o zc2r(uY|PB7ns-M7pS*Z=jPdQcE@)#f)ddSirQkiu^>FWbZhJJH9d=u3YnPRGoA`2o z$SoChJ}p#b^l4T4fL7n51$s2UeydgkE2tMV0~(ONO{>sHwW?zP2edGN9<2^;wXm9c zw1op&2pE7S0J_!*TQndUT3wgLn3j~rX>Ar+ z2G1VMaX>C-UXQi_zyM6&)BYfKo0$U--p*aeZnX0*fp@dvJT#yU=b(wdpzz-+{8?yZ zzV?IA*ogLZF0MzFUZM12rJ=~DzoInSqK=g+%(f+_JU^v&ds+YbGMm2$O8xuGY+=rx v2VsujvhC!Pg`8~0lgWHyT(zBSN`g2F_!m(+H6krJ80Uu9SN!b64Ibrxgy-3) literal 0 HcmV?d00001 diff --git a/42sh/objs/parser/parse_lessand.d b/42sh/objs/parser/parse_lessand.d new file mode 100644 index 00000000..ad28cc5e --- /dev/null +++ b/42sh/objs/parser/parse_lessand.d @@ -0,0 +1,6 @@ +objs/parser/parse_lessand.o: src/parser/parse_lessand.c includes/parser.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_lessand.o b/42sh/objs/parser/parse_lessand.o new file mode 100644 index 0000000000000000000000000000000000000000..c9aa2e8da0ec7c69ee7995009b23304a04755951 GIT binary patch literal 4768 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 Lx4AXz`UvqqfHcf$ literal 0 HcmV?d00001 diff --git a/42sh/objs/parser/parse_separator.d b/42sh/objs/parser/parse_separator.d new file mode 100644 index 00000000..7e6a25ab --- /dev/null +++ b/42sh/objs/parser/parse_separator.d @@ -0,0 +1,7 @@ +objs/parser/parse_separator.o: src/parser/parse_separator.c \ + includes/parser.h includes/minishell.h includes/libft.h \ + includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ + includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ + includes/types.h includes/lexer.h includes/ft_readline.h \ + includes/exec.h includes/job_control.h includes/builtin.h \ + includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_separator.o b/42sh/objs/parser/parse_separator.o new file mode 100644 index 0000000000000000000000000000000000000000..c4a348c3d0bc8e29a61c2bcdc53032871986c762 GIT binary patch literal 4548 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 t58=s5U08MdAgl>o|FT&pGhLE0UN`>NkM{yE|p} z%`k7K-8QvpY$6?35-ZR@AYdCqB_@&*gdjrPrbW;i+bAIh6K#mZst^j)q>8rwe)rwC zoqZH3H+$~6=iGCC_w$^0XHWk7oeL2mLNx*vs1`J%p-O;I=7UViA5-3lc^#*fjV}XJ zkmAbEvP$+;NeN(!NB9k8^pkS%^C7YQ-KhzgSkpQe z<b@QErx7{*p73SukyrlS>0X%fgf%Nfm`Ly&4;{9Td zwGclrq*-+}$HK=;jgA)WZQQ@P^YifzD1qO;soBH3R3H&QD^UC9CXg&pH{)+HiBVM_dN|Y#I`0fyb+OE$*K> z^8lVbVT~1Wx*kd}AM`4`0X0Y*iAh~;sX-c>P+gMw@s`Uv5;3^mg2LOXCbLN;y44>u zKkkb(iFuBkd?%-J^|0lQM2;R^Jb-d z)~t-2F{eo_{Hu)o0n+(d=`^I%<|~+FtuQMm&u~<8dgE!cGH4tTN*sur(|un1fwd3% z7Srnuvl6=GA>~2CoF2juQ%0}@7(*Csz%XAK;C^5j%y4=LGZW_CnYdZ`rE+QTdfS!J zS#!D!qwDxr898NEevJv9sto-`ny;8K_Z}a(=U8`I3^MK$8#dgrF|o}qy4k#w=0}{QbnT+YEVn%BPT09zPg*2Lpmvkv+w)s9spRUF z?u3;t?66h}=`d?4vQ9~)+>$6+qoty43s>=M$(|JHyi>BBlI3Q1q6d{#LMqCniiiQJ zgq+Je|7Q@xE@oW!r>P-2fdTe*s#GYWXqjx zF?7)(nH)w|93qn{r92neD$_-_igqSjM32W^#T}8(~r<&TW>`2s?kJPsn)mR-mab_YD+{-m7VD@o5D8=sFZ&oW{OiTFyp<@X$7Jn4L1y!muL#|dfJ)X6 z|3ZEQRJ$m`H6KE=W{dVTSj5mdl0F}5eG#h2a#XKDrOh|~2-c~!MBfDGz}lRFH97F# zq2B@*jROmv-uf7E?n8ARoqC(W=U1n`CRz`E0Hj~f1uRADNlJZKfQTGIvzcP2)(NH= zk!QfZK+U|^8nC$D9la6!992moa04A|pWZ7s1k!VqR#5srq)|#MA&JOEh(jQ~-Pi~g z*Ox{|z&6JSH%3< zpa~|wT;%=(!_#@skHycve3GG)Qg%JyEY-f0gT5D0K8+3i`E_X{7z*ZzdFkL9zHt2J z;@*R(#}5xdd_HIzRXYyO56?VM2dMPj?7}k}AK&%t>80-;9=Y%E@Upjm_4Vd6SN%TS zw&20{Pc69r=wrJce*O4op7_hT6_tOyx9ewG^2AHK)_i!?DrezSH)tn%_w0+E`$>M` z`Bzu(j@NJd>A@eJ_}4oZ>UQ6K@ZQ7e#KXIIeR*%!fxZgLfVP9a19}W}1au7aI_Php z|A3mXfNMbgps#>dxMs;n3-R55@Q7Lx&0%n!n<`#-1A)%eOiO^I$6t9mM--8uLx*Bxkp9Dkky#^cO-wxl@pngusixC#jpf?oyu(1Jk zh+}ZhmmXJmBc*fY41Sm-%Wg5Lq-1tg-*s~}?hZF8Un{N%JhSj11Ezdo^-S;tJu|ei zpXwzAp;qugc)# z)ZDK{`n52m21sps8SQUrEyLPks8;DEZSk)%|Q&%Uc5SrhqK0F}$Qp#Z0*%o2g8un4UzN4_Dj)XFO+@@{X_qFLb)$ eR^UHAx$Kzqlm@s$e3If-WGcu1-TV*uhv5eR literal 0 HcmV?d00001 diff --git a/42sh/objs/parser/parse_word.d b/42sh/objs/parser/parse_word.d new file mode 100644 index 00000000..2131817c --- /dev/null +++ b/42sh/objs/parser/parse_word.d @@ -0,0 +1,6 @@ +objs/parser/parse_word.o: src/parser/parse_word.c includes/parser.h \ + includes/minishell.h includes/libft.h includes/get_next_line.h \ + includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ + includes/btree.h includes/color.h includes/types.h includes/lexer.h \ + includes/ft_readline.h includes/exec.h includes/job_control.h \ + includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/parser/parse_word.o b/42sh/objs/parser/parse_word.o new file mode 100644 index 0000000000000000000000000000000000000000..93d75188d7552b89675929ca16a26e0e374b8a60 GIT binary patch literal 4688 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 Date: Thu, 2 Feb 2017 11:15:08 +0100 Subject: [PATCH 61/67] correction de leaks --- 42sh/objs/builtin/bt_read_get.d | 7 ------- 42sh/objs/builtin/bt_read_get.o | Bin 4032 -> 0 bytes 42sh/objs/builtin/bt_read_parse.d | 7 ------- 42sh/objs/builtin/bt_read_parse.o | Bin 5484 -> 0 bytes 42sh/objs/builtin/bt_read_term.d | 7 ------- 42sh/objs/builtin/bt_read_term.o | Bin 5028 -> 0 bytes 42sh/objs/builtin/builtin_cd.d | 7 ------- 42sh/objs/builtin/builtin_cd.o | Bin 4996 -> 0 bytes 42sh/objs/builtin/builtin_echo.d | 7 ------- 42sh/objs/builtin/builtin_echo.o | Bin 2684 -> 0 bytes 42sh/objs/builtin/builtin_env.d | 7 ------- 42sh/objs/builtin/builtin_env.o | Bin 2356 -> 0 bytes 42sh/objs/builtin/builtin_exit.d | 7 ------- 42sh/objs/builtin/builtin_exit.o | Bin 4544 -> 0 bytes 42sh/objs/builtin/builtin_read.d | 7 ------- 42sh/objs/builtin/builtin_read.o | Bin 6604 -> 0 bytes 42sh/objs/builtin/builtin_setenv.d | 7 ------- 42sh/objs/builtin/builtin_setenv.o | Bin 3304 -> 0 bytes 42sh/objs/builtin/builtin_unsetenv.d | 7 ------- 42sh/objs/builtin/builtin_unsetenv.o | Bin 2808 -> 0 bytes 42sh/objs/builtin/is_builtin.d | 6 ------ 42sh/objs/builtin/is_builtin.o | Bin 4660 -> 0 bytes 42sh/objs/exec/ast_free.d | 7 ------- 42sh/objs/exec/ast_free.o | Bin 3900 -> 0 bytes 42sh/objs/exec/exec_ampersand.d | 7 ------- 42sh/objs/exec/exec_ampersand.o | Bin 3124 -> 0 bytes 42sh/objs/exec/exec_and_if.d | 7 ------- 42sh/objs/exec/exec_and_if.o | Bin 7112 -> 0 bytes 42sh/objs/exec/exec_command.d | 7 ------- 42sh/objs/exec/exec_command.o | Bin 6752 -> 0 bytes 42sh/objs/exec/exec_dgreat.d | 7 ------- 42sh/objs/exec/exec_dgreat.o | Bin 4056 -> 0 bytes 42sh/objs/exec/exec_great.d | 7 ------- 42sh/objs/exec/exec_great.o | Bin 4052 -> 0 bytes 42sh/objs/exec/exec_less.d | 7 ------- 42sh/objs/exec/exec_less.o | Bin 4040 -> 0 bytes 42sh/objs/exec/exec_or_if.d | 7 ------- 42sh/objs/exec/exec_or_if.o | Bin 7100 -> 0 bytes 42sh/objs/exec/exec_pipe.d | 7 ------- 42sh/objs/exec/exec_pipe.o | Bin 6740 -> 0 bytes 42sh/objs/exec/exec_semi.d | 7 ------- 42sh/objs/exec/exec_semi.o | Bin 2920 -> 0 bytes 42sh/objs/exec/ft_exec.d | 6 ------ 42sh/objs/exec/ft_exec.o | Bin 4884 -> 0 bytes 42sh/objs/exec/ft_findexec.d | 6 ------ 42sh/objs/exec/ft_findexec.o | Bin 4740 -> 0 bytes 42sh/objs/exec/launch_process.d | 7 ------- 42sh/objs/exec/launch_process.o | Bin 5908 -> 0 bytes 42sh/objs/exec/process_redirect.d | 7 ------- 42sh/objs/exec/process_redirect.o | Bin 3424 -> 0 bytes 42sh/objs/exec/process_reset.d | 7 ------- 42sh/objs/exec/process_reset.o | Bin 5396 -> 0 bytes 42sh/objs/exec/process_setexec.d | 7 ------- 42sh/objs/exec/process_setexec.o | Bin 4152 -> 0 bytes 42sh/objs/exec/process_setgroup.d | 7 ------- 42sh/objs/exec/process_setgroup.o | Bin 4672 -> 0 bytes 42sh/objs/exec/process_setsig.d | 7 ------- 42sh/objs/exec/process_setsig.o | Bin 2392 -> 0 bytes 42sh/objs/exec/set_exitstatus.d | 7 ------- 42sh/objs/exec/set_exitstatus.o | Bin 3324 -> 0 bytes 42sh/objs/glob/dir_glob.d | 6 ------ 42sh/objs/glob/dir_glob.o | Bin 8296 -> 0 bytes 42sh/objs/glob/expand_brace.d | 6 ------ 42sh/objs/glob/expand_brace.o | Bin 8012 -> 0 bytes 42sh/objs/glob/expand_esc.d | 6 ------ 42sh/objs/glob/expand_esc.o | Bin 4616 -> 0 bytes 42sh/objs/glob/ft_strsplit_esc.d | 6 ------ 42sh/objs/glob/ft_strsplit_esc.o | Bin 5012 -> 0 bytes 42sh/objs/glob/ft_strsplit_spe.d | 6 ------ 42sh/objs/glob/ft_strsplit_spe.o | Bin 4984 -> 0 bytes 42sh/objs/glob/glob.d | 6 ------ 42sh/objs/glob/glob.o | Bin 4116 -> 0 bytes 42sh/objs/glob/is_char_esc.d | 6 ------ 42sh/objs/glob/is_char_esc.o | Bin 2588 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_back.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_back.o | Bin 2504 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_clear.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_clear.o | Bin 2672 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_del.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_del.o | Bin 2880 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_front.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_front.o | Bin 2504 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_new.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_new.o | Bin 2628 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_order.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_order.o | Bin 3136 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_pushback.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_pushback.o | Bin 2832 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_pushfront.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_pushfront.o | Bin 2868 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_reverse.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_reverse.o | Bin 2732 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_size.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_size.o | Bin 2832 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_swap.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_swap.o | Bin 2780 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_to_tab.d | 7 ------- 42sh/objs/glob/lib_perso/ft_ld_to_tab.o | Bin 2996 -> 0 bytes 42sh/objs/glob/lib_perso/ft_strjoinf.d | 7 ------- 42sh/objs/glob/lib_perso/ft_strjoinf.o | Bin 2600 -> 0 bytes 42sh/objs/glob/lib_perso/ft_tabdel.d | 7 ------- 42sh/objs/glob/lib_perso/ft_tabdel.o | Bin 2608 -> 0 bytes 42sh/objs/glob/lib_perso/ft_tablen.d | 4 ---- 42sh/objs/glob/lib_perso/ft_tablen.o | Bin 2448 -> 0 bytes 42sh/objs/glob/match_pattern.d | 6 ------ 42sh/objs/glob/match_pattern.o | Bin 6928 -> 0 bytes 42sh/objs/job-control/builtin_bg.d | 7 ------- 42sh/objs/job-control/builtin_bg.o | Bin 4860 -> 0 bytes 42sh/objs/job-control/builtin_fg.d | 7 ------- 42sh/objs/job-control/builtin_fg.o | Bin 4868 -> 0 bytes 42sh/objs/job-control/builtin_jobs.d | 7 ------- 42sh/objs/job-control/builtin_jobs.o | Bin 6616 -> 0 bytes 42sh/objs/job-control/do_job_notification.d | 7 ------- 42sh/objs/job-control/do_job_notification.o | Bin 4632 -> 0 bytes 42sh/objs/job-control/job_addprocess.d | 7 ------- 42sh/objs/job-control/job_addprocess.o | Bin 5080 -> 0 bytes 42sh/objs/job-control/job_cmp_id.d | 7 ------- 42sh/objs/job-control/job_cmp_id.o | Bin 3768 -> 0 bytes 42sh/objs/job-control/job_format.d | 7 ------- 42sh/objs/job-control/job_format.o | Bin 3992 -> 0 bytes 42sh/objs/job-control/job_format_head.d | 7 ------- 42sh/objs/job-control/job_format_head.o | Bin 4356 -> 0 bytes 42sh/objs/job-control/job_free.d | 7 ------- 42sh/objs/job-control/job_free.o | Bin 3932 -> 0 bytes 42sh/objs/job-control/job_getprocess.d | 7 ------- 42sh/objs/job-control/job_getprocess.o | Bin 4356 -> 0 bytes 42sh/objs/job-control/job_getrank.d | 7 ------- 42sh/objs/job-control/job_getrank.o | Bin 4396 -> 0 bytes 42sh/objs/job-control/job_is_completed.d | 7 ------- 42sh/objs/job-control/job_is_completed.o | Bin 4832 -> 0 bytes 42sh/objs/job-control/job_is_stopped.d | 7 ------- 42sh/objs/job-control/job_is_stopped.o | Bin 4828 -> 0 bytes 42sh/objs/job-control/job_kill_all.d | 7 ------- 42sh/objs/job-control/job_kill_all.o | Bin 4188 -> 0 bytes 42sh/objs/job-control/job_notify_change.d | 7 ------- 42sh/objs/job-control/job_notify_change.o | Bin 4252 -> 0 bytes 42sh/objs/job-control/job_notify_new.d | 7 ------- 42sh/objs/job-control/job_notify_new.o | Bin 4600 -> 0 bytes 42sh/objs/job-control/job_remove.d | 7 ------- 42sh/objs/job-control/job_remove.o | Bin 5048 -> 0 bytes 42sh/objs/job-control/job_run.d | 7 ------- 42sh/objs/job-control/job_run.o | Bin 4028 -> 0 bytes 42sh/objs/job-control/job_update_id.d | 7 ------- 42sh/objs/job-control/job_update_id.o | Bin 3964 -> 0 bytes 42sh/objs/job-control/job_update_status.d | 7 ------- 42sh/objs/job-control/job_update_status.o | Bin 2740 -> 0 bytes 42sh/objs/job-control/job_wait.d | 7 ------- 42sh/objs/job-control/job_wait.o | Bin 3016 -> 0 bytes 42sh/objs/job-control/mark_job_as_running.d | 7 ------- 42sh/objs/job-control/mark_job_as_running.o | Bin 4464 -> 0 bytes 42sh/objs/job-control/process_cmp_pid.d | 7 ------- 42sh/objs/job-control/process_cmp_pid.o | Bin 3184 -> 0 bytes 42sh/objs/job-control/process_format.d | 7 ------- 42sh/objs/job-control/process_format.o | Bin 6332 -> 0 bytes 42sh/objs/job-control/process_free.d | 7 ------- 42sh/objs/job-control/process_free.o | Bin 3552 -> 0 bytes 42sh/objs/job-control/process_mark_status.d | 7 ------- 42sh/objs/job-control/process_mark_status.o | Bin 4256 -> 0 bytes 42sh/objs/job-control/put_job_in_background.d | 7 ------- 42sh/objs/job-control/put_job_in_background.o | Bin 4220 -> 0 bytes 42sh/objs/job-control/put_job_in_foreground.d | 7 ------- 42sh/objs/job-control/put_job_in_foreground.o | Bin 4964 -> 0 bytes 42sh/objs/job-control/sigchld_handler.d | 7 ------- 42sh/objs/job-control/sigchld_handler.o | Bin 5468 -> 0 bytes 42sh/objs/job-control/sigint_handler.d | 7 ------- 42sh/objs/job-control/sigint_handler.o | Bin 2600 -> 0 bytes 42sh/objs/job-control/sigtstp_handler.d | 7 ------- 42sh/objs/job-control/sigtstp_handler.o | Bin 4136 -> 0 bytes 42sh/objs/job-control/sigttin_handler.d | 7 ------- 42sh/objs/job-control/sigttin_handler.o | Bin 2664 -> 0 bytes 42sh/objs/job-control/sigttou_handler.d | 7 ------- 42sh/objs/job-control/sigttou_handler.o | Bin 2680 -> 0 bytes 42sh/objs/lexer/command_getoutput.d | 7 ------- 42sh/objs/lexer/command_getoutput.o | Bin 6672 -> 0 bytes 42sh/objs/lexer/ft_post_tokenize.d | 7 ------- 42sh/objs/lexer/ft_post_tokenize.o | Bin 3412 -> 0 bytes 42sh/objs/lexer/ft_tokenize.d | 6 ------ 42sh/objs/lexer/ft_tokenize.o | Bin 4996 -> 0 bytes 42sh/objs/lexer/get_lexer_state.d | 7 ------- 42sh/objs/lexer/get_lexer_state.o | Bin 3096 -> 0 bytes 42sh/objs/lexer/lexer_backslash.d | 7 ------- 42sh/objs/lexer/lexer_backslash.o | Bin 3620 -> 0 bytes 42sh/objs/lexer/lexer_default.d | 6 ------ 42sh/objs/lexer/lexer_default.o | Bin 4080 -> 0 bytes 42sh/objs/lexer/lexer_delim.d | 6 ------ 42sh/objs/lexer/lexer_delim.o | Bin 3680 -> 0 bytes 42sh/objs/lexer/lexer_dquote.d | 6 ------ 42sh/objs/lexer/lexer_dquote.o | Bin 3820 -> 0 bytes 42sh/objs/lexer/lexer_great.d | 6 ------ 42sh/objs/lexer/lexer_great.o | Bin 3960 -> 0 bytes 42sh/objs/lexer/lexer_greatand.d | 6 ------ 42sh/objs/lexer/lexer_greatand.o | Bin 3864 -> 0 bytes 42sh/objs/lexer/lexer_less.d | 6 ------ 42sh/objs/lexer/lexer_less.o | Bin 3956 -> 0 bytes 42sh/objs/lexer/lexer_lessand.d | 6 ------ 42sh/objs/lexer/lexer_lessand.o | Bin 3864 -> 0 bytes 42sh/objs/lexer/lexer_number.d | 6 ------ 42sh/objs/lexer/lexer_number.o | Bin 4064 -> 0 bytes 42sh/objs/lexer/lexer_quote.d | 6 ------ 42sh/objs/lexer/lexer_quote.o | Bin 3696 -> 0 bytes 42sh/objs/lexer/lexer_sep.d | 6 ------ 42sh/objs/lexer/lexer_sep.o | Bin 4088 -> 0 bytes 42sh/objs/lexer/lexer_special.d | 6 ------ 42sh/objs/lexer/lexer_special.o | Bin 4000 -> 0 bytes 42sh/objs/lexer/lexer_var.d | 6 ------ 42sh/objs/lexer/lexer_var.o | Bin 4028 -> 0 bytes 42sh/objs/lexer/lexer_word.d | 6 ------ 42sh/objs/lexer/lexer_word.o | Bin 4004 -> 0 bytes 42sh/objs/lexer/reduce_bquotes.d | 6 ------ 42sh/objs/lexer/reduce_bquotes.o | Bin 4480 -> 0 bytes 42sh/objs/lexer/reduce_parens.d | 6 ------ 42sh/objs/lexer/reduce_parens.o | Bin 4068 -> 0 bytes 42sh/objs/lexer/token_append.d | 6 ------ 42sh/objs/lexer/token_append.o | Bin 3372 -> 0 bytes 42sh/objs/lexer/token_cmp_type.d | 6 ------ 42sh/objs/lexer/token_cmp_type.o | Bin 2756 -> 0 bytes 42sh/objs/lexer/token_expand_var.d | 7 ------- 42sh/objs/lexer/token_expand_var.o | Bin 3128 -> 0 bytes 42sh/objs/lexer/token_free.d | 6 ------ 42sh/objs/lexer/token_free.o | Bin 3172 -> 0 bytes 42sh/objs/lexer/token_init.d | 6 ------ 42sh/objs/lexer/token_init.o | Bin 2924 -> 0 bytes 42sh/objs/lexer/token_print.d | 6 ------ 42sh/objs/lexer/token_print.o | Bin 3640 -> 0 bytes 42sh/objs/line-editing/builtin_history.d | 7 ------- 42sh/objs/line-editing/builtin_history.o | Bin 3540 -> 0 bytes 42sh/objs/line-editing/check_backslash.d | 7 ------- 42sh/objs/line-editing/check_backslash.o | Bin 3052 -> 0 bytes 42sh/objs/line-editing/copy_cut_paste.d | 7 ------- 42sh/objs/line-editing/copy_cut_paste.o | Bin 5508 -> 0 bytes 42sh/objs/line-editing/ft_split_whitespaces.d | 7 ------- 42sh/objs/line-editing/ft_split_whitespaces.o | Bin 4208 -> 0 bytes 42sh/objs/line-editing/get_touch.d | 7 ------- 42sh/objs/line-editing/get_touch.o | Bin 6440 -> 0 bytes 42sh/objs/line-editing/get_touch_toolz.d | 7 ------- 42sh/objs/line-editing/get_touch_toolz.o | Bin 4640 -> 0 bytes 42sh/objs/line-editing/get_touch_toolz_2.d | 7 ------- 42sh/objs/line-editing/get_touch_toolz_2.o | Bin 5660 -> 0 bytes 42sh/objs/line-editing/heredoc.d | 7 ------- 42sh/objs/line-editing/heredoc.o | Bin 4584 -> 0 bytes 42sh/objs/line-editing/history_parsing.d | 7 ------- 42sh/objs/line-editing/history_parsing.o | Bin 5784 -> 0 bytes 42sh/objs/line-editing/history_parsing_toolz.d | 7 ------- 42sh/objs/line-editing/history_parsing_toolz.o | Bin 5724 -> 0 bytes 42sh/objs/line-editing/history_parsing_toolz_2.d | 7 ------- 42sh/objs/line-editing/history_parsing_toolz_2.o | Bin 4400 -> 0 bytes 42sh/objs/line-editing/list_toolz.d | 7 ------- 42sh/objs/line-editing/list_toolz.o | Bin 4124 -> 0 bytes 42sh/objs/line-editing/move_to_line.d | 7 ------- 42sh/objs/line-editing/move_to_line.o | Bin 5616 -> 0 bytes 42sh/objs/line-editing/print_and_del.d | 7 ------- 42sh/objs/line-editing/print_and_del.o | Bin 5884 -> 0 bytes 42sh/objs/line-editing/prompt.d | 7 ------- 42sh/objs/line-editing/prompt.o | Bin 4772 -> 0 bytes 42sh/objs/line-editing/quotes_gest.d | 7 ------- 42sh/objs/line-editing/quotes_gest.o | Bin 4924 -> 0 bytes 42sh/objs/line-editing/reader.d | 7 ------- 42sh/objs/line-editing/reader.o | Bin 5452 -> 0 bytes 42sh/objs/line-editing/readline.d | 7 ------- 42sh/objs/line-editing/readline.o | Bin 6276 -> 0 bytes 42sh/objs/line-editing/surch_in_history.d | 7 ------- 42sh/objs/line-editing/surch_in_history.o | Bin 5156 -> 0 bytes 42sh/objs/line-editing/tool_line.d | 7 ------- 42sh/objs/line-editing/tool_line.o | Bin 4808 -> 0 bytes 42sh/objs/line-editing/tool_line_2.d | 7 ------- 42sh/objs/line-editing/tool_line_2.o | Bin 5984 -> 0 bytes 42sh/objs/line-editing/toolz.d | 6 ------ 42sh/objs/line-editing/toolz.o | Bin 4684 -> 0 bytes 42sh/objs/line-editing/toolz2.d | 7 ------- 42sh/objs/line-editing/toolz2.o | Bin 3776 -> 0 bytes 42sh/objs/line-editing/toolz_parseur.d | 7 ------- 42sh/objs/line-editing/toolz_parseur.o | Bin 6952 -> 0 bytes 42sh/objs/line-editing/toolz_termcaps.d | 7 ------- 42sh/objs/line-editing/toolz_termcaps.o | Bin 3688 -> 0 bytes 42sh/objs/main/data_exit.d | 6 ------ 42sh/objs/main/data_exit.o | Bin 5448 -> 0 bytes 42sh/objs/main/data_init.d | 6 ------ 42sh/objs/main/data_init.o | Bin 6132 -> 0 bytes 42sh/objs/main/data_singleton.d | 7 ------- 42sh/objs/main/data_singleton.o | Bin 5644 -> 0 bytes 42sh/objs/main/ft_cleanup.d | 6 ------ 42sh/objs/main/ft_cleanup.o | Bin 3584 -> 0 bytes 42sh/objs/main/ft_putast.d | 6 ------ 42sh/objs/main/ft_putast.o | Bin 4096 -> 0 bytes 42sh/objs/main/ft_putast2.d | 6 ------ 42sh/objs/main/ft_putast2.o | Bin 4580 -> 0 bytes 42sh/objs/main/lib_expansion.d | 6 ------ 42sh/objs/main/lib_expansion.o | Bin 2608 -> 0 bytes 42sh/objs/main/main.d | 6 ------ 42sh/objs/main/main.o | Bin 5124 -> 0 bytes 42sh/objs/main/shell_exit.d | 6 ------ 42sh/objs/main/shell_exit.o | Bin 2628 -> 0 bytes 42sh/objs/main/shell_get_avdata.d | 7 ------- 42sh/objs/main/shell_get_avdata.o | Bin 5744 -> 0 bytes 42sh/objs/main/shell_get_opts.d | 7 ------- 42sh/objs/main/shell_get_opts.o | Bin 3640 -> 0 bytes 42sh/objs/main/shell_init.d | 6 ------ 42sh/objs/main/shell_init.o | Bin 3856 -> 0 bytes 42sh/objs/main/sig_handler.d | 6 ------ 42sh/objs/main/sig_handler.o | Bin 2908 -> 0 bytes 42sh/objs/parser/ft_parse.d | 6 ------ 42sh/objs/parser/ft_parse.o | Bin 5440 -> 0 bytes 42sh/objs/parser/parse_dgreat.d | 6 ------ 42sh/objs/parser/parse_dgreat.o | Bin 4876 -> 0 bytes 42sh/objs/parser/parse_dless.d | 6 ------ 42sh/objs/parser/parse_dless.o | Bin 4788 -> 0 bytes 42sh/objs/parser/parse_great.d | 6 ------ 42sh/objs/parser/parse_great.o | Bin 4872 -> 0 bytes 42sh/objs/parser/parse_greatand.d | 7 ------- 42sh/objs/parser/parse_greatand.o | Bin 4768 -> 0 bytes 42sh/objs/parser/parse_less.d | 6 ------ 42sh/objs/parser/parse_less.o | Bin 4860 -> 0 bytes 42sh/objs/parser/parse_lessand.d | 6 ------ 42sh/objs/parser/parse_lessand.o | Bin 4768 -> 0 bytes 42sh/objs/parser/parse_separator.d | 7 ------- 42sh/objs/parser/parse_separator.o | Bin 4548 -> 0 bytes 42sh/objs/parser/parse_subshell.d | 7 ------- 42sh/objs/parser/parse_subshell.o | Bin 4896 -> 0 bytes 42sh/objs/parser/parse_word.d | 6 ------ 42sh/objs/parser/parse_word.o | Bin 4688 -> 0 bytes 320 files changed, 1067 deletions(-) delete mode 100644 42sh/objs/builtin/bt_read_get.d delete mode 100644 42sh/objs/builtin/bt_read_get.o delete mode 100644 42sh/objs/builtin/bt_read_parse.d delete mode 100644 42sh/objs/builtin/bt_read_parse.o delete mode 100644 42sh/objs/builtin/bt_read_term.d delete mode 100644 42sh/objs/builtin/bt_read_term.o delete mode 100644 42sh/objs/builtin/builtin_cd.d delete mode 100644 42sh/objs/builtin/builtin_cd.o delete mode 100644 42sh/objs/builtin/builtin_echo.d delete mode 100644 42sh/objs/builtin/builtin_echo.o delete mode 100644 42sh/objs/builtin/builtin_env.d delete mode 100644 42sh/objs/builtin/builtin_env.o delete mode 100644 42sh/objs/builtin/builtin_exit.d delete mode 100644 42sh/objs/builtin/builtin_exit.o delete mode 100644 42sh/objs/builtin/builtin_read.d delete mode 100644 42sh/objs/builtin/builtin_read.o delete mode 100644 42sh/objs/builtin/builtin_setenv.d delete mode 100644 42sh/objs/builtin/builtin_setenv.o delete mode 100644 42sh/objs/builtin/builtin_unsetenv.d delete mode 100644 42sh/objs/builtin/builtin_unsetenv.o delete mode 100644 42sh/objs/builtin/is_builtin.d delete mode 100644 42sh/objs/builtin/is_builtin.o delete mode 100644 42sh/objs/exec/ast_free.d delete mode 100644 42sh/objs/exec/ast_free.o delete mode 100644 42sh/objs/exec/exec_ampersand.d delete mode 100644 42sh/objs/exec/exec_ampersand.o delete mode 100644 42sh/objs/exec/exec_and_if.d delete mode 100644 42sh/objs/exec/exec_and_if.o delete mode 100644 42sh/objs/exec/exec_command.d delete mode 100644 42sh/objs/exec/exec_command.o delete mode 100644 42sh/objs/exec/exec_dgreat.d delete mode 100644 42sh/objs/exec/exec_dgreat.o delete mode 100644 42sh/objs/exec/exec_great.d delete mode 100644 42sh/objs/exec/exec_great.o delete mode 100644 42sh/objs/exec/exec_less.d delete mode 100644 42sh/objs/exec/exec_less.o delete mode 100644 42sh/objs/exec/exec_or_if.d delete mode 100644 42sh/objs/exec/exec_or_if.o delete mode 100644 42sh/objs/exec/exec_pipe.d delete mode 100644 42sh/objs/exec/exec_pipe.o delete mode 100644 42sh/objs/exec/exec_semi.d delete mode 100644 42sh/objs/exec/exec_semi.o delete mode 100644 42sh/objs/exec/ft_exec.d delete mode 100644 42sh/objs/exec/ft_exec.o delete mode 100644 42sh/objs/exec/ft_findexec.d delete mode 100644 42sh/objs/exec/ft_findexec.o delete mode 100644 42sh/objs/exec/launch_process.d delete mode 100644 42sh/objs/exec/launch_process.o delete mode 100644 42sh/objs/exec/process_redirect.d delete mode 100644 42sh/objs/exec/process_redirect.o delete mode 100644 42sh/objs/exec/process_reset.d delete mode 100644 42sh/objs/exec/process_reset.o delete mode 100644 42sh/objs/exec/process_setexec.d delete mode 100644 42sh/objs/exec/process_setexec.o delete mode 100644 42sh/objs/exec/process_setgroup.d delete mode 100644 42sh/objs/exec/process_setgroup.o delete mode 100644 42sh/objs/exec/process_setsig.d delete mode 100644 42sh/objs/exec/process_setsig.o delete mode 100644 42sh/objs/exec/set_exitstatus.d delete mode 100644 42sh/objs/exec/set_exitstatus.o delete mode 100644 42sh/objs/glob/dir_glob.d delete mode 100644 42sh/objs/glob/dir_glob.o delete mode 100644 42sh/objs/glob/expand_brace.d delete mode 100644 42sh/objs/glob/expand_brace.o delete mode 100644 42sh/objs/glob/expand_esc.d delete mode 100644 42sh/objs/glob/expand_esc.o delete mode 100644 42sh/objs/glob/ft_strsplit_esc.d delete mode 100644 42sh/objs/glob/ft_strsplit_esc.o delete mode 100644 42sh/objs/glob/ft_strsplit_spe.d delete mode 100644 42sh/objs/glob/ft_strsplit_spe.o delete mode 100644 42sh/objs/glob/glob.d delete mode 100644 42sh/objs/glob/glob.o delete mode 100644 42sh/objs/glob/is_char_esc.d delete mode 100644 42sh/objs/glob/is_char_esc.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_back.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_back.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_clear.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_clear.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_del.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_del.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_front.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_front.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_new.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_new.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_order.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_order.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_pushback.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_pushback.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_pushfront.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_pushfront.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_reverse.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_reverse.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_size.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_size.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_swap.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_swap.o delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_to_tab.d delete mode 100644 42sh/objs/glob/lib_perso/ft_ld_to_tab.o delete mode 100644 42sh/objs/glob/lib_perso/ft_strjoinf.d delete mode 100644 42sh/objs/glob/lib_perso/ft_strjoinf.o delete mode 100644 42sh/objs/glob/lib_perso/ft_tabdel.d delete mode 100644 42sh/objs/glob/lib_perso/ft_tabdel.o delete mode 100644 42sh/objs/glob/lib_perso/ft_tablen.d delete mode 100644 42sh/objs/glob/lib_perso/ft_tablen.o delete mode 100644 42sh/objs/glob/match_pattern.d delete mode 100644 42sh/objs/glob/match_pattern.o delete mode 100644 42sh/objs/job-control/builtin_bg.d delete mode 100644 42sh/objs/job-control/builtin_bg.o delete mode 100644 42sh/objs/job-control/builtin_fg.d delete mode 100644 42sh/objs/job-control/builtin_fg.o delete mode 100644 42sh/objs/job-control/builtin_jobs.d delete mode 100644 42sh/objs/job-control/builtin_jobs.o delete mode 100644 42sh/objs/job-control/do_job_notification.d delete mode 100644 42sh/objs/job-control/do_job_notification.o delete mode 100644 42sh/objs/job-control/job_addprocess.d delete mode 100644 42sh/objs/job-control/job_addprocess.o delete mode 100644 42sh/objs/job-control/job_cmp_id.d delete mode 100644 42sh/objs/job-control/job_cmp_id.o delete mode 100644 42sh/objs/job-control/job_format.d delete mode 100644 42sh/objs/job-control/job_format.o delete mode 100644 42sh/objs/job-control/job_format_head.d delete mode 100644 42sh/objs/job-control/job_format_head.o delete mode 100644 42sh/objs/job-control/job_free.d delete mode 100644 42sh/objs/job-control/job_free.o delete mode 100644 42sh/objs/job-control/job_getprocess.d delete mode 100644 42sh/objs/job-control/job_getprocess.o delete mode 100644 42sh/objs/job-control/job_getrank.d delete mode 100644 42sh/objs/job-control/job_getrank.o delete mode 100644 42sh/objs/job-control/job_is_completed.d delete mode 100644 42sh/objs/job-control/job_is_completed.o delete mode 100644 42sh/objs/job-control/job_is_stopped.d delete mode 100644 42sh/objs/job-control/job_is_stopped.o delete mode 100644 42sh/objs/job-control/job_kill_all.d delete mode 100644 42sh/objs/job-control/job_kill_all.o delete mode 100644 42sh/objs/job-control/job_notify_change.d delete mode 100644 42sh/objs/job-control/job_notify_change.o delete mode 100644 42sh/objs/job-control/job_notify_new.d delete mode 100644 42sh/objs/job-control/job_notify_new.o delete mode 100644 42sh/objs/job-control/job_remove.d delete mode 100644 42sh/objs/job-control/job_remove.o delete mode 100644 42sh/objs/job-control/job_run.d delete mode 100644 42sh/objs/job-control/job_run.o delete mode 100644 42sh/objs/job-control/job_update_id.d delete mode 100644 42sh/objs/job-control/job_update_id.o delete mode 100644 42sh/objs/job-control/job_update_status.d delete mode 100644 42sh/objs/job-control/job_update_status.o delete mode 100644 42sh/objs/job-control/job_wait.d delete mode 100644 42sh/objs/job-control/job_wait.o delete mode 100644 42sh/objs/job-control/mark_job_as_running.d delete mode 100644 42sh/objs/job-control/mark_job_as_running.o delete mode 100644 42sh/objs/job-control/process_cmp_pid.d delete mode 100644 42sh/objs/job-control/process_cmp_pid.o delete mode 100644 42sh/objs/job-control/process_format.d delete mode 100644 42sh/objs/job-control/process_format.o delete mode 100644 42sh/objs/job-control/process_free.d delete mode 100644 42sh/objs/job-control/process_free.o delete mode 100644 42sh/objs/job-control/process_mark_status.d delete mode 100644 42sh/objs/job-control/process_mark_status.o delete mode 100644 42sh/objs/job-control/put_job_in_background.d delete mode 100644 42sh/objs/job-control/put_job_in_background.o delete mode 100644 42sh/objs/job-control/put_job_in_foreground.d delete mode 100644 42sh/objs/job-control/put_job_in_foreground.o delete mode 100644 42sh/objs/job-control/sigchld_handler.d delete mode 100644 42sh/objs/job-control/sigchld_handler.o delete mode 100644 42sh/objs/job-control/sigint_handler.d delete mode 100644 42sh/objs/job-control/sigint_handler.o delete mode 100644 42sh/objs/job-control/sigtstp_handler.d delete mode 100644 42sh/objs/job-control/sigtstp_handler.o delete mode 100644 42sh/objs/job-control/sigttin_handler.d delete mode 100644 42sh/objs/job-control/sigttin_handler.o delete mode 100644 42sh/objs/job-control/sigttou_handler.d delete mode 100644 42sh/objs/job-control/sigttou_handler.o delete mode 100644 42sh/objs/lexer/command_getoutput.d delete mode 100644 42sh/objs/lexer/command_getoutput.o delete mode 100644 42sh/objs/lexer/ft_post_tokenize.d delete mode 100644 42sh/objs/lexer/ft_post_tokenize.o delete mode 100644 42sh/objs/lexer/ft_tokenize.d delete mode 100644 42sh/objs/lexer/ft_tokenize.o delete mode 100644 42sh/objs/lexer/get_lexer_state.d delete mode 100644 42sh/objs/lexer/get_lexer_state.o delete mode 100644 42sh/objs/lexer/lexer_backslash.d delete mode 100644 42sh/objs/lexer/lexer_backslash.o delete mode 100644 42sh/objs/lexer/lexer_default.d delete mode 100644 42sh/objs/lexer/lexer_default.o delete mode 100644 42sh/objs/lexer/lexer_delim.d delete mode 100644 42sh/objs/lexer/lexer_delim.o delete mode 100644 42sh/objs/lexer/lexer_dquote.d delete mode 100644 42sh/objs/lexer/lexer_dquote.o delete mode 100644 42sh/objs/lexer/lexer_great.d delete mode 100644 42sh/objs/lexer/lexer_great.o delete mode 100644 42sh/objs/lexer/lexer_greatand.d delete mode 100644 42sh/objs/lexer/lexer_greatand.o delete mode 100644 42sh/objs/lexer/lexer_less.d delete mode 100644 42sh/objs/lexer/lexer_less.o delete mode 100644 42sh/objs/lexer/lexer_lessand.d delete mode 100644 42sh/objs/lexer/lexer_lessand.o delete mode 100644 42sh/objs/lexer/lexer_number.d delete mode 100644 42sh/objs/lexer/lexer_number.o delete mode 100644 42sh/objs/lexer/lexer_quote.d delete mode 100644 42sh/objs/lexer/lexer_quote.o delete mode 100644 42sh/objs/lexer/lexer_sep.d delete mode 100644 42sh/objs/lexer/lexer_sep.o delete mode 100644 42sh/objs/lexer/lexer_special.d delete mode 100644 42sh/objs/lexer/lexer_special.o delete mode 100644 42sh/objs/lexer/lexer_var.d delete mode 100644 42sh/objs/lexer/lexer_var.o delete mode 100644 42sh/objs/lexer/lexer_word.d delete mode 100644 42sh/objs/lexer/lexer_word.o delete mode 100644 42sh/objs/lexer/reduce_bquotes.d delete mode 100644 42sh/objs/lexer/reduce_bquotes.o delete mode 100644 42sh/objs/lexer/reduce_parens.d delete mode 100644 42sh/objs/lexer/reduce_parens.o delete mode 100644 42sh/objs/lexer/token_append.d delete mode 100644 42sh/objs/lexer/token_append.o delete mode 100644 42sh/objs/lexer/token_cmp_type.d delete mode 100644 42sh/objs/lexer/token_cmp_type.o delete mode 100644 42sh/objs/lexer/token_expand_var.d delete mode 100644 42sh/objs/lexer/token_expand_var.o delete mode 100644 42sh/objs/lexer/token_free.d delete mode 100644 42sh/objs/lexer/token_free.o delete mode 100644 42sh/objs/lexer/token_init.d delete mode 100644 42sh/objs/lexer/token_init.o delete mode 100644 42sh/objs/lexer/token_print.d delete mode 100644 42sh/objs/lexer/token_print.o delete mode 100644 42sh/objs/line-editing/builtin_history.d delete mode 100644 42sh/objs/line-editing/builtin_history.o delete mode 100644 42sh/objs/line-editing/check_backslash.d delete mode 100644 42sh/objs/line-editing/check_backslash.o delete mode 100644 42sh/objs/line-editing/copy_cut_paste.d delete mode 100644 42sh/objs/line-editing/copy_cut_paste.o delete mode 100644 42sh/objs/line-editing/ft_split_whitespaces.d delete mode 100644 42sh/objs/line-editing/ft_split_whitespaces.o delete mode 100644 42sh/objs/line-editing/get_touch.d delete mode 100644 42sh/objs/line-editing/get_touch.o delete mode 100644 42sh/objs/line-editing/get_touch_toolz.d delete mode 100644 42sh/objs/line-editing/get_touch_toolz.o delete mode 100644 42sh/objs/line-editing/get_touch_toolz_2.d delete mode 100644 42sh/objs/line-editing/get_touch_toolz_2.o delete mode 100644 42sh/objs/line-editing/heredoc.d delete mode 100644 42sh/objs/line-editing/heredoc.o delete mode 100644 42sh/objs/line-editing/history_parsing.d delete mode 100644 42sh/objs/line-editing/history_parsing.o delete mode 100644 42sh/objs/line-editing/history_parsing_toolz.d delete mode 100644 42sh/objs/line-editing/history_parsing_toolz.o delete mode 100644 42sh/objs/line-editing/history_parsing_toolz_2.d delete mode 100644 42sh/objs/line-editing/history_parsing_toolz_2.o delete mode 100644 42sh/objs/line-editing/list_toolz.d delete mode 100644 42sh/objs/line-editing/list_toolz.o delete mode 100644 42sh/objs/line-editing/move_to_line.d delete mode 100644 42sh/objs/line-editing/move_to_line.o delete mode 100644 42sh/objs/line-editing/print_and_del.d delete mode 100644 42sh/objs/line-editing/print_and_del.o delete mode 100644 42sh/objs/line-editing/prompt.d delete mode 100644 42sh/objs/line-editing/prompt.o delete mode 100644 42sh/objs/line-editing/quotes_gest.d delete mode 100644 42sh/objs/line-editing/quotes_gest.o delete mode 100644 42sh/objs/line-editing/reader.d delete mode 100644 42sh/objs/line-editing/reader.o delete mode 100644 42sh/objs/line-editing/readline.d delete mode 100644 42sh/objs/line-editing/readline.o delete mode 100644 42sh/objs/line-editing/surch_in_history.d delete mode 100644 42sh/objs/line-editing/surch_in_history.o delete mode 100644 42sh/objs/line-editing/tool_line.d delete mode 100644 42sh/objs/line-editing/tool_line.o delete mode 100644 42sh/objs/line-editing/tool_line_2.d delete mode 100644 42sh/objs/line-editing/tool_line_2.o delete mode 100644 42sh/objs/line-editing/toolz.d delete mode 100644 42sh/objs/line-editing/toolz.o delete mode 100644 42sh/objs/line-editing/toolz2.d delete mode 100644 42sh/objs/line-editing/toolz2.o delete mode 100644 42sh/objs/line-editing/toolz_parseur.d delete mode 100644 42sh/objs/line-editing/toolz_parseur.o delete mode 100644 42sh/objs/line-editing/toolz_termcaps.d delete mode 100644 42sh/objs/line-editing/toolz_termcaps.o delete mode 100644 42sh/objs/main/data_exit.d delete mode 100644 42sh/objs/main/data_exit.o delete mode 100644 42sh/objs/main/data_init.d delete mode 100644 42sh/objs/main/data_init.o delete mode 100644 42sh/objs/main/data_singleton.d delete mode 100644 42sh/objs/main/data_singleton.o delete mode 100644 42sh/objs/main/ft_cleanup.d delete mode 100644 42sh/objs/main/ft_cleanup.o delete mode 100644 42sh/objs/main/ft_putast.d delete mode 100644 42sh/objs/main/ft_putast.o delete mode 100644 42sh/objs/main/ft_putast2.d delete mode 100644 42sh/objs/main/ft_putast2.o delete mode 100644 42sh/objs/main/lib_expansion.d delete mode 100644 42sh/objs/main/lib_expansion.o delete mode 100644 42sh/objs/main/main.d delete mode 100644 42sh/objs/main/main.o delete mode 100644 42sh/objs/main/shell_exit.d delete mode 100644 42sh/objs/main/shell_exit.o delete mode 100644 42sh/objs/main/shell_get_avdata.d delete mode 100644 42sh/objs/main/shell_get_avdata.o delete mode 100644 42sh/objs/main/shell_get_opts.d delete mode 100644 42sh/objs/main/shell_get_opts.o delete mode 100644 42sh/objs/main/shell_init.d delete mode 100644 42sh/objs/main/shell_init.o delete mode 100644 42sh/objs/main/sig_handler.d delete mode 100644 42sh/objs/main/sig_handler.o delete mode 100644 42sh/objs/parser/ft_parse.d delete mode 100644 42sh/objs/parser/ft_parse.o delete mode 100644 42sh/objs/parser/parse_dgreat.d delete mode 100644 42sh/objs/parser/parse_dgreat.o delete mode 100644 42sh/objs/parser/parse_dless.d delete mode 100644 42sh/objs/parser/parse_dless.o delete mode 100644 42sh/objs/parser/parse_great.d delete mode 100644 42sh/objs/parser/parse_great.o delete mode 100644 42sh/objs/parser/parse_greatand.d delete mode 100644 42sh/objs/parser/parse_greatand.o delete mode 100644 42sh/objs/parser/parse_less.d delete mode 100644 42sh/objs/parser/parse_less.o delete mode 100644 42sh/objs/parser/parse_lessand.d delete mode 100644 42sh/objs/parser/parse_lessand.o delete mode 100644 42sh/objs/parser/parse_separator.d delete mode 100644 42sh/objs/parser/parse_separator.o delete mode 100644 42sh/objs/parser/parse_subshell.d delete mode 100644 42sh/objs/parser/parse_subshell.o delete mode 100644 42sh/objs/parser/parse_word.d delete mode 100644 42sh/objs/parser/parse_word.o diff --git a/42sh/objs/builtin/bt_read_get.d b/42sh/objs/builtin/bt_read_get.d deleted file mode 100644 index 84401d1b..00000000 --- a/42sh/objs/builtin/bt_read_get.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/builtin/bt_read_get.o: src/builtin/bt_read_get.c \ - includes/builtin_read.h includes/types.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/builtin.h includes/minishell.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/glob.h diff --git a/42sh/objs/builtin/bt_read_get.o b/42sh/objs/builtin/bt_read_get.o deleted file mode 100644 index f4536907dd8832c00ae735a9a7eb836faaaa3d4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4032 zcmb7HZ)_A*5P!SZy)M1$-IY=V3iO&oS`e;I2tm0)IYz=JO-m#PDrv23luVPRZGNP8=N9|5uyGbq zQJ{TZOFEviV~qSPyj&q}n%#ImFpeE#P;s?1C7wPoP)Z)8`fKyE@hXflTfA&ORiF?z z-lIHwfaOn|Uk2;vx8|5KzmlF$C(D!Z(yl%KV-6=eA*RF|(&J`|?)+>#dl_fO(~HGi zQp@W@l-{IzGo0U>oKJPe{4Bh}z@WLo?)>I)|1M*^vkeo4^2k-MBfp{^cjNWA@Gj00 z&p2G1vfllSca4*|HA_4kIup{J-v&MpcD>dA<`bIMx7ityVZ2c` zR)I(7_9FU^Q+KUjGNYwR*j+0?(`xSnmHYQQ#(Nn}Y~BN`13tq;Q;eVAY~Dn4*L#EU zzUH9eMr$yJ{J1A;@}qSLk&Dk-XnMH-T!lZCx)&E4B|yuz1MDQKm)P!g=ewE4dtxKk z*L)NkIa-a4RK{YbDr3(C@T{JESUqqd*e2+G?8L3mgvZgb8w9%MQ*s;G;vcyfJMnSo zz=c$>4LdX$FLsKs55XhYwrOU(1(WgqbN~l_VB@Eshln3!#&aNXm_|X zp2MZHx~CgTbluwMniZm4igyiEvN7)^ji>^Io1b3wm6$TS}*SfXk zj215**47G#TOygu4ml0^ct$Ukot9z=-D@~4Ms_G!sMMHJ36aekBB2|)u#ymEGZ#@P z8fBPLIXx|Mg?u_}K1^qGZkkW$ys})PL5S_6E z=6wMpsofRZUK87H#g1}}y#P}G>lEAJitVV0?J#5O-i4=9r=+k1-Y4)l58cyV{|Q95 zXPNpLE9&W#BYw3CjUYWM#pyIo%ZSo_*w8PU~{)2 z2f;+NVEQPQy6Lx}7VBPnqlg@uB;hcpl?ZZB(-dt5Js= z-Kw~@{yO+{A3N!LzAv?8_l4Y&kpJL2Z=boNH6DKP2-SN6{1W&a_(SkzF!crHOxs4^ z6A*0+nW!J;lfmj1GEw`miFS=lw2>T0%|s^ZFPwWK+Eg;puCmvEtwOzHS1H^gKHr2> zLt)ldT5{5R`B*f!8V*Szf4zE|3#B=)RIOdI?R%g=>zUGz`gS&WwEs5Vbn|`%A6fL{DM^0?8u659jlq)R zV~FojJXcB3FG9!n4xdH%nLq2I8M@T@(`kOIEQ=6xV7JHFIlwDHdbr-^?+I8D}18!csM Nx>3m1fZ~S*=wGVmZAbtB diff --git a/42sh/objs/builtin/bt_read_parse.d b/42sh/objs/builtin/bt_read_parse.d deleted file mode 100644 index 8974b3a4..00000000 --- a/42sh/objs/builtin/bt_read_parse.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/builtin/bt_read_parse.o: src/builtin/bt_read_parse.c \ - includes/builtin_read.h includes/types.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/builtin.h includes/minishell.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/glob.h diff --git a/42sh/objs/builtin/bt_read_parse.o b/42sh/objs/builtin/bt_read_parse.o deleted file mode 100644 index 06499fc08274ccd10a7c401e4fb6288407240e19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5484 zcmb7Ie{9po6~FJ-zONnIu?-=RDh1pImmecefJ|d7SxL*6ehGX&xma4vozCmE1%c)PxH`!sL$Cdm;L!Xsavt75F02JGxG5vzp5(QK|Sk?N5H z<#-m(q?CV9VOg3~oyo$VSiCFW69%Y|gu|P@(YkH(l-4bB24yiN3FUp4NpEXsKw5ao zbX2I6{kBYocfW5cPODQE?`{5NBGGcZLK$B44)Jma zGjqoKn#2pp1b*iZ@o5J`FkSKlzC$%U`@V+}(%OH4VzY2M^2hH6ZaC=S|^=5r})GNRX-Xn@9=7 z@_0ui-esA;v%sVB9Q>0*GyJ2xh?Ka^z(`nw`d#SLchZiJ963O+52I2c9IB*CG22o9 z-_mIm|Ne+k_}2lW*gt9%^CLt0FkueqeMYkF_;-J*VW%#7`di0#VQ%E`&eF}fh- zxE1r$wdrWg@9J@=u_P%aup{qz`Jvun;4&l$yz(`K4V`f1~M%Rx9Vd@Z&H zL_BZNPC@jmAULB7w9e7?l4=xxDYvUm&@j)dCH;m`xNzW`kDVW&{kZYi z#4-KmkUmagqeO|p3U!PdPh6@&yoc8#)opW%e1m@9VE*P;ultVH&Z&T0O^hvssHBgJ z z0nDT+-7F5WIea&P$l(=cA3&x2sK_nt$s=@g4(XrLsT+$5ZGGG*90)+vO6>8LQy??e zVj+~z>=3%0K-(6e1uR+JHs|zW7WKbjCyoniOac=me59m*ii8IqJAbGz9_tTgHw3yO zu|PVLOQcg90>S8^cskneVtW&*M7B4cOtM3X)V}^h2jj{9;Mz6Wz@e^mvj0$5GT$Gp zUl$YFeep;v3B4#~qM|ZWdrD{2*^>AUx?!}i0e<)5mM9jlh6G1UdB3kRkZ)#%b zdD&BTM8GMFmAhcA*whofZt5(40WG-4{elZX+peD2T}9kdQU$lOnz(@Ewl5;?9?2O3 z?q2bL;sbK71@!erQFhR)TJb3)#w7b+5p2|i&4@|n5dc#I(!}y#+3_^#Zk=*BBi!98 z-R%|bZY6h_Rzkz=jv#=XjcA@HzV+q!o$ zi}W+}?%a+VLlvn9{VOUJv5KHC3y!e}DB*=9Z_P<#RLbWRmxlD~PIR2Wpt^v-P$&-a z-Nrbce>f{BRtzMgyOVf|j-HW?hmX1ao_(iYXzyP9s~;|^jRwB=)b{hq#aDZeum0%I z6)zow&WosTpq@jeb^8eQW7JAGNE?d$r0g#PMWKB_L$o#I&?z}YD@~Uz3IUN8?Fk%q zDzv3&h?Yni(r%$4+CI{d_9_k0_LYXTi)o0qwbc5&JUfsd$^k5<3mtxiDFid4SO@ip zIXX*joyHG7LvAgM^5izA9PlfCkHa|t6bg{u0s}Y5mB~r#c19>m~Fy zflmC#)RTU&DLqm`A-p8&<2Ow`>CY^^w=uWMc0yB8KJiwf6)|H}x$Q#3?GsJrWAsaK z#*Kx08k+J77gtiK7jR7c#5242R?~qI#kN@Cc9*jz&nxm=)t=#8dxLxP+@YQ1^PM5? zXy#6>m(SCj&Ag_W-_yl2&I8(yp?sbD26)9Y`~l5* z1Uk-UEzhg2@*1s;^EU2p;}u$uHXx8IF*d)A*S7JR0j{0Y8jf(gEjz$%HXi_YJ<3&E zY=HZ1OLoE>lS0vdlB>?^+}j3+x2mBkHL`#!KjO^x&`HGd60i6Z1Sb)~4ZcKsk1QM^ zUa4K;cHp1j>T}=XN&)I?oB^)7{tXc!<+)eTt=uPhlNJ!#w7gm?@LKSWHjZT3v>vX# ziAZcfuTnQu0jEuS6yB&6VyBK`hv2V%7>ynD*PzIK_3NNG==DF5{F5fFAAt}DzlDDA z5PenB{h(w|KLPMpy#x)}FO<9wl;r;vdxuqD110&02^ODlJ~Veh{Z&wi zwD%?bxuma1`V~nVB)w14C6aEGG$1L6z>7-?Z01E{oz*(6X z&h7k~GJba%&%)NBkPo*h9xpR`Bj=_yOs+c@&O~y(;Z!;oOZ2fY_*e%2jm&jVYl??3 N3-^d)m5X#S_CKHY^{fB@ diff --git a/42sh/objs/builtin/bt_read_term.d b/42sh/objs/builtin/bt_read_term.d deleted file mode 100644 index 28b3fbe6..00000000 --- a/42sh/objs/builtin/bt_read_term.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/builtin/bt_read_term.o: src/builtin/bt_read_term.c \ - includes/builtin.h includes/types.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/builtin_read.h includes/minishell.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/glob.h diff --git a/42sh/objs/builtin/bt_read_term.o b/42sh/objs/builtin/bt_read_term.o deleted file mode 100644 index bedfaf189925af4643091ca30a442226a6958756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5028 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 UrvE(QaflzDb;3*~RZ6q}0GHNh$p8QV diff --git a/42sh/objs/builtin/builtin_cd.d b/42sh/objs/builtin/builtin_cd.d deleted file mode 100644 index d49bffd4..00000000 --- a/42sh/objs/builtin/builtin_cd.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/builtin/builtin_cd.o: src/builtin/builtin_cd.c includes/builtin.h \ - includes/types.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/builtin_read.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/glob.h diff --git a/42sh/objs/builtin/builtin_cd.o b/42sh/objs/builtin/builtin_cd.o deleted file mode 100644 index f9307fca50f0a5b79bf5e0d70d2528ffd4a347f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4996 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 YkEv8UBW&|*+fv7lbT|RgVmQYB3%iB4761SM diff --git a/42sh/objs/builtin/builtin_echo.d b/42sh/objs/builtin/builtin_echo.d deleted file mode 100644 index 9fbaddaf..00000000 --- a/42sh/objs/builtin/builtin_echo.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/builtin/builtin_echo.o: src/builtin/builtin_echo.c \ - includes/builtin.h includes/types.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/builtin_read.h includes/minishell.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/glob.h diff --git a/42sh/objs/builtin/builtin_echo.o b/42sh/objs/builtin/builtin_echo.o deleted file mode 100644 index 6d603b60315be9bbe3ecaeea4b77382a7e07ec44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2684 zcmb7GO>7%g5T0FoH*TERX%nQNR^UTgibQNDszd}OKeUEz6eQFnr5CidH;(PfSsQzu zxImziBftts;m`}>zy*mD;!F=kfVd$pNL)Bn{76NjA`%=TK$vgdzD>Ma(u9%b&Ci?n zy_xs7`^}$s|LGx8LWBk!27jiZNq|8Qf(^F!q2GBR=(ddUY+w@e0C$2+)5$j-S9k4& z%;kkW+tb=oVLZ;|+as=oaovkyX_{8usg>-4beg6g&%=@FQAzI}O{Drw;4S5Ije-eK z(PNtDUzoZ0%x=`%QfoCHfyXdz=;$?HWT7H%5_vh!~%}dO~ z;+5>>3J(e5{{GwX9vp*YCwseXB$CgT!-DMeB?3)^8g~#} znze#>RsiqZA@Q7R)&H#bO^LTG^C=t>50_X#2J^cc$nWa|@vO=U>U7M8y;ic9Ompu1 z-qH{a%ZrHx1()OPBCOiHfpI2=Dxr zOSV7^*4vbWUy*|@1CQy%KKb!E5N}}=0U%C(7(4=#p%x%dLn04)9^6fQ#+iKucL&@@ zUo_f38?9f{Mtgn7Xg9Wv_Tn95b8*{feI9|nZER+sPf&b=m*05jDSnfMb2I%3-C<;7 z6T@0xAskZZlhn@q6yNAa=dA=95!TM!{^jFNr*n%76rQn8JM(>e$7p?-e({Twb(-ND zn3$Wp^ju;!U#piYc48u#PNoy5tumgC(TOyS(I=yi^j#R7>cggJq)OL?L41QoC={EFMzKFyoY!d!rBIe&S+tL7D!jL8!X;Kqq%b!^D~Bbgjk|DL9WmJ?tHq{S?9E`fZ3k}Gj)$; zJ2)2m-T6N;Tt4#tycjr%Ee=BMwZoE1TdmhZSa$dYhe3d|4ExWi# z>AGJgJ(z{FMRYgGZD1fDc?l{nUnHeDpbYf&M79vcGo1i`^f!ZbI&wVGOl;r{^<2OA z8DB$;N@Hjh<*!&jT7~BTD_uvMd}kJCTjX(M_mG6*iWcsTOliG0HC3P0hV;mgHV7qj zR@3x`7P+bQ=(Dq0SpQB_*FS8iQA{Kj2@s?FwzHgaCm!W&U_bDG9C7nZ->noq_-%7Iw|@cPhf^g0 diff --git a/42sh/objs/builtin/builtin_env.d b/42sh/objs/builtin/builtin_env.d deleted file mode 100644 index b0a70ff3..00000000 --- a/42sh/objs/builtin/builtin_env.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/builtin/builtin_env.o: src/builtin/builtin_env.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/builtin/builtin_env.o b/42sh/objs/builtin/builtin_env.o deleted file mode 100644 index 8d5fe6622183f667e64bb2d9c69b81d1643ee036..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2356 zcma)7&1(};5TCcnrXNX@XnRmA5~Q{Yn#5AD_}StIDO4$`tzP7@*``f2-7LwbUw#!7 zF?y*75k$~~e@MZDN6+3BL=ilSqIG6>Hg49|W?X*bzjg3q_{ZuIP#kLH4*?6kKe#6m32Gp$9v{YMt>mW3v7X> z<#Lt$0`YC;=i*H=OsjZBW426F{CJ-k=M~!(=J%n!v5uS8ThWZUeDz3+N~KD?VP;#te)ruD{nwP%^%%NFtQ(%F!Hel^B(>s9fb_{6urdU+n}v}Da# zEE+RXj-T`9zvAo!2h)g0PeZW7c~{W&;pGc*wt~CsOpvnqJy_@L5oZ`C7>~OU1}L~b zS@%6C6%8BFU$0FD^Rhf?jq8nU!H?D@PPySudj`?jh1$dUeQ0SMdB6m!S7_^b`@P|o z{HaX+4Wyb!O=Oexhx2L7Q|^n&wi-KX(Jgi@#kCl~3wcPghGo2v4<&zezfT)CWkfJ`C%L zr?*DXpG2ivDNc*TSDmV*5EaRx|1oL9uMk_z_6idrpeAt%ij^#grMQSk+S=DJi@vlM zHSvqUHa6Tm7>&jsC}+F)cLkR)M}ai9Li~(&VJqkxsKRr!!Fy=&Y}+(C8fPRB6ROhL l-lr%yAK;h+5K6J_XSFDu diff --git a/42sh/objs/builtin/builtin_exit.d b/42sh/objs/builtin/builtin_exit.d deleted file mode 100644 index 9dba1265..00000000 --- a/42sh/objs/builtin/builtin_exit.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/builtin/builtin_exit.o: src/builtin/builtin_exit.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/builtin/builtin_exit.o b/42sh/objs/builtin/builtin_exit.o deleted file mode 100644 index 5d81416dae8c8d73fa51647a7925907481891ee3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4544 zcmb7IZEPGz8J@kny>H*0KN34fq;?y_rA?%$jT;M6ZO?ma-$v)X z<95%rlNc%-ASMZ_RYmF#pg}675*74E3*`qOR76?4v?ioc)0*S+c*72eogWD zc<)Gvwc?r9c$HIH<2%g+Lo3TDUWj@6Ti9QjUaQ7eFIp1@Ho6t>YD-RLlOEoRepS55 zqV9(Had>`Sd@^3KR;w7ARh(pa{}tcgWqhMDpv|8cpNCf+JLYb1Ykd1&Zei{(gN6Co#ln2!YGHol%Cq7MQ3~oJ`}yJ53uj0aFBRryFNyT2 zy%?F>vxFwnU*7@cR}7$VZWrsLaBkfhu#4(P7-xVIaL3a8@bBjr3v<62eDFnJUMsh;D*9@y>b6<6vIDuk zTwk_Fui$9v9q5CS>))B%v0d18JwMhkD~@UTTr;LkC#Q@2h>h9#iHEDlO2vHtPP?q> zwHa-vu&RzZZW<+FT8@yD-ASTWbjm_67we)pB@An-CTyqZG;D$Rb>V0(vpqI$)@|1U zd&RUJVS7xkT8;r=$u-+NZU}ao!;CD}Q7WzxdZmihXjry6VHu??!?Ac{yUU=}Cd`tk znWdHUd=;*@?!)L-GvA+^<*Km942xHJHkTyHo8-2XZQqgRw&yj0aP9 zBtDn;Omctcoj9U`{UVs!-$_#dg%nanKzi)&#KqL#q=s*T^WH=PH5EwLWqGCBa-44GPEyv%#oxvZ&yh0|C9PY|Kfm1mq`leSRgMX=~gG<=nv z5_ye=H_%0Bjl6>{_E&U|Q|OLA0XC{`OFRWmAhjp3MI;nR=c#QEY>6grhU5nD*}#@$ z;x=eM<=D-EEg2E%hZwsP-LpUl+z_YZhCoMx-&Th?&_%%CLbIu@Bj88S9;LRP5XsnA zAioM*Xj5z+;+qhIN5k)dMWPX6$1b2tf+Cw@KLTUog$ptM)@F#oTiWghD?}4Y>Rt%j zu`SW0f*(#D_0=}0(NxJ-Q&2Ohim#@jZb&&$cX4h8YBt3c_!8B2r~|2|e6<7Wphz>+ z`$5r&k{NRlYI&hr67&~}y$0gi zZ3Hn}?*fg0%AgaVZ-c%MdJc3E^d{(i5Eq#RLXkik>SAiS}?7s@pyEfx-smik#RL1 zzE{nJ?@^<>)iA_lcvQ`ds~Ag$qo>s16ANni$KglSuJ8mbUsL0wYH&9u9aSS!Y9PEj zpkldz{4@x0_bz}VgrdMURJX2M1m_FZnjf zH%SiWj=w8;KX?iN{!PeO((Gj8CB8xxJVsXPpKj56T6Cc`J@oJnbBfp;YocN}RZD2& Yj#hN4rYn?c_)iIEym?A)`PC@?1NC{ZcK`qY diff --git a/42sh/objs/builtin/builtin_read.d b/42sh/objs/builtin/builtin_read.d deleted file mode 100644 index a59151d5..00000000 --- a/42sh/objs/builtin/builtin_read.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/builtin/builtin_read.o: src/builtin/builtin_read.c \ - includes/builtin_read.h includes/types.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/builtin.h includes/minishell.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/glob.h diff --git a/42sh/objs/builtin/builtin_read.o b/42sh/objs/builtin/builtin_read.o deleted file mode 100644 index b57d2ed3a87ec819063b59a3f0df8713afaf42f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6604 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 diff --git a/42sh/objs/builtin/builtin_unsetenv.d b/42sh/objs/builtin/builtin_unsetenv.d deleted file mode 100644 index 0037f5d5..00000000 --- a/42sh/objs/builtin/builtin_unsetenv.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/builtin/builtin_unsetenv.o: src/builtin/builtin_unsetenv.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/builtin/builtin_unsetenv.o b/42sh/objs/builtin/builtin_unsetenv.o deleted file mode 100644 index 9333471b4e73475c4d3c509ed25689a507441fcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcma)8U2Gdg5T3KM7bkXYC$9JrKk`E;AQ8t6K}296p*397L_%#-@`8@@`4T%gXJeo9 zg9-{5DvX6lh58KT4GF3u9*`;!ji^*1A>e_Bil-n2sgXd+V?+^VW^XsxmlkKF+1YP) z_S@On-LrrC>(76>0Te%AgW82!V%Wq{QSL_FA?I!6f*4z)IVch%Cy++SiK6R{wd}Zk z7oSScoca&T-dCbSd_+Cc3qZLcSS2Gx*RxipI;U5hGI#0v(HF;0JST@i@_Z;f&#Svb zvg4B-vXZY*G`ZW$H$lZ|kze=8XJj&EYmxZd^OJlT!MR_)yggf_DPF$MM1H>rz7!Q7 zWfJQrj_8*AEgSZnRoTn8+7=BE4Y+(QZCiw_--2QC6utRLK3T@jd`78Muyos4p!D|a z_f4^SN+i_RF+Z2Dn3?AX?9J~R!8aiIruNCl^D7yqm+vduNb5=^X+%Myg0AN<+ zcYdFI_~hJCzuSWE3o&UG`AD4GDkP|t|>^fg+#dzc5jfZ8gwUsADT>rlu3v{wIJtNoGG>aXu;_3E}(pT2Pk zZqPifp1yu9y-CcPncmbIQ`=fCwGNTD@%sYT(i_;)$OevF*BU)y@VLj@NUiTqZ;Y&S z>e|jzk#`PKU?YuFM;p}*?%$#+HPRckD@r}RvGq~2*=(dYIojM>LUj0wR=b*f>AP`y ztntao(^K(9t6a$!?f7USnMlSTG7I>H85~U_NQ?|84nGW)vN@Eg<_k{VmKHBn#d0ir zF=4{cbOjlP=9Y@{Sz~BqxRTS&(uzI|V$NE{l=sv^^{EWqMFLi(p1w!x$85F9y6!}ZEd;O(DIi1BAC8B&n#_v0~yu$IP*di*` zIJ)ej+}T~!SE)~4 z^+#$5;te=CuF-C!Vtu%{*!|Uebbj>*+A7Z7n{?@kbQa(;GO#RMo*FKhAop%%{G^n0k@*R#`}$V8IFIPqBV< z97GhGVErj}-vkR>W&<-UkYau69E;+}9Vy0A$n!DtH&~a>eE!8Xf5`Evm>#b69x5(7 zNdLU>NCxjji~hmKU8@cWdq~*(g+)Vg>a)TUSA-fNB2Genty+d5h9j*Q^gW*heb%AB dgyupC^sM0+dL?hq6)dM{10TY%tW`jse*wUngY*CZ diff --git a/42sh/objs/builtin/is_builtin.d b/42sh/objs/builtin/is_builtin.d deleted file mode 100644 index 9f9299ac..00000000 --- a/42sh/objs/builtin/is_builtin.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/builtin/is_builtin.o: src/builtin/is_builtin.c includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/builtin/is_builtin.o b/42sh/objs/builtin/is_builtin.o deleted file mode 100644 index c06f8439aef65e19a1abf2baa24ecfdcef5756f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4660 zcma)9ZERat89w*g*LGs(#z|O~X-(tG=?7D5r)dPHw4)gdx}91vM!QywadECc;^Nqr z?@gKxkfNrY7Nvt0fm9HJ3XLym0*w`@gpgVlwo$|=;s@{pC=-ZQ3TQ*1RWMPW=lWcK z+-9^#I_G_#_q^xvd+vG9hkyC+zx_8Xgc1;FP=l!P5Sj!k%6+J3HCJ7;`AAp8JjO97 z9tNji?V}OJG@bl{)6g6Ez|`RbE$nGuk_!14%cdsvQD;TG|h)64@|c3HK|^dGLFeHzUL9&ptQ9M)6C_k=ZYqRbj{#9 zH2K&Enl9(~u~9Zkd6gflvvh>$@s+EV>*eSBX@|EE|B7^y0d;tIeA(&gdVZeYvok)A z@7I#%Zuv@;LX|`Od}o)?+Pu!U=TdS4xW+gkz@NS#$Ng3Z^8PNCd7+-_0I(@`lV1InSmwcm=uP4?v z(}wDsZ(Dq|tmWrZj@GkjqD7cjV_%6x);Klbw&zOzew=Yq<*V_6)WBD(}(rUt3{`BiFPp#fUF`jjEb7lYP(j{ei|EgjA%DD7e z&`_=#OBvC7;zMAPK8A(vOMgP&E5=I3Sebg=SP{m`*meHc(oNBOa^!8C_e6~4shc;L z1vggsqc2b0l3nfP!sZQIXP!!WeF;lXg zYWV7)L3GRRmM@eEi(p?nix-Qf2XkPR(g7_RCY?0bjdcQnzBUtppCKV z;?e4nTsA#1ZqJxj?U*?(ik_2jaI;kl!fptjg2I}~)-Dvq#APvyC-MT-_A@(X#Z zAZpNR^{SP(Z4CFc?7XODof)i@>r={!S}A8b+&9@eHnizM(C-*WM*g4L9=lf)sx*If~ zJpNf&)Dh)12t`-V)VRUak#(3vuX?7OBWwLinEqXtI0?t##7Q5YYdG@!Z*u0kRm+(MfoLQVal z!M9>ZcVDPvU@=g+>hwvWvhdpze}e$Uc;rz_7#RNe`55?fittipWO-u|q@VGQF zD@IXKm+WOG*+UPEA^CN7-yR_6{ zwz1I9wENH#d_+@2pLs%4mT=#2_QeL-@F7T?l-qVnEEjY5Tfo=``Z-AabcpGIEux>6 z_?d>(7bRYR#IskgNz5$8-!A>*5+8=ddg#nr@)?krn!ZQk3?#O%J|^)NNZea`LgFDv zd?GzAaRd^dNr!Oxz6*(Ig}y1}E=c%?Hc7l*N(k5QB`J?X_QLTRB+EQ%FNnPIMJR1h zeBFmR&-VTaAD;B#XMLDs+sA*UbhIbt~7>8}H@+0sVZArvLx| diff --git a/42sh/objs/exec/ast_free.d b/42sh/objs/exec/ast_free.d deleted file mode 100644 index 580166c4..00000000 --- a/42sh/objs/exec/ast_free.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/exec/ast_free.o: src/exec/ast_free.c includes/exec.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/job_control.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/exec/ast_free.o b/42sh/objs/exec/ast_free.o deleted file mode 100644 index f9de333756549560e2d0826278fd1864fe117e92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3900 zcma)9eQZ-z6u+{F(zvK!$kiw5tCs=jS@n@h`--`_l>rqaFTP+$36FV z&wcmYd)u#$9r`;Ygw`a`fP>(YjwS&H%>o~#^FQcI)9ZMGV?e$QOhJy(39_t;JyP*> z&%XKETW>yT``V{UAs(l_E9yxYqkasfWo7Nb>agWj%F=CF*W9x5#_Og+e4I606llQk zWKA2W(WmeV#f)?};ex-D#5${+7-lJ!TSJ_fJ z<$C9;^VO!l`Wt76heIbJ8}sW`_3N*9UyEA!Nzt&snc_yQvtm`9&3PwlS!=F287joB z3NN9YlfdJhvK#fM_Phbl&RIic?5;P!vg+@H5rwxx;hEDsJY|ZA5IJ9`^v_!%??}YP z^}eU@+Ep?s;E`VbkNo&u;tYs*ADYQ`fZs&C+zMQ5tUcr*ZUEO3ry#2msO>tfK9Cy! zDK+*>A~k;h(bRbL_tZp{auRYf_26=zy4d!4fJsfrG*T05CsSkl%+&Z-sqxPyiGOgj z?7kN9eM};@eXj4A7%^o?Y689cSI9f!;3~g&tWS$=JLjYoh;74aF%yEv`pnq&=~LE+ zW@-#PzTcY>esPdZYV4E5ogc5{(M_ybvueTA%W*{GEW zhi_zw4~EN!jjXk5=SSQ0rfA$aJKCz9g~AGS!+DmrBHR?cJhCiuLCaMn+@>`}BN0Lh5uS$b)onETZ~`JTYx>0R zOoH1jOxC$*5f@Q_R>;ilT{t28XFD%xP+$=q|a zTAxBIbYm2)44Z3AK)nwfxFbY0WSY-H7%!qB2d6i`2GJ2*8h#gYKV6pwIz^aseMhS= z&}jsKo>jnCW&w^w7s-?Xsv?wE3IByDQLTB zErunG9;iPPYew@Q5^F*D7-WVK3mMN#LRyOgox!jHYXkc(WNx9q5UK}_Dm)Q-XGXa7 zW-uWGv+ z2j&eg_pMoh&bTl++T>(7+BdD_0_Dv{iJFt-`MjT3U%s&86_$eBU&wARq;4!-jbl%M zYVl7O!;7mG%nOOcmqrr?q>c*@0-I6C{`_9ENvCVeCT3*D;G+A{h4viG@xVYhSr|PU#v2D=eN_x+v9*#Gs4kSVi&d(8a^2T&!Ta zSe6R@|H>wWl3*ENgiq=YB1j$im89K!qtHg;TD&D>K7lBv$0sp<3p=_;;9C8I3;_ zST)W6TOsdd@fadC?Raz=T8(pnHUEVZ$*NmU=ABHTnzfVpi~BCA_qbc!qpvp_>GM-H6K_P|<#X(O)VIt6@rkJKThmYtXqhB|S>-AR3 ziXJyU*V~~s_3IJiPpL*Kdd$e_v!&NqueU)77-M>5z3e`>U!OmuC;Rnf{rd7DeKiL5 z>ro7tj<|UeNi)pz0tUW;5N~020(>l1eU6l0R7xCqFOc zPG$E(#^CUYYKICuQ#S!CBxRRktEg2Wf(`_eTH8t@=DIAy?viD8voo|n z+NQ~x>V_AL#_(X$KKM|5(H9f7HK|%PjZNA&4X%H9ioD;&*2506T@kNzR;m ze(rbAJ@;>}{qx&@Rg6gih7ULhE-3iKz@YoUOJv-H&QUCAUPw;|CL@lJ6U4b~OxteT z)erX%A70bF)_Kt&JQ}t$#F$35AUjRMBhJT+(Wx}I?4o1hyziynL(h6{=HXlwmTq;` zf*=yUF7$p zz&j=KE1-U2`8Le2m^9Odbtm3;714~n>@0!+cSS{nSHH<*%1P0mpNHp_acjI}p^!7U znVh8b?wIdYG5P_K(#V$ixp?`}31@-*`Dt_jK&`G|3){qV@+%}$e!M+Cyo=k!vu6q$ z&iA0e`&s0-xJ^79ItS99UzgYv-h98T7Qk!5x4xey#9DDInwqQu58xt$|EQVa~+OmB_FW=Bhx1xIa zdg+R+mm%l+m-IQNmoA~}w@$xu|KF>DcSZQ= z-%5mL4?&;XPYLUDCzs0ow;j;Em-N!*=qq3K(&>y14IOf~H&KS2@F`LfVOsbb23^yu)a8%tHu9q6Hc5)oX2C1he5Pm%LMChT~fySq6u>%z* z3)27=BG}3T;ip0&+7l5*7PSe&?SuEPQ3`}ZAp*c7R)^SuMpC-5rK+8W@ds4bJrIs=n8Zh&#s^Ok zlUu4zLB!++?F{6nWZEIOFl`R4&q%vRZqc+a(E6UVCb=c5edB5O$}P>TTKyXO0ywx! zy$*2}92g0H2vMaeG!pjBi@iEc%VQMKAy;=F zVrVqt9TW(nyGep2fYThrDJDF!Q*PuVozCyai@X2mJpD#!uL{TltMD-UYS|l=2HR;%c zsJ>*Pk_)W6RiO$q^k#-0AhC4_qk_D;NVA8SG#!kSy}P69_tN9 z&&bczxvR+7FNl%Z>-b92a<~p(iN*j+-tosNPUWV?@Vq6atYSiFiR{DOk5pQ$87slX zLs)qc;K~4^a|gsTbaLDzIH<4jnHD`JAw~37w8R z`5%SE6x4)}yM^2(B!uICTgZ0E2vt(h1CZ-fR`1ivx8DDlPiMFo?IcQNrgMg!H<^2r b;%^#Pq`^3DSvDV%C3Q|zD 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 diff --git a/42sh/objs/exec/exec_command.d b/42sh/objs/exec/exec_command.d deleted file mode 100644 index 314a7cef..00000000 --- a/42sh/objs/exec/exec_command.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/exec/exec_command.o: src/exec/exec_command.c includes/exec.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/job_control.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/exec/exec_command.o b/42sh/objs/exec/exec_command.o deleted file mode 100644 index e53e1c39847adf518c779a2e3cfcdb72f005b134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6752 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 diff --git a/42sh/objs/exec/exec_great.d b/42sh/objs/exec/exec_great.d deleted file mode 100644 index 3f5d26b8..00000000 --- a/42sh/objs/exec/exec_great.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/exec/exec_great.o: src/exec/exec_great.c includes/exec.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/job_control.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/exec/exec_great.o b/42sh/objs/exec/exec_great.o deleted file mode 100644 index c1697fe85e4ba66700e49e63d8ada1d6e5d5ebab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4052 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 Z??U**ijP9${PYgQa|!84e)d32{{!6hOY8su diff --git a/42sh/objs/exec/exec_semi.d b/42sh/objs/exec/exec_semi.d deleted file mode 100644 index abf5cf44..00000000 --- a/42sh/objs/exec/exec_semi.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/exec/exec_semi.o: src/exec/exec_semi.c includes/exec.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/job_control.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/exec/exec_semi.o b/42sh/objs/exec/exec_semi.o deleted file mode 100644 index ce9212930165e84611263d0aeb8741c89111d209..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2920 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 OdV3h2U9m(x!2Sz+Kq4Oi diff --git a/42sh/objs/exec/launch_process.d b/42sh/objs/exec/launch_process.d deleted file mode 100644 index 7f1589db..00000000 --- a/42sh/objs/exec/launch_process.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/exec/launch_process.o: src/exec/launch_process.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/exec/launch_process.o b/42sh/objs/exec/launch_process.o deleted file mode 100644 index 9e8724a615cd30753b33c398649f92684033f171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5908 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 diff --git a/42sh/objs/exec/process_redirect.d b/42sh/objs/exec/process_redirect.d deleted file mode 100644 index a254e9e5..00000000 --- a/42sh/objs/exec/process_redirect.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/exec/process_redirect.o: src/exec/process_redirect.c includes/exec.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/job_control.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/exec/process_redirect.o b/42sh/objs/exec/process_redirect.o deleted file mode 100644 index 1bb4de2efa9adeeb7c518af04d41da1ae27bb65f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3424 zcma)8U2GIp6uvXFGo5yq-7Qr_DL8Q#D1`2A3&BQ+wo1)bOVS`e8h<9!+1c*mvb*lg zmaTz^wlUU{SPeeli+%IK1SRrdqA^V{K9CrmH1Wa22TXW?=!0TY6Y)DUciQbxpeH@| z{Omd3{X6$euP)yFuZ1x|Vi>?7a8<^jfk6+07sz=R>OwNnEaiZFo7}`Pa)NZ-u^Nu2 zd-mbM7Y{GnzBbDh!lP-wjxgpzhu9fEhNQ0NtkL?IZaX#Ct?LJl4IFxQDa6MK(WXF} z;>o5_Y|@wTN)^*}2l38v96u+?_wCz|tKu1>qcv-s*1K|jKHgaluvWZcIbWfaAfCo& zpWy5KlCSSKoFBiwRo7QD%43#&C*FA~h$h<6+GKd@s(2?1(_Lb4eLkLljQ7Vgs@0OE zmyHv&ygT;$318oSzO0@1U7v?n89nY^aBzJ;bG#(S%dZj7U0>BOgLsPpy!Y3L=S);r z-R~BDiLdbkys$<*JUSOLxV}^Tz54r&g!#soMc{tT$_eb#(d*@t#d1#9hYu`=GB(HY zH15m*&pm>5USEMbfM*r-d=0njCFuIfelXAR`Z?Z+kH>A81+Kcn?+2w~*+mTQm+|-C z#m{e+?^nIc`siHZgdA>j@oDiJ!EwaXzWO0GNP-ywHxo@kykf)60r$|4WT$`6PTtV6 z)2A1*Gp83O-%7IB6m`+;%;3UIBYB;Yrw9KcbF$HiA2m37Zh1dTAi1mH6>`%gV%Y&wVwIx9q^GS)I^(SumCr%MPnDN9R81u`OmhhEunh;W)M8Xx+iXbM$=47-OYMc}#N$T8+>yY>jrv zQZ%k?ina^uae873&ha)(hj7$DfDjX2At8w$Ht=nNZBkl@KBaO6C2eluxLIpBPKf4tG?AECN%XY-|7_; zN%dFX+ASu!)N8QvgtA9WWSC5o$@D!BeE>}njPZJsP?NA*(pw7Y4HMx-Xj~?#3n0 z=e3u=Z_2mmJ`6DVQ*Ok{Tyh0-Z-big?-xToiTD8u1W`v4(BdTguM|R0B0Tbw^oiC( z^$-G6bH$d}u}f3`Tz)-yWy9R{i}A?#rMkE^o;mYg_@m+cX647Horl`3ZKn3|sX4@c z1^xm23-|_@CZMOV72F4Y9!v)b!RUN9K!WIQ$VHdMT~trxq7uWKAfiJi7o9t`UJ%_6 zxu}kKBGo6k=%RQOT@tydPI%NjchSvq7Zox^QDt)%)eyO;GC0<~ZlDFHODBm8m-vGs zgcao9i16kiCN$zgJkp}h@+mqIsV#c<;Xg<=5RJbpKC_O0o>&sGBKrc7g79y29Y%rX z01JM5MTay?^&GlYx^CCf+)5XB_w8Nju_po{aHMtqA4ah6qDNyA>ZYjz)rlMCsa^_n zl-ZJwGV)q1{O-59m5R$HDJIBD+c$E%@|=vnR%J|%KuY^%MVXYNo>x_-ED$33Z}x!lI(7A_$ONBNdZ=qyG9 aC#ugTlRXl!aR`Br9n-y!i=L}jd)fb{g5sM1 diff --git a/42sh/objs/exec/process_reset.d b/42sh/objs/exec/process_reset.d deleted file mode 100644 index fbf2d21e..00000000 --- a/42sh/objs/exec/process_reset.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/exec/process_reset.o: src/exec/process_reset.c includes/exec.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/job_control.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/exec/process_reset.o b/42sh/objs/exec/process_reset.o deleted file mode 100644 index 87e088dbe6290f5ccc78fd148010cd9f0026923a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5396 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 H5|RA}FE4QM diff --git a/42sh/objs/exec/process_setgroup.d b/42sh/objs/exec/process_setgroup.d deleted file mode 100644 index 11bec3cd..00000000 --- a/42sh/objs/exec/process_setgroup.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/exec/process_setgroup.o: src/exec/process_setgroup.c \ - includes/job_control.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/exec.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/exec/process_setgroup.o b/42sh/objs/exec/process_setgroup.o deleted file mode 100644 index 0a3992abfb6e284be7d674a7ff9114d5c4280f4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4672 zcma)9e{56N6~6D;?>#$CZ083MN}*<^z$y}lz#wWA0|>n5Z!jcS>SI&Ed6D*L|o z?hB4fN3L}4x!<|xeD}Qf?zz6c_}_ngWC)=I1Ug6%Qr6HVAZW`W*J=EOc0S@woMH@` zkHIM@F&fcK)5(rI-q^$Y`ybhV3;UysazH*V`$)48E_F~$_&(I8Ig}l&=1kkExMtJb zajb%y(ga zKHn8dvsk`-ak#{gdcGI=0ns8-r@|hd!26S*@3#3>GR0ih{y5(c>fYD=jUHc3e_OuM zjOC_SpP$bsKZm$8U#46xWX)n`l<9r!d0&$s`-}ZS^lJ9%+t^a(Hd?-4XvOd2{a)0>wW&J|+(q>=x zeXY_cp3^a_#UuIRkZJDTamy8>1`j2q@f7&D6;EUT$!}iAmmM*OEBLxzfN3r~4-%4Z zyW~3~`6LuLc1HX$wO?jBf8IlqFDH|^CZG3}Psoq&B~Idq7s%w>A!q#as6~kF zoQCX$)HW_b3Dz1HIX;k{{%d+_t}8u#{MvMN?u@v~!1T=a_Vm`JV+3OIQ>db$8QH+Oe#{IswuRw_H5wNm9u$;#Tc zX=j~WrBp32iKZKum}GC{w`(H+=}cP2HFn9?BQdm8y<#N>-s{XNB!#oT@D{j#J4G zRvpx>V-6QGIZ-GTa|yR&Hiuz8TpC0s?7317-Eh8Q-^$W43whgti>s_s(a9oGYSYd? zfz{B}CMdDHOtom|bH(gXg6kFeL+gx|hL}*cGMX>h!ZP!2W{yP#8p|xX2Fr9Uzy%*$ z!m{8o&*{E2uEv9eOm;b&9TINuF?j~1S-Cgbss*BPeMPicX+a67oiMg2+ZzJW`y&rT z)-~>I{VaBGKohDo?QBJzY+eAhH6jq*7KvcL>M=nFV=0tJAw;NE2}C0i@(B@cg73~& zf*urV!xCj@>pH9u(cHkswXSMnu}A0QaG!|H$7zg<&o6+vW(6cdw5&$#R;gPwehz2_QHPogg5#x(p+=}f#>y~vAOnqi_)?Yt@xhIR znhefAfU%md=q}j*$+=JQ6&=OsQG7ciiB}}_>zoJxug4&?Jd}cJ54D81KyQIL)JFPk zKwF8HkkA3zPqY+-qRDs&<6W?YR~dUS2TgAOUJ7pM$3;!m6jqf39WFAe4X)KR1C+~(Q5`_xaA!i%`Afs|$KH5+&6_{Iy!O3=ubuedRFca zGRS?92O)bQ7Gw-E4f!_Yhmc=DE6SuAmWTnu=Ei1ivBGSYPmnI$yH1TATf$qTr(+P+) z@pPdV4+Cjp70|>&lO|RcDrFJ`#JVG&-pI!E{u z>biMDF9c&$?ff{1v3m!D9Y4yrI+?rt``n$U3E>Fmsr|<&{@+_ZBPu2Yu7Kd;kCd diff --git a/42sh/objs/exec/process_setsig.d b/42sh/objs/exec/process_setsig.d deleted file mode 100644 index d9f44dd6..00000000 --- a/42sh/objs/exec/process_setsig.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/exec/process_setsig.o: src/exec/process_setsig.c includes/exec.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/job_control.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/exec/process_setsig.o b/42sh/objs/exec/process_setsig.o deleted file mode 100644 index d6010ad0ea976c8011a285153b1f7140453fe7de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2392 zcmb7G-%Ha`6hC)!bGkX_uPBmOWNDDwGzm#7O|3~9VQLc8Wq$qYCiA$b0&>x_HPz2|$*=YH-v_g?nl=l4IQ0L%&4 zVJpFwc3~I9hH?zsHW?3)RtiK}r5F@7M@*nrNk$aTv-(0-jKzGoZ)`X>SEINb5FRbN z?g6l%OJGU)kmh_sAD^A#W;SD)Iq$vGJ#=l?Md66AxChB^*8#whH{QidrnG(WKIJ>( zc-n0<9Do-aAJ6D>#J7;2!t0kX#o{H5$rOdy@lH|kQ0@x_FD1V%%%3dZzWdF@j49pR zi}z6CNjRvYViwB2cr!80qG;!*@D%Lfc(HUksdFPXL-h9S_mKqZl$@#$XuvwYT=PZ$%N5A;eZmRgW_L22~hxud7SS0>&S9NNx{9_N!8tgZ;)yzo7EF1@?N zXK0dmatdAmb;T`{dJmEb!$P$0cSGXcl>l+XBdI-rALS)L4&HL=E%HZE*P}l{b)v3E zjXdBMwtS(|tCnvsW;_yI`4(N?imXxcT3)Zb-K40sYMQ-Uc^_Tr+ZL9(oaKkG9LZTW zg{3xU`C?fxd?UKN9=Z3Xn{HQdU|@7GIHzaKM9K)Zha#a!ut`helhE8A!AYpCHPmtz z%#0S+7j!M0&ZIQmG`Xo~&BRnlgYbxn!QrX-)bvCw+}3Kwxt3n!t&lLXQ0NV;ik<=cJA``tX@@Suuc6b|oSI`Zp zgrb@r>yr8499l?n&wuW8IL_k-CoAb72N$QVWcTfklM#iD(xbqf3<0CJyQ8Xlq-jYK zVH2T4FUCI5qE-~@tK@)^A4_w4><-HR`p~*mND?{}4BV()_^Q*{1Bfg=@wTC+t&uNn zRNm@;EmevzLRClET8ZvK^f!U+?5K=Fw?FXM(Nm#P zJ&HaKh+xmyFMkF0lxrf))bYYU9`^HP(I}Hw7og7NDEHKU^qi!hi#>IeBaS!_sG6e! zu=#@2#EtB9c}U+7+TA1d8L3Z5jf(u-m!!rk4wYz7Lc_c%rW|j95laFuBu@T+0l?=N Ar~m)} diff --git a/42sh/objs/exec/set_exitstatus.d b/42sh/objs/exec/set_exitstatus.d deleted file mode 100644 index 03e77b61..00000000 --- a/42sh/objs/exec/set_exitstatus.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/exec/set_exitstatus.o: src/exec/set_exitstatus.c \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/exec/set_exitstatus.o b/42sh/objs/exec/set_exitstatus.o deleted file mode 100644 index 47255672510d4fb8da9622551a14dce69c7ef48f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3324 zcmb7HU2GIp6uz_DnJ(RSw=G~KA{n(+NZhuRnh@Fo4P7%JBn^LpMklkgv)h4XcC#~E zTIvd+psckD8l#DcF~r0dH4VW;V~l_#5@M7n4?OtL2T35&#K#5_>vv}EwA-OTJ;}Z2 z=broB@6P?({q@e@|JE`lgc&N78k7qnDj5Z`0!1PJK9b^XQ(XH#Fd3Cb-cMB>W7wGk zQPthaeY@v;-|8U}5W*ua{ZYnZ6sTdxNcp0wy6qHAE6W2xJRfI>x345JRT8SQ$yC*} zkt$_XfVwTJ+W%tT&gW;d&T(EJ^2mDuJcQ>#`gpm#z98P#dD)DuiOde=8}l-JJS~+f z8kkg&pO3en_g*ZXX=U=%C5U&HkNz>oJI?u?$9mAZKo;az)U2#w-;38v8>~tmUsC0G z=7M;KG~J~bL#QP+G_xd97oRPwU^S#9JGMwMpMdINQyO2SCtNEtz=NqZxz;i0FzIy%; z=IN*<>#%91Rdsv+Tq)3yM%>#JGpqeRSb-fP3`=G$_HgmiIj>laF z*g@YW?Vq=tX}O5O`A%}YbG*}OKHop?!>}DK|pLnv$1r+aqR`D3`&FT0~{y zxlf_KT}5`~(xlf^NnW^p0Fm1$UNv66>~>NnN;i~=hAG6AiRHhMswA%{l|46<%8n^z zob2Q+<)`F7XkwFSEq%i~_I^g$sFByp8O_XXkPF4UZrHYbShHm-@5sim=@@C4 zMcFp9mXL7Vw&AFhXFHlxvfFfqfME@>O{|aZDS7+$y*uO~qiCCX zOJ3jB(bgfa)^oUA6YD$Rv~_j1tzGi~xb{6ZI=5#J=MSW{_O4EQP}K_~Y9})-hsLTJ zoOv8r9>W#Qw81nU&ENCdswqnV{Ei4?{7>!~h z)wCh4S=d|`j%|o`N1v(Rgl#Q~EW`tpE_Kaw8NI09QI60iXZ7q^QjodVmofi653NH( zSVbk)@FO_aDD2hIAjAbh44v6c54jMhe0T#Rvz`<>qZ}u%=^fPY`rjq5nKD`EeN^GM zP)T5;?CMj9lwU9#S3IA#3uC`rz56vWc87-EKtV`#U-E-}XCVJ4hrSV&WdsJHgCsBs zTEvS?r`Y4!aqLu7mp^!IGyGjB^sR_5O^?`DiSO;oBxEpIgEzlS! zf`4{cVE^LqxHOh{y9n9gxFAY(kx6Nr*dS%asMI5dd&FAlW$CmSL!e&zLagb5+Al>M zaTy}bQbw%bhoJO*{3NyQJe{%Qmq_`c8aAipXL}>b@!pkuO70 z@MCN}v12SDqXLKC70?m*4bWJn1mz&U{0^vL&nA9{CjV!yFG6GfiO->NOD8_!@wcJz zGc)lf_i2p@e+x7qrEadD=9;ckibJ`&m+L0zI2wHEgHh!&x^%03va9{I0sqy2Uk>6(5} l)dvr%bO$r)fuHVa!!y$b{55bg^Aocrt(bN*O((B`(|>Np>t+A| diff --git a/42sh/objs/glob/dir_glob.d b/42sh/objs/glob/dir_glob.d deleted file mode 100644 index c1ca3587..00000000 --- a/42sh/objs/glob/dir_glob.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/glob/dir_glob.o: src/glob/dir_glob.c includes/glob.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/dir_glob.o b/42sh/objs/glob/dir_glob.o deleted file mode 100644 index 95e17061a2e96115342cb86e94b553586dbdeb15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8296 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 F_&+Ki`IP_w diff --git a/42sh/objs/glob/expand_brace.d b/42sh/objs/glob/expand_brace.d deleted file mode 100644 index 7e65a07b..00000000 --- a/42sh/objs/glob/expand_brace.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/glob/expand_brace.o: src/glob/expand_brace.c includes/glob.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/expand_brace.o b/42sh/objs/glob/expand_brace.o deleted file mode 100644 index 1aead206784743abf54a158dba510434fe97d34a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8012 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 diff --git a/42sh/objs/glob/ft_strsplit_spe.d b/42sh/objs/glob/ft_strsplit_spe.d deleted file mode 100644 index 2b355416..00000000 --- a/42sh/objs/glob/ft_strsplit_spe.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/glob/ft_strsplit_spe.o: src/glob/ft_strsplit_spe.c includes/glob.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/ft_strsplit_spe.o b/42sh/objs/glob/ft_strsplit_spe.o deleted file mode 100644 index 5cc94abf4c15c76802247c094367c617d2223a11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4984 zcmb7IYiv}<6`s4-v%9QeuOC1Od0-SnpuuZHXiH#uSn+Kx8?QoBOt+}f#a^%Njm+Be zdIO}PvM`SJksqc4HBoY18bQE3eh|qmw$v6kirR%ralbQn z?%H0=qa)2dbLO1+=9_b7X2-s8_a9%o7*kY+4{8BwJIALC73DG1EOp+e9G+_#dT9)b ztpk%$)u`EJFT{*Z`VWHr*ymZM>!YaQM0^+u{mTcU|l5aVw#PShD5U&@9Yp= zrdjiY>Q}yNo0*MsQue&;$(ihi!)}nY@mkx$qB|dNk6fQU##Lyya&lI@`i6#%$m@hZ zlb?;ZM-G2fylAYcjfUjo{ZsNgPf0}iiR9Oc__?jFS^0I;$C@MYd+|PNS^ zGyI*9t4bNGB{S+aR4U{{mGFq`biPm@sni*%zZ%_t-|_rg;9dE!yF8Tat-^v_9~mqV>?7GhS?C z(Bvt7V*KOD$;okavV6pT?cmeGS+E|$WMCe&n5Xo!n6+9va;7G!_owy#9DYBBWMHMG z4Hi8fs;~~1;E0j&V{M5EBV2dZ8k-3U#ZW#oQo)Iu zjDD#aGt{KupVCj}Ge2?vSe!`fCvse8kHuGCPfq5T3>Nf(7)2e#^(bD1VL3&UhwT33hfJN!qu60a17(z0q2Rv)1@Jfz0x+sOWb1A%% z*01E#1`(0MtVm%Fo=##$AA>EWkIg#IW$oY!I2~6IYs^%vole|-{>!BPxz zLt>$)_0N;~<+Oe|H}%h8m(jLp|2P@Er1d>WgiBh#w0bys zzFg5h8B&9zso*H`3j}ZXo&CwWiw{S*nAR_f(V4o@mFH7+V!Y9P4tqF}9bZg)_~*zQ z7LN2(y*i*R=>n&z{0!lIiu@RNiNtSP~A?^?M_9iz0N*j?fJ&Lf6vz zwWNMMtzXYY=x9D1B6KykzA>?_XNl0&w0?D3gl?pQH>O8uLxPqiD28d|_5u7su$z<~?n%HP%Vs|=CV~JP+qiz_}Xt-$8%5}>+n%`;p0>a@D=5* z7>!?^9rWX;tXF&_xZ_Ye{eCLze*-(TmcyiNIB99kzZ4qbIUR>WACk6_2148ZYtlA- z08ePfN2F~g6lgWSC2b4Y@Wi+1vv=i>ow6fA)};!WG38!CV5ua~E(k1@1lk0FrIJ94 zfPGp{+4wtxDVJJE5LiYi%ym>wWrs!C(M7)6%qcZ{N-@;dtOyj%h(M7fuuBjqkyHLi z5GW;$sc+-M3mhLqag(>>Q)>0&qrL-`l4pFs+JMOY@MB|$LVb#OGLW>=9ewIMFaGNN z_qM;2(bnM3XWLO5QAOw=`%tNfWI}Eh8e?6Mgt3-BDE6FE#rClZ=`<%!=H&n5LxH6_ z-+~cs!ciH=-(Q6Sk1)wx)s-v^mmPWY=m&qgQw!Zh?Leha(fky+a!8b2sMJM~lU)=w z>Y@`^xN6T`L{ixhLOYUR0m#)0=3RCtLDMfQ#?q2v3$tO^E z{hIIKVKN&jv@FBbH}Nj@aW}pghP2R zUm4)O0ACc~3wycO&mEU}rSm+0>hqKVRi1%bWvTJHTBBcmarbhxr2M@A={YS7CAf zkk7+hu1}$J&%Xi3A&ea6>M8C}_k~nXh`Yg>csk&$U?5X# zzvNDj`(@4(Q|ow1*j49Gc_A2k9)RoK$z9HXUl3FeO>>`rjF$%Z<6;?4`nc*o2BUkv z#S(Gx^X0u1)GBaAq(Xe5+s9oYI5j`OXOvtDz+e3YOL`;3J?gv=$oe^Rsyl~hC2!G6 zJRjMaC_Oe6jwgKF0UjRWArggD`uQ@XHNY!D0@(=h1>k|yd%)xVKBMHKI=lbC9U1O1 ziGjn39rtE|_+L!LdMS6}453-ENXjsF8=4i*K;ln=im$8FXg;DmK!t#ZSn$ zq&$yK()*<}q}(Fqaw(t6>o1c!gc!d`O8R;90uTpA6uLG^x6eHN{iKmy7HUpYnViQq tvuE?{%(Pw}F}y|WcJ9@}%xK)C*M&*%4Rd#WEBz~pM%Zr?Iof)h{12;k>gxai diff --git a/42sh/objs/glob/glob.d b/42sh/objs/glob/glob.d deleted file mode 100644 index 8d55867f..00000000 --- a/42sh/objs/glob/glob.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/glob/glob.o: src/glob/glob.c includes/glob.h includes/minishell.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/glob.o b/42sh/objs/glob/glob.o deleted file mode 100644 index 84693bc0c64519e11086b76bf429a6431e7c66d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4116 zcmb7HZEO@p7@pnhY_E66-IW3si*iB*G4@&k6V#$@h?O8WS{XiW1RCLVp-z)EE*&QW7;pe+ZaRpLce)9}5ahI{VD? z&O6V%^X|;-_0+}RFI6+9co-h2Rj5N8j|eKtOjMotf0TBw-Ems_I2@XcYFLgljDpo) zkOW{DkHk738Rt&x4GIE<^eC3bAY=F=vW>tghGFIlxn#OW8r*u04rx%?PQgql>V!5m z4I^Q76?+VbiXOvQ_GtUs*s9550I- zSI&Bh;+-6yqjyLOT&rF(-JPK!ZoL3)2$YxQx_^`L?Z?Z|?5;^GaMqiPr+cjY<$8yl z7h#WO&-i3x9ImL>7dJ(S?)V%%8QwMM#k1LzWu)VM6y9a)JuKtvl=1AmYJ9d{rfai! z!S47jNxep?_sccviTJW{)2%m0o-apF^^Ye`wp{tM<11{4_qxiGt-B47K~zgOER4>j8)4fj>t;AHfdY~J=&7TvH#>kUF)@ajqV)Y zu06ng9~_Z-y;5(l)RUB9`A(NGIr}-4ObbQ#dh6x+Um){$Uat2$#3xOY;-kEXyU=fM z1nR6u{Tcq0`rRSMb^)oq29*lwIFm6bat~ zo&z4yPsEOrEO1C*1%2h>F#3-Ge*hi@o(2v9NA&WE5!){|qL=!;EVScY8eRdd0GM9J zWDaZdfkCa=*ecVo7LGQ7cqdig8arr1O%BWIV5j*jXTaRBr^tD$|Y zUN4^-bEQm`hQed3EFIsp@ypQc9hi+Vna_yG<%!rivgwt<^UjRt^~(LSy;Ss-W5{<5 z`5vUaA%!DOK=)7=zVwQ9ra$WvA>pUk8qOQJ2&mdI^p3KweAk`|EY z;)T&W7qEQJZ0<>Ay2K-DvgY-93~BD!lG&VyH!oh8?={TqR%0PEd*eA)Oy`q5X)6&C zjK;A-&WaZd(agpR%*varC&i>CZ+G;?3uZ5DsRYZ@!_1@$R=U8_^bya}7pTvm!8xnI zlCUea%B{gV?g@sqhG4BS728$~v6Xc=w2jOYywC5)#;%IOZK~4d^91kl-|L?rSXp;J zjt%Ebl_naXEuKWHFCWC1cb?F$nE|lH81vOBo}k}P$~Z<-Fzd=XB1>@K0ytfay+~0} zgL&y#u>iY+0HxIi@pOJUsEa_=C3tw&b^DGh|T-kW~)9XHh(uMRj-kHPAJNTKI)w*bV+ufpfA7; zLfLJ^8fZ?Y(&q9~(CVMmqG)SW_?5^s$M+l{qR#SDTojdhvpSdgDK3giovqIG`bqo& z3{fNM+_3*chuxyit!FANwPqb2FOmO^zE=SC>U96>z@0Sc1`>Q5>{(*0}gW)J&Q>FrRJm#Mt{?5mp`cb#0c>FvZz1GGRLRip*@7Ah5yexP%M zI=W&K*xkCg2u82Rhc11p(@?2+P!;?h@-U7csC0J|x7R>@q))qqRxq;qwSi}ky*kkF zL2X0Jwq5>Df9$@=jJ!B-@Xc>8&Cy zp%+Ugde_oK8733$sYW0Q?E*5!%8?%?cED6ienaP%LSSWZ_OFm9t`hPADALP@4{~x{5mh% zesUhhTz1UfLCr`W-# zdZzp-XFekY)$N>Vp7{5i`#$4gJF4m0V|*G$VPgIX4JifrZ29ME#`Z>bNJ#q1~X;hQ%=43_cT$=jy0{6XcppK32G*i qIU{G~;f#;B6vMX~KMyQsSpC^JerI>(;wIRH9|6*_kTIZxkl4Qi&tOad diff --git a/42sh/objs/glob/is_char_esc.d b/42sh/objs/glob/is_char_esc.d deleted file mode 100644 index a5a5af79..00000000 --- a/42sh/objs/glob/is_char_esc.d +++ /dev/null @@ -1,6 +0,0 @@ -objs/glob/is_char_esc.o: src/glob/is_char_esc.c includes/glob.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/is_char_esc.o b/42sh/objs/glob/is_char_esc.o deleted file mode 100644 index ac1fd1aff14eb3890e0e8608ca0adee7ed45fd38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2588 zcma)7U5Hyn6rM>kH|Zu#(%m9fi`<90cEKj=vaqFHwV{dJu3M1WZTF#NOzz%IQnEK8 zH)&I`T39WHAZ#rnzK9^G4;6fp7GI=&@IgU~edt3Uq##sKSVYmTi}jrONt4^w&4Dv# z&Y3gcd}n^{{eJDYf5U{(Ab|!n1X^Rzn4lorK>x1#D+k&E>pT^VMxG`S7R;xJN%`YLn`|2H2 zt4}LJmp9}m@v4Or;(-199EG<-;r%%vp5Rx@+kU*Z4{uvU0pBye{geC}r)v+a_j8r~ zmYVqqi7(dSbmauj`@aV*g||=PMF2;IL?lW`Nev03?_Z_t3PgXsm(=8CHOT@zls_KA z5BDXB3DF^J36g&lbY11gAdKU{gS-UVD_F0-=e_Yk`g2zMXYn>Jvd8UGzRn%bPT3?q=fTW$@l^H1LOwk?;gz^uJIyCZ zPZ}w^4Fc(;>3Zd&>nxZE0MWAepbH1S?7UX>2rAt|pNx;NU_5C&9^XQTfqNhY!C|^@ zC>Y-p-5Y%>c3|Xrs4U1xK!pyBz^8Ar&t*GEF#cRL3a4fy2quI_g&`MV2jm5fh@*>< zr*Tt2_DdsL{a5K;WgVbLjzI!V&~s>lf%CPB@ZW(JywdCFB|ntjE1j+v3YW`=3F07dKNjD<|KLhVANFaJ(0Cp3j+2yS3gGNo@W zhWvByg7o5Vl!I>zbt@)aJQvu%S#Gq%4Uk=sN$EfF&CpU@1C;7_LV8~SJQTrUQ}-$blaxhL(i!5jqS>P*1n*jz3k}0{Mkydt8 Z*(a0*gNqt_ltlsw!2(A>c<&P>7%g5T4!5t{vO4of=9C2w6(`Rk1@4AF$73Q1WxBl5A)QmK5-ptN??|Z-d z^Iw1d6CqMGLIWLxHgq&uDC7impMyupE*C;>a}6Z$fk~_>4nl-zS2}IK@B0@PS1Gx0=&9}85OVQu6ZS4yaI0?HW}Zit^1 zmB4)?GyH%Mc6|f$Y>Q2ItLB!4SU%HF#Ty~BvoiQ0@HF&4!}*h26~e2mi?t?p*Dnxa z_&u27V#vJL65Ww_(xo`jdeCPZya!Ir^$^4JU6ptr%c4Cw-<>1)@i|CyZan5yF!?Fy z9hv_lvf)`=oE8MwFR zqs8sT{d>Q6yWL*WTR#@~;$)YXSI%ZHSDLL_-ObMBW^yyxXKV+z{rR~WIJwiaxfh4`aza` zA0?%{$wpH@?R@0Cd`!jaO5iNmmGRTouI~_K^z7^atv~g!~QC zHgZ%dp;eT>lM`qa9s{ZzyaQBoZD+I04{`sT<2E3hFH3ISKVjp&)1##n-H6>VR&~v& z>M^!U`nd6pK4C2BktIY+dTd8mjU`pZ&=~kde{dr&?Nib|AuS9KXRJueH7RZa5q)MH F`WG6PGWGxf diff --git a/42sh/objs/glob/lib_perso/ft_ld_clear.d b/42sh/objs/glob/lib_perso/ft_ld_clear.d deleted file mode 100644 index dea17772..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_clear.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/glob/lib_perso/ft_ld_clear.o: src/glob/lib_perso/ft_ld_clear.c \ - includes/glob.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_clear.o b/42sh/objs/glob/lib_perso/ft_ld_clear.o deleted file mode 100644 index f35314f32b74db1c346ffe4c5eddd3619b986f44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2672 zcmb7FO>7%g5T3W|T|0KNc9N!~1Rg6eBHq)|~0p>9!d7dauG-J}{6=_4kPCMk$wSxslT$>-cZ zGc|wazAtALF(EvH{;3B*p;!d2l96IrC8yY`SdC^q2wB$gbCah|$j2aYJ`j;V1i$SB z0V{op=ho~X6vn$J6NSB@hXT9c6^g~WbAi_1%}?Sj{ZG8ASFTY>7_UKxhjN=6P-*i~ zHgNyM5e3`Gqg2oLuU_yfPGcutt}7ehTY)F*(RO7>yv2eYPz>{vc!K6W@Cv@~I+j;h zBzim6dqlkbm>_g#PktP)Ry-dZaG2ksz1TfS+Hm!+7fO+>zY^JHQ9rd$JZ!oEGR$v;8XiTi_tQP`?Aju(vuU-wrK(r5teN8+fsYdcFD-&U zA|8ceaelAhG_+o4!7A7Bba{bgb>9bX3cLya7&Zl-a3KM(Am?P|_vco<05QDYTLSMB zQIx~JAW7}QkM<=+2?X`D_fAfW?+fAHnnB0#pdx6{VAs5+ z<2Avfe}YdJWXW-X^|L38K}|JM`iRlb25=9R3+mB5%>)?ygBSgA~K27uVq)D`;;{F7}eLa}JfBUm< zXiWi8w3#5GEq*TTPW-)cXm3alP$CL73IiRjhCd-{70z>G_M^+!?|gW90{zpd zv>C*gcIO}}3T+I9Xt8*>BoAT|#kUY!o{6J49fIf*NsV1P1#CIRQoYgGP0XTxe+2dF zJ%VYs<>|ttk$O*grH^kUz{i-Qz%-7G{blsw$mkuYY-gW9)wA7Ji7xbxR=|$Ibn2+g z0{`%Owm&L0$+T$vcP*~ZYss=^Ol$hIrs@@K=r!#CPGiS3b)I5z{UuF7+o#{s`YC4` z-8qfDuIR`KV4jm2doJJ$W6yJ6&kFmbu#XChhFIz6gry57i2*4iIO%YMd8ZE+Utzh9 Otu3A4f{+e%IKaOKv{5Pm diff --git a/42sh/objs/glob/lib_perso/ft_ld_del.d b/42sh/objs/glob/lib_perso/ft_ld_del.d deleted file mode 100644 index a2e32a1f..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_del.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/glob/lib_perso/ft_ld_del.o: src/glob/lib_perso/ft_ld_del.c \ - includes/glob.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_del.o b/42sh/objs/glob/lib_perso/ft_ld_del.o deleted file mode 100644 index e921ae862f30759e07eb16bdb232f1cf70acfd20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2880 zcmb7GZ)jUp6uk?gaFw^V0qNE`h55|iCL?``NxF5q zf|$A)tI&QL2>RV`eiQ`3KOiXT1ceC-MG!hr=m(MF-0JVVcW;`!P8Sc{bM86!oZma= z{(ay6_4`dPV~U4?p>?5^IamY@bP#QajQ>J$@&&C6DRp2nY9Sf~nPx4!Tyy%4eq!p> zi9KEReij|VqtAZtck+Vrs`Mdgnwe~BX~C@4Dz@1)k3Jipd%Ec&aW;fyQELv#jw(AO zC0?vxMKCpTxT;FgwL7Sh*5~xbglF`TZ#HR%!AHO!?eUW3axrUK$wf+UU%lUm zuTO}CUbt<34qhpB#$I4|ettRtp!*!b-sup}&aa$IyYZqfypKD?tDP_3vfep?mlOH@ z(jguWoek;E??YF9hED+R3D^3jON*$pW-eLh3RcE6XOHf=GPWu3BEnb(9-01@=a(@T zUN&#$Dp*}7z%*U=f!MT@0&iX536%vH%ga7Vx&Mj<%SLq9J1OuKu>r4$dbvV#io} z46au{07l~K?sqbz@x>OLC}0Z#-A(`i6I(_j9)@`n=DQs;KAYHtSw}FrAaCUw%?orI zBi*QfK63iAI34N8?Ci-z5_u?H#65I)d<05#Y&81F!>n3K#}0osNTbwDh$W^ zaiNa2sXWBUsvUrEqVV?hE1qB=KoE@SJ zx|wl2Zpf2Bk~R{NV{@L+PX{mGpnB~hAfw~}YKqMwi54Mxb(@p7bc+}N2AH0d}($Lpn+&&$VA0r;fek$6ED6(**cyM7mG(IZ6vc( zUY=vha##s>d-ZjA(S1bcZSy)I?e5COXYpY8qWV;i{2jRgAC(#4igG>J18(1VKv4Fd zC|0o2#ia~AIL%{&vjt~5dC|PHD}Bu!=Lsp?>;IGcwNpHl>X7zyr_0HqFBm z+&j$!+Dwb4L-S%xo8SY}d??2eOCjX%L-YjKwU2BMb%JYJ9m8P^doWD++Kg?;OM?$^ zT^Pf6RP6}&JufvyJECeR7nQ$B)iZYZQAcVqAs-O(9w8yfPn#E#Vnf6P(T;0T@yIl1 L3EfJT9-4muY$%2( diff --git a/42sh/objs/glob/lib_perso/ft_ld_front.d b/42sh/objs/glob/lib_perso/ft_ld_front.d deleted file mode 100644 index 1e5baf04..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_front.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/glob/lib_perso/ft_ld_front.o: src/glob/lib_perso/ft_ld_front.c \ - includes/glob.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_front.o b/42sh/objs/glob/lib_perso/ft_ld_front.o deleted file mode 100644 index 01aaeebbc2a7ed91aa745ff983c76fcfbf76327a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2504 zcma)7O>7%Q6n?XtT|0JSJ2jLP5V8~~Edo14m52a|L}`#?B@*gy4pgJ{+HqVtyO!-V zPL)VVt$Lk0>t1?_O~5c!P@A$Pe368OL*)+7fZQnt$NmOuCXOY_T@ z9{a&;PE8nZ;Il*YUXa69%2K(wUXjgK!wXA!{_5<7w|gl8&OH@*p!oF?h_t?W53lCh zUO0^Rus<2|k{Jpdf@c+rjq(lVJIF7>R}#jX-8_!}j~{1#IluF3erLOrzqQ?=#ayjglyzjgxs{fzmCzd3X=QE7U2Ybe!tr46U zgESRdNaNv35*y{;GNPYQWPEHa&+|KY@YcAisgIa`~LI&$@cHxF?o*>Y}QX1sO3<& z76+o+kAGASZvyKRoCx8|BFKa_@Gs0~+~@gd>GQ1*zW;1%2L44TZvykRpeLaa-VhG) zBGEgR|6>xtSD3Az+3Nx$3`oFC+`K@dof4^$Nc1kU_?|us{qY}0>2`xI(rhC2zBV`N z?<3Ji$kC{PQHZ}2qZkE$11k340jfH7ZN0<~ao;h=Z9qETmh7s3z=nH=M^6gFjNLMq z4c)95F}4L`*!ZG82*}hRawj_$wMHr Ij~QbB0a8gd*8l(j diff --git a/42sh/objs/glob/lib_perso/ft_ld_new.d b/42sh/objs/glob/lib_perso/ft_ld_new.d deleted file mode 100644 index 55f411ee..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_new.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/glob/lib_perso/ft_ld_new.o: src/glob/lib_perso/ft_ld_new.c \ - includes/glob.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_new.o b/42sh/objs/glob/lib_perso/ft_ld_new.o deleted file mode 100644 index 05e746d95d5503b0ac9d993dd1b4a39b61c17b45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2628 zcmb7GO>7%Q6rNdoH%^?`PC`pcQDrIRPoj26bBOpU2{dRM5()J$T+nE}c4AkX^V-VmtI4~iyV9*ipE(H&u1@+r?S_9HPFd1>0f*>IprOk%4rGI|m-ShwY z+H#aZcm(}mP}T)!Tj!7#qF5?ytciM~7KVj5y)u9Htxk%@`9ej0RrPfe7&E%;4xU$a z!*CSux9()vSFK3k06eEqsFf~Ly}k8mye$ROFJ8r8t}?~Ho-tE#4Z zkF8JQRSTEG1CG`gD7@o(j|pvbbY#C>^#zU_#rraXcf3!$#+Bfa`@N;`R#iE6pLiI$ z5HecdF&cP~-tTvh#dE9c*k?m*_|1x66k_SLM3B-}cv%&E0K70Xq~>?ue3Z&!wT9D` z3xw#s56TK}PT}opJmn`DD=RZp`u+1Neux;|@3#u?rdl+Mxgbg$P#^UrLkUSFfT;Zw z;0#={r=XvJMjh-Oa5vFAuDLtjkA1;z{bcX_oV`U4Yu&M1AMM($jfZyYew&utt%bI| zv&+&~bL3rHcxYc+Zrd#mvu*z{7nZDSbSzA1BLyJb-no~3@9sQ}Rd#9V;&S$KsaCI4 z{p@URDmRsV-t}-7oS2=0lbe~&z4QXB*WCP?S1shdNaAQ zuMgvZO=hS7Ar8*;xa>C8$gKh)k4V=}`mgO+!0D~-%AZX;}@IZqfjHa`pP?;+s@1a71W ze$cp4{+zr~I(}w^lG*3xZ7NoMG4*ofC*iUF`@L@2BdP}8Jzi@Iy|5eEVoUhsER+I>qhRP0+frMbN&stHM)}~1) UqW7W8#fP|4HxuiQNB=MV11K~?WdHyG diff --git a/42sh/objs/glob/lib_perso/ft_ld_order.d b/42sh/objs/glob/lib_perso/ft_ld_order.d deleted file mode 100644 index 4cb5cbf3..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_order.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/glob/lib_perso/ft_ld_order.o: src/glob/lib_perso/ft_ld_order.c \ - includes/glob.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_order.o b/42sh/objs/glob/lib_perso/ft_ld_order.o deleted file mode 100644 index 8e83fcf91e0018c223abaefd61b0833c519dfcb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3136 zcma)8YiLwQ6rOuGbN6Q78snq3WlPdVrP*C2plxGKs3|wwEEMY_{ZVc=yPJosyURXI zlmw(v>$+5w(iZwm|MidHze4E`rGh906-p7>LaDY*Y76>rsnG3r?wyIdYcw7>bLN~m z^UXPD9`|1T_n-fqj42L=2HXP9aWp|NXdSpp#)r^f-!l*V^Kc z?5MIsQsSkv3CrA!cS*!0=j@~88fi(q_{c~;b&&8IvCiw}vf6Jr5#aNCX){95q$;y!sijP=kk_;qkS(GtXB%j$=g?e8(lzZDbx*DT0uHsmocxxR<|Dy4ZVp#>Q1a4UT}Ww#Kj)oKm-F1RfV zWppv})_48%I0T1=_Qrw-Q~AO~HWSErG68ooyU|gy6xg5S1-7mSj zJcDgJaEKh7slqhahHqU@gUbDktlDY_dmcWkZHmL^b`uC=x|cb8gKea2!%1zWjd!&x zG|5fp)zgXbm)&l-dfVv~{Ry^jqE0IFu;)pDVz#ha`T1PDv(ljK9fgD9SB{f#sAr~5 zSvslEa%U{1Lky$$ zPM)Uv zks~MEL(oky)rpEku~XvMU?MV;iR!r;45BKKiHbtc80b-fIuQgdY^I>wkPKfr zyo)JQ0VUvZ>ZjpF3q1+$yGK~HnmjM8-xoNpzT&lujXj62%A)X8lzToeT7}jCD-YgN z+^Iyml%x-0-BrYmg*)Bo(71h+TNjV1!>@3sOW(oUO5CYMIUnY#_8Qmcxa%zUYQsEm zntP+%@gvu@E8GPSUzD%u|R9fTzNR@<(Hg?vuPr-g)|N@)9p^g;Szkko}vooe;#_4Q5T%(SaKn#T(# R73-0diuJY$FM8`3`yV&Q%Mkzo diff --git a/42sh/objs/glob/lib_perso/ft_ld_pushback.d b/42sh/objs/glob/lib_perso/ft_ld_pushback.d deleted file mode 100644 index e9d3b84c..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_pushback.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/glob/lib_perso/ft_ld_pushback.o: src/glob/lib_perso/ft_ld_pushback.c \ - includes/glob.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_pushback.o b/42sh/objs/glob/lib_perso/ft_ld_pushback.o deleted file mode 100644 index bad0e0b35a6d6e87b8ee186b693c26b6fc5704b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2832 zcmb7G-A^M`6u&d&P78&$fQ#&|F-`CTjkJh75JeZVi_TU^%zhvyu47vY?OLW|KNeUa z66>m!7dG)>HQ9~vuORWs_`!pkjsF2JCTKL_$q+T-@7%c;+F@7fNzOeV_uSu{d+yiV z{qy&K{ETTnh6daMb~u_S7<3Z6N6!1umh9W0F(73FlM#o>39_tmW~uDzu6=1@=F*|9 zw9lkMcmzGu#u()WV~vC&%bLxkD)UyUTof+LI```Mg%?#fQ#fBp&y&VMmr``4kW_g2 zLRz@Jc%xLDI{KkWyksg>%v>Y<#{3lCio|RdFK5pcXoweYQ|9-R#51Y*AP4o6OLWiq z7L)dTrgRjq))0+-5ODG8+J*>KzlCI4r0C60;i)nnkC$|ue8#eq3zXiG`FhvULkc=EU-7f?J{e$XHhCB-Q@Q=WK!Ko$sE+yDJBMBCNFY~;aS0oN1FmsozXzUx^1vRV7tto{}?YpZ)^t+H!YSNB->{SXG4 z>l1rsb%cd)bO{Rq>y_Odg8bz*G@F!PZA&=J+Qg1orIBag6eHJ1RL?eS@am3Pdnp2a z$J`nVAdKR6UB6$r*H^a@5-_XZM6Y~3PUkT?IXOKQy_PAKas@j&5*v&SM*GuwTp|M_ zgD_&lL$RlyV5MR@KA$h7;`v<4au8jJ&y}tGtmRZn*;F$9RxHipmrLk~&o36P&L-o- zL#3>hc9yLnMuDtEO}b#0Gj^HT^mI6Mk2a#PWWGebi;OUt)~P)j>gK*s#5f)5)Vi<+ zdYGN>#!B=+_(IPHpTl~!bZfp)Fz6b*gZV<|yU7^Ak{a}0`C~xp(#G1{5s$Z@X=g0J znJyiK*gD)`vL7+d-QWSS-P_qyR8dgZ z*-y#pjJejEx5?@vi|L|e=EZT7rlJ@%5ainK^Y_NP-!9WU>6_$V6cN}+bz{lp9lHxBWR6u zHicHx{t9)V)#w{wEoZ0mm07$BM^6=Fbjo5`ifcR?IABz;79DF1DaaSrxWDZW-fqnB z&N&`Qa3jG_81wuzWH7;fGqAqoL3A7M@g5@!Gr`+Nd0>WzjhDF(RtLhMc0lbis=^gX z7|#nOl;D~%sT)Y1UBMTT)WBIttk%E~BoY}|bN$AWl#faIu#^xq&Ujr)+Bso36j3ef fOrh7?{hoeixpkpSLaOQxQnt7|tc7Hr{{8+1VheR9 diff --git a/42sh/objs/glob/lib_perso/ft_ld_pushfront.d b/42sh/objs/glob/lib_perso/ft_ld_pushfront.d deleted file mode 100644 index 38ce7b12..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_pushfront.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/glob/lib_perso/ft_ld_pushfront.o: \ - src/glob/lib_perso/ft_ld_pushfront.c includes/glob.h \ - includes/minishell.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_pushfront.o b/42sh/objs/glob/lib_perso/ft_ld_pushfront.o deleted file mode 100644 index 404dc999237299048c23f0a42b8928105cd1056d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2868 zcmb7GO=w(I6h7}w-kV7#nVC#%o7yS^QCr2##28`FS`*sn>zIl*ZOo=T=P#KFlbLaT zl2j6?9jy-8q#G?rbtSlPA+8E;6vYT4BDhfyx+z3Z$V!5W@jLh3n@nC>6Azqwe(t&7 zJNMkb_x+#0|KlanJcI_^1}+KLI)A&2IDddMYf&Ers~snwN?=>+dlpB$hl`#Hz^z?pD?$&l%gwz zrNS$e(!%Y=OK@>o=;wXnB~z(Nc8>9P=BMx$CFXwd^2MnV4{_stE%W<9;!SYzK`W@A zT%tS9w~{PQXREvM-rW&Rbj;`AwX{1TRQ+a?X_2BkKZU2txHn$1TrOnoVse(#+cn?o z^6MvLLdW;a&%rCDX2b%!^ZQZaJs|Ni`@|FZm6K^V-i8bB?S10aE|u>%-=pFX5KYPa zKHeuD4xNB>=XXWosriQ6CGfUzt#7(Ci+R@UdT~Bq%-HtW>FrRWk0f41I^)1&*C*J2 za?M?M*_=I9!Rk5#Y$|;?t+JA+7Q6ReK>ywAz7dhyWs| znMVTMS{N&$2kA@?*5x3CC-9{IDXd;wkLC&Z{f=RDktcAbhmANE+T_>E8wFBW8}4vM z9P50hlgMX~E**^6KD5K6?=a5U?mn^kJLyq)m|k*(Xw}=KKMvD#63q-)ySI&R_+IUR z!SCg(>^h|Pk-<*|KXzKL-sdx3SJq*@FGQx!!{wb%Td$usaTRVosA)d^+QK_R{}wH* zGK1?uhHuxe<=$hfJL*`ke85(iEz(6x*7%6UQ&Ef>2y$%aF`OG;{gmg)-(>&1h`{!1 z8OtvB*iF#?iQ&pJ-@{-aK4%)4kOtm5K9SD%*UrAb_|_LU7KdSvgGF^Ax!ecAAg(m0 z%GJX>ZpoYzcZ~>>=d|IeMgrm0&z3mA@Gf(O!rh<=O1Vi?pg2eju4?-fZ{>zTvT#)i1 yDespOg2$P1yvchh$bgdWgKRN{-fBPM>L=T&6W<$B-MW~R!?{oF*<``_JNy^ag@7mk diff --git a/42sh/objs/glob/lib_perso/ft_ld_reverse.d b/42sh/objs/glob/lib_perso/ft_ld_reverse.d deleted file mode 100644 index 6aaf3863..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_reverse.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/glob/lib_perso/ft_ld_reverse.o: src/glob/lib_perso/ft_ld_reverse.c \ - includes/glob.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_reverse.o b/42sh/objs/glob/lib_perso/ft_ld_reverse.o deleted file mode 100644 index 01d3e7cd0113f0f62790ba6e9fc8447e64239ecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2732 zcma)8O>7%Q6rNdk*X!7^ofy&-5V910C2EH#5&=>*5e?dgM4Oyc)<&YJkP|PpRi(0+v!$KT+aq`%+J1L6i1Bpb8olnZqltWhW zIThQ7JNbraa$4l$F8Ol#e6@Iv_}lAKe5;bPTfVY8SD`MQeDBKoZc4r^O+I8C^Cy?+ zw&Shl-1%Z{H=oy*4Ig1r6rh*FhijY$M-U_kQ7nnM zDpps;?f1cZl5ZmT%!VbO3|W-1lJd!_{pXZjpRseio09Jf*~tSRN#PFl(Yz!nA&LYD z6+Z}d5R!idHVun9*bC5Bp*^m&74ODBX*GVf)_zM{jSJh>I_cpp>Sr~kHmz@_Zu$P& zg-w>Y^d!OSfY&EXeBOe8%UYk^v>KBpe8j$=^m7{Y4H#&C`J~xw%H(aU!L7Bg(yx9w zNyjZcGjnP-eXdxol`C#~EHj)LPCsHhxFZgZ4I{{mj$|Hxl+~(scHXJvvraiLJY-k0 zb9Lbq1g<(n#f;6eCu{Js^XDsP3%Ts*NUbDnZ&{46wnXOC>Wq4_8Z~ystry)obLpw@ z=-zaMG(O}Ad$G!RAAc~O(nIm2ac{hj_hYKH48VRq(G!Y46@5DTaO`jl+fQej1dgU~ z3y!vhdV&#Z48R1v@L;8QC?1Ux1unc^7K$HDQ80$Zj`%Ox518{{ADgtoEXE!q19?6$ zeybjzAQO-R_$k`7Ji&QL+gQT00RIiN`?L-3ZHoFX2T|!7Mg1~5^FBo>ikMEVeg%#3 z4w@CHc2D?qm_hAs^AhZL1nt*`m`PdRQ#7azndXLy4roJ37SX9YcF^%jOKn!Nm^fbo zEO_O<{rdV(G)}*G*i4Yp)|a5pzSw8YR{p(mXue4AqC^OtS z9-vX!2&`s=R;KmH89y~Vt#jj$W}x0+d0-Ac5fpA@rF}@+`=y1UI*pg4jl(7YC?U5c T#3de#a;}PdKn3zjp+5ftnt^L3 diff --git a/42sh/objs/glob/lib_perso/ft_ld_size.d b/42sh/objs/glob/lib_perso/ft_ld_size.d deleted file mode 100644 index 24e21184..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_size.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/glob/lib_perso/ft_ld_size.o: src/glob/lib_perso/ft_ld_size.c \ - includes/glob.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_size.o b/42sh/objs/glob/lib_perso/ft_ld_size.o deleted file mode 100644 index 3f7da76c681410cc8fdb8ad47f9e0492cafdc7ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2832 zcma)8U1%It6uvW?nf*(4H(jl%)v}OUE!dqHqYWyWXj3;e1!>w^uw~ev$!6nbcG=l& zl9FIBVvX^k#Rn<0VnN!sQWQaufYO3ul`8tsM?r)LN{jfgG~oK3nR}DjNosP~bI;G5 z`^`D`-g9Sf-u>%eKVy=QVF0&)%L;}B7_<#sC+9sVOtGLdTnZbQj5taULAqWwCaaF_ z*oOy>9bUDCHp~^mqt~7fIeEdD6)_}rJ!fQUdEKg3Y`3oOd#(S_{*@4cv&cQa@%&Z- z7?WN43SP04wcTF47%h&AK2}|ZqppjW&SWaaNy@i5KY=&TVK$3bFh@!>#fx{2=l2uG z+f9oP`ULC8w{PA2DrqxsSZnddnxYxI%kdmkdu)mj`!Sx*+9`VT6L?}7H^xhs%SA&s z)8mxhntI>hZ-0&_w7g+{4qhoUW^b@JzsnqNC&$|x;L57-)a%NxoX&djZg}us-y~jj zs=RK!w>jQ5p3j?`#6#2Bkly@0rG^KIdS47Wwrlj%n=Or_&Z=HBCkkdx*N67GV%aT@ zm*CD(;F0UP=-)N{W{m1173{7vLD!q_gF46S<9P3KJZ`cuW1~VRDb8Q9VA_b@dV6^j z{LCkP%j^CA9{JI_#3(k501z!k2lyA5r2hl?5G3+ouY%n~XI!w`zZv~VYX0}s+@G=3 z{7gOd&A=U+lUkUmFWJicKs_}#Q)kh)AGZAicT#g-NvV0r1w2~l3qY^`ajVg2z=4O? zV<)clQzIpYhK?RgoHQy{p=2g{lU>QK#ADeax_?h^7mQ?2ck+qd%&KIye6f_#iiM0` zMs!IVsp`d?ZWT@$$t=^3Sa53jiPBgut@U(Uqk6VHrFXN{C`O@rm3Aau!BMfN!Y-D~ ze4=Jrg}iCx5(N{U93yOI(U2{fRRd0wJ`-iSGYN-D?b0KWxZ;b%)a{XWX$#g>PQtlG z>I?ZI&xD^1KiWDNf1wqpO<^*34aRZl^)#8vRyG)SCNQS%WWLDr;V?GOABCT>KwR=g z!ePQ=EZBy}gK;u?vCSd-8}{`5Xy%b&VySX3|xfhXt_Ul z3GzE~Js@|o;1y^$$m)GRcSVNl}+xfmN9e?X8)oCXW znRG&$=90@h7YDH6#@{GLK>+c66bPd3mzWBv;PVw`ghzhLjdXgxbnv6;&wt%@dvW@y ztRT50a057^Og~BxsXNj9JP>RXiNd8*hnO@OlVYv@z!^kQDs;~*EfY?oAS diff --git a/42sh/objs/glob/lib_perso/ft_ld_swap.d b/42sh/objs/glob/lib_perso/ft_ld_swap.d deleted file mode 100644 index b13b245c..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_swap.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/glob/lib_perso/ft_ld_swap.o: src/glob/lib_perso/ft_ld_swap.c \ - includes/glob.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_swap.o b/42sh/objs/glob/lib_perso/ft_ld_swap.o deleted file mode 100644 index 36eacd9012934a32e34e7b2f4b68da3613314f7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2780 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 RDCtOw{zqwf`(=o+{{c~4sLucZ diff --git a/42sh/objs/glob/lib_perso/ft_strjoinf.d b/42sh/objs/glob/lib_perso/ft_strjoinf.d deleted file mode 100644 index ba0b015d..00000000 --- a/42sh/objs/glob/lib_perso/ft_strjoinf.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/glob/lib_perso/ft_strjoinf.o: src/glob/lib_perso/ft_strjoinf.c \ - includes/glob.h includes/minishell.h includes/libft.h \ - includes/get_next_line.h includes/ft_xattr.h includes/mytime.h \ - includes/lst.h includes/dlst.h includes/btree.h includes/color.h \ - includes/types.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/exec.h includes/job_control.h \ - includes/builtin.h includes/builtin_read.h diff --git a/42sh/objs/glob/lib_perso/ft_strjoinf.o b/42sh/objs/glob/lib_perso/ft_strjoinf.o deleted file mode 100644 index 838b3c00236c0e8326d9eb56fa0ac0f0d6a01304..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2600 zcma)7TWcFv5T3L0t`tj_)HH9^|@;gN}^!JaU_yd(dAr5$Pt)K?-fe1mYYykvRA5RX@-J`|R}j zv)gv4Rir|Al=k`|0Fj~xu7xoqIiI&n%M0A|8^X=`)F+dtKkS5rIP22Wmi2W40F;Q{ z!K=BJaL4hUM1xUpYB9$icxI{8urE`+-SvfdB?)s-ysA@nX-XV#jy4bJ=Rm*%S>J73 zKe>Io_S-O>1>4(+_qW88aL}U7?517umP|{O7_TqH3t{)iGwb!5%^h=z%G=TJQwj90 ztm)f*>kIJQ(xTYlcztimZjMU4Uk`{U>Z_Yp9PeTb@6iGA{44cc`~5=Vm1TX|lvK7w zY(Ij2@zM#%czu7y>ht%-v)m=@)91_1O4XU?e0FL(H9$(f1G;qnfOzD(i|0>nRjfX{ z!pjZZ-CzRe-S5Gm#G8;isU*fKYqXEy*=Zw|^qq(6Qt+lq%THb8UZ5ZpQt}kys zq-jQL`hIh5gXO-Yx=>5xzQU5gxUtq20q9b8`6y?vPv1A1zv!Rdo21*N&(5AZrC+ui zUe$H<@xpLnSRb@%_#_OC52H~S8!e2y4qn45F4Wvou~sedI!3$2vQIDXqKkLEU_o)t zLvL|m#a)~?i({i+gqacq8DAg6EsQ4OPbn)A4}yvsbeNY9gE0Ud;Bh z!?<)x4o(i>0Xil`&rwKZ-%qD;t2qW0J&+r4wvF}M}%B|HEVUvkg z{c6;ztqJQ#9FxkeOW%;yPm!RA98J_ze4>prlSX)QNMc)p0$=c)_ubnZq0&WqlqZ6a zuDRrj&)q_b;_nwji$#2d0+HzQFwjt{_&1?5Pd32twd-k1|L*e%)XyMOFXX3Y7%Q6n?YzterTqofH)i2ra1mR3f&Cf`}k03Djt56AAT?_E3%1>$T&^u`Sza z6O=;1w8BK7rV=L(aN>x1tT-Sdka9o*jvRYIqLPs!PEkRa_hx4jd($>~(wjH$&6{t( zH-Gl8_x}1X0>DCm4Qd#*#<8(bQ65L#rr-l4p~h~|92D&%CXgm5h$2MOTW-McDC8t0mdJZ5hce zj>aojT^S1E9j3+Uk#7!&=j3vA?-JGD&rjoBP?!hBD^&_rni9mTDtr;x; z&3*a#c-7p3+~6R;V+!wx!u#cbc#>buaf5id0N&pR#A~k9?pyD5g;!Ag4o6jI*Qg9X zAcS8pUOEXGASjk>@!ldHg?_{Hr}jL+ z&zl#8I_|DNL5TkMAfxc672XdDPq`2SnAd%>`uvqk6^R(Ex2EvE(vy%E$?p%~N9Q0( z39&(H2XgayPS5CQ*KHI=px_G&|kayA(gzg>?FbB3TA^l@6^GoI}Hy?P^vV6jj(6qhj=KSG@po%uu)uHBZa|HHa!@MzZ!cj z_WaQ6L%1^>3>A3$5I%epeJ)P`Ma?4+iXV%`XzM;l^|vWXI|f7WA{msEzLBl|G1=Kr z9bo73n7|T@g^cy(itN*mT-aEzt&lfDEqdh-$Q%6>Ti_Jq?^Dyl#-s@*Ge4w27?=I@ zj7?m$Vp&pr-+$H@ZpV^DRDK<8%1`N=OQGOg-0yBL{(d=BFzF+dh(afyfr*ymuL>=o z&oguNlbCCLu{w?ZX;i9(_)@)elTfHi3Q@@_^e`q7{0gzfY$1GiNz_~a5=ytLcMN9Y$?L|O!}{m@OUyCgWo#MyCq9fVqi>+Hy{8#=PbwZ~ z$z@>YOoS4QM+U#=!{&KDTHqrmxOswy%p#9n;DgwWPVumLk`F9#!~BTH&2Mq=JF~@& z&v^7Ak6?x|g`pN7z%DbF3=_$~s!wK2NS-kEitn3gWuH^_DP_?RG4l;&=>#MsQyKwy d6t%~d{azmgUPk;=g*R4q{mYBpx+mY&{{eLDN;Uuh diff --git a/42sh/objs/glob/lib_perso/ft_tablen.d b/42sh/objs/glob/lib_perso/ft_tablen.d deleted file mode 100644 index f64294f1..00000000 --- a/42sh/objs/glob/lib_perso/ft_tablen.d +++ /dev/null @@ -1,4 +0,0 @@ -objs/glob/lib_perso/ft_tablen.o: src/glob/lib_perso/ft_tablen.c \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h diff --git a/42sh/objs/glob/lib_perso/ft_tablen.o b/42sh/objs/glob/lib_perso/ft_tablen.o deleted file mode 100644 index a44a69cd5fa945bc4208da5f1c1dcf691aab8424..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2448 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 C909Wc diff --git a/42sh/objs/job-control/builtin_fg.d b/42sh/objs/job-control/builtin_fg.d deleted file mode 100644 index 10176373..00000000 --- a/42sh/objs/job-control/builtin_fg.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/builtin_fg.o: src/job-control/builtin_fg.c \ - includes/job_control.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/exec.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/builtin_fg.o b/42sh/objs/job-control/builtin_fg.o deleted file mode 100644 index 4b5a43eed57665c1655614710769248f2677a157..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4868 zcma)AYm5`u6}~gx8PD45$3CEhCCCKWhBj+c9?kOXF5q-XAf*YLkTz(r$FBkJjAM@p zkKG2b5aGBqK~?zCKP6GBpo&Jcq7^?jEhUvUq%YJ&DUI3)sY%yX0L-h1wM?z!JRbLX6U$NSs=eDJZKF~P^spthl&lhDLaQSLxh34cl%3c3TAxs8Xx z$*4y8JWaE+du$FMG;M2g+twS{>y^j}6yhUa7IZR(KLQ6xctz9nid{C$JXf^xc|2)8 zzJ;7=Dq>Tgx|){BrmJ}kq|S(@ZFqF(q5B$EzvF)WfXg4X@WF5zrN>va^qcZMMH}8! zwDu<8c5lj;N~g=&-Q@3d|2)38IL+50F7oWn*;6pd{ubeXT z*~%yRelEN7z4nC;uh)<_7C9CZuReD&bNT`y?dK{j(??;-pY3uk2jA`3^n%6>$L2j>z}>1bkpa(kMni& zS$((3ha`3=Tm5^C$FJw#iiqb{L$>&*TO)W*TdSH+8fHe*Hf?BFqH}=r#kg_@_$Xz5 zh4|y|yoE1Y&~jzGU3Wt3d2oXB4RXE%oR33>W31ryNjCD=FdfF$=e^ANQrwwy{CVH{ z6#r;noU<_KCK5S63-yn%C(URVV@DwAINgHUTxbcZe97jaTlR<5+WYGGl^tr`IiS@# zQ)|g@|@${p%|w9ly(G!=bT5HbS&T(lx*rN z?vS_iTtM$(#?Y@1PjHuO$7dy7U=D4uGoXw2o@+)HtEBmvSJ{Dl6729d0`*q8-%T|#!44{memL1DkRWq|P z_VtCvc0QwFf~k77T+W&{QSi|rI>%z0Ha)UAwmVy{7?v3uh%b&Wj@_*narpKRECz@# zTN3}mB33EuiKfL9>8eq*4O7eI<2p+WS1>=3f705SNhOvosT4H5v{zfgZdftHv{@-- z7noj1m04;x%bL4O43s*vHAhrjku%B_M+1G)sMxIH3VLk#&$!eo#=b10Mzbl$Qe`B+ zqXaHmW1BDP^-*hgz4(RqS-0 z9@pS51~-IGVPUvi@`a;vZ@5$FLMVxGD7%EgfG@lx3 z2#=(JgoyA%5TCI!>tb5?Y|a?_znOi;gFt()S2; zr?6g|@7Tms-zV5ZYcOeqnl|}W2>*HN;{%Gxg8Um&yh(l1%6~%RoJ~j2Y42@+7Gj&! z7dQ?{t4Mc?^I6~@K+h6dB+gd?z39;*(&xna9f3Ze(=_&ZaekD^adedxXimUFyrcbP zh*@G+;1$Rs)M5`2{sd@*&_PuE=-TEgYu3q-vc@w^%d( zt!xw+bfWfO3T;KfzV; z8&(wAG?7w{Po%sg69|Csa{`8_FeQ1Wk+VrX-c z^tRM1uaV}-_e+u0Qs|Tq1m$EM4skCf<3 Hk+J^)!&(91 diff --git a/42sh/objs/job-control/builtin_jobs.d b/42sh/objs/job-control/builtin_jobs.d deleted file mode 100644 index 6dfcec77..00000000 --- a/42sh/objs/job-control/builtin_jobs.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/builtin_jobs.o: src/job-control/builtin_jobs.c \ - includes/job_control.h includes/libft.h includes/get_next_line.h \ - includes/ft_xattr.h includes/mytime.h includes/lst.h includes/dlst.h \ - includes/btree.h includes/color.h includes/types.h includes/exec.h \ - includes/minishell.h includes/lexer.h includes/parser.h \ - includes/ft_readline.h includes/builtin.h includes/builtin_read.h \ - includes/glob.h diff --git a/42sh/objs/job-control/builtin_jobs.o b/42sh/objs/job-control/builtin_jobs.o deleted file mode 100644 index dc7e255fb2a60e5e896e4a05d9274fd4db262295..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6616 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 diff --git a/42sh/objs/job-control/do_job_notification.d b/42sh/objs/job-control/do_job_notification.d deleted file mode 100644 index b6900664..00000000 --- a/42sh/objs/job-control/do_job_notification.d +++ /dev/null @@ -1,7 +0,0 @@ -objs/job-control/do_job_notification.o: \ - src/job-control/do_job_notification.c includes/job_control.h \ - includes/libft.h includes/get_next_line.h includes/ft_xattr.h \ - includes/mytime.h includes/lst.h includes/dlst.h includes/btree.h \ - includes/color.h includes/types.h includes/exec.h includes/minishell.h \ - includes/lexer.h includes/parser.h includes/ft_readline.h \ - includes/builtin.h includes/builtin_read.h includes/glob.h diff --git a/42sh/objs/job-control/do_job_notification.o b/42sh/objs/job-control/do_job_notification.o deleted file mode 100644 index 90591b6abb4f69902f3c1a81ce60c228dd359014..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4632 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