From f43f11cd142a06e7c236f0e23a31d4af40273ff4 Mon Sep 17 00:00:00 2001 From: m600x Date: Fri, 3 Feb 2017 12:36:25 +0100 Subject: [PATCH 01/98] Rebase init --- 42sh/Makefile | 34 ++++-- 42sh/includes/completion.h | 96 ++++++++++++++++ 42sh/includes/minishell.h | 10 +- 42sh/src/completion/c_binary.c | 39 +++++++ 42sh/src/completion/c_clear.c | 60 ++++++++++ 42sh/src/completion/c_files.c | 63 +++++++++++ 42sh/src/completion/c_init.c | 64 +++++++++++ 42sh/src/completion/c_matching.c | 38 +++++++ 42sh/src/completion/c_parser.c | 81 ++++++++++++++ 42sh/src/completion/c_pathsolver.c | 173 +++++++++++++++++++++++++++++ 42sh/src/completion/c_printer.c | 93 ++++++++++++++++ 42sh/src/completion/c_single.c | 40 +++++++ 42sh/src/completion/c_sizing.c | 65 +++++++++++ 42sh/src/completion/c_terminal.c | 65 +++++++++++ 42sh/src/completion/completion.c | 104 +++++++++++++++++ 42sh/src/line-editing/get_touch.c | 4 +- 16 files changed, 1010 insertions(+), 19 deletions(-) create mode 100644 42sh/includes/completion.h create mode 100644 42sh/src/completion/c_binary.c create mode 100644 42sh/src/completion/c_clear.c create mode 100644 42sh/src/completion/c_files.c create mode 100644 42sh/src/completion/c_init.c create mode 100644 42sh/src/completion/c_matching.c create mode 100644 42sh/src/completion/c_parser.c create mode 100644 42sh/src/completion/c_pathsolver.c create mode 100644 42sh/src/completion/c_printer.c create mode 100644 42sh/src/completion/c_single.c create mode 100644 42sh/src/completion/c_sizing.c create mode 100644 42sh/src/completion/c_terminal.c create mode 100644 42sh/src/completion/completion.c diff --git a/42sh/Makefile b/42sh/Makefile index e240d66b..bd707f4a 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -1,14 +1,14 @@ -#* ************************************************************************** *# -#* *# -#* ::: :::::::: *# -#* Makefile :+: :+: :+: *# -#* +:+ +:+ +:+ *# -#* By: wescande +#+ +:+ +#+ *# -#* +#+#+#+#+#+ +#+ *# -#* Created: 2016/08/29 21:32:58 by wescande #+# #+# *# -#* Updated: 2016/09/27 20:14:55 by wescande ### ########.fr *# -#* *# -#* ************************************************************************** *# +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: wescande +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2016/08/29 21:32:58 by wescande #+# #+# # +# Updated: 2017/02/03 12:26:23 by alao ### ########.fr # +# # +# **************************************************************************** # NAME = 42sh @@ -29,6 +29,18 @@ INC_DIR = includes/ OBJ_DIR = objs/ SRC_BASE = \ +completion/c_binary.c\ +completion/c_clear.c\ +completion/c_files.c\ +completion/c_init.c\ +completion/c_matching.c\ +completion/c_parser.c\ +completion/c_pathsolver.c\ +completion/c_printer.c\ +completion/c_single.c\ +completion/c_sizing.c\ +completion/c_terminal.c\ +completion/completion.c\ builtin/bt_read_get.c\ builtin/bt_read_parse.c\ builtin/bt_read_term.c\ diff --git a/42sh/includes/completion.h b/42sh/includes/completion.h new file mode 100644 index 00000000..782e24d2 --- /dev/null +++ b/42sh/includes/completion.h @@ -0,0 +1,96 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* completion.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/02/18 11:13:04 by alao #+# #+# */ +/* Updated: 2017/02/03 12:23:05 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef COMPLETION_H +# define COMPLETION_H + +# include "minishell.h" + +/* +** Autocompletion list for the valid candidates from the parser. +** id : ID of the item. +** name : Name of the item. +** type : Type of the item. +** len : Length of the name. +** cursor : Boolean to know which item is currently selected. +** next : Pointer to the next item of the list. +** prev : Pointer to the previous item of the list. +*/ + +typedef struct s_clst +{ + int id; + char *name; + int type; + int len; + int cursor; + struct s_clst *next; + struct s_clst *prev; +} t_clst; + +/* +** Autocompletion structure composed as follow: +** rcmd : The raw command from the begining to the cursor position. +** ircmd : Cursor position. +** cpath : Placeholder for the solved path. Later used for the parser. +** match : Part of the command to match when searching. +** home : Path to home for the ~ solving. +** pwd : Current folder to solve local path. +** trail : The rest of the command after the position. +** prompt : Size of the prompt. +** c_sx : Size of the longest word from the list. +** c_sy : Size of the list in number of item. +** c_pline : Number of item per line when printing. +** c_line : Number of line required to move to terminal up. +** win_x : Size of the window in length. +** lst : List of the item corresponding to the completion. +*/ + +typedef struct s_comp +{ + char *rcmd; + int ircmd; + char *cpath; + char *match; + char *home; + char *pwd; + char *trail; + int prompt; + int c_sx; + int c_sy; + int c_pline; + int c_line; + int win_x; + int key; + t_clst *lst; +} t_comp; + +int completion(long int key); +void c_init(t_data *s, long int input); +int c_matching(t_data *s, t_comp *c); +int c_seek_binary(t_data *s, t_comp *c); +int c_seek_files(t_data *s, t_comp *c); +int c_parser(t_comp *c, char *path, char *name); +int c_sizing(t_comp *c); + +int c_single(t_comp *c); + +void c_term_mv_down(t_comp *c); +void c_term_mv_back(t_comp *c); +void c_printer(t_comp *c); + +int c_clear(t_data *s); +char *path_solver(t_comp *c, char *cmd, char *cwd); + +int test(t_comp *c); + +#endif diff --git a/42sh/includes/minishell.h b/42sh/includes/minishell.h index a2b32c83..d3959f46 100644 --- a/42sh/includes/minishell.h +++ b/42sh/includes/minishell.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:07:44 by jhalford #+# #+# */ -/* Updated: 2017/02/02 14:46:23 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 12:16:52 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,6 +24,7 @@ # include "builtin.h" # include "job_control.h" # include "glob.h" +# include "completion.h" # include # include @@ -32,11 +33,6 @@ # include # include -struct s_comp -{ - int a; -}; - # define SHELL_OPTS_JOBC (1 << 0) # define SHELL_OPTS_LC (1 << 1) # define SHELL_MODE_INPUT (1 << 2) @@ -54,7 +50,7 @@ struct s_data char **argv; t_flag opts; t_line line; - t_comp comp; + t_comp *comp; t_exec exec; t_jobc jobc; }; diff --git a/42sh/src/completion/c_binary.c b/42sh/src/completion/c_binary.c new file mode 100644 index 00000000..fd46eb81 --- /dev/null +++ b/42sh/src/completion/c_binary.c @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_binary.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/09 13:30:57 by alao #+# #+# */ +/* Updated: 2017/01/11 14:08:08 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** Retrieve the path from the env and cycle through it to find the matching +** element with the c_parser() function +*/ + +int c_seek_binary(t_data *s, t_comp *c) +{ + char *tmp; + char **paths; + int i; + + DG("SB: Start"); + i = 0; + tmp = NULL; + if (!(tmp = ft_strdup(ft_getenv(s->env, "PATH")))) + return (-1); + DG("SB: Path extracted [%s]", tmp); + paths = ft_strsplit(tmp, ':'); + c->match = ft_strdup(c->rcmd); + while (paths[i]) + c_parser(c, paths[i++], c->rcmd); + tmp ? ft_memdel((void *)&tmp) : (0); + paths ? ft_sstrfree(paths) : (0); + return (0); +} diff --git a/42sh/src/completion/c_clear.c b/42sh/src/completion/c_clear.c new file mode 100644 index 00000000..1cc89271 --- /dev/null +++ b/42sh/src/completion/c_clear.c @@ -0,0 +1,60 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_clear.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/10 11:37:43 by alao #+# #+# */ +/* Updated: 2017/01/31 18:55:16 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** Clear the list from the memory +*/ + +static void c_clear_lst(t_comp *c) +{ + t_clst *c_lst; + t_clst *p_lst; + + c_lst = c->lst; + c->lst->prev ? (c->lst = c->lst->prev) : (0); + c_lst->prev->next = NULL; + while (c_lst->next) + { + c_lst->name ? ft_memdel((void *)&c_lst->name) : (0); + c_lst->prev = NULL; + p_lst = c_lst; + c_lst = c_lst->next; + p_lst->next = NULL; + p_lst ? ft_memdel((void *)&p_lst) : (0); + } + c_lst->name ? ft_memdel((void *)&c_lst->name) : (0); + c_lst ? ft_memdel((void *)&c_lst) : (0); +} + +/* +** Clear the structure of the autocompletion from the memory and call the above +** function +*/ + +int c_clear(t_data *s) +{ + t_comp *ptr; + + ptr = s->comp; + ptr->rcmd ? ft_memdel((void *)&ptr->rcmd) : (0); + ptr->match ? ft_memdel((void *)&ptr->match) : (0); + ptr->cpath ? ft_memdel((void *)&ptr->cpath) : (0); + ptr->home ? ft_memdel((void *)&ptr->home) : (0); + ptr->pwd ? ft_memdel((void *)&ptr->pwd) : (0); + ptr->trail ? ft_memdel((void *)&ptr->trail) : (0); + if (ptr->lst && ptr->lst->name) + c_clear_lst(ptr); + s->comp = NULL; + return (0); +} diff --git a/42sh/src/completion/c_files.c b/42sh/src/completion/c_files.c new file mode 100644 index 00000000..98046317 --- /dev/null +++ b/42sh/src/completion/c_files.c @@ -0,0 +1,63 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_files.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/09 13:31:21 by alao #+# #+# */ +/* Updated: 2017/01/11 14:06:50 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** Clear the binary from c->rcmd ans save the result in c->match. Return the +** path part of it if exist or NULL. +*/ + +static char *c_slicer(t_comp *c) +{ + char *tmp; + char *rt; + int i; + + i = 0; + tmp = NULL; + rt = NULL; + while (c->rcmd[i] != ' ') + i++; + c->rcmd[i] == ' ' ? i++ : (0); + if (i == (int)ft_strlen(c->rcmd)) + return (NULL); + tmp = ft_strsub(c->rcmd, i, ft_strlen(c->rcmd) - i); + i = ft_strlen(tmp) - 1; + while (i > 0 && tmp[i] && tmp[i] != '/') + i--; + tmp[i] == '/' ? i++ : (0); + rt = ft_strsub(tmp, 0, i); + if (i <= (int)ft_strlen(tmp) - i + 1) + c->match = ft_strsub(tmp, i, ft_strlen(tmp) - i); + DG("From [%s] to path [%s] and match [%s]", tmp, rt, c->match); + tmp ? ft_memdel((void *)&tmp) : (0); + return (rt); +} + +/* +** Files searching +*/ + +int c_seek_files(t_data *s, t_comp *c) +{ + DG("Seek Files"); + (void)s; + char *path; + + path = c_slicer(c); + c->cpath = path_solver(c, path, NULL); + DG("Solved as [%s]", c->cpath); + path ? ft_memdel((void *)&path) : (0); + c_parser(c, c->cpath, c->match); + return (0); +} diff --git a/42sh/src/completion/c_init.c b/42sh/src/completion/c_init.c new file mode 100644 index 00000000..36247c0c --- /dev/null +++ b/42sh/src/completion/c_init.c @@ -0,0 +1,64 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_init.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/09 11:21:16 by alao #+# #+# */ +/* Updated: 2017/02/03 12:28:49 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** Trim if there's many commands in a raw separed with a semi colon. +*/ + +static char *c_trimmer(char *cmd, int st, int nd) +{ + char *rt; + int len; + + rt = NULL; + len = ft_strlen(cmd); + if (st == len) + st--; + while (st && cmd[st] && cmd[st] != ';') + st--; + cmd[st] == ';' ? st++ : (0); + while (nd < len && cmd[nd] && cmd[nd] != ';' && cmd[nd] != ' ') + nd++; + rt = ft_strsub(cmd, st, nd - st); + return (rt); +} + +/* +** Init the completion structure by populating the default value from the main +** structure data and call for the c_matching() function. +*/ + +void c_init(t_data *s, long int input) +{ + struct winsize win; + + if (!(s->comp = (t_comp *)malloc((sizeof(t_comp))))) + return ; + s->comp->rcmd = c_trimmer(s->line.input, s->line.pos, s->line.pos); + if (ft_strlen(s->line.input) > s->line.pos) + s->comp->trail = ft_strsub(s->line.input, s->line.pos, ft_strlen(s->line.input) - s->line.pos); + else + s->comp->trail = NULL; + s->comp->ircmd = s->line.pos; + s->comp->match = NULL; + s->comp->cpath = NULL; + s->comp->lst = NULL; + ioctl(0, TIOCGWINSZ, &win); + s->comp->win_x = win.ws_col; + s->comp->home = ft_strdup(ft_getenv(s->env, "HOME")); + s->comp->pwd = ft_strdup(ft_getenv(s->env, "PWD")); + s->comp->key = input; + s->comp->prompt = s->line.prompt_size; + c_matching(s, s->comp); +} diff --git a/42sh/src/completion/c_matching.c b/42sh/src/completion/c_matching.c new file mode 100644 index 00000000..43774657 --- /dev/null +++ b/42sh/src/completion/c_matching.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_matching.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/10/15 13:27:14 by alao #+# #+# */ +/* Updated: 2017/02/03 12:06:23 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** Start the parsing for the autocompletion. If a space is found in the command +** it will call c_seek_files() function. If not, it assume it will be a binary +** so the function c_seek_binary() is called instead. +** Once that done, the printing function should occur. +** NOT YET IMPLEMENTED +*/ + +int c_matching(t_data *s, t_comp *c) +{ + if (!(ft_strchr(c->rcmd, ' '))) + c_seek_binary(s, c); + else + c_seek_files(s, c); + if (c->lst) +// { + c_sizing(c); +// DG("Seek Binary end [%d]", c->lst->prev->id); +// test(c); +// } +// else +// DG("Seek Binary end No result"); + return (0); +} diff --git a/42sh/src/completion/c_parser.c b/42sh/src/completion/c_parser.c new file mode 100644 index 00000000..cf73b457 --- /dev/null +++ b/42sh/src/completion/c_parser.c @@ -0,0 +1,81 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_parser.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/09 13:52:07 by alao #+# #+# */ +/* Updated: 2017/01/31 18:34:54 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** Add the matching element to the list +*/ + +static void c_add_to_lst(t_comp *c, t_clst *node) +{ + DG("PARSER: Adding node [%s]", node->name); + if (c->lst == NULL) + { + c->lst = node; + node->next = node; + node->prev = node; + node->cursor = 1; + node->id = 1; + } + else + { + node->id = c->lst->prev->id + 1; + c->lst->prev->next = node; + node->prev = c->lst->prev; + node->next = c->lst; + c->lst->prev = node; + } +} + +/* +** Determine if the element should be added to the list. If so, the node is +** created and the function above is called to add it. +*/ + +static int c_storing(t_comp *c, char *value, unsigned char type) +{ + t_clst *tmp; + + if (ft_strncmp(".", value, 1) == 0 || ft_strncmp("..", value, 2) == 0) + return (0); + if (c->match && ft_strnequ(c->match, value, ft_strlen(c->match)) != 1) + return (0); + if (c->match && ft_strequ(c->match, value)) + return (0); + if (!(tmp = (t_clst *)malloc(sizeof(t_clst)))) + return (-1); + tmp->name = ft_strdup(value); + tmp->len = ft_strlen(tmp->name); + tmp->type = (int)type; + tmp->cursor = 0; + c_add_to_lst(c, tmp); + return (0); +} + +/* +** Cycle through the path specified. +*/ + +int c_parser(t_comp *c, char *path, char *name) +{ + DG("PARSER: Search for [%s] in [%s]", name, path); + DIR *rep; + struct dirent *dirc; + + if (!(rep = opendir(path))) + return (-1); + while ((dirc = readdir(rep))) + c_storing(c, dirc->d_name, dirc->d_type); + closedir(rep); + return (0); +} diff --git a/42sh/src/completion/c_pathsolver.c b/42sh/src/completion/c_pathsolver.c new file mode 100644 index 00000000..adbf7c8f --- /dev/null +++ b/42sh/src/completion/c_pathsolver.c @@ -0,0 +1,173 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_pathsolver.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/10/25 18:21:54 by alao #+# #+# */ +/* Updated: 2017/01/11 14:14:09 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +void ft_sstrdelete(char **s) +{ + int i; + + i = 0; + while (s[i]) + { + ft_memdel((void *)&s[i++]); + } + ft_memdel((void *)&s); +} + +int ft_sstrlen(char **s) +{ + int i; + + i = 0; + while (s[i]) + i++; + return (i); +} + +char *ft_sstrtostr(char **s, char *sep) +{ + char *tmp; + char *tmp2; + int i; + + tmp = NULL; + tmp2 = NULL; + tmp = ft_strjoin(s[0], sep); + i = 1; + while (s[i]) + { + tmp2 = ft_strjoin(tmp, s[i]); + ft_memdel((void *)&tmp); + tmp = ft_strjoin(tmp2, sep); + ft_memdel((void *)&tmp2); + i++; + } + return (tmp); +} + +static char *tilde(t_comp *c, char *cmd) +{ + char *t_home; + char *t_sub; + char *rt; + int l_cmd; + + t_home = NULL; + t_sub = NULL; + rt = NULL; + l_cmd = ft_strlen(cmd); + if ((t_home = ft_strdup(c->home))) + if ((t_sub = ft_strsub(cmd, 1, (l_cmd - 1)))) + rt = ft_strjoin(t_home, t_sub); + t_home ? ft_memdel((void *)&t_home) : (0); + t_sub ? ft_memdel((void *)&t_sub) : (0); + return (rt); +} + +/* +** BUILTINS: Advanced dots purge if the first is not enough. Remove a /path/ +** from the raw command if .. is found. Delete the . . +*/ + +static char *dots_purge(char **scwd, char **scmd, int i) +{ + char *tmp; + char *rt; + int j; + + tmp = NULL; + rt = NULL; + ((j = ft_sstrlen(scwd)) > 0) ? (j--) : (0); + (!(scwd[1])) ? (scwd[0] = ft_strdup("/")) : (0); + while (scmd[i] && scwd[0]) + { + if (!(ft_strcmp(scmd[i], ".")) || !(ft_strcmp(scmd[i], scwd[j])) || + !(ft_strcmp(scmd[i], ".."))) + (!(ft_strcmp(scmd[i], ".."))) ? (ft_memdel((void *)&scwd[j])) : (0); + else if ((scwd[j + 1] = ft_strdup(scmd[i]))) + scwd[j + 2] = NULL; + i++; + ((j = ft_sstrlen(scwd)) > 0) ? (j--) : (0); + (!(scwd[0])) ? (scwd[0] = ft_strdup("/")) : (0); + } + rt = ft_sstrtostr(scwd, "/"); + tmp = ft_strjoin("/", rt); + tmp ? ft_memdel((void *)&rt) : (0); + rt = ft_strsub(tmp, 0, (ft_strlen(tmp) - 1)); + tmp ? ft_memdel((void *)&tmp) : (0); + return (rt); +} + +/* +** BUILTINS: Solve the dots pattern in the path +*/ + +static char *dots(char *cmd, char *cwd, int i) +{ + char *tmp; + char **scmd; + char **scwd; + + tmp = NULL; + if (!(ft_strcmp(cmd, ".")) || !(ft_strcmp(cmd, "./"))) + return (ft_strdup(cwd)); + if (!ft_strcmp(cmd, "..") && cwd && (i = ft_strlen(cwd))) + { + while (cwd[i] != '/') + i--; + (i) ? (tmp = ft_strncpy(ft_strnew(i), cwd, i)) : (0); + } + if (!tmp && cwd && (i = ft_strlen(cwd))) + { + scmd = ft_strsplit(cmd, '/'); + scwd = ft_strsplit(cwd, '/'); + tmp = dots_purge(scwd, scmd, 0); + scmd ? ft_sstrdelete(scmd) : (0); + scwd ? ft_sstrdelete(scwd) : (0); + } + if (!cwd) + tmp = ft_strdup("/"); + return (tmp); +} + +/* +** BUILTINS: Determine the type of commands and redistribute it +*/ + +char *path_solver(t_comp *c, char *cmd, char *cwd) +{ + char *dir; + char *tmp; + char *ncmd; + + dir = NULL; + tmp = NULL; + ncmd = cmd ? ft_strtrim(cmd) : NULL; + cwd = getcwd(cwd, 512); + !cwd ? cwd = ft_strdup(c->pwd) : (0); + if (!ncmd || (*ncmd != '.' && *ncmd != '~' && *ncmd != '/')) + { + tmp = ft_strjoin(cwd, "/"); + dir = ncmd ? ft_strjoin(tmp, ncmd) : ft_strdup(cwd); + tmp ? ft_memdel((void *)&tmp) : (0); + } + else + { + (*ncmd == '~') ? (dir = tilde(c, ncmd)) : (0); + (*ncmd == '.') ? (dir = dots(ncmd, cwd, 0)) : (0); + (*ncmd == '/') ? (dir = ft_strdup(ncmd)) : (0); + } + cwd ? ft_memdel((void *)&cwd) : (0); + ncmd ? ft_memdel((void *)&ncmd) : (0); + return (dir); +} diff --git a/42sh/src/completion/c_printer.c b/42sh/src/completion/c_printer.c new file mode 100644 index 00000000..9162bf7f --- /dev/null +++ b/42sh/src/completion/c_printer.c @@ -0,0 +1,93 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_printer.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/10 12:55:39 by alao #+# #+# */ +/* Updated: 2017/01/19 15:49:34 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** AUTOCOMPLETION: Print the name with or without an underline and colored upon +** file type as follow: +** - (4) Folder: Red "\e[1;31m" +** - (10) Symlink: Cyan "\e[96m" +*/ + +static void c_printer_node(t_clst *lst) +{ + DG("File [%s] type [%d]", lst->name, (int)lst->type); + lst->cursor ? ft_putstr(tgetstr("us", NULL)) : (0); + lst->cursor ? (ft_putstr_fd("\033[31m", 2)) : (0); + lst->type == 4 ? ft_putstr_fd("\e[1;31m", 2) : (0); + lst->type == 10 ? ft_putstr_fd("\e[1;96m", 2) : (0); + ft_putstr_fd(lst->name, 2); + ft_putstr_fd("\033[00m", 2); + if (lst->type == 4) + ft_putstr_fd("/", 2); + else if (lst->type == 10) + ft_putstr_fd("@", 2); + else + ft_putstr_fd(" ", 2); + lst->cursor ? ft_putstr(tgetstr("ue", NULL)) : (0); +} + +/* +** AUTOCOMPLETION: Cycle through the line to print on the same line the +** number of time to fill it PER LINE and add 2 space after the print to +** accomodate the trailing / for folder and a space in between. +*/ + +static int c_printer_line(t_comp *c, t_clst *lst, int loop, int i) +{ + t_clst *ptr; + + ptr = lst->next; + c_printer_node(lst); + while (loop) + { + i = 1; + while (i++ < (c->c_line)) + { + if (ptr == c->lst) + return (0); + ptr = ptr->next; + } + if (ptr != c->lst) + { + i = lst->len; + while (i++ < (c->c_sx + 1)) + ft_putstr(" "); + c_printer_node(ptr); + lst = ptr; + ptr = ptr->next; + } + loop--; + } + return (0); +} + +/* +** AUTOCOMPLETION: Control the number of time it cycle for LINE +*/ + +void c_printer(t_comp *c) +{ + t_clst *ptr; + int loop; + + ptr = c->lst; + loop = c->c_line; + while (loop) + { + c_printer_line(c, ptr, c->c_pline, 1); + loop > 1 ? ft_putstr(tgetstr("do", NULL)) : (0); + ptr = ptr->next; + loop--; + } +} diff --git a/42sh/src/completion/c_single.c b/42sh/src/completion/c_single.c new file mode 100644 index 00000000..d10227d8 --- /dev/null +++ b/42sh/src/completion/c_single.c @@ -0,0 +1,40 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_single.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/31 14:01:22 by alao #+# #+# */ +/* Updated: 2017/01/31 18:57:59 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + + +int c_single(t_comp *c) +{ + DG("SINGLE"); + DG("Containing [%s] match [%s] Candidat [%s]", c->rcmd, c->match, c->lst->name); + char *tmp; + char *rt; + int new_pos; + + tmp = NULL; + rt = NULL; + new_pos = c->ircmd + (ft_strlen(c->lst->name) - ft_strlen(c->match)) + 1; + tmp = ft_strsub(c->rcmd, 0, ft_strlen(c->rcmd) - ft_strlen(c->match)); + rt = ft_strjoin(tmp, c->lst->name); + tmp ? ft_memdel((void *)&tmp) : (0); + if (c->trail) + { + tmp = ft_strjoin(rt, " "); + rt ? ft_memdel((void *)&rt) : (0); + rt = ft_strjoin(tmp, c->trail); + } + DG("Resulting RCMD as [%s] with new position [%d] from [%d]", rt, new_pos, c->ircmd); + rt ? ft_memdel((void *)&rt) : (0); + c_clear(data_singleton()); + return (0); +} diff --git a/42sh/src/completion/c_sizing.c b/42sh/src/completion/c_sizing.c new file mode 100644 index 00000000..76e616dc --- /dev/null +++ b/42sh/src/completion/c_sizing.c @@ -0,0 +1,65 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_sizing.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/10 08:50:26 by alao #+# #+# */ +/* Updated: 2017/01/19 15:45:35 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** Get the max length from the list +*/ + +static void c_max_length(t_comp *s) +{ + t_clst *tmp; + int max_x; + int max_y; + + if (s->lst && s->lst->name && s->lst == s->lst->next) + { + s->c_sx = s->lst->len; + s->c_sy = 1; + } + else if (s->lst && s->lst->name) + { + max_x = s->lst->len; + max_y = 1; + tmp = s->lst->next; + while (tmp != s->lst) + { + (max_x < tmp->len) ? (max_x = tmp->len) : (0); + max_y++; + tmp = tmp->next; + } + s->c_sx = max_x; + s->c_sy = max_y; + } +} + +/* +** Determine the number of column and row is possible using the list size +** by adding the length of the name plus 2 for the potential trailing / for +** folder. +*/ + +int c_sizing(t_comp *c) +{ + c->lst && c->lst->name ? c_max_length(c) : 0; + c->c_pline = c->win_x / (c->c_sx + 2); + c->c_line = 0; + while ((c->c_line * c->c_pline) < c->c_sy) + c->c_line++; + if (c->win_x < c->c_sx) + { + c->c_pline = 0; + c->c_line = 0; + } + return (0); +} diff --git a/42sh/src/completion/c_terminal.c b/42sh/src/completion/c_terminal.c new file mode 100644 index 00000000..f8c42c89 --- /dev/null +++ b/42sh/src/completion/c_terminal.c @@ -0,0 +1,65 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_terminal.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/10/11 10:44:40 by alao #+# #+# */ +/* Updated: 2017/01/31 13:24:50 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** AUTOCOMPLETION: Move the terminal up by the number of line needed and +** move it back up to the original position +*/ + +void c_term_mv_back(t_comp *c) +{ + DG("Terminal back up"); + int i; + int lcmd; + + i = 0; + while (i != (c->c_line)) + { + ft_putstr(tgetstr("up", NULL)); + i++; + } + ft_putstr(tgetstr("cr", NULL)); + i = 0; + lcmd = 0; + c->rcmd ? lcmd += (int)ft_strlen(c->rcmd) + c->prompt + 1 : 0; + while (i < lcmd) + { + ft_putstr(tgetstr("nd", NULL)); + i++; + } +} + +/* +** AUTOCOMPLETION: Move the terminal down by the number of line needed and +** move it back up to the first line under the prompt +*/ + +void c_term_mv_down(t_comp *c) +{ + DG("Terminal down"); + int i; + + i = 0; + while (i < c->c_line) + { + ft_putstr(tgetstr("do", NULL)); + i++; + } + i = 0; + while (i != (c->c_line - 1)) + { + ft_putstr(tgetstr("up", NULL)); + i++; + } +} diff --git a/42sh/src/completion/completion.c b/42sh/src/completion/completion.c new file mode 100644 index 00000000..87f93f32 --- /dev/null +++ b/42sh/src/completion/completion.c @@ -0,0 +1,104 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* completion.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/09/20 14:50:33 by alao #+# #+# */ +/* Updated: 2017/02/03 12:30:54 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** DEBUG FUNCTION +*/ + +int test(t_comp *c) +{ + DG("\tAutocompletion dump"); + int i = 1; + t_clst *tmp; + + if (!(c->lst)) + { + DG("Empty list"); + return (0); + } + if (c->lst && c->lst->cursor) + DG("Node [x] ID [%d] [%s]", c->lst->id, c->lst->name); + else + DG("Node [ ] ID [%d] [%s]", c->lst->id, c->lst->name); + if (c->lst->prev != c->lst) + { + tmp = c->lst->next; + while (tmp != c->lst) + { + if (tmp->cursor) + DG("Node [x] ID [%d] [%s]", tmp->id, tmp->name); + else + DG("Node [ ] ID [%d] [%s]", tmp->id, tmp->name); + i++; + tmp = tmp->next; + } + } + DG("List configuration as:"); + DG("Max value: Length (X) %d Number (Y) %d", c->c_sx, c->c_sy); + DG("Translated to [%d] Lines and [%d] Column", c->c_line, c->c_pline); + return (0); +} + +static void c_next_item(t_comp *c) +{ + t_clst *ptr; + + ptr = c->lst; + while (!ptr->cursor) + ptr = ptr->next; + ptr->cursor = 0; + ptr->next->cursor = 1; +} + +int completion(long int input) +{ + t_data *s; + + s = data_singleton(); + + DG("\n\n\t\tAutocompletion input key [%d]\n", (int)input); + if (s->comp == NULL) + { + if (s->line.pos == 0) + return (0); + if (s->line.input[s->line.pos] != ' ' && s->line.input[s->line.pos] != '\0') + return (0); + c_init(s, input); + } + else + { + if (input == 9) + c_next_item(s->comp); + else + DG("Place holder to clear or put the selection in rcmd"); + } + test(s->comp); + if (s->comp && s->comp->lst == NULL) + { + DG("Empty list, flushing autocompletion"); + c_clear(s); + } + else if (s->comp && s->comp->lst == s->comp->lst->next) + { + c_single(s->comp); + return (1); + } + else if (s->comp && s->comp->lst != s->comp->lst->next ) + { + c_term_mv_down(s->comp); + c_printer(s->comp); + c_term_mv_back(s->comp); + } + return (0); +} diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index 2ecde44c..2edec968 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 18:27:07 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 12:23:44 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -56,6 +56,8 @@ char *ft_read_stdin(void) read(0, &ret, sizeof(int)); while (g_key[j].value && g_key[j].value != ret) ++j; + if (data_singleton()->comp || ret == 9) + completion(ret); if (g_key[j].value) g_key[j].f(); else if (ft_isprint(ret)) From 985745f881edb8bff6e5795b60d510685f430f4f Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 3 Feb 2017 13:21:06 +0100 Subject: [PATCH 02/98] starting to fixi redirections --- 42sh/Makefile | 1 + 42sh/includes/parser.h | 3 ++- 42sh/src/exec/exec_great.c | 2 +- 42sh/src/exec/ft_exec.c | 2 +- 42sh/src/main/main.c | 2 +- 42sh/src/parser/ft_parse.c | 12 +++--------- 42sh/src/parser/parse_dgreat.c | 2 +- 42sh/src/parser/parse_great.c | 2 +- 42sh/src/parser/parse_redir.c | 34 ++++++++++++++++++++++++++++++++++ 9 files changed, 45 insertions(+), 15 deletions(-) create mode 100644 42sh/src/parser/parse_redir.c diff --git a/42sh/Makefile b/42sh/Makefile index 8d286750..8a4eda07 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -187,6 +187,7 @@ parser/parse_great.c\ parser/parse_greatand.c\ parser/parse_less.c\ parser/parse_lessand.c\ +parser/parse_redir.c\ parser/parse_separator.c\ parser/parse_subshell.c\ parser/parse_word.c diff --git a/42sh/includes/parser.h b/42sh/includes/parser.h index 3a6f5392..0bbc3553 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/02/02 14:03:15 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 19:03:31 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -60,6 +60,7 @@ extern t_parser g_parser[]; int ft_parse(t_btree **ast, t_list **token); int parse_separator(t_btree **ast, t_list **start, t_list **lst); +int parse_redir(t_btree **ast, t_list **start, t_list **lst); int parse_less(t_btree **ast, t_list **start, t_list **lst); int parse_great(t_btree **ast, t_list **start, t_list **lst); int parse_dless(t_btree **ast, t_list **start, t_list **lst); diff --git a/42sh/src/exec/exec_great.c b/42sh/src/exec/exec_great.c index 6b410e7b..fa307617 100644 --- a/42sh/src/exec/exec_great.c +++ b/42sh/src/exec/exec_great.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 17:27:51 by jhalford #+# #+# */ -/* Updated: 2016/12/13 17:14:19 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 19:06:38 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/ft_exec.c b/42sh/src/exec/ft_exec.c index e257cd9e..1b5f4c59 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 15:04:50 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 19:06:47 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 8fb8d026..931f4a63 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:45:17 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 18:57:56 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/ft_parse.c b/42sh/src/parser/ft_parse.c index beb0cfaa..fbcb39a2 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/02/02 15:45:33 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 19:02:32 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,12 +18,7 @@ t_parser g_parser[] = {TK_AND_IF | TK_OR_IF, &parse_separator}, {TK_AMP, &parse_separator}, {TK_PIPE, &parse_separator}, - {TK_LESS, &parse_less}, - {TK_GREAT, &parse_great}, - {TK_DLESS, &parse_dless}, - {TK_DGREAT, &parse_dgreat}, - {TK_LESSAND, &parse_lessand}, - {TK_GREATAND, &parse_greatand}, + {TK_REDIR, &parse_redir}, {TK_SUBSHELL, &parse_subshell}, {TK_WORD, &parse_word}, {0, 0}, @@ -48,8 +43,7 @@ int ft_parse(t_btree **ast, t_list **start) if ((lst = ft_lst_find(*start, &g_parser[i].type, &token_cmp_type))) { if (g_parser[i].f) - (*g_parser[i].f)(ast, start, &lst); - return (0); + return ((*g_parser[i].f)(ast, start, &lst)); } i++; } diff --git a/42sh/src/parser/parse_dgreat.c b/42sh/src/parser/parse_dgreat.c index 15d7b579..dcfe9a5d 100644 --- a/42sh/src/parser/parse_dgreat.c +++ b/42sh/src/parser/parse_dgreat.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/01/10 14:44:12 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 19:02:52 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/parse_great.c b/42sh/src/parser/parse_great.c index 490965dc..f81c0de4 100644 --- a/42sh/src/parser/parse_great.c +++ b/42sh/src/parser/parse_great.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/01/10 14:45:50 by jhalford ### ########.fr */ +/* Updated: 2017/02/02 19:05:52 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/parse_redir.c b/42sh/src/parser/parse_redir.c new file mode 100644 index 00000000..e937b1a3 --- /dev/null +++ b/42sh/src/parser/parse_redir.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* parse_redir.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/02 18:58:27 by jhalford #+# #+# */ +/* Updated: 2017/02/02 19:04:32 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "parser.h" + +int parse_redir(t_btree **ast, t_list **start, t_list **lst) +{ + t_token *tok; + + tok = (*lst)->content; + if (tok->type == TK_LESS) + return (parse_less(ast, start, lst)); + else if (tok->type == TK_GREAT) + return (parse_great(ast, start, lst)); + else if (tok->type == TK_DLESS) + return (parse_dless(ast, start, lst)); + else if (tok->type == TK_DGREAT) + return (parse_dgreat(ast, start, lst)); + else if (tok->type == TK_LESSAND) + return (parse_lessand(ast, start, lst)); + else if (tok->type == TK_GREATAND) + return (parse_greatand(ast, start, lst)); + else + return (-42); +} From 62be4bc4707158fe3a0e6a8a140722e2a8c810c6 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 3 Feb 2017 14:11:34 +0100 Subject: [PATCH 03/98] new architecture for redirection inside of fork(), chained redirects dont work properly yet --- 42sh/Makefile | 5 +- 42sh/includes/exec.h | 9 ++- 42sh/includes/lexer.h | 2 +- 42sh/includes/parser.h | 13 +---- 42sh/includes/types.h | 32 ++++++----- 42sh/src/exec/exec_command.c | 3 +- 42sh/src/exec/exec_dgreat.c | 27 --------- 42sh/src/exec/exec_less.c | 30 ---------- 42sh/src/exec/{exec_great.c => exec_redir.c} | 14 ++--- 42sh/src/exec/ft_exec.c | 6 +- 42sh/src/exec/process_do_redirection.c | 58 ++++++++++++++++++++ 42sh/src/exec/process_redirect.c | 10 +++- 42sh/src/job-control/process_free.c | 3 +- 42sh/src/lexer/ft_tokenize.c | 2 +- 42sh/src/main/data_init.c | 3 +- 42sh/src/parser/ft_parse.c | 2 +- 42sh/src/parser/parse_great.c | 2 +- 42sh/src/parser/parse_greatand.c | 3 +- 42sh/src/parser/parse_lessand.c | 3 +- 42sh/src/parser/parse_redir.c | 2 +- 20 files changed, 118 insertions(+), 111 deletions(-) delete mode 100644 42sh/src/exec/exec_dgreat.c delete mode 100644 42sh/src/exec/exec_less.c rename 42sh/src/exec/{exec_great.c => exec_redir.c} (72%) create mode 100644 42sh/src/exec/process_do_redirection.c diff --git a/42sh/Makefile b/42sh/Makefile index 8a4eda07..48bc5be4 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -44,15 +44,14 @@ exec/ast_free.c\ exec/exec_ampersand.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_redir.c\ exec/exec_semi.c\ exec/ft_exec.c\ exec/ft_findexec.c\ exec/launch_process.c\ +exec/process_do_redirection.c\ exec/process_redirect.c\ exec/process_reset.c\ exec/process_setexec.c\ diff --git a/42sh/includes/exec.h b/42sh/includes/exec.h index aaee3466..0616b685 100644 --- a/42sh/includes/exec.h +++ b/42sh/includes/exec.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/27 20:29:56 by jhalford #+# #+# */ -/* Updated: 2017/01/12 13:18:27 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 14:01:10 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -47,6 +47,7 @@ struct s_process pid_t pid; int fdin; int fdout; + t_list *redirs; int toclose; int status; t_flag attributes; @@ -77,16 +78,14 @@ int exec_ampersand(t_btree **ast); int exec_or_if(t_btree **ast); int exec_and_if(t_btree **ast); int exec_pipe(t_btree **ast); - -int exec_less(t_btree **ast); -int exec_great(t_btree **ast); -int exec_dgreat(t_btree **ast); +int exec_redir(t_btree **ast); 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, pid_t pid); int process_redirect(t_process *p); +void process_do_redirection(t_redir *redir); void process_setsig(void); void process_free(void *content, size_t content_size); void process_reset(void); diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 0b4f3424..a3508bc6 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:36:09 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 13:25:50 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/includes/parser.h b/42sh/includes/parser.h index 0bbc3553..f5eae463 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/02/02 19:03:31 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 14:01:51 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,14 +15,6 @@ # 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; -typedef union u_word t_word; -typedef long long t_type; - struct s_parser { t_type type; @@ -37,9 +29,10 @@ union u_word struct s_redir { + t_flag type; int n; - int close; t_word word; + int close; }; union u_astdata diff --git a/42sh/includes/types.h b/42sh/includes/types.h index af8071d0..c2aea9ff 100644 --- a/42sh/includes/types.h +++ b/42sh/includes/types.h @@ -6,29 +6,33 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 17:11:48 by jhalford #+# #+# */ -/* Updated: 2017/01/10 12:45:35 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 14:02:56 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef TYPES_H # define TYPES_H -typedef long long t_type; -typedef struct s_line t_line; -typedef struct s_comp t_comp; -typedef struct s_exec t_exec; -typedef struct s_jobc t_jobc; -typedef enum e_mode t_mode; +typedef struct s_data t_data; -typedef struct s_data t_data; -typedef enum e_qstate t_qstate; - -typedef struct s_job t_job; -typedef struct s_jobc t_jobc; -typedef struct s_execmap t_execmap; -typedef struct s_process t_process; typedef long long t_type; typedef long long t_flag; +typedef struct s_line t_line; +typedef struct s_comp t_comp; +typedef struct s_exec t_exec; +typedef struct s_jobc t_jobc; +typedef enum e_mode t_mode; + +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; +typedef union u_word t_word; + +typedef struct s_job t_job; +typedef struct s_execmap t_execmap; +typedef struct s_process t_process; typedef int (t_execf)(const char *path, char *const argv[], char *const envp[]); t_data *data_singleton(); diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index e0f5e71b..b9db339a 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 15:45:32 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 13:45:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -66,6 +66,7 @@ int exec_command(t_btree **ast) p->av = NULL; p->pid = 0; p->attributes &= ~(PROCESS_STATE_MASK | PROCESS_TYPE_MASK); + p->redirs = NULL; btree_delone(ast, &ast_free); return (0); } diff --git a/42sh/src/exec/exec_dgreat.c b/42sh/src/exec/exec_dgreat.c deleted file mode 100644 index 9897f54d..00000000 --- a/42sh/src/exec/exec_dgreat.c +++ /dev/null @@ -1,27 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* exec_dgreat.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/11/28 18:15:13 by jhalford #+# #+# */ -/* Updated: 2016/12/13 17:13:58 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "exec.h" - -int exec_dgreat(t_btree **ast) -{ - t_astnode *node; - int fd; - - node = (*ast)->item; - fd = open(node->data.redir.word.word, O_WRONLY | O_APPEND | O_CREAT, 0644); - data_singleton()->exec.process.fdout = fd; - ft_exec(&(*ast)->left); - data_singleton()->exec.process.fdout = STDOUT; - btree_delone(ast, &ast_free); - return (0); -} diff --git a/42sh/src/exec/exec_less.c b/42sh/src/exec/exec_less.c deleted file mode 100644 index f27be538..00000000 --- a/42sh/src/exec/exec_less.c +++ /dev/null @@ -1,30 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* exec_less.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/11/14 17:27:08 by jhalford #+# #+# */ -/* Updated: 2016/12/13 17:14:46 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "exec.h" - -int exec_less(t_btree **ast) -{ - t_astnode *node; - int fd; - - node = (*ast)->item; - fd = open(node->data.redir.word.word, O_RDONLY); - data_singleton()->exec.process.fdin = fd; - /* ft_strappend(&data->exec.process.command, "<"); */ - /* ft_strappend(&data->exec.process.command, node->data.redir.word.word); */ - ft_exec(&(*ast)->left); - data_singleton()->exec.process.fdin = STDIN; - /* data->exec.process.command = NULL; */ - btree_delone(ast, &ast_free); - return (0); -} diff --git a/42sh/src/exec/exec_great.c b/42sh/src/exec/exec_redir.c similarity index 72% rename from 42sh/src/exec/exec_great.c rename to 42sh/src/exec/exec_redir.c index fa307617..d7becf4b 100644 --- a/42sh/src/exec/exec_great.c +++ b/42sh/src/exec/exec_redir.c @@ -1,27 +1,27 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* exec_great.c :+: :+: :+: */ +/* exec_redir.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 17:27:51 by jhalford #+# #+# */ -/* Updated: 2017/02/02 19:06:38 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 13:58:38 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "exec.h" -int exec_great(t_btree **ast) +int exec_redir(t_btree **ast) { t_astnode *node; - int fd; + t_process *p; + p = &data_singleton()->exec.process; node = (*ast)->item; - fd = open(node->data.redir.word.word, O_WRONLY | O_TRUNC | O_CREAT, 0644); - data_singleton()->exec.process.fdout = fd; + node->data.redir.type = node->type; + ft_lsteadd(&p->redirs, ft_lstnew(&node->data.redir,sizeof(node->data.redir))); ft_exec(&(*ast)->left); - data_singleton()->exec.process.fdout = STDOUT; btree_delone(ast, &ast_free); return (0); } diff --git a/42sh/src/exec/ft_exec.c b/42sh/src/exec/ft_exec.c index 1b5f4c59..6bf0e751 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 19:06:47 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 13:45:05 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,9 +19,7 @@ t_execmap g_execmap[] = {TK_SEMI, &exec_semi}, {TK_AMP, &exec_ampersand}, {TK_PIPE, &exec_pipe}, - {TK_LESS, &exec_less}, - {TK_GREAT, &exec_great}, - {TK_DGREAT, &exec_dgreat}, + {TK_REDIR, &exec_redir}, {TK_COMMAND | TK_SUBSHELL, &exec_command}, {0, 0}, }; diff --git a/42sh/src/exec/process_do_redirection.c b/42sh/src/exec/process_do_redirection.c new file mode 100644 index 00000000..b0ce8954 --- /dev/null +++ b/42sh/src/exec/process_do_redirection.c @@ -0,0 +1,58 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* process_do_redirection.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/03 13:46:40 by jhalford #+# #+# */ +/* Updated: 2017/02/03 14:10:01 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void process_do_redirection(t_redir *redir) +{ + int fdin; + int fdout; + + if (redir->type & TK_GREAT) + { + fdin = redir->n; + fdout = open(redir->word.word, O_WRONLY | O_TRUNC | O_CREAT, 0644); + DG("opened [%s] in fd[%i]", redir->word.word, fdout); + } + else if (redir->type & TK_DGREAT) + { + fdin = redir->n; + fdout = open(redir->word.word, O_WRONLY | O_APPEND | O_CREAT, 0644); + } + else if (redir->type & TK_LESS) + { + fdin = open(redir->word.word, O_WRONLY | O_TRUNC | O_CREAT, 0644); + fdout = redir->n; + } + else if (redir->type & (TK_LESSAND | TK_GREATAND)) + { + if (redir->close) + { + DG("gonna close(%i)", redir->n); + close(redir->n); + return ; + } + else + { + fdin = redir->type & TK_LESSAND ? redir->word.fd : redir->n; + fdout = redir->type & TK_LESSAND ? redir->n : redir->word.fd; + } + } + else + { + DG("redir->type not well set !"); + return ; + } + DG("gonna dup2(%i,%i)", fdout, fdin); + dup2(fdout, fdin); + close(fdout); +} diff --git a/42sh/src/exec/process_redirect.c b/42sh/src/exec/process_redirect.c index 77830bb0..4f3396ca 100644 --- a/42sh/src/exec/process_redirect.c +++ b/42sh/src/exec/process_redirect.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/29 16:04:18 by jhalford #+# #+# */ -/* Updated: 2017/01/10 14:31:15 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 13:46:30 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,6 +14,14 @@ int process_redirect(t_process *p) { + t_list *redirs; + + redirs = p->redirs; + while (redirs) + { + process_do_redirection(redirs->content); + redirs = redirs->next; + } if (p->toclose != STDIN) close(p->toclose); if (p->fdin != STDIN) diff --git a/42sh/src/job-control/process_free.c b/42sh/src/job-control/process_free.c index f0f77c0a..ce23bf71 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 15:45:25 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 13:59:25 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,5 +20,6 @@ void process_free(void *content, size_t content_size) p = content; ft_strdel(&p->path); ft_sstrfree(p->av); + ft_lstdel(&p->redirs, ft_lst_cfree); free(p); } diff --git a/42sh/src/lexer/ft_tokenize.c b/42sh/src/lexer/ft_tokenize.c index a2334864..cfdfe43d 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 15:34:45 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 13:26:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/data_init.c b/42sh/src/main/data_init.c index 5a0791ae..5b9a0fd9 100644 --- a/42sh/src/main/data_init.c +++ b/42sh/src/main/data_init.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 19:26:32 by jhalford #+# #+# */ -/* Updated: 2017/01/19 16:26:35 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 13:44:30 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -29,6 +29,7 @@ int data_init(void) data->exec.process.fdout = STDOUT; data->exec.process.pid = 0; data->exec.process.attributes = PROCESS_PIPESTART | PROCESS_PIPEEND; + data->exec.process.redirs = NULL; data->exec.aol_status = NULL; data->exec.aol_search = 0; diff --git a/42sh/src/parser/ft_parse.c b/42sh/src/parser/ft_parse.c index fbcb39a2..ea512479 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/02/02 19:02:32 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 13:43:00 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/parse_great.c b/42sh/src/parser/parse_great.c index f81c0de4..dffaf1a7 100644 --- a/42sh/src/parser/parse_great.c +++ b/42sh/src/parser/parse_great.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/02/02 19:05:52 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 14:07:03 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/parse_greatand.c b/42sh/src/parser/parse_greatand.c index b4d6f657..7751fb83 100644 --- a/42sh/src/parser/parse_greatand.c +++ b/42sh/src/parser/parse_greatand.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2016/12/01 16:37:58 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 14:09:50 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,6 +22,7 @@ int parse_greatand(t_btree **ast, t_list **start, t_list **lst) node->type = TK_GREATAND; tok = (*lst)->content; and = ft_strchr(tok->data, '&'); + node->data.redir.n = *tok->data == '>' ? 1 : ft_atoi(tok->data); node->data.redir.word.fd = ft_atoi(and + 1); node->data.redir.close = tok->data[ft_strlen(tok->data) - 1] == '-' ? 1 : 0; diff --git a/42sh/src/parser/parse_lessand.c b/42sh/src/parser/parse_lessand.c index 8f5b0b9b..2a047610 100644 --- a/42sh/src/parser/parse_lessand.c +++ b/42sh/src/parser/parse_lessand.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2016/12/01 16:37:54 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 14:07:55 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,6 +22,7 @@ int parse_lessand(t_btree **ast, t_list **start, t_list **lst) node->type = TK_LESSAND; tok = (*lst)->content; and = ft_strchr(tok->data, '&'); + node->data.redir.n = *tok->data == '<' ? 1 : ft_atoi(tok->data); node->data.redir.word.fd = ft_atoi(and + 1); node->data.redir.close = tok->data[ft_strlen(tok->data) - 1] == '-' ? 1 : 0; diff --git a/42sh/src/parser/parse_redir.c b/42sh/src/parser/parse_redir.c index e937b1a3..95625fd0 100644 --- a/42sh/src/parser/parse_redir.c +++ b/42sh/src/parser/parse_redir.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 18:58:27 by jhalford #+# #+# */ -/* Updated: 2017/02/02 19:04:32 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 13:58:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 9f15e9b4c75cae3311736f4df70e84e2c97888ca Mon Sep 17 00:00:00 2001 From: m600x Date: Fri, 3 Feb 2017 14:15:46 +0100 Subject: [PATCH 04/98] Content of data->line.input and data->line.pos updated --- 42sh/Makefile | 4 +- 42sh/includes/completion.h | 24 +++++-- 42sh/src/completion/c_binary.c | 3 +- 42sh/src/completion/c_files.c | 7 +- 42sh/src/completion/c_init.c | 6 +- 42sh/src/completion/c_matching.c | 9 +-- 42sh/src/completion/c_output.c | 58 +++++++++++++++++ 42sh/src/completion/c_parser.c | 10 +-- 42sh/src/completion/c_single.c | 40 ------------ 42sh/src/completion/c_terminal.c | 6 +- 42sh/src/completion/completion.c | 102 ++++++++++++++++++++---------- 42sh/src/line-editing/get_touch.c | 6 +- 12 files changed, 170 insertions(+), 105 deletions(-) create mode 100644 42sh/src/completion/c_output.c delete mode 100644 42sh/src/completion/c_single.c diff --git a/42sh/Makefile b/42sh/Makefile index bd707f4a..65248d51 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,7 +6,7 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/03 12:26:23 by alao ### ########.fr # +# Updated: 2017/02/03 13:53:09 by alao ### ########.fr # # # # **************************************************************************** # @@ -29,6 +29,7 @@ INC_DIR = includes/ OBJ_DIR = objs/ SRC_BASE = \ +completion/c_output.c\ completion/c_binary.c\ completion/c_clear.c\ completion/c_files.c\ @@ -37,7 +38,6 @@ completion/c_matching.c\ completion/c_parser.c\ completion/c_pathsolver.c\ completion/c_printer.c\ -completion/c_single.c\ completion/c_sizing.c\ completion/c_terminal.c\ completion/completion.c\ diff --git a/42sh/includes/completion.h b/42sh/includes/completion.h index 782e24d2..36902c8a 100644 --- a/42sh/includes/completion.h +++ b/42sh/includes/completion.h @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/02/18 11:13:04 by alao #+# #+# */ -/* Updated: 2017/02/03 12:23:05 by alao ### ########.fr */ +/* Updated: 2017/02/03 13:37:11 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -74,6 +74,10 @@ typedef struct s_comp t_clst *lst; } t_comp; +/* +** Main autocompletion engine +*/ + int completion(long int key); void c_init(t_data *s, long int input); int c_matching(t_data *s, t_comp *c); @@ -82,15 +86,27 @@ int c_seek_files(t_data *s, t_comp *c); int c_parser(t_comp *c, char *path, char *name); int c_sizing(t_comp *c); -int c_single(t_comp *c); +/* +** Output functions. +*/ + +int c_updater(t_comp *c); +int c_gtfo(t_comp *c, long int keypress); + +/* +** Terminal related function (moving and printing the list) +*/ void c_term_mv_down(t_comp *c); void c_term_mv_back(t_comp *c); void c_printer(t_comp *c); +/* +** Support functions +*/ + int c_clear(t_data *s); char *path_solver(t_comp *c, char *cmd, char *cwd); - -int test(t_comp *c); +int test(t_comp *c); #endif diff --git a/42sh/src/completion/c_binary.c b/42sh/src/completion/c_binary.c index fd46eb81..9aa4fb75 100644 --- a/42sh/src/completion/c_binary.c +++ b/42sh/src/completion/c_binary.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:30:57 by alao #+# #+# */ -/* Updated: 2017/01/11 14:08:08 by alao ### ########.fr */ +/* Updated: 2017/02/03 13:30:59 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,5 +35,6 @@ int c_seek_binary(t_data *s, t_comp *c) c_parser(c, paths[i++], c->rcmd); tmp ? ft_memdel((void *)&tmp) : (0); paths ? ft_sstrfree(paths) : (0); + DG("SB: End"); return (0); } diff --git a/42sh/src/completion/c_files.c b/42sh/src/completion/c_files.c index 98046317..005fb857 100644 --- a/42sh/src/completion/c_files.c +++ b/42sh/src/completion/c_files.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:31:21 by alao #+# #+# */ -/* Updated: 2017/01/11 14:06:50 by alao ### ########.fr */ +/* Updated: 2017/02/03 13:30:50 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -50,14 +50,15 @@ static char *c_slicer(t_comp *c) int c_seek_files(t_data *s, t_comp *c) { - DG("Seek Files"); - (void)s; char *path; + DG("SF: Start"); + (void)s; path = c_slicer(c); c->cpath = path_solver(c, path, NULL); DG("Solved as [%s]", c->cpath); path ? ft_memdel((void *)&path) : (0); c_parser(c, c->cpath, c->match); + DG("SF: End"); return (0); } diff --git a/42sh/src/completion/c_init.c b/42sh/src/completion/c_init.c index 36247c0c..f54a37a1 100644 --- a/42sh/src/completion/c_init.c +++ b/42sh/src/completion/c_init.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 11:21:16 by alao #+# #+# */ -/* Updated: 2017/02/03 12:28:49 by alao ### ########.fr */ +/* Updated: 2017/02/03 13:38:53 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -42,12 +42,14 @@ static char *c_trimmer(char *cmd, int st, int nd) void c_init(t_data *s, long int input) { struct winsize win; + int len_trail; if (!(s->comp = (t_comp *)malloc((sizeof(t_comp))))) return ; s->comp->rcmd = c_trimmer(s->line.input, s->line.pos, s->line.pos); + len_trail = ft_strlen(s->line.input) - s->line.pos; if (ft_strlen(s->line.input) > s->line.pos) - s->comp->trail = ft_strsub(s->line.input, s->line.pos, ft_strlen(s->line.input) - s->line.pos); + s->comp->trail = ft_strsub(s->line.input, s->line.pos, len_trail); else s->comp->trail = NULL; s->comp->ircmd = s->line.pos; diff --git a/42sh/src/completion/c_matching.c b/42sh/src/completion/c_matching.c index 43774657..72bcc01d 100644 --- a/42sh/src/completion/c_matching.c +++ b/42sh/src/completion/c_matching.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/15 13:27:14 by alao #+# #+# */ -/* Updated: 2017/02/03 12:06:23 by alao ### ########.fr */ +/* Updated: 2017/02/03 13:31:36 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,6 @@ ** it will call c_seek_files() function. If not, it assume it will be a binary ** so the function c_seek_binary() is called instead. ** Once that done, the printing function should occur. -** NOT YET IMPLEMENTED */ int c_matching(t_data *s, t_comp *c) @@ -27,12 +26,6 @@ int c_matching(t_data *s, t_comp *c) else c_seek_files(s, c); if (c->lst) -// { c_sizing(c); -// DG("Seek Binary end [%d]", c->lst->prev->id); -// test(c); -// } -// else -// DG("Seek Binary end No result"); return (0); } diff --git a/42sh/src/completion/c_output.c b/42sh/src/completion/c_output.c new file mode 100644 index 00000000..f94317f7 --- /dev/null +++ b/42sh/src/completion/c_output.c @@ -0,0 +1,58 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_output.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/03 13:10:38 by alao #+# #+# */ +/* Updated: 2017/02/03 13:52:01 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** Output function. Will update the data->line.input along with the +** position of the cursor in data->line.pos. If the autocompletion occur in +** the middle of the command, it will join the trailing part of it. Therefor +** recreating the commands completed. +** Once that done, it will clear all the memory related and return zero. +*/ + +int c_updater(t_comp *c) +{ + char *tmp; + char *rt; + int new_pos; + + DG("\tUpdater"); + DG("RCMD [%s] match [%s] Candidat [%s]", c->rcmd, c->match, c->lst->name); + tmp = NULL; + rt = NULL; + new_pos = c->ircmd + (ft_strlen(c->lst->name) - ft_strlen(c->match)) + 1; + tmp = ft_strsub(c->rcmd, 0, ft_strlen(c->rcmd) - ft_strlen(c->match)); + rt = ft_strjoin(tmp, c->lst->name); + tmp ? ft_memdel((void *)&tmp) : (0); + if (c->trail) + data_singleton()->line.input = ft_strjoin(rt, c->trail); + else + data_singleton()->line.input = ft_strdup(rt); + data_singleton()->line.pos = new_pos; + DG("Resulting RCMD [%s] with pos [%d] from [%d]", rt, new_pos, c->ircmd); + rt ? ft_memdel((void *)&rt) : (0); + c_clear(data_singleton()); + return (0); +} + +/* +** Placeholder to clear the memory if an other key than tab is pressed to know +** if the command should be updated or not before clearing the memory. +*/ + +int c_gtfo(t_comp *c, long int keypress) +{ + DG("It's time to GTFO. Keypress [%d]", keypress); + (void)c; + return (0); +} diff --git a/42sh/src/completion/c_parser.c b/42sh/src/completion/c_parser.c index cf73b457..90d5c717 100644 --- a/42sh/src/completion/c_parser.c +++ b/42sh/src/completion/c_parser.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:52:07 by alao #+# #+# */ -/* Updated: 2017/01/31 18:34:54 by alao ### ########.fr */ +/* Updated: 2017/02/03 13:40:14 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,7 +16,7 @@ ** Add the matching element to the list */ -static void c_add_to_lst(t_comp *c, t_clst *node) +static void c_add_to_lst(t_comp *c, t_clst *node) { DG("PARSER: Adding node [%s]", node->name); if (c->lst == NULL) @@ -42,9 +42,9 @@ static void c_add_to_lst(t_comp *c, t_clst *node) ** created and the function above is called to add it. */ -static int c_storing(t_comp *c, char *value, unsigned char type) +static int c_storing(t_comp *c, char *value, unsigned char type) { - t_clst *tmp; + t_clst *tmp; if (ft_strncmp(".", value, 1) == 0 || ft_strncmp("..", value, 2) == 0) return (0); @@ -68,10 +68,10 @@ static int c_storing(t_comp *c, char *value, unsigned char type) int c_parser(t_comp *c, char *path, char *name) { - DG("PARSER: Search for [%s] in [%s]", name, path); DIR *rep; struct dirent *dirc; + DG("PARSER: Search for [%s] in [%s]", name, path); if (!(rep = opendir(path))) return (-1); while ((dirc = readdir(rep))) diff --git a/42sh/src/completion/c_single.c b/42sh/src/completion/c_single.c deleted file mode 100644 index d10227d8..00000000 --- a/42sh/src/completion/c_single.c +++ /dev/null @@ -1,40 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* c_single.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: alao +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/31 14:01:22 by alao #+# #+# */ -/* Updated: 2017/01/31 18:57:59 by alao ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "completion.h" - - -int c_single(t_comp *c) -{ - DG("SINGLE"); - DG("Containing [%s] match [%s] Candidat [%s]", c->rcmd, c->match, c->lst->name); - char *tmp; - char *rt; - int new_pos; - - tmp = NULL; - rt = NULL; - new_pos = c->ircmd + (ft_strlen(c->lst->name) - ft_strlen(c->match)) + 1; - tmp = ft_strsub(c->rcmd, 0, ft_strlen(c->rcmd) - ft_strlen(c->match)); - rt = ft_strjoin(tmp, c->lst->name); - tmp ? ft_memdel((void *)&tmp) : (0); - if (c->trail) - { - tmp = ft_strjoin(rt, " "); - rt ? ft_memdel((void *)&rt) : (0); - rt = ft_strjoin(tmp, c->trail); - } - DG("Resulting RCMD as [%s] with new position [%d] from [%d]", rt, new_pos, c->ircmd); - rt ? ft_memdel((void *)&rt) : (0); - c_clear(data_singleton()); - return (0); -} diff --git a/42sh/src/completion/c_terminal.c b/42sh/src/completion/c_terminal.c index f8c42c89..04b94f05 100644 --- a/42sh/src/completion/c_terminal.c +++ b/42sh/src/completion/c_terminal.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/11 10:44:40 by alao #+# #+# */ -/* Updated: 2017/01/31 13:24:50 by alao ### ########.fr */ +/* Updated: 2017/02/03 13:40:41 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,11 +19,11 @@ void c_term_mv_back(t_comp *c) { - DG("Terminal back up"); int i; int lcmd; i = 0; + DG("Terminal back up"); while (i != (c->c_line)) { ft_putstr(tgetstr("up", NULL)); @@ -47,10 +47,10 @@ void c_term_mv_back(t_comp *c) void c_term_mv_down(t_comp *c) { - DG("Terminal down"); int i; i = 0; + DG("Terminal down"); while (i < c->c_line) { ft_putstr(tgetstr("do", NULL)); diff --git a/42sh/src/completion/completion.c b/42sh/src/completion/completion.c index 87f93f32..284cca28 100644 --- a/42sh/src/completion/completion.c +++ b/42sh/src/completion/completion.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/09/20 14:50:33 by alao #+# #+# */ -/* Updated: 2017/02/03 12:30:54 by alao ### ########.fr */ +/* Updated: 2017/02/03 14:11:42 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,12 +16,13 @@ ** DEBUG FUNCTION */ -int test(t_comp *c) +int test(t_comp *c) { - DG("\tAutocompletion dump"); - int i = 1; - t_clst *tmp; + t_clst *tmp; + int i; + DG("\tAutocompletion dump"); + i = 1; if (!(c->lst)) { DG("Empty list"); @@ -50,9 +51,14 @@ int test(t_comp *c) return (0); } -static void c_next_item(t_comp *c) +/* +** Function to select the next item in the list if it has already been Created +** and if the keypressed is tab. +*/ + +static void c_next_item(t_comp *c) { - t_clst *ptr; + t_clst *ptr; ptr = c->lst; while (!ptr->cursor) @@ -61,40 +67,24 @@ static void c_next_item(t_comp *c) ptr->next->cursor = 1; } -int completion(long int input) +/* +** If the list is empty after the parsing, all memory is cleared. +** if it detect a single item list, the command is directly updated. +** If none of the above behavior is right, the terminal is dropped down by +** comp->c_line then the list is printed. Once that done, the previous position +** of the cursor is restored. +*/ + +static int c_dispatcher(t_data *s) { - t_data *s; - - s = data_singleton(); - - DG("\n\n\t\tAutocompletion input key [%d]\n", (int)input); - if (s->comp == NULL) - { - if (s->line.pos == 0) - return (0); - if (s->line.input[s->line.pos] != ' ' && s->line.input[s->line.pos] != '\0') - return (0); - c_init(s, input); - } - else - { - if (input == 9) - c_next_item(s->comp); - else - DG("Place holder to clear or put the selection in rcmd"); - } - test(s->comp); if (s->comp && s->comp->lst == NULL) { DG("Empty list, flushing autocompletion"); c_clear(s); } else if (s->comp && s->comp->lst == s->comp->lst->next) - { - c_single(s->comp); - return (1); - } - else if (s->comp && s->comp->lst != s->comp->lst->next ) + return (c_updater(s->comp)); + else if (s->comp && s->comp->lst != s->comp->lst->next) { c_term_mv_down(s->comp); c_printer(s->comp); @@ -102,3 +92,47 @@ int completion(long int input) } return (0); } + +/* +** Autocompletion feature. +** If the structure of the completion (later called comp) doesn't exist, the +** function will check for a few things. If the current position is zero, it +** will return immediately. Same thing apply if the current position of the +** cursor is not a space. If those condition are not met the comp struct is +** created using c_init(). +** If the comp struct already exist at the call of the function, it will check +** which key has been pressed. If the tab key has been used, that mean an other +** item should be selected. This is done using c_next_item(). If the keypress +** is not tab, c_gtfo() is called to know if the command should be updated or +** simply delete all the memory. +** +** The c_dispatcher() is called which will print or update the command +** depending on their respective condition. +*/ + +int completion(long int keypress) +{ + t_data *s; + + s = data_singleton(); + DG("\n\n\t\tAutocompletion input key [%d]\n", (int)keypress); + if (s->comp == NULL) + { + if (s->line.pos == 0) + return (0); + if (s->line.input[s->line.pos] != ' ' && + s->line.input[s->line.pos] != '\0') + return (0); + c_init(s, keypress); + } + else + { + if (keypress == TOUCHE_TAB) + c_next_item(s->comp); + else + return (c_gtfo(s->comp, keypress)); + } + test(s->comp); + c_dispatcher(s); + return (0); +} diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index 2edec968..f0f2d1de 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/03 12:23:44 by alao ### ########.fr */ +/* Updated: 2017/02/03 13:05:41 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -54,10 +54,10 @@ char *ft_read_stdin(void) ret = 0; j = 0; read(0, &ret, sizeof(int)); +if (data_singleton()->comp || ret == TOUCHE_TAB) + completion(ret); while (g_key[j].value && g_key[j].value != ret) ++j; - if (data_singleton()->comp || ret == 9) - completion(ret); if (g_key[j].value) g_key[j].f(); else if (ft_isprint(ret)) From 09cb6f78437cf19bd6d5688fbbe59a8f397ba4a0 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 3 Feb 2017 14:41:28 +0100 Subject: [PATCH 05/98] seems to pass initial testing for chained redirections, havent tried very far --- 42sh/src/exec/process_do_redirection.c | 28 ++++++++++---------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/42sh/src/exec/process_do_redirection.c b/42sh/src/exec/process_do_redirection.c index b0ce8954..dacd34b4 100644 --- a/42sh/src/exec/process_do_redirection.c +++ b/42sh/src/exec/process_do_redirection.c @@ -6,27 +6,28 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:46:40 by jhalford #+# #+# */ -/* Updated: 2017/02/03 14:10:01 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 14:41:01 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" +int fd_is_valid(int fd) +{ + return (fcntl(fd, F_GETFD) != -1 || errno != EBADF); +} + void process_do_redirection(t_redir *redir) { int fdin; int fdout; - if (redir->type & TK_GREAT) + if (redir->type & (TK_GREAT | TK_DGREAT)) { fdin = redir->n; - fdout = open(redir->word.word, O_WRONLY | O_TRUNC | O_CREAT, 0644); - DG("opened [%s] in fd[%i]", redir->word.word, fdout); - } - else if (redir->type & TK_DGREAT) - { - fdin = redir->n; - fdout = open(redir->word.word, O_WRONLY | O_APPEND | O_CREAT, 0644); + fdout = open(redir->word.word, O_WRONLY | O_CREAT + (redir->type & TK_GREAT) ? O_TRUNC : O_APPEND, + 0644); } else if (redir->type & TK_LESS) { @@ -37,7 +38,6 @@ void process_do_redirection(t_redir *redir) { if (redir->close) { - DG("gonna close(%i)", redir->n); close(redir->n); return ; } @@ -47,12 +47,6 @@ void process_do_redirection(t_redir *redir) fdout = redir->type & TK_LESSAND ? redir->n : redir->word.fd; } } - else - { - DG("redir->type not well set !"); - return ; - } - DG("gonna dup2(%i,%i)", fdout, fdin); - dup2(fdout, fdin); + fd_is_valid(fdout) ? dup2(fdout, fdin) : close(fdin); close(fdout); } From f4efbdd31388130d7234671e47fd9f0b46e59ff3 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 3 Feb 2017 14:56:30 +0100 Subject: [PATCH 06/98] hotfix, forget to check compilation --- 42sh/includes/types.h | 2 +- 42sh/src/exec/process_do_redirection.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/42sh/includes/types.h b/42sh/includes/types.h index c2aea9ff..72e30a72 100644 --- a/42sh/includes/types.h +++ b/42sh/includes/types.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 17:11:48 by jhalford #+# #+# */ -/* Updated: 2017/02/03 14:02:56 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 14:54:04 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/process_do_redirection.c b/42sh/src/exec/process_do_redirection.c index dacd34b4..2cb1c02b 100644 --- a/42sh/src/exec/process_do_redirection.c +++ b/42sh/src/exec/process_do_redirection.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:46:40 by jhalford #+# #+# */ -/* Updated: 2017/02/03 14:41:01 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 14:55:44 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,7 @@ void process_do_redirection(t_redir *redir) { fdin = redir->n; fdout = open(redir->word.word, O_WRONLY | O_CREAT - (redir->type & TK_GREAT) ? O_TRUNC : O_APPEND, + | (redir->type & TK_GREAT) ? O_TRUNC : O_APPEND, 0644); } else if (redir->type & TK_LESS) @@ -47,6 +47,11 @@ void process_do_redirection(t_redir *redir) fdout = redir->type & TK_LESSAND ? redir->n : redir->word.fd; } } + else + { + ft_dprintf(2, "{red}%s: redirection error.", SHELL_NAME); + return ; + } fd_is_valid(fdout) ? dup2(fdout, fdin) : close(fdin); close(fdout); } From c0918e8e6b5412507d9abeb7c46a4375d73dcf85 Mon Sep 17 00:00:00 2001 From: gwojda Date: Fri, 3 Feb 2017 15:04:54 +0100 Subject: [PATCH 07/98] quoting + backslash + backquotes + parentheses + accolades revu : normalement ca marche. On va tenter d'ajouter la completion --- 42sh/Makefile | 1 + 42sh/includes/ft_readline.h | 37 ++++++++-- 42sh/src/line-editing/check_backslash.c | 93 ++++++++++++++++++++----- 42sh/src/line-editing/completion.c | 34 +++++++++ 42sh/src/line-editing/get_touch.c | 4 +- 42sh/src/line-editing/get_touch_toolz.c | 6 +- 42sh/src/line-editing/history.c | 4 +- 42sh/src/line-editing/history_parsing.c | 3 +- 42sh/src/line-editing/reader.c | 5 +- 42sh/src/line-editing/readline.c | 5 +- 10 files changed, 156 insertions(+), 36 deletions(-) create mode 100644 42sh/src/line-editing/completion.c diff --git a/42sh/Makefile b/42sh/Makefile index 0b60f83d..9f764f0a 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -143,6 +143,7 @@ lexer/token_init.c\ lexer/token_print.c\ line-editing/builtin_history.c\ line-editing/check_backslash.c\ +line-editing/completion.c\ line-editing/control_c_and_d.c\ line-editing/copy_cut_paste.c\ line-editing/ft_split_whitespaces.c\ diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index c79f8815..ac99a2a2 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 18:28:44 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 15:04:38 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -52,6 +52,27 @@ # define TOUCHE_F5 892427035 # define TOUCHE_F6 925981467 +# define PROMPT_QUOTES "quote> " +# define PROMPT_DQUOTES "dquote> " +# define PROMPT_BQUOTES "bquote> " +# define PROMPT_ACCOLADE "cursh> " +# define PROMPT_BRACKET "subsh> " +# define PROMPT_BSLASH "> " + +# define SIZE_PROMPT_QUOTES 7 +# define SIZE_PROMPT_DQUOTES 8 +# define SIZE_PROMPT_BQUOTES 8 +# define SIZE_PROMPT_ACCOLADE 7 +# define SIZE_PROMPT_BRACKET 7 +# define SIZE_PROMPT_BSLASH 2 + +# define IS_QUOTES 1 << 0 +# define IS_BQUOTES 1 << 1 +# define IS_DQUOTES 1 << 2 +# define IS_ACCOLADE 1 << 3 +# define IS_BRACKET 1 << 4 +# define IS_BSLASH 1 << 5 + # define HIST 1 # define ERROR_CNTL_R 1 @@ -82,8 +103,15 @@ typedef struct s_key void (*f)(void); } t_key; -extern t_key g_keys[]; +typedef struct s_prompt_type +{ + char key; + int value; + char *new_prompt; +} t_prompt_type; +extern t_key g_keys[]; +extern t_prompt_type g_prompt_tab[]; void ft_putnc(char c, int n); int ft_nbr_len(int nbr); @@ -109,10 +137,10 @@ 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); +void ft_check_line(void); char *ft_read_stdin(void); void ft_end(void); @@ -139,9 +167,8 @@ void ft_v(void); void ft_history_parsing(void); void ft_read_it(int input, size_t *pos, char **str); int ft_readline(void); +int ft_completion(int ret); 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 1ab0256e..247d6828 100644 --- a/42sh/src/line-editing/check_backslash.c +++ b/42sh/src/line-editing/check_backslash.c @@ -6,30 +6,85 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/26 13:32:52 by gwojda #+# #+# */ -/* Updated: 2017/02/02 16:01:25 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 14:09:20 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -void ft_check_backslash(char **str) +t_prompt_type g_prompt_tab[] = { - char *tmp1; - char *tmp2; + {IS_QUOTES ,SIZE_PROMPT_QUOTES ,PROMPT_QUOTES}, + {IS_BQUOTES ,SIZE_PROMPT_BQUOTES ,PROMPT_BQUOTES}, + {IS_DQUOTES ,SIZE_PROMPT_DQUOTES ,PROMPT_DQUOTES}, + {IS_ACCOLADE ,SIZE_PROMPT_ACCOLADE ,PROMPT_ACCOLADE}, + {IS_BRACKET ,SIZE_PROMPT_BRACKET ,PROMPT_BRACKET}, + {IS_BSLASH ,SIZE_PROMPT_BSLASH ,PROMPT_BSLASH}, + {0 ,0 ,0}, +}; - if (!*str || !**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_read_stdin(); - *str = ft_strjoin(tmp2, tmp1); - free(tmp1); - free(tmp2); - ft_putchar('\n'); - } +void ft_read_more(short c) +{ + char *str_tmp; + char *str_tmp2; + int i; + + i = 0; + str_tmp2 = data_singleton()->line.input; + str_tmp = ft_strjoin(str_tmp2, "\n"); + free(str_tmp2); + data_singleton()->line.input = NULL; + data_singleton()->line.pos = 0; + while (g_prompt_tab[i].key && !(g_prompt_tab[i].key & c)) + ++i; + data_singleton()->line.prompt_size = g_prompt_tab[i].value; + ft_printf("\n%s", g_prompt_tab[i].new_prompt); + str_tmp2 = ft_read_stdin(); + str_tmp2 = ft_strjoin(str_tmp, data_singleton()->line.input); + free(str_tmp); + free(data_singleton()->line.input); + data_singleton()->line.input = str_tmp2; + ft_check_line(); +} + +void ft_check_this_char(char c, short *status) +{ + int i; + char stats[] = {'\'', '`', '\"', '{', '(', '\\', '\0'}; + + i = 0; + while (stats[i] && stats[i] != c) + ++i; + if (!stats[i]) + return ; + if (((1 << i) & ~(*status))) + { + if (((1 << i) > *status && + (*status == 0 && !(IS_QUOTES & *status) && (!(IS_DQUOTES & *status)))) + || (((1 << i) == IS_BQUOTES) && !(IS_QUOTES & *status))) + (*status) = (*status) | (1 << i); + } + else + (*status) = (*status) ^ (1 << i); +} + +void ft_check_line(void) +{ + int i; + char *str; + short status; + + i = 0; + status = 0; + str = data_singleton()->line.input; + while (str[i]) + { + if (IS_BSLASH & status) + status = status ^ IS_BSLASH; + else + ft_check_this_char(str[i], &status); + ++i; + } + if (status) + ft_read_more(status); } diff --git a/42sh/src/line-editing/completion.c b/42sh/src/line-editing/completion.c new file mode 100644 index 00000000..beb64572 --- /dev/null +++ b/42sh/src/line-editing/completion.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* completion.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/03 14:15:55 by gwojda #+# #+# */ +/* Updated: 2017/02/03 15:03:17 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +int ft_completion(int ret) +{ + size_t tmp; + + if ((ret != TOUCHE_TAB && ret != 10) + || (ret == 10 && !(data_singleton()->comp))) + return (0); + data_singleton()->line.pos = tmp; + if (ret == 10) + ft_puttermcaps("cd"); + if (data_singleton()->comp || ret == TOUCHE_TAB) + completion(ret); + if (ret == 10) + { + ft_current_str(data_singleton()->line.input, tmp); + ft_get_next_str(data_singleton()->line.input, &tmp); + data_singleton()->line.pos = tmp; + } + return (1); +} diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index 2ecde44c..cd607266 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 18:27:07 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 14:46:22 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -54,6 +54,8 @@ char *ft_read_stdin(void) ret = 0; j = 0; read(0, &ret, sizeof(int)); + if (ft_completion(ret)) + continue ; while (g_key[j].value && g_key[j].value != ret) ++j; if (g_key[j].value) diff --git a/42sh/src/line-editing/get_touch_toolz.c b/42sh/src/line-editing/get_touch_toolz.c index e5937fac..f99820dc 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/02 15:22:35 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 12:08:45 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -73,13 +73,15 @@ void ft_found_prev_word(void) void ft_found_next_word(void) { - int i; + int i; char *str; size_t *pos; str = data_singleton()->line.input; pos = &data_singleton()->line.pos; i = 0; + if (!str) + return ; while (str[i + *pos] && str[i + *pos] == ' ') { ft_putchar(str[i + *pos]); diff --git a/42sh/src/line-editing/history.c b/42sh/src/line-editing/history.c index 295af73e..cd587a51 100644 --- a/42sh/src/line-editing/history.c +++ b/42sh/src/line-editing/history.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 15:22:19 by gwojda #+# #+# */ -/* Updated: 2017/02/02 18:04:16 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 11:55:36 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,7 @@ void ft_history_down(void) str = &data_singleton()->line.input; pos = &data_singleton()->line.pos; head = data_singleton()->line.list_cur; - if (!head || !*str) + if (!head) return ; if (*str) { diff --git a/42sh/src/line-editing/history_parsing.c b/42sh/src/line-editing/history_parsing.c index bd3f67d4..1da1f4dd 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/02/02 16:20:26 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 11:57:07 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -59,7 +59,6 @@ static void ft_history_parsing_2(void) 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); ft_check_heredoc(&data_singleton()->line.input); ft_history_parsing(); } diff --git a/42sh/src/line-editing/reader.c b/42sh/src/line-editing/reader.c index 4a3e17d3..22d41fd2 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/25 19:07:39 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 11:40:10 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -61,6 +61,7 @@ void ft_read_it(int input, size_t *pos, char **str) return ; ft_read_it_2(input, t); ft_read_it_3(str, t, pos, &j); - ft_putstr((*str) + (*pos) - j); +// ft_current_str((*str) + (*pos) - j, *pos); +// ft_get_next_str((*str) + (*pos) - j, pos); ft_putnc('\b', ft_strlen((*str)) - ((*pos))); } diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index f48668b4..d2e0a2f1 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 18:03:23 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 12:33:51 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -82,10 +82,9 @@ int ft_readline(void) data_singleton()->line.pos = 0; ft_prompt(); data_singleton()->line.input = ft_read_stdin(); + ft_check_line(); ft_putchar('\n'); - ft_check_quotes(&data_singleton()->line.input); ft_check_heredoc(&data_singleton()->line.input); - ft_check_backslash(&data_singleton()->line.input); ft_history_parsing(); if (data_singleton()->line.input) { From 3e2f3eae76133226a6ca098adc3bcb561df5be49 Mon Sep 17 00:00:00 2001 From: gwojda Date: Fri, 3 Feb 2017 15:05:28 +0100 Subject: [PATCH 08/98] quoting + backslash + backquotes + parentheses + accolades revu : normalement ca marche. On va tenter d'ajouter la completion --- 42sh/src/line-editing/quotes_gest.c | 88 ----------------------------- 1 file changed, 88 deletions(-) delete mode 100644 42sh/src/line-editing/quotes_gest.c diff --git a/42sh/src/line-editing/quotes_gest.c b/42sh/src/line-editing/quotes_gest.c deleted file mode 100644 index c4be15f9..00000000 --- a/42sh/src/line-editing/quotes_gest.c +++ /dev/null @@ -1,88 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* quotes_gest.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: gwojda +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/05 12:20:19 by gwojda #+# #+# */ -/* Updated: 2017/02/02 17:53:41 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] == '\'' && ((i && s[i - 1] != '\\') || !i)) - { - simp = 1; - ++i; - while (s[i] && !(s[i] == '\'' && ((i && s[i - 1] != '\\') || !i))) - ++i; - if (s[i] == '\'' && ((i && s[i - 1] != '\\') || !i)) - simp = 0; - } - else if (s[i] == '"' && ((i && s[i - 1] != '\\') || !i)) - { - doub = 1; - ++i; - while (s[i] && !(s[i] == '"' && ((i && s[i - 1] != '\\') || !i))) - ++i; - if (s[i] == '"' && ((i && s[i - 1] != '\\') || !i)) - doub = 0; - } - if (s[i]) - ++i; - } - if (doub) - return (2); - else if (simp) - return (1); - return (0); -} - -void ft_check_quotes(char **s) -{ - 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)))) - { - 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; - 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); - } -} From fff7a872e652a16f18b22c1b4fed96f24439e836 Mon Sep 17 00:00:00 2001 From: m600x Date: Fri, 3 Feb 2017 15:08:32 +0100 Subject: [PATCH 09/98] Pre-Merge --- 42sh/Makefile | 4 ++-- 42sh/includes/ft_readline.h | 3 ++- 42sh/src/completion/completion.c | 6 ++++-- 42sh/src/line-editing/get_touch.c | 4 +++- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index 65248d51..89854d07 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,7 +6,7 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/03 13:53:09 by alao ### ########.fr # +# Updated: 2017/02/03 15:01:26 by alao ### ########.fr # # # # **************************************************************************** # @@ -211,7 +211,7 @@ NB = $(words $(SRC_BASE)) INDEX = 0 all : - @make -j $(NAME) + @make $(NAME) $(NAME): $(LIBFT_LIB) $(OBJ_DIR) $(OBJS) @$(CC) $(FLAGS) $(D_FLAGS) \ diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index c79f8815..490724c7 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 18:28:44 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 14:34:31 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -67,6 +67,7 @@ typedef struct s_line { char *input; char *copy_tmp; + char *input_tmp; size_t pos; int prompt_size; int list_size; diff --git a/42sh/src/completion/completion.c b/42sh/src/completion/completion.c index 284cca28..a6e72360 100644 --- a/42sh/src/completion/completion.c +++ b/42sh/src/completion/completion.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/09/20 14:50:33 by alao #+# #+# */ -/* Updated: 2017/02/03 14:11:42 by alao ### ########.fr */ +/* Updated: 2017/02/03 14:53:57 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -94,12 +94,14 @@ static int c_dispatcher(t_data *s) } /* -** Autocompletion feature. +** Autocompletion feature. +** ** If the structure of the completion (later called comp) doesn't exist, the ** function will check for a few things. If the current position is zero, it ** will return immediately. Same thing apply if the current position of the ** cursor is not a space. If those condition are not met the comp struct is ** created using c_init(). +** ** If the comp struct already exist at the call of the function, it will check ** which key has been pressed. If the tab key has been used, that mean an other ** item should be selected. This is done using c_next_item(). If the keypress diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index f0f2d1de..c1dd01e1 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/03 13:05:41 by alao ### ########.fr */ +/* Updated: 2017/02/03 14:54:17 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -49,6 +49,8 @@ char *ft_read_stdin(void) if (data_singleton()->line.input[data_singleton()->line.pos]) ++(data_singleton()->line.pos); } +if (data_singleton()->comp) + c_clear(data_singleton()); while (42) { ret = 0; From 585d46932445ab0c5941b130cab580f87b458a98 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 3 Feb 2017 15:15:38 +0100 Subject: [PATCH 10/98] lexer skips delims before starting to tokenize --- 42sh/includes/lexer.h | 2 +- 42sh/includes/types.h | 2 +- 42sh/src/exec/process_do_redirection.c | 2 +- 42sh/src/lexer/ft_lexer.c | 11 ++++++++++- 42sh/src/lexer/ft_tokenize.c | 2 +- 42sh/src/lexer/lexer_delim.c | 4 ++-- 42sh/src/lexer/lexer_sep.c | 2 +- 7 files changed, 17 insertions(+), 8 deletions(-) diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index a3508bc6..b23aa027 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/03 13:25:50 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:06:59 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/includes/types.h b/42sh/includes/types.h index 72e30a72..9e86571c 100644 --- a/42sh/includes/types.h +++ b/42sh/includes/types.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 17:11:48 by jhalford #+# #+# */ -/* Updated: 2017/02/03 14:54:04 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:03:52 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/process_do_redirection.c b/42sh/src/exec/process_do_redirection.c index 2cb1c02b..2246941d 100644 --- a/42sh/src/exec/process_do_redirection.c +++ b/42sh/src/exec/process_do_redirection.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:46:40 by jhalford #+# #+# */ -/* Updated: 2017/02/03 14:55:44 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:01:18 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/ft_lexer.c b/42sh/src/lexer/ft_lexer.c index a0abdd90..78a67328 100644 --- a/42sh/src/lexer/ft_lexer.c +++ b/42sh/src/lexer/ft_lexer.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 15:30:59 by jhalford #+# #+# */ -/* Updated: 2017/02/02 15:42:24 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:15:13 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,9 +15,18 @@ int ft_lexer(t_list **alst, char **command) { int ret; + char *str; ret = 0; if (!*command) + return (1); + str = *command; + while (ft_is_delim(*str)) + str++; + str = ft_strdup(str); + ft_strdel(command); + *command = str; + if (!*str) ret = 1; else if (ft_tokenize(alst, *command, DEFAULT)) ret = 1; diff --git a/42sh/src/lexer/ft_tokenize.c b/42sh/src/lexer/ft_tokenize.c index cfdfe43d..9da0c518 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/03 13:26:57 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:06:52 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_delim.c b/42sh/src/lexer/lexer_delim.c index f0ceb531..e941277f 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/26 16:30:43 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:15:14 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,7 +16,7 @@ int lexer_delim(t_list **alst, char *str) { t_token *token; - token = (*alst)->content; + token = *alst ? (*alst)->content : NULL; while (ft_is_delim(*str)) str++; if (token->type) diff --git a/42sh/src/lexer/lexer_sep.c b/42sh/src/lexer/lexer_sep.c index 54f7c20e..ccc4ef59 100644 --- a/42sh/src/lexer/lexer_sep.c +++ b/42sh/src/lexer/lexer_sep.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/30 16:29:57 by jhalford #+# #+# */ -/* Updated: 2017/01/10 14:39:52 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:02:07 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From c9dc8a5bd274bc0f6ef174d65ece1430d844999b Mon Sep 17 00:00:00 2001 From: m600x Date: Fri, 3 Feb 2017 15:21:13 +0100 Subject: [PATCH 11/98] Merged with completion --- 42sh/Makefile | 3 +-- 42sh/src/line-editing/completion.c | 5 +++-- 42sh/src/line-editing/get_touch.c | 6 +----- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index 75194826..31c4a6c1 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,7 +6,7 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/03 15:01:26 by alao ### ########.fr # +# Updated: 2017/02/03 15:18:41 by alao ### ########.fr # # # # **************************************************************************** # @@ -171,7 +171,6 @@ 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\ diff --git a/42sh/src/line-editing/completion.c b/42sh/src/line-editing/completion.c index beb64572..872a1bd0 100644 --- a/42sh/src/line-editing/completion.c +++ b/42sh/src/line-editing/completion.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 14:15:55 by gwojda #+# #+# */ -/* Updated: 2017/02/03 15:03:17 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 15:17:05 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,10 +16,11 @@ int ft_completion(int ret) { size_t tmp; + if ((ret != TOUCHE_TAB && ret != 10) || (ret == 10 && !(data_singleton()->comp))) return (0); - data_singleton()->line.pos = tmp; + tmp = data_singleton()->line.pos; if (ret == 10) ft_puttermcaps("cd"); if (data_singleton()->comp || ret == TOUCHE_TAB) diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index bf7178c4..dd774bfe 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -6,11 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/02/03 15:12:38 by alao ### ########.fr */ -/* */ -/* ************************************************************************** */ - ->>>>>>> 3769f98c9a62c0352e90cbfe380b5377572981b1 +/* Updated: 2017/02/03 15:17:19 by alao ### ########.fr */ /* */ /* ************************************************************************** */ From 045b3c02269d0ebc89a231cd7dfa944333a6e9b6 Mon Sep 17 00:00:00 2001 From: gwojda Date: Fri, 3 Feb 2017 15:41:06 +0100 Subject: [PATCH 12/98] =?UTF-8?q?completion=20en=20cas=20d'unique=20possib?= =?UTF-8?q?ilit=C3=A9=20:=20OK=20!=20:D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/Makefile | 4 ++-- 42sh/src/completion/c_output.c | 4 ++-- 42sh/src/completion/completion.c | 5 ++--- 42sh/src/line-editing/check_backslash.c | 4 +++- 42sh/src/line-editing/completion.c | 9 +++++---- 42sh/src/line-editing/get_touch.c | 6 +++--- 42sh/src/main/data_init.c | 3 ++- 42sh/src/main/data_singleton.c | 4 ++-- 8 files changed, 21 insertions(+), 18 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index 31c4a6c1..b0d1c775 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,14 +6,14 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/03 15:18:41 by alao ### ########.fr # +# Updated: 2017/02/03 15:23:50 by gwojda ### ########.fr # # # # **************************************************************************** # 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/completion/c_output.c b/42sh/src/completion/c_output.c index f94317f7..cc703143 100644 --- a/42sh/src/completion/c_output.c +++ b/42sh/src/completion/c_output.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:10:38 by alao #+# #+# */ -/* Updated: 2017/02/03 13:52:01 by alao ### ########.fr */ +/* Updated: 2017/02/03 15:33:53 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -42,7 +42,7 @@ int c_updater(t_comp *c) DG("Resulting RCMD [%s] with pos [%d] from [%d]", rt, new_pos, c->ircmd); rt ? ft_memdel((void *)&rt) : (0); c_clear(data_singleton()); - return (0); + return (1); } /* diff --git a/42sh/src/completion/completion.c b/42sh/src/completion/completion.c index a6e72360..f63bc0ea 100644 --- a/42sh/src/completion/completion.c +++ b/42sh/src/completion/completion.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/09/20 14:50:33 by alao #+# #+# */ -/* Updated: 2017/02/03 14:53:57 by alao ### ########.fr */ +/* Updated: 2017/02/03 15:39:26 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -135,6 +135,5 @@ int completion(long int keypress) return (c_gtfo(s->comp, keypress)); } test(s->comp); - c_dispatcher(s); - return (0); + return (c_dispatcher(s)); } diff --git a/42sh/src/line-editing/check_backslash.c b/42sh/src/line-editing/check_backslash.c index 247d6828..12eb1976 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/03 14:09:20 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 15:27:37 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -77,6 +77,8 @@ void ft_check_line(void) i = 0; status = 0; str = data_singleton()->line.input; + if (!str) + return ; while (str[i]) { if (IS_BSLASH & status) diff --git a/42sh/src/line-editing/completion.c b/42sh/src/line-editing/completion.c index 872a1bd0..019cf514 100644 --- a/42sh/src/line-editing/completion.c +++ b/42sh/src/line-editing/completion.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 14:15:55 by gwojda #+# #+# */ -/* Updated: 2017/02/03 15:17:05 by alao ### ########.fr */ +/* Updated: 2017/02/03 15:39:40 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,8 +15,9 @@ int ft_completion(int ret) { size_t tmp; + char boolean; - + boolean = 0; if ((ret != TOUCHE_TAB && ret != 10) || (ret == 10 && !(data_singleton()->comp))) return (0); @@ -24,8 +25,8 @@ int ft_completion(int ret) if (ret == 10) ft_puttermcaps("cd"); if (data_singleton()->comp || ret == TOUCHE_TAB) - completion(ret); - if (ret == 10) + boolean = completion(ret); + if (boolean || ret == 10) { ft_current_str(data_singleton()->line.input, tmp); ft_get_next_str(data_singleton()->line.input, &tmp); diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index dd774bfe..b4ff5b06 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/03 15:17:19 by alao ### ########.fr */ +/* Updated: 2017/02/03 15:24:37 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -49,8 +49,8 @@ char *ft_read_stdin(void) if (data_singleton()->line.input[data_singleton()->line.pos]) ++(data_singleton()->line.pos); } -if (data_singleton()->comp) - c_clear(data_singleton()); + if (data_singleton()->comp) + c_clear(data_singleton()); while (42) { ret = 0; diff --git a/42sh/src/main/data_init.c b/42sh/src/main/data_init.c index 5b9a0fd9..76bf0d90 100644 --- a/42sh/src/main/data_init.c +++ b/42sh/src/main/data_init.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 19:26:32 by jhalford #+# #+# */ -/* Updated: 2017/02/03 13:44:30 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:25:55 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,6 +21,7 @@ int data_init(void) data = data_singleton(); data->env = ft_sstrdup(environ); + data->comp = NULL; data->opts = SHELL_OPTS_JOBC; data->exec.process.path = NULL; diff --git a/42sh/src/main/data_singleton.c b/42sh/src/main/data_singleton.c index 33d75a04..22c7306f 100644 --- a/42sh/src/main/data_singleton.c +++ b/42sh/src/main/data_singleton.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* data_singleton.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 11:36:39 by jhalford #+# #+# */ -/* Updated: 2017/01/10 11:47:11 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:25:13 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ From 6ab0634d4cfe89c1a8a341cad42ed49f14f5f7d4 Mon Sep 17 00:00:00 2001 From: m600x Date: Fri, 3 Feb 2017 15:49:03 +0100 Subject: [PATCH 13/98] Reworked autocompletion multichoice --- 42sh/includes/completion.h | 4 ++-- 42sh/src/completion/c_output.c | 23 ++++++++++++++++------- 42sh/src/completion/completion.c | 4 ++-- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/42sh/includes/completion.h b/42sh/includes/completion.h index 36902c8a..86e5e57f 100644 --- a/42sh/includes/completion.h +++ b/42sh/includes/completion.h @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/02/18 11:13:04 by alao #+# #+# */ -/* Updated: 2017/02/03 13:37:11 by alao ### ########.fr */ +/* Updated: 2017/02/03 15:47:35 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -90,7 +90,7 @@ int c_sizing(t_comp *c); ** Output functions. */ -int c_updater(t_comp *c); +int c_updater(t_comp *c, char *select); int c_gtfo(t_comp *c, long int keypress); /* diff --git a/42sh/src/completion/c_output.c b/42sh/src/completion/c_output.c index cc703143..3273d4b8 100644 --- a/42sh/src/completion/c_output.c +++ b/42sh/src/completion/c_output.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:10:38 by alao #+# #+# */ -/* Updated: 2017/02/03 15:33:53 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 15:47:16 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,19 +20,19 @@ ** Once that done, it will clear all the memory related and return zero. */ -int c_updater(t_comp *c) +int c_updater(t_comp *c, char *select) { char *tmp; char *rt; int new_pos; DG("\tUpdater"); - DG("RCMD [%s] match [%s] Candidat [%s]", c->rcmd, c->match, c->lst->name); + DG("RCMD [%s] match [%s] Candidat [%s]", c->rcmd, c->match, select); tmp = NULL; rt = NULL; - new_pos = c->ircmd + (ft_strlen(c->lst->name) - ft_strlen(c->match)) + 1; + new_pos = c->ircmd + (ft_strlen(select) - ft_strlen(c->match)) + 1; tmp = ft_strsub(c->rcmd, 0, ft_strlen(c->rcmd) - ft_strlen(c->match)); - rt = ft_strjoin(tmp, c->lst->name); + rt = ft_strjoin(tmp, select); tmp ? ft_memdel((void *)&tmp) : (0); if (c->trail) data_singleton()->line.input = ft_strjoin(rt, c->trail); @@ -52,7 +52,16 @@ int c_updater(t_comp *c) int c_gtfo(t_comp *c, long int keypress) { + t_clst *ptr; + DG("It's time to GTFO. Keypress [%d]", keypress); - (void)c; - return (0); + if (keypress != 10) + { + c_clear(data_singleton()); + return (0); + } + ptr = c->lst; + while (!ptr->cursor) + ptr = ptr->next; + return (c_updater(c, ptr->name)); } diff --git a/42sh/src/completion/completion.c b/42sh/src/completion/completion.c index f63bc0ea..af316a74 100644 --- a/42sh/src/completion/completion.c +++ b/42sh/src/completion/completion.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/09/20 14:50:33 by alao #+# #+# */ -/* Updated: 2017/02/03 15:39:26 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 15:47:19 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -83,7 +83,7 @@ static int c_dispatcher(t_data *s) c_clear(s); } else if (s->comp && s->comp->lst == s->comp->lst->next) - return (c_updater(s->comp)); + return (c_updater(s->comp, s->comp->lst->name)); else if (s->comp && s->comp->lst != s->comp->lst->next) { c_term_mv_down(s->comp); From 2d6b314a682adf2ac22bff29c5a7a7d0ece8fdab Mon Sep 17 00:00:00 2001 From: gwojda Date: Fri, 3 Feb 2017 16:13:36 +0100 Subject: [PATCH 14/98] completion semble fonctionnelle : plus de tests a faire ! :) --- 42sh/src/completion/c_output.c | 4 ++-- 42sh/src/line-editing/completion.c | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/42sh/src/completion/c_output.c b/42sh/src/completion/c_output.c index 3273d4b8..8fb7fd08 100644 --- a/42sh/src/completion/c_output.c +++ b/42sh/src/completion/c_output.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:10:38 by alao #+# #+# */ -/* Updated: 2017/02/03 15:47:16 by alao ### ########.fr */ +/* Updated: 2017/02/03 16:12:00 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -58,7 +58,7 @@ int c_gtfo(t_comp *c, long int keypress) if (keypress != 10) { c_clear(data_singleton()); - return (0); + return (1); } ptr = c->lst; while (!ptr->cursor) diff --git a/42sh/src/line-editing/completion.c b/42sh/src/line-editing/completion.c index 019cf514..cc968a28 100644 --- a/42sh/src/line-editing/completion.c +++ b/42sh/src/line-editing/completion.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 14:15:55 by gwojda #+# #+# */ -/* Updated: 2017/02/03 15:39:40 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 16:10:54 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,16 +18,15 @@ int ft_completion(int ret) char boolean; boolean = 0; - if ((ret != TOUCHE_TAB && ret != 10) - || (ret == 10 && !(data_singleton()->comp))) + if (((ret != TOUCHE_TAB && ret != 10) + || (ret == 10)) && !(data_singleton()->comp)) return (0); tmp = data_singleton()->line.pos; - if (ret == 10) - ft_puttermcaps("cd"); if (data_singleton()->comp || ret == TOUCHE_TAB) boolean = completion(ret); if (boolean || ret == 10) { + ft_puttermcaps("cd"); ft_current_str(data_singleton()->line.input, tmp); ft_get_next_str(data_singleton()->line.input, &tmp); data_singleton()->line.pos = tmp; From 2f647b820f8c287dd43fdd9cd44a1dd789665809 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 3 Feb 2017 16:15:55 +0100 Subject: [PATCH 15/98] no more skipping delims before lexing, removed superfluous headers from lib, readded do_job_notifications before prompt --- 42sh/Makefile | 1 - 42sh/includes/btree.h | 54 ------- 42sh/includes/builtin_read.h | 3 +- 42sh/includes/color.h | 56 ------- 42sh/includes/dlst.h | 35 ---- 42sh/includes/ft_curs.h | 83 ---------- 42sh/includes/ft_printf.h | 81 ---------- 42sh/includes/ft_xattr.h | 21 --- 42sh/includes/get_next_line.h | 31 ---- 42sh/includes/lexer.h | 2 +- 42sh/includes/libft.h | 162 ------------------- 42sh/includes/mytime.h | 34 ---- 42sh/libft | 2 +- 42sh/src/builtin/bt_read_get.c | 2 +- 42sh/src/exec/exec_command.c | 2 +- 42sh/src/job-control/do_job_notification.c | 2 +- 42sh/src/job-control/job_update_status.c | 2 +- 42sh/src/job-control/process_mark_status.c | 2 +- 42sh/src/lexer/ft_lexer.c | 15 +- 42sh/src/lexer/ft_post_tokenize.c | 2 +- 42sh/src/lexer/ft_tokenize.c | 2 +- 42sh/src/lexer/lexer_delim.c | 8 +- 42sh/src/lexer/reduce_bquotes.c | 7 +- 42sh/src/line-editing/ft_split_whitespaces.c | 79 --------- 42sh/src/line-editing/prompt.c | 6 +- 42sh/src/line-editing/readline.c | 2 +- 42sh/src/main/main.c | 2 +- 27 files changed, 27 insertions(+), 671 deletions(-) delete mode 100644 42sh/includes/btree.h delete mode 100644 42sh/includes/color.h delete mode 100644 42sh/includes/dlst.h delete mode 100644 42sh/includes/ft_curs.h delete mode 100644 42sh/includes/ft_printf.h delete mode 100644 42sh/includes/ft_xattr.h delete mode 100644 42sh/includes/get_next_line.h delete mode 100644 42sh/includes/libft.h delete mode 100644 42sh/includes/mytime.h delete mode 100644 42sh/src/line-editing/ft_split_whitespaces.c diff --git a/42sh/Makefile b/42sh/Makefile index 0b60f83d..4b179c9a 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -145,7 +145,6 @@ 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\ diff --git a/42sh/includes/btree.h b/42sh/includes/btree.h deleted file mode 100644 index 5839155c..00000000 --- a/42sh/includes/btree.h +++ /dev/null @@ -1,54 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* 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/builtin_read.h b/42sh/includes/builtin_read.h index 177f9176..bb8256a8 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/27 18:56:58 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:59:15 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,6 @@ # define BUILTIN_READ_H # include "types.h" -# include "libft.h" # include "builtin.h" # include "minishell.h" diff --git a/42sh/includes/color.h b/42sh/includes/color.h deleted file mode 100644 index 96eea18e..00000000 --- a/42sh/includes/color.h +++ /dev/null @@ -1,56 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* 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 deleted file mode 100644 index 42d73729..00000000 --- a/42sh/includes/dlst.h +++ /dev/null @@ -1,35 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* 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_curs.h b/42sh/includes/ft_curs.h deleted file mode 100644 index 02f3f314..00000000 --- a/42sh/includes/ft_curs.h +++ /dev/null @@ -1,83 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_curs.h :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: sbenning +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/08 16:34:51 by sbenning #+# #+# */ -/* Updated: 2016/12/09 17:08:52 by sbenning ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#ifndef FT_CURS_H -# define FT_CURS_H - -# include "libft.h" - -# include -# include -# include -# include -# include - -typedef struct s_curs t_curs; - -/* - * Cursor data : cursor's coordonate and windows size -*/ - -struct s_curs -{ - int co; - int li; - int win_co; - int win_li; -}; - -/* - * Cursor reference singleton -*/ - -t_curs *curs_single(t_curs *curs, int set); - -/* - * Cursor setup -*/ - -int curs_li_ask(void); -int curs_co_ask(void); - -int curs_term_setup(void); -void curs_win_setup(t_curs *curs); -int curs_coo_setup(t_curs *curs); -int curs_setup(t_curs *curs); - -/* - * Cursor cleanup -*/ - -int curs_term_cleanup(void); -int curs_cleanup(t_curs *curs); - -/* - * Cursor's data reset -*/ - -void curs_reset(int sig); - -/* - * Cursor manipulation function -*/ - -void curs_clear(t_curs *curs); -void curs_clear_post(t_curs *curs); -void curs_goto(t_curs *curs, int li, int co); -void curs_forward(t_curs *curs, int offset); -void curs_backward(t_curs *curs, int offset); -void curs_write(t_curs *curs, char *str, size_t len); -void curs_write_static(t_curs *curs, char *str, size_t len); -void curs_video_write(t_curs *curs, char *str, size_t len); -void curs_video_write_static(t_curs *curs, char *str, size_t len); - -#endif diff --git a/42sh/includes/ft_printf.h b/42sh/includes/ft_printf.h deleted file mode 100644 index 6db739f4..00000000 --- a/42sh/includes/ft_printf.h +++ /dev/null @@ -1,81 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* 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_xattr.h b/42sh/includes/ft_xattr.h deleted file mode 100644 index 9afadc18..00000000 --- a/42sh/includes/ft_xattr.h +++ /dev/null @@ -1,21 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ftxattr.h :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/11/07 13:24:05 by jhalford #+# #+# */ -/* Updated: 2016/11/07 13:24:05 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#ifndef FT_XATTR_H -# define FT_XATTR_H -# define FT_XATTR_SIZE 10000 -# include -# include - -int ft_xattr_print(char *path); -int ft_xattr_count(char *path); -#endif diff --git a/42sh/includes/get_next_line.h b/42sh/includes/get_next_line.h deleted file mode 100644 index b63d0ac2..00000000 --- a/42sh/includes/get_next_line.h +++ /dev/null @@ -1,31 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* get_next_line.h :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/11/05 12:21:36 by jhalford #+# #+# */ -/* Updated: 2016/12/15 13:07:58 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#ifndef GET_NEXT_LINE_H -# define GET_NEXT_LINE_H -# define BUFF_SIZE 32 - -# include "libft.h" -# include -# include - -typedef struct s_save t_save; - -struct s_save -{ - int fd; - char *str; -}; - -int get_next_line(int const fd, char **line); - -#endif diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index b23aa027..8e111ad3 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/03 15:06:59 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:35:01 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/includes/libft.h b/42sh/includes/libft.h deleted file mode 100644 index ecbe6bb5..00000000 --- a/42sh/includes/libft.h +++ /dev/null @@ -1,162 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* 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/mytime.h b/42sh/includes/mytime.h deleted file mode 100644 index 140e1100..00000000 --- a/42sh/includes/mytime.h +++ /dev/null @@ -1,34 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* mytime.h :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/11/25 11:43:12 by jhalford #+# #+# */ -/* Updated: 2016/11/25 20:26:20 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#ifndef MYTIME_H -# define MYTIME_H -# include "libft.h" - -struct s_mytime -{ - char *year; - char *month; - char *day; - char *hour; - char *min; - char *sec; -}; - -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/libft b/42sh/libft index fa4a21e3..92902c1c 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit fa4a21e3d0d0545831d661df1863a399e9154218 +Subproject commit 92902c1c6539152d9daadaf2a018b2d344f1224e diff --git a/42sh/src/builtin/bt_read_get.c b/42sh/src/builtin/bt_read_get.c index a7364b71..62700b5a 100644 --- a/42sh/src/builtin/bt_read_get.c +++ b/42sh/src/builtin/bt_read_get.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/21 18:00:03 by jhalford #+# #+# */ -/* Updated: 2017/01/22 16:24:55 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:58:41 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index b9db339a..54693a6a 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/03 13:45:08 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:47:38 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/job-control/do_job_notification.c b/42sh/src/job-control/do_job_notification.c index b47b83b0..74eff978 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/31 15:06:05 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:47:44 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/job-control/job_update_status.c b/42sh/src/job-control/job_update_status.c index e9f9a24e..1fa30cd5 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/31 15:07:51 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:50:30 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/job-control/process_mark_status.c b/42sh/src/job-control/process_mark_status.c index e071c53f..fd285c0b 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 15:10:04 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:50:29 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/ft_lexer.c b/42sh/src/lexer/ft_lexer.c index 78a67328..69c40fee 100644 --- a/42sh/src/lexer/ft_lexer.c +++ b/42sh/src/lexer/ft_lexer.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 15:30:59 by jhalford #+# #+# */ -/* Updated: 2017/02/03 15:15:13 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:40:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,20 +15,11 @@ int ft_lexer(t_list **alst, char **command) { int ret; - char *str; - ret = 0; if (!*command) return (1); - str = *command; - while (ft_is_delim(*str)) - str++; - str = ft_strdup(str); - ft_strdel(command); - *command = str; - if (!*str) - ret = 1; - else if (ft_tokenize(alst, *command, DEFAULT)) + ret = 0; + if (ft_tokenize(alst, *command, DEFAULT)) ret = 1; else if (ft_post_tokenize(alst, command)) ret = 1; diff --git a/42sh/src/lexer/ft_post_tokenize.c b/42sh/src/lexer/ft_post_tokenize.c index f88d45b5..619289ae 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:29:57 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:46:19 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/ft_tokenize.c b/42sh/src/lexer/ft_tokenize.c index 9da0c518..3fe3504c 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/03 15:06:52 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:39:53 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_delim.c b/42sh/src/lexer/lexer_delim.c index e941277f..8c785ce2 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/02/03 15:15:14 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:40:29 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,11 +16,15 @@ int lexer_delim(t_list **alst, char *str) { t_token *token; - token = *alst ? (*alst)->content : NULL; + token = (*alst)->content; while (ft_is_delim(*str)) str++; if (token->type) return (ft_tokenize(&(*alst)->next, str, DEFAULT)); else + { + if (!*str) + ft_lst_delif(alst, (*alst)->content, &ft_addrcmp, &token_free); return (ft_tokenize(alst, str, DEFAULT)); + } } diff --git a/42sh/src/lexer/reduce_bquotes.c b/42sh/src/lexer/reduce_bquotes.c index 418edde5..4e293684 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 15:16:24 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:40:36 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,10 +24,8 @@ 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 && *end) { @@ -37,10 +35,7 @@ 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/line-editing/ft_split_whitespaces.c b/42sh/src/line-editing/ft_split_whitespaces.c deleted file mode 100644 index 05506cfb..00000000 --- a/42sh/src/line-editing/ft_split_whitespaces.c +++ /dev/null @@ -1,79 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_split_whitespaces.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: gwojda +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/11/02 17:52:52 by gwojda #+# #+# */ -/* Updated: 2017/01/25 15:49:21 by gwojda ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "minishell.h" - -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/prompt.c b/42sh/src/line-editing/prompt.c index 94482a27..f322c9a5 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/02/03 15:52:53 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -54,6 +54,10 @@ void ft_prompt(void) { int ret; + do_job_notification(); + // yo gwojda enlève pas ca, je fait des notif de + // job control juste avant que tu mette ton prompt. + 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 f48668b4..cebb2bc5 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 18:03:23 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 15:57:35 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 931f4a63..17f8fbba 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 18:57:56 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 15:17:56 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 12d069d26be0ccfe49539b758c89fb219cc5f8fb Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 3 Feb 2017 16:28:47 +0100 Subject: [PATCH 16/98] fix des problemes de compilations post-merge --- 42sh/includes/ft_readline.h | 4 +++- 42sh/libft | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index 201f83d1..b559a11a 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/03 15:13:01 by alao ### ########.fr */ +/* Updated: 2017/02/03 16:27:48 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -172,4 +172,6 @@ int ft_completion(int ret); void ft_check_heredoc(char **str); +char *ft_strdupi_w(char const *s); + #endif diff --git a/42sh/libft b/42sh/libft index fa4a21e3..92902c1c 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit fa4a21e3d0d0545831d661df1863a399e9154218 +Subproject commit 92902c1c6539152d9daadaf2a018b2d344f1224e From 065aacaadd1de89c2a8842dded94799f983f336e Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 3 Feb 2017 17:36:07 +0100 Subject: [PATCH 17/98] removed debug messages from completion --- 42sh/includes/lexer.h | 2 +- 42sh/src/completion/c_binary.c | 5 +---- 42sh/src/completion/c_clear.c | 2 +- 42sh/src/completion/c_files.c | 6 +----- 42sh/src/completion/c_init.c | 2 +- 42sh/src/completion/c_output.c | 6 +----- 42sh/src/completion/c_parser.c | 5 ++--- 42sh/src/completion/c_pathsolver.c | 2 +- 42sh/src/completion/c_printer.c | 3 +-- 42sh/src/completion/c_terminal.c | 4 +--- 42sh/src/completion/completion.c | 17 +---------------- 42sh/src/exec/exec_command.c | 2 +- 42sh/src/main/main.c | 2 +- 13 files changed, 14 insertions(+), 44 deletions(-) diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 8e111ad3..10f600a7 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/03 15:35:01 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 17:31:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/completion/c_binary.c b/42sh/src/completion/c_binary.c index 9aa4fb75..555488a7 100644 --- a/42sh/src/completion/c_binary.c +++ b/42sh/src/completion/c_binary.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:30:57 by alao #+# #+# */ -/* Updated: 2017/02/03 13:30:59 by alao ### ########.fr */ +/* Updated: 2017/02/03 17:31:46 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,18 +23,15 @@ int c_seek_binary(t_data *s, t_comp *c) char **paths; int i; - DG("SB: Start"); i = 0; tmp = NULL; if (!(tmp = ft_strdup(ft_getenv(s->env, "PATH")))) return (-1); - DG("SB: Path extracted [%s]", tmp); paths = ft_strsplit(tmp, ':'); c->match = ft_strdup(c->rcmd); while (paths[i]) c_parser(c, paths[i++], c->rcmd); tmp ? ft_memdel((void *)&tmp) : (0); paths ? ft_sstrfree(paths) : (0); - DG("SB: End"); return (0); } diff --git a/42sh/src/completion/c_clear.c b/42sh/src/completion/c_clear.c index 1cc89271..57141311 100644 --- a/42sh/src/completion/c_clear.c +++ b/42sh/src/completion/c_clear.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 11:37:43 by alao #+# #+# */ -/* Updated: 2017/01/31 18:55:16 by alao ### ########.fr */ +/* Updated: 2017/02/03 17:32:05 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/completion/c_files.c b/42sh/src/completion/c_files.c index 005fb857..3eb56993 100644 --- a/42sh/src/completion/c_files.c +++ b/42sh/src/completion/c_files.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:31:21 by alao #+# #+# */ -/* Updated: 2017/02/03 13:30:50 by alao ### ########.fr */ +/* Updated: 2017/02/03 17:32:20 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,7 +39,6 @@ static char *c_slicer(t_comp *c) rt = ft_strsub(tmp, 0, i); if (i <= (int)ft_strlen(tmp) - i + 1) c->match = ft_strsub(tmp, i, ft_strlen(tmp) - i); - DG("From [%s] to path [%s] and match [%s]", tmp, rt, c->match); tmp ? ft_memdel((void *)&tmp) : (0); return (rt); } @@ -52,13 +51,10 @@ int c_seek_files(t_data *s, t_comp *c) { char *path; - DG("SF: Start"); (void)s; path = c_slicer(c); c->cpath = path_solver(c, path, NULL); - DG("Solved as [%s]", c->cpath); path ? ft_memdel((void *)&path) : (0); c_parser(c, c->cpath, c->match); - DG("SF: End"); return (0); } diff --git a/42sh/src/completion/c_init.c b/42sh/src/completion/c_init.c index f54a37a1..0b045bff 100644 --- a/42sh/src/completion/c_init.c +++ b/42sh/src/completion/c_init.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 11:21:16 by alao #+# #+# */ -/* Updated: 2017/02/03 13:38:53 by alao ### ########.fr */ +/* Updated: 2017/02/03 17:32:24 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/completion/c_output.c b/42sh/src/completion/c_output.c index 8fb7fd08..bd37994f 100644 --- a/42sh/src/completion/c_output.c +++ b/42sh/src/completion/c_output.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:10:38 by alao #+# #+# */ -/* Updated: 2017/02/03 16:12:00 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 17:32:36 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,8 +26,6 @@ int c_updater(t_comp *c, char *select) char *rt; int new_pos; - DG("\tUpdater"); - DG("RCMD [%s] match [%s] Candidat [%s]", c->rcmd, c->match, select); tmp = NULL; rt = NULL; new_pos = c->ircmd + (ft_strlen(select) - ft_strlen(c->match)) + 1; @@ -39,7 +37,6 @@ int c_updater(t_comp *c, char *select) else data_singleton()->line.input = ft_strdup(rt); data_singleton()->line.pos = new_pos; - DG("Resulting RCMD [%s] with pos [%d] from [%d]", rt, new_pos, c->ircmd); rt ? ft_memdel((void *)&rt) : (0); c_clear(data_singleton()); return (1); @@ -54,7 +51,6 @@ int c_gtfo(t_comp *c, long int keypress) { t_clst *ptr; - DG("It's time to GTFO. Keypress [%d]", keypress); if (keypress != 10) { c_clear(data_singleton()); diff --git a/42sh/src/completion/c_parser.c b/42sh/src/completion/c_parser.c index 90d5c717..08011808 100644 --- a/42sh/src/completion/c_parser.c +++ b/42sh/src/completion/c_parser.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:52:07 by alao #+# #+# */ -/* Updated: 2017/02/03 13:40:14 by alao ### ########.fr */ +/* Updated: 2017/02/03 17:35:47 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,7 +18,6 @@ static void c_add_to_lst(t_comp *c, t_clst *node) { - DG("PARSER: Adding node [%s]", node->name); if (c->lst == NULL) { c->lst = node; @@ -71,7 +70,7 @@ int c_parser(t_comp *c, char *path, char *name) DIR *rep; struct dirent *dirc; - DG("PARSER: Search for [%s] in [%s]", name, path); + (void)name; if (!(rep = opendir(path))) return (-1); while ((dirc = readdir(rep))) diff --git a/42sh/src/completion/c_pathsolver.c b/42sh/src/completion/c_pathsolver.c index adbf7c8f..140dae2d 100644 --- a/42sh/src/completion/c_pathsolver.c +++ b/42sh/src/completion/c_pathsolver.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/25 18:21:54 by alao #+# #+# */ -/* Updated: 2017/01/11 14:14:09 by alao ### ########.fr */ +/* Updated: 2017/02/03 17:32:50 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/completion/c_printer.c b/42sh/src/completion/c_printer.c index 9162bf7f..2a529fc6 100644 --- a/42sh/src/completion/c_printer.c +++ b/42sh/src/completion/c_printer.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 12:55:39 by alao #+# #+# */ -/* Updated: 2017/01/19 15:49:34 by alao ### ########.fr */ +/* Updated: 2017/02/03 17:35:15 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,6 @@ static void c_printer_node(t_clst *lst) { - DG("File [%s] type [%d]", lst->name, (int)lst->type); lst->cursor ? ft_putstr(tgetstr("us", NULL)) : (0); lst->cursor ? (ft_putstr_fd("\033[31m", 2)) : (0); lst->type == 4 ? ft_putstr_fd("\e[1;31m", 2) : (0); diff --git a/42sh/src/completion/c_terminal.c b/42sh/src/completion/c_terminal.c index 04b94f05..42245c97 100644 --- a/42sh/src/completion/c_terminal.c +++ b/42sh/src/completion/c_terminal.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/11 10:44:40 by alao #+# #+# */ -/* Updated: 2017/02/03 13:40:41 by alao ### ########.fr */ +/* Updated: 2017/02/03 17:33:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,7 +23,6 @@ void c_term_mv_back(t_comp *c) int lcmd; i = 0; - DG("Terminal back up"); while (i != (c->c_line)) { ft_putstr(tgetstr("up", NULL)); @@ -50,7 +49,6 @@ void c_term_mv_down(t_comp *c) int i; i = 0; - DG("Terminal down"); while (i < c->c_line) { ft_putstr(tgetstr("do", NULL)); diff --git a/42sh/src/completion/completion.c b/42sh/src/completion/completion.c index af316a74..e8d70302 100644 --- a/42sh/src/completion/completion.c +++ b/42sh/src/completion/completion.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/09/20 14:50:33 by alao #+# #+# */ -/* Updated: 2017/02/03 15:47:19 by alao ### ########.fr */ +/* Updated: 2017/02/03 17:33:41 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,33 +21,20 @@ int test(t_comp *c) t_clst *tmp; int i; - DG("\tAutocompletion dump"); i = 1; if (!(c->lst)) { - DG("Empty list"); return (0); } - if (c->lst && c->lst->cursor) - DG("Node [x] ID [%d] [%s]", c->lst->id, c->lst->name); - else - DG("Node [ ] ID [%d] [%s]", c->lst->id, c->lst->name); if (c->lst->prev != c->lst) { tmp = c->lst->next; while (tmp != c->lst) { - if (tmp->cursor) - DG("Node [x] ID [%d] [%s]", tmp->id, tmp->name); - else - DG("Node [ ] ID [%d] [%s]", tmp->id, tmp->name); i++; tmp = tmp->next; } } - DG("List configuration as:"); - DG("Max value: Length (X) %d Number (Y) %d", c->c_sx, c->c_sy); - DG("Translated to [%d] Lines and [%d] Column", c->c_line, c->c_pline); return (0); } @@ -79,7 +66,6 @@ static int c_dispatcher(t_data *s) { if (s->comp && s->comp->lst == NULL) { - DG("Empty list, flushing autocompletion"); c_clear(s); } else if (s->comp && s->comp->lst == s->comp->lst->next) @@ -117,7 +103,6 @@ int completion(long int keypress) t_data *s; s = data_singleton(); - DG("\n\n\t\tAutocompletion input key [%d]\n", (int)keypress); if (s->comp == NULL) { if (s->line.pos == 0) diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index 54693a6a..0a5a2721 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/03 15:47:38 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 17:30:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 17f8fbba..86709d2e 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/03 15:17:56 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 17:33:56 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 86fc221cb4684a802c904b98b659fb2badcb6620 Mon Sep 17 00:00:00 2001 From: gwojda Date: Fri, 3 Feb 2017 18:38:22 +0100 Subject: [PATCH 18/98] heredoc - historique avec point d'exclamation - sortie plus propre avec control D - historique ne prend plus en compte deux commandes consecutives egales --- 42sh/includes/ft_readline.h | 14 +++++++------- 42sh/src/line-editing/control_c_and_d.c | 5 ++++- 42sh/src/line-editing/get_touch.c | 2 +- 42sh/src/line-editing/heredoc.c | 5 ++++- 42sh/src/line-editing/history_parsing.c | 16 +++++++++++----- 42sh/src/line-editing/history_parsing_toolz.c | 3 +-- 42sh/src/line-editing/reader.c | 12 ++++++++---- 42sh/src/line-editing/readline.c | 5 +++-- 42sh/src/line-editing/tool_line.c | 3 ++- 9 files changed, 41 insertions(+), 24 deletions(-) diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index b559a11a..5a39f39c 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/03 16:27:48 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 16:36:20 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -66,12 +66,12 @@ # define SIZE_PROMPT_BRACKET 7 # define SIZE_PROMPT_BSLASH 2 -# define IS_QUOTES 1 << 0 -# define IS_BQUOTES 1 << 1 -# define IS_DQUOTES 1 << 2 -# define IS_ACCOLADE 1 << 3 -# define IS_BRACKET 1 << 4 -# define IS_BSLASH 1 << 5 +# define IS_QUOTES (1 << 0) +# define IS_BQUOTES (1 << 1) +# define IS_DQUOTES (1 << 2) +# define IS_ACCOLADE (1 << 3) +# define IS_BRACKET (1 << 4) +# define IS_BSLASH (1 << 5) # define HIST 1 diff --git a/42sh/src/line-editing/control_c_and_d.c b/42sh/src/line-editing/control_c_and_d.c index a194e7a0..7a1396bc 100644 --- a/42sh/src/line-editing/control_c_and_d.c +++ b/42sh/src/line-editing/control_c_and_d.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 15:17:28 by gwojda #+# #+# */ -/* Updated: 2017/02/02 16:43:15 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 18:27:23 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,7 +28,10 @@ void ft_control_d(void) str = &data_singleton()->line.input; pos = &data_singleton()->line.pos; if (!(*str) || (*str)[0] == '\0') + { + ft_putstr("exit\n"); builtin_exit(NULL, (char*[]){"exit", NULL}, NULL); + } else if (*pos < ft_strlen(*str)) ft_del(); else diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index b4ff5b06..77f5989b 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/03 15:24:37 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 18:00:09 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/heredoc.c b/42sh/src/line-editing/heredoc.c index 7637dcbd..36dd099a 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/02/02 16:09:42 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 18:15:07 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -41,6 +41,8 @@ static void ft_check_heredoc_2(char **str, char *end) *str = ft_strjoin(*str, "\n"); free(tmp); tmp = *str; + data_singleton()->line.input = NULL; + data_singleton()->line.pos = 0; tmp2 = ft_read_stdin(); if (!ft_strcmp(end, tmp2)) boolean = 1; @@ -74,4 +76,5 @@ void ft_check_heredoc(char **str) if (!end) return ; ft_check_heredoc_2(str, end); + free(end); } diff --git a/42sh/src/line-editing/history_parsing.c b/42sh/src/line-editing/history_parsing.c index 1da1f4dd..4ec1464f 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/02/03 11:57:07 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 17:57:21 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,6 +14,7 @@ static int ft_history_parsing_4(char *str, int *i) { + int tmp; if (!ft_strncmp("!!", str + *i, 2)) { ft_realloc_str_history(&(data_singleton()->line.input), *i, 0, 2); @@ -22,9 +23,10 @@ static int ft_history_parsing_4(char *str, int *i) } else if (ft_isdigit(str[(*i) + 1])) { + tmp = ft_nbr_len(ft_atoi(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)); + (*i) += tmp; return (1); } return (0); @@ -32,14 +34,16 @@ static int ft_history_parsing_4(char *str, int *i) static int ft_history_parsing_3(char *str, int *i) { + int tmp; if (ft_history_parsing_4(str, i)) return (1); - else if (str[*i + 1] == '-') + else if (str[*i + 1] == '-' && ft_isdigit(str[*i + 2])) { + tmp = ft_nbr_len(ft_atoi(str + *i + 2)); 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); + i += tmp; } else if (str[*i + 1] == '?') ft_realloc_str_history_3(&(data_singleton()->line.input), *i, @@ -54,6 +58,7 @@ static int ft_history_parsing_3(char *str, int *i) static void ft_history_parsing_2(void) { + data_singleton()->line.pos = 0; data_singleton()->line.opt = data_singleton()->line.opt | HIST; ft_prompt(); data_singleton()->line.input = ft_read_stdin(); @@ -74,7 +79,7 @@ void ft_history_parsing(void) str = data_singleton()->line.input; if (!str) return ; - while (str[i]) + while (str && str[i]) { if (str[i] == '!') { @@ -82,6 +87,7 @@ void ft_history_parsing(void) if (!ft_history_parsing_3(str, &i)) boolean = 0; } + str = data_singleton()->line.input; ++i; } if (boolean) diff --git a/42sh/src/line-editing/history_parsing_toolz.c b/42sh/src/line-editing/history_parsing_toolz.c index 31a4b818..3017d4ec 100644 --- a/42sh/src/line-editing/history_parsing_toolz.c +++ b/42sh/src/line-editing/history_parsing_toolz.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/25 14:09:39 by gwojda #+# #+# */ -/* Updated: 2017/01/25 14:41:29 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 17:03:23 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -40,7 +40,6 @@ void ft_realloc_str_history(char **str, size_t pos, int nb_his, int len) 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) { diff --git a/42sh/src/line-editing/reader.c b/42sh/src/line-editing/reader.c index 22d41fd2..70e53052 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/02/03 11:40:10 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 18:24:47 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -52,8 +52,10 @@ void ft_read_it(int input, size_t *pos, char **str) { int j; char t[5]; + size_t pos_tmp; j = 0; + pos_tmp = *pos; if (input == TOUCHE_DELETE || input < 0 || input == 892427035 || input == 126 || input == 993090331 || input == 925981467 || input == 21298 || input == 892427035 || input == 8270395 || @@ -61,7 +63,9 @@ void ft_read_it(int input, size_t *pos, char **str) return ; ft_read_it_2(input, t); ft_read_it_3(str, t, pos, &j); -// ft_current_str((*str) + (*pos) - j, *pos); -// ft_get_next_str((*str) + (*pos) - j, pos); - ft_putnc('\b', ft_strlen((*str)) - ((*pos))); + *pos = pos_tmp; + ft_current_str((*str), *pos); + ft_get_next_str((*str), pos); + ft_putnc('\b', *pos - (pos_tmp + j) + 1); + *pos = (pos_tmp + j); } diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index fd947591..61445543 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/03 16:23:38 by jhalford ### ########.fr */ +/* Updated: 2017/02/03 18:36:18 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -86,7 +86,8 @@ int ft_readline(void) ft_putchar('\n'); ft_check_heredoc(&data_singleton()->line.input); ft_history_parsing(); - if (data_singleton()->line.input) + if (data_singleton()->line.input && (!data_singleton()->line.list_beg || + ft_strcmp(data_singleton()->line.list_beg->prev->str, data_singleton()->line.input))) { ft_push_back_history(&data_singleton()->line.list_beg, ft_create_history_list(data_singleton()->line.input)); diff --git a/42sh/src/line-editing/tool_line.c b/42sh/src/line-editing/tool_line.c index 0745579b..4047df37 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/02/01 15:27:31 by gwojda ### ########.fr */ +/* Updated: 2017/02/03 17:50:48 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -37,6 +37,7 @@ void ft_putall_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); } void ft_current_str(char *str, size_t pos) From 288acbb3789430962be37d1ff0234db0f9a0dd73 Mon Sep 17 00:00:00 2001 From: gwojda Date: Sat, 4 Feb 2017 16:29:28 +0100 Subject: [PATCH 19/98] =?UTF-8?q?mise=20a=20la=20norme=20edition=20de=20li?= =?UTF-8?q?gne=20-=20heredoc=20mal=20g=C3=A9r=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/Makefile | 2 +- 42sh/includes/ft_readline.h | 6 +- 42sh/src/line-editing/check_backslash.c | 19 ++-- 42sh/src/line-editing/copy_cut_paste.c | 25 ++--- 42sh/src/line-editing/get_touch.c | 30 +++--- 42sh/src/line-editing/get_touch_toolz.c | 118 +++++++++++++--------- 42sh/src/line-editing/get_touch_toolz_2.c | 43 ++++---- 42sh/src/line-editing/history.c | 42 ++++---- 42sh/src/line-editing/history_parsing.c | 4 +- 42sh/src/line-editing/move_to_line.c | 12 +-- 42sh/src/line-editing/prompt.c | 5 +- 42sh/src/line-editing/reader.c | 10 +- 42sh/src/line-editing/readline.c | 26 ++--- 42sh/src/line-editing/surch_in_history.c | 83 ++++++++------- 42sh/src/line-editing/tool_line_2.c | 67 ++++++------ 42sh/src/line-editing/toolz.c | 4 +- 42sh/src/line-editing/toolz2.c | 13 +-- 42sh/src/line-editing/toolz_termcaps.c | 13 ++- 42sh/src/main/data_singleton.c | 2 +- 19 files changed, 279 insertions(+), 245 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index 83c7290c..b561d1da 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,7 +6,7 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/03 15:23:50 by gwojda ### ########.fr # +# Updated: 2017/02/04 12:47:31 by gwojda ### ########.fr # # # # **************************************************************************** # diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index 5a39f39c..da6f2f5c 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/03 16:36:20 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 14:50:04 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -73,6 +73,9 @@ # define IS_BRACKET (1 << 4) # define IS_BSLASH (1 << 5) +# define STR data_singleton()->line.input +# define POS data_singleton()->line.pos + # define HIST 1 # define ERROR_CNTL_R 1 @@ -88,7 +91,6 @@ typedef struct s_line { char *input; char *copy_tmp; - char *input_tmp; size_t pos; int prompt_size; int list_size; diff --git a/42sh/src/line-editing/check_backslash.c b/42sh/src/line-editing/check_backslash.c index 12eb1976..a9ef3294 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/03 15:27:37 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 14:51:44 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,13 +14,13 @@ t_prompt_type g_prompt_tab[] = { - {IS_QUOTES ,SIZE_PROMPT_QUOTES ,PROMPT_QUOTES}, - {IS_BQUOTES ,SIZE_PROMPT_BQUOTES ,PROMPT_BQUOTES}, - {IS_DQUOTES ,SIZE_PROMPT_DQUOTES ,PROMPT_DQUOTES}, - {IS_ACCOLADE ,SIZE_PROMPT_ACCOLADE ,PROMPT_ACCOLADE}, - {IS_BRACKET ,SIZE_PROMPT_BRACKET ,PROMPT_BRACKET}, - {IS_BSLASH ,SIZE_PROMPT_BSLASH ,PROMPT_BSLASH}, - {0 ,0 ,0}, + {IS_QUOTES, SIZE_PROMPT_QUOTES, PROMPT_QUOTES}, + {IS_BQUOTES, SIZE_PROMPT_BQUOTES, PROMPT_BQUOTES}, + {IS_DQUOTES, SIZE_PROMPT_DQUOTES, PROMPT_DQUOTES}, + {IS_ACCOLADE, SIZE_PROMPT_ACCOLADE, PROMPT_ACCOLADE}, + {IS_BRACKET, SIZE_PROMPT_BRACKET, PROMPT_BRACKET}, + {IS_BSLASH, SIZE_PROMPT_BSLASH, PROMPT_BSLASH}, + {0, 0, 0}, }; void ft_read_more(short c) @@ -50,9 +50,10 @@ void ft_read_more(short c) void ft_check_this_char(char c, short *status) { int i; - char stats[] = {'\'', '`', '\"', '{', '(', '\\', '\0'}; + char *stats; i = 0; + stats = "\'`\"{(\\"; while (stats[i] && stats[i] != c) ++i; if (!stats[i]) diff --git a/42sh/src/line-editing/copy_cut_paste.c b/42sh/src/line-editing/copy_cut_paste.c index 587469bb..df50ef51 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/02/02 16:10:51 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 14:55:05 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -36,7 +36,7 @@ static char *ft_strdupi_space(char const *s) return (str); } -void ft_v(void) +void ft_v(void) { size_t tmp_pos; int i; @@ -45,17 +45,14 @@ void ft_v(void) size_t *pos; tmp = data_singleton()->line.copy_tmp; - str = &data_singleton()->line.input; - pos = &data_singleton()->line.pos; - i = 0; + str = &STR; + pos = &POS; + i = -1; tmp_pos = *pos; if (!*str || !tmp) return ; - while (tmp[i]) - { + while (tmp[++i]) *str = ft_realloc_imput(*str, tmp[i], *pos + i); - ++i; - } if (*pos) { --(*pos); @@ -67,7 +64,7 @@ void ft_v(void) (*pos) = tmp_pos; } -void ft_x(void) +void ft_x(void) { int i; char **tmp; @@ -75,8 +72,8 @@ void ft_x(void) size_t *pos; tmp = &data_singleton()->line.copy_tmp; - str = &data_singleton()->line.input; - pos = &data_singleton()->line.pos; + str = &STR; + pos = &POS; if (!*str) return ; if (*tmp) @@ -98,8 +95,8 @@ void ft_c(void) size_t *pos; tmp = data_singleton()->line.copy_tmp; - str = &data_singleton()->line.input; - pos = &data_singleton()->line.pos; + str = &STR; + pos = &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 77f5989b..e75a4688 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/03 18:00:09 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 15:39:49 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,7 @@ t_key g_key[] = {TOUCHE_DELETE , &ft_del }, {TOUCHE_CTRL_C , &ft_control_c }, {TOUCHE_CTRL_D , &ft_control_d }, - {TOUCHE_CTRL_R , &ft_history_parsing }, + {TOUCHE_CTRL_R , &ft_surch_in_history }, {TOUCHE_SUPPR , &ft_suppr }, {TOUCHE_HOME , &ft_home }, {TOUCHE_END , &ft_end }, @@ -37,18 +37,23 @@ t_key g_key[] = {0 , 0 }, }; -char *ft_read_stdin(void) +static void ft_is_str(void) +{ + if (STR) + { + ft_current_str(STR, POS); + ft_get_next_str(STR, &POS); + if (STR[POS]) + ++(POS); + } +} + +char *ft_read_stdin(void) { int ret; int j; - if (data_singleton()->line.input) - { - 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); - } + ft_is_str(); if (data_singleton()->comp) c_clear(data_singleton()); while (42) @@ -65,9 +70,8 @@ char *ft_read_stdin(void) else if (ft_isprint(ret)) ft_print(ret); else if (ret == 10) - return (data_singleton()->line.input); + return (STR); else if (ft_isascii(ret) == 0) - ft_read_it(ret, &data_singleton()->line.pos, - &data_singleton()->line.input); + ft_read_it(ret, &POS, &STR); } } diff --git a/42sh/src/line-editing/get_touch_toolz.c b/42sh/src/line-editing/get_touch_toolz.c index f99820dc..51ddefa4 100644 --- a/42sh/src/line-editing/get_touch_toolz.c +++ b/42sh/src/line-editing/get_touch_toolz.c @@ -6,35 +6,67 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:42:54 by gwojda #+# #+# */ -/* Updated: 2017/02/03 12:08:45 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 15:17:19 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -void ft_found_prev_word(void) +static void ft_init_prev_word(size_t *pos, char *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] == ' ') + 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; +} + +static void ft_found_prev_word_2(int i, char *str, size_t *pos) +{ + 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_prev_word(void) +{ + int i; + char *str; + size_t *pos; + i = 0; + str = STR; + pos = &POS; + if (!*pos || !str) + return ; + ft_init_prev_word(pos, str); if (*pos >= 1 && str[*pos - 1] == '\n') { ft_puttermcaps("cd"); @@ -46,40 +78,40 @@ void ft_found_prev_word(void) ++(*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; - } + ft_found_prev_word_2(i, str, pos); } -void ft_found_next_word(void) +static void ft_found_next_word_2(void) +{ + char *str; + size_t *pos; + + str = STR; + pos = &POS; + 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); +} + +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; + str = STR; + pos = &POS; if (!str) return ; while (str[i + *pos] && str[i + *pos] == ' ') @@ -88,21 +120,7 @@ void ft_found_next_word(void) ++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); - } + ft_found_next_word_2(); else { while (str[i + *pos] && str[i + *pos] != '\n' && str[i + *pos] != ' ') diff --git a/42sh/src/line-editing/get_touch_toolz_2.c b/42sh/src/line-editing/get_touch_toolz_2.c index 05805aa2..045caba9 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 17:54:27 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 15:34:10 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,8 +23,8 @@ void ft_end(void) char *str; size_t *pos; - str = data_singleton()->line.input; - pos = &data_singleton()->line.pos; + str = STR; + pos = &POS; if (!str) return ; if (*pos) @@ -45,8 +45,8 @@ void ft_home(void) char *str; size_t *pos; - str = data_singleton()->line.input; - pos = &data_singleton()->line.pos; + str = STR; + pos = &POS; if (!str) return ; if (*pos) @@ -69,45 +69,40 @@ void ft_home(void) 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) + pos = &POS; + if (ft_strlen(STR) <= *pos) return ; - if (str[*pos] == '\n') + if (STR[*pos] == '\n') { if (*pos) { tmp = *pos - 1; - ft_get_beggin_with_curs(str, &tmp); + 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); + ft_current_str(STR, *pos); + ft_get_next_str(STR, pos); + (*pos) = (!STR[*pos]) ? *pos - 1 : *pos; + ft_get_beggin_with_curs(STR, pos); } else { - ft_putchar(str[*pos]); + ft_putchar(STR[*pos]); ++(*pos); } } void ft_move_left(void) { - char *str; size_t *pos; - str = data_singleton()->line.input; - pos = &data_singleton()->line.pos; + pos = &POS; if (!*pos) return ; - if (str[*pos - 1] == '\n') + if (STR[*pos - 1] == '\n') { if (*pos - 1 == 0) { @@ -117,9 +112,9 @@ void ft_move_left(void) } ft_puttermcaps("cd"); (*pos) -= 2; - ft_get_beggin(str, pos); - ft_current_str(str, *pos); - ft_get_next_str(str, pos); + ft_get_beggin(STR, pos); + ft_current_str(STR, *pos); + ft_get_next_str(STR, pos); ++(*pos); } else diff --git a/42sh/src/line-editing/history.c b/42sh/src/line-editing/history.c index cd587a51..b01157d3 100644 --- a/42sh/src/line-editing/history.c +++ b/42sh/src/line-editing/history.c @@ -6,23 +6,17 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 15:22:19 by gwojda #+# #+# */ -/* Updated: 2017/02/03 11:55:36 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 15:20:49 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -void ft_history_down(void) +static void ft_clear_before_history(char **str) { - 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 ; + pos = &POS; if (*str) { if (*pos) @@ -34,6 +28,20 @@ void ft_history_down(void) *pos = 0; ft_strdel(str); } +} + +void ft_history_down(void) +{ + t_list_history *head; + char **str; + size_t *pos; + + str = &STR; + pos = &POS; + head = data_singleton()->line.list_cur; + if (!head) + return ; + ft_clear_before_history(str); if (head->next) head = head->next; if (!head->str) @@ -55,22 +63,12 @@ void ft_history_up(void) char **str; size_t *pos; - str = &data_singleton()->line.input; - pos = &data_singleton()->line.pos; + str = &STR; + pos = &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); - } + ft_clear_before_history(str); if (head->prev) head = head->prev; if (!head->str) diff --git a/42sh/src/line-editing/history_parsing.c b/42sh/src/line-editing/history_parsing.c index 4ec1464f..5e7fac2d 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/02/03 17:57:21 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 15:35:25 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,6 +15,7 @@ static int ft_history_parsing_4(char *str, int *i) { int tmp; + if (!ft_strncmp("!!", str + *i, 2)) { ft_realloc_str_history(&(data_singleton()->line.input), *i, 0, 2); @@ -35,6 +36,7 @@ static int ft_history_parsing_4(char *str, int *i) static int ft_history_parsing_3(char *str, int *i) { int tmp; + if (ft_history_parsing_4(str, i)) return (1); else if (str[*i + 1] == '-' && ft_isdigit(str[*i + 2])) diff --git a/42sh/src/line-editing/move_to_line.c b/42sh/src/line-editing/move_to_line.c index c8161cfb..975e3100 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/02/02 15:07:08 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 15:36:25 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,9 +38,9 @@ static void ft_up_2(size_t *pos, char *str) (*pos) -= i; } -void ft_up(void) +void ft_up(void) { - int i; + int i; char *str; size_t *pos; @@ -79,10 +79,10 @@ static void ft_down_2(size_t *pos, char *str) ft_get_beggin_with_curs(str, pos); } -void ft_down(void) +void ft_down(void) { - int i; - int len; + int i; + int len; char *str; size_t *pos; diff --git a/42sh/src/line-editing/prompt.c b/42sh/src/line-editing/prompt.c index f322c9a5..1bbe01fd 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/02/03 15:52:53 by jhalford ### ########.fr */ +/* Updated: 2017/02/04 14:56:51 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -55,9 +55,6 @@ void ft_prompt(void) int ret; do_job_notification(); - // yo gwojda enlève pas ca, je fait des notif de - // job control juste avant que tu mette ton prompt. - ft_get_date(); ft_putstr("\033[22;36m"); ret = ft_currend_dir(); diff --git a/42sh/src/line-editing/reader.c b/42sh/src/line-editing/reader.c index 70e53052..684afd69 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/02/03 18:24:47 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 15:37:55 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -57,15 +57,15 @@ void ft_read_it(int input, size_t *pos, char **str) j = 0; pos_tmp = *pos; 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) + 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); ft_read_it_3(str, t, pos, &j); *pos = pos_tmp; ft_current_str((*str), *pos); ft_get_next_str((*str), pos); - ft_putnc('\b', *pos - (pos_tmp + j) + 1); + ft_putnc('\b', *pos - (pos_tmp + j)); *pos = (pos_tmp + j); } diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 61445543..efca1222 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -6,13 +6,13 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ -/* Updated: 2017/02/03 18:36:18 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 16:19:36 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -void ft_init_line(void) +void ft_init_line(void) { data_singleton()->line.input = NULL; data_singleton()->line.copy_tmp = NULL; @@ -24,7 +24,7 @@ void ft_init_line(void) data_singleton()->line.opt = 0; } -void ft_init_history(void) +void ft_init_history(void) { int fd; char *str; @@ -71,27 +71,27 @@ struct termios *ft_stats_term_termcaps(void) return (term); } -int ft_readline(void) +int ft_readline(void) { ft_save_stats_term(); if (tcsetattr(0, TCSANOW, ft_stats_term_termcaps()) == -1) return (-1); - if (data_singleton()->line.input) - ft_strdel(&data_singleton()->line.input); + if (STR) + ft_strdel(&STR); data_singleton()->line.list_cur = data_singleton()->line.list_beg; - data_singleton()->line.pos = 0; + POS = 0; ft_prompt(); - data_singleton()->line.input = ft_read_stdin(); + STR = ft_read_stdin(); ft_check_line(); ft_putchar('\n'); - ft_check_heredoc(&data_singleton()->line.input); + ft_check_heredoc(&STR); ft_history_parsing(); - if (data_singleton()->line.input && (!data_singleton()->line.list_beg || - ft_strcmp(data_singleton()->line.list_beg->prev->str, data_singleton()->line.input))) + if (STR && (!data_singleton()->line.list_beg || + ft_strcmp(data_singleton()->line.list_beg->prev->str, STR))) { 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); + ft_create_history_list(STR)); + ft_add_in_history_file(STR); } if (tcsetattr(0, TCSANOW, ft_save_stats_term()) == -1) return (-1); diff --git a/42sh/src/line-editing/surch_in_history.c b/42sh/src/line-editing/surch_in_history.c index 424dc5d2..28360348 100644 --- a/42sh/src/line-editing/surch_in_history.c +++ b/42sh/src/line-editing/surch_in_history.c @@ -6,13 +6,13 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/26 10:43:16 by gwojda #+# #+# */ -/* Updated: 2017/02/02 15:16:42 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 15:50:26 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -void ft_clear_prompt(char *str, size_t *pos, size_t srch_pos) +static void ft_clear_prompt(char *str, size_t *pos, size_t srch_pos) { if (str) ft_get_beggin_with_curs(str, pos); @@ -25,63 +25,68 @@ void ft_clear_prompt(char *str, size_t *pos, size_t srch_pos) ft_puttermcaps("cd"); } -void ft_surch_and_realloc(char **str, char **str_srch, int ret, size_t *srch_pos) +static 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(void) +static void ft_give_new_prompt(char *str_srch, size_t srch_pos) +{ + 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); + } +} + +static void ft_modify_str(char *str_srch, size_t srch_pos) +{ + 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); +} + +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) - ft_strdel(str); + 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); - } + ft_give_new_prompt(str_srch, srch_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) + ft_surch_and_realloc(&STR, &str_srch, ret, &srch_pos); + else if (ret == 127 && srch_pos) { - if (srch_pos) - { - --srch_pos; - str_srch = ft_remove_imput(str_srch, srch_pos); - ft_puttermcaps("le"); - } + --srch_pos; + str_srch = ft_remove_imput(str_srch, srch_pos); + ft_puttermcaps("le"); } - else + else if (ret != 127) 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); + ft_modify_str(str_srch, srch_pos); } diff --git a/42sh/src/line-editing/tool_line_2.c b/42sh/src/line-editing/tool_line_2.c index c5c9dd8e..e4783c0a 100644 --- a/42sh/src/line-editing/tool_line_2.c +++ b/42sh/src/line-editing/tool_line_2.c @@ -6,17 +6,19 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/20 19:07:52 by gwojda #+# #+# */ -/* Updated: 2017/02/02 14:16:24 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 16:27:34 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -static void ft_clear_window() +static void ft_clear_window(void) { pid_t soon_pid; - char *tab_str[2] = {(char *){"/usr/bin/clear"}, NULL}; + char *tab_str[2]; + tab_str[0] = "/usr/bin/clear"; + tab_str[1] = NULL; soon_pid = fork(); if (soon_pid != 0) wait(NULL); @@ -24,25 +26,10 @@ static void ft_clear_window() execve("/usr/bin/clear", tab_str, data_singleton()->env); } -void ft_printall(void) +static void ft_read_tmp(void) { - size_t pos_tmp; - int ret; - char *str; - size_t *pos; + int ret; - str = data_singleton()->line.input; - pos = &data_singleton()->line.pos; - ret = 0; - if (read(0, &ret, sizeof(int)) == -1 || ret != 126 || !str) - return ; - ft_clear_window(); - ft_prompt(); - pos_tmp = *pos; - ft_putstr("\033[31m"); - ft_puttermcaps("cd"); - ft_puttermcaps("sc"); - ft_putstr(str); while (42) { ret = 0; @@ -54,9 +41,36 @@ void ft_printall(void) break ; } } +} + +void ft_change_affichage(void) +{ + ft_putstr("\033[31m"); + ft_puttermcaps("cd"); + ft_puttermcaps("sc"); + ft_putstr(STR); + ft_read_tmp(); ft_puttermcaps("rc"); ft_puttermcaps("cd"); ft_putstr("\033[37m"); +} + +void ft_printall(void) +{ + size_t pos_tmp; + char *str; + size_t *pos; + int ret; + + str = STR; + pos = &POS; + ret = 0; + if (read(0, &ret, sizeof(int)) == -1 || ret != 126 || !str) + return ; + ft_clear_window(); + ft_prompt(); + pos_tmp = *pos; + ft_change_affichage(); if (*pos) --(*pos); ft_get_beggin(str, pos); @@ -69,18 +83,7 @@ void ft_printall(void) *pos = pos_tmp; } -void ft_check_end_of_line(char *str, size_t pos) -{ - if (!str) - return ; - if (ft_nb_last_line(str, pos) == 0) - { - ft_putchar(' '); - ft_puttermcaps("le"); - } -} - -void ft_get_beggin_with_curs(char *str, size_t *pos) +void ft_get_beggin_with_curs(char *str, size_t *pos) { while ((*pos) && str[(*pos)] != '\n') { diff --git a/42sh/src/line-editing/toolz.c b/42sh/src/line-editing/toolz.c index 1051442e..026f5439 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/02/02 16:22:47 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 16:19:49 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -43,7 +43,7 @@ char *ft_strndup(char const *s, int n) return (str); } -char *ft_strdupi(char const *s) +char *ft_strdupi(char const *s) { int i; char *str; diff --git a/42sh/src/line-editing/toolz2.c b/42sh/src/line-editing/toolz2.c index ce1c62f6..9a468b8f 100644 --- a/42sh/src/line-editing/toolz2.c +++ b/42sh/src/line-editing/toolz2.c @@ -6,17 +6,18 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/07 11:00:28 by gwojda #+# #+# */ -/* Updated: 2017/02/02 16:04:55 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 16:20:11 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -void ft_add_in_history_file(char *str) +void ft_add_in_history_file(char *str) { int fd; - fd = open(".42sh_history", O_CREAT | O_WRONLY | O_APPEND, S_IWUSR | S_IRUSR); + fd = open(".42sh_history", + O_CREAT | O_WRONLY | O_APPEND, S_IWUSR | S_IRUSR); if (fd == -1) return ; write(fd, str, ft_strlen(str)); @@ -24,7 +25,7 @@ void ft_add_in_history_file(char *str) close(fd); } -int ft_nbr_len(int nbr) +int ft_nbr_len(int nbr) { if (nbr % 10 != nbr) return (ft_nbr_len(nbr / 10) + 1); @@ -32,7 +33,7 @@ int ft_nbr_len(int nbr) return (1); } -void ft_puttermcaps(char *str) +void ft_puttermcaps(char *str) { char *res; char *env; @@ -43,7 +44,7 @@ void ft_puttermcaps(char *str) tputs(res, 0, ft_put); } -int ft_size_term(void) +int ft_size_term(void) { struct winsize w; diff --git a/42sh/src/line-editing/toolz_termcaps.c b/42sh/src/line-editing/toolz_termcaps.c index 901b026e..ba933617 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/24 11:19:34 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 16:26:55 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -43,3 +43,14 @@ int ft_nb_last_line(char *str, size_t pos) len += ft_get_size_prev(str, pos); return ((len) ? len % ft_size_term() : -1); } + +void ft_check_end_of_line(char *str, size_t pos) +{ + if (!str) + return ; + if (ft_nb_last_line(str, pos) == 0) + { + ft_putchar(' '); + ft_puttermcaps("le"); + } +} diff --git a/42sh/src/main/data_singleton.c b/42sh/src/main/data_singleton.c index 22c7306f..e73ed322 100644 --- a/42sh/src/main/data_singleton.c +++ b/42sh/src/main/data_singleton.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 11:36:39 by jhalford #+# #+# */ -/* Updated: 2017/02/03 15:25:13 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 10:55:39 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ From c77af3da9fca26b890d16c47c4269534b7fdd0a7 Mon Sep 17 00:00:00 2001 From: gwojda Date: Sat, 4 Feb 2017 18:28:05 +0100 Subject: [PATCH 20/98] mise a jour des parentheses/accolades --- 42sh/includes/ft_readline.h | 10 ++- 42sh/src/line-editing/check_backslash.c | 83 ++++++++++++++++++------- 42sh/src/line-editing/move_to_line.c | 7 ++- 42sh/src/line-editing/toolz.c | 14 ++++- 4 files changed, 87 insertions(+), 27 deletions(-) diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index da6f2f5c..e328b7b1 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/04 14:50:04 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 18:16:37 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -113,9 +113,17 @@ typedef struct s_prompt_type char *new_prompt; } t_prompt_type; +typedef struct s_brackets +{ + int pos; + char tabl[100]; +} t_brackets; + extern t_key g_keys[]; extern t_prompt_type g_prompt_tab[]; +extern t_brackets g_brackets; +void ft_reset_tab(char *tabl); void ft_putnc(char c, int n); int ft_nbr_len(int nbr); void ft_puttermcaps(char *str); diff --git a/42sh/src/line-editing/check_backslash.c b/42sh/src/line-editing/check_backslash.c index a9ef3294..7c5ea489 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/04 14:51:44 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 18:26:59 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,16 +14,18 @@ t_prompt_type g_prompt_tab[] = { - {IS_QUOTES, SIZE_PROMPT_QUOTES, PROMPT_QUOTES}, - {IS_BQUOTES, SIZE_PROMPT_BQUOTES, PROMPT_BQUOTES}, - {IS_DQUOTES, SIZE_PROMPT_DQUOTES, PROMPT_DQUOTES}, - {IS_ACCOLADE, SIZE_PROMPT_ACCOLADE, PROMPT_ACCOLADE}, - {IS_BRACKET, SIZE_PROMPT_BRACKET, PROMPT_BRACKET}, - {IS_BSLASH, SIZE_PROMPT_BSLASH, PROMPT_BSLASH}, - {0, 0, 0}, + {IS_QUOTES , SIZE_PROMPT_QUOTES , PROMPT_QUOTES }, + {IS_BQUOTES , SIZE_PROMPT_BQUOTES , PROMPT_BQUOTES }, + {IS_DQUOTES , SIZE_PROMPT_DQUOTES , PROMPT_DQUOTES }, + {IS_ACCOLADE , SIZE_PROMPT_ACCOLADE , PROMPT_ACCOLADE }, + {IS_BRACKET , SIZE_PROMPT_BRACKET , PROMPT_BRACKET }, + {IS_BSLASH , SIZE_PROMPT_BSLASH , PROMPT_BSLASH }, + {0 , 0 , 0 }, }; -void ft_read_more(short c) +t_brackets g_brackets = {0 , {0}}; + +void ft_read_more(short c) { char *str_tmp; char *str_tmp2; @@ -33,35 +35,35 @@ void ft_read_more(short c) str_tmp2 = data_singleton()->line.input; str_tmp = ft_strjoin(str_tmp2, "\n"); free(str_tmp2); - data_singleton()->line.input = NULL; - data_singleton()->line.pos = 0; + STR = NULL; + POS = 0; while (g_prompt_tab[i].key && !(g_prompt_tab[i].key & c)) ++i; data_singleton()->line.prompt_size = g_prompt_tab[i].value; ft_printf("\n%s", g_prompt_tab[i].new_prompt); str_tmp2 = ft_read_stdin(); - str_tmp2 = ft_strjoin(str_tmp, data_singleton()->line.input); + str_tmp2 = ft_strjoin(str_tmp, STR); free(str_tmp); - free(data_singleton()->line.input); - data_singleton()->line.input = str_tmp2; + free(STR); + STR = str_tmp2; ft_check_line(); } -void ft_check_this_char(char c, short *status) +static void ft_check_this_char_quotes(char c, short *status) { int i; char *stats; i = 0; - stats = "\'`\"{(\\"; + stats = "\'`\"\\"; while (stats[i] && stats[i] != c) ++i; if (!stats[i]) return ; - if (((1 << i) & ~(*status))) + if ((1 << i) & ~(*status)) { - if (((1 << i) > *status && - (*status == 0 && !(IS_QUOTES & *status) && (!(IS_DQUOTES & *status)))) + if (((1 << i) > *status && (*status == 0 && !(IS_QUOTES & *status) + && (!(IS_DQUOTES & *status)))) || (((1 << i) == IS_BQUOTES) && !(IS_QUOTES & *status))) (*status) = (*status) | (1 << i); } @@ -69,7 +71,34 @@ void ft_check_this_char(char c, short *status) (*status) = (*status) ^ (1 << i); } -void ft_check_line(void) +static int ft_brackets(char c) +{ + if (c == '(') + { + g_brackets.tabl[g_brackets.pos] = '('; + ++g_brackets.pos; + } + else if (c == '{') + { + g_brackets.tabl[g_brackets.pos] = '{'; + ++g_brackets.pos; + } + else if (c == '}') + { + if (!g_brackets.pos || g_brackets.tabl[g_brackets.pos - 1] != '{') + return (1); + g_brackets.tabl[--g_brackets.pos] = '\0'; + } + else if (c == ')') + { + if (!g_brackets.pos || g_brackets.tabl[g_brackets.pos - 1] != '(') + return (1); + g_brackets.tabl[--g_brackets.pos] = '\0'; + } + return (0); +} + +void ft_check_line(void) { int i; char *str; @@ -77,7 +106,9 @@ void ft_check_line(void) i = 0; status = 0; - str = data_singleton()->line.input; + str = STR; + ft_reset_tab((char *)g_brackets.tabl); + g_brackets.pos = 0; if (!str) return ; while (str[i]) @@ -85,9 +116,17 @@ void ft_check_line(void) if (IS_BSLASH & status) status = status ^ IS_BSLASH; else - ft_check_this_char(str[i], &status); + { + ft_check_this_char_quotes(str[i], &status); + if (!status && ft_brackets(str[i])) + return ; + } ++i; } + if (g_brackets.pos && g_brackets.tabl[0] == '(') + status = status | IS_BRACKET; + else if (g_brackets.pos && g_brackets.tabl[0] == '{') + status = status | IS_ACCOLADE; if (status) ft_read_more(status); } diff --git a/42sh/src/line-editing/move_to_line.c b/42sh/src/line-editing/move_to_line.c index 975e3100..d337893e 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/02/04 15:36:25 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 16:35:33 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -47,12 +47,13 @@ void ft_up(void) i = 0; str = data_singleton()->line.input; pos = &data_singleton()->line.pos; - if (!str) + if (!str || !*pos) return ; if (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); diff --git a/42sh/src/line-editing/toolz.c b/42sh/src/line-editing/toolz.c index 026f5439..8f872021 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/02/04 16:19:49 by gwojda ### ########.fr */ +/* Updated: 2017/02/04 18:16:34 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -64,3 +64,15 @@ char *ft_strdupi(char const *s) } return (str); } + +void ft_reset_tab(char *tabl) +{ + int i; + + i = 0; + while (tabl[i]) + { + tabl[i] = '\0'; + ++i; + } +} From 1afdd9528bde3991e57615ab0c2d721cc7c7fe9e Mon Sep 17 00:00:00 2001 From: gwojda Date: Sun, 5 Feb 2017 17:13:26 +0100 Subject: [PATCH 21/98] =?UTF-8?q?correction=20des=20heredocs=20+=20correct?= =?UTF-8?q?ions=20de=20quelques=20bugs=20mineurs=20sur=20l'edition=20de=20?= =?UTF-8?q?ligne=20(le=20gain=20de=20ligne=20a=20peut-etre=20entrain=C3=A9?= =?UTF-8?q?=20des=20bugs=20que=20j'ai=20rat=C3=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/src/line-editing/check_backslash.c | 18 ++-- 42sh/src/line-editing/completion.c | 10 +-- 42sh/src/line-editing/control_c_and_d.c | 20 ++--- 42sh/src/line-editing/copy_cut_paste.c | 42 ++++----- 42sh/src/line-editing/get_touch.c | 2 +- 42sh/src/line-editing/get_touch_toolz.c | 76 ++++++++-------- 42sh/src/line-editing/get_touch_toolz_2.c | 103 ++++++++++------------ 42sh/src/line-editing/heredoc.c | 39 ++++++-- 42sh/src/line-editing/history.c | 53 +++++------ 42sh/src/line-editing/history_parsing.c | 14 ++- 42sh/src/line-editing/move_to_line.c | 40 ++++----- 42sh/src/line-editing/print_and_del.c | 66 ++++++-------- 42sh/src/line-editing/tool_line_2.c | 30 +++---- 13 files changed, 230 insertions(+), 283 deletions(-) diff --git a/42sh/src/line-editing/check_backslash.c b/42sh/src/line-editing/check_backslash.c index 7c5ea489..f20fb5ec 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/04 18:26:59 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 12:40:21 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -101,32 +101,28 @@ static int ft_brackets(char c) void ft_check_line(void) { int i; - char *str; short status; - i = 0; + i = -1; status = 0; - str = STR; ft_reset_tab((char *)g_brackets.tabl); g_brackets.pos = 0; - if (!str) + if (!STR) return ; - while (str[i]) + while (STR[++i]) { if (IS_BSLASH & status) status = status ^ IS_BSLASH; else { - ft_check_this_char_quotes(str[i], &status); - if (!status && ft_brackets(str[i])) + ft_check_this_char_quotes(STR[i], &status); + if (!status && ft_brackets(STR[i])) return ; } - ++i; } if (g_brackets.pos && g_brackets.tabl[0] == '(') status = status | IS_BRACKET; else if (g_brackets.pos && g_brackets.tabl[0] == '{') status = status | IS_ACCOLADE; - if (status) - ft_read_more(status); + (status) ? ft_read_more(status) : 0; } diff --git a/42sh/src/line-editing/completion.c b/42sh/src/line-editing/completion.c index cc968a28..708f3b2c 100644 --- a/42sh/src/line-editing/completion.c +++ b/42sh/src/line-editing/completion.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 14:15:55 by gwojda #+# #+# */ -/* Updated: 2017/02/03 16:10:54 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 16:48:20 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,15 +21,15 @@ int ft_completion(int ret) if (((ret != TOUCHE_TAB && ret != 10) || (ret == 10)) && !(data_singleton()->comp)) return (0); - tmp = data_singleton()->line.pos; + tmp = POS; if (data_singleton()->comp || ret == TOUCHE_TAB) boolean = completion(ret); if (boolean || ret == 10) { ft_puttermcaps("cd"); - ft_current_str(data_singleton()->line.input, tmp); - ft_get_next_str(data_singleton()->line.input, &tmp); - data_singleton()->line.pos = tmp; + ft_current_str(STR, tmp); + ft_get_next_str(STR, &tmp); + POS = tmp; } return (1); } diff --git a/42sh/src/line-editing/control_c_and_d.c b/42sh/src/line-editing/control_c_and_d.c index 7a1396bc..64dc4716 100644 --- a/42sh/src/line-editing/control_c_and_d.c +++ b/42sh/src/line-editing/control_c_and_d.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 15:17:28 by gwojda #+# #+# */ -/* Updated: 2017/02/03 18:27:23 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 16:49:10 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,17 +22,12 @@ void ft_buff_f6(void) 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') + if (!STR || STR[0] == '\0') { ft_putstr("exit\n"); builtin_exit(NULL, (char*[]){"exit", NULL}, NULL); } - else if (*pos < ft_strlen(*str)) + else if (POS < ft_strlen(STR)) ft_del(); else ft_puttermcaps("bl"); @@ -40,13 +35,8 @@ void ft_control_d(void) 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; + 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 df50ef51..5bb0374e 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/02/04 14:55:05 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 17:07:12 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -41,48 +41,40 @@ void ft_v(void) size_t tmp_pos; int i; char *tmp; - char **str; - size_t *pos; tmp = data_singleton()->line.copy_tmp; - str = &STR; - pos = &POS; i = -1; - tmp_pos = *pos; - if (!*str || !tmp) + tmp_pos = POS; + if (!STR || !tmp) return ; while (tmp[++i]) - *str = ft_realloc_imput(*str, tmp[i], *pos + i); - if (*pos) + STR = ft_realloc_imput(STR, tmp[i], POS + i); + if (POS) { - --(*pos); - ft_get_beggin_with_curs(*str, 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; + 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 = &STR; - pos = &POS; - if (!*str) + if (!STR) return ; if (*tmp) ft_strdel(tmp); - *tmp = ft_strdupi_space(&(*str)[(*pos)]); + *tmp = ft_strdupi_space(&STR[POS]); i = ft_strlen(*tmp); while (i >= 0) { - *str = ft_remove_imput(*str, *pos + i); + STR = ft_remove_imput(STR, POS + i); --i; } ft_puttermcaps("cd"); @@ -91,13 +83,9 @@ void ft_x(void) void ft_c(void) { char *tmp; - char **str; - size_t *pos; tmp = data_singleton()->line.copy_tmp; - str = &STR; - pos = &POS; if (tmp) ft_strdel(&tmp); - tmp = ft_strdupi_space((*str) + (*pos)); + 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 e75a4688..bea7ad8a 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/04 15:39:49 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 16:57:57 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/get_touch_toolz.c b/42sh/src/line-editing/get_touch_toolz.c index 51ddefa4..0f6e0ab6 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/04 15:17:19 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 16:57:51 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -58,76 +58,70 @@ static void ft_found_prev_word_2(int i, char *str, size_t *pos) void ft_found_prev_word(void) { int i; - char *str; - size_t *pos; i = 0; - str = STR; - pos = &POS; - if (!*pos || !str) + if (!POS || !STR) return ; - ft_init_prev_word(pos, str); - if (*pos >= 1 && str[*pos - 1] == '\n') + ft_init_prev_word(&POS, STR); + if (POS >= 1 && STR[POS - 1] == '\n') { + if (POS - 1 == 0) + { + ft_puttermcaps("cd"); + --POS; + return ; + } 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); + POS -= 2; + ft_get_beggin(STR, &POS); + if (!POS && STR[POS] == '\n') + ++POS; + ft_current_str(STR, POS); + ft_get_next_str(STR, &POS); + ++POS; } else - ft_found_prev_word_2(i, str, pos); + ft_found_prev_word_2(i, STR, &POS); } static void ft_found_next_word_2(void) { - char *str; - size_t *pos; - - str = STR; - pos = &POS; - if (*pos) + if (POS) { - --(*pos); - ft_get_beggin_with_curs(str, 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); + ft_get_next_str(STR, &POS); + POS += (POS || STR[0] != '\n') ? 2 : 1; + ft_current_str(STR, POS); + ft_get_next_str(STR, &POS); + if (!STR[POS]) + --POS; + ft_get_beggin_with_curs(STR, &POS); } void ft_found_next_word(void) { int i; - char *str; - size_t *pos; i = 0; - str = STR; - pos = &POS; - if (!str) + if (!STR) return ; - while (str[i + *pos] && str[i + *pos] == ' ') + while (STR[i + POS] && STR[i + POS] == ' ') { - ft_putchar(str[i + *pos]); + ft_putchar(STR[i + POS]); ++i; } - if (str[*pos] == '\n') + if (STR[POS] == '\n') ft_found_next_word_2(); else { - while (str[i + *pos] && str[i + *pos] != '\n' && str[i + *pos] != ' ') + while (STR[i + POS] && STR[i + POS] != '\n' && STR[i + POS] != ' ') { - ft_putchar(str[i + *pos]); + ft_putchar(STR[i + POS]); ++i; } - *pos += i; + POS += i; } } diff --git a/42sh/src/line-editing/get_touch_toolz_2.c b/42sh/src/line-editing/get_touch_toolz_2.c index 045caba9..dc05a282 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/04 15:34:10 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 17:07:43 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,106 +20,93 @@ int ft_put(int nb) void ft_end(void) { - char *str; - size_t *pos; - - str = STR; - pos = &POS; - if (!str) + if (!STR) return ; - if (*pos) + if (POS) { - --(*pos); - ft_get_beggin_with_curs(str, 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); + while (STR[POS]) + ++POS; + ft_get_beggin(STR, &POS); + ft_current_str(STR, POS); + ft_get_next_str(STR, &POS); } void ft_home(void) { - char *str; - size_t *pos; - - str = STR; - pos = &POS; - if (!str) + if (!STR) return ; - if (*pos) + if (POS) { - --(*pos); - ft_get_beggin_with_curs(str, pos); - if (str[*pos + 1] == '\n') + --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); + 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(void) { size_t tmp; - size_t *pos; - pos = &POS; - if (ft_strlen(STR) <= *pos) + if (ft_strlen(STR) <= POS) return ; - if (STR[*pos] == '\n') + if (STR[POS] == '\n') { - if (*pos) + if (POS) { - tmp = *pos - 1; + 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); - (*pos) = (!STR[*pos]) ? *pos - 1 : *pos; - ft_get_beggin_with_curs(STR, pos); + ++POS; + ft_current_str(STR, POS); + ft_get_next_str(STR, &POS); + POS = (!STR[POS]) ? POS - 1 : POS; + ft_get_beggin_with_curs(STR, &POS); } else { - ft_putchar(STR[*pos]); - ++(*pos); + ft_putchar(STR[POS]); + ++POS; } } void ft_move_left(void) { - size_t *pos; - - pos = &POS; - if (!*pos) + if (!POS) return ; - if (STR[*pos - 1] == '\n') + if (STR[POS - 1] == '\n') { - if (*pos - 1 == 0) + if (POS - 1 == 0) { ft_puttermcaps("cd"); - --(*pos); + --POS; return ; } ft_puttermcaps("cd"); - (*pos) -= 2; - ft_get_beggin(STR, pos); - ft_current_str(STR, *pos); - ft_get_next_str(STR, pos); - ++(*pos); + POS -= 2; + ft_get_beggin(STR, &POS); + if (!POS && STR[POS] == '\n') + ++POS; + ft_current_str(STR, POS); + ft_get_next_str(STR, &POS); + ++POS; } else { ft_puttermcaps("le"); - --(*pos); + --POS; } } diff --git a/42sh/src/line-editing/heredoc.c b/42sh/src/line-editing/heredoc.c index 36dd099a..dac00a24 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/02/03 18:15:07 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 12:21:21 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,13 +19,39 @@ char *ft_get_next_word(char *str) j = 0; k = 0; - while (str[j] && str[j] == ' ') + while (str[j] && (str[j] == ' ' || str[j] == '\n')) ++j; - while (str[j + k] && str[j + k] != ' ') + while (str[j + k] && str[j + k] != ' ' && str[j + k] != '\n') ++k; return (ft_strndup(str + j, k)); } +static void ft_after_retline(char *str, int *i) +{ + while (str[*i] && str[*i] != '\n') + ++(*i); + if (str[*i] == '\n') + ++(*i); +} + +static int ft_is_keyword(char *str, char *end) +{ + int i; + int j; + + i = 0; + while (str[i]) + { + ft_after_retline(str, &i); + j = 0; + while (str[i + j] && str[i + j] != '\n') + ++j; + if (str[i] && ft_strncmp(str + i, end, j) == 0) + return (0); + } + return (1); +} + static void ft_check_heredoc_2(char **str, char *end) { char boolean; @@ -67,7 +93,12 @@ void ft_check_heredoc(char **str) if ((*str)[i] == '<' && !ft_strncmp(*str + i, "<<", 2)) { if ((*str)[i + 1] == '<' && (*str)[i + 2]) + { end = ft_get_next_word(*str + i + 2); + if (ft_is_keyword(*str, end)) + ft_check_heredoc_2(str, end); + free(end); + } else return ; } @@ -75,6 +106,4 @@ void ft_check_heredoc(char **str) } if (!end) return ; - ft_check_heredoc_2(str, end); - free(end); } diff --git a/42sh/src/line-editing/history.c b/42sh/src/line-editing/history.c index b01157d3..b2e40292 100644 --- a/42sh/src/line-editing/history.c +++ b/42sh/src/line-editing/history.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 15:22:19 by gwojda #+# #+# */ -/* Updated: 2017/02/04 15:20:49 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 17:00:18 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,18 +14,15 @@ static void ft_clear_before_history(char **str) { - size_t *pos; - - pos = &POS; if (*str) { - if (*pos) + if (POS) { - --(*pos); - ft_get_beggin_with_curs(*str, pos); + --POS; + ft_get_beggin_with_curs(*str, &POS); } ft_puttermcaps("cd"); - *pos = 0; + POS = 0; ft_strdel(str); } } @@ -33,53 +30,45 @@ static void ft_clear_before_history(char **str) void ft_history_down(void) { t_list_history *head; - char **str; - size_t *pos; - str = &STR; - pos = &POS; head = data_singleton()->line.list_cur; if (!head) return ; - ft_clear_before_history(str); + ft_clear_before_history(&STR); if (head->next) head = head->next; if (!head->str) - *str = NULL; + STR = NULL; else - *str = ft_strdup(head->str); - if (*str) - ft_current_str(*str, *pos); - if (*str) - *pos = ft_strlen_next(*str, *pos); + STR = ft_strdup(head->str); + if (STR) + ft_current_str(STR, POS); + if (STR) + POS = ft_strlen_next(STR, POS); else - *pos = 0; + POS = 0; data_singleton()->line.list_cur = head; } void ft_history_up(void) { t_list_history *head; - char **str; - size_t *pos; - str = &STR; - pos = &POS; head = data_singleton()->line.list_cur; if (!head) return ; - ft_clear_before_history(str); + ft_clear_before_history(&STR); if (head->prev) head = head->prev; if (!head->str) - *str = NULL; + STR = NULL; else - *str = ft_strdup(head->str); - if (*str) - ft_current_str(*str, *pos); - if (*str) - *pos = ft_strlen_next(*str, *pos); + STR = ft_strdup(head->str); + if (STR) + ft_current_str(STR, POS); + if (STR) + POS = ft_strlen_next(STR, POS); else - *pos = 0; + 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 5e7fac2d..15288f3c 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/02/04 15:35:25 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 16:58:43 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -72,24 +72,22 @@ static void ft_history_parsing_2(void) void ft_history_parsing(void) { - char *str; int i; char boolean; i = 0; boolean = 0; - str = data_singleton()->line.input; - if (!str) + if (!STR) return ; - while (str && str[i]) + while (STR && STR[i]) { - if (str[i] == '!') + if (STR[i] == '!') { boolean = 1; - if (!ft_history_parsing_3(str, &i)) + if (!ft_history_parsing_3(STR, &i)) boolean = 0; } - str = data_singleton()->line.input; + STR = data_singleton()->line.input; ++i; } if (boolean) diff --git a/42sh/src/line-editing/move_to_line.c b/42sh/src/line-editing/move_to_line.c index d337893e..0ce1e938 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/02/04 16:35:33 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 17:01:51 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -41,26 +41,22 @@ static void ft_up_2(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 || !*pos) + if (!STR || !POS) return ; - if (str[*pos - 1] == '\n') + if (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); + if (POS >= 2) + POS -= 2; + ft_get_beggin(STR, &POS); + ft_current_str(STR, POS); + ft_get_next_str(STR, &POS); + ++POS; } else - ft_up_2(pos, str); + ft_up_2(&POS, STR); } static void ft_down_2(size_t *pos, char *str) @@ -84,24 +80,20 @@ 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) + if (!STR) return ; - if (str[*pos] == '\n') - ft_down_2(pos, str); + if (STR[POS] == '\n') + ft_down_2(&POS, STR); else { len = ft_size_term(); - while (str[i + *pos] && str[i + *pos] != '\n' && --len + 1) + while (STR[i + POS] && STR[i + POS] != '\n' && --len + 1) { - ft_putchar(str[i + *pos]); + ft_putchar(STR[i + POS]); ++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 ac352ae1..09f85fe5 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 15:10:50 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 17:08:58 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,21 +26,17 @@ int ft_found_next_char(char *str, size_t i) void ft_print(int ret) { 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') + STR = ft_realloc_imput(STR, ret, POS); + while (*(STR + POS + j) && *(STR + POS + j) != '\n') { - ft_putchar(*((*str) + *i + j)); + ft_putchar(*(STR + POS + j)); ++j; } - ft_check_end_of_line(*str, *i + j); + ft_check_end_of_line(STR, POS + j); ft_putnc('\b', j - 1); - ++(*i); + ++POS; } void ft_suppr_2(char **str, size_t *i, size_t tmp) @@ -60,53 +56,45 @@ 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) + if (POS <= 0) return ; - if ((*str)[*i - 1] != '\n') + if (STR[POS - 1] != '\n') boolean = 1; - --(*i); - tmp = *i; + --POS; + tmp = POS; if (boolean) { - ft_get_beggin_with_curs(*str, i); - *str = ft_remove_imput((*str), tmp); + ft_get_beggin_with_curs(STR, &POS); + 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_get_beggin(STR, &POS); } - ft_suppr_2(str, i, tmp); + ft_suppr_2(&STR, &POS, tmp); } 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)))) + tmp = POS; + STR = ft_remove_imput(STR, tmp); + if (!(STR && POS < ft_strlen(STR + 1))) return ; - if (*i) + if (POS) { - --(*i); - ft_get_beggin_with_curs(*str, i); + --POS; + ft_get_beggin_with_curs(STR, &POS); } ft_puttermcaps("cd"); - ft_current_str(*str, *i); - ft_get_next_str(*str, i); - if ((*str)[*i]) - ++(*i); - ft_putnc('\b', *i - tmp); - (*i) = tmp; + ft_current_str(STR, POS); + ft_get_next_str(STR, &POS); + if (STR[POS] && STR[POS] != '\n') + ++POS; + ft_putnc('\b', POS - tmp); + POS = tmp; } diff --git a/42sh/src/line-editing/tool_line_2.c b/42sh/src/line-editing/tool_line_2.c index e4783c0a..6753278a 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/04 16:27:34 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 17:06:07 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -58,29 +58,25 @@ void ft_change_affichage(void) void ft_printall(void) { size_t pos_tmp; - char *str; - size_t *pos; int ret; - str = STR; - pos = &POS; ret = 0; - if (read(0, &ret, sizeof(int)) == -1 || ret != 126 || !str) + if (read(0, &ret, sizeof(int)) == -1 || ret != 126 || !STR) return ; ft_clear_window(); ft_prompt(); - pos_tmp = *pos; + pos_tmp = POS; ft_change_affichage(); - if (*pos) - --(*pos); - ft_get_beggin(str, pos); - ft_current_str(str, *pos); - ft_get_next_str(str, pos); - if (*pos && !str[*pos]) - --(*pos); - if (*pos) - ft_putnc('\b', *pos - pos_tmp + 1); - *pos = pos_tmp; + if (POS) + --POS; + ft_get_beggin(STR, &POS); + ft_current_str(STR, POS); + ft_get_next_str(STR, &POS); + if (POS && !STR[POS]) + --POS; + if (POS) + ft_putnc('\b', POS - pos_tmp + 1); + POS = pos_tmp; } void ft_get_beggin_with_curs(char *str, size_t *pos) From f63737a90c67c9e6b5086dcd101855784bb7663a Mon Sep 17 00:00:00 2001 From: gwojda Date: Sun, 5 Feb 2017 17:45:17 +0100 Subject: [PATCH 22/98] changement des couleurs du prompt - correction leger bug sur le backslash --- 42sh/includes/ft_readline.h | 8 ++++---- 42sh/src/line-editing/check_backslash.c | 2 +- 42sh/src/line-editing/prompt.c | 17 +++++++++-------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index e328b7b1..97297893 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/04 18:16:37 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 17:44:07 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -69,9 +69,9 @@ # define IS_QUOTES (1 << 0) # define IS_BQUOTES (1 << 1) # define IS_DQUOTES (1 << 2) -# define IS_ACCOLADE (1 << 3) -# define IS_BRACKET (1 << 4) -# define IS_BSLASH (1 << 5) +# define IS_BSLASH (1 << 3) +# define IS_ACCOLADE (1 << 4) +# define IS_BRACKET (1 << 5) # define STR data_singleton()->line.input # define POS data_singleton()->line.pos diff --git a/42sh/src/line-editing/check_backslash.c b/42sh/src/line-editing/check_backslash.c index f20fb5ec..4d8412b9 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/05 12:40:21 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 17:43:44 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/prompt.c b/42sh/src/line-editing/prompt.c index 1bbe01fd..ea94ec3b 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/02/04 14:56:51 by gwojda ### ########.fr */ +/* Updated: 2017/02/05 17:42:23 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,13 +23,14 @@ static void ft_get_date(void) t = time(NULL); tm = *localtime(&t); - ft_putstr("\033[22;32m"); + ft_putstr("\x1b[38;5;242m"); +// 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'☀'); + printf("\x1b[38;5;184m%C ", L'☀'); else - printf("\033[22;33m%C ", L'★'); + printf("\x1b[38;5;184m%C ", L'★'); fflush(NULL); } @@ -56,11 +57,11 @@ void ft_prompt(void) do_job_notification(); ft_get_date(); - ft_putstr("\033[22;36m"); + ft_putstr("\x1b[38;5;254m"); ret = ft_currend_dir(); - ft_putstr("\033[22;33m"); - printf(" %C", L'›'); + ft_putstr("\x1b[38;5;184m"); + printf(" %C ", L'›'); fflush(NULL); ft_putstr("\033[22;37m"); - data_singleton()->line.prompt_size = ret + 12; + data_singleton()->line.prompt_size = ret + 13; } From 1649b6a29407cf74d63d4ac1cc9f5cf97b7f3b6c Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Mon, 6 Feb 2017 14:05:44 +0100 Subject: [PATCH 23/98] read works with escape sequences --- 42sh/src/builtin/bt_read_term.c | 6 ++++-- 42sh/src/builtin/builtin_read.c | 9 +++++---- 42sh/src/builtin/builtin_setenv.c | 4 +--- 42sh/src/lexer/lexer_var.c | 2 +- 42sh/src/lexer/token_expand_var.c | 2 +- 42sh/src/main/main.c | 2 +- 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/42sh/src/builtin/bt_read_term.c b/42sh/src/builtin/bt_read_term.c index 853929c4..131eaaf7 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 19:00:10 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 13:56:47 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,7 +27,9 @@ int bt_read_terminit(t_read *data) (void)data; term = bt_read_term(1); - term.c_lflag &= ~(ECHO | ICANON); + term.c_lflag &= ~(ICANON); + if (data->opts & READ_OPT_LS) + term.c_lflag &= ~(ECHO); if (data->opts & READ_OPT_LT) { term.c_cc[VTIME] = data->timeout * 10; diff --git a/42sh/src/builtin/builtin_read.c b/42sh/src/builtin/builtin_read.c index 586f3627..cba5e4e6 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 19:40:12 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 14:02:17 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,14 +28,15 @@ t_readopt g_readtab[] = {0, 0, 0}, }; + int bt_read_loop(t_read *data) { int i; int esc; char buf[2]; - i = 0; esc = 0; + i = 0; if (data->prompt) ft_printf(data->prompt); while (42) @@ -43,12 +44,11 @@ int bt_read_loop(t_read *data) if (read(data->fd, buf, 1) <= 0) return (1); buf[1] = 0; + DG("got input [%x]", *buf); 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); if (*buf == '\n' && !(data->opts & READ_OPT_LR)) ft_putstr("> "); if ((data->opts & READ_OPT_LN) && ++i >= data->nchars) @@ -73,6 +73,7 @@ int bt_read_assign(t_read *data) { if (!(names[1]) || !IFS) { + DG("setting env: %s=%x%x%x", *names, *start, start[1],start[2]); builtin_setenv("setenv", (char*[]){"setenv", *names, start}, NULL); break ; } diff --git a/42sh/src/builtin/builtin_setenv.c b/42sh/src/builtin/builtin_setenv.c index 3c566d6b..80359846 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/27 19:00:07 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 14:05:23 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -34,8 +34,6 @@ int builtin_setenv(const char *path, char *const av[], char *const envp[]) str = ft_str3join(av[0], "=", av[1]); while ((*env)[i]) { - /* DG("check 2: i=%i, (*env)[i]=%p",i, (*env)[i]); */ - /* DG("content=%s", (*env)[i]); */ if (ft_strcmp((*env)[i], av[0]) == '=') { ft_strdel(&(*env)[i]); diff --git a/42sh/src/lexer/lexer_var.c b/42sh/src/lexer/lexer_var.c index ab6e0b79..b02b71ac 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/27 15:55:54 by wescande ### ########.fr */ +/* Updated: 2017/02/06 14:02:20 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/token_expand_var.c b/42sh/src/lexer/token_expand_var.c index 9743d062..f252a29d 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/27 15:56:40 by wescande ### ########.fr */ +/* Updated: 2017/02/06 14:05:25 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 86709d2e..425c5223 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/03 17:33:56 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 13:26:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From a919dc53b90ec8c042f3286706b5889f8934cead Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Mon, 6 Feb 2017 14:42:21 +0100 Subject: [PATCH 24/98] added parsing error when words follow a subshell --- 42sh/src/lexer/ft_post_tokenize.c | 2 +- 42sh/src/lexer/reduce_parens.c | 2 +- 42sh/src/lexer/token_expand_var.c | 2 +- 42sh/src/main/main.c | 2 +- 42sh/src/parser/ft_parse.c | 7 ++----- 42sh/src/parser/parse_subshell.c | 8 +++++++- 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/42sh/src/lexer/ft_post_tokenize.c b/42sh/src/lexer/ft_post_tokenize.c index 619289ae..a0b4941f 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/03 15:46:19 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 14:33:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/reduce_parens.c b/42sh/src/lexer/reduce_parens.c index 7f4f3c39..b189bd05 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/02/02 15:19:02 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 14:36:54 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/token_expand_var.c b/42sh/src/lexer/token_expand_var.c index f252a29d..8d271ed4 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/02/06 14:05:25 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 14:32:16 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 425c5223..377ad610 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/06 13:26:34 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 14:38:45 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/ft_parse.c b/42sh/src/parser/ft_parse.c index ea512479..24eebe40 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/02/03 13:43:00 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 14:38:56 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -41,10 +41,7 @@ int ft_parse(t_btree **ast, t_list **start) while (g_parser[i].type) { if ((lst = ft_lst_find(*start, &g_parser[i].type, &token_cmp_type))) - { - if (g_parser[i].f) - return ((*g_parser[i].f)(ast, start, &lst)); - } + return ((*g_parser[i].f)(ast, start, &lst)); i++; } return (0); diff --git a/42sh/src/parser/parse_subshell.c b/42sh/src/parser/parse_subshell.c index 213fec47..8f8aef17 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/02/02 14:11:09 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 14:42:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,6 +19,12 @@ int parse_subshell(t_btree **ast, t_list **start, t_list **lst) (void)start; token = (*lst)->content; + DG("parsing subshell"); + if ((*lst)->next && ((t_token*)(*lst)->next->content)->type & TK_WORD) + { + ft_dprintf(2, "{red}%s: parse error near ')'{eoc}\n", SHELL_NAME); + return (-1); + } node = (*ast)->item; node->type = TK_SUBSHELL; node->data.sstr = malloc(4 * sizeof(char *)); From fe57e9e5203676d2989b14844464efb0b0438b64 Mon Sep 17 00:00:00 2001 From: wescande Date: Mon, 6 Feb 2017 15:38:10 +0100 Subject: [PATCH 25/98] rectif du segv sur {} + modification de la gestion des {} (ordre + qd chaine unique) + ajout de fonction pours les chars esc (set_char_esc | set_char_no_esc | set_char_esc_mode --- 42sh/Makefile | 4 ++-- 42sh/includes/glob.h | 10 +++++++++- 42sh/src/exec/exec_command.c | 14 +++++++------ 42sh/src/glob/expand_brace.c | 38 +++++++++++++++++++----------------- 42sh/src/glob/is_char_esc.c | 37 ++++++++++++++++++++++++++++++++++- 5 files changed, 75 insertions(+), 28 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index b561d1da..88a7d92a 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,7 +6,7 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/04 12:47:31 by gwojda ### ########.fr # +# Updated: 2017/02/06 15:37:07 by wescande ### ########.fr # # # # **************************************************************************** # @@ -210,7 +210,7 @@ NB = $(words $(SRC_BASE)) INDEX = 0 all : - @make $(NAME) + @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 96cf40f2..29792c69 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/02/01 19:50:07 by wescande ### ########.fr */ +/* Updated: 2017/02/06 15:12:39 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -53,11 +53,19 @@ char **glob(const char *str, const unsigned char *esc); */ int is_directory(const char *path); + /* ** return TRUE if char at str_pos in ini_str is escape. +** five the possibility to set if the char is esc or not. */ int is_char_esc(const unsigned char *esc, const char *ini_str, const char *str_pos); +void set_char_esc_mode(unsigned char *esc, + const char *ini_str, const char *str_pos, int mode); +void set_char_esc(unsigned char *esc, + const char *ini_str, const char *str_pos); +void set_char_no_esc(unsigned char *esc, + const char *ini_str, const char *str_pos); /* ** Internal function. diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index 0a5a2721..995fbca6 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/03 17:30:08 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 15:31:42 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,11 +27,13 @@ static char **token_to_argv(t_astnode *node) 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); + if ((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); diff --git a/42sh/src/glob/expand_brace.c b/42sh/src/glob/expand_brace.c index 6aa16d58..0846400b 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 23:20:38 by wescande ### ########.fr */ +/* Updated: 2017/02/06 15:19:46 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ ** 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 +** -t_glob *gl -> struct of expanding */ static char **gen_tab(const char *pat, @@ -49,9 +49,9 @@ static void iter_on_each(t_expand *me) unsigned char *second; t_ld *wk_tmp; - i = -1; + i = ft_tablen(me->split); wk_tmp = *me->wk; - while (me->split[++i]) + while (i--) { first = ft_strjoinf(ft_strjoin(me->s1, me->split[i]), me->str + 1, 1); second = calc_expand_esc(me->esc, @@ -66,7 +66,7 @@ static void iter_on_each(t_expand *me) me->wk = &wk_tmp; } -static void init_expand(t_expand *me, char *start) +static int init_expand(t_expand *me, char *start) { unsigned char *esc; @@ -81,28 +81,32 @@ static void init_expand(t_expand *me, char *start) ft_strdel(&me->s1); ft_tabdel(&me->split); ft_tabdel((char ***)&me->m_esc); + return (1); } static int search_brace(t_expand *me) { char *start; + int comma; int nb; start = NULL; nb = 0; + comma = 0; while (*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); + 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); + comma += *me->str == ',' && nb == 1; if (!nb && start) { - init_expand(me, start); - return (1); + if (comma) + return (init_expand(me, start)); + set_char_esc(me->esc, CH(*me->wk)[0], start); + set_char_esc(me->esc, CH(*me->wk)[0], me->str); + return (2); } ++me->str; } @@ -127,11 +131,9 @@ void expand_brace(t_glob *gl) 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)) - { + if ((tmp = gl->m_pat) && + (do_it = search_brace(&me) == 1)) ft_ld_del(&tmp, &ft_tabdel); - do_it = 1; - } gl->m_pat = gl->m_pat->next; } gl->m_pat = ft_ld_front(gl->m_pat); diff --git a/42sh/src/glob/is_char_esc.c b/42sh/src/glob/is_char_esc.c index 5c06a546..33cec385 100644 --- a/42sh/src/glob/is_char_esc.c +++ b/42sh/src/glob/is_char_esc.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/27 18:19:55 by wescande #+# #+# */ -/* Updated: 2017/01/27 23:45:51 by wescande ### ########.fr */ +/* Updated: 2017/02/06 15:11:14 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,8 +17,43 @@ int is_char_esc(const unsigned char *esc, { int pos; + if (!esc || !ini_str || !str_pos) + return (0); pos = str_pos - ini_str; if ((esc[pos / 8] >> (7 - pos % 8)) & 1) return (1); return (0); } + +void set_char_esc_mode(unsigned char *esc, + const char *ini_str, const char *str_pos, int mode) +{ + int pos; + + if (!esc || !ini_str || !str_pos || mode < 0 || mode > 1) + return ; + pos = str_pos - ini_str; + esc[pos / 8] |= mode << (7 - pos % 8); +} + +void set_char_esc(unsigned char *esc, + const char *ini_str, const char *str_pos) +{ + int pos; + + if (!esc || !ini_str || !str_pos) + return ; + pos = str_pos - ini_str; + esc[pos / 8] |= 1 << (7 - pos % 8); +} + +void set_char_no_esc(unsigned char *esc, + const char *ini_str, const char *str_pos) +{ + int pos; + + if (!esc || !ini_str || !str_pos) + return ; + pos = str_pos - ini_str; + esc[pos / 8] |= 0 << (7 - pos % 8); +} From 43a4fffc585260c935798ef3404521f90345a552 Mon Sep 17 00:00:00 2001 From: wescande Date: Mon, 6 Feb 2017 15:51:49 +0100 Subject: [PATCH 26/98] erreur de parenthese + remise a la norme --- 42sh/Makefile | 2 +- 42sh/src/glob/expand_brace.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index 88a7d92a..dc62070f 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,7 +6,7 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/06 15:37:07 by wescande ### ########.fr # +# Updated: 2017/02/06 15:47:04 by wescande ### ########.fr # # # # **************************************************************************** # diff --git a/42sh/src/glob/expand_brace.c b/42sh/src/glob/expand_brace.c index 0846400b..00aba745 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/02/06 15:19:46 by wescande ### ########.fr */ +/* Updated: 2017/02/06 15:51:32 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -131,8 +131,8 @@ void expand_brace(t_glob *gl) me.wk = &gl->m_pat; me.esc = UCH(gl->m_pat)[1]; me.str = CH(gl->m_pat)[0]; - if ((tmp = gl->m_pat) && - (do_it = search_brace(&me) == 1)) + if ((tmp = gl->m_pat) && + (do_it = search_brace(&me)) == 1) ft_ld_del(&tmp, &ft_tabdel); gl->m_pat = gl->m_pat->next; } From 80cbac03a21871216c4d0b98dd5349cebbddcf79 Mon Sep 17 00:00:00 2001 From: wescande Date: Mon, 6 Feb 2017 16:04:03 +0100 Subject: [PATCH 27/98] =?UTF-8?q?rectif=20du=20glob=20pour=20ne=20pas=20ch?= =?UTF-8?q?ercher=20les=20fichiers/dossiers=20cach=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/src/glob/dir_glob.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/42sh/src/glob/dir_glob.c b/42sh/src/glob/dir_glob.c index 3ed4a660..6ae32efa 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/02/01 19:49:44 by wescande ### ########.fr */ +/* Updated: 2017/02/06 16:02:48 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,7 +27,7 @@ static int dir_list_content(t_glob *gl, char **str, const char *pat, char *path_tmp; ret = 0; - if (ft_strcmp(str[1], ".") && ft_strcmp(str[1], "..")) + if (str[1][0] != '.') { if (*str[0] == '/' && !*(str[0] + 1)) path_tmp = ft_strjoin(str[0], str[1]); From 156e1cb29c0249962209933853c2e3c14e966da0 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Mon, 6 Feb 2017 16:51:34 +0100 Subject: [PATCH 28/98] file redirections repaired --- 42sh/includes/exec.h | 4 +-- 42sh/includes/lexer.h | 2 +- 42sh/src/exec/exec_redir.c | 2 +- 42sh/src/exec/ft_exec.c | 2 +- 42sh/src/exec/launch_process.c | 2 +- 42sh/src/exec/process_do_redirection.c | 46 ++++++++++++++++---------- 42sh/src/exec/process_redirect.c | 2 +- 42sh/src/main/main.c | 4 +-- 42sh/src/parser/parse_dgreat.c | 2 +- 42sh/src/parser/parse_dless.c | 2 +- 42sh/src/parser/parse_great.c | 4 +-- 42sh/src/parser/parse_greatand.c | 2 +- 42sh/src/parser/parse_less.c | 6 ++-- 42sh/src/parser/parse_lessand.c | 4 +-- 42sh/src/parser/parse_redir.c | 2 +- 15 files changed, 48 insertions(+), 38 deletions(-) diff --git a/42sh/includes/exec.h b/42sh/includes/exec.h index 0616b685..8519f2af 100644 --- a/42sh/includes/exec.h +++ b/42sh/includes/exec.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/27 20:29:56 by jhalford #+# #+# */ -/* Updated: 2017/02/03 14:01:10 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 15:54:00 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -85,7 +85,7 @@ int launch_process(t_process *p); int process_setexec(t_type type, t_process *p); int process_setgroup(t_process *p, pid_t pid); int process_redirect(t_process *p); -void process_do_redirection(t_redir *redir); +int process_do_redirection(t_redir *redir); void process_setsig(void); void process_free(void *content, size_t content_size); void process_reset(void); diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 10f600a7..29e75b4b 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/03 17:31:08 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:22:01 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/exec_redir.c b/42sh/src/exec/exec_redir.c index d7becf4b..8cb33701 100644 --- a/42sh/src/exec/exec_redir.c +++ b/42sh/src/exec/exec_redir.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 17:27:51 by jhalford #+# #+# */ -/* Updated: 2017/02/03 13:58:38 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:12:14 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/ft_exec.c b/42sh/src/exec/ft_exec.c index 6bf0e751..c1daa008 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/03 13:45:05 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 15:27:19 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index 38ff2aaf..2c8577ed 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/02/02 14:28:55 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:08:09 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/process_do_redirection.c b/42sh/src/exec/process_do_redirection.c index 2246941d..93726aec 100644 --- a/42sh/src/exec/process_do_redirection.c +++ b/42sh/src/exec/process_do_redirection.c @@ -6,52 +6,62 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:46:40 by jhalford #+# #+# */ -/* Updated: 2017/02/03 15:01:18 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:51:17 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -int fd_is_valid(int fd) +int fd_is_valid(int fd) { return (fcntl(fd, F_GETFD) != -1 || errno != EBADF); } -void process_do_redirection(t_redir *redir) +int process_do_redirection(t_redir *redir) { - int fdin; - int fdout; + int fdold; + int fdnew; if (redir->type & (TK_GREAT | TK_DGREAT)) { - fdin = redir->n; - fdout = open(redir->word.word, O_WRONLY | O_CREAT - | (redir->type & TK_GREAT) ? O_TRUNC : O_APPEND, - 0644); + fdold = redir->n; + if ((fdnew = open(redir->word.word, O_WRONLY | O_CREAT + | ((redir->type & TK_GREAT) ? O_TRUNC : O_APPEND), + 0644)) < 0) + { + DG("open errno=%i", errno); + exit(1); + } } else if (redir->type & TK_LESS) { - fdin = open(redir->word.word, O_WRONLY | O_TRUNC | O_CREAT, 0644); - fdout = redir->n; + fdold = redir->n; + if ((fdnew = open(redir->word.word, O_RDONLY)) < 0) + { + ft_dprintf(2, "{red}%s: no such file or directory: %s{eoc}\n", + SHELL_NAME, redir->word.word); + exit (1); + } } else if (redir->type & (TK_LESSAND | TK_GREATAND)) { if (redir->close) { close(redir->n); - return ; + return (0); } else { - fdin = redir->type & TK_LESSAND ? redir->word.fd : redir->n; - fdout = redir->type & TK_LESSAND ? redir->n : redir->word.fd; + fdold = redir->type & TK_LESSAND ? redir->word.fd : redir->n; + fdnew = redir->type & TK_LESSAND ? redir->n : redir->word.fd; } } else { - ft_dprintf(2, "{red}%s: redirection error.", SHELL_NAME); - return ; + ft_dprintf(2, "{red}%s: redirection error.{eoc}\n", SHELL_NAME); + return (-1); } - fd_is_valid(fdout) ? dup2(fdout, fdin) : close(fdin); - close(fdout); + fd_is_valid(fdold) ? dup2(fdnew, fdold) : close(fdnew); + close(fdnew); + return (0); } diff --git a/42sh/src/exec/process_redirect.c b/42sh/src/exec/process_redirect.c index 4f3396ca..36c3c577 100644 --- a/42sh/src/exec/process_redirect.c +++ b/42sh/src/exec/process_redirect.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/29 16:04:18 by jhalford #+# #+# */ -/* Updated: 2017/02/03 13:46:30 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:46:06 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 377ad610..30f53822 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/06 14:38:45 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:46:48 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -37,8 +37,8 @@ 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); + DG("{inv}{bol}{gre}start of shell{eoc} job_control is %s", data_singleton()->opts & SHELL_OPTS_JOBC ? "ON" : "OFF"); if (data_singleton()->opts & SHELL_OPTS_LC) { shell_single_command(ft_strdup(shell_get_avdata())); diff --git a/42sh/src/parser/parse_dgreat.c b/42sh/src/parser/parse_dgreat.c index dcfe9a5d..df19624b 100644 --- a/42sh/src/parser/parse_dgreat.c +++ b/42sh/src/parser/parse_dgreat.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/02/02 19:02:52 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:28:15 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/parse_dless.c b/42sh/src/parser/parse_dless.c index a1970bbb..20d91421 100644 --- a/42sh/src/parser/parse_dless.c +++ b/42sh/src/parser/parse_dless.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 13:31:40 by jhalford #+# #+# */ -/* Updated: 2016/12/03 13:31:41 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:28:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/parse_great.c b/42sh/src/parser/parse_great.c index dffaf1a7..1c6f5dea 100644 --- a/42sh/src/parser/parse_great.c +++ b/42sh/src/parser/parse_great.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/02/03 14:07:03 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:29:54 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,7 @@ int parse_great(t_btree **ast, t_list **start, t_list **lst) next_tok = (*lst)->next->content; if (!(next_tok->type & TK_WORD)) return (1); - node->data.redir.n = ft_atoi(tok->data); + node->data.redir.n = *tok->data == '>' ? 1 : ft_atoi(tok->data); node->data.redir.word.word = ft_strdup(next_tok->data); ft_lst_delif(start, (*lst)->content, &ft_addrcmp, &token_free); ft_lst_delif(start, (*lst)->next->content, &ft_addrcmp, &token_free); diff --git a/42sh/src/parser/parse_greatand.c b/42sh/src/parser/parse_greatand.c index 7751fb83..fdfbd6ff 100644 --- a/42sh/src/parser/parse_greatand.c +++ b/42sh/src/parser/parse_greatand.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/02/03 14:09:50 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:30:41 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/parse_less.c b/42sh/src/parser/parse_less.c index b1da5d1f..53e47790 100644 --- a/42sh/src/parser/parse_less.c +++ b/42sh/src/parser/parse_less.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2016/12/05 11:58:48 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:31:19 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,9 +24,9 @@ int parse_less(t_btree **ast, t_list **start, t_list **lst) return (1); tok = (*lst)->content; next_tok = (*lst)->next->content; - if (next_tok->type != TK_WORD) + if (!(next_tok->type & TK_WORD)) return (1); - node->data.redir.n = ft_atoi(tok->data); + node->data.redir.n = *tok->data == '>' ? 0 : ft_atoi(tok->data); node->data.redir.word.word = ft_strdup(next_tok->data); ft_lst_delif(start, (*lst)->content, &ft_addrcmp, &token_free); ft_lst_delif(start, (*lst)->next->content, &ft_addrcmp, &token_free); diff --git a/42sh/src/parser/parse_lessand.c b/42sh/src/parser/parse_lessand.c index 2a047610..77e17890 100644 --- a/42sh/src/parser/parse_lessand.c +++ b/42sh/src/parser/parse_lessand.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/02/03 14:07:55 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:30:37 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,7 +22,7 @@ int parse_lessand(t_btree **ast, t_list **start, t_list **lst) node->type = TK_LESSAND; tok = (*lst)->content; and = ft_strchr(tok->data, '&'); - node->data.redir.n = *tok->data == '<' ? 1 : ft_atoi(tok->data); + node->data.redir.n = *tok->data == '<' ? 0 : ft_atoi(tok->data); node->data.redir.word.fd = ft_atoi(and + 1); node->data.redir.close = tok->data[ft_strlen(tok->data) - 1] == '-' ? 1 : 0; diff --git a/42sh/src/parser/parse_redir.c b/42sh/src/parser/parse_redir.c index 95625fd0..4d209f62 100644 --- a/42sh/src/parser/parse_redir.c +++ b/42sh/src/parser/parse_redir.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 18:58:27 by jhalford #+# #+# */ -/* Updated: 2017/02/03 13:58:57 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 16:07:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From bb52d35f4d676c493817c13b4fa7caf403506708 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Mon, 6 Feb 2017 23:49:58 +0100 Subject: [PATCH 29/98] starting to fix redirects --- 42sh/11 | 16 + 42sh/9- | 17 + 42sh/Makefile | 32 +- 42sh/donovan_segaults_06-02 | 533 +++++++++++++++++++++++++ 42sh/file | 17 + 42sh/includes/exec.h | 15 +- 42sh/src/exec/bad_fd.c | 20 + 42sh/src/exec/process_do_redirection.c | 64 ++- 42sh/src/exec/process_redirect.c | 2 +- 42sh/src/exec/redirect_dgreat.c | 25 ++ 42sh/src/exec/redirect_great.c | 26 ++ 42sh/src/exec/redirect_greatand.c | 38 ++ 42sh/src/exec/redirect_less.c | 26 ++ 42sh/src/exec/redirect_lessand.c | 37 ++ 42sh/src/lexer/ft_lexer.c | 2 +- 42sh/src/lexer/lexer_great.c | 2 +- 42sh/src/lexer/lexer_less.c | 2 +- 42sh/src/lexer/lexer_lessand.c | 2 +- 18 files changed, 820 insertions(+), 56 deletions(-) create mode 100644 42sh/11 create mode 100644 42sh/9- create mode 100644 42sh/donovan_segaults_06-02 create mode 100644 42sh/file create mode 100644 42sh/src/exec/bad_fd.c create mode 100644 42sh/src/exec/redirect_dgreat.c create mode 100644 42sh/src/exec/redirect_great.c create mode 100644 42sh/src/exec/redirect_greatand.c create mode 100644 42sh/src/exec/redirect_less.c create mode 100644 42sh/src/exec/redirect_lessand.c diff --git a/42sh/11 b/42sh/11 new file mode 100644 index 00000000..367e9eae --- /dev/null +++ b/42sh/11 @@ -0,0 +1,16 @@ +11 +42sh +Makefile +Session.vim +a.out +debug +donovan_segaults_06-02 +file +includes +libft +objs +out +pdf +script.sh +src +update_makefile.sh diff --git a/42sh/9- b/42sh/9- new file mode 100644 index 00000000..62cc79f8 --- /dev/null +++ b/42sh/9- @@ -0,0 +1,17 @@ +11 +42sh +9- +Makefile +Session.vim +a.out +debug +donovan_segaults_06-02 +file +includes +libft +objs +out +pdf +script.sh +src +update_makefile.sh diff --git a/42sh/Makefile b/42sh/Makefile index dc62070f..9628207c 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,7 +6,7 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/06 15:47:04 by wescande ### ########.fr # +# Updated: 2017/02/06 21:49:51 by jhalford ### ########.fr # # # # **************************************************************************** # @@ -29,18 +29,6 @@ INC_DIR = includes/ OBJ_DIR = objs/ SRC_BASE = \ -completion/c_output.c\ -completion/c_binary.c\ -completion/c_clear.c\ -completion/c_files.c\ -completion/c_init.c\ -completion/c_matching.c\ -completion/c_parser.c\ -completion/c_pathsolver.c\ -completion/c_printer.c\ -completion/c_sizing.c\ -completion/c_terminal.c\ -completion/completion.c\ builtin/bt_read_get.c\ builtin/bt_read_parse.c\ builtin/bt_read_term.c\ @@ -52,7 +40,20 @@ builtin/builtin_read.c\ builtin/builtin_setenv.c\ builtin/builtin_unsetenv.c\ builtin/is_builtin.c\ +completion/c_binary.c\ +completion/c_clear.c\ +completion/c_files.c\ +completion/c_init.c\ +completion/c_matching.c\ +completion/c_output.c\ +completion/c_parser.c\ +completion/c_pathsolver.c\ +completion/c_printer.c\ +completion/c_sizing.c\ +completion/c_terminal.c\ +completion/completion.c\ exec/ast_free.c\ +exec/bad_fd.c\ exec/exec_ampersand.c\ exec/exec_and_if.c\ exec/exec_command.c\ @@ -69,6 +70,11 @@ exec/process_reset.c\ exec/process_setexec.c\ exec/process_setgroup.c\ exec/process_setsig.c\ +exec/redirect_dgreat.c\ +exec/redirect_great.c\ +exec/redirect_greatand.c\ +exec/redirect_less.c\ +exec/redirect_lessand.c\ exec/set_exitstatus.c\ glob/dir_glob.c\ glob/expand_brace.c\ diff --git a/42sh/donovan_segaults_06-02 b/42sh/donovan_segaults_06-02 new file mode 100644 index 00000000..f8217daf --- /dev/null +++ b/42sh/donovan_segaults_06-02 @@ -0,0 +1,533 @@ +ls +cat +`ls` +` +`ls` +`ls` +`ls` +cat * +ls * +echo "*" +echo * +echo */* +ls +make +make +ls +ls | cat +ls | cat -e +`ls` +`ls` +`ls` +`ls` +`ls` +`ls` +`ls` +`ls` +ls +`ls` +echo `ls -l` +(ls) +`ls` +` +`ls` +` +` +` +` +` +` +(ls)) +(ls)) +(ls)) +` +( +`ls` +`ls` +`ls` +ls +` +ls +`ls` +` +) +(vim)) +ls +`ls` +`l` +ls +ls +ls +`ls` +ls +`ls` +ls m +ls m 2>/dev/null +ls +ls >/dev/null +ls m +ls m 2>&1 +ls m +ls m >/dev/null +ls m 2>/dev/null +ls m 2>&- +ls m +ls m 2>&- +ls +ls 1>/dev/null +ls merde +ls merde 2>/dev/null +ls merde 1>/dev/null +ls merde 3>/dev/null +ls merde 2>/dev/null +ls 2>/dev/null +ls +ls >/dev/null +ls >/dev/null +ls >/dev/null +ls >/dev/null +ls >/dev/null +ls >/dev/null +ls 1>/dev/null +ls 1>/dev/null +ls merde +ls merde >/dev/null +ls merde 2>/dev/null +ls merde 2>&- +ls merde 2<&- +ls merde 2<&- +ls merde 2<&- +ls +ls >&- +ls >&- +ls 2>&- +ls m 2>&- +ls +ls 1>&2 2>&- +ls 2>&- 1>&2 +ls 2>&- 1>&2 +ls 1>&2 2>&- +ls 1>&2 2>&- +ls 2>&- 1>&2 +ls 1>&2 +ls 1>&2 1>&- +ls 1>&- 1>&2 +ls 2>&- 1>&2 +ls 1>&- 2>&- +ls 1>&2- 2>&- +ls 1>&2 2>&- +ls 2>&- 1>&2 +ls 1>&2- +ls 1>&2 +ls 1>&2 1>&- +ls 1>&- 1>&2 +ls 1>&- 1>&2 +ls 2>&- +ls 2>&- 1>&- +ls 2>&- 1>&2 +ls 2>&- 1>&2 +ls 2>&- 1>&2 +ls 2>&- 1>&2 +ls 2>&- 1>&- +ls 2>&- 1>&- +ls 2>&- 1>&2 +ls 1>&2 2>&- + +ls +ls 2>&- +ls 2>&- 1>&2 +ls + +ls + +ls + +ls + ls +ls + ls + ls + + + ls +ls + +ls + + + + + + ls + +`ls` +` ` +`` `` +echo `ls``ls` +echo `ls` `ls` +`ls``ls` +a`ls` +`ls`` +`ls``ls` +`` +``` +```` +`` ``` +`` `` +```` +`` +`` +` +`` +ls +`` +` +make +`` +```` +`` `` +```` +`` `` +` +`` +```` +`` `` +```` +`` +`` +```` +```` +```` +```` +a`ls` echo `ls` +echo `ls` +echo `ls` +a`ls` +a`ls` +a`ls` +a`ls` +a`ls` +a`ls | wc` +ls + ls + ls +ls | cat + + +ls + +`` +` ` +```` +`` `` +cd +ls +alalalalal`ls` + + + 1 + ` + `` + ` ` +(vim)& `ls` +jobs +fg +fg +jobs -l +kill -9 80401 +jobs +jobs +fg +vim& +jobs +ls +vim& +ls& +jobs +fg +jobs +ls& +jobs +jobs -l +ls +ls& +jobs +vim +jobs +jobs +ls +ls& +jobs +ls& +jobs +vim& +fg +ls +a`la` +ls + +ls +ls + + +```` ```` `` +ls + +ls +ls >&- +ls >&waf- +ls >&24- +ls +{} +{()} +({}) +{(ls)} +() +ls +read -n 4 +read -n 5 +echo $REPLY +read -n 4 +l +read -n 4 +read - n5 +read -n 5 +echo $REPLY | cat -e +echo $REPLY +read -n 5 +echo $REPLY +read -n 3 +echo $REPLY +read -n 3 +echo $REPLY +read -n -s +read -n 2 -s +read -s +ls +read -n 3 +echo $REPLY +echo $REPLY | cat -e +echo $PATH +read -n 10 +echo $REPLY +read -n 10 +echo $REPLY +(ls) +(ls)l +(ls) +(ls)l +(ls) +(ls)l +{()} +{} +42sh_cpy > wc -l < Makefile +42sh_cpy > wc -l > Makefile +wc -l < Makefile +cat out1 +ls out +ls < out +ls > out +ls < out +ls>out +lsout +lsout +lsout +lsout +lsout +cat out +lsout +lsout +lsout +cat out +ls>out +lsout +rm out +ls >out +ls -l +ls out +ls +lsout +lsout +cat out +ls>out +make +ls>out +ls&- +ls +ls >&2 2>&- +ls > out +rm out +ls > out +ls -l +ls >out +; +l +ls +ls>out +cat out +wc -l out +ls -l >out +catout +cat out +cat out +lsout +lsout +wc -l file1 +cat file1 +cat file1 +cat file1 +cat out +wc -l &- 1>&2 +cat +cat /dev/random|base64|head -c 8 & +cat /dev/random|base64|head -c 8 +ls +stty +stty -a +ls +cat +ls 'abc +def' +ls 'abc +' +ls >&- +ls 2>&- +ls mm 2>&- +ls mm 2>&- +cd >&- +./a.out +ls +./a.out +./42sh +pwd +/Users/jhalford/minishell/a.out +ls | /Users/jhalford/minishell/a.out +/a | cat /dev/random | base64 > /dev/null +./42sh +sleep 66666 & +jobs +echo '\ + +' +ls \ + +ls '\' +ls "\" +\ + +\ +\ +\ +\ +\\ +\\ +abc\ +def +l\ +s +ls 3>&- +ls >&3 +ls -- -1>file3 +ls -- 9>file3 +ls -- 10>file3 +ls -- 9999999999999999999999999999999999999999999999999999999>file3 +ls -- 2147483648>file3 +ls -- 2147483647>file3 +ls -- >&2147483648 +ls -- >&2147483649 +ulimit -a +& +\\ \ \\\ +${$(})} ${$((}))} ${`}`} ${${a}} +( ls # ) +ls&&ls;ls||ls; +ls&&ls;ls||ls +echo a && echo b; +echo a || echo b; +echo a ||; echo b; +echo a; || echo b; +(ls;) ; +ls ;; ls +` ( echo "(ls" )` +` ( echo "(ls(" )` +` ( echo "(ls((" )` +`echo "ls -l"` +` echo "ls `echo .`"` diff --git a/42sh/file b/42sh/file new file mode 100644 index 00000000..62cc79f8 --- /dev/null +++ b/42sh/file @@ -0,0 +1,17 @@ +11 +42sh +9- +Makefile +Session.vim +a.out +debug +donovan_segaults_06-02 +file +includes +libft +objs +out +pdf +script.sh +src +update_makefile.sh diff --git a/42sh/includes/exec.h b/42sh/includes/exec.h index 8519f2af..609c5936 100644 --- a/42sh/includes/exec.h +++ b/42sh/includes/exec.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/27 20:29:56 by jhalford #+# #+# */ -/* Updated: 2017/02/06 15:54:00 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 22:34:37 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -84,14 +84,19 @@ 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, pid_t pid); -int process_redirect(t_process *p); -int process_do_redirection(t_redir *redir); void process_setsig(void); void process_free(void *content, size_t content_size); void process_reset(void); -void fd_redirect(void); -void fd_reset(void); +int process_redirect(t_process *p); +int process_do_redirection(t_redir *redir); +void bad_fd(int fd); +int redirect_great(t_redir *redir, int *fdold, int *fdnew); +int redirect_less(t_redir *redir, int *fdold, int *fdnew); +int redirect_dgreat(t_redir *redir, int *fdold, int *fdnew); +int redirect_dless(t_redir *redir, int *fdold, int *fdnew); +int redirect_greatand(t_redir *redir, int *fdold, int *fdnew); +int redirect_lessand(t_redir *redir, int *fdold, int *fdnew); char *ft_findexec(char *path, char *file); diff --git a/42sh/src/exec/bad_fd.c b/42sh/src/exec/bad_fd.c new file mode 100644 index 00000000..4d5399d3 --- /dev/null +++ b/42sh/src/exec/bad_fd.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* bad_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/06 22:32:43 by jhalford #+# #+# */ +/* Updated: 2017/02/06 22:34:21 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void bad_fd(int fd) +{ + ft_dprintf(2, "{red}%s: %i: Bad file descriptor{eoc}\n", + SHELL_NAME, fd); + exit(1); +} diff --git a/42sh/src/exec/process_do_redirection.c b/42sh/src/exec/process_do_redirection.c index 93726aec..cb5f618b 100644 --- a/42sh/src/exec/process_do_redirection.c +++ b/42sh/src/exec/process_do_redirection.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:46:40 by jhalford #+# #+# */ -/* Updated: 2017/02/06 16:51:17 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 22:54:19 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,46 +22,44 @@ int process_do_redirection(t_redir *redir) int fdold; int fdnew; - if (redir->type & (TK_GREAT | TK_DGREAT)) - { - fdold = redir->n; - if ((fdnew = open(redir->word.word, O_WRONLY | O_CREAT - | ((redir->type & TK_GREAT) ? O_TRUNC : O_APPEND), - 0644)) < 0) - { - DG("open errno=%i", errno); - exit(1); - } - } + if (redir->n > 9) + bad_fd(redir->n); + if (redir->type & TK_GREAT) + redirect_great(redir, &fdold, &fdnew); + else if (redir->type & TK_GREAT) + redirect_dgreat(redir, &fdold, &fdnew); else if (redir->type & TK_LESS) + redirect_less(redir, &fdold, &fdnew); + else if (redir->type & TK_GREATAND) { - fdold = redir->n; - if ((fdnew = open(redir->word.word, O_RDONLY)) < 0) - { - ft_dprintf(2, "{red}%s: no such file or directory: %s{eoc}\n", - SHELL_NAME, redir->word.word); - exit (1); - } - } - else if (redir->type & (TK_LESSAND | TK_GREATAND)) - { - if (redir->close) - { - close(redir->n); + if (redirect_greatand(redir, &fdold, &fdnew)) return (0); + } + else if (redir->type & TK_LESSAND) + { + if (redirect_lessand(redir, &fdold, &fdnew)) + return (0); + } + else + exit(42); + DG("gonna redirect dup2(%i,%i)", fdold, fdnew); + if (fd_is_valid(fdnew)) + { + if (fd_is_valid(fdold)) + { + dup2(fdold, fdnew); + close(fdold); } else - { - fdold = redir->type & TK_LESSAND ? redir->word.fd : redir->n; - fdnew = redir->type & TK_LESSAND ? redir->n : redir->word.fd; - } + bad_fd(fdold); } else { - ft_dprintf(2, "{red}%s: redirection error.{eoc}\n", SHELL_NAME); - return (-1); + DG("[%i] is not a valid fd", fdnew); + if (fdnew <= 2) + close(fdnew); + else + bad_fd(fdnew); } - fd_is_valid(fdold) ? dup2(fdnew, fdold) : close(fdnew); - close(fdnew); return (0); } diff --git a/42sh/src/exec/process_redirect.c b/42sh/src/exec/process_redirect.c index 36c3c577..9574008b 100644 --- a/42sh/src/exec/process_redirect.c +++ b/42sh/src/exec/process_redirect.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/29 16:04:18 by jhalford #+# #+# */ -/* Updated: 2017/02/06 16:46:06 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 22:23:33 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/redirect_dgreat.c b/42sh/src/exec/redirect_dgreat.c new file mode 100644 index 00000000..485fbda9 --- /dev/null +++ b/42sh/src/exec/redirect_dgreat.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* redirect_dgreat.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/06 22:07:37 by jhalford #+# #+# */ +/* Updated: 2017/02/06 22:27:10 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "exec.h" + +int redirect_dgreat(t_redir *redir, int *fdold, int *fdnew) +{ + *fdold = redir->n; + if ((*fdnew = open(redir->word.word, + O_WRONLY | O_CREAT | O_APPEND, 0644)) < 0) + { + DG("open errno=%i", errno); + exit(1); + } + return (0); +} diff --git a/42sh/src/exec/redirect_great.c b/42sh/src/exec/redirect_great.c new file mode 100644 index 00000000..67aaa003 --- /dev/null +++ b/42sh/src/exec/redirect_great.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* redirect_great.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/06 22:03:53 by jhalford #+# #+# */ +/* Updated: 2017/02/06 22:42:05 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "exec.h" + +int redirect_great(t_redir* redir, int *fdold, int *fdnew) +{ + *fdnew = redir->n; + if ((*fdold = open(redir->word.word, + O_WRONLY | O_CREAT | O_TRUNC, 0644)) < 0) + { + DG("open errno=%i", errno); + exit(1); + } + return (0); + dup2(fdold, fdnew); +} diff --git a/42sh/src/exec/redirect_greatand.c b/42sh/src/exec/redirect_greatand.c new file mode 100644 index 00000000..162b78b2 --- /dev/null +++ b/42sh/src/exec/redirect_greatand.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* redirect_greatand.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/06 22:12:31 by jhalford #+# #+# */ +/* Updated: 2017/02/06 22:54:20 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + + +#include "exec.h" + +int redirect_greatand(t_redir *redir, int *fdold, int *fdnew) +{ + if (redir->word.fd > 9) + bad_fd(redir->word.fd); + if (redir->close) + { + close(redir->n); + return (1); + } + else + { + *fdnew = redir->n; + *fdold = redir->word.fd; + } + if (fd_is_valid(fdold)) + { + dup2(fdold, fdnew); + close(fdold); + } + else + bad_fd(fdold); + return (0); +} diff --git a/42sh/src/exec/redirect_less.c b/42sh/src/exec/redirect_less.c new file mode 100644 index 00000000..5e404390 --- /dev/null +++ b/42sh/src/exec/redirect_less.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* redirect_less.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/06 22:09:53 by jhalford #+# #+# */ +/* Updated: 2017/02/06 22:38:46 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "exec.h" + +int redirect_less(t_redir *redir, int *fdold, int *fdnew) +{ + *fdnew = redir->n; + if ((*fdold = open(redir->word.word, O_RDONLY)) < 0) + { + ft_dprintf(2, "{red}%s: no such file or directory: %s{eoc}\n", + SHELL_NAME, redir->word.word); + exit (1); + } + return (0); + dup2(fdold, fdnew); +} diff --git a/42sh/src/exec/redirect_lessand.c b/42sh/src/exec/redirect_lessand.c new file mode 100644 index 00000000..52a4b497 --- /dev/null +++ b/42sh/src/exec/redirect_lessand.c @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* redirect_lessand.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/06 22:11:18 by jhalford #+# #+# */ +/* Updated: 2017/02/06 22:55:03 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "exec.h" + +int redirect_lessand(t_redir *redir, int *fdold, int *fdnew) +{ + if (redir->word.fd > 9) + bad_fd(redir->word.fd); + if (redir->close) + { + close(redir->n); + return (1); + } + else + { + *fdnew = redir->word.fd; + *fdold = redir->n; + } + if (fd_is_valid(fdnew)) + { + dup2(fdold, fdnew); + close(fdold); + } + else + bad_fd(fdold); + return (0); +} diff --git a/42sh/src/lexer/ft_lexer.c b/42sh/src/lexer/ft_lexer.c index 69c40fee..71b033f1 100644 --- a/42sh/src/lexer/ft_lexer.c +++ b/42sh/src/lexer/ft_lexer.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 15:30:59 by jhalford #+# #+# */ -/* Updated: 2017/02/03 15:40:34 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 21:49:55 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_great.c b/42sh/src/lexer/lexer_great.c index 82b9e4b4..8f0e2ada 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/27 15:54:53 by wescande ### ########.fr */ +/* Updated: 2017/02/06 22:29:32 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_less.c b/42sh/src/lexer/lexer_less.c index ea7c8398..2fbc72d2 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/27 15:55:16 by wescande ### ########.fr */ +/* Updated: 2017/02/06 22:30:07 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_lessand.c b/42sh/src/lexer/lexer_lessand.c index fc6eef56..bb5b900c 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: 2017/01/27 15:55:27 by wescande ### ########.fr */ +/* Updated: 2017/02/06 21:58:23 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From d7f5116eb063b4dd7b20135910db7d229bfa2714 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 7 Feb 2017 02:07:47 +0100 Subject: [PATCH 30/98] looks promising --- 42sh/11 | 16 ------ 42sh/9- | 17 ------- 42sh/Makefile | 2 +- 42sh/file | 7 +-- 42sh/includes/exec.h | 23 ++++++--- 42sh/includes/types.h | 1 + ...process_do_redirection.c => fd_is_valid.c} | 49 +------------------ 42sh/src/exec/process_redirect.c | 30 +++++++++++- 42sh/src/exec/redirect_dgreat.c | 10 ++-- 42sh/src/exec/redirect_great.c | 11 +++-- 42sh/src/exec/redirect_greatand.c | 10 ++-- 42sh/src/exec/redirect_less.c | 11 +++-- 42sh/src/exec/redirect_lessand.c | 11 +++-- 13 files changed, 85 insertions(+), 113 deletions(-) delete mode 100644 42sh/11 delete mode 100644 42sh/9- rename 42sh/src/exec/{process_do_redirection.c => fd_is_valid.c} (50%) diff --git a/42sh/11 b/42sh/11 deleted file mode 100644 index 367e9eae..00000000 --- a/42sh/11 +++ /dev/null @@ -1,16 +0,0 @@ -11 -42sh -Makefile -Session.vim -a.out -debug -donovan_segaults_06-02 -file -includes -libft -objs -out -pdf -script.sh -src -update_makefile.sh diff --git a/42sh/9- b/42sh/9- deleted file mode 100644 index 62cc79f8..00000000 --- a/42sh/9- +++ /dev/null @@ -1,17 +0,0 @@ -11 -42sh -9- -Makefile -Session.vim -a.out -debug -donovan_segaults_06-02 -file -includes -libft -objs -out -pdf -script.sh -src -update_makefile.sh diff --git a/42sh/Makefile b/42sh/Makefile index 9628207c..ad0bbca4 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -61,10 +61,10 @@ exec/exec_or_if.c\ exec/exec_pipe.c\ exec/exec_redir.c\ exec/exec_semi.c\ +exec/fd_is_valid.c\ exec/ft_exec.c\ exec/ft_findexec.c\ exec/launch_process.c\ -exec/process_do_redirection.c\ exec/process_redirect.c\ exec/process_reset.c\ exec/process_setexec.c\ diff --git a/42sh/file b/42sh/file index 62cc79f8..982f231a 100644 --- a/42sh/file +++ b/42sh/file @@ -1,12 +1,13 @@ -11 +4 42sh -9- Makefile Session.vim -a.out debug donovan_segaults_06-02 file +file1 +file2 +file3 includes libft objs diff --git a/42sh/includes/exec.h b/42sh/includes/exec.h index 609c5936..ead042eb 100644 --- a/42sh/includes/exec.h +++ b/42sh/includes/exec.h @@ -67,9 +67,16 @@ struct s_execmap int (*f)(t_btree **ast); }; +struct s_redirmap +{ + t_flag type; + int (*f)(t_redir *redir); +}; + #include "minishell.h" extern t_execmap g_execmap[]; +extern t_redirmap g_redirmap[]; int ft_exec(t_btree **ast); @@ -88,15 +95,15 @@ void process_setsig(void); void process_free(void *content, size_t content_size); void process_reset(void); -int process_redirect(t_process *p); -int process_do_redirection(t_redir *redir); +int fd_is_valid(int fd); void bad_fd(int fd); -int redirect_great(t_redir *redir, int *fdold, int *fdnew); -int redirect_less(t_redir *redir, int *fdold, int *fdnew); -int redirect_dgreat(t_redir *redir, int *fdold, int *fdnew); -int redirect_dless(t_redir *redir, int *fdold, int *fdnew); -int redirect_greatand(t_redir *redir, int *fdold, int *fdnew); -int redirect_lessand(t_redir *redir, int *fdold, int *fdnew); +int process_redirect(t_process *p); +int redirect_great(t_redir *redir); +int redirect_less(t_redir *redir); +int redirect_dgreat(t_redir *redir); +int redirect_dless(t_redir *redir); +int redirect_greatand(t_redir *redir); +int redirect_lessand(t_redir *redir); char *ft_findexec(char *path, char *file); diff --git a/42sh/includes/types.h b/42sh/includes/types.h index 9e86571c..07cec9b7 100644 --- a/42sh/includes/types.h +++ b/42sh/includes/types.h @@ -32,6 +32,7 @@ typedef union u_word t_word; typedef struct s_job t_job; typedef struct s_execmap t_execmap; +typedef struct s_redirmap t_redirmap; typedef struct s_process t_process; typedef int (t_execf)(const char *path, char *const argv[], char *const envp[]); diff --git a/42sh/src/exec/process_do_redirection.c b/42sh/src/exec/fd_is_valid.c similarity index 50% rename from 42sh/src/exec/process_do_redirection.c rename to 42sh/src/exec/fd_is_valid.c index cb5f618b..bcb6cdda 100644 --- a/42sh/src/exec/process_do_redirection.c +++ b/42sh/src/exec/fd_is_valid.c @@ -1,7 +1,7 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* process_do_redirection.c :+: :+: :+: */ +/* fd_is_valid.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ @@ -16,50 +16,3 @@ int fd_is_valid(int fd) { return (fcntl(fd, F_GETFD) != -1 || errno != EBADF); } - -int process_do_redirection(t_redir *redir) -{ - int fdold; - int fdnew; - - if (redir->n > 9) - bad_fd(redir->n); - if (redir->type & TK_GREAT) - redirect_great(redir, &fdold, &fdnew); - else if (redir->type & TK_GREAT) - redirect_dgreat(redir, &fdold, &fdnew); - else if (redir->type & TK_LESS) - redirect_less(redir, &fdold, &fdnew); - else if (redir->type & TK_GREATAND) - { - if (redirect_greatand(redir, &fdold, &fdnew)) - return (0); - } - else if (redir->type & TK_LESSAND) - { - if (redirect_lessand(redir, &fdold, &fdnew)) - return (0); - } - else - exit(42); - DG("gonna redirect dup2(%i,%i)", fdold, fdnew); - if (fd_is_valid(fdnew)) - { - if (fd_is_valid(fdold)) - { - dup2(fdold, fdnew); - close(fdold); - } - else - bad_fd(fdold); - } - else - { - DG("[%i] is not a valid fd", fdnew); - if (fdnew <= 2) - close(fdnew); - else - bad_fd(fdnew); - } - return (0); -} diff --git a/42sh/src/exec/process_redirect.c b/42sh/src/exec/process_redirect.c index 9574008b..925a6b92 100644 --- a/42sh/src/exec/process_redirect.c +++ b/42sh/src/exec/process_redirect.c @@ -12,14 +12,42 @@ #include "exec.h" +t_redirmap g_redirmap[] = +{ + {TK_LESS, redirect_less}, + {TK_GREAT, redirect_great}, + /* {TK_DLESS, redirect_dless}, */ + {TK_DGREAT, redirect_dgreat}, + {TK_LESSAND, redirect_lessand}, + {TK_GREATAND, redirect_greatand}, + {0, NULL}, +}; + int process_redirect(t_process *p) { t_list *redirs; + t_redir *redir; + int i; redirs = p->redirs; while (redirs) { - process_do_redirection(redirs->content); + i = 0; + redir = redirs->content; + if (redir->n > 9) + { + bad_fd(redir->n); + exit(1); + } + while (g_redirmap[i].type) + { + if (g_redirmap[i].type == redir->type) + { + (g_redirmap[i].f)(redir); + break ; + } + i++; + } redirs = redirs->next; } if (p->toclose != STDIN) diff --git a/42sh/src/exec/redirect_dgreat.c b/42sh/src/exec/redirect_dgreat.c index 485fbda9..62e01058 100644 --- a/42sh/src/exec/redirect_dgreat.c +++ b/42sh/src/exec/redirect_dgreat.c @@ -12,14 +12,18 @@ #include "exec.h" -int redirect_dgreat(t_redir *redir, int *fdold, int *fdnew) +int redirect_dgreat(t_redir *redir) { - *fdold = redir->n; - if ((*fdnew = open(redir->word.word, + int fdold; + int fdnew; + + fdnew = redir->n; + if ((fdold = open(redir->word.word, O_WRONLY | O_CREAT | O_APPEND, 0644)) < 0) { DG("open errno=%i", errno); exit(1); } + dup2(fdold, fdnew); return (0); } diff --git a/42sh/src/exec/redirect_great.c b/42sh/src/exec/redirect_great.c index 67aaa003..bd6e170a 100644 --- a/42sh/src/exec/redirect_great.c +++ b/42sh/src/exec/redirect_great.c @@ -12,15 +12,18 @@ #include "exec.h" -int redirect_great(t_redir* redir, int *fdold, int *fdnew) +int redirect_great(t_redir* redir) { - *fdnew = redir->n; - if ((*fdold = open(redir->word.word, + int fdold; + int fdnew; + + fdnew = redir->n; + if ((fdold = open(redir->word.word, O_WRONLY | O_CREAT | O_TRUNC, 0644)) < 0) { DG("open errno=%i", errno); exit(1); } - return (0); dup2(fdold, fdnew); + return (0); } diff --git a/42sh/src/exec/redirect_greatand.c b/42sh/src/exec/redirect_greatand.c index 162b78b2..1dd2fb4e 100644 --- a/42sh/src/exec/redirect_greatand.c +++ b/42sh/src/exec/redirect_greatand.c @@ -10,11 +10,13 @@ /* */ /* ************************************************************************** */ - #include "exec.h" -int redirect_greatand(t_redir *redir, int *fdold, int *fdnew) +int redirect_greatand(t_redir *redir) { + int fdold; + int fdnew; + if (redir->word.fd > 9) bad_fd(redir->word.fd); if (redir->close) @@ -24,8 +26,8 @@ int redirect_greatand(t_redir *redir, int *fdold, int *fdnew) } else { - *fdnew = redir->n; - *fdold = redir->word.fd; + fdold = redir->word.fd; + fdnew = redir->n; } if (fd_is_valid(fdold)) { diff --git a/42sh/src/exec/redirect_less.c b/42sh/src/exec/redirect_less.c index 5e404390..b68ca76a 100644 --- a/42sh/src/exec/redirect_less.c +++ b/42sh/src/exec/redirect_less.c @@ -12,15 +12,18 @@ #include "exec.h" -int redirect_less(t_redir *redir, int *fdold, int *fdnew) +int redirect_less(t_redir *redir) { - *fdnew = redir->n; - if ((*fdold = open(redir->word.word, O_RDONLY)) < 0) + int fdold; + int fdnew; + + fdnew = redir->n; + if ((fdold = open(redir->word.word, O_RDONLY)) < 0) { ft_dprintf(2, "{red}%s: no such file or directory: %s{eoc}\n", SHELL_NAME, redir->word.word); exit (1); } - return (0); dup2(fdold, fdnew); + return (0); } diff --git a/42sh/src/exec/redirect_lessand.c b/42sh/src/exec/redirect_lessand.c index 52a4b497..6109abe1 100644 --- a/42sh/src/exec/redirect_lessand.c +++ b/42sh/src/exec/redirect_lessand.c @@ -12,8 +12,11 @@ #include "exec.h" -int redirect_lessand(t_redir *redir, int *fdold, int *fdnew) +int redirect_lessand(t_redir *redir) { + int fdold; + int fdnew; + if (redir->word.fd > 9) bad_fd(redir->word.fd); if (redir->close) @@ -23,10 +26,10 @@ int redirect_lessand(t_redir *redir, int *fdold, int *fdnew) } else { - *fdnew = redir->word.fd; - *fdold = redir->n; + fdold = redir->word.fd; + fdnew = redir->n; } - if (fd_is_valid(fdnew)) + if (fd_is_valid(fdold)) { dup2(fdold, fdnew); close(fdold); From 8ae69101226e1758f9aa72f2b4cd674a49cdee4a Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 7 Feb 2017 12:03:22 +0100 Subject: [PATCH 31/98] redirection of identical fds does nothing --- 42sh/src/exec/process_redirect.c | 2 +- 42sh/src/exec/redirect_greatand.c | 4 +++- 42sh/src/exec/redirect_lessand.c | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/42sh/src/exec/process_redirect.c b/42sh/src/exec/process_redirect.c index 925a6b92..dfe8615b 100644 --- a/42sh/src/exec/process_redirect.c +++ b/42sh/src/exec/process_redirect.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/29 16:04:18 by jhalford #+# #+# */ -/* Updated: 2017/02/06 22:23:33 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:01:06 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/redirect_greatand.c b/42sh/src/exec/redirect_greatand.c index 1dd2fb4e..10abaa48 100644 --- a/42sh/src/exec/redirect_greatand.c +++ b/42sh/src/exec/redirect_greatand.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/06 22:12:31 by jhalford #+# #+# */ -/* Updated: 2017/02/06 22:54:20 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:01:45 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,8 @@ int redirect_greatand(t_redir *redir) int fdold; int fdnew; + if (redir->word.fd == redir->n) + return (0); if (redir->word.fd > 9) bad_fd(redir->word.fd); if (redir->close) diff --git a/42sh/src/exec/redirect_lessand.c b/42sh/src/exec/redirect_lessand.c index 6109abe1..fa4450b9 100644 --- a/42sh/src/exec/redirect_lessand.c +++ b/42sh/src/exec/redirect_lessand.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/06 22:11:18 by jhalford #+# #+# */ -/* Updated: 2017/02/06 22:55:03 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:01:56 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,8 @@ int redirect_lessand(t_redir *redir) int fdold; int fdnew; + if (redir->word.fd == redir->n) + return (0); if (redir->word.fd > 9) bad_fd(redir->word.fd); if (redir->close) From c56f9dac85413b202cc1bb8e0f3cbc32ccd5c3d3 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 7 Feb 2017 12:38:04 +0100 Subject: [PATCH 32/98] lexer_comment back onto master --- 42sh/includes/exec.h | 2 +- 42sh/includes/lexer.h | 4 +++- 42sh/includes/parser.h | 2 +- 42sh/src/exec/exec_command.c | 2 +- 42sh/src/exec/launch_process.c | 2 +- 42sh/src/exec/process_setexec.c | 2 +- 42sh/src/lexer/ft_tokenize.c | 4 +++- 42sh/src/lexer/get_lexer_state.c | 4 +++- 42sh/src/lexer/lexer_dquote.c | 2 +- 42sh/src/lexer/lexer_newline.c | 33 ++++++++++++++++++++++++++++++++ 42sh/src/lexer/lexer_var.c | 2 +- 42sh/src/lexer/lexer_word.c | 2 +- 42sh/src/lexer/token_print.c | 2 +- 42sh/src/parser/parse_word.c | 2 +- 14 files changed, 52 insertions(+), 13 deletions(-) create mode 100644 42sh/src/lexer/lexer_newline.c diff --git a/42sh/includes/exec.h b/42sh/includes/exec.h index ead042eb..67e47330 100644 --- a/42sh/includes/exec.h +++ b/42sh/includes/exec.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/27 20:29:56 by jhalford #+# #+# */ -/* Updated: 2017/02/06 22:34:37 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:09:05 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 29e75b4b..7f27f77e 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/06 16:22:01 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:29:39 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -44,6 +44,7 @@ typedef long long t_type; enum e_lexstate { DEFAULT, + NEWLINE, DELIM, SEP, WORD, @@ -57,6 +58,7 @@ enum e_lexstate BACKSLASH, VAR, SPECIAL, + COMMENT, }; struct s_token diff --git a/42sh/includes/parser.h b/42sh/includes/parser.h index f5eae463..47b850e1 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/02/03 14:01:51 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:09:20 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index 995fbca6..49bdfc0e 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/06 15:31:42 by wescande ### ########.fr */ +/* Updated: 2017/02/07 12:14:31 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index 2c8577ed..c0cb312f 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/02/06 16:08:09 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:11:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/process_setexec.c b/42sh/src/exec/process_setexec.c index 2ce1d0a3..be358b0e 100644 --- a/42sh/src/exec/process_setexec.c +++ b/42sh/src/exec/process_setexec.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 17:07:10 by jhalford #+# #+# */ -/* Updated: 2017/01/11 18:01:36 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:07:43 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/ft_tokenize.c b/42sh/src/lexer/ft_tokenize.c index 3fe3504c..92cc33a8 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/03 15:39:53 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:29:41 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,6 +15,7 @@ int (*g_lexer[])(t_list **alst, char *str) = { &lexer_default, + &lexer_newline, &lexer_delim, &lexer_sep, &lexer_word, @@ -28,6 +29,7 @@ int (*g_lexer[])(t_list **alst, char *str) = &lexer_backslash, &lexer_var, &lexer_special, + &lexer_comment, }; int ft_is_delim(char c) diff --git a/42sh/src/lexer/get_lexer_state.c b/42sh/src/lexer/get_lexer_state.c index 37ae772b..bb2dbc18 100644 --- a/42sh/src/lexer/get_lexer_state.c +++ b/42sh/src/lexer/get_lexer_state.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 13:45:46 by jhalford #+# #+# */ -/* Updated: 2017/01/11 15:48:13 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:16:51 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,6 +16,8 @@ t_lexstate get_lexer_state(char *str) { if (ft_is_delim(*str)) return (DELIM); + else if (*str == '#') + return (COMMENT); else if (*str == '$') return (VAR); else if (*str == '&' || *str == ';' || *str == '|') diff --git a/42sh/src/lexer/lexer_dquote.c b/42sh/src/lexer/lexer_dquote.c index 56a49ab2..9b64b6a6 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/27 15:53:31 by wescande ### ########.fr */ +/* Updated: 2017/02/07 12:22:23 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_newline.c b/42sh/src/lexer/lexer_newline.c new file mode 100644 index 00000000..2f0300f6 --- /dev/null +++ b/42sh/src/lexer/lexer_newline.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* lexer_newline.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: ariard +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/23 23:19:46 by ariard #+# #+# */ +/* Updated: 2017/02/07 12:37:17 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "lexer.h" + +int lexer_newline(t_list **alst, char *str) +{ + t_token *token; + + if (*alst) + { + token = (*alst)->content; + if (*token->data) + return (lexer_newline(&(*alst)->next, str)); + } + else + { + token = token_init(); + *alst = ft_lstnew(token, sizeof(*token)); + } + token = (*alst)->content; + token->type = TK_NEWLINE; + return (ft_tokenize(&(*alst)->next, str + 1, DEFAULT)); +} diff --git a/42sh/src/lexer/lexer_var.c b/42sh/src/lexer/lexer_var.c index b02b71ac..fc9c98d7 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/02/06 14:02:20 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:16:37 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_word.c b/42sh/src/lexer/lexer_word.c index e0081f8b..c89e4f63 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/30 13:08:16 by wescande ### ########.fr */ +/* Updated: 2017/02/07 12:16:33 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/token_print.c b/42sh/src/lexer/token_print.c index 343fe5bc..cc644557 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 21:57:05 by wescande ### ########.fr */ +/* Updated: 2017/02/07 12:11:24 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/parse_word.c b/42sh/src/parser/parse_word.c index 60535449..1bb12b7d 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/02/02 14:24:53 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:11:11 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 060800769b188a3676b65921e442572654483f08 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 7 Feb 2017 12:57:46 +0100 Subject: [PATCH 33/98] lexer_comment done --- 42sh/Makefile | 2 ++ 42sh/includes/lexer.h | 5 ++++- 42sh/src/lexer/lexer_comment.c | 23 +++++++++++++++++++++++ 42sh/src/lexer/lexer_delim.c | 2 +- 42sh/src/lexer/lexer_great.c | 2 +- 42sh/src/lexer/lexer_newline.c | 2 +- 42sh/src/lexer/lexer_sep.c | 2 +- 7 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 42sh/src/lexer/lexer_comment.c diff --git a/42sh/Makefile b/42sh/Makefile index ad0bbca4..4992fc50 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -138,6 +138,7 @@ lexer/ft_post_tokenize.c\ lexer/ft_tokenize.c\ lexer/get_lexer_state.c\ lexer/lexer_backslash.c\ +lexer/lexer_comment.c\ lexer/lexer_default.c\ lexer/lexer_delim.c\ lexer/lexer_dquote.c\ @@ -145,6 +146,7 @@ lexer/lexer_great.c\ lexer/lexer_greatand.c\ lexer/lexer_less.c\ lexer/lexer_lessand.c\ +lexer/lexer_newline.c\ lexer/lexer_number.c\ lexer/lexer_quote.c\ lexer/lexer_sep.c\ diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 7f27f77e..5e41aab9 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/07 12:29:39 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:56:46 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -36,6 +36,7 @@ typedef long long t_type; # define TK_DQ_WORD (1 << 16) # define TK_COMMAND (1 << 17) # define TK_SUBSHELL (1 << 18) +# define TK_NEWLINE (1 << 19) # define TK_WORD (TK_N_WORD | TK_Q_WORD | TK_DQ_WORD) # define TK_REDIR (0x1 | 0x2 | 0x4 | 0x8 | 0x10 | 0x20) @@ -94,6 +95,7 @@ int ft_is_delim(char c); t_lexstate get_lexer_state(char *str); int lexer_default(t_list **alst, char *str); +int lexer_newline(t_list **alst, char *str); int lexer_delim(t_list **alst, char *str); int lexer_sep(t_list **alst, char *str); int lexer_word(t_list **alst, char *str); @@ -107,5 +109,6 @@ int lexer_dquote(t_list **alst, char *str); int lexer_backslash(t_list **alst, char *str); int lexer_var(t_list **alst, char *str); int lexer_special(t_list **alst, char *str); +int lexer_comment(t_list **alst, char *str); #endif diff --git a/42sh/src/lexer/lexer_comment.c b/42sh/src/lexer/lexer_comment.c new file mode 100644 index 00000000..f744ca44 --- /dev/null +++ b/42sh/src/lexer/lexer_comment.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* lexer_comment.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/07 12:15:59 by jhalford #+# #+# */ +/* Updated: 2017/02/07 12:56:53 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "lexer.h" + +int lexer_comment(t_list **alst, char *str) +{ + t_token *token; + + token = (*alst)->content; + if (*str == '\n') + return (ft_tokenize(&(*alst)->next, str, NEWLINE)); + return (lexer_comment(alst, str + 1)); +} diff --git a/42sh/src/lexer/lexer_delim.c b/42sh/src/lexer/lexer_delim.c index 8c785ce2..8e27dd19 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/02/03 15:40:29 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:48:11 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_great.c b/42sh/src/lexer/lexer_great.c index 8f0e2ada..da36e903 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/02/06 22:29:32 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:45:28 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_newline.c b/42sh/src/lexer/lexer_newline.c index 2f0300f6..c563d2eb 100644 --- a/42sh/src/lexer/lexer_newline.c +++ b/42sh/src/lexer/lexer_newline.c @@ -6,7 +6,7 @@ /* By: ariard +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/23 23:19:46 by ariard #+# #+# */ -/* Updated: 2017/02/07 12:37:17 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:54:48 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_sep.c b/42sh/src/lexer/lexer_sep.c index ccc4ef59..c9b20e78 100644 --- a/42sh/src/lexer/lexer_sep.c +++ b/42sh/src/lexer/lexer_sep.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/30 16:29:57 by jhalford #+# #+# */ -/* Updated: 2017/02/03 15:02:07 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 12:53:46 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 4dea36519bb9fa48ac672de5a457994c81122552 Mon Sep 17 00:00:00 2001 From: gwojda Date: Tue, 7 Feb 2017 15:28:35 +0100 Subject: [PATCH 34/98] correction ptit bug touche suppr --- 42sh/src/line-editing/print_and_del.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/42sh/src/line-editing/print_and_del.c b/42sh/src/line-editing/print_and_del.c index 09f85fe5..8a83d184 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/05 17:08:58 by gwojda ### ########.fr */ +/* Updated: 2017/02/07 15:27:48 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -83,7 +83,7 @@ void ft_del(void) tmp = POS; STR = ft_remove_imput(STR, tmp); - if (!(STR && POS < ft_strlen(STR + 1))) + if (!(STR && POS < ft_strlen(STR) + 1)) return ; if (POS) { From 7610136d184f2186b13c09d6e2e12bd04d681909 Mon Sep 17 00:00:00 2001 From: wescande Date: Tue, 7 Feb 2017 17:22:39 +0100 Subject: [PATCH 35/98] =?UTF-8?q?expansion=20des=20variables=20ok,=20fait?= =?UTF-8?q?=20a=20l'execution=20et=20plus=20dans=20le=20lexer=20(laiss?= =?UTF-8?q?=C3=A9=20en=20commentaire=20dans=20le=20lexer)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/Makefile | 26 +++++---- 42sh/includes/glob.h | 18 ++++-- 42sh/includes/lexer.h | 7 ++- 42sh/src/exec/exec_command.c | 4 +- 42sh/src/glob/dir_glob.c | 6 +- 42sh/src/glob/expand_brace.c | 8 +-- 42sh/src/glob/expand_esc.c | 10 ++-- 42sh/src/glob/expand_var.c | 82 ++++++++++++++++++++++++++++ 42sh/src/glob/glob.c | 12 +++- 42sh/src/glob/is_char_esc.c | 24 ++++++-- 42sh/src/glob/lib_perso/ft_strsubf.c | 25 +++++++++ 42sh/src/glob/match_pattern.c | 4 +- 42sh/src/lexer/ft_tokenize.c | 3 +- 42sh/src/lexer/get_lexer_state.c | 4 +- 42sh/src/lexer/lexer_backslash.c | 4 +- 42sh/src/lexer/lexer_default.c | 4 +- 42sh/src/lexer/lexer_dquote.c | 10 ++-- 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 | 5 +- 42sh/src/lexer/lexer_word.c | 4 +- 42sh/src/lexer/token_append.c | 17 +++--- 42sh/src/lexer/token_expand_var.c | 7 ++- 42sh/src/lexer/token_free.c | 3 +- 42sh/src/lexer/token_init.c | 5 +- 42sh/src/parser/parse_word.c | 20 ++++++- 30 files changed, 250 insertions(+), 98 deletions(-) create mode 100644 42sh/src/glob/expand_var.c create mode 100644 42sh/src/glob/lib_perso/ft_strsubf.c diff --git a/42sh/Makefile b/42sh/Makefile index dc62070f..7741976b 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -29,18 +29,6 @@ INC_DIR = includes/ OBJ_DIR = objs/ SRC_BASE = \ -completion/c_output.c\ -completion/c_binary.c\ -completion/c_clear.c\ -completion/c_files.c\ -completion/c_init.c\ -completion/c_matching.c\ -completion/c_parser.c\ -completion/c_pathsolver.c\ -completion/c_printer.c\ -completion/c_sizing.c\ -completion/c_terminal.c\ -completion/completion.c\ builtin/bt_read_get.c\ builtin/bt_read_parse.c\ builtin/bt_read_term.c\ @@ -52,6 +40,18 @@ builtin/builtin_read.c\ builtin/builtin_setenv.c\ builtin/builtin_unsetenv.c\ builtin/is_builtin.c\ +completion/c_binary.c\ +completion/c_clear.c\ +completion/c_files.c\ +completion/c_init.c\ +completion/c_matching.c\ +completion/c_output.c\ +completion/c_parser.c\ +completion/c_pathsolver.c\ +completion/c_printer.c\ +completion/c_sizing.c\ +completion/c_terminal.c\ +completion/completion.c\ exec/ast_free.c\ exec/exec_ampersand.c\ exec/exec_and_if.c\ @@ -73,6 +73,7 @@ exec/set_exitstatus.c\ glob/dir_glob.c\ glob/expand_brace.c\ glob/expand_esc.c\ +glob/expand_var.c\ glob/ft_strsplit_esc.c\ glob/ft_strsplit_spe.c\ glob/glob.c\ @@ -90,6 +91,7 @@ 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_strsubf.c\ glob/lib_perso/ft_tabdel.c\ glob/lib_perso/ft_tablen.c\ glob/match_pattern.c\ diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 29792c69..651a6231 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/02/06 15:12:39 by wescande ### ########.fr */ +/* Updated: 2017/02/07 16:04:57 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,8 +27,9 @@ typedef struct s_ld typedef struct s_glob { - const char *pat; - const unsigned char *esc; + char *pat; + unsigned char *esc; + unsigned char *esc2; t_ld *match; t_ld *m_pat; } t_glob; @@ -46,7 +47,8 @@ typedef struct s_expand /* ** interface of glob. */ -char **glob(const char *str, const unsigned char *esc); +char **glob(char *str, unsigned char *esc, + unsigned char *dbl_esc); /* ** return TRUE if path file is a directory. @@ -71,13 +73,15 @@ void set_char_no_esc(unsigned char *esc, ** Internal function. */ unsigned char *ft_sub_esc(const unsigned char *esc, int start, int len); +unsigned char *dup_char_esc(const unsigned char *esc, const int size); unsigned char *calc_expand_esc(const unsigned char *esc, - int nb_start, int nb_middle, int *nb_end); + 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); +void expand_var(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 rec); +int dir_research(t_glob *tglob, char *p, 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, @@ -103,6 +107,8 @@ t_ld *ft_ld_order(t_ld *ld, int (*f)(), void (*del)()); */ char *ft_strjoinf(char *str, char *str2, int mode); +char *ft_strsubf(char *s, unsigned int start, + size_t len, short int mode); void ft_tabdel(char ***mytab); int ft_tablen(char **mytab); diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 10f600a7..941b5ce2 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/03 17:31:08 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 13:37:52 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -55,7 +55,6 @@ enum e_lexstate QUOTE, DQUOTE, BACKSLASH, - VAR, SPECIAL, }; @@ -64,6 +63,7 @@ struct s_token t_type type; char *data; unsigned char *esc; + unsigned char *esc2; int size; }; @@ -78,7 +78,8 @@ 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); +int token_append(t_token *token, char c, short int esc, + short int dbl_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/exec/exec_command.c b/42sh/src/exec/exec_command.c index 995fbca6..7735bc55 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/06 15:31:42 by wescande ### ########.fr */ +/* Updated: 2017/02/07 11:54:17 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,7 +27,7 @@ static char **token_to_argv(t_astnode *node) while (ld) { content = ld->content; - if ((expand = glob(content[0], (unsigned char *)content[1]))) + if ((expand = glob(content[0], (unsigned char *)content[1], (unsigned char *)content[2]))) { index = -1; while (expand[++index]) diff --git a/42sh/src/glob/dir_glob.c b/42sh/src/glob/dir_glob.c index 6ae32efa..9c9ad8e3 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/02/06 16:02:48 by wescande ### ########.fr */ +/* Updated: 2017/02/07 13:06:07 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,7 +20,7 @@ int is_directory(const char *path) return (S_ISDIR(path_stat.st_mode)); } -static int dir_list_content(t_glob *gl, char **str, const char *pat, +static int dir_list_content(t_glob *gl, char **str, char *pat, int recursive) { int ret; @@ -45,7 +45,7 @@ static int dir_list_content(t_glob *gl, char **str, const char *pat, } int dir_research(t_glob *gl, char *p, - const char *pat, int recursive) + char *pat, int recursive) { DIR *dir; struct dirent *in; diff --git a/42sh/src/glob/expand_brace.c b/42sh/src/glob/expand_brace.c index 00aba745..27b4b71d 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/02/06 15:51:32 by wescande ### ########.fr */ +/* Updated: 2017/02/07 16:10:20 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -56,8 +56,8 @@ static void iter_on_each(t_expand *me) 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)}); + (int [2]){ft_strlen(me->split[i]), 0}, + (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); @@ -120,7 +120,7 @@ void expand_brace(t_glob *gl) 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)); + ft_ld_pushfront(&gl->m_pat, gen_tab(gl->pat, gl->esc, 0)); me = (t_expand){NULL, NULL, NULL, NULL, NULL, NULL}; do_it = 1; while (do_it) diff --git a/42sh/src/glob/expand_esc.c b/42sh/src/glob/expand_esc.c index 9ad603e4..00990cf7 100644 --- a/42sh/src/glob/expand_esc.c +++ b/42sh/src/glob/expand_esc.c @@ -6,20 +6,20 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/31 23:18:56 by wescande #+# #+# */ -/* Updated: 2017/01/31 23:19:45 by wescande ### ########.fr */ +/* Updated: 2017/02/07 15:49:15 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "glob.h" unsigned char *calc_expand_esc(const unsigned char *esc, - int nb_start, int nb_middle, int *nb_end) + 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 + if (!(new_esc = (unsigned char *)ft_strnew(((nb_start + nb_middle[0] + nb_end[1]) / 8) + 1))) return (NULL); index = -1; @@ -27,9 +27,9 @@ unsigned char *calc_expand_esc(const unsigned char *esc, new_esc[index / 8] |= ((esc[index / 8] >> (7 - index % 8)) & 1) << (7 - index % 8); pos = -1; - while (++pos < nb_middle) + while (++pos < nb_middle[0]) { - new_esc[index / 8] |= 0 << (7 - index % 8); + new_esc[index / 8] |= nb_middle[1] << (7 - index % 8); ++index; } pos = nb_end[0]; diff --git a/42sh/src/glob/expand_var.c b/42sh/src/glob/expand_var.c new file mode 100644 index 00000000..374fbc87 --- /dev/null +++ b/42sh/src/glob/expand_var.c @@ -0,0 +1,82 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* expand_var.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/06 16:09:27 by wescande #+# #+# */ +/* Updated: 2017/02/07 17:18:33 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +/* +** expand_var return value of $var in the string. +** input parameters are : +** -t_glob *gl -> struct of expanding +*/ + +static void insert_var(t_glob *gl, char *pos, char *name, char *content) +{ + char *s1; + char *s2; + int delta; + unsigned char *new_esc; + + delta = pos - gl->pat; + s1 = ft_strsub(gl->pat, 0, delta); + delta += ft_strlen(name) + 1; + s2 = ft_strsubf(gl->pat, delta, ft_strlen(gl->pat) - delta, 1); + gl->pat = ft_strjoinf(ft_strjoinf(s1, content, 1), s2, 3); + new_esc = calc_expand_esc(gl->esc, ft_strlen(s1), + (int [2]){ft_strlen(content), 1}, + (int [2]){delta, ft_strlen(s2)}); + ft_memdel((void **)&gl->esc); + gl->esc = new_esc; + new_esc = calc_expand_esc(gl->esc2, ft_strlen(s1), + (int [2]){ft_strlen(content), 1}, + (int [2]){delta, ft_strlen(s2)}); + ft_memdel((void **)&gl->esc2); + gl->esc2 = new_esc; +} + +static char *get_name(t_glob *gl, const char *pat) +{ + const char *str; + + str = pat; + if (ft_isdigit(*str)) + return (ft_strsub(pat, 0, str - pat + 1)); + while ((ft_isalnum(*str) || *str == '_' || *str == '-') + && !is_char_esc(gl->esc2, gl->pat, str)) + ++str; + if (is_char_esc(gl->esc2, gl->pat, str)) + return (ft_strsub(pat, 0, str - pat)); + return (ft_strsub(pat, 0, str - pat)); +} + +void expand_var(t_glob *gl) +{ + char *pat; + char *var; + char *content; + + pat = gl->pat; + while (*pat) + { + if (*pat == '$' && !is_char_esc(gl->esc2, gl->pat, pat) && + (var = get_name(gl, pat + 1))) + { + if (ft_strlen(var)) + { + content = ft_getenv(data_singleton()->env, var); + insert_var(gl, pat, var, content); + pat = gl->pat; + } + ft_strdel(&var); + } + ++pat; + } +} diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index 1ec41786..3aad8ae9 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/02/01 19:46:22 by wescande ### ########.fr */ +/* Updated: 2017/02/07 16:13:36 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -33,12 +33,18 @@ static char **treat_glob(t_ld **match) return (gl); } -char **glob(const char *pat, const unsigned char *esc) +char **glob(char *pat, unsigned char *esc, + unsigned char *esc2) { t_glob gl; int ret; + int len; - gl = (t_glob){pat, esc, NULL, NULL}; + len = ft_strlen(pat); + gl = (t_glob){ft_strdup(pat), dup_char_esc(esc, len), + dup_char_esc(esc2, len), NULL, NULL}; + expand_var(&gl); + ft_memdel((void **)&gl.esc2); expand_brace(&gl); while (gl.m_pat->next) { diff --git a/42sh/src/glob/is_char_esc.c b/42sh/src/glob/is_char_esc.c index 33cec385..ef702e69 100644 --- a/42sh/src/glob/is_char_esc.c +++ b/42sh/src/glob/is_char_esc.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/27 18:19:55 by wescande #+# #+# */ -/* Updated: 2017/02/06 15:11:14 by wescande ### ########.fr */ +/* Updated: 2017/02/07 16:33:47 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,9 +18,11 @@ int is_char_esc(const unsigned char *esc, int pos; if (!esc || !ini_str || !str_pos) - return (0); + return (-1); pos = str_pos - ini_str; - if ((esc[pos / 8] >> (7 - pos % 8)) & 1) + if (pos < 0) + return (-1); + if ((esc[pos >> 3] >> (7 - pos % 8)) & 1) return (1); return (0); } @@ -33,7 +35,7 @@ void set_char_esc_mode(unsigned char *esc, if (!esc || !ini_str || !str_pos || mode < 0 || mode > 1) return ; pos = str_pos - ini_str; - esc[pos / 8] |= mode << (7 - pos % 8); + esc[pos >> 3] |= mode << (7 - pos % 8); } void set_char_esc(unsigned char *esc, @@ -44,7 +46,7 @@ void set_char_esc(unsigned char *esc, if (!esc || !ini_str || !str_pos) return ; pos = str_pos - ini_str; - esc[pos / 8] |= 1 << (7 - pos % 8); + esc[pos >> 3] |= 1 << (7 - pos % 8); } void set_char_no_esc(unsigned char *esc, @@ -55,5 +57,15 @@ void set_char_no_esc(unsigned char *esc, if (!esc || !ini_str || !str_pos) return ; pos = str_pos - ini_str; - esc[pos / 8] |= 0 << (7 - pos % 8); + esc[pos >> 3] |= 0 << (7 - pos % 8); +} + +unsigned char *dup_char_esc(const unsigned char *esc, const int size) +{ + unsigned char *new_esc; + + if (!(new_esc = (unsigned char *)ft_strnew(size))) + return (NULL); + ft_memcpy(new_esc, esc, size); + return (new_esc); } diff --git a/42sh/src/glob/lib_perso/ft_strsubf.c b/42sh/src/glob/lib_perso/ft_strsubf.c new file mode 100644 index 00000000..2e6d5b51 --- /dev/null +++ b/42sh/src/glob/lib_perso/ft_strsubf.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strsubf.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/15 17:20:08 by wescande #+# #+# */ +/* Updated: 2017/02/07 13:01:55 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +char *ft_strsubf(char *s, unsigned int start, size_t len, short int mode) +{ + char *sptr; + + if (!s) + return (NULL); + sptr = ft_strsub(s, start, len); + if (mode == 1) + ft_strdel(&s); + return (sptr); +} diff --git a/42sh/src/glob/match_pattern.c b/42sh/src/glob/match_pattern.c index b2688603..47b77311 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/02/01 19:46:43 by wescande ### ########.fr */ +/* Updated: 2017/02/07 13:06:58 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -85,7 +85,7 @@ static int match_star(t_glob *gl, char *str, char *full_word) return (0); } -const char *manage_pat(const char *pat, char *str) +char *manage_pat(char *pat, char *str) { if (pat[0] == '.' && pat[1] == '/' && ((str[0] == '.' && str[1] != '/') || str[0] != '.')) diff --git a/42sh/src/lexer/ft_tokenize.c b/42sh/src/lexer/ft_tokenize.c index 3fe3504c..29d75466 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/03 15:39:53 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 19:03:06 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,6 @@ int (*g_lexer[])(t_list **alst, char *str) = &lexer_quote, &lexer_dquote, &lexer_backslash, - &lexer_var, &lexer_special, }; diff --git a/42sh/src/lexer/get_lexer_state.c b/42sh/src/lexer/get_lexer_state.c index 37ae772b..6fde7a9b 100644 --- a/42sh/src/lexer/get_lexer_state.c +++ b/42sh/src/lexer/get_lexer_state.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 13:45:46 by jhalford #+# #+# */ -/* Updated: 2017/01/11 15:48:13 by jhalford ### ########.fr */ +/* Updated: 2017/02/06 19:03:29 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,8 +16,6 @@ t_lexstate get_lexer_state(char *str) { if (ft_is_delim(*str)) return (DELIM); - else if (*str == '$') - return (VAR); else if (*str == '&' || *str == ';' || *str == '|') return (SEP); else if (*str == '\\') diff --git a/42sh/src/lexer/lexer_backslash.c b/42sh/src/lexer/lexer_backslash.c index d1da0d6c..eb339d0a 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: 2017/01/30 13:07:52 by wescande ### ########.fr */ +/* Updated: 2017/02/07 11:39:15 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], 1); + token_append(token, str[1], 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 08ccabcf..0359269c 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/27 15:53:10 by wescande ### ########.fr */ +/* Updated: 2017/02/07 11:39:07 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, 0); + token_append(token, *str, 0, 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 56a49ab2..917574be 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/27 15:53:31 by wescande ### ########.fr */ +/* Updated: 2017/02/07 16:29:29 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,13 +19,15 @@ int lexer_dquote(t_list **alst, char *str) token = (*alst)->content; token->type = TK_DQ_WORD; str++; - if (*str == '\"') + if (*str == '"') return (ft_tokenize(alst, str + 1, DEFAULT)); if (*str == '\\') { - token_append(token, *(str + 1), 1); + if (str[1] != '"') + token_append(token, str[0], 1, 0); + token_append(token, str[1], 1, 1); return (lexer_dquote(alst, str + 1)); } - token_append(token, *str, 1); + token_append(token, *str, 1, 0); return (lexer_dquote(alst, str)); } diff --git a/42sh/src/lexer/lexer_great.c b/42sh/src/lexer/lexer_great.c index 82b9e4b4..6436299b 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/27 15:54:53 by wescande ### ########.fr */ +/* Updated: 2017/02/07 11:37:20 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], 0); + token_append(token, str[0], 0, 0); if (*(str + 1) == '&') { token->type = TK_GREATAND; - token_append(token, str[1], 0); + token_append(token, str[1], 0, 0); return (lexer_greatand(alst, str + 2)); } else if (*(str + 1) == '>') { token->type = TK_DGREAT; - token_append(token, str[1], 0); + token_append(token, str[1], 0, 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 b803f0f1..d9f9787f 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: 2017/01/27 15:55:04 by wescande ### ########.fr */ +/* Updated: 2017/02/07 11:37:08 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, 0); + token_append(token, *str, 0, 0); return (lexer_greatand(alst, str + 1)); } else if (*str == '-') { - token_append(token, *str, 0); + token_append(token, *str, 0, 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 ea7c8398..62bbb012 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/27 15:55:16 by wescande ### ########.fr */ +/* Updated: 2017/02/07 11:36:57 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], 0); + token_append(token, str[0], 0, 0); if (*(str + 1) == '&') { token->type = TK_LESSAND; - token_append(token, str[1], 0); + token_append(token, str[1], 0, 0); return (lexer_lessand(alst, str + 2)); } else if (*(str + 1) == '<') { token->type = TK_DLESS; - token_append(token, str[1], 0); + token_append(token, str[1], 0, 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 fc6eef56..e9c64330 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: 2017/01/27 15:55:27 by wescande ### ########.fr */ +/* Updated: 2017/02/07 11:39:38 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, 0); + token_append(token, *str, 0, 0); return (lexer_lessand(alst, str + 1)); } else if (*str == '-') { - token_append(token, *str, 0); + token_append(token, *str, 0, 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 1309e780..5cb3fa24 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/30 13:08:05 by wescande ### ########.fr */ +/* Updated: 2017/02/07 11:39:29 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,7 @@ int lexer_number(t_list **alst, char *str) return (ft_tokenize(alst, str, LESS)); else if (ft_isdigit(*str)) { - token_append(token, *str, 0); + token_append(token, *str, 0, 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 4b99e6fe..647ac038 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/27 15:52:21 by wescande ### ########.fr */ +/* Updated: 2017/02/07 11:39:24 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, 1); + token_append(token, *str, 1, 1); return (lexer_quote(alst, str)); } diff --git a/42sh/src/lexer/lexer_var.c b/42sh/src/lexer/lexer_var.c index b02b71ac..53f28047 100644 --- a/42sh/src/lexer/lexer_var.c +++ b/42sh/src/lexer/lexer_var.c @@ -6,12 +6,13 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 14:54:57 by jhalford #+# #+# */ -/* Updated: 2017/02/06 14:02:20 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 11:36:41 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" +/* int lexer_var(t_list **alst, char *str) { t_token *token; @@ -34,4 +35,4 @@ int lexer_var(t_list **alst, char *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 e0081f8b..b57d8b6c 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/30 13:08:16 by wescande ### ########.fr */ +/* Updated: 2017/02/07 11:39:50 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, 0); + token_append(token, *str, 0, 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 9cc197fb..3fcfec70 100644 --- a/42sh/src/lexer/token_append.c +++ b/42sh/src/lexer/token_append.c @@ -6,15 +6,13 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/11 17:18:42 by jhalford #+# #+# */ -/* Updated: 2017/01/30 13:09:01 by wescande ### ########.fr */ +/* Updated: 2017/02/07 15:32:08 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -#define TOKEN_INCR 10 - -int token_append(t_token *token, char c, short int esc) +int token_append(t_token *token, char c, short int esc, short int esc2) { int len; @@ -24,11 +22,14 @@ 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 = (unsigned char *)ft_realloc((char *)token->esc, - token->size / 8 + 1); - token->esc[token->size / 8 - 1] = 0; + (token->size >> 3) + 1); + token->esc[token->size >> 3] = 0; + token->esc2 = (unsigned char *)ft_realloc((char *)token->esc2, + (token->size >> 3) + 1); + token->esc2[token->size >> 3] = 0; } ft_strcat(token->data, (char[2]){c, '\0'}); - if (esc) - token->esc[len / 8] |= 1 << (7 - len % 8); + token->esc[len >> 3] |= esc << (7 - len % 8); + token->esc2[len >> 3] |= esc2 << (7 - len % 8); return (0); } diff --git a/42sh/src/lexer/token_expand_var.c b/42sh/src/lexer/token_expand_var.c index 8d271ed4..689dcb60 100644 --- a/42sh/src/lexer/token_expand_var.c +++ b/42sh/src/lexer/token_expand_var.c @@ -6,12 +6,12 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 14:57:53 by jhalford #+# #+# */ -/* Updated: 2017/02/06 14:32:16 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 13:16:04 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" - +/* void token_expand_var(t_token *token) { char *dollar; @@ -24,5 +24,6 @@ void token_expand_var(t_token *token) *dollar = 0; if (val) while (*val) - token_append(token, *val++, 1); + token_append(token, *val++, 1, 1); } +*/ diff --git a/42sh/src/lexer/token_free.c b/42sh/src/lexer/token_free.c index eda8f28b..a807db59 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/31 18:36:40 by wescande ### ########.fr */ +/* Updated: 2017/02/07 13:39:50 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,6 +22,7 @@ void token_free(void *data, size_t size) { ft_strdel(&token->data); ft_memdel((void **)&token->esc); + ft_memdel((void **)&token->esc2); } free(token); } diff --git a/42sh/src/lexer/token_init.c b/42sh/src/lexer/token_init.c index 6547b15b..d67262c4 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/31 18:36:31 by wescande ### ########.fr */ +/* Updated: 2017/02/07 13:42:00 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,6 +20,7 @@ t_token *token_init(void) token->type = 0; token->size = 8; token->data = ft_strnew(token->size + 1); - token->esc = (unsigned char *)ft_strnew(token->size / 8 + 1); + token->esc = (unsigned char *)ft_strnew((token->size >> 3) + 1); + token->esc2 = (unsigned char *)ft_strnew((token->size >> 3) + 1); return (token); } diff --git a/42sh/src/parser/parse_word.c b/42sh/src/parser/parse_word.c index 60535449..4722b6a5 100644 --- a/42sh/src/parser/parse_word.c +++ b/42sh/src/parser/parse_word.c @@ -6,12 +6,27 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/02/02 14:24:53 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 16:06:24 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "parser.h" +char **gen_tab(t_token *token) +{ + char **the_tab; + + if (!(the_tab = (char **)malloc(sizeof(char *) * 4))) + return (NULL); + the_tab[0] = ft_strdup(token->data); + the_tab[1] = (char *)dup_char_esc(token->esc, token->size >> 3); + the_tab[2] = (char *)dup_char_esc(token->esc2, token->size >> 3); +// ft_memcpy(the_tab[1], token->esc, token->size >> 3); +// the_tab[2] = ft_strnew((token->size >> 3) + 1); +// ft_memcpy(the_tab[2], token->esc2, token->size >> 3); + the_tab[3] = NULL; + return (the_tab); +} int parse_word(t_btree **ast, t_list **start, t_list **lst) { t_astnode *node; @@ -23,8 +38,7 @@ int parse_word(t_btree **ast, t_list **start, t_list **lst) token = (*lst)->content; node = (*ast)->item; node->type = TK_COMMAND; - my_tab = ft_sstradd(my_tab, token->data); - my_tab = ft_sstradd(my_tab, (char *)token->esc); + my_tab = gen_tab(token); ft_ld_pushback(&node->data.token, my_tab); ft_parse(ast, &(*lst)->next); ft_lst_delif(start, (*lst)->content, &ft_addrcmp, &token_free); From 8539dc9ddfd0db1ebde1a6f4dcf5a430b102907d Mon Sep 17 00:00:00 2001 From: wescande Date: Tue, 7 Feb 2017 17:43:22 +0100 Subject: [PATCH 36/98] libft with new makfile --- 42sh/libft | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/42sh/libft b/42sh/libft index 92902c1c..6437a054 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit 92902c1c6539152d9daadaf2a018b2d344f1224e +Subproject commit 6437a0545bf0eec54bc3ac4fa4bc24d83efcf384 From a01b7b76aba8b4ed11bcb7e7769702161c5d3857 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 7 Feb 2017 17:57:52 +0100 Subject: [PATCH 37/98] redirection now works with builtins! --- 42sh/Makefile | 6 ++++-- 42sh/includes/exec.h | 11 ++++++++--- 42sh/includes/lexer.h | 2 +- 42sh/libft | 2 +- 42sh/src/exec/bad_fd.c | 6 +++--- 42sh/src/exec/close_fdsave.c | 23 +++++++++++++++++++++++ 42sh/src/exec/exec_command.c | 7 ++----- 42sh/src/exec/exec_redir.c | 2 +- 42sh/src/exec/launch_process.c | 12 +++++++++--- 42sh/src/exec/process_redirect.c | 17 ++++++----------- 42sh/src/exec/process_reset.c | 22 ++++++++++++++++++---- 42sh/src/exec/process_resetfds.c | 23 +++++++++++++++++++++++ 42sh/src/exec/redirect_greatand.c | 26 ++++++++++---------------- 42sh/src/exec/redirect_less.c | 2 +- 42sh/src/exec/redirect_lessand.c | 21 +++++++++------------ 42sh/src/exec/set_exitstatus.c | 4 ++-- 42sh/src/main/data_init.c | 5 ++++- 42sh/src/main/main.c | 2 +- 42sh/src/parser/parse_great.c | 2 +- 42sh/src/parser/parse_greatand.c | 2 +- 20 files changed, 128 insertions(+), 69 deletions(-) create mode 100644 42sh/src/exec/close_fdsave.c create mode 100644 42sh/src/exec/process_resetfds.c diff --git a/42sh/Makefile b/42sh/Makefile index 4992fc50..9f9ff9f9 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,14 +6,14 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/06 21:49:51 by jhalford ### ########.fr # +# Updated: 2017/02/07 16:11:13 by jhalford ### ########.fr # # # # **************************************************************************** # NAME = 42sh CC = gcc -FLAGS = -Wall -Wextra -Werror -g +FLAGS = -Wall -Wextra -Werror D_FLAGS = -g DELTA = $$(echo "$$(tput cols)-47"|bc) @@ -54,6 +54,7 @@ completion/c_terminal.c\ completion/completion.c\ exec/ast_free.c\ exec/bad_fd.c\ +exec/close_fdsave.c\ exec/exec_ampersand.c\ exec/exec_and_if.c\ exec/exec_command.c\ @@ -67,6 +68,7 @@ exec/ft_findexec.c\ exec/launch_process.c\ exec/process_redirect.c\ exec/process_reset.c\ +exec/process_resetfds.c\ exec/process_setexec.c\ exec/process_setgroup.c\ exec/process_setsig.c\ diff --git a/42sh/includes/exec.h b/42sh/includes/exec.h index 67e47330..679f5e20 100644 --- a/42sh/includes/exec.h +++ b/42sh/includes/exec.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/27 20:29:56 by jhalford #+# #+# */ -/* Updated: 2017/02/07 12:09:05 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 17:49:55 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -59,6 +59,9 @@ struct s_exec int aol_search; t_job job; t_process process; + int fd0save; + int fd1save; + int fd2save; }; struct s_execmap @@ -93,10 +96,12 @@ int process_setexec(t_type type, t_process *p); int process_setgroup(t_process *p, pid_t pid); void process_setsig(void); void process_free(void *content, size_t content_size); -void process_reset(void); +void process_reset(t_process *p); +void process_resetfds(void); +void close_fdsave(void); int fd_is_valid(int fd); -void bad_fd(int fd); +int bad_fd(int fd); int process_redirect(t_process *p); int redirect_great(t_redir *redir); int redirect_less(t_redir *redir); diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 5e41aab9..43599ec9 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/07 12:56:46 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 15:25:04 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/libft b/42sh/libft index 92902c1c..6437a054 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit 92902c1c6539152d9daadaf2a018b2d344f1224e +Subproject commit 6437a0545bf0eec54bc3ac4fa4bc24d83efcf384 diff --git a/42sh/src/exec/bad_fd.c b/42sh/src/exec/bad_fd.c index 4d5399d3..031c26cf 100644 --- a/42sh/src/exec/bad_fd.c +++ b/42sh/src/exec/bad_fd.c @@ -6,15 +6,15 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/06 22:32:43 by jhalford #+# #+# */ -/* Updated: 2017/02/06 22:34:21 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 16:02:12 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -void bad_fd(int fd) +int bad_fd(int fd) { ft_dprintf(2, "{red}%s: %i: Bad file descriptor{eoc}\n", SHELL_NAME, fd); - exit(1); + return (1); } diff --git a/42sh/src/exec/close_fdsave.c b/42sh/src/exec/close_fdsave.c new file mode 100644 index 00000000..a012deeb --- /dev/null +++ b/42sh/src/exec/close_fdsave.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* close_fdsave.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/07 17:45:23 by jhalford #+# #+# */ +/* Updated: 2017/02/07 17:54:07 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "exec.h" + +void close_fdsave(void) +{ + t_exec *exec; + + exec = &data_singleton()->exec; + close(exec->fd0save); + close(exec->fd1save); + close(exec->fd2save); +} diff --git a/42sh/src/exec/exec_command.c b/42sh/src/exec/exec_command.c index 49bdfc0e..ebd8335f 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/07 12:14:31 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 17:44:40 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -65,10 +65,7 @@ int exec_command(t_btree **ast) job->pgid = 0; } } - p->av = NULL; - p->pid = 0; - p->attributes &= ~(PROCESS_STATE_MASK | PROCESS_TYPE_MASK); - p->redirs = NULL; + process_reset(p); btree_delone(ast, &ast_free); return (0); } diff --git a/42sh/src/exec/exec_redir.c b/42sh/src/exec/exec_redir.c index 8cb33701..1f5c31b5 100644 --- a/42sh/src/exec/exec_redir.c +++ b/42sh/src/exec/exec_redir.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 17:27:51 by jhalford #+# #+# */ -/* Updated: 2017/02/06 16:12:14 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 15:24:11 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index c0cb312f..49767b2c 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/02/07 12:11:34 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 17:54:12 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,7 +24,11 @@ int launch_process(t_process *p) set_exitstatus(127, 1); } else if (p->attributes & PROCESS_BUILTIN && IS_PIPESINGLE(p->attributes)) + { + if (process_redirect(p)) + return (1); set_exitstatus((*p->execf)(p->path, p->av, data_singleton()->env), 1); + } else { p->attributes &= ~PROCESS_STATE_MASK; @@ -39,9 +43,11 @@ int launch_process(t_process *p) pid = fork(); if (pid == 0) { + close_fdsave(); process_setgroup(p, 0); process_setsig(); - process_redirect(p); + if (process_redirect(p)) + exit (1); (*p->execf)(p->path, p->av, data_singleton()->env); exit(43); } @@ -52,7 +58,7 @@ int launch_process(t_process *p) return (0); } else if (pid == -1) - ft_dprintf(2, "{red}internal fork error{eoc}\n"); + ft_dprintf(2, "{red}%s: internal fork error{eoc}\n", SHELL_NAME); } return (1); } diff --git a/42sh/src/exec/process_redirect.c b/42sh/src/exec/process_redirect.c index dfe8615b..a5560582 100644 --- a/42sh/src/exec/process_redirect.c +++ b/42sh/src/exec/process_redirect.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/29 16:04:18 by jhalford #+# #+# */ -/* Updated: 2017/02/07 12:01:06 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 17:36:46 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -32,18 +32,19 @@ int process_redirect(t_process *p) redirs = p->redirs; while (redirs) { - i = 0; redir = redirs->content; if (redir->n > 9) { bad_fd(redir->n); exit(1); } + i = 0; while (g_redirmap[i].type) { if (g_redirmap[i].type == redir->type) { - (g_redirmap[i].f)(redir); + if ((g_redirmap[i].f)(redir)) + return (1); break ; } i++; @@ -53,14 +54,8 @@ int process_redirect(t_process *p) if (p->toclose != STDIN) close(p->toclose); if (p->fdin != STDIN) - { - dup2(p->fdin, STDIN); - close(p->fdin); - } + dup2_close(p->fdin, STDIN); if (p->fdout != STDOUT) - { - dup2(p->fdout, STDOUT); - close(p->fdout); - } + dup2_close(p->fdout, STDOUT); return (0); } diff --git a/42sh/src/exec/process_reset.c b/42sh/src/exec/process_reset.c index 4b3c02a9..b90a131e 100644 --- a/42sh/src/exec/process_reset.c +++ b/42sh/src/exec/process_reset.c @@ -1,8 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* process_reset.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/07 17:44:22 by jhalford #+# #+# */ +/* Updated: 2017/02/07 17:48:22 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "exec.h" -void process_reset(void) +void process_reset(t_process *p) { - t_data *data; - - data = data_singleton(); + process_resetfds(); + p->av = NULL; + p->pid = 0; + p->redirs = NULL; + p->attributes &= ~(PROCESS_STATE_MASK | PROCESS_TYPE_MASK); } diff --git a/42sh/src/exec/process_resetfds.c b/42sh/src/exec/process_resetfds.c new file mode 100644 index 00000000..dbc9403a --- /dev/null +++ b/42sh/src/exec/process_resetfds.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* process_resetfds.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/07 17:39:14 by jhalford #+# #+# */ +/* Updated: 2017/02/07 17:50:52 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void process_resetfds(void) +{ + t_exec *exec; + + exec = &data_singleton()->exec; + dup2(exec->fd0save, 0); + dup2(exec->fd1save, 1); + dup2(exec->fd2save, 2); +} diff --git a/42sh/src/exec/redirect_greatand.c b/42sh/src/exec/redirect_greatand.c index 10abaa48..6e4bf37f 100644 --- a/42sh/src/exec/redirect_greatand.c +++ b/42sh/src/exec/redirect_greatand.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/06 22:12:31 by jhalford #+# #+# */ -/* Updated: 2017/02/07 12:01:45 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 17:54:40 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,26 +17,20 @@ int redirect_greatand(t_redir *redir) int fdold; int fdnew; - if (redir->word.fd == redir->n) - return (0); - if (redir->word.fd > 9) - bad_fd(redir->word.fd); if (redir->close) { close(redir->n); - return (1); - } - else - { - fdold = redir->word.fd; - fdnew = redir->n; + return (0); } + if (redir->word.fd == redir->n) + return (0); + if (redir->word.fd > 9) + return (bad_fd(redir->word.fd)); + fdold = redir->word.fd; + fdnew = redir->n; if (fd_is_valid(fdold)) - { - dup2(fdold, fdnew); - close(fdold); - } + dup2_close(fdold, fdnew); else - bad_fd(fdold); + return (bad_fd(fdold)); return (0); } diff --git a/42sh/src/exec/redirect_less.c b/42sh/src/exec/redirect_less.c index b68ca76a..38fda3bd 100644 --- a/42sh/src/exec/redirect_less.c +++ b/42sh/src/exec/redirect_less.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/06 22:09:53 by jhalford #+# #+# */ -/* Updated: 2017/02/06 22:38:46 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 16:05:09 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/redirect_lessand.c b/42sh/src/exec/redirect_lessand.c index fa4450b9..15da4123 100644 --- a/42sh/src/exec/redirect_lessand.c +++ b/42sh/src/exec/redirect_lessand.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/06 22:11:18 by jhalford #+# #+# */ -/* Updated: 2017/02/07 12:01:56 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 17:54:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,26 +17,23 @@ int redirect_lessand(t_redir *redir) int fdold; int fdnew; - if (redir->word.fd == redir->n) - return (0); - if (redir->word.fd > 9) - bad_fd(redir->word.fd); if (redir->close) { close(redir->n); - return (1); - } - else - { - fdold = redir->word.fd; - fdnew = redir->n; + return (0); } + if (redir->word.fd == redir->n) + return (0); + if (redir->word.fd > 9) + return (bad_fd(redir->word.fd)); + fdold = redir->word.fd; + fdnew = redir->n; if (fd_is_valid(fdold)) { dup2(fdold, fdnew); close(fdold); } else - bad_fd(fdold); + return (bad_fd(fdold)); return (0); } diff --git a/42sh/src/exec/set_exitstatus.c b/42sh/src/exec/set_exitstatus.c index 19c79d48..b38da178 100644 --- a/42sh/src/exec/set_exitstatus.c +++ b/42sh/src/exec/set_exitstatus.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:25:17 by jhalford #+# #+# */ -/* Updated: 2017/01/08 15:58:20 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 16:04:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,7 +27,7 @@ void set_exitstatus(int status, int override) exitval = 128 + WTERMSIG(status); else { - DG("fail: process was not exited nor signaled."); + DG("%s: process was not exited nor signaled.", SHELL_NAME); return ; } } diff --git a/42sh/src/main/data_init.c b/42sh/src/main/data_init.c index 76bf0d90..62e5c03d 100644 --- a/42sh/src/main/data_init.c +++ b/42sh/src/main/data_init.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 19:26:32 by jhalford #+# #+# */ -/* Updated: 2017/02/03 15:25:55 by gwojda ### ########.fr */ +/* Updated: 2017/02/07 17:23:02 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -31,6 +31,9 @@ int data_init(void) data->exec.process.pid = 0; data->exec.process.attributes = PROCESS_PIPESTART | PROCESS_PIPEEND; data->exec.process.redirs = NULL; + data->exec.fd0save = dup(0); + data->exec.fd1save = dup(1); + data->exec.fd2save = dup(2); data->exec.aol_status = NULL; data->exec.aol_search = 0; diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 30f53822..ae3f8ec2 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/06 16:46:48 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 17:18:21 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/parse_great.c b/42sh/src/parser/parse_great.c index 1c6f5dea..7fbc3110 100644 --- a/42sh/src/parser/parse_great.c +++ b/42sh/src/parser/parse_great.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/02/06 16:29:54 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 15:26:25 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/parser/parse_greatand.c b/42sh/src/parser/parse_greatand.c index fdfbd6ff..3950072f 100644 --- a/42sh/src/parser/parse_greatand.c +++ b/42sh/src/parser/parse_greatand.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/14 12:49:45 by jhalford #+# #+# */ -/* Updated: 2017/02/06 16:30:41 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 15:32:44 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 28acb3b81404f051f811ab975c05cb8b96d9bdea Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 7 Feb 2017 18:07:06 +0100 Subject: [PATCH 38/98] removed lexer_var and prototype --- 42sh/Makefile | 1 - 42sh/includes/lexer.h | 3 +-- 42sh/src/lexer/lexer_var.c | 38 -------------------------------------- 3 files changed, 1 insertion(+), 41 deletions(-) delete mode 100644 42sh/src/lexer/lexer_var.c diff --git a/42sh/Makefile b/42sh/Makefile index 535fa90a..77a3c65c 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -155,7 +155,6 @@ 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\ diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 65e0a3eb..ffad6bcf 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/07 18:06:00 by jhalford ### ########.fr */ +/* Updated: 2017/02/07 18:06:47 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -108,7 +108,6 @@ int lexer_greatand(t_list **alst, char *str); int lexer_quote(t_list **alst, char *str); int lexer_dquote(t_list **alst, char *str); int lexer_backslash(t_list **alst, char *str); -int lexer_var(t_list **alst, char *str); int lexer_special(t_list **alst, char *str); int lexer_comment(t_list **alst, char *str); diff --git a/42sh/src/lexer/lexer_var.c b/42sh/src/lexer/lexer_var.c deleted file mode 100644 index 6561c95b..00000000 --- a/42sh/src/lexer/lexer_var.c +++ /dev/null @@ -1,38 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* lexer_var.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/10 14:54:57 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:37:25 by wescande ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "lexer.h" - -/* -int lexer_var(t_list **alst, char *str) -{ - t_token *token; - t_lexstate state; - - token = (*alst)->content; - token->type = TK_N_WORD; - str++; - if (!ft_strchr(token->data, '$')) - token_append(token, '$', 0); - if (!*str) - { - token_expand_var(token); - return (0); - } - if ((state = get_lexer_state(str))) - { - token_expand_var(token); - return (ft_tokenize(alst, str, state)); - } - token_append(token, *str, 0); - return (lexer_var(alst, str)); -}*/ From afd57a576c40484afb09ee0f64c66ad27d4b9ca3 Mon Sep 17 00:00:00 2001 From: wescande Date: Tue, 7 Feb 2017 19:00:39 +0100 Subject: [PATCH 39/98] rectif invalid read on glob.c because of len instead of (len >> 3) + 1 --- 42sh/src/glob/glob.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index 3aad8ae9..d5bc8354 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/02/07 16:13:36 by wescande ### ########.fr */ +/* Updated: 2017/02/07 18:59:50 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -41,8 +41,8 @@ char **glob(char *pat, unsigned char *esc, int len; len = ft_strlen(pat); - gl = (t_glob){ft_strdup(pat), dup_char_esc(esc, len), - dup_char_esc(esc2, len), NULL, NULL}; + gl = (t_glob){ft_strdup(pat), dup_char_esc(esc, (len >> 3) + 1), + dup_char_esc(esc2, (len >> 3) +1), NULL, NULL}; expand_var(&gl); ft_memdel((void **)&gl.esc2); expand_brace(&gl); From c2d979012a7edcd8aa1e53f7c61f317579e4feed Mon Sep 17 00:00:00 2001 From: wescande Date: Tue, 7 Feb 2017 19:53:12 +0100 Subject: [PATCH 40/98] rectif du ./ dans le glob + optim du nb de result dans le cas de recherche cross-dir --- 42sh/includes/glob.h | 4 +++- 42sh/src/glob/dir_glob.c | 16 ++++++++-------- 42sh/src/glob/glob.c | 17 +++++++++-------- 42sh/src/glob/match_pattern.c | 9 ++++++--- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 651a6231..728ce648 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/02/07 16:04:57 by wescande ### ########.fr */ +/* Updated: 2017/02/07 19:40:59 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,6 +27,8 @@ typedef struct s_ld typedef struct s_glob { + short int found; + short int cur_dir; char *pat; unsigned char *esc; unsigned char *esc2; diff --git a/42sh/src/glob/dir_glob.c b/42sh/src/glob/dir_glob.c index 9c9ad8e3..8dc2d0da 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/02/07 13:06:07 by wescande ### ########.fr */ +/* Updated: 2017/02/07 19:48:12 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,13 +20,11 @@ int is_directory(const char *path) return (S_ISDIR(path_stat.st_mode)); } -static int dir_list_content(t_glob *gl, char **str, char *pat, +static void dir_list_content(t_glob *gl, char **str, char *pat, int recursive) { - int ret; char *path_tmp; - ret = 0; if (str[1][0] != '.') { if (*str[0] == '/' && !*(str[0] + 1)) @@ -36,12 +34,14 @@ static int dir_list_content(t_glob *gl, char **str, char *pat, 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 * + if (match_pattern(gl, str[1], path_tmp)) + { + gl->found = 1; + ft_ld_pushfront(&gl->match, ft_strdup(path_tmp + gl->cur_dir * 2 * (path_tmp[0] == '.' && path_tmp[1] == '/'))); + } ft_strdel(&path_tmp); } - return (ret); } int dir_research(t_glob *gl, char *p, @@ -56,7 +56,7 @@ int dir_research(t_glob *gl, char *p, { dir = opendir(p); while ((in = readdir(dir))) - ret += dir_list_content(gl, + dir_list_content(gl, (char *[2]){p, in->d_name}, pat, recursive); closedir(dir); } diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index d5bc8354..fc0c4d47 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/02/07 18:59:50 by wescande ### ########.fr */ +/* Updated: 2017/02/07 19:47:53 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -37,26 +37,27 @@ char **glob(char *pat, unsigned char *esc, unsigned char *esc2) { t_glob gl; - int ret; int len; len = ft_strlen(pat); - gl = (t_glob){ft_strdup(pat), dup_char_esc(esc, (len >> 3) + 1), + gl = (t_glob){0, 0, ft_strdup(pat), dup_char_esc(esc, (len >> 3) + 1), dup_char_esc(esc2, (len >> 3) +1), NULL, NULL}; expand_var(&gl); ft_memdel((void **)&gl.esc2); expand_brace(&gl); - while (gl.m_pat->next) + while (gl.m_pat->next && !(gl.found = 0)) { + gl.found = 0; + gl.cur_dir = 1; 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, 0); + dir_research(&gl, ".", gl.pat, 0); else - ret = dir_research(&gl, "/", gl.pat + 1, 0); - if (!ret) + dir_research(&gl, "/", gl.pat + 1, 0); + if (!gl.found) ft_ld_pushfront(&gl.match, - ft_strdup(((char **)gl.m_pat->content)[0])); + ft_strjoin(gl.cur_dir ? "" : "./", ((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/match_pattern.c b/42sh/src/glob/match_pattern.c index 47b77311..086d768f 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/02/07 13:06:58 by wescande ### ########.fr */ +/* Updated: 2017/02/07 19:45:54 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -85,17 +85,20 @@ static int match_star(t_glob *gl, char *str, char *full_word) return (0); } -char *manage_pat(char *pat, char *str) +static char *manage_pat(t_glob *gl, char *pat, char *str) { if (pat[0] == '.' && pat[1] == '/' && ((str[0] == '.' && str[1] != '/') || str[0] != '.')) + { + gl->cur_dir = 0; return (pat + 2); + } return (pat); } int match_pattern(t_glob *gl, char *str, char *full_word) { - gl->pat = manage_pat(gl->pat, str); + gl->pat = manage_pat(gl, gl->pat, str); while (*gl->pat) { if (is_char_esc(gl->esc, ((char **)gl->m_pat->content)[0], gl->pat)) From 87e5d1eed0925030937602d311e9963b6be43d80 Mon Sep 17 00:00:00 2001 From: wescande Date: Tue, 7 Feb 2017 19:58:32 +0100 Subject: [PATCH 41/98] mise norme --- 42sh/src/glob/glob.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index fc0c4d47..54ec2b89 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/02/07 19:47:53 by wescande ### ########.fr */ +/* Updated: 2017/02/07 19:57:44 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -47,7 +47,6 @@ char **glob(char *pat, unsigned char *esc, expand_brace(&gl); while (gl.m_pat->next && !(gl.found = 0)) { - gl.found = 0; gl.cur_dir = 1; gl.pat = ((char **)gl.m_pat->content)[0]; gl.esc = ((unsigned char **)gl.m_pat->content)[1]; From bb666ba0c6f9598ac43c376111f30b178fe5bfb4 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 7 Feb 2017 20:16:53 +0100 Subject: [PATCH 42/98] escaped codes in makefile are now \e --- 42sh/Makefile | 10 +++++----- 42sh/libft | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index 77a3c65c..1f84cbd9 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,7 +6,7 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/07 16:11:13 by jhalford ### ########.fr # +# Updated: 2017/02/07 20:11:22 by jhalford ### ########.fr # # # # **************************************************************************** # @@ -230,7 +230,7 @@ $(NAME): $(LIBFT_LIB) $(OBJ_DIR) $(OBJS) $(LIBS) \ $(LIBFT_LIB) $(OBJS) \ -o $(NAME) - @echo "\r\033[48;5;15;38;5;25m✅ MAKE $(NAME)\033[0m\033[K" + @printf "\r\e[48;5;15;38;5;25m✅ MAKE $(NAME)\e[0m\e[K\n" $(LIBFT_LIB): @make -j -C $(LIBFT_DIR) @@ -244,7 +244,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 %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) "$@" + @printf "\r\e[38;5;11m⌛ MAKE %10.10s : %2d%% \e[48;5;%dm%*s\e[0m%*s\e[48;5;255m \e[0m \e[38;5;11m %*s\e[0m\e[K" $(NAME) $(PERCENT) $(COLOR) $(DONE) "" $(TO_DO) "" $(DELTA) "$@" @$(CC) $(FLAGS) -MMD -c $< -o $@\ -I $(INC_DIR)\ -I $(LIBFT_INC) @@ -252,14 +252,14 @@ $(OBJ_DIR)%.o : $(SRC_DIR)%.c | $(OBJ_DIR) clean: cleanlib @rm -rf $(OBJ_DIR) - @echo "\r\033[38;5;202m✖ clean $(NAME).\033[0m\033[K" + @echo "\r\e[38;5;202m✖ clean $(NAME).\e[0m\e[K\n" cleanlib: @make -C $(LIBFT_DIR) clean fclean: clean fcleanlib @rm -f $(NAME) - @echo "\r\033[38;5;196m❌ fclean $(NAME).\033[0m\033[K" + @printf "\r\e[38;5;196m❌ fclean $(NAME).\e[0m\e[K\n" fcleanlib: cleanlib @make -C $(LIBFT_DIR) fclean diff --git a/42sh/libft b/42sh/libft index 6437a054..d79c3810 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit 6437a0545bf0eec54bc3ac4fa4bc24d83efcf384 +Subproject commit d79c38104bbd45018d03a11d0c60cd6616e77ed8 From a99ef894e73904af8fdebc617e2ca94e3579b176 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 7 Feb 2017 22:42:02 +0100 Subject: [PATCH 43/98] maakefile switch echo to printf --- 42sh/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/42sh/Makefile b/42sh/Makefile index 1f84cbd9..0b9b37f2 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -252,7 +252,7 @@ $(OBJ_DIR)%.o : $(SRC_DIR)%.c | $(OBJ_DIR) clean: cleanlib @rm -rf $(OBJ_DIR) - @echo "\r\e[38;5;202m✖ clean $(NAME).\e[0m\e[K\n" + @printf "\r\e[38;5;202m✖ clean $(NAME).\e[0m\e[K\n" cleanlib: @make -C $(LIBFT_DIR) clean From 6c8ea86a24ca97a1aebe183cf197a704c3b83b22 Mon Sep 17 00:00:00 2001 From: wescande Date: Wed, 8 Feb 2017 18:46:16 +0100 Subject: [PATCH 44/98] ajout memrealloc et modif token_append sur les char esc et esc2 --- 42sh/Makefile | 1 + 42sh/includes/glob.h | 3 ++- 42sh/src/glob/lib_perso/ft_memrealloc.c | 30 +++++++++++++++++++++++++ 42sh/src/lexer/token_append.c | 8 ++++--- 4 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 42sh/src/glob/lib_perso/ft_memrealloc.c diff --git a/42sh/Makefile b/42sh/Makefile index 0b9b37f2..84a9ac20 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -98,6 +98,7 @@ 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_memrealloc.c\ glob/lib_perso/ft_strjoinf.c\ glob/lib_perso/ft_strsubf.c\ glob/lib_perso/ft_tabdel.c\ diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 728ce648..798b417b 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/02/07 19:40:59 by wescande ### ########.fr */ +/* Updated: 2017/02/08 13:54:57 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -114,4 +114,5 @@ char *ft_strsubf(char *s, unsigned int start, void ft_tabdel(char ***mytab); int ft_tablen(char **mytab); +void *ft_memrealloc(void *ptr, size_t old_s, size_t new_s); #endif diff --git a/42sh/src/glob/lib_perso/ft_memrealloc.c b/42sh/src/glob/lib_perso/ft_memrealloc.c new file mode 100644 index 00000000..08130733 --- /dev/null +++ b/42sh/src/glob/lib_perso/ft_memrealloc.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memrealloc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2016/11/05 13:44:36 by wescande #+# #+# */ +/* Updated: 2017/02/08 13:54:33 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +void *ft_memrealloc(void *ptr, size_t old_s, size_t new_s) +{ + void *n_ptr; + + if (!ptr) + return (ft_memalloc(new_s)); + if (!old_s) + { + ft_memdel(&ptr); + return (ft_memalloc(new_s)); + } + n_ptr = ft_memalloc(new_s); + ft_memcpy(n_ptr, ptr, old_s); + ft_memdel(ptr); + return (n_ptr); +} diff --git a/42sh/src/lexer/token_append.c b/42sh/src/lexer/token_append.c index 3fcfec70..d7205017 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/02/07 15:32:08 by wescande ### ########.fr */ +/* Updated: 2017/02/08 13:55:31 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,10 +21,12 @@ int token_append(t_token *token, char c, short int esc, short int esc2) { token->size += 8; token->data = (char *)ft_realloc(token->data, token->size + 1); - token->esc = (unsigned char *)ft_realloc((char *)token->esc, + token->esc = (unsigned char *)ft_memrealloc((char *)token->esc, + (token->size >> 3), (token->size >> 3) + 1); token->esc[token->size >> 3] = 0; - token->esc2 = (unsigned char *)ft_realloc((char *)token->esc2, + token->esc2 = (unsigned char *)ft_memrealloc((char *)token->esc2, + (token->size >> 3), (token->size >> 3) + 1); token->esc2[token->size >> 3] = 0; } From 5a033a8789f409552c194ced103db7c25a83b47a Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Wed, 8 Feb 2017 22:47:12 +0100 Subject: [PATCH 45/98] fcntl for saving fds, new option to distinguish interactive shell or not --- 42sh/Makefile | 1 - 42sh/includes/exec.h | 1 - 42sh/includes/minishell.h | 16 +++++++++------- 42sh/libft | 2 +- 42sh/src/exec/close_fdsave.c | 23 ----------------------- 42sh/src/exec/exec_ampersand.c | 4 ++-- 42sh/src/exec/launch_process.c | 1 - 42sh/src/exec/process_setgroup.c | 6 ++++-- 42sh/src/job-control/builtin_bg.c | 4 ++-- 42sh/src/job-control/builtin_fg.c | 4 ++-- 42sh/src/job-control/builtin_jobs.c | 4 ++-- 42sh/src/job-control/job_wait.c | 1 + 42sh/src/job-control/sigtstp_handler.c | 3 ++- 42sh/src/main/data_init.c | 15 ++++++--------- 42sh/src/main/main.c | 8 ++++++-- 42sh/src/main/shell_get_opts.c | 8 +++++--- 42sh/src/main/shell_init.c | 15 +++++++++------ 42sh/src/parser/parse_subshell.c | 1 - 18 files changed, 51 insertions(+), 66 deletions(-) delete mode 100644 42sh/src/exec/close_fdsave.c diff --git a/42sh/Makefile b/42sh/Makefile index 0b9b37f2..d1a77c83 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -54,7 +54,6 @@ completion/c_terminal.c\ completion/completion.c\ exec/ast_free.c\ exec/bad_fd.c\ -exec/close_fdsave.c\ exec/exec_ampersand.c\ exec/exec_and_if.c\ exec/exec_command.c\ diff --git a/42sh/includes/exec.h b/42sh/includes/exec.h index 679f5e20..c2743bea 100644 --- a/42sh/includes/exec.h +++ b/42sh/includes/exec.h @@ -98,7 +98,6 @@ void process_setsig(void); void process_free(void *content, size_t content_size); void process_reset(t_process *p); void process_resetfds(void); -void close_fdsave(void); int fd_is_valid(int fd); int bad_fd(int fd); diff --git a/42sh/includes/minishell.h b/42sh/includes/minishell.h index d3959f46..fbaaac4c 100644 --- a/42sh/includes/minishell.h +++ b/42sh/includes/minishell.h @@ -33,15 +33,17 @@ # include # include -# define SHELL_OPTS_JOBC (1 << 0) -# define SHELL_OPTS_LC (1 << 1) -# define SHELL_MODE_INPUT (1 << 2) -# define SHELL_MODE_EXEC (1 << 3) +# define SH_INTERACTIVE (1 << 0) +# define SH_OPTS_JOBC (1 << 1) +# define SH_OPTS_LC (1 << 2) +# define SH_MODE_INPUT (1 << 3) +# define SH_MODE_EXEC (1 << 4) -# define SHELL_MODE_MASK (SHELL_MODE_INPUT | SHELL_MODE_EXEC) -# define SHELL_HAS_JOBC(b) (b & SHELL_OPTS_JOBC) +# define SH_MODE_MASK (SH_MODE_INPUT | SH_MODE_EXEC) +# define SH_HAS_JOBC(b) (b & SH_OPTS_JOBC) +# define SH_IS_INTERACTIVE(b) (b & SH_INTERACTIVE) -# define SHELL_MSG_NOJOBC "no job-control" +# define SH_MSG_NOJOBC "no job-control" struct s_data { diff --git a/42sh/libft b/42sh/libft index d79c3810..b53fcb9d 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit d79c38104bbd45018d03a11d0c60cd6616e77ed8 +Subproject commit b53fcb9db8b4baf53c73b17726f1740c4af12be0 diff --git a/42sh/src/exec/close_fdsave.c b/42sh/src/exec/close_fdsave.c deleted file mode 100644 index a012deeb..00000000 --- a/42sh/src/exec/close_fdsave.c +++ /dev/null @@ -1,23 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* close_fdsave.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/02/07 17:45:23 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:54:07 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "exec.h" - -void close_fdsave(void) -{ - t_exec *exec; - - exec = &data_singleton()->exec; - close(exec->fd0save); - close(exec->fd1save); - close(exec->fd2save); -} diff --git a/42sh/src/exec/exec_ampersand.c b/42sh/src/exec/exec_ampersand.c index ad4123d8..7dad7d31 100644 --- a/42sh/src/exec/exec_ampersand.c +++ b/42sh/src/exec/exec_ampersand.c @@ -14,10 +14,10 @@ int exec_ampersand(t_btree **ast) { - if (SHELL_HAS_JOBC(data_singleton()->opts)) + if (SH_HAS_JOBC(data_singleton()->opts)) data_singleton()->exec.job.attributes |= JOB_BG; ft_exec(&(*ast)->left); - if (SHELL_HAS_JOBC(data_singleton()->opts)) + if (SH_HAS_JOBC(data_singleton()->opts)) data_singleton()->exec.job.attributes &= ~JOB_BG; ft_exec(&(*ast)->right); btree_delone(ast, &ast_free); diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index 49767b2c..055109e0 100644 --- a/42sh/src/exec/launch_process.c +++ b/42sh/src/exec/launch_process.c @@ -43,7 +43,6 @@ int launch_process(t_process *p) pid = fork(); if (pid == 0) { - close_fdsave(); process_setgroup(p, 0); process_setsig(); if (process_redirect(p)) diff --git a/42sh/src/exec/process_setgroup.c b/42sh/src/exec/process_setgroup.c index 186ed6d9..a7ada487 100644 --- a/42sh/src/exec/process_setgroup.c +++ b/42sh/src/exec/process_setgroup.c @@ -16,11 +16,13 @@ int process_setgroup(t_process *p, pid_t pid) { t_job *j; + t_data *data; (void)p; - if (!SHELL_HAS_JOBC(data_singleton()->opts)) + data = data_singleton(); + if (!SH_HAS_JOBC(data->opts)) return (0); - j = &data_singleton()->exec.job; + j = &data->exec.job; if (!j->pgid) j->pgid = pid ? pid : getpid(); setpgid(pid, j->pgid); diff --git a/42sh/src/job-control/builtin_bg.c b/42sh/src/job-control/builtin_bg.c index 9a9928fc..d3f91c1f 100644 --- a/42sh/src/job-control/builtin_bg.c +++ b/42sh/src/job-control/builtin_bg.c @@ -21,9 +21,9 @@ int builtin_bg(const char *path, char *const av[], char *const envp[]) (void)path; (void)envp; - if (!SHELL_HAS_JOBC(data_singleton()->opts)) + if (!SH_HAS_JOBC(data_singleton()->opts)) { - ft_dprintf(2, "{red}bg: %s{eoc}\n", SHELL_MSG_NOJOBC); + ft_dprintf(2, "{red}bg: %s{eoc}\n", SH_MSG_NOJOBC); return (-1); } jobc = &data_singleton()->jobc; diff --git a/42sh/src/job-control/builtin_fg.c b/42sh/src/job-control/builtin_fg.c index 48945eca..373ba8a9 100644 --- a/42sh/src/job-control/builtin_fg.c +++ b/42sh/src/job-control/builtin_fg.c @@ -21,9 +21,9 @@ int builtin_fg(const char *path, char *const av[], char *const envp[]) (void)path; (void)envp; - if (!SHELL_HAS_JOBC(data_singleton()->opts)) + if (!SH_HAS_JOBC(data_singleton()->opts)) { - ft_dprintf(2, "{red}fg: %s{eoc}\n", SHELL_MSG_NOJOBC); + ft_dprintf(2, "{red}fg: %s{eoc}\n", SH_MSG_NOJOBC); return (-1); } jobc = &data_singleton()->jobc; diff --git a/42sh/src/job-control/builtin_jobs.c b/42sh/src/job-control/builtin_jobs.c index 9e3fe05d..f2a83ee0 100644 --- a/42sh/src/job-control/builtin_jobs.c +++ b/42sh/src/job-control/builtin_jobs.c @@ -90,9 +90,9 @@ int builtin_jobs(const char *path, char *const av[], char *const envp[]) (void)path; (void)envp; - if (!SHELL_HAS_JOBC(data_singleton()->opts)) + if (!SH_HAS_JOBC(data_singleton()->opts)) { - ft_dprintf(2, "{red}jobs: %s{eoc}\n", SHELL_MSG_NOJOBC); + ft_dprintf(2, "{red}jobs: %s{eoc}\n", SH_MSG_NOJOBC); return (1); } if ((opts = bt_jobs_parse((char**)av, &i)) < 0) diff --git a/42sh/src/job-control/job_wait.c b/42sh/src/job-control/job_wait.c index 62f5ebef..6cd87253 100644 --- a/42sh/src/job-control/job_wait.c +++ b/42sh/src/job-control/job_wait.c @@ -17,6 +17,7 @@ int job_wait(int id) pid_t pid; int status; + DG("gonna wait [%i]", id); if (job_is_stopped(id)) return (0); job_update_status(); diff --git a/42sh/src/job-control/sigtstp_handler.c b/42sh/src/job-control/sigtstp_handler.c index ecae88cb..3ef1c541 100644 --- a/42sh/src/job-control/sigtstp_handler.c +++ b/42sh/src/job-control/sigtstp_handler.c @@ -18,5 +18,6 @@ void sigtstp_handler(int signo) (void)signo; jobc = &data_singleton()->jobc; - DG("got SIGTSTP in process %i", getpid()); + DG("got SIGTSTP pid=%i, pgrp=%i, shell_pgid=%i", getpid(), getpgrp(), data_singleton()->jobc.shell_pgid); + ft_putchar('\x1A'); } diff --git a/42sh/src/main/data_init.c b/42sh/src/main/data_init.c index 62e5c03d..8c11688e 100644 --- a/42sh/src/main/data_init.c +++ b/42sh/src/main/data_init.c @@ -16,24 +16,24 @@ extern char **environ; int data_init(void) { - char *term_name; t_data *data; data = data_singleton(); data->env = ft_sstrdup(environ); data->comp = NULL; - data->opts = SHELL_OPTS_JOBC; + data->opts = SH_OPTS_JOBC; data->exec.process.path = NULL; data->exec.process.av = NULL; + data->exec.process.toclose = STDIN; data->exec.process.fdin = STDIN; data->exec.process.fdout = STDOUT; data->exec.process.pid = 0; data->exec.process.attributes = PROCESS_PIPESTART | PROCESS_PIPEEND; data->exec.process.redirs = NULL; - data->exec.fd0save = dup(0); - data->exec.fd1save = dup(1); - data->exec.fd2save = dup(2); + data->exec.fd0save = fcntl(0, F_DUPFD_CLOEXEC); + data->exec.fd1save = fcntl(1, F_DUPFD_CLOEXEC); + data->exec.fd2save = fcntl(2, F_DUPFD_CLOEXEC); data->exec.aol_status = NULL; data->exec.aol_search = 0; @@ -41,11 +41,8 @@ int data_init(void) data->exec.job.pgid = 0; data->exec.job.attributes = 0; data->exec.job.first_process = 0; + data->jobc.first_job = NULL; data->jobc.current_id = 1; - if ((term_name = ft_getenv(data->env, "TERM")) == NULL) - return (-1); - if (tgetent(NULL, term_name) != 1) - return (-1); return (0); } diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index ae3f8ec2..b9cc077b 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -36,10 +36,14 @@ int shell_single_command(char *command) int main(int ac, char **av) { + t_data *data; + + data = data_singleton(); setlocale(LC_ALL, ""); + DG("{inv}{bol}{gre}start of shell{eoc} pid=%i pgrp=%i job_control is %s", getpid(), getpgrp(), SH_HAS_JOBC(data->opts) ? "ON" : "OFF"); shell_init(ac, av); - DG("{inv}{bol}{gre}start of shell{eoc} job_control is %s", data_singleton()->opts & SHELL_OPTS_JOBC ? "ON" : "OFF"); - if (data_singleton()->opts & SHELL_OPTS_LC) + DG("{inv}{bol}{gre}start of shell{eoc} pid=%i pgrp=%i job_control is %s", getpid(), getpgrp(), SH_HAS_JOBC(data->opts) ? "ON" : "OFF"); + if (data_singleton()->opts & SH_OPTS_LC) { shell_single_command(ft_strdup(shell_get_avdata())); return (0); diff --git a/42sh/src/main/shell_get_opts.c b/42sh/src/main/shell_get_opts.c index d91fce50..f9f861fc 100644 --- a/42sh/src/main/shell_get_opts.c +++ b/42sh/src/main/shell_get_opts.c @@ -15,7 +15,7 @@ static void shell_parse_long_opt(char *str) { if (ft_strcmp("no-jobcontrol", str) == 0) - data_singleton()->opts &= ~SHELL_OPTS_JOBC; + data_singleton()->opts &= ~SH_OPTS_JOBC; } static void shell_parse_short_opt(char *str) @@ -27,8 +27,8 @@ static void shell_parse_short_opt(char *str) { if (*str == 'c') { - data_singleton()->opts |= SHELL_OPTS_LC; - data_singleton()->opts &= ~SHELL_OPTS_JOBC; + data_singleton()->opts |= SH_OPTS_LC; + data_singleton()->opts &= ~SH_OPTS_JOBC; } i++; } @@ -39,6 +39,8 @@ void shell_get_opts(int ac, char **av) int i; i = 1; + if (isatty(STDIN)) + data_singleton()->opts |= SH_INTERACTIVE; while (i < ac && av[i][0] == '-') { if (ft_strcmp(av[i], "--") == 0) diff --git a/42sh/src/main/shell_init.c b/42sh/src/main/shell_init.c index d33221da..e27ac196 100644 --- a/42sh/src/main/shell_init.c +++ b/42sh/src/main/shell_init.c @@ -15,14 +15,18 @@ void shell_init(int ac, char **av) { int *shell_pgid; + t_data *data; data_init(); - data_singleton()->argc = ac; - data_singleton()->argv = ft_sstrdup(av); + data = data_singleton(); + data->argc = ac; + data->argv = ft_sstrdup(av); atexit(&shell_exit); - if (isatty(STDIN)) + shell_get_opts(ac, av); + if (SH_IS_INTERACTIVE(data->opts)) { - shell_pgid = &data_singleton()->jobc.shell_pgid; + DG("interactive shell settings"); + shell_pgid = &data->jobc.shell_pgid; while (tcgetpgrp(STDIN) != (*shell_pgid = getpgrp())) kill(-*shell_pgid, SIGTTIN); signal(SIGINT, sigint_handler); @@ -38,7 +42,6 @@ void shell_init(int ac, char **av) exit (1); } tcsetpgrp(STDIN, *shell_pgid); - tcgetattr(STDIN, &data_singleton()->jobc.shell_tmodes); + tcgetattr(STDIN, &data->jobc.shell_tmodes); } - shell_get_opts(ac, av); } diff --git a/42sh/src/parser/parse_subshell.c b/42sh/src/parser/parse_subshell.c index 8f8aef17..eff75a54 100644 --- a/42sh/src/parser/parse_subshell.c +++ b/42sh/src/parser/parse_subshell.c @@ -19,7 +19,6 @@ int parse_subshell(t_btree **ast, t_list **start, t_list **lst) (void)start; token = (*lst)->content; - DG("parsing subshell"); if ((*lst)->next && ((t_token*)(*lst)->next->content)->type & TK_WORD) { ft_dprintf(2, "{red}%s: parse error near ')'{eoc}\n", SHELL_NAME); From 74713d84b0ab7bd975d3536449411b1b29e0223a Mon Sep 17 00:00:00 2001 From: wescande Date: Thu, 9 Feb 2017 17:02:35 +0100 Subject: [PATCH 46/98] rectif memrealloc --- 42sh/src/glob/lib_perso/ft_memrealloc.c | 4 ++-- 42sh/src/lexer/token_append.c | 6 +++--- 42sh/src/lexer/token_free.c | 2 +- 42sh/src/lexer/token_init.c | 6 +++--- 42sh/src/main/data_init.c | 7 ++++++- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/42sh/src/glob/lib_perso/ft_memrealloc.c b/42sh/src/glob/lib_perso/ft_memrealloc.c index 08130733..2ea59d78 100644 --- a/42sh/src/glob/lib_perso/ft_memrealloc.c +++ b/42sh/src/glob/lib_perso/ft_memrealloc.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/05 13:44:36 by wescande #+# #+# */ -/* Updated: 2017/02/08 13:54:33 by wescande ### ########.fr */ +/* Updated: 2017/02/09 17:01:01 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,6 +25,6 @@ void *ft_memrealloc(void *ptr, size_t old_s, size_t new_s) } n_ptr = ft_memalloc(new_s); ft_memcpy(n_ptr, ptr, old_s); - ft_memdel(ptr); + ft_memdel(&ptr); return (n_ptr); } diff --git a/42sh/src/lexer/token_append.c b/42sh/src/lexer/token_append.c index d7205017..08a2f5cc 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/02/08 13:55:31 by wescande ### ########.fr */ +/* Updated: 2017/02/09 17:00:41 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,11 +21,11 @@ int token_append(t_token *token, char c, short int esc, short int esc2) { token->size += 8; token->data = (char *)ft_realloc(token->data, token->size + 1); - token->esc = (unsigned char *)ft_memrealloc((char *)token->esc, + token->esc = (unsigned char *)ft_memrealloc(token->esc, (token->size >> 3), (token->size >> 3) + 1); token->esc[token->size >> 3] = 0; - token->esc2 = (unsigned char *)ft_memrealloc((char *)token->esc2, + token->esc2 = (unsigned char *)ft_memrealloc(token->esc2, (token->size >> 3), (token->size >> 3) + 1); token->esc2[token->size >> 3] = 0; diff --git a/42sh/src/lexer/token_free.c b/42sh/src/lexer/token_free.c index a807db59..882fcc04 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/02/07 13:39:50 by wescande ### ########.fr */ +/* Updated: 2017/02/09 17:00:44 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/token_init.c b/42sh/src/lexer/token_init.c index d67262c4..280ed495 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/02/07 13:42:00 by wescande ### ########.fr */ +/* Updated: 2017/02/09 17:00:52 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,7 +20,7 @@ t_token *token_init(void) token->type = 0; token->size = 8; token->data = ft_strnew(token->size + 1); - token->esc = (unsigned char *)ft_strnew((token->size >> 3) + 1); - token->esc2 = (unsigned char *)ft_strnew((token->size >> 3) + 1); + token->esc = (unsigned char *)ft_strnew((token->size >> 3)); + token->esc2 = (unsigned char *)ft_strnew((token->size >> 3)); return (token); } diff --git a/42sh/src/main/data_init.c b/42sh/src/main/data_init.c index 8c11688e..de9e0895 100644 --- a/42sh/src/main/data_init.c +++ b/42sh/src/main/data_init.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 19:26:32 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:23:02 by jhalford ### ########.fr */ +/* Updated: 2017/02/09 16:31:07 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,7 @@ extern char **environ; int data_init(void) { t_data *data; + char *term_name; data = data_singleton(); data->env = ft_sstrdup(environ); @@ -44,5 +45,9 @@ int data_init(void) data->jobc.first_job = NULL; data->jobc.current_id = 1; + if ((term_name = ft_getenv(data->env, "TERM")) == NULL) + return (-1); + if (tgetent(NULL, term_name) != 1) + return (-1); return (0); } From e8cd4f45b0a3bb16886187760e9f945cd26f3d5c Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 10 Feb 2017 00:38:45 +0100 Subject: [PATCH 47/98] started to work on lexer_stack --- 42sh/Makefile | 14 +- 42sh/includes/ft_readline.h | 28 ++-- 42sh/includes/lexer.h | 64 +++++---- 42sh/includes/line_editing.h | 89 ------------ 42sh/includes/lst.h | 80 ----------- 42sh/includes/minishell.h | 7 +- 42sh/includes/types.h | 6 +- 42sh/libft | 2 +- .../{get_lexer_state.c => get_state_global.c} | 29 ++-- .../lexer/{ft_lexer.c => get_state_redir.c} | 25 ++-- 42sh/src/lexer/lexer_backslash.c | 11 +- 42sh/src/lexer/lexer_bquote.c | 35 +++++ 42sh/src/lexer/lexer_comment.c | 10 +- 42sh/src/lexer/lexer_default.c | 32 +++-- 42sh/src/lexer/lexer_delim.c | 14 +- 42sh/src/lexer/lexer_dquote.c | 41 ++++-- 42sh/src/lexer/lexer_great.c | 26 ++-- 42sh/src/lexer/lexer_greatand.c | 22 +-- 42sh/src/lexer/lexer_less.c | 26 ++-- 42sh/src/lexer/lexer_lessand.c | 22 +-- 42sh/src/lexer/{ft_tokenize.c => lexer_lex.c} | 19 +-- 42sh/src/lexer/lexer_newline.c | 8 +- 42sh/src/lexer/lexer_number.c | 27 ++-- 42sh/src/lexer/lexer_quote.c | 22 ++- 42sh/src/lexer/lexer_sep.c | 28 ++-- .../{lexer_special.c => lexer_subshell.c} | 15 +- 42sh/src/lexer/lexer_word.c | 22 +-- 42sh/src/lexer/reduce_bquotes.c | 9 +- 42sh/src/lexer/stack_to_prompt.c | 34 +++++ 42sh/src/lexer/token_append.c | 6 +- 42sh/src/line-editing/check_backslash.c | 128 ------------------ .../src/line-editing/{prompt.c => ftprompt.c} | 6 +- 42sh/src/line-editing/get_touch.c | 6 +- 42sh/src/line-editing/history.c | 2 +- 42sh/src/line-editing/history_parsing.c | 12 +- 42sh/src/line-editing/reader.c | 110 +++++++-------- 42sh/src/line-editing/readline.c | 45 +++--- 42sh/src/main/main.c | 39 +++--- 42sh/src/main/remove_trailing_esc_nl.c | 26 ++++ 42sh/src/main/shell_get_opts.c | 3 +- 40 files changed, 517 insertions(+), 633 deletions(-) delete mode 100644 42sh/includes/line_editing.h delete mode 100644 42sh/includes/lst.h rename 42sh/src/lexer/{get_lexer_state.c => get_state_global.c} (62%) rename 42sh/src/lexer/{ft_lexer.c => get_state_redir.c} (62%) create mode 100644 42sh/src/lexer/lexer_bquote.c rename 42sh/src/lexer/{ft_tokenize.c => lexer_lex.c} (69%) rename 42sh/src/lexer/{lexer_special.c => lexer_subshell.c} (80%) create mode 100644 42sh/src/lexer/stack_to_prompt.c delete mode 100644 42sh/src/line-editing/check_backslash.c rename 42sh/src/line-editing/{prompt.c => ftprompt.c} (92%) create mode 100644 42sh/src/main/remove_trailing_esc_nl.c diff --git a/42sh/Makefile b/42sh/Makefile index 119c5015..d09f5200 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -137,11 +137,11 @@ 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\ +lexer/get_state_global.c\ +lexer/get_state_redir.c\ lexer/lexer_backslash.c\ +lexer/lexer_bquote.c\ lexer/lexer_comment.c\ lexer/lexer_default.c\ lexer/lexer_delim.c\ @@ -150,14 +150,16 @@ lexer/lexer_great.c\ lexer/lexer_greatand.c\ lexer/lexer_less.c\ lexer/lexer_lessand.c\ +lexer/lexer_lex.c\ lexer/lexer_newline.c\ lexer/lexer_number.c\ lexer/lexer_quote.c\ lexer/lexer_sep.c\ -lexer/lexer_special.c\ +lexer/lexer_subshell.c\ lexer/lexer_word.c\ lexer/reduce_bquotes.c\ lexer/reduce_parens.c\ +lexer/stack_to_prompt.c\ lexer/token_append.c\ lexer/token_cmp_type.c\ lexer/token_expand_var.c\ @@ -165,10 +167,10 @@ lexer/token_free.c\ lexer/token_init.c\ lexer/token_print.c\ line-editing/builtin_history.c\ -line-editing/check_backslash.c\ line-editing/completion.c\ line-editing/control_c_and_d.c\ line-editing/copy_cut_paste.c\ +line-editing/ftprompt.c\ line-editing/get_touch.c\ line-editing/get_touch_toolz.c\ line-editing/get_touch_toolz_2.c\ @@ -180,7 +182,6 @@ 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/reader.c\ line-editing/readline.c\ line-editing/surch_in_history.c\ @@ -198,6 +199,7 @@ main/ft_putast.c\ main/ft_putast2.c\ main/lib_expansion.c\ main/main.c\ +main/remove_trailing_esc_nl.c\ main/shell_exit.c\ main/shell_get_avdata.c\ main/shell_get_opts.c\ diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index 97297893..df03cd61 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/05 17:44:07 by gwojda ### ########.fr */ +/* Updated: 2017/02/09 17:24:55 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -52,19 +52,19 @@ # define TOUCHE_F5 892427035 # define TOUCHE_F6 925981467 -# define PROMPT_QUOTES "quote> " -# define PROMPT_DQUOTES "dquote> " -# define PROMPT_BQUOTES "bquote> " -# define PROMPT_ACCOLADE "cursh> " -# define PROMPT_BRACKET "subsh> " -# define PROMPT_BSLASH "> " +/* # define PROMPT_QUOTES "quote> " */ +/* # define PROMPT_DQUOTES "dquote> " */ +/* # define PROMPT_BQUOTES "bquote> " */ +/* # define PROMPT_ACCOLADE "cursh> " */ +/* # define PROMPT_BRACKET "subsh> " */ +/* # define PROMPT_BSLASH "> " */ -# define SIZE_PROMPT_QUOTES 7 -# define SIZE_PROMPT_DQUOTES 8 -# define SIZE_PROMPT_BQUOTES 8 -# define SIZE_PROMPT_ACCOLADE 7 -# define SIZE_PROMPT_BRACKET 7 -# define SIZE_PROMPT_BSLASH 2 +/* # define SIZE_PROMPT_QUOTES 7 */ +/* # define SIZE_PROMPT_DQUOTES 8 */ +/* # define SIZE_PROMPT_BQUOTES 8 */ +/* # define SIZE_PROMPT_ACCOLADE 7 */ +/* # define SIZE_PROMPT_BRACKET 7 */ +/* # define SIZE_PROMPT_BSLASH 2 */ # define IS_QUOTES (1 << 0) # define IS_BQUOTES (1 << 1) @@ -177,7 +177,7 @@ 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); +char *readline(char *); int ft_completion(int ret); void ft_check_heredoc(char **str); diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index ffad6bcf..b9f11bde 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/07 18:06:47 by jhalford ### ########.fr */ +/* Updated: 2017/02/10 00:33:36 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,8 +14,8 @@ # define LEXER_H # include "minishell.h" - -typedef long long t_type; +# include "libft.h" +# include "types.h" # define TK_LESS (1 << 0) # define TK_GREAT (1 << 1) @@ -56,8 +56,9 @@ enum e_lexstate LESSAND, QUOTE, DQUOTE, + BQUOTE, BACKSLASH, - SPECIAL, + SUBSHELL, COMMENT, }; @@ -70,19 +71,22 @@ struct s_token int size; }; -typedef struct s_data t_data; -typedef struct s_token t_token; -typedef enum e_lexstate t_lexstate; +struct s_lexer +{ + char *str; + int pos; + t_lexstate state; + t_list *stack; +}; -extern int (*g_lexer[])(t_list **alst, char *str); -int ft_lexer(t_list **alst, char **str); -int ft_tokenize(t_list **alst, char *str, t_lexstate state); +extern int (*g_lexer[])(t_list **alst, t_lexer *lexer); + int ft_post_tokenize(t_list **alst, char **str); t_token *token_init(); -int token_append(t_token *token, char c, short int esc, - short int dbl_esc); +int token_append(t_token *token, t_lexer *lexer, + short int esc, short int esc2); void token_free(void *data, size_t size); int token_cmp_type(t_token *token, t_type *ref); void token_print(t_list *lst); @@ -93,22 +97,26 @@ int reduce_bquotes(t_list **alst, char **str); char *command_getoutput(char *command); int ft_is_delim(char c); +char *stack_to_prompt(t_list *stack); -t_lexstate get_lexer_state(char *str); -int lexer_default(t_list **alst, char *str); -int lexer_newline(t_list **alst, char *str); -int lexer_delim(t_list **alst, char *str); -int lexer_sep(t_list **alst, char *str); -int lexer_word(t_list **alst, char *str); -int lexer_number(t_list **alst, char *str); -int lexer_less(t_list **alst, char *str); -int lexer_great(t_list **alst, char *str); -int lexer_lessand(t_list **alst, char *str); -int lexer_greatand(t_list **alst, char *str); -int lexer_quote(t_list **alst, char *str); -int lexer_dquote(t_list **alst, char *str); -int lexer_backslash(t_list **alst, char *str); -int lexer_special(t_list **alst, char *str); -int lexer_comment(t_list **alst, char *str); +t_lexstate get_state_global(t_lexer *lexer); +t_lexstate get_state_redir(t_lexer *lexer); +int lexer_lex(t_list **alst, t_lexer *lexer); +int lexer_default(t_list **alst, t_lexer *lexer); +int lexer_newline(t_list **alst, t_lexer *lexer); +int lexer_delim(t_list **alst, t_lexer *lexer); +int lexer_sep(t_list **alst, t_lexer *lexer); +int lexer_word(t_list **alst, t_lexer *lexer); +int lexer_number(t_list **alst, t_lexer *lexer); +int lexer_less(t_list **alst, t_lexer *lexer); +int lexer_great(t_list **alst, t_lexer *lexer); +int lexer_lessand(t_list **alst, t_lexer *lexer); +int lexer_greatand(t_list **alst, t_lexer *lexer); +int lexer_quote(t_list **alst, t_lexer *lexer); +int lexer_dquote(t_list **alst, t_lexer *lexer); +int lexer_bquote(t_list **alst, t_lexer *lexer); +int lexer_backslash(t_list **alst, t_lexer *lexer); +int lexer_subshell(t_list **alst, t_lexer *lexer); +int lexer_comment(t_list **alst, t_lexer *lexer); #endif diff --git a/42sh/includes/line_editing.h b/42sh/includes/line_editing.h deleted file mode 100644 index 941853ac..00000000 --- a/42sh/includes/line_editing.h +++ /dev/null @@ -1,89 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* line-editing.h :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2016/11/10 13:38:21 by jhalford #+# #+# */ -/* Updated: 2017/01/10 12:46:19 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#ifndef LINE_EDITING_H -# define LINE_EDITING_H - -# include "minishell.h" -# include -# include - -# define SHELL_PROMPT "$> " -# define BUFF_SIZE 32 -# define READ_BUF 32 -# define FT_KEY_C_C "\x3" -# define FT_KEY_C_D "\x4" -# define FT_KEY_C_H "\x8" -# define FT_KEY_TAB "\x9" -# define FT_KEY_ENTER "\xa" -# define FT_KEY_C_K "\xb" -# define FT_KEY_C_L "\xc" -# define FT_KEY_C_U "\x15" -# define FT_KEY_C_Z "\x1a" -# define FT_KEY_ESC "\x1b" -# define FT_KEY_UP "\x1b\x5b\x41" -# define FT_KEY_DOWN "\x1b\x5b\x42" -# define FT_KEY_RIGHT "\x1b\x5b\x43" -# define FT_KEY_LEFT "\x1b\x5b\x44" -# define FT_KEY_C_UP "\x1b\x4f\x41" -# define FT_KEY_C_DOWN "\x1b\x4f\x42" -# define FT_KEY_C_RIGHT "\x1b\x4f\x43" -# define FT_KEY_C_LEFT "\x1b\x4f\x44" -# define FT_KEY_SQUOTE "\x22" -# define FT_KEY_DQUOTE "\x27" -# define FT_KEY_BSLASH "\x5c" -# define FT_KEY_DEL "\x7f" - -enum e_qstate -{ - Q_NONE, - Q_QUOTE, - Q_DQUOTE, - Q_BACKSLASH, -}; - -typedef struct s_data t_data; -typedef enum e_qstate t_qstate; - -extern t_stof g_keys[]; - -int ft_interactive_sh(t_data *data); -int input_init(t_data *data); -int ft_set_termios(t_data *data, int input_mode); -int ft_prompt(void); - -int ft_history_add(t_data *data); - -int ft_clear_line(t_data *data, char *buf); -int ft_line_up(t_data *data, char *buf); -int ft_line_down(t_data *data, char *buf); -int ft_line_start(t_data *data, char *buf); -int ft_line_end(t_data *data, char *buf); - -int ft_key_del(t_data *data, char *buf); -int ft_key_enter(t_data *data, char *buf); -int ft_key_ctrl_d(t_data *data, char *buf); -int ft_key_ctrl_c(t_data *data, char *buf); -int ft_key_default(t_data *data, char *buf); - -int ft_history_up(t_data *data, char *buf); -int ft_history_down(t_data *data, char *buf); -int ft_cursor_left(t_data *data, char *buf); -int ft_cursor_right(t_data *data, char *buf); -int ft_word_left(t_data *data, char *buf); -int ft_word_right(t_data *data, char *buf); - -void qstate_none(t_qstate *new, char c); -void qstate_quote(t_qstate *new, char c); -void qstate_dquote(t_qstate *new, char c); - -#endif diff --git a/42sh/includes/lst.h b/42sh/includes/lst.h deleted file mode 100644 index ee4926df..00000000 --- a/42sh/includes/lst.h +++ /dev/null @@ -1,80 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* 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 fbaaac4c..d1e3fa06 100644 --- a/42sh/includes/minishell.h +++ b/42sh/includes/minishell.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:07:44 by jhalford #+# #+# */ -/* Updated: 2017/02/03 12:16:52 by alao ### ########.fr */ +/* Updated: 2017/02/10 00:26:10 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,7 +15,6 @@ # define SHELL_NAME "minishell" # include "libft.h" - # include "types.h" # include "lexer.h" # include "parser.h" @@ -66,11 +65,11 @@ void shell_exit(void); int data_init(void); void data_exit(void); -int shell_single_command(char *command); - void ft_expand_dollar(char **av, char **env); char *ft_findexec(char *path, char *file); +int remove_trailing_esc_nl(char *str); + char *ft_putast(void *node); void ft_putast2(void *node); diff --git a/42sh/includes/types.h b/42sh/includes/types.h index 07cec9b7..d2d802aa 100644 --- a/42sh/includes/types.h +++ b/42sh/includes/types.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 17:11:48 by jhalford #+# #+# */ -/* Updated: 2017/02/03 15:03:52 by jhalford ### ########.fr */ +/* Updated: 2017/02/09 19:52:04 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,6 +23,10 @@ typedef struct s_exec t_exec; typedef struct s_jobc t_jobc; typedef enum e_mode t_mode; +typedef struct s_lexer t_lexer; +typedef enum e_lexstate t_lexstate; +typedef struct s_token t_token; + typedef struct s_parser t_parser; typedef struct s_ld t_ld; typedef struct s_astnode t_astnode; diff --git a/42sh/libft b/42sh/libft index b53fcb9d..acd7e54f 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit b53fcb9db8b4baf53c73b17726f1740c4af12be0 +Subproject commit acd7e54fb8045b3958dd239d469f1476404468b7 diff --git a/42sh/src/lexer/get_lexer_state.c b/42sh/src/lexer/get_state_global.c similarity index 62% rename from 42sh/src/lexer/get_lexer_state.c rename to 42sh/src/lexer/get_state_global.c index 9a738e65..3f59ab73 100644 --- a/42sh/src/lexer/get_lexer_state.c +++ b/42sh/src/lexer/get_state_global.c @@ -1,32 +1,37 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* get_lexer_state.c :+: :+: :+: */ +/* get_state_global.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/10 13:45:46 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:34:14 by wescande ### ########.fr */ +/* Created: 2017/02/09 20:39:06 by jhalford #+# #+# */ +/* Updated: 2017/02/09 22:12:45 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -t_lexstate get_lexer_state(char *str) +t_lexstate get_state_global(t_lexer *lexer) { - if (ft_is_delim(*str)) + char c; + + c = lexer->str[lexer->pos]; + if (ft_is_delim(c)) return (DELIM); - else if (*str == '#') + else if (c == '#') return (COMMENT); - else if (*str == '&' || *str == ';' || *str == '|') + else if (c == '&' || c == ';' || c == '|') return (SEP); - else if (*str == '\\') + else if (c == '\\') return (BACKSLASH); - else if (*str == '\'') + else if (c == '\'') return (QUOTE); - else if (*str == '\"') + else if (c == '\"') return (DQUOTE); - else if (*str == '(' || *str == ')' || *str == '`') - return (SPECIAL); + else if (c == '`') + return (BQUOTE); + else if (c == '(' || c == ')') + return (SUBSHELL); return (0); } diff --git a/42sh/src/lexer/ft_lexer.c b/42sh/src/lexer/get_state_redir.c similarity index 62% rename from 42sh/src/lexer/ft_lexer.c rename to 42sh/src/lexer/get_state_redir.c index 71b033f1..7b6acd31 100644 --- a/42sh/src/lexer/ft_lexer.c +++ b/42sh/src/lexer/get_state_redir.c @@ -1,28 +1,25 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_lexer.c :+: :+: :+: */ +/* get_state_redir.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2017/02/02 15:30:59 by jhalford #+# #+# */ -/* Updated: 2017/02/06 21:49:55 by jhalford ### ########.fr */ +/* Created: 2017/02/09 20:37:28 by jhalford #+# #+# */ +/* Updated: 2017/02/09 20:39:11 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int ft_lexer(t_list **alst, char **command) +t_lexstate get_state_redir(t_lexer *lexer) { - int ret; + char c; - if (!*command) - return (1); - ret = 0; - if (ft_tokenize(alst, *command, DEFAULT)) - ret = 1; - else if (ft_post_tokenize(alst, command)) - ret = 1; - ft_strdel(command); - return (ret); + c = lexer->str[lexer->pos]; + if (c == '>') + return (GREAT); + else if (c == '<') + return (LESS); + return (0); } diff --git a/42sh/src/lexer/lexer_backslash.c b/42sh/src/lexer/lexer_backslash.c index eb339d0a..a2f02f7c 100644 --- a/42sh/src/lexer/lexer_backslash.c +++ b/42sh/src/lexer/lexer_backslash.c @@ -6,18 +6,21 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 11:56:49 by jhalford #+# #+# */ -/* Updated: 2017/02/07 11:39:15 by wescande ### ########.fr */ +/* Updated: 2017/02/09 19:53:50 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_backslash(t_list **alst, char *str) +int lexer_backslash(t_list **alst, t_lexer *lexer) { t_token *token; token = (*alst)->content; token->type = TK_WORD; - token_append(token, str[1], 1, 1); - return (ft_tokenize(alst, str + 2, WORD)); + lexer->pos++; + token_append(token, lexer, 1, 1); + lexer->pos++; + lexer->state = WORD; + return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_bquote.c b/42sh/src/lexer/lexer_bquote.c new file mode 100644 index 00000000..a9e32dda --- /dev/null +++ b/42sh/src/lexer/lexer_bquote.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* lexer_bquote.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/09 22:03:48 by jhalford #+# #+# */ +/* Updated: 2017/02/09 22:07:04 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "lexer.h" + +int lexer_bquote(t_list **alst, t_lexer *lexer) +{ + t_token *token; + + token = (*alst)->content; + token->type = TK_Q_WORD; + lexer->pos++; + push(&lexer->stack, BQUOTE); + if (lexer->str[lexer->pos] == '`') + { + lexer->state = WORD; + lexer->pos++; + pop(&lexer->stack); + return (lexer_lex(alst, lexer)); + } + else if (lexer->str[lexer->pos] == 0) + return (0); + token_append(token, lexer, 0, 0); + return (lexer_quote(alst, lexer)); +} + diff --git a/42sh/src/lexer/lexer_comment.c b/42sh/src/lexer/lexer_comment.c index f744ca44..71f053cd 100644 --- a/42sh/src/lexer/lexer_comment.c +++ b/42sh/src/lexer/lexer_comment.c @@ -6,18 +6,18 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/07 12:15:59 by jhalford #+# #+# */ -/* Updated: 2017/02/07 12:56:53 by jhalford ### ########.fr */ +/* Updated: 2017/02/09 19:54:11 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_comment(t_list **alst, char *str) +int lexer_comment(t_list **alst, t_lexer *lexer) { t_token *token; token = (*alst)->content; - if (*str == '\n') - return (ft_tokenize(&(*alst)->next, str, NEWLINE)); - return (lexer_comment(alst, str + 1)); + if (lexer->str[lexer->pos] == '\n') + return (lexer_lex(&(*alst)->next, lexer)); + return (lexer_comment(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_default.c b/42sh/src/lexer/lexer_default.c index 0359269c..ed43b9d6 100644 --- a/42sh/src/lexer/lexer_default.c +++ b/42sh/src/lexer/lexer_default.c @@ -6,29 +6,35 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 18:36:21 by jhalford #+# #+# */ -/* Updated: 2017/02/07 11:39:07 by wescande ### ########.fr */ +/* Updated: 2017/02/09 20:40:28 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_default(t_list **alst, char *str) +int lexer_default(t_list **alst, t_lexer *lexer) { t_lexstate state; t_token *token; + char c; - if ((state = get_lexer_state(str))) - return (ft_tokenize(alst, str, state)); - if (*str == '>') - return (ft_tokenize(alst, str, GREAT)); - else if (*str == '<') - return (ft_tokenize(alst, str, LESS)); - else if (ft_isdigit(*str)) - state = NUMBER; + c = lexer->str[lexer->pos]; + if ((state = get_state_global(lexer))) + { + lexer->state = state; + return (lexer_lex(alst, lexer)); + } + if ((state = get_state_redir(lexer))) + { + lexer->state = state; + return (lexer_lex(alst, lexer)); + } + else if (ft_isdigit(c)) + lexer->state = NUMBER; else - state = WORD; + lexer->state = WORD; token = (*alst)->content; - token_append(token, *str, 0, 0); + token_append(token, lexer, 0, 0); token->type = TK_N_WORD; - return (ft_tokenize(alst, str + 1, state)); + return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_delim.c b/42sh/src/lexer/lexer_delim.c index 8e27dd19..6fa29b29 100644 --- a/42sh/src/lexer/lexer_delim.c +++ b/42sh/src/lexer/lexer_delim.c @@ -6,25 +6,25 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 11:58:44 by jhalford #+# #+# */ -/* Updated: 2017/02/07 12:48:11 by jhalford ### ########.fr */ +/* Updated: 2017/02/09 20:02:45 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_delim(t_list **alst, char *str) +int lexer_delim(t_list **alst, t_lexer *lexer) { t_token *token; token = (*alst)->content; - while (ft_is_delim(*str)) - str++; + while (ft_is_delim(lexer->str[lexer->pos])) + lexer->pos++; if (token->type) - return (ft_tokenize(&(*alst)->next, str, DEFAULT)); + return (lexer_lex(&(*alst)->next, lexer)); else { - if (!*str) + if (!lexer->str[lexer->pos]) ft_lst_delif(alst, (*alst)->content, &ft_addrcmp, &token_free); - return (ft_tokenize(alst, str, DEFAULT)); + return (lexer_lex(alst, lexer)); } } diff --git a/42sh/src/lexer/lexer_dquote.c b/42sh/src/lexer/lexer_dquote.c index 9d52263b..7077fd7b 100644 --- a/42sh/src/lexer/lexer_dquote.c +++ b/42sh/src/lexer/lexer_dquote.c @@ -6,28 +6,45 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 18:36:58 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:35:38 by wescande ### ########.fr */ +/* Updated: 2017/02/10 00:33:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_dquote(t_list **alst, char *str) +int lexer_dquote(t_list **alst, t_lexer *lexer) { t_token *token; token = (*alst)->content; token->type = TK_DQ_WORD; - str++; - if (*str == '"') - return (ft_tokenize(alst, str + 1, DEFAULT)); - if (*str == '\\') + if (*(int*)lexer->stack->content != DQUOTE) + push(&lexer->stack, DQUOTE); + lexer->pos++; + if (lexer->str[lexer->pos] == '"') { - if (str[1] != '"') - token_append(token, str[0], 1, 0); - token_append(token, str[1], 1, 1); - return (lexer_dquote(alst, str + 1)); + lexer->pos++; + lexer->state = WORD; + pop(&lexer->stack); + return (lexer_lex(alst, lexer)); } - token_append(token, *str, 1, 0); - return (lexer_dquote(alst, str)); + else if (lexer->str[lexer->pos] == '\\') + { + if (lexer->str[lexer->pos + 1] == '"') + token_append(token, lexer, 1, 0); + else if (lexer->str[lexer->pos + 1] == 0) + { + push(&lexer->stack, BACKSLASH); + return (0); + } + lexer->pos++; + token_append(token, lexer, 1, 1); + return (lexer_dquote(alst,lexer)); + } + else if (lexer->str[lexer->pos] == '`') + lexer_bquote(alst, lexer); + else if (lexer->str[lexer->pos] == 0) + return (0); + token_append(token, lexer, 1, 0); + return (lexer_dquote(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_great.c b/42sh/src/lexer/lexer_great.c index a0f069c8..5731cdae 100644 --- a/42sh/src/lexer/lexer_great.c +++ b/42sh/src/lexer/lexer_great.c @@ -6,33 +6,39 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:06:35 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:36:19 by wescande ### ########.fr */ +/* Updated: 2017/02/09 19:57:29 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_great(t_list **alst, char *str) +int lexer_great(t_list **alst, t_lexer *lexer) { t_token *token; token = (*alst)->content; - token_append(token, str[0], 0, 0); - if (*(str + 1) == '&') + token_append(token, lexer, 0, 0); + if (lexer->str[lexer->pos + 1] == '&') { token->type = TK_GREATAND; - token_append(token, str[1], 0, 0); - return (lexer_greatand(alst, str + 2)); + lexer->pos++; + token_append(token, lexer, 0, 0); + lexer->pos++; + return (lexer_greatand(alst, lexer)); } - else if (*(str + 1) == '>') + if (lexer->str[lexer->pos + 1] == '>') { token->type = TK_DGREAT; - token_append(token, str[1], 0, 0); - return (ft_tokenize(&(*alst)->next, str + 2, DEFAULT)); + lexer->pos++; + token_append(token, lexer, 0, 0); + lexer->pos++; + lexer->state = DEFAULT; + return (lexer_lex(&(*alst)->next, lexer)); } else { token->type = TK_GREAT; - return (ft_tokenize(&(*alst)->next, str + 1, DEFAULT)); + lexer->state = DEFAULT; + return (lexer_lex(&(*alst)->next, lexer)); } } diff --git a/42sh/src/lexer/lexer_greatand.c b/42sh/src/lexer/lexer_greatand.c index d9f9787f..d2da04ed 100644 --- a/42sh/src/lexer/lexer_greatand.c +++ b/42sh/src/lexer/lexer_greatand.c @@ -6,27 +6,31 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 11:56:58 by jhalford #+# #+# */ -/* Updated: 2017/02/07 11:37:08 by wescande ### ########.fr */ +/* Updated: 2017/02/09 19:56:40 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_greatand(t_list **alst, char *str) +int lexer_greatand(t_list **alst, t_lexer *lexer) { t_token *token; token = (*alst)->content; token->type = TK_GREATAND; - if (ft_isdigit(*str)) + if (ft_isdigit(lexer->str[lexer->pos])) { - token_append(token, *str, 0, 0); - return (lexer_greatand(alst, str + 1)); + token_append(token, lexer, 0, 0); + lexer->str++; + return (lexer_greatand(alst, lexer)); } - else if (*str == '-') + else if (lexer->str[lexer->pos] == '-') { - token_append(token, *str, 0, 0); - return (ft_tokenize(&(*alst)->next, str + 1, DEFAULT)); + token_append(token, lexer, 0, 0); + lexer->str++; + lexer->state = DEFAULT; + return (lexer_lex(&(*alst)->next, lexer)); } - return (ft_tokenize(alst, str, DEFAULT)); + lexer->state = DEFAULT; + return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_less.c b/42sh/src/lexer/lexer_less.c index 7f067ab0..00798f44 100644 --- a/42sh/src/lexer/lexer_less.c +++ b/42sh/src/lexer/lexer_less.c @@ -6,33 +6,39 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:06:53 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:36:42 by wescande ### ########.fr */ +/* Updated: 2017/02/09 20:37:37 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_less(t_list **alst, char *str) +int lexer_less(t_list **alst, t_lexer *lexer) { t_token *token; token = (*alst)->content; - token_append(token, str[0], 0, 0); - if (*(str + 1) == '&') + token_append(token, lexer, 0, 0); + if (lexer->str[lexer->pos + 1] == '&') { token->type = TK_LESSAND; - token_append(token, str[1], 0, 0); - return (lexer_lessand(alst, str + 2)); + lexer->pos++; + token_append(token, lexer, 0, 0); + lexer->pos++; + return (lexer_lessand(alst, lexer)); } - else if (*(str + 1) == '<') + if (lexer->str[lexer->pos + 1] == '<') { token->type = TK_DLESS; - token_append(token, str[1], 0, 0); - return (ft_tokenize(&(*alst)->next, str + 2, DEFAULT)); + lexer->pos++; + token_append(token, lexer, 0, 0); + lexer->pos++; + lexer->state = DEFAULT; + return (lexer_lex(&(*alst)->next, lexer)); } else { token->type = TK_LESS; - return (ft_tokenize(&(*alst)->next, str + 1, DEFAULT)); + lexer->state = DEFAULT; + return (lexer_lex(&(*alst)->next, lexer)); } } diff --git a/42sh/src/lexer/lexer_lessand.c b/42sh/src/lexer/lexer_lessand.c index 04c7fe8e..cf1547cc 100644 --- a/42sh/src/lexer/lexer_lessand.c +++ b/42sh/src/lexer/lexer_lessand.c @@ -6,27 +6,31 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 11:58:51 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:37:07 by wescande ### ########.fr */ +/* Updated: 2017/02/09 19:56:29 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_lessand(t_list **alst, char *str) +int lexer_lessand(t_list **alst, t_lexer *lexer) { t_token *token; token = (*alst)->content; token->type = TK_LESSAND; - if (ft_isdigit(*str)) + if (ft_isdigit(lexer->str[lexer->pos])) { - token_append(token, *str, 0, 0); - return (lexer_lessand(alst, str + 1)); + token_append(token, lexer, 0, 0); + lexer->str++; + return (lexer_lessand(alst, lexer)); } - else if (*str == '-') + else if (lexer->str[lexer->pos] == '-') { - token_append(token, *str, 0, 0); - return (ft_tokenize(&(*alst)->next, str + 1, DEFAULT)); + token_append(token, lexer, 0, 0); + lexer->str++; + lexer->state = DEFAULT; + return (lexer_lex(&(*alst)->next, lexer)); } - return (ft_tokenize(alst, str, DEFAULT)); + lexer->state = DEFAULT; + return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/ft_tokenize.c b/42sh/src/lexer/lexer_lex.c similarity index 69% rename from 42sh/src/lexer/ft_tokenize.c rename to 42sh/src/lexer/lexer_lex.c index fccf7a7a..a406fbc8 100644 --- a/42sh/src/lexer/ft_tokenize.c +++ b/42sh/src/lexer/lexer_lex.c @@ -1,18 +1,18 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_tokenize.c :+: :+: :+: */ +/* lexer_lex.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2016/11/10 13:37:11 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:33:34 by wescande ### ########.fr */ +/* Created: 2017/02/09 17:08:51 by jhalford #+# #+# */ +/* Updated: 2017/02/09 22:58:48 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int (*g_lexer[])(t_list **alst, char *str) = +int (*g_lexer[])(t_list **alst, t_lexer *lexer) = { &lexer_default, &lexer_newline, @@ -26,8 +26,9 @@ int (*g_lexer[])(t_list **alst, char *str) = &lexer_lessand, &lexer_quote, &lexer_dquote, + &lexer_bquote, &lexer_backslash, - &lexer_special, + &lexer_subshell, &lexer_comment, }; @@ -36,16 +37,16 @@ int ft_is_delim(char c) return (c == ' ' || c == '\t' || c == '\n'); } -int ft_tokenize(t_list **alst, char *str, t_lexstate state) +int lexer_lex(t_list **alst, t_lexer *lexer) { t_token *token; - if (!*str) + if (!lexer->str[lexer->pos]) return (0); if (!*alst) { token = token_init(); *alst = ft_lstnew(token, sizeof(*token)); } - return ((*g_lexer[state])(alst, str)); + return ((*g_lexer[lexer->state])(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_newline.c b/42sh/src/lexer/lexer_newline.c index c563d2eb..396dc6d3 100644 --- a/42sh/src/lexer/lexer_newline.c +++ b/42sh/src/lexer/lexer_newline.c @@ -6,13 +6,13 @@ /* By: ariard +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/23 23:19:46 by ariard #+# #+# */ -/* Updated: 2017/02/07 12:54:48 by jhalford ### ########.fr */ +/* Updated: 2017/02/09 19:55:04 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_newline(t_list **alst, char *str) +int lexer_newline(t_list **alst, t_lexer *lexer) { t_token *token; @@ -20,7 +20,7 @@ int lexer_newline(t_list **alst, char *str) { token = (*alst)->content; if (*token->data) - return (lexer_newline(&(*alst)->next, str)); + return (lexer_newline(&(*alst)->next, lexer)); } else { @@ -29,5 +29,5 @@ int lexer_newline(t_list **alst, char *str) } token = (*alst)->content; token->type = TK_NEWLINE; - return (ft_tokenize(&(*alst)->next, str + 1, DEFAULT)); + return (lexer_lex(&(*alst)->next, lexer)); } diff --git a/42sh/src/lexer/lexer_number.c b/42sh/src/lexer/lexer_number.c index 5cb3fa24..b7519817 100644 --- a/42sh/src/lexer/lexer_number.c +++ b/42sh/src/lexer/lexer_number.c @@ -6,28 +6,31 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:06:45 by jhalford #+# #+# */ -/* Updated: 2017/02/07 11:39:29 by wescande ### ########.fr */ +/* Updated: 2017/02/09 20:41:05 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_number(t_list **alst, char *str) +int lexer_number(t_list **alst, t_lexer *lexer) { t_token *token; t_lexstate state; token = (*alst)->content; - if ((state = get_lexer_state(str))) - return (ft_tokenize(alst, str, state)); - if (*str == '>') - return (ft_tokenize(alst, str, GREAT)); - else if (*str == '<') - return (ft_tokenize(alst, str, LESS)); - else if (ft_isdigit(*str)) + if ((state = get_state_global(lexer))) + return (lexer_lex(alst, lexer)); + else if ((state = get_state_redir(lexer))) { - token_append(token, *str, 0, 0); - return (lexer_number(alst, str + 1)); + lexer->state = state; + return (lexer_lex(alst, lexer)); } - return (ft_tokenize(alst, str, DEFAULT)); + else if (ft_isdigit(lexer->str[lexer->pos])) + { + token_append(token, lexer, 0, 0); + lexer->pos++; + return (lexer_number(alst, lexer)); + } + lexer->state = DEFAULT; + return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_quote.c b/42sh/src/lexer/lexer_quote.c index 647ac038..b0764b7d 100644 --- a/42sh/src/lexer/lexer_quote.c +++ b/42sh/src/lexer/lexer_quote.c @@ -6,21 +6,29 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:07:08 by jhalford #+# #+# */ -/* Updated: 2017/02/07 11:39:24 by wescande ### ########.fr */ +/* Updated: 2017/02/09 22:13:27 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_quote(t_list **alst, char *str) +int lexer_quote(t_list **alst, t_lexer *lexer) { t_token *token; token = (*alst)->content; token->type = TK_Q_WORD; - str++; - if (*str == '\'') - return (ft_tokenize(alst, str + 1, WORD)); - token_append(token, *str, 1, 1); - return (lexer_quote(alst, str)); + lexer->pos++; + push(&lexer->stack, QUOTE); + if (lexer->str[lexer->pos] == '\'') + { + lexer->state = WORD; + lexer->pos++; + pop(&lexer->stack); + return (lexer_lex(alst, lexer)); + } + else if (lexer->str[lexer->pos] == 0) + return (0); + token_append(token, lexer, 1, 1); + return (lexer_quote(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_sep.c b/42sh/src/lexer/lexer_sep.c index c9b20e78..581f2395 100644 --- a/42sh/src/lexer/lexer_sep.c +++ b/42sh/src/lexer/lexer_sep.c @@ -6,21 +6,23 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/30 16:29:57 by jhalford #+# #+# */ -/* Updated: 2017/02/07 12:53:46 by jhalford ### ########.fr */ +/* Updated: 2017/02/09 20:43:25 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_sep(t_list **alst, char *str) +int lexer_sep(t_list **alst, t_lexer *lexer) { - t_token *token; + t_token *token; + char c; + char cn; if (*alst) { token = (*alst)->content; if (*token->data) - return (lexer_sep(&(*alst)->next, str)); + return (lexer_sep(&(*alst)->next, lexer)); } else { @@ -28,13 +30,13 @@ int lexer_sep(t_list **alst, char *str) *alst = ft_lstnew(token, sizeof(*token)); } token = (*alst)->content; - if (str[0] == '&') - token->type = str[1] == '&' ? TK_AND_IF : TK_AMP; - if (str[0] == '|') - token->type = str[1] == '|' ? TK_OR_IF : TK_PIPE; - token->type = (*str == ';') ? TK_SEMI : token->type; - return (ft_tokenize(&(*alst)->next, - str + 1 + - (token->type & (TK_AND_IF | TK_OR_IF) ? 1 : 0), - DEFAULT)); + c = lexer->str[lexer->pos]; + cn = lexer->str[lexer->pos + 1]; + if (c == '&') + token->type = cn == '&' ? TK_AND_IF : TK_AMP; + else if (c == '|') + token->type = cn == '|' ? TK_OR_IF : TK_PIPE; + token->type = (c == ';') ? TK_SEMI : token->type; + lexer->pos += 1 + (token->type & (TK_AND_IF | TK_OR_IF) ? 1 : 0); + return (lexer_lex(&(*alst)->next, lexer)); } diff --git a/42sh/src/lexer/lexer_special.c b/42sh/src/lexer/lexer_subshell.c similarity index 80% rename from 42sh/src/lexer/lexer_special.c rename to 42sh/src/lexer/lexer_subshell.c index 7d3d7800..278849bb 100644 --- a/42sh/src/lexer/lexer_special.c +++ b/42sh/src/lexer/lexer_subshell.c @@ -6,13 +6,13 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 15:35:38 by jhalford #+# #+# */ -/* Updated: 2017/01/11 17:36:10 by jhalford ### ########.fr */ +/* Updated: 2017/02/09 22:09:07 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_special(t_list **alst, char *str) +int lexer_subshell(t_list **alst, t_lexer *lexer) { t_token *token; t_list **lst; @@ -27,12 +27,11 @@ int lexer_special(t_list **alst, char *str) token = token_init(); *lst = ft_lstnew(token, sizeof(*token)); token = (*lst)->content; - if (*str == '(') + if (lexer->str[lexer->pos] == '(') token->type = TK_PAREN_OPEN; - else if (*str == ')') + else if (lexer->str[lexer->pos] == ')') token->type = TK_PAREN_CLOSE; - else if (*str == '`') - token->type = TK_BQUOTE; - token->data = str; - return (ft_tokenize(&(*lst)->next, str + 1, DEFAULT)); + token->data = lexer->str; + lexer->pos++; + return (lexer_lex(&(*lst)->next, lexer)); } diff --git a/42sh/src/lexer/lexer_word.c b/42sh/src/lexer/lexer_word.c index c952c6f5..b5fa0ae9 100644 --- a/42sh/src/lexer/lexer_word.c +++ b/42sh/src/lexer/lexer_word.c @@ -6,25 +6,27 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:07:11 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:37:44 by wescande ### ########.fr */ +/* Updated: 2017/02/09 20:43:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int lexer_word(t_list **alst, char *str) +int lexer_word(t_list **alst, t_lexer *lexer) { t_token *token; t_lexstate state; token = (*alst)->content; token->type = TK_N_WORD; - if ((state = get_lexer_state(str))) - return (ft_tokenize(alst, str, state)); - if (*str == '>') - return (ft_tokenize(&(*alst)->next, str, GREAT)); - else if (*str == '<') - return (ft_tokenize(&(*alst)->next, str, LESS)); - token_append(token, *str, 0, 0); - return (ft_tokenize(alst, str + 1, WORD)); + if ((state = get_state_global(lexer))) + return (lexer_lex(alst, lexer)); + if ((state = get_state_redir(lexer))) + { + lexer->state = state; + return (lexer_lex(alst, lexer)); + } + token_append(token, lexer, 0, 0); + lexer->pos++; + return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/reduce_bquotes.c b/42sh/src/lexer/reduce_bquotes.c index 4e293684..f7c416de 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/03 15:40:36 by jhalford ### ########.fr */ +/* Updated: 2017/02/09 20:45:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,6 +22,7 @@ int reduce_bquotes(t_list **alst, char **str) char *fit; char *bq_start; char *bq_end; + t_lexer lexer; tk = TK_BQUOTE; if ((start = ft_lst_find(*alst, &tk, token_cmp_type))) @@ -44,7 +45,11 @@ int reduce_bquotes(t_list **alst, char **str) ft_strdel(str); *str = new; ft_lstdel(alst, token_free); - ft_tokenize(alst, new, DEFAULT); + + lexer.pos = 0; + lexer.str = *str; + lexer.state = DEFAULT; + lexer_lex(alst, &lexer); return (1); } return (0); diff --git a/42sh/src/lexer/stack_to_prompt.c b/42sh/src/lexer/stack_to_prompt.c new file mode 100644 index 00000000..0343dcb2 --- /dev/null +++ b/42sh/src/lexer/stack_to_prompt.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* stack_to_prompt.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/09 21:25:26 by jhalford #+# #+# */ +/* Updated: 2017/02/09 22:49:51 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "lexer.h" + +char *stack_to_prompt(t_list *stack) +{ + t_flag top; + + if (!stack) + return (NULL); + top = *(int*)stack->content; + if (top == BACKSLASH) + return ("> "); + else if (top == QUOTE) + return ("quote >"); + else if (top == DQUOTE) + return ("dquote >"); + else if (top == BQUOTE) + return ("bquote >"); + else if (top == SUBSHELL) + return ("subsh >"); + else + return (" > "); +} diff --git a/42sh/src/lexer/token_append.c b/42sh/src/lexer/token_append.c index d7205017..b2b00fb3 100644 --- a/42sh/src/lexer/token_append.c +++ b/42sh/src/lexer/token_append.c @@ -6,16 +6,18 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/11 17:18:42 by jhalford #+# #+# */ -/* Updated: 2017/02/08 13:55:31 by wescande ### ########.fr */ +/* Updated: 2017/02/09 19:37:27 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int token_append(t_token *token, char c, short int esc, short int esc2) +int token_append(t_token *token, t_lexer *lexer, short int esc, short int esc2) { int len; + char c; + c = lexer->str[lexer->pos]; len = ft_strlen(token->data); if (len >= token->size) { diff --git a/42sh/src/line-editing/check_backslash.c b/42sh/src/line-editing/check_backslash.c deleted file mode 100644 index 4d8412b9..00000000 --- a/42sh/src/line-editing/check_backslash.c +++ /dev/null @@ -1,128 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* check_backslash.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: gwojda +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/26 13:32:52 by gwojda #+# #+# */ -/* Updated: 2017/02/05 17:43:44 by gwojda ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "minishell.h" - -t_prompt_type g_prompt_tab[] = -{ - {IS_QUOTES , SIZE_PROMPT_QUOTES , PROMPT_QUOTES }, - {IS_BQUOTES , SIZE_PROMPT_BQUOTES , PROMPT_BQUOTES }, - {IS_DQUOTES , SIZE_PROMPT_DQUOTES , PROMPT_DQUOTES }, - {IS_ACCOLADE , SIZE_PROMPT_ACCOLADE , PROMPT_ACCOLADE }, - {IS_BRACKET , SIZE_PROMPT_BRACKET , PROMPT_BRACKET }, - {IS_BSLASH , SIZE_PROMPT_BSLASH , PROMPT_BSLASH }, - {0 , 0 , 0 }, -}; - -t_brackets g_brackets = {0 , {0}}; - -void ft_read_more(short c) -{ - char *str_tmp; - char *str_tmp2; - int i; - - i = 0; - str_tmp2 = data_singleton()->line.input; - str_tmp = ft_strjoin(str_tmp2, "\n"); - free(str_tmp2); - STR = NULL; - POS = 0; - while (g_prompt_tab[i].key && !(g_prompt_tab[i].key & c)) - ++i; - data_singleton()->line.prompt_size = g_prompt_tab[i].value; - ft_printf("\n%s", g_prompt_tab[i].new_prompt); - str_tmp2 = ft_read_stdin(); - str_tmp2 = ft_strjoin(str_tmp, STR); - free(str_tmp); - free(STR); - STR = str_tmp2; - ft_check_line(); -} - -static void ft_check_this_char_quotes(char c, short *status) -{ - int i; - char *stats; - - i = 0; - stats = "\'`\"\\"; - while (stats[i] && stats[i] != c) - ++i; - if (!stats[i]) - return ; - if ((1 << i) & ~(*status)) - { - if (((1 << i) > *status && (*status == 0 && !(IS_QUOTES & *status) - && (!(IS_DQUOTES & *status)))) - || (((1 << i) == IS_BQUOTES) && !(IS_QUOTES & *status))) - (*status) = (*status) | (1 << i); - } - else - (*status) = (*status) ^ (1 << i); -} - -static int ft_brackets(char c) -{ - if (c == '(') - { - g_brackets.tabl[g_brackets.pos] = '('; - ++g_brackets.pos; - } - else if (c == '{') - { - g_brackets.tabl[g_brackets.pos] = '{'; - ++g_brackets.pos; - } - else if (c == '}') - { - if (!g_brackets.pos || g_brackets.tabl[g_brackets.pos - 1] != '{') - return (1); - g_brackets.tabl[--g_brackets.pos] = '\0'; - } - else if (c == ')') - { - if (!g_brackets.pos || g_brackets.tabl[g_brackets.pos - 1] != '(') - return (1); - g_brackets.tabl[--g_brackets.pos] = '\0'; - } - return (0); -} - -void ft_check_line(void) -{ - int i; - short status; - - i = -1; - status = 0; - ft_reset_tab((char *)g_brackets.tabl); - g_brackets.pos = 0; - if (!STR) - return ; - while (STR[++i]) - { - if (IS_BSLASH & status) - status = status ^ IS_BSLASH; - else - { - ft_check_this_char_quotes(STR[i], &status); - if (!status && ft_brackets(STR[i])) - return ; - } - } - if (g_brackets.pos && g_brackets.tabl[0] == '(') - status = status | IS_BRACKET; - else if (g_brackets.pos && g_brackets.tabl[0] == '{') - status = status | IS_ACCOLADE; - (status) ? ft_read_more(status) : 0; -} diff --git a/42sh/src/line-editing/prompt.c b/42sh/src/line-editing/ftprompt.c similarity index 92% rename from 42sh/src/line-editing/prompt.c rename to 42sh/src/line-editing/ftprompt.c index ea94ec3b..85f2427d 100644 --- a/42sh/src/line-editing/prompt.c +++ b/42sh/src/line-editing/ftprompt.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* prompt.c :+: :+: :+: */ +/* ft_prompt.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:51:33 by gwojda #+# #+# */ -/* Updated: 2017/02/05 17:42:23 by gwojda ### ########.fr */ +/* Updated: 2017/02/09 16:49:35 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -51,7 +51,7 @@ static int ft_currend_dir(void) return (ft_strlen(env[i] + j + 1)); } -void ft_prompt(void) +void ft_prompt() { int ret; diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index bea7ad8a..71c31e85 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/05 16:57:57 by gwojda ### ########.fr */ +/* Updated: 2017/02/09 17:25:01 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -71,7 +71,7 @@ char *ft_read_stdin(void) ft_print(ret); else if (ret == 10) return (STR); - else if (ft_isascii(ret) == 0) - ft_read_it(ret, &POS, &STR); + /* else if (ft_isascii(ret) == 0) */ + /* ft_read_it(ret, &POS, &STR); */ } } diff --git a/42sh/src/line-editing/history.c b/42sh/src/line-editing/history.c index b2e40292..cab1a3ac 100644 --- a/42sh/src/line-editing/history.c +++ b/42sh/src/line-editing/history.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 15:22:19 by gwojda #+# #+# */ -/* Updated: 2017/02/05 17:00:18 by gwojda ### ########.fr */ +/* Updated: 2017/02/09 16:24:02 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/history_parsing.c b/42sh/src/line-editing/history_parsing.c index 15288f3c..b7187bc9 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/02/05 16:58:43 by gwojda ### ########.fr */ +/* Updated: 2017/02/09 16:25:31 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,7 @@ static int ft_history_parsing_4(char *str, int *i) { tmp = ft_nbr_len(ft_atoi(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); + ft_atoi(str + (*i) + 1), ft_nbr_len(ft_atoi(str + *i + 1)) + 1); (*i) += tmp; return (1); } @@ -43,16 +43,16 @@ static int ft_history_parsing_3(char *str, int *i) { tmp = ft_nbr_len(ft_atoi(str + *i + 2)); 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); + data_singleton()->line.list_size - ft_atoi(str + *i + 2), + ft_nbr_len(ft_atoi(str + *i + 2)) + 2); i += tmp; } else if (str[*i + 1] == '?') ft_realloc_str_history_3(&(data_singleton()->line.input), *i, - ft_strdupi_w(str + *i + 2)); + 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)); + ft_strdupi_w(str + *i + 1)); else return (0); return (1); diff --git a/42sh/src/line-editing/reader.c b/42sh/src/line-editing/reader.c index 684afd69..3068e52d 100644 --- a/42sh/src/line-editing/reader.c +++ b/42sh/src/line-editing/reader.c @@ -6,66 +6,66 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:52:57 by gwojda #+# #+# */ -/* Updated: 2017/02/04 15:37:55 by gwojda ### ########.fr */ +/* Updated: 2017/02/09 16:59:46 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ -#include "minishell.h" +/* #include "minishell.h" */ -static void ft_read_it_3(char **str, char t[5], size_t *pos, int *j) -{ - int i; +/* 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; - } -} +/* 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'; - 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'; -} +/* 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 j; - char t[5]; - size_t pos_tmp; +/* void ft_read_it(int input, size_t *pos, char **str) */ +/* { */ +/* int j; */ +/* char t[5]; */ +/* size_t pos_tmp; */ - j = 0; - pos_tmp = *pos; - 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); - ft_read_it_3(str, t, pos, &j); - *pos = pos_tmp; - ft_current_str((*str), *pos); - ft_get_next_str((*str), pos); - ft_putnc('\b', *pos - (pos_tmp + j)); - *pos = (pos_tmp + j); -} +/* j = 0; */ +/* pos_tmp = *pos; */ +/* 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); */ +/* ft_read_it_3(str, t, pos, &j); */ +/* *pos = pos_tmp; */ +/* ft_current_str((*str), *pos); */ +/* ft_get_next_str((*str), pos); */ +/* ft_putnc('\b', *pos - (pos_tmp + j)); */ +/* *pos = (pos_tmp + j); */ +/* } */ diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index efca1222..6a5079ac 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/04 16:19:36 by gwojda ### ########.fr */ +/* Updated: 2017/02/09 17:03:16 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -42,11 +42,11 @@ void ft_init_history(void) close(fd); } -struct termios *ft_save_stats_term(void) +struct termios *ft_save_stats_term(int save) { static struct termios *term_save = NULL; - if (!term_save) + if (save) { term_save = (struct termios *)malloc(sizeof(struct termios)); tcgetattr(0, term_save); @@ -71,29 +71,32 @@ struct termios *ft_stats_term_termcaps(void) return (term); } -int ft_readline(void) +char *readline(char *prompt) { - ft_save_stats_term(); + char *input; + + ft_save_stats_term(1); if (tcsetattr(0, TCSANOW, ft_stats_term_termcaps()) == -1) - return (-1); + return (NULL); if (STR) ft_strdel(&STR); data_singleton()->line.list_cur = data_singleton()->line.list_beg; POS = 0; - ft_prompt(); - STR = ft_read_stdin(); - ft_check_line(); + prompt ? ft_putstr(prompt) : ft_prompt(); + input = ft_read_stdin(); ft_putchar('\n'); - ft_check_heredoc(&STR); - ft_history_parsing(); - if (STR && (!data_singleton()->line.list_beg || - ft_strcmp(data_singleton()->line.list_beg->prev->str, STR))) - { - ft_push_back_history(&data_singleton()->line.list_beg, - ft_create_history_list(STR)); - ft_add_in_history_file(STR); - } - if (tcsetattr(0, TCSANOW, ft_save_stats_term()) == -1) - return (-1); - return (0); + /* ft_check_line(); */ + /* ft_check_heredoc(&STR); */ + if (tcsetattr(0, TCSANOW, ft_save_stats_term(0)) == -1) + return (NULL); + return (input); + + /* ft_history_parsing(); */ + /* if (STR && (!data_singleton()->line.list_beg || */ + /* ft_strcmp(data_singleton()->line.list_beg->prev->str, STR))) */ + /* { */ + /* ft_push_back_history(&data_singleton()->line.list_beg, */ + /* ft_create_history_list(STR)); */ + /* ft_add_in_history_file(STR); */ + /* } */ } diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index b9cc077b..4cdf0625 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,25 +6,32 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:18:21 by jhalford ### ########.fr */ +/* Updated: 2017/02/10 00:36:05 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -int shell_single_command(char *command) +int interactive_shell() { t_list *token; + t_list *ltoken; + t_lexer lexer; t_btree *ast; + lexer.pos = 0; + lexer.state = DEFAULT; + lexer.str = NULL; token = NULL; - ast = NULL; - - DG("{inv}{mag}got command '%s'", command); - if (ft_lexer(&token, &command) || !token) - return (1); - - token_print(token); + lexer.stack = NULL; + do { + if (lexer.stack && *(int*)lexer.stack->content == BACKSLASH) + pop(&lexer.stack); + ft_strappend(&lexer.str, readline(stack_to_prompt(lexer.stack))); + ltoken = ft_lstlast(token); + lexer_lex((token ? <oken : &token), &lexer); + token_print(token); + } while (lexer.stack->content); if (ft_parse(&ast, &token)) return (1); @@ -40,20 +47,12 @@ int main(int ac, char **av) data = data_singleton(); setlocale(LC_ALL, ""); - DG("{inv}{bol}{gre}start of shell{eoc} pid=%i pgrp=%i job_control is %s", getpid(), getpgrp(), SH_HAS_JOBC(data->opts) ? "ON" : "OFF"); shell_init(ac, av); DG("{inv}{bol}{gre}start of shell{eoc} pid=%i pgrp=%i job_control is %s", getpid(), getpgrp(), SH_HAS_JOBC(data->opts) ? "ON" : "OFF"); - if (data_singleton()->opts & SH_OPTS_LC) + if (SH_IS_INTERACTIVE(data->opts)) { - shell_single_command(ft_strdup(shell_get_avdata())); - return (0); - } - while (1) - { - if (ft_readline()) - return (1); - if (shell_single_command(ft_strdup(data_singleton()->line.input)) < 0) - return (1); + while (1) + interactive_shell(); } return (0); } diff --git a/42sh/src/main/remove_trailing_esc_nl.c b/42sh/src/main/remove_trailing_esc_nl.c new file mode 100644 index 00000000..9d6fb232 --- /dev/null +++ b/42sh/src/main/remove_trailing_esc_nl.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* remove_trailing_esc_nl.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/09 16:52:34 by jhalford #+# #+# */ +/* Updated: 2017/02/09 17:00:33 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +int remove_trailing_esc_nl(char *str) +{ + char *last; + + last = str + ft_strlen(str) - 1; + if (*last == '\\') + { + *last = 0; + return (1); + } + return (0); +} diff --git a/42sh/src/main/shell_get_opts.c b/42sh/src/main/shell_get_opts.c index f9f861fc..86ce3c8e 100644 --- a/42sh/src/main/shell_get_opts.c +++ b/42sh/src/main/shell_get_opts.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 14:04:48 by jhalford #+# #+# */ -/* Updated: 2017/01/11 17:14:35 by jhalford ### ########.fr */ +/* Updated: 2017/02/09 20:50:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -29,6 +29,7 @@ static void shell_parse_short_opt(char *str) { data_singleton()->opts |= SH_OPTS_LC; data_singleton()->opts &= ~SH_OPTS_JOBC; + data_singleton()->opts &= ~SH_INTERACTIVE; } i++; } From 6ec9f9295ea54a70e84cc375c3aaef245e79337e Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 10 Feb 2017 05:19:26 +0100 Subject: [PATCH 48/98] initial implementation looks ok, parenthesis needs fix --- 42sh/Makefile | 3 +- 42sh/includes/lexer.h | 13 ++-- 42sh/src/lexer/ft_post_tokenize.c | 40 ----------- 42sh/src/lexer/get_state_global.c | 2 +- 42sh/src/lexer/lexer_bquote.c | 14 ++-- 42sh/src/lexer/lexer_default.c | 19 ++---- 42sh/src/lexer/lexer_delim.c | 6 +- 42sh/src/lexer/lexer_dquote.c | 20 +++--- 42sh/src/lexer/lexer_lex.c | 2 +- 42sh/src/lexer/lexer_paren.c | 31 +++++++++ 42sh/src/lexer/lexer_quote.c | 16 +++-- 42sh/src/lexer/lexer_subshell.c | 37 ---------- 42sh/src/lexer/lexer_word.c | 5 +- 42sh/src/lexer/stack_to_prompt.c | 12 ++-- 42sh/src/line-editing/get_touch.c | 4 +- 42sh/src/line-editing/reader.c | 108 +++++++++++++++--------------- 42sh/src/main/main.c | 7 +- 17 files changed, 150 insertions(+), 189 deletions(-) delete mode 100644 42sh/src/lexer/ft_post_tokenize.c create mode 100644 42sh/src/lexer/lexer_paren.c delete mode 100644 42sh/src/lexer/lexer_subshell.c diff --git a/42sh/Makefile b/42sh/Makefile index d09f5200..0a38131a 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -137,7 +137,6 @@ 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/get_state_global.c\ lexer/get_state_redir.c\ lexer/lexer_backslash.c\ @@ -153,9 +152,9 @@ lexer/lexer_lessand.c\ lexer/lexer_lex.c\ lexer/lexer_newline.c\ lexer/lexer_number.c\ +lexer/lexer_paren.c\ lexer/lexer_quote.c\ lexer/lexer_sep.c\ -lexer/lexer_subshell.c\ lexer/lexer_word.c\ lexer/reduce_bquotes.c\ lexer/reduce_parens.c\ diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index b9f11bde..14d04d60 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -31,14 +31,15 @@ # define TK_PAREN_OPEN (1 << 11) # define TK_PAREN_CLOSE (1 << 12) # define TK_BQUOTE (1 << 13) -# define TK_N_WORD (1 << 14) -# define TK_Q_WORD (1 << 15) -# define TK_DQ_WORD (1 << 16) +# define TK_WORD (1 << 14) +/* # define TK_N_WORD (1 << 14) */ +/* # define TK_Q_WORD (1 << 15) */ +/* # define TK_DQ_WORD (1 << 16) */ # define TK_COMMAND (1 << 17) # define TK_SUBSHELL (1 << 18) # define TK_NEWLINE (1 << 19) -# define TK_WORD (TK_N_WORD | TK_Q_WORD | TK_DQ_WORD) +/* # define TK_WORD (TK_N_WORD | TK_Q_WORD | TK_DQ_WORD) */ # define TK_REDIR (0x1 | 0x2 | 0x4 | 0x8 | 0x10 | 0x20) # define TK_NON_FREEABLE (TK_PAREN_OPEN | TK_PAREN_CLOSE | TK_BQUOTE) @@ -58,7 +59,7 @@ enum e_lexstate DQUOTE, BQUOTE, BACKSLASH, - SUBSHELL, + PAREN, COMMENT, }; @@ -116,7 +117,7 @@ int lexer_quote(t_list **alst, t_lexer *lexer); int lexer_dquote(t_list **alst, t_lexer *lexer); int lexer_bquote(t_list **alst, t_lexer *lexer); int lexer_backslash(t_list **alst, t_lexer *lexer); -int lexer_subshell(t_list **alst, t_lexer *lexer); +int lexer_paren(t_list **alst, t_lexer *lexer); int lexer_comment(t_list **alst, t_lexer *lexer); #endif diff --git a/42sh/src/lexer/ft_post_tokenize.c b/42sh/src/lexer/ft_post_tokenize.c deleted file mode 100644 index a0b4941f..00000000 --- a/42sh/src/lexer/ft_post_tokenize.c +++ /dev/null @@ -1,40 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_post_tokenize.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/11 16:11:11 by jhalford #+# #+# */ -/* Updated: 2017/02/06 14:33:34 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "lexer.h" - -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/get_state_global.c b/42sh/src/lexer/get_state_global.c index 3f59ab73..bed48d83 100644 --- a/42sh/src/lexer/get_state_global.c +++ b/42sh/src/lexer/get_state_global.c @@ -32,6 +32,6 @@ t_lexstate get_state_global(t_lexer *lexer) else if (c == '`') return (BQUOTE); else if (c == '(' || c == ')') - return (SUBSHELL); + return (PAREN); return (0); } diff --git a/42sh/src/lexer/lexer_bquote.c b/42sh/src/lexer/lexer_bquote.c index a9e32dda..af4020b7 100644 --- a/42sh/src/lexer/lexer_bquote.c +++ b/42sh/src/lexer/lexer_bquote.c @@ -17,19 +17,21 @@ int lexer_bquote(t_list **alst, t_lexer *lexer) t_token *token; token = (*alst)->content; - token->type = TK_Q_WORD; - lexer->pos++; - push(&lexer->stack, BQUOTE); + token->type = TK_WORD; if (lexer->str[lexer->pos] == '`') { - lexer->state = WORD; lexer->pos++; + if (!(lexer->stack && *(int*)lexer->stack->content == BQUOTE)) + { + push(&lexer->stack, BQUOTE); + return (lexer_lex(alst, lexer)); + } + lexer->state = WORD; pop(&lexer->stack); return (lexer_lex(alst, lexer)); } - else if (lexer->str[lexer->pos] == 0) - return (0); token_append(token, lexer, 0, 0); + lexer->pos++; return (lexer_quote(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_default.c b/42sh/src/lexer/lexer_default.c index ed43b9d6..777d6f11 100644 --- a/42sh/src/lexer/lexer_default.c +++ b/42sh/src/lexer/lexer_default.c @@ -14,27 +14,16 @@ int lexer_default(t_list **alst, t_lexer *lexer) { - t_lexstate state; t_token *token; char c; c = lexer->str[lexer->pos]; - if ((state = get_state_global(lexer))) - { - lexer->state = state; + if ((lexer->state = get_state_global(lexer))) return (lexer_lex(alst, lexer)); - } - if ((state = get_state_redir(lexer))) - { - lexer->state = state; + if ((lexer->state = get_state_redir(lexer))) return (lexer_lex(alst, lexer)); - } - else if (ft_isdigit(c)) - lexer->state = NUMBER; - else - lexer->state = WORD; + lexer->state = ft_isdigit(c) ? NUMBER : WORD; token = (*alst)->content; - token_append(token, lexer, 0, 0); - token->type = TK_N_WORD; + token->type = TK_WORD; return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_delim.c b/42sh/src/lexer/lexer_delim.c index 6fa29b29..a30dd955 100644 --- a/42sh/src/lexer/lexer_delim.c +++ b/42sh/src/lexer/lexer_delim.c @@ -17,13 +17,17 @@ int lexer_delim(t_list **alst, t_lexer *lexer) t_token *token; token = (*alst)->content; + DG("DELIM"); while (ft_is_delim(lexer->str[lexer->pos])) lexer->pos++; + lexer->state = DEFAULT; if (token->type) + { return (lexer_lex(&(*alst)->next, lexer)); + } else { - if (!lexer->str[lexer->pos]) + if (lexer->str[lexer->pos] == 0) ft_lst_delif(alst, (*alst)->content, &ft_addrcmp, &token_free); return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_dquote.c b/42sh/src/lexer/lexer_dquote.c index 7077fd7b..68157512 100644 --- a/42sh/src/lexer/lexer_dquote.c +++ b/42sh/src/lexer/lexer_dquote.c @@ -17,18 +17,20 @@ int lexer_dquote(t_list **alst, t_lexer *lexer) t_token *token; token = (*alst)->content; - token->type = TK_DQ_WORD; - if (*(int*)lexer->stack->content != DQUOTE) - push(&lexer->stack, DQUOTE); - lexer->pos++; + token->type = TK_WORD; if (lexer->str[lexer->pos] == '"') { lexer->pos++; + if (!(lexer->stack && *(int*)lexer->stack->content == DQUOTE)) + { + push(&lexer->stack, DQUOTE); + return (lexer_lex(alst, lexer)); + } lexer->state = WORD; pop(&lexer->stack); return (lexer_lex(alst, lexer)); } - else if (lexer->str[lexer->pos] == '\\') + if (lexer->str[lexer->pos] == '\\') { if (lexer->str[lexer->pos + 1] == '"') token_append(token, lexer, 1, 0); @@ -42,9 +44,11 @@ int lexer_dquote(t_list **alst, t_lexer *lexer) return (lexer_dquote(alst,lexer)); } else if (lexer->str[lexer->pos] == '`') + { + lexer->state = BQUOTE; lexer_bquote(alst, lexer); - else if (lexer->str[lexer->pos] == 0) - return (0); + } token_append(token, lexer, 1, 0); - return (lexer_dquote(alst, lexer)); + lexer->pos++; + return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_lex.c b/42sh/src/lexer/lexer_lex.c index a406fbc8..054b03d9 100644 --- a/42sh/src/lexer/lexer_lex.c +++ b/42sh/src/lexer/lexer_lex.c @@ -28,7 +28,7 @@ int (*g_lexer[])(t_list **alst, t_lexer *lexer) = &lexer_dquote, &lexer_bquote, &lexer_backslash, - &lexer_subshell, + &lexer_paren, &lexer_comment, }; diff --git a/42sh/src/lexer/lexer_paren.c b/42sh/src/lexer/lexer_paren.c new file mode 100644 index 00000000..dd795357 --- /dev/null +++ b/42sh/src/lexer/lexer_paren.c @@ -0,0 +1,31 @@ +#include "lexer.h" + +int lexer_paren(t_list **alst, t_lexer *lexer) +{ + t_token *token; + t_list **lst; + + lst = alst; + if (*alst) + { + token = (*alst)->content; + if (token->type) + lst = &(*alst)->next; + } + token = token_init(); + *lst = ft_lstnew(token, sizeof(*token)); + token = (*lst)->content; + if (lexer->str[lexer->pos] == '(') + { + token->type = TK_PAREN_OPEN; + push(&lexer->stack, PAREN); + } + else if (lexer->stack && *(int*)lexer->stack->content == PAREN) + { + token->type = TK_PAREN_CLOSE; + pop(&lexer->stack); + } + lexer->pos++; + lexer->state = DEFAULT; + return (lexer_lex(&(*lst)->next, lexer)); +} diff --git a/42sh/src/lexer/lexer_quote.c b/42sh/src/lexer/lexer_quote.c index b0764b7d..2d3a6432 100644 --- a/42sh/src/lexer/lexer_quote.c +++ b/42sh/src/lexer/lexer_quote.c @@ -17,18 +17,20 @@ int lexer_quote(t_list **alst, t_lexer *lexer) t_token *token; token = (*alst)->content; - token->type = TK_Q_WORD; - lexer->pos++; - push(&lexer->stack, QUOTE); + token->type = TK_WORD; if (lexer->str[lexer->pos] == '\'') { - lexer->state = WORD; lexer->pos++; + if (!(lexer->stack && *(int*)lexer->stack->content == QUOTE)) + { + push(&lexer->stack, QUOTE); + return (lexer_lex(alst, lexer)); + } + lexer->state = WORD; pop(&lexer->stack); return (lexer_lex(alst, lexer)); } - else if (lexer->str[lexer->pos] == 0) - return (0); token_append(token, lexer, 1, 1); - return (lexer_quote(alst, lexer)); + lexer->pos++; + return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_subshell.c b/42sh/src/lexer/lexer_subshell.c deleted file mode 100644 index 278849bb..00000000 --- a/42sh/src/lexer/lexer_subshell.c +++ /dev/null @@ -1,37 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* lexer_special.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/11 15:35:38 by jhalford #+# #+# */ -/* Updated: 2017/02/09 22:09:07 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "lexer.h" - -int lexer_subshell(t_list **alst, t_lexer *lexer) -{ - t_token *token; - t_list **lst; - - lst = alst; - if (*alst) - { - token = (*alst)->content; - if (token->type) - lst = &(*alst)->next; - } - token = token_init(); - *lst = ft_lstnew(token, sizeof(*token)); - token = (*lst)->content; - if (lexer->str[lexer->pos] == '(') - token->type = TK_PAREN_OPEN; - else if (lexer->str[lexer->pos] == ')') - token->type = TK_PAREN_CLOSE; - token->data = lexer->str; - lexer->pos++; - return (lexer_lex(&(*lst)->next, lexer)); -} diff --git a/42sh/src/lexer/lexer_word.c b/42sh/src/lexer/lexer_word.c index b5fa0ae9..599b2ac7 100644 --- a/42sh/src/lexer/lexer_word.c +++ b/42sh/src/lexer/lexer_word.c @@ -18,9 +18,12 @@ int lexer_word(t_list **alst, t_lexer *lexer) t_lexstate state; token = (*alst)->content; - token->type = TK_N_WORD; + token->type = TK_WORD; if ((state = get_state_global(lexer))) + { + lexer->state = state; return (lexer_lex(alst, lexer)); + } if ((state = get_state_redir(lexer))) { lexer->state = state; diff --git a/42sh/src/lexer/stack_to_prompt.c b/42sh/src/lexer/stack_to_prompt.c index 0343dcb2..35d83a5c 100644 --- a/42sh/src/lexer/stack_to_prompt.c +++ b/42sh/src/lexer/stack_to_prompt.c @@ -22,13 +22,13 @@ char *stack_to_prompt(t_list *stack) if (top == BACKSLASH) return ("> "); else if (top == QUOTE) - return ("quote >"); + return ("quote> "); else if (top == DQUOTE) - return ("dquote >"); + return ("dquote> "); else if (top == BQUOTE) - return ("bquote >"); - else if (top == SUBSHELL) - return ("subsh >"); + return ("bquote> "); + else if (top == PAREN) + return ("subsh> "); else - return (" > "); + return ("error> "); } diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_touch.c index 71c31e85..7c90314c 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_touch.c @@ -71,7 +71,7 @@ char *ft_read_stdin(void) ft_print(ret); else if (ret == 10) return (STR); - /* else if (ft_isascii(ret) == 0) */ - /* ft_read_it(ret, &POS, &STR); */ + else if (ft_isascii(ret) == 0) + ft_read_it(ret, &POS, &STR); } } diff --git a/42sh/src/line-editing/reader.c b/42sh/src/line-editing/reader.c index 3068e52d..6d58ce23 100644 --- a/42sh/src/line-editing/reader.c +++ b/42sh/src/line-editing/reader.c @@ -10,62 +10,62 @@ /* */ /* ************************************************************************** */ -/* #include "minishell.h" */ +#include "minishell.h" -/* static void ft_read_it_3(char **str, char t[5], size_t *pos, int *j) */ -/* { */ -/* int i; */ +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; */ -/* } */ -/* } */ + 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'; */ -/* 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'; */ -/* } */ +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 j; */ -/* char t[5]; */ -/* size_t pos_tmp; */ +void ft_read_it(int input, size_t *pos, char **str) +{ + int j; + char t[5]; + size_t pos_tmp; -/* j = 0; */ -/* pos_tmp = *pos; */ -/* 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); */ -/* ft_read_it_3(str, t, pos, &j); */ -/* *pos = pos_tmp; */ -/* ft_current_str((*str), *pos); */ -/* ft_get_next_str((*str), pos); */ -/* ft_putnc('\b', *pos - (pos_tmp + j)); */ -/* *pos = (pos_tmp + j); */ -/* } */ + j = 0; + pos_tmp = *pos; + 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); + ft_read_it_3(str, t, pos, &j); + *pos = pos_tmp; + ft_current_str((*str), *pos); + ft_get_next_str((*str), pos); + ft_putnc('\b', *pos - (pos_tmp + j)); + *pos = (pos_tmp + j); +} diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 4cdf0625..a847c100 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -24,17 +24,20 @@ int interactive_shell() lexer.str = NULL; token = NULL; lexer.stack = NULL; + ast = NULL; do { if (lexer.stack && *(int*)lexer.stack->content == BACKSLASH) pop(&lexer.stack); ft_strappend(&lexer.str, readline(stack_to_prompt(lexer.stack))); + DG("[{mag}%s{eoc}]", lexer.str); ltoken = ft_lstlast(token); lexer_lex((token ? <oken : &token), &lexer); token_print(token); - } while (lexer.stack->content); + } while (lexer.stack); + DG("after lexing"); + token_print(token); if (ft_parse(&ast, &token)) return (1); - btree_print(STDBUG, ast, &ft_putast); if (ft_exec(&ast)) return (1); From 1167a23ca3c29588b2c839a2353b79fde4dbd800 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 10 Feb 2017 05:30:17 +0100 Subject: [PATCH 49/98] some refactoring of readline.c --- 42sh/src/line-editing/readline.c | 46 ++++++++++++++++---------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index 6a5079ac..ba2e6498 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -42,7 +42,7 @@ void ft_init_history(void) close(fd); } -struct termios *ft_save_stats_term(int save) +struct termios *ft_save_termios(int save) { static struct termios *term_save = NULL; @@ -54,40 +54,40 @@ struct termios *ft_save_stats_term(int save) return (term_save); } -struct termios *ft_stats_term_termcaps(void) +void ft_init_termios(void) { - static struct termios *term = NULL; + struct termios term; - if (!term) - { - ft_init_line(); - ft_init_history(); - 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); + tcgetattr(0, &term); + term.c_lflag &= ~(ECHO | ICANON | ISIG); + term.c_cc[VMIN] = 1; + term.c_cc[VTIME] = 0; + tcsetattr(0, TCSANOW, &term); +} + +void readline_init(char *prompt) +{ + ft_save_termios(1); + ft_init_line(); + ft_init_history(); + ft_init_termios(); + if (STR) + ft_strdel(&STR); + data_singleton()->line.list_cur = data_singleton()->line.list_beg; + POS = 0; + prompt ? ft_putstr(prompt) : ft_prompt(); } char *readline(char *prompt) { char *input; - ft_save_stats_term(1); - if (tcsetattr(0, TCSANOW, ft_stats_term_termcaps()) == -1) - return (NULL); - if (STR) - ft_strdel(&STR); - data_singleton()->line.list_cur = data_singleton()->line.list_beg; - POS = 0; - prompt ? ft_putstr(prompt) : ft_prompt(); + readline_init(prompt); input = ft_read_stdin(); ft_putchar('\n'); /* ft_check_line(); */ /* ft_check_heredoc(&STR); */ - if (tcsetattr(0, TCSANOW, ft_save_stats_term(0)) == -1) + if (tcsetattr(0, TCSANOW, ft_save_termios(0)) == -1) return (NULL); return (input); From b25e6b186a79111e7cf56f26994fb2d7ddcb15a7 Mon Sep 17 00:00:00 2001 From: gwojda Date: Fri, 10 Feb 2017 12:19:51 +0100 Subject: [PATCH 50/98] fixe termcaps --- 42sh/src/glob/lib_perso/ft_memrealloc.c | 6 +++--- 42sh/src/main/data_init.c | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/42sh/src/glob/lib_perso/ft_memrealloc.c b/42sh/src/glob/lib_perso/ft_memrealloc.c index 08130733..4f3c6125 100644 --- a/42sh/src/glob/lib_perso/ft_memrealloc.c +++ b/42sh/src/glob/lib_perso/ft_memrealloc.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ft_memrealloc.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: wescande +#+ +:+ +#+ */ +/* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/05 13:44:36 by wescande #+# #+# */ -/* Updated: 2017/02/08 13:54:33 by wescande ### ########.fr */ +/* Updated: 2017/02/10 12:13:23 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,6 +25,6 @@ void *ft_memrealloc(void *ptr, size_t old_s, size_t new_s) } n_ptr = ft_memalloc(new_s); ft_memcpy(n_ptr, ptr, old_s); - ft_memdel(ptr); + ft_memdel(&ptr); return (n_ptr); } diff --git a/42sh/src/main/data_init.c b/42sh/src/main/data_init.c index 8c11688e..9127da80 100644 --- a/42sh/src/main/data_init.c +++ b/42sh/src/main/data_init.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 19:26:32 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:23:02 by jhalford ### ########.fr */ +/* Updated: 2017/02/10 12:16:32 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,7 @@ extern char **environ; int data_init(void) { t_data *data; + char *term_name; data = data_singleton(); data->env = ft_sstrdup(environ); @@ -44,5 +45,9 @@ int data_init(void) data->jobc.first_job = NULL; data->jobc.current_id = 1; + if ((term_name = ft_getenv(data->env, "TERM")) == NULL) + return (-1); + if (tgetent(NULL, term_name) != 1) + return (-1); return (0); } From 0a1fd7e5186118e8aab6637fcd1c042be325c062 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 10 Feb 2017 13:38:49 +0100 Subject: [PATCH 51/98] dquotes->bquotes --- 42sh/includes/lexer.h | 1 + 42sh/src/lexer/lexer_bquote.c | 14 ++++++++------ 42sh/src/lexer/lexer_dquote.c | 5 +++-- 42sh/src/lexer/lexer_lex.c | 1 + 42sh/src/lexer/stack_to_prompt.c | 2 ++ 42sh/src/lexer/token_append.c | 6 +++--- 42sh/src/lexer/token_print.c | 2 +- 42sh/src/main/data_init.c | 3 ++- 42sh/src/main/main.c | 2 +- 9 files changed, 22 insertions(+), 14 deletions(-) diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 14d04d60..f0405871 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -58,6 +58,7 @@ enum e_lexstate QUOTE, DQUOTE, BQUOTE, + DQUOTE_BQUOTE, BACKSLASH, PAREN, COMMENT, diff --git a/42sh/src/lexer/lexer_bquote.c b/42sh/src/lexer/lexer_bquote.c index af4020b7..e4c003ad 100644 --- a/42sh/src/lexer/lexer_bquote.c +++ b/42sh/src/lexer/lexer_bquote.c @@ -15,23 +15,25 @@ int lexer_bquote(t_list **alst, t_lexer *lexer) { t_token *token; + int top_state; token = (*alst)->content; token->type = TK_WORD; + token_append(token, lexer, 0, 0); if (lexer->str[lexer->pos] == '`') { lexer->pos++; - if (!(lexer->stack && *(int*)lexer->stack->content == BQUOTE)) + if (!(lexer->stack && (*(int*)lexer->stack->content == BQUOTE + || *(int*)lexer->stack->content == DQUOTE_BQUOTE))) { - push(&lexer->stack, BQUOTE); + push(&lexer->stack, lexer->state); return (lexer_lex(alst, lexer)); } - lexer->state = WORD; - pop(&lexer->stack); + top_state = *(int*)pop(&lexer->stack); + lexer->state = top_state == DQUOTE_BQUOTE ? DQUOTE : DEFAULT; return (lexer_lex(alst, lexer)); } - token_append(token, lexer, 0, 0); lexer->pos++; - return (lexer_quote(alst, lexer)); + return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_dquote.c b/42sh/src/lexer/lexer_dquote.c index 68157512..36399c62 100644 --- a/42sh/src/lexer/lexer_dquote.c +++ b/42sh/src/lexer/lexer_dquote.c @@ -21,6 +21,7 @@ int lexer_dquote(t_list **alst, t_lexer *lexer) if (lexer->str[lexer->pos] == '"') { lexer->pos++; + /* if (!(lexer->stack && *(int*)lexer->stack->content != BQUOTE)) */ if (!(lexer->stack && *(int*)lexer->stack->content == DQUOTE)) { push(&lexer->stack, DQUOTE); @@ -45,8 +46,8 @@ int lexer_dquote(t_list **alst, t_lexer *lexer) } else if (lexer->str[lexer->pos] == '`') { - lexer->state = BQUOTE; - lexer_bquote(alst, lexer); + lexer->state = DQUOTE_BQUOTE; + return (lexer_bquote(alst, lexer)); } token_append(token, lexer, 1, 0); lexer->pos++; diff --git a/42sh/src/lexer/lexer_lex.c b/42sh/src/lexer/lexer_lex.c index 054b03d9..1e9f4a03 100644 --- a/42sh/src/lexer/lexer_lex.c +++ b/42sh/src/lexer/lexer_lex.c @@ -27,6 +27,7 @@ int (*g_lexer[])(t_list **alst, t_lexer *lexer) = &lexer_quote, &lexer_dquote, &lexer_bquote, + &lexer_bquote, &lexer_backslash, &lexer_paren, &lexer_comment, diff --git a/42sh/src/lexer/stack_to_prompt.c b/42sh/src/lexer/stack_to_prompt.c index 35d83a5c..385ffc89 100644 --- a/42sh/src/lexer/stack_to_prompt.c +++ b/42sh/src/lexer/stack_to_prompt.c @@ -27,6 +27,8 @@ char *stack_to_prompt(t_list *stack) return ("dquote> "); else if (top == BQUOTE) return ("bquote> "); + else if (top == DQUOTE_BQUOTE) + return ("dquote bquote> "); else if (top == PAREN) return ("subsh> "); else diff --git a/42sh/src/lexer/token_append.c b/42sh/src/lexer/token_append.c index b2b00fb3..1b82a8d3 100644 --- a/42sh/src/lexer/token_append.c +++ b/42sh/src/lexer/token_append.c @@ -26,13 +26,13 @@ int token_append(t_token *token, t_lexer *lexer, short int esc, short int esc2) token->esc = (unsigned char *)ft_memrealloc((char *)token->esc, (token->size >> 3), (token->size >> 3) + 1); - token->esc[token->size >> 3] = 0; + token->esc[token->size >> 3] = 0; token->esc2 = (unsigned char *)ft_memrealloc((char *)token->esc2, (token->size >> 3), (token->size >> 3) + 1); - token->esc2[token->size >> 3] = 0; + token->esc2[token->size >> 3] = 0; } - ft_strcat(token->data, (char[2]){c, '\0'}); + ft_strcat(token->data, (char[]){c, 0}); token->esc[len >> 3] |= esc << (7 - len % 8); token->esc2[len >> 3] |= esc2 << (7 - len % 8); return (0); diff --git a/42sh/src/lexer/token_print.c b/42sh/src/lexer/token_print.c index cc644557..7f102fa2 100644 --- a/42sh/src/lexer/token_print.c +++ b/42sh/src/lexer/token_print.c @@ -26,7 +26,7 @@ void token_print(t_list *lst) type = token->type; while (type >> (i++ + 2)) ; - DG("%02i '%s'", i, token->data); + DG("%02i:[%s]", i, token->data); index = -1; lst = lst->next; } diff --git a/42sh/src/main/data_init.c b/42sh/src/main/data_init.c index 8c11688e..8892b426 100644 --- a/42sh/src/main/data_init.c +++ b/42sh/src/main/data_init.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 19:26:32 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:23:02 by jhalford ### ########.fr */ +/* Updated: 2017/02/09 16:31:07 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,7 @@ extern char **environ; int data_init(void) { t_data *data; + char *term_name; data = data_singleton(); data->env = ft_sstrdup(environ); diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index a847c100..df8b4f98 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -29,9 +29,9 @@ int interactive_shell() if (lexer.stack && *(int*)lexer.stack->content == BACKSLASH) pop(&lexer.stack); ft_strappend(&lexer.str, readline(stack_to_prompt(lexer.stack))); - DG("[{mag}%s{eoc}]", lexer.str); ltoken = ft_lstlast(token); lexer_lex((token ? <oken : &token), &lexer); + DG("[{mag}%s{eoc}] stack=[%i] state=[%i]", lexer.str, lexer.stack ? *(int*)lexer.stack->content : 0, lexer.state); token_print(token); } while (lexer.stack); DG("after lexing"); From f7ed0a6bdd0328d6e1f28a75b2263f0af5096c7d Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 10 Feb 2017 13:50:46 +0100 Subject: [PATCH 52/98] bq->dq seems to function --- 42sh/src/lexer/lexer_bquote.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/42sh/src/lexer/lexer_bquote.c b/42sh/src/lexer/lexer_bquote.c index e4c003ad..88dee442 100644 --- a/42sh/src/lexer/lexer_bquote.c +++ b/42sh/src/lexer/lexer_bquote.c @@ -29,7 +29,7 @@ int lexer_bquote(t_list **alst, t_lexer *lexer) push(&lexer->stack, lexer->state); return (lexer_lex(alst, lexer)); } - top_state = *(int*)pop(&lexer->stack); + top_state = *(int*)pop(&lexer->stack)->content; lexer->state = top_state == DQUOTE_BQUOTE ? DQUOTE : DEFAULT; return (lexer_lex(alst, lexer)); } From ab66992500c09639f231a08bb3ed8a05267bf899 Mon Sep 17 00:00:00 2001 From: gwojda Date: Fri, 10 Feb 2017 18:22:50 +0100 Subject: [PATCH 53/98] prompt zsh style : quelques petits trucs a revoir --- 42sh/libft | 2 +- 42sh/src/line-editing/prompt.c | 72 ++++++++++++++++++++++++++++------ 2 files changed, 61 insertions(+), 13 deletions(-) diff --git a/42sh/libft b/42sh/libft index b53fcb9d..acd7e54f 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit b53fcb9db8b4baf53c73b17726f1740c4af12be0 +Subproject commit acd7e54fb8045b3958dd239d469f1476404468b7 diff --git a/42sh/src/line-editing/prompt.c b/42sh/src/line-editing/prompt.c index ea94ec3b..0120a72b 100644 --- a/42sh/src/line-editing/prompt.c +++ b/42sh/src/line-editing/prompt.c @@ -1,22 +1,62 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* prompt.c :+: :+: :+: */ +/* ftprompt.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:51:33 by gwojda #+# #+# */ -/* Updated: 2017/02/05 17:42:23 by gwojda ### ########.fr */ +/* Updated: 2017/02/10 18:19:16 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" +static int ft_git_status(void) +{ + int pip[2]; + char *tmp; + char *line; + pid_t soon; + char *exec[] = {"git", "status", "--porcelain", "--branch", NULL}; + + pipe(pip); + if ((soon = fork())) + { + wait(&soon); + if (WEXITSTATUS(soon)) + return (0); + close(pip[1]); + get_next_line(pip[0], &line); + tmp = line; + if (ft_strrchr(line, '/')) + line = ft_strdup(ft_strrchr(line, '/') + 1); + ft_printf("\x1b[38;5;47mgit:(\x1b[38;5;203m%s\x1b[38;5;47m)", line); + free(tmp); + if (!get_next_line(pip[0], &tmp)) + printf("\x1b[38;5;83m %C ", L'✓'); + else + { + printf("\x1b[38;5;1m %C ", L'✗'); + free(tmp); + } + fflush(NULL); + } + else + { + dup2(pip[1], 1); + dup2(pip[1], 2); + close(pip[0]); + execve("/usr/bin/git", exec, data_singleton()->env); + } + return (ft_strlen(line) + 8); +} + /* **ft_printf de la lib bug avec unicode */ -static void ft_get_date(void) +static int ft_get_date(void) { time_t t; struct tm tm; @@ -32,6 +72,7 @@ static void ft_get_date(void) else printf("\x1b[38;5;184m%C ", L'★'); fflush(NULL); + return (10); } static int ft_currend_dir(void) @@ -47,21 +88,28 @@ static int ft_currend_dir(void) j = ft_strlen(env[i]); while (j && env[i][j] != '/') --j; - ft_putstr(env[i] + j + 1); + ft_printf("%s ", env[i] + j + 1); return (ft_strlen(env[i] + j + 1)); } -void ft_prompt(void) +void ft_prompt() { - int ret; + int ret; + ret = 0; do_job_notification(); - ft_get_date(); - ft_putstr("\x1b[38;5;254m"); - ret = ft_currend_dir(); - ft_putstr("\x1b[38;5;184m"); - printf(" %C ", L'›'); +// ft_get_date(); + if (ft_getenv(data_singleton()->env, "?") && ft_atoi(ft_getenv(data_singleton()->env, "?"))) + printf("\x1b[38;5;1m%C ", L'➜'); + else + printf("\x1b[38;5;10m%C ", L'➜'); + fflush(NULL); + ft_putstr("\x1b[38;5;361m"); + ret += ft_currend_dir(); + if (!(ret += ft_git_status())) + ret += ft_get_date(); + printf("\x1b[38;5;184m%C ", L'›'); fflush(NULL); ft_putstr("\033[22;37m"); - data_singleton()->line.prompt_size = ret + 13; + data_singleton()->line.prompt_size = ret + 6; } From 742a99440ea0d9d7076a4c7b9a840651612da521 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sun, 12 Feb 2017 18:11:59 +0100 Subject: [PATCH 54/98] backslash should work, also keep NL when they are quoted --- 42sh/Makefile | 1 + 42sh/includes/lexer.h | 8 +++----- 42sh/src/lexer/get_state_global.c | 2 ++ 42sh/src/lexer/lexer_bquote.c | 14 +++++++++++++- 42sh/src/lexer/lexer_dquote.c | 11 +++++------ 42sh/src/lexer/lexer_end.c | 18 ++++++++++++++++++ 42sh/src/lexer/lexer_lex.c | 5 +++-- 42sh/src/main/main.c | 2 -- 8 files changed, 45 insertions(+), 16 deletions(-) create mode 100644 42sh/src/lexer/lexer_end.c diff --git a/42sh/Makefile b/42sh/Makefile index 0a38131a..4e41b851 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -145,6 +145,7 @@ lexer/lexer_comment.c\ lexer/lexer_default.c\ lexer/lexer_delim.c\ lexer/lexer_dquote.c\ +lexer/lexer_end.c\ lexer/lexer_great.c\ lexer/lexer_greatand.c\ lexer/lexer_less.c\ diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index f0405871..3385e5b8 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -32,16 +32,12 @@ # define TK_PAREN_CLOSE (1 << 12) # define TK_BQUOTE (1 << 13) # define TK_WORD (1 << 14) -/* # define TK_N_WORD (1 << 14) */ -/* # define TK_Q_WORD (1 << 15) */ -/* # define TK_DQ_WORD (1 << 16) */ # define TK_COMMAND (1 << 17) # define TK_SUBSHELL (1 << 18) # define TK_NEWLINE (1 << 19) -/* # define TK_WORD (TK_N_WORD | TK_Q_WORD | TK_DQ_WORD) */ # define TK_REDIR (0x1 | 0x2 | 0x4 | 0x8 | 0x10 | 0x20) -# define TK_NON_FREEABLE (TK_PAREN_OPEN | TK_PAREN_CLOSE | TK_BQUOTE) +# define TK_NON_FREEABLE (TK_BQUOTE) enum e_lexstate { @@ -62,6 +58,7 @@ enum e_lexstate BACKSLASH, PAREN, COMMENT, + END, }; struct s_token @@ -120,5 +117,6 @@ int lexer_bquote(t_list **alst, t_lexer *lexer); int lexer_backslash(t_list **alst, t_lexer *lexer); int lexer_paren(t_list **alst, t_lexer *lexer); int lexer_comment(t_list **alst, t_lexer *lexer); +int lexer_end(t_list **alst, t_lexer *lexer); #endif diff --git a/42sh/src/lexer/get_state_global.c b/42sh/src/lexer/get_state_global.c index bed48d83..38847ae2 100644 --- a/42sh/src/lexer/get_state_global.c +++ b/42sh/src/lexer/get_state_global.c @@ -33,5 +33,7 @@ t_lexstate get_state_global(t_lexer *lexer) return (BQUOTE); else if (c == '(' || c == ')') return (PAREN); + else if (c == 0) + return (END); return (0); } diff --git a/42sh/src/lexer/lexer_bquote.c b/42sh/src/lexer/lexer_bquote.c index 88dee442..0f961942 100644 --- a/42sh/src/lexer/lexer_bquote.c +++ b/42sh/src/lexer/lexer_bquote.c @@ -33,7 +33,19 @@ int lexer_bquote(t_list **alst, t_lexer *lexer) lexer->state = top_state == DQUOTE_BQUOTE ? DQUOTE : DEFAULT; return (lexer_lex(alst, lexer)); } + if (lexer->str[lexer->pos] == '\\') + { + lexer->pos++; + if (lexer->str[lexer->pos] == 0) + { + push(&lexer->stack, BACKSLASH); + return (0); + } + else + token_append(token, lexer, 1, 1); + lexer->pos++; + return (lexer_lex(alst,lexer)); + } lexer->pos++; return (lexer_lex(alst, lexer)); } - diff --git a/42sh/src/lexer/lexer_dquote.c b/42sh/src/lexer/lexer_dquote.c index 36399c62..1de82507 100644 --- a/42sh/src/lexer/lexer_dquote.c +++ b/42sh/src/lexer/lexer_dquote.c @@ -21,7 +21,6 @@ int lexer_dquote(t_list **alst, t_lexer *lexer) if (lexer->str[lexer->pos] == '"') { lexer->pos++; - /* if (!(lexer->stack && *(int*)lexer->stack->content != BQUOTE)) */ if (!(lexer->stack && *(int*)lexer->stack->content == DQUOTE)) { push(&lexer->stack, DQUOTE); @@ -33,16 +32,16 @@ int lexer_dquote(t_list **alst, t_lexer *lexer) } if (lexer->str[lexer->pos] == '\\') { - if (lexer->str[lexer->pos + 1] == '"') - token_append(token, lexer, 1, 0); - else if (lexer->str[lexer->pos + 1] == 0) + lexer->pos++; + if (lexer->str[lexer->pos] == 0) { push(&lexer->stack, BACKSLASH); return (0); } + else + token_append(token, lexer, 1, 1); lexer->pos++; - token_append(token, lexer, 1, 1); - return (lexer_dquote(alst,lexer)); + return (lexer_lex(alst,lexer)); } else if (lexer->str[lexer->pos] == '`') { diff --git a/42sh/src/lexer/lexer_end.c b/42sh/src/lexer/lexer_end.c new file mode 100644 index 00000000..f635cb3d --- /dev/null +++ b/42sh/src/lexer/lexer_end.c @@ -0,0 +1,18 @@ +#include "lexer.h" + +int lexer_end(t_list **alst, t_lexer *lexer) +{ + t_token *token; + + token = (*alst)->content; + if (lexer->state == QUOTE + || lexer->state == DQUOTE + || lexer->state == BQUOTE) + { + ft_strappend(&lexer->str, (char[]){'\n', 0}); + token_append(token, lexer, 1, 0); + lexer->pos++; + return (0); + } + return (0); +} diff --git a/42sh/src/lexer/lexer_lex.c b/42sh/src/lexer/lexer_lex.c index 1e9f4a03..9472a565 100644 --- a/42sh/src/lexer/lexer_lex.c +++ b/42sh/src/lexer/lexer_lex.c @@ -31,6 +31,7 @@ int (*g_lexer[])(t_list **alst, t_lexer *lexer) = &lexer_backslash, &lexer_paren, &lexer_comment, + &lexer_end, }; int ft_is_delim(char c) @@ -42,8 +43,8 @@ int lexer_lex(t_list **alst, t_lexer *lexer) { t_token *token; - if (!lexer->str[lexer->pos]) - return (0); + if (lexer->str[lexer->pos] == 0) + return (lexer_end(alst, lexer)); if (!*alst) { token = token_init(); diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index df8b4f98..3160048d 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -34,8 +34,6 @@ int interactive_shell() DG("[{mag}%s{eoc}] stack=[%i] state=[%i]", lexer.str, lexer.stack ? *(int*)lexer.stack->content : 0, lexer.state); token_print(token); } while (lexer.stack); - DG("after lexing"); - token_print(token); if (ft_parse(&ast, &token)) return (1); btree_print(STDBUG, ast, &ft_putast); From 2e0b6102ce5ba62ce649285e9d1f424e406022c8 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Mon, 13 Feb 2017 15:31:21 +0100 Subject: [PATCH 55/98] bquotes expand correctly but segfault afterwards... --- 42sh/Makefile | 3 +- 42sh/includes/lexer.h | 13 ++--- 42sh/libft | 2 +- 42sh/src/lexer/command_getoutput.c | 2 +- 42sh/src/lexer/expand_bquotes.c | 79 ++++++++++++++++++++++++++++++ 42sh/src/lexer/reduce_bquotes.c | 57 --------------------- 42sh/src/lexer/token_expand_var.c | 29 ----------- 42sh/src/lexer/token_free.c | 9 ++-- 42sh/src/main/main.c | 36 ++++++++++++++ 42sh/src/main/shell_exit.c | 3 +- 10 files changed, 128 insertions(+), 105 deletions(-) create mode 100644 42sh/src/lexer/expand_bquotes.c delete mode 100644 42sh/src/lexer/reduce_bquotes.c delete mode 100644 42sh/src/lexer/token_expand_var.c diff --git a/42sh/Makefile b/42sh/Makefile index 4e41b851..5fa85765 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -137,6 +137,7 @@ job-control/sigtstp_handler.c\ job-control/sigttin_handler.c\ job-control/sigttou_handler.c\ lexer/command_getoutput.c\ +lexer/expand_bquotes.c\ lexer/get_state_global.c\ lexer/get_state_redir.c\ lexer/lexer_backslash.c\ @@ -157,12 +158,10 @@ lexer/lexer_paren.c\ lexer/lexer_quote.c\ lexer/lexer_sep.c\ lexer/lexer_word.c\ -lexer/reduce_bquotes.c\ lexer/reduce_parens.c\ lexer/stack_to_prompt.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\ diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 3385e5b8..3e9f37fd 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -30,14 +30,12 @@ # define TK_AMP (1 << 10) # define TK_PAREN_OPEN (1 << 11) # define TK_PAREN_CLOSE (1 << 12) -# define TK_BQUOTE (1 << 13) -# define TK_WORD (1 << 14) -# define TK_COMMAND (1 << 17) -# define TK_SUBSHELL (1 << 18) -# define TK_NEWLINE (1 << 19) +# define TK_WORD (1 << 13) +# define TK_COMMAND (1 << 14) +# define TK_SUBSHELL (1 << 15) +# define TK_NEWLINE (1 << 16) # define TK_REDIR (0x1 | 0x2 | 0x4 | 0x8 | 0x10 | 0x20) -# define TK_NON_FREEABLE (TK_BQUOTE) enum e_lexstate { @@ -89,10 +87,9 @@ int token_append(t_token *token, t_lexer *lexer, void token_free(void *data, size_t size); int token_cmp_type(t_token *token, t_type *ref); void token_print(t_list *lst); -void token_expand_var(t_token *token); int reduce_parens(t_list **alst, char *str); -int reduce_bquotes(t_list **alst, char **str); +int expand_bquotes(t_list **alst); char *command_getoutput(char *command); int ft_is_delim(char c); diff --git a/42sh/libft b/42sh/libft index acd7e54f..d0ac53c6 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit acd7e54fb8045b3958dd239d469f1476404468b7 +Subproject commit d0ac53c68648106b8bafcc5ee8334306f6b0bc7e diff --git a/42sh/src/lexer/command_getoutput.c b/42sh/src/lexer/command_getoutput.c index 7dbd1c46..114216c8 100644 --- a/42sh/src/lexer/command_getoutput.c +++ b/42sh/src/lexer/command_getoutput.c @@ -34,7 +34,7 @@ char *command_getoutput(char *command) ast = btree_create_node(&item, sizeof(item)); pipe(fds); exec->process.fdout = fds[PIPE_WRITE]; - ft_exec(&ast); + exec_command(&ast); exec->process.fdout = STDOUT; close(fds[PIPE_WRITE]); while ((ret = read(fds[PIPE_READ], buf, BUF_SIZE))) diff --git a/42sh/src/lexer/expand_bquotes.c b/42sh/src/lexer/expand_bquotes.c new file mode 100644 index 00000000..9336761e --- /dev/null +++ b/42sh/src/lexer/expand_bquotes.c @@ -0,0 +1,79 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* expand_bquotes.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/01/11 16:46:27 by jhalford #+# #+# */ +/* Updated: 2017/02/09 20:45:08 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "lexer.h" + +int expand_bquotes(t_list **alst) +{ + t_list *new_word; + t_list *after_word; + t_list *cur_word; + t_list *lst; + t_token *token; + t_token token_buf; + char *word; + char *output; + char *bq_start; + char *bq_end; + char *after_bq; + char **str; + t_flag tk; + + tk = TK_WORD; + cur_word = *alst; + while (cur_word && (lst = ft_lst_find(cur_word, &tk, token_cmp_type))) + { + cur_word = lst; + after_word = cur_word->next; + token = cur_word->content; + str = &token->data; + DG("found word=[%s]", *str); + if (!(bq_start = ft_strchr(*str, '`'))) + { + cur_word = cur_word->next; + continue ; + } + if (!(bq_end = ft_strchr(bq_start + 1, '`'))) + { + ft_dprintf(2, "{red}%s: parse error near '`'{eoc}\n", SHELL_NAME); + return (-1); + } + *bq_end = 0; + after_bq = ft_strdup(bq_end + 1); + output = command_getoutput(bq_start + 1); + word = ft_strtok(output, " \n\t"); + DG("strtok=[%s]", word); + DG("first_tok was [%s]", *str); + *bq_start = 0; + ft_strappend(str, word); + DG("first_tok=[%s]", *str); + while ((word = ft_strtok(NULL, " \n\t"))) + { + DG("strtok=[%s]", word); + token_buf.data = ft_strdup(word); + token_buf.type = TK_WORD; + new_word = ft_lstnew(&token_buf, sizeof(token_buf)); + cur_word->next = new_word; + new_word->next = after_word; + cur_word = new_word; + } + token = new_word->content; + ft_strappend(&token->data, after_bq); + ft_strdel(&after_bq); + ft_strdel(&output); + cur_word = after_word; + } + token_print(*alst); + DG("check end"); + return (0); +} + diff --git a/42sh/src/lexer/reduce_bquotes.c b/42sh/src/lexer/reduce_bquotes.c deleted file mode 100644 index f7c416de..00000000 --- a/42sh/src/lexer/reduce_bquotes.c +++ /dev/null @@ -1,57 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* reduce_bquotes.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/11 16:46:27 by jhalford #+# #+# */ -/* Updated: 2017/02/09 20:45:08 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "lexer.h" - -int reduce_bquotes(t_list **alst, char **str) -{ - t_list *start; - t_list **end; - t_token *token; - int tk; - char *new; - char *fit; - char *bq_start; - char *bq_end; - t_lexer lexer; - - tk = TK_BQUOTE; - if ((start = ft_lst_find(*alst, &tk, token_cmp_type))) - { - end = &start->next; - while (end && *end) - { - token = (*end)->content; - if (token->type == TK_BQUOTE) - break ; - end = &(*end)->next; - } - if (!*end) - return (-1); - bq_start = ((t_token*)start->content)->data; - bq_end = ((t_token*)(*end)->content)->data; - ft_lstdel(end, token_free); - fit = command_getoutput(ft_strbetween(bq_start + 1, bq_end)); - new = ft_strreplace(str, bq_start, bq_end, fit); - ft_strdel(str); - *str = new; - ft_lstdel(alst, token_free); - - lexer.pos = 0; - lexer.str = *str; - lexer.state = DEFAULT; - lexer_lex(alst, &lexer); - return (1); - } - return (0); -} - diff --git a/42sh/src/lexer/token_expand_var.c b/42sh/src/lexer/token_expand_var.c deleted file mode 100644 index 689dcb60..00000000 --- a/42sh/src/lexer/token_expand_var.c +++ /dev/null @@ -1,29 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* token_expand_var.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/10 14:57:53 by jhalford #+# #+# */ -/* Updated: 2017/02/07 13:16:04 by wescande ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "lexer.h" -/* -void token_expand_var(t_token *token) -{ - char *dollar; - char *val; - - dollar = ft_strchr(token->data, '$'); - if (!dollar[1]) - return ; - val = ft_getenv(data_singleton()->env, dollar + 1); - *dollar = 0; - if (val) - while (*val) - token_append(token, *val++, 1, 1); -} -*/ diff --git a/42sh/src/lexer/token_free.c b/42sh/src/lexer/token_free.c index a807db59..651b3611 100644 --- a/42sh/src/lexer/token_free.c +++ b/42sh/src/lexer/token_free.c @@ -18,11 +18,8 @@ void token_free(void *data, size_t size) (void)size; token = data; - if (!(token->type & TK_NON_FREEABLE)) - { - ft_strdel(&token->data); - ft_memdel((void **)&token->esc); - ft_memdel((void **)&token->esc2); - } + ft_strdel(&token->data); + ft_memdel((void **)&token->esc); + ft_memdel((void **)&token->esc2); free(token); } diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 3160048d..eeaf7f45 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -12,6 +12,35 @@ #include "minishell.h" +int non_interactive_shell(char *command) +{ + t_list *token; + t_lexer lexer; + t_btree *ast; + + lexer.pos = 0; + lexer.state = DEFAULT; + lexer.str = command; + lexer.stack = NULL; + token = NULL; + ast = NULL; + while (lexer.str[lexer.pos]) + { + if (lexer.stack && *(int*)lexer.stack->content == BACKSLASH) + pop(&lexer.stack); + do { + lexer_lex(&token, &lexer); + } while (lexer.str[lexer.pos] == '\n'); + if (expand_bquotes(&token)) + return (1); + token_print(token); + if (ft_parse(&ast, &token)) + return (1); + if (ft_exec(&ast)) + return (1); + } + return (0); +} int interactive_shell() { t_list *token; @@ -34,6 +63,11 @@ int interactive_shell() DG("[{mag}%s{eoc}] stack=[%i] state=[%i]", lexer.str, lexer.stack ? *(int*)lexer.stack->content : 0, lexer.state); token_print(token); } while (lexer.stack); + if (expand_bquotes(&token)) + return (1); + DG("check main 0"); + token_print(token); + DG("check main 1"); if (ft_parse(&ast, &token)) return (1); btree_print(STDBUG, ast, &ft_putast); @@ -55,5 +89,7 @@ int main(int ac, char **av) while (1) interactive_shell(); } + else + non_interactive_shell(shell_get_avdata()); return (0); } diff --git a/42sh/src/main/shell_exit.c b/42sh/src/main/shell_exit.c index 0983fa88..658ae832 100644 --- a/42sh/src/main/shell_exit.c +++ b/42sh/src/main/shell_exit.c @@ -16,6 +16,7 @@ void shell_exit(void) { DG("shell_exit()"); data_exit(); - job_kill_all(); + if (SH_HAS_JOBC(data_singleton()->opts)) + job_kill_all(); tcsetattr(STDIN, TCSANOW, &data_singleton()->jobc.shell_tmodes); } From 4840051dbd814b930c7abe2d20bd73f672ce159c Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Mon, 13 Feb 2017 17:46:56 +0100 Subject: [PATCH 56/98] backquote expansion checks for splitting --- 42sh/Makefile | 2 +- 42sh/src/glob/lib_perso/ft_memrealloc.c | 4 +-- 42sh/src/lexer/expand_bquotes.c | 38 +++++++++++++++---------- 42sh/src/lexer/lexer_bquote.c | 5 +++- 42sh/src/lexer/lexer_delim.c | 1 - 42sh/src/main/main.c | 2 +- 6 files changed, 31 insertions(+), 21 deletions(-) diff --git a/42sh/Makefile b/42sh/Makefile index 5fa85765..860d0f28 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -246,7 +246,7 @@ $(OBJ_DIR)%.o : $(SRC_DIR)%.c | $(OBJ_DIR) @$(eval COLOR=$(shell echo $$(($(PERCENT)%35+196)))) @$(eval TO_DO=$(shell echo $$((20-$(INDEX)*20/$(NB))))) @printf "\r\e[38;5;11m⌛ MAKE %10.10s : %2d%% \e[48;5;%dm%*s\e[0m%*s\e[48;5;255m \e[0m \e[38;5;11m %*s\e[0m\e[K" $(NAME) $(PERCENT) $(COLOR) $(DONE) "" $(TO_DO) "" $(DELTA) "$@" - @$(CC) $(FLAGS) -MMD -c $< -o $@\ + @$(CC) $(FLAGS) $(D_FLAGS) -MMD -c $< -o $@\ -I $(INC_DIR)\ -I $(LIBFT_INC) @$(eval INDEX=$(shell echo $$(($(INDEX)+1)))) diff --git a/42sh/src/glob/lib_perso/ft_memrealloc.c b/42sh/src/glob/lib_perso/ft_memrealloc.c index 4f3c6125..2ea59d78 100644 --- a/42sh/src/glob/lib_perso/ft_memrealloc.c +++ b/42sh/src/glob/lib_perso/ft_memrealloc.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ft_memrealloc.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: wescande +#+ +:+ +#+ */ +/* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/05 13:44:36 by wescande #+# #+# */ -/* Updated: 2017/02/10 12:13:23 by gwojda ### ########.fr */ +/* Updated: 2017/02/09 17:01:01 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/expand_bquotes.c b/42sh/src/lexer/expand_bquotes.c index 9336761e..92d65856 100644 --- a/42sh/src/lexer/expand_bquotes.c +++ b/42sh/src/lexer/expand_bquotes.c @@ -19,13 +19,16 @@ int expand_bquotes(t_list **alst) t_list *cur_word; t_list *lst; t_token *token; - t_token token_buf; + t_token *token_buf; char *word; + char *ifs; char *output; + char *last_char; char *bq_start; char *bq_end; char *after_bq; char **str; + t_lexer lexer; t_flag tk; tk = TK_WORD; @@ -36,7 +39,6 @@ int expand_bquotes(t_list **alst) after_word = cur_word->next; token = cur_word->content; str = &token->data; - DG("found word=[%s]", *str); if (!(bq_start = ft_strchr(*str, '`'))) { cur_word = cur_word->next; @@ -49,31 +51,37 @@ int expand_bquotes(t_list **alst) } *bq_end = 0; after_bq = ft_strdup(bq_end + 1); - output = command_getoutput(bq_start + 1); - word = ft_strtok(output, " \n\t"); - DG("strtok=[%s]", word); - DG("first_tok was [%s]", *str); + word = command_getoutput(bq_start + 1); + output = word; + last_char = word + ft_strlen(word) - 1; + while (*last_char == '\n') + *last_char++ = 0; + ifs = ft_getenv(data_singleton()->env, "IFS"); + if (ifs) + word = ft_strtok(word, ifs); *bq_start = 0; ft_strappend(str, word); - DG("first_tok=[%s]", *str); - while ((word = ft_strtok(NULL, " \n\t"))) + while (ifs && (lexer.str = ft_strtok(NULL, ifs))) { - DG("strtok=[%s]", word); - token_buf.data = ft_strdup(word); - token_buf.type = TK_WORD; - new_word = ft_lstnew(&token_buf, sizeof(token_buf)); + lexer.pos = 0; + token_buf = token_init(); + token_buf->type = TK_WORD; + while (lexer.str[lexer.pos]) + { + token_append(token_buf, &lexer, 0, 0); + lexer.pos++; + } + new_word = ft_lstnew(token_buf, sizeof(*token_buf)); cur_word->next = new_word; new_word->next = after_word; cur_word = new_word; } - token = new_word->content; + token = cur_word->content; ft_strappend(&token->data, after_bq); ft_strdel(&after_bq); ft_strdel(&output); cur_word = after_word; } - token_print(*alst); - DG("check end"); return (0); } diff --git a/42sh/src/lexer/lexer_bquote.c b/42sh/src/lexer/lexer_bquote.c index 0f961942..e5e468dd 100644 --- a/42sh/src/lexer/lexer_bquote.c +++ b/42sh/src/lexer/lexer_bquote.c @@ -19,7 +19,10 @@ int lexer_bquote(t_list **alst, t_lexer *lexer) token = (*alst)->content; token->type = TK_WORD; - token_append(token, lexer, 0, 0); + if (lexer->state == DQUOTE_BQUOTE) + token_append(token, lexer, 1, 1); + else + token_append(token, lexer, 0, 0); if (lexer->str[lexer->pos] == '`') { lexer->pos++; diff --git a/42sh/src/lexer/lexer_delim.c b/42sh/src/lexer/lexer_delim.c index a30dd955..d4571deb 100644 --- a/42sh/src/lexer/lexer_delim.c +++ b/42sh/src/lexer/lexer_delim.c @@ -17,7 +17,6 @@ int lexer_delim(t_list **alst, t_lexer *lexer) t_token *token; token = (*alst)->content; - DG("DELIM"); while (ft_is_delim(lexer->str[lexer->pos])) lexer->pos++; lexer->state = DEFAULT; diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index eeaf7f45..7fa3ae46 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -67,9 +67,9 @@ int interactive_shell() return (1); DG("check main 0"); token_print(token); - DG("check main 1"); if (ft_parse(&ast, &token)) return (1); + DG("check main 1"); btree_print(STDBUG, ast, &ft_putast); if (ft_exec(&ast)) return (1); From be6be17f2a8979f4a2398145498dcb209fc79b9b Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 14 Feb 2017 00:42:22 +0100 Subject: [PATCH 57/98] bquotes expansion refactoring for future norm checks; still need to preventh field splitting for dquoted bquotes; also need to fuse bquote expansion into the globbing module --- 42sh/includes/lexer.h | 6 +- 42sh/libft | 2 +- 42sh/src/builtin/builtin_cd.c | 4 +- 42sh/src/lexer/expand_bquotes.c | 99 +++++++++++++++++--------------- 42sh/src/lexer/lexer_end.c | 7 ++- 42sh/src/lexer/token_append.c | 21 ++++++- 42sh/src/line-editing/readline.c | 11 ---- 42sh/src/main/main.c | 8 +-- 8 files changed, 86 insertions(+), 72 deletions(-) diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 3e9f37fd..687203de 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -84,12 +84,16 @@ int ft_post_tokenize(t_list **alst, char **str); t_token *token_init(); int token_append(t_token *token, t_lexer *lexer, short int esc, short int esc2); +int token_append_char(t_token *token, char c, + short int esc, short int esc2); +int token_append_str(t_token *token, char *str, + short int esc, short int esc2); void token_free(void *data, size_t size); int token_cmp_type(t_token *token, t_type *ref); void token_print(t_list *lst); int reduce_parens(t_list **alst, char *str); -int expand_bquotes(t_list **alst); +int bquotes_expand(t_list **alst); char *command_getoutput(char *command); int ft_is_delim(char c); diff --git a/42sh/libft b/42sh/libft index d0ac53c6..ec8cf4e2 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit d0ac53c68648106b8bafcc5ee8334306f6b0bc7e +Subproject commit ec8cf4e252fe22cdc0925b9f71df2d2f5e8931f6 diff --git a/42sh/src/builtin/builtin_cd.c b/42sh/src/builtin/builtin_cd.c index b973bf53..adb0c8f4 100644 --- a/42sh/src/builtin/builtin_cd.c +++ b/42sh/src/builtin/builtin_cd.c @@ -13,10 +13,10 @@ #include "builtin.h" #define CDOPT_L (1 << 0) -#define CDOPT_P (1 << 2) +#define CDOPT_P (1 << 1) #define HAS_CDOPT_P(x) (x & CD_OPT_P) #define HAS_CDOPT_L(x) (x & CD_OPT_L) -#define CDERR_1 "cd: no such file or directory: %s\n" +#define CDERR_1 "{red}cd: no such file or directory: %s{eoc}\n" static char *builtin_cd_special(char *const av[], char *const env[]) { diff --git a/42sh/src/lexer/expand_bquotes.c b/42sh/src/lexer/expand_bquotes.c index 92d65856..e76391cf 100644 --- a/42sh/src/lexer/expand_bquotes.c +++ b/42sh/src/lexer/expand_bquotes.c @@ -12,75 +12,80 @@ #include "lexer.h" -int expand_bquotes(t_list **alst) +int bquotes_insert_words(t_list *cur_word, char *word, char *after_bq) { + char *ifs; t_list *new_word; t_list *after_word; - t_list *cur_word; - t_list *lst; t_token *token; - t_token *token_buf; - char *word; - char *ifs; + + after_word = cur_word->next; + ifs = ft_getenv(data_singleton()->env, "IFS"); + if (ifs) + word = ft_strtok(word, ifs); + token = cur_word->content; + token_append_str(token, word, 0, 0); + if (ifs) + while ((word = ft_strtok(NULL, ifs))) + { + token = token_init(); + token->type = TK_WORD; + token_append_str(token, word, 0, 0); + new_word = ft_lstnew(token, sizeof(*token)); + cur_word->next = new_word; + new_word->next = after_word; + cur_word = new_word; + } + token = cur_word->content; + ft_strappend(&token->data, after_bq); + return (0); +} + +int bquotes_substitute(t_list *cur_word, char *bq_start, char *bq_end) +{ char *output; char *last_char; + char *after_bq; + + *bq_start = 0; + *bq_end = 0; + output = command_getoutput(bq_start + 1); + after_bq = ft_strdup(bq_end + 1); + last_char = output + ft_strlen(output) - 1; + while (*last_char == '\n') + *last_char++ = 0; + bquotes_insert_words(cur_word, output, after_bq); + ft_strdel(&output); + ft_strdel(&after_bq); + return (0); +} + +int bquotes_expand(t_list **alst) +{ + t_list *cur_word; + t_list *lst; char *bq_start; char *bq_end; - char *after_bq; - char **str; - t_lexer lexer; t_flag tk; tk = TK_WORD; cur_word = *alst; - while (cur_word && (lst = ft_lst_find(cur_word, &tk, token_cmp_type))) + while ((lst = ft_lst_find(cur_word, &tk, token_cmp_type))) { cur_word = lst; - after_word = cur_word->next; - token = cur_word->content; - str = &token->data; - if (!(bq_start = ft_strchr(*str, '`'))) + if (!(bq_start = ft_strchr(((t_token*)cur_word->content)->data, '`'))) { cur_word = cur_word->next; - continue ; + return (0); } if (!(bq_end = ft_strchr(bq_start + 1, '`'))) { ft_dprintf(2, "{red}%s: parse error near '`'{eoc}\n", SHELL_NAME); return (-1); } - *bq_end = 0; - after_bq = ft_strdup(bq_end + 1); - word = command_getoutput(bq_start + 1); - output = word; - last_char = word + ft_strlen(word) - 1; - while (*last_char == '\n') - *last_char++ = 0; - ifs = ft_getenv(data_singleton()->env, "IFS"); - if (ifs) - word = ft_strtok(word, ifs); - *bq_start = 0; - ft_strappend(str, word); - while (ifs && (lexer.str = ft_strtok(NULL, ifs))) - { - lexer.pos = 0; - token_buf = token_init(); - token_buf->type = TK_WORD; - while (lexer.str[lexer.pos]) - { - token_append(token_buf, &lexer, 0, 0); - lexer.pos++; - } - new_word = ft_lstnew(token_buf, sizeof(*token_buf)); - cur_word->next = new_word; - new_word->next = after_word; - cur_word = new_word; - } - token = cur_word->content; - ft_strappend(&token->data, after_bq); - ft_strdel(&after_bq); - ft_strdel(&output); - cur_word = after_word; + if (bquotes_substitute(cur_word, bq_start, bq_end)) + return (-1); + cur_word = lst; } return (0); } diff --git a/42sh/src/lexer/lexer_end.c b/42sh/src/lexer/lexer_end.c index f635cb3d..f7650e81 100644 --- a/42sh/src/lexer/lexer_end.c +++ b/42sh/src/lexer/lexer_end.c @@ -4,11 +4,12 @@ int lexer_end(t_list **alst, t_lexer *lexer) { t_token *token; - token = (*alst)->content; - if (lexer->state == QUOTE + DG("check"); + if (*alst && (lexer->state == QUOTE || lexer->state == DQUOTE - || lexer->state == BQUOTE) + || lexer->state == BQUOTE)) { + token = (*alst)->content; ft_strappend(&lexer->str, (char[]){'\n', 0}); token_append(token, lexer, 1, 0); lexer->pos++; diff --git a/42sh/src/lexer/token_append.c b/42sh/src/lexer/token_append.c index 1b82a8d3..4917e23d 100644 --- a/42sh/src/lexer/token_append.c +++ b/42sh/src/lexer/token_append.c @@ -12,12 +12,12 @@ #include "lexer.h" -int token_append(t_token *token, t_lexer *lexer, short int esc, short int esc2) + +int token_append_char(t_token *token, char c, + short int esc, short int esc2) { int len; - char c; - c = lexer->str[lexer->pos]; len = ft_strlen(token->data); if (len >= token->size) { @@ -37,3 +37,18 @@ int token_append(t_token *token, t_lexer *lexer, short int esc, short int esc2) token->esc2[len >> 3] |= esc2 << (7 - len % 8); return (0); } + +int token_append_str(t_token *token, char *str, + short int esc, short int esc2) +{ + while (*str) + if (token_append_char(token, *str++, esc, esc2)) + return (1); + return (0); +} + +int token_append(t_token *token, t_lexer *lexer, + short int esc, short int esc2) +{ + return (token_append_char(token, lexer->str[lexer->pos], esc, esc2)); +} diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index ba2e6498..bce462e1 100644 --- a/42sh/src/line-editing/readline.c +++ b/42sh/src/line-editing/readline.c @@ -85,18 +85,7 @@ char *readline(char *prompt) readline_init(prompt); input = ft_read_stdin(); ft_putchar('\n'); - /* ft_check_line(); */ - /* ft_check_heredoc(&STR); */ if (tcsetattr(0, TCSANOW, ft_save_termios(0)) == -1) return (NULL); return (input); - - /* ft_history_parsing(); */ - /* if (STR && (!data_singleton()->line.list_beg || */ - /* ft_strcmp(data_singleton()->line.list_beg->prev->str, STR))) */ - /* { */ - /* ft_push_back_history(&data_singleton()->line.list_beg, */ - /* ft_create_history_list(STR)); */ - /* ft_add_in_history_file(STR); */ - /* } */ } diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 7fa3ae46..29497659 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -31,7 +31,7 @@ int non_interactive_shell(char *command) do { lexer_lex(&token, &lexer); } while (lexer.str[lexer.pos] == '\n'); - if (expand_bquotes(&token)) + if (bquotes_expand(&token)) return (1); token_print(token); if (ft_parse(&ast, &token)) @@ -63,13 +63,13 @@ int interactive_shell() DG("[{mag}%s{eoc}] stack=[%i] state=[%i]", lexer.str, lexer.stack ? *(int*)lexer.stack->content : 0, lexer.state); token_print(token); } while (lexer.stack); - if (expand_bquotes(&token)) + if (!token) + return (0); + if (bquotes_expand(&token)) return (1); - DG("check main 0"); token_print(token); if (ft_parse(&ast, &token)) return (1); - DG("check main 1"); btree_print(STDBUG, ast, &ft_putast); if (ft_exec(&ast)) return (1); From 75c11ff4a6131cd154fd46425b4ad187a9221df1 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 14 Feb 2017 14:54:01 +0100 Subject: [PATCH 58/98] first batch of fixes on lexer and bquote expansion --- 42sh/src/lexer/expand_bquotes.c | 15 ++++++++++----- 42sh/src/lexer/lexer_backslash.c | 7 ++++++- 42sh/src/lexer/lexer_dquote.c | 3 --- 42sh/src/lexer/lexer_number.c | 3 +++ 42sh/src/main/main.c | 8 +++++--- 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/42sh/src/lexer/expand_bquotes.c b/42sh/src/lexer/expand_bquotes.c index e76391cf..73d70160 100644 --- a/42sh/src/lexer/expand_bquotes.c +++ b/42sh/src/lexer/expand_bquotes.c @@ -49,12 +49,15 @@ int bquotes_substitute(t_list *cur_word, char *bq_start, char *bq_end) *bq_start = 0; *bq_end = 0; - output = command_getoutput(bq_start + 1); + if ((output = command_getoutput(bq_start + 1))) + { + last_char = output + ft_strlen(output) - 1; + while (*last_char == '\n') + *last_char++ = 0; + } + DG("output = [%s]", output); after_bq = ft_strdup(bq_end + 1); - last_char = output + ft_strlen(output) - 1; - while (*last_char == '\n') - *last_char++ = 0; - bquotes_insert_words(cur_word, output, after_bq); + bquotes_insert_words(cur_word, output ? output : "", after_bq); ft_strdel(&output); ft_strdel(&after_bq); return (0); @@ -85,6 +88,8 @@ int bquotes_expand(t_list **alst) } if (bquotes_substitute(cur_word, bq_start, bq_end)) return (-1); + if (!(*((t_token*)cur_word->content)->data)) + ft_lst_delif(alst, cur_word->content, ft_addrcmp, token_free); cur_word = lst; } return (0); diff --git a/42sh/src/lexer/lexer_backslash.c b/42sh/src/lexer/lexer_backslash.c index a2f02f7c..6cf7adf0 100644 --- a/42sh/src/lexer/lexer_backslash.c +++ b/42sh/src/lexer/lexer_backslash.c @@ -19,8 +19,13 @@ int lexer_backslash(t_list **alst, t_lexer *lexer) token = (*alst)->content; token->type = TK_WORD; lexer->pos++; + lexer->state = WORD; + if (lexer->str[lexer->pos] == 0) + { + push(&lexer->stack, BACKSLASH); + return (0); + } token_append(token, lexer, 1, 1); lexer->pos++; - lexer->state = WORD; return (lexer_lex(alst, lexer)); } diff --git a/42sh/src/lexer/lexer_dquote.c b/42sh/src/lexer/lexer_dquote.c index 1de82507..5dd9ccab 100644 --- a/42sh/src/lexer/lexer_dquote.c +++ b/42sh/src/lexer/lexer_dquote.c @@ -34,10 +34,7 @@ int lexer_dquote(t_list **alst, t_lexer *lexer) { lexer->pos++; if (lexer->str[lexer->pos] == 0) - { - push(&lexer->stack, BACKSLASH); return (0); - } else token_append(token, lexer, 1, 1); lexer->pos++; diff --git a/42sh/src/lexer/lexer_number.c b/42sh/src/lexer/lexer_number.c index b7519817..32a2852f 100644 --- a/42sh/src/lexer/lexer_number.c +++ b/42sh/src/lexer/lexer_number.c @@ -19,7 +19,10 @@ int lexer_number(t_list **alst, t_lexer *lexer) token = (*alst)->content; if ((state = get_state_global(lexer))) + { + lexer->state = state; return (lexer_lex(alst, lexer)); + } else if ((state = get_state_redir(lexer))) { lexer->state = state; diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 29497659..7416749f 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -31,6 +31,8 @@ int non_interactive_shell(char *command) do { lexer_lex(&token, &lexer); } while (lexer.str[lexer.pos] == '\n'); + if (!token) + return (0); if (bquotes_expand(&token)) return (1); token_print(token); @@ -55,18 +57,18 @@ int interactive_shell() lexer.stack = NULL; ast = NULL; do { + ft_strappend(&lexer.str, readline(stack_to_prompt(lexer.stack))); if (lexer.stack && *(int*)lexer.stack->content == BACKSLASH) pop(&lexer.stack); - ft_strappend(&lexer.str, readline(stack_to_prompt(lexer.stack))); ltoken = ft_lstlast(token); lexer_lex((token ? <oken : &token), &lexer); DG("[{mag}%s{eoc}] stack=[%i] state=[%i]", lexer.str, lexer.stack ? *(int*)lexer.stack->content : 0, lexer.state); token_print(token); } while (lexer.stack); - if (!token) - return (0); if (bquotes_expand(&token)) return (1); + if (!token) + return (0); token_print(token); if (ft_parse(&ast, &token)) return (1); From 71f13249b8c92ce2d4e5bb7cd89d0b23e4336a4d Mon Sep 17 00:00:00 2001 From: gwojda Date: Tue, 14 Feb 2017 15:45:17 +0100 Subject: [PATCH 59/98] recollage de l'historique + control R + point d'exclamation. quelques fixes pour le prompt --- 42sh/Makefile | 38 ++++++----- 42sh/includes/ft_readline.h | 9 ++- 42sh/objs/builtin/bt_read_get.d | 8 +++ 42sh/objs/builtin/bt_read_get.o | Bin 0 -> 4032 bytes 42sh/objs/builtin/bt_read_parse.d | 8 +++ 42sh/objs/builtin/bt_read_parse.o | Bin 0 -> 5484 bytes 42sh/objs/builtin/bt_read_term.d | 8 +++ 42sh/objs/builtin/bt_read_term.o | Bin 0 -> 5092 bytes 42sh/objs/builtin/builtin_cd.d | 8 +++ 42sh/objs/builtin/builtin_cd.o | Bin 0 -> 5004 bytes 42sh/objs/builtin/builtin_echo.d | 8 +++ 42sh/objs/builtin/builtin_echo.o | Bin 0 -> 2684 bytes 42sh/objs/builtin/builtin_env.d | 8 +++ 42sh/objs/builtin/builtin_env.o | Bin 0 -> 2356 bytes 42sh/objs/builtin/builtin_exit.d | 8 +++ 42sh/objs/builtin/builtin_exit.o | Bin 0 -> 4564 bytes 42sh/objs/builtin/builtin_history.d | 8 +++ 42sh/objs/builtin/builtin_history.o | Bin 0 -> 3532 bytes 42sh/objs/builtin/builtin_read.d | 8 +++ 42sh/objs/builtin/builtin_read.o | Bin 0 -> 6972 bytes 42sh/objs/builtin/builtin_setenv.d | 8 +++ 42sh/objs/builtin/builtin_setenv.o | Bin 0 -> 3304 bytes 42sh/objs/builtin/builtin_unsetenv.d | 8 +++ 42sh/objs/builtin/builtin_unsetenv.o | Bin 0 -> 2816 bytes 42sh/objs/builtin/is_builtin.d | 8 +++ 42sh/objs/builtin/is_builtin.o | Bin 0 -> 5024 bytes 42sh/objs/completion/c_binary.d | 8 +++ 42sh/objs/completion/c_binary.o | Bin 0 -> 6820 bytes 42sh/objs/completion/c_clear.d | 8 +++ 42sh/objs/completion/c_clear.o | Bin 0 -> 7380 bytes 42sh/objs/completion/c_files.d | 8 +++ 42sh/objs/completion/c_files.o | Bin 0 -> 7588 bytes 42sh/objs/completion/c_init.d | 8 +++ 42sh/objs/completion/c_init.o | Bin 0 -> 8420 bytes 42sh/objs/completion/c_matching.d | 8 +++ 42sh/objs/completion/c_matching.o | Bin 0 -> 6368 bytes 42sh/objs/completion/c_output.d | 8 +++ 42sh/objs/completion/c_output.o | Bin 0 -> 4480 bytes 42sh/objs/completion/c_parser.d | 8 +++ 42sh/objs/completion/c_parser.o | Bin 0 -> 6400 bytes 42sh/objs/completion/c_pathsolver.d | 8 +++ 42sh/objs/completion/c_pathsolver.o | Bin 0 -> 8912 bytes 42sh/objs/completion/c_printer.d | 8 +++ 42sh/objs/completion/c_printer.o | Bin 0 -> 5144 bytes 42sh/objs/completion/c_sizing.d | 8 +++ 42sh/objs/completion/c_sizing.o | Bin 0 -> 4088 bytes 42sh/objs/completion/c_terminal.d | 8 +++ 42sh/objs/completion/c_terminal.o | Bin 0 -> 4092 bytes 42sh/objs/completion/completion.d | 8 +++ 42sh/objs/completion/completion.o | Bin 0 -> 8396 bytes 42sh/objs/exec/ast_free.d | 8 +++ 42sh/objs/exec/ast_free.o | Bin 0 -> 3976 bytes 42sh/objs/exec/bad_fd.d | 8 +++ 42sh/objs/exec/bad_fd.o | Bin 0 -> 2432 bytes 42sh/objs/exec/exec_ampersand.d | 8 +++ 42sh/objs/exec/exec_ampersand.o | Bin 0 -> 3148 bytes 42sh/objs/exec/exec_and_if.d | 8 +++ 42sh/objs/exec/exec_and_if.o | Bin 0 -> 7796 bytes 42sh/objs/exec/exec_command.d | 8 +++ 42sh/objs/exec/exec_command.o | Bin 0 -> 6984 bytes 42sh/objs/exec/exec_or_if.d | 8 +++ 42sh/objs/exec/exec_or_if.o | Bin 0 -> 7792 bytes 42sh/objs/exec/exec_pipe.d | 8 +++ 42sh/objs/exec/exec_pipe.o | Bin 0 -> 7424 bytes 42sh/objs/exec/exec_redir.d | 8 +++ 42sh/objs/exec/exec_redir.o | Bin 0 -> 4988 bytes 42sh/objs/exec/exec_semi.d | 8 +++ 42sh/objs/exec/exec_semi.o | Bin 0 -> 2932 bytes 42sh/objs/exec/fd_is_valid.d | 8 +++ 42sh/objs/exec/fd_is_valid.o | Bin 0 -> 2356 bytes 42sh/objs/exec/ft_exec.d | 8 +++ 42sh/objs/exec/ft_exec.o | Bin 0 -> 4844 bytes 42sh/objs/exec/ft_findexec.d | 8 +++ 42sh/objs/exec/ft_findexec.o | Bin 0 -> 4748 bytes 42sh/objs/exec/launch_process.d | 8 +++ 42sh/objs/exec/launch_process.o | Bin 0 -> 6120 bytes 42sh/objs/exec/process_redirect.d | 8 +++ 42sh/objs/exec/process_redirect.o | Bin 0 -> 5268 bytes 42sh/objs/exec/process_reset.d | 8 +++ 42sh/objs/exec/process_reset.o | Bin 0 -> 3648 bytes 42sh/objs/exec/process_resetfds.d | 8 +++ 42sh/objs/exec/process_resetfds.o | Bin 0 -> 4676 bytes 42sh/objs/exec/process_setexec.d | 8 +++ 42sh/objs/exec/process_setexec.o | Bin 0 -> 4544 bytes 42sh/objs/exec/process_setgroup.d | 8 +++ 42sh/objs/exec/process_setgroup.o | Bin 0 -> 6556 bytes 42sh/objs/exec/process_setsig.d | 8 +++ 42sh/objs/exec/process_setsig.o | Bin 0 -> 2392 bytes 42sh/objs/exec/redirect_dgreat.d | 8 +++ 42sh/objs/exec/redirect_dgreat.o | Bin 0 -> 3400 bytes 42sh/objs/exec/redirect_great.d | 8 +++ 42sh/objs/exec/redirect_great.o | Bin 0 -> 3392 bytes 42sh/objs/exec/redirect_greatand.d | 8 +++ 42sh/objs/exec/redirect_greatand.o | Bin 0 -> 3300 bytes 42sh/objs/exec/redirect_less.d | 8 +++ 42sh/objs/exec/redirect_less.o | Bin 0 -> 3272 bytes 42sh/objs/exec/redirect_lessand.d | 8 +++ 42sh/objs/exec/redirect_lessand.o | Bin 0 -> 3328 bytes 42sh/objs/exec/set_exitstatus.d | 8 +++ 42sh/objs/exec/set_exitstatus.o | Bin 0 -> 3348 bytes 42sh/objs/glob/dir_glob.d | 8 +++ 42sh/objs/glob/dir_glob.o | Bin 0 -> 8252 bytes 42sh/objs/glob/expand_brace.d | 8 +++ 42sh/objs/glob/expand_brace.o | Bin 0 -> 8452 bytes 42sh/objs/glob/expand_esc.d | 8 +++ 42sh/objs/glob/expand_esc.o | Bin 0 -> 4608 bytes 42sh/objs/glob/expand_var.d | 8 +++ 42sh/objs/glob/expand_var.o | Bin 0 -> 5912 bytes 42sh/objs/glob/ft_strsplit_esc.d | 8 +++ 42sh/objs/glob/ft_strsplit_esc.o | Bin 0 -> 5012 bytes 42sh/objs/glob/ft_strsplit_spe.d | 8 +++ 42sh/objs/glob/ft_strsplit_spe.o | Bin 0 -> 4992 bytes 42sh/objs/glob/glob.d | 8 +++ 42sh/objs/glob/glob.o | Bin 0 -> 4752 bytes 42sh/objs/glob/is_char_esc.d | 8 +++ 42sh/objs/glob/is_char_esc.o | Bin 0 -> 4672 bytes 42sh/objs/glob/lib_perso/ft_ld_back.d | 8 +++ 42sh/objs/glob/lib_perso/ft_ld_back.o | Bin 0 -> 2512 bytes 42sh/objs/glob/lib_perso/ft_ld_clear.d | 8 +++ 42sh/objs/glob/lib_perso/ft_ld_clear.o | Bin 0 -> 2680 bytes 42sh/objs/glob/lib_perso/ft_ld_del.d | 8 +++ 42sh/objs/glob/lib_perso/ft_ld_del.o | Bin 0 -> 2880 bytes 42sh/objs/glob/lib_perso/ft_ld_front.d | 8 +++ 42sh/objs/glob/lib_perso/ft_ld_front.o | Bin 0 -> 2512 bytes 42sh/objs/glob/lib_perso/ft_ld_new.d | 8 +++ 42sh/objs/glob/lib_perso/ft_ld_new.o | Bin 0 -> 2628 bytes 42sh/objs/glob/lib_perso/ft_ld_order.d | 8 +++ 42sh/objs/glob/lib_perso/ft_ld_order.o | Bin 0 -> 3136 bytes 42sh/objs/glob/lib_perso/ft_ld_pushback.d | 8 +++ 42sh/objs/glob/lib_perso/ft_ld_pushback.o | Bin 0 -> 2840 bytes 42sh/objs/glob/lib_perso/ft_ld_pushfront.d | 9 +++ 42sh/objs/glob/lib_perso/ft_ld_pushfront.o | Bin 0 -> 2876 bytes 42sh/objs/glob/lib_perso/ft_ld_reverse.d | 8 +++ 42sh/objs/glob/lib_perso/ft_ld_reverse.o | Bin 0 -> 2740 bytes 42sh/objs/glob/lib_perso/ft_ld_size.d | 8 +++ 42sh/objs/glob/lib_perso/ft_ld_size.o | Bin 0 -> 2840 bytes 42sh/objs/glob/lib_perso/ft_ld_swap.d | 8 +++ 42sh/objs/glob/lib_perso/ft_ld_swap.o | Bin 0 -> 2788 bytes 42sh/objs/glob/lib_perso/ft_ld_to_tab.d | 8 +++ 42sh/objs/glob/lib_perso/ft_ld_to_tab.o | Bin 0 -> 3004 bytes 42sh/objs/glob/lib_perso/ft_memrealloc.d | 8 +++ 42sh/objs/glob/lib_perso/ft_memrealloc.o | Bin 0 -> 2872 bytes 42sh/objs/glob/lib_perso/ft_strjoinf.d | 8 +++ 42sh/objs/glob/lib_perso/ft_strjoinf.o | Bin 0 -> 2608 bytes 42sh/objs/glob/lib_perso/ft_strsubf.d | 8 +++ 42sh/objs/glob/lib_perso/ft_strsubf.o | Bin 0 -> 2892 bytes 42sh/objs/glob/lib_perso/ft_tabdel.d | 8 +++ 42sh/objs/glob/lib_perso/ft_tabdel.o | Bin 0 -> 2616 bytes 42sh/objs/glob/lib_perso/ft_tablen.d | 5 ++ 42sh/objs/glob/lib_perso/ft_tablen.o | Bin 0 -> 2448 bytes 42sh/objs/glob/match_pattern.d | 8 +++ 42sh/objs/glob/match_pattern.o | Bin 0 -> 7088 bytes 42sh/objs/job-control/builtin_bg.d | 8 +++ 42sh/objs/job-control/builtin_bg.o | Bin 0 -> 4880 bytes 42sh/objs/job-control/builtin_fg.d | 8 +++ 42sh/objs/job-control/builtin_fg.o | Bin 0 -> 4880 bytes 42sh/objs/job-control/builtin_jobs.d | 8 +++ 42sh/objs/job-control/builtin_jobs.o | Bin 0 -> 6632 bytes 42sh/objs/job-control/do_job_notification.d | 9 +++ 42sh/objs/job-control/do_job_notification.o | Bin 0 -> 4656 bytes 42sh/objs/job-control/job_addprocess.d | 8 +++ 42sh/objs/job-control/job_addprocess.o | Bin 0 -> 5116 bytes 42sh/objs/job-control/job_cmp_id.d | 8 +++ 42sh/objs/job-control/job_cmp_id.o | Bin 0 -> 3784 bytes 42sh/objs/job-control/job_format.d | 8 +++ 42sh/objs/job-control/job_format.o | Bin 0 -> 4004 bytes 42sh/objs/job-control/job_format_head.d | 8 +++ 42sh/objs/job-control/job_format_head.o | Bin 0 -> 4372 bytes 42sh/objs/job-control/job_free.d | 8 +++ 42sh/objs/job-control/job_free.o | Bin 0 -> 3944 bytes 42sh/objs/job-control/job_getprocess.d | 8 +++ 42sh/objs/job-control/job_getprocess.o | Bin 0 -> 4380 bytes 42sh/objs/job-control/job_getrank.d | 8 +++ 42sh/objs/job-control/job_getrank.o | Bin 0 -> 4412 bytes 42sh/objs/job-control/job_is_completed.d | 8 +++ 42sh/objs/job-control/job_is_completed.o | Bin 0 -> 4868 bytes 42sh/objs/job-control/job_is_stopped.d | 8 +++ 42sh/objs/job-control/job_is_stopped.o | Bin 0 -> 4868 bytes 42sh/objs/job-control/job_kill_all.d | 8 +++ 42sh/objs/job-control/job_kill_all.o | Bin 0 -> 4204 bytes 42sh/objs/job-control/job_notify_change.d | 8 +++ 42sh/objs/job-control/job_notify_change.o | Bin 0 -> 4268 bytes 42sh/objs/job-control/job_notify_new.d | 8 +++ 42sh/objs/job-control/job_notify_new.o | Bin 0 -> 4636 bytes 42sh/objs/job-control/job_remove.d | 8 +++ 42sh/objs/job-control/job_remove.o | Bin 0 -> 5084 bytes 42sh/objs/job-control/job_run.d | 8 +++ 42sh/objs/job-control/job_run.o | Bin 0 -> 4044 bytes 42sh/objs/job-control/job_update_id.d | 8 +++ 42sh/objs/job-control/job_update_id.o | Bin 0 -> 3980 bytes 42sh/objs/job-control/job_update_status.d | 8 +++ 42sh/objs/job-control/job_update_status.o | Bin 0 -> 2748 bytes 42sh/objs/job-control/job_wait.d | 8 +++ 42sh/objs/job-control/job_wait.o | Bin 0 -> 3328 bytes 42sh/objs/job-control/mark_job_as_running.d | 9 +++ 42sh/objs/job-control/mark_job_as_running.o | Bin 0 -> 4500 bytes 42sh/objs/job-control/process_cmp_pid.d | 8 +++ 42sh/objs/job-control/process_cmp_pid.o | Bin 0 -> 3588 bytes 42sh/objs/job-control/process_format.d | 8 +++ 42sh/objs/job-control/process_format.o | Bin 0 -> 6368 bytes 42sh/objs/job-control/process_free.d | 8 +++ 42sh/objs/job-control/process_free.o | Bin 0 -> 3860 bytes 42sh/objs/job-control/process_mark_status.d | 9 +++ 42sh/objs/job-control/process_mark_status.o | Bin 0 -> 4296 bytes 42sh/objs/job-control/put_job_in_background.d | 9 +++ 42sh/objs/job-control/put_job_in_background.o | Bin 0 -> 4232 bytes 42sh/objs/job-control/put_job_in_foreground.d | 9 +++ 42sh/objs/job-control/put_job_in_foreground.o | Bin 0 -> 4980 bytes 42sh/objs/job-control/sigchld_handler.d | 8 +++ 42sh/objs/job-control/sigchld_handler.o | Bin 0 -> 6144 bytes 42sh/objs/job-control/sigint_handler.d | 8 +++ 42sh/objs/job-control/sigint_handler.o | Bin 0 -> 2608 bytes 42sh/objs/job-control/sigtstp_handler.d | 8 +++ 42sh/objs/job-control/sigtstp_handler.o | Bin 0 -> 4308 bytes 42sh/objs/job-control/sigttin_handler.d | 8 +++ 42sh/objs/job-control/sigttin_handler.o | Bin 0 -> 2664 bytes 42sh/objs/job-control/sigttou_handler.d | 8 +++ 42sh/objs/job-control/sigttou_handler.o | Bin 0 -> 2680 bytes 42sh/objs/lexer/command_getoutput.d | 8 +++ 42sh/objs/lexer/command_getoutput.o | Bin 0 -> 6796 bytes 42sh/objs/lexer/expand_bquotes.d | 8 +++ 42sh/objs/lexer/expand_bquotes.o | Bin 0 -> 6440 bytes 42sh/objs/lexer/get_state_global.d | 8 +++ 42sh/objs/lexer/get_state_global.o | Bin 0 -> 3932 bytes 42sh/objs/lexer/get_state_redir.d | 8 +++ 42sh/objs/lexer/get_state_redir.o | Bin 0 -> 3508 bytes 42sh/objs/lexer/lexer_backslash.d | 8 +++ 42sh/objs/lexer/lexer_backslash.o | Bin 0 -> 4148 bytes 42sh/objs/lexer/lexer_bquote.d | 8 +++ 42sh/objs/lexer/lexer_bquote.o | Bin 0 -> 4776 bytes 42sh/objs/lexer/lexer_comment.d | 8 +++ 42sh/objs/lexer/lexer_comment.o | Bin 0 -> 3952 bytes 42sh/objs/lexer/lexer_default.d | 8 +++ 42sh/objs/lexer/lexer_default.o | Bin 0 -> 4260 bytes 42sh/objs/lexer/lexer_delim.d | 8 +++ 42sh/objs/lexer/lexer_delim.o | Bin 0 -> 4272 bytes 42sh/objs/lexer/lexer_dquote.d | 8 +++ 42sh/objs/lexer/lexer_dquote.o | Bin 0 -> 4716 bytes 42sh/objs/lexer/lexer_end.d | 8 +++ 42sh/objs/lexer/lexer_end.o | Bin 0 -> 4348 bytes 42sh/objs/lexer/lexer_great.d | 8 +++ 42sh/objs/lexer/lexer_great.o | Bin 0 -> 4448 bytes 42sh/objs/lexer/lexer_greatand.d | 8 +++ 42sh/objs/lexer/lexer_greatand.o | Bin 0 -> 4312 bytes 42sh/objs/lexer/lexer_less.d | 8 +++ 42sh/objs/lexer/lexer_less.o | Bin 0 -> 4448 bytes 42sh/objs/lexer/lexer_lessand.d | 8 +++ 42sh/objs/lexer/lexer_lessand.o | Bin 0 -> 4308 bytes 42sh/objs/lexer/lexer_lex.d | 8 +++ 42sh/objs/lexer/lexer_lex.o | Bin 0 -> 5456 bytes 42sh/objs/lexer/lexer_newline.d | 8 +++ 42sh/objs/lexer/lexer_newline.o | Bin 0 -> 4156 bytes 42sh/objs/lexer/lexer_number.d | 8 +++ 42sh/objs/lexer/lexer_number.o | Bin 0 -> 4384 bytes 42sh/objs/lexer/lexer_paren.d | 8 +++ 42sh/objs/lexer/lexer_paren.o | Bin 0 -> 4452 bytes 42sh/objs/lexer/lexer_quote.d | 8 +++ 42sh/objs/lexer/lexer_quote.o | Bin 0 -> 4324 bytes 42sh/objs/lexer/lexer_sep.d | 8 +++ 42sh/objs/lexer/lexer_sep.o | Bin 0 -> 4536 bytes 42sh/objs/lexer/lexer_word.d | 8 +++ 42sh/objs/lexer/lexer_word.o | Bin 0 -> 4252 bytes 42sh/objs/lexer/reduce_parens.d | 8 +++ 42sh/objs/lexer/reduce_parens.o | Bin 0 -> 4108 bytes 42sh/objs/lexer/stack_to_prompt.d | 8 +++ 42sh/objs/lexer/stack_to_prompt.o | Bin 0 -> 3752 bytes 42sh/objs/lexer/token_append.d | 8 +++ 42sh/objs/lexer/token_append.o | Bin 0 -> 5484 bytes 42sh/objs/lexer/token_cmp_type.d | 8 +++ 42sh/objs/lexer/token_cmp_type.o | Bin 0 -> 2792 bytes 42sh/objs/lexer/token_free.d | 8 +++ 42sh/objs/lexer/token_free.o | Bin 0 -> 3208 bytes 42sh/objs/lexer/token_init.d | 8 +++ 42sh/objs/lexer/token_init.o | Bin 0 -> 3000 bytes 42sh/objs/lexer/token_print.d | 8 +++ 42sh/objs/lexer/token_print.o | Bin 0 -> 3692 bytes 42sh/objs/line-editing/completion.d | 8 +++ 42sh/objs/line-editing/completion.o | Bin 0 -> 3244 bytes 42sh/objs/line-editing/control_c_and_d.d | 8 +++ 42sh/objs/line-editing/control_c_and_d.o | Bin 0 -> 3744 bytes 42sh/objs/line-editing/copy_cut_paste.d | 8 +++ 42sh/objs/line-editing/copy_cut_paste.o | Bin 0 -> 5456 bytes 42sh/objs/line-editing/ft_prompt.d | 8 +++ 42sh/objs/line-editing/ft_prompt.o | Bin 0 -> 6184 bytes 42sh/objs/line-editing/get_key.d | 8 +++ 42sh/objs/line-editing/get_key.o | Bin 0 -> 5300 bytes 42sh/objs/line-editing/heredoc.d | 8 +++ 42sh/objs/line-editing/heredoc.o | Bin 0 -> 5892 bytes .../line-editing/history/add_str_in_history.d | 9 +++ .../line-editing/history/add_str_in_history.o | Bin 0 -> 3440 bytes 42sh/objs/line-editing/history/history.d | 8 +++ 42sh/objs/line-editing/history/history.o | Bin 0 -> 4780 bytes .../line-editing/history/history_parsing.d | 9 +++ .../line-editing/history/history_parsing.o | Bin 0 -> 6056 bytes .../history/history_parsing_toolz.d | 9 +++ .../history/history_parsing_toolz.o | Bin 0 -> 5576 bytes .../history/history_parsing_toolz_2.d | 9 +++ .../history/history_parsing_toolz_2.o | Bin 0 -> 4416 bytes 42sh/objs/line-editing/history/list_toolz.d | 9 +++ 42sh/objs/line-editing/history/list_toolz.o | Bin 0 -> 3712 bytes .../line-editing/history/surch_in_history.d | 9 +++ .../line-editing/history/surch_in_history.o | Bin 0 -> 6104 bytes 42sh/objs/line-editing/home_end.d | 8 +++ 42sh/objs/line-editing/home_end.o | Bin 0 -> 3988 bytes .../line-editing/lib_line_editing/tool_line.d | 9 +++ .../line-editing/lib_line_editing/tool_line.o | Bin 0 -> 4900 bytes .../lib_line_editing/tool_line_2.d | 9 +++ .../lib_line_editing/tool_line_2.o | Bin 0 -> 6156 bytes .../line-editing/lib_line_editing/toolz.d | 9 +++ .../line-editing/lib_line_editing/toolz.o | Bin 0 -> 4192 bytes .../line-editing/lib_line_editing/toolz2.d | 9 +++ .../line-editing/lib_line_editing/toolz2.o | Bin 0 -> 4868 bytes .../lib_line_editing/toolz_parseur.d | 9 +++ .../lib_line_editing/toolz_parseur.o | Bin 0 -> 3728 bytes .../lib_line_editing/toolz_termcaps.d | 9 +++ .../lib_line_editing/toolz_termcaps.o | Bin 0 -> 4604 bytes 42sh/objs/line-editing/move_left_and_right.d | 9 +++ 42sh/objs/line-editing/move_left_and_right.o | Bin 0 -> 4680 bytes 42sh/objs/line-editing/move_to_word.d | 8 +++ 42sh/objs/line-editing/move_to_word.o | Bin 0 -> 8032 bytes 42sh/objs/line-editing/move_up_and_down.d | 8 +++ 42sh/objs/line-editing/move_up_and_down.o | Bin 0 -> 5764 bytes 42sh/objs/line-editing/print_and_del.d | 8 +++ 42sh/objs/line-editing/print_and_del.o | Bin 0 -> 6696 bytes 42sh/objs/line-editing/queue.d | 8 +++ 42sh/objs/line-editing/queue.o | Bin 0 -> 5588 bytes 42sh/objs/line-editing/readline.d | 8 +++ 42sh/objs/line-editing/readline.o | Bin 0 -> 6488 bytes 42sh/objs/main/data_exit.d | 8 +++ 42sh/objs/main/data_exit.o | Bin 0 -> 6132 bytes 42sh/objs/main/data_init.d | 8 +++ 42sh/objs/main/data_init.o | Bin 0 -> 7048 bytes 42sh/objs/main/data_singleton.d | 8 +++ 42sh/objs/main/data_singleton.o | Bin 0 -> 6304 bytes 42sh/objs/main/ft_cleanup.d | 8 +++ 42sh/objs/main/ft_cleanup.o | Bin 0 -> 3592 bytes 42sh/objs/main/ft_putast.d | 8 +++ 42sh/objs/main/ft_putast.o | Bin 0 -> 4172 bytes 42sh/objs/main/ft_putast2.d | 8 +++ 42sh/objs/main/ft_putast2.o | Bin 0 -> 4652 bytes 42sh/objs/main/lib_expansion.d | 8 +++ 42sh/objs/main/lib_expansion.o | Bin 0 -> 2608 bytes 42sh/objs/main/main.d | 8 +++ 42sh/objs/main/main.o | Bin 0 -> 10032 bytes 42sh/objs/main/remove_trailing_esc_nl.d | 8 +++ 42sh/objs/main/remove_trailing_esc_nl.o | Bin 0 -> 2516 bytes 42sh/objs/main/shell_exit.d | 8 +++ 42sh/objs/main/shell_exit.o | Bin 0 -> 2676 bytes 42sh/objs/main/shell_get_avdata.d | 8 +++ 42sh/objs/main/shell_get_avdata.o | Bin 0 -> 6428 bytes 42sh/objs/main/shell_get_opts.d | 8 +++ 42sh/objs/main/shell_get_opts.o | Bin 0 -> 3768 bytes 42sh/objs/main/shell_init.d | 8 +++ 42sh/objs/main/shell_init.o | Bin 0 -> 7740 bytes 42sh/objs/main/sig_handler.d | 8 +++ 42sh/objs/main/sig_handler.o | Bin 0 -> 2908 bytes 42sh/objs/parser/ft_parse.d | 8 +++ 42sh/objs/parser/ft_parse.o | Bin 0 -> 5200 bytes 42sh/objs/parser/parse_dgreat.d | 8 +++ 42sh/objs/parser/parse_dgreat.o | Bin 0 -> 4964 bytes 42sh/objs/parser/parse_dless.d | 8 +++ 42sh/objs/parser/parse_dless.o | Bin 0 -> 4880 bytes 42sh/objs/parser/parse_great.d | 8 +++ 42sh/objs/parser/parse_great.o | Bin 0 -> 5024 bytes 42sh/objs/parser/parse_greatand.d | 8 +++ 42sh/objs/parser/parse_greatand.o | Bin 0 -> 4976 bytes 42sh/objs/parser/parse_less.d | 8 +++ 42sh/objs/parser/parse_less.o | Bin 0 -> 5012 bytes 42sh/objs/parser/parse_lessand.d | 8 +++ 42sh/objs/parser/parse_lessand.o | Bin 0 -> 4964 bytes 42sh/objs/parser/parse_redir.d | 8 +++ 42sh/objs/parser/parse_redir.o | Bin 0 -> 4096 bytes 42sh/objs/parser/parse_separator.d | 8 +++ 42sh/objs/parser/parse_separator.o | Bin 0 -> 4640 bytes 42sh/objs/parser/parse_subshell.d | 8 +++ 42sh/objs/parser/parse_subshell.o | Bin 0 -> 5224 bytes 42sh/objs/parser/parse_word.d | 8 +++ 42sh/objs/parser/parse_word.o | Bin 0 -> 4984 bytes .../builtin_history.c | 0 42sh/src/line-editing/control_c_and_d.c | 3 +- 42sh/src/line-editing/ft_prompt.c | 42 ++++-------- .../line-editing/{get_touch.c => get_key.c} | 4 +- .../line-editing/history/add_str_in_history.c | 37 +++++++++++ 42sh/src/line-editing/{ => history}/history.c | 0 .../{ => history}/history_parsing.c | 7 +- .../{ => history}/history_parsing_toolz.c | 0 .../{ => history}/history_parsing_toolz_2.c | 0 .../line-editing/{ => history}/list_toolz.c | 0 .../{ => history}/surch_in_history.c | 0 42sh/src/line-editing/home_end.c | 51 ++++++++++++++ .../{ => lib_line_editing}/tool_line.c | 0 .../{ => lib_line_editing}/tool_line_2.c | 0 .../{ => lib_line_editing}/toolz.c | 0 .../{ => lib_line_editing}/toolz2.c | 36 ++++++---- .../{ => lib_line_editing}/toolz_parseur.c | 0 .../{ => lib_line_editing}/toolz_termcaps.c | 8 ++- ..._touch_toolz_2.c => move_left_and_right.c} | 48 +------------- .../{get_touch_toolz.c => move_to_word.c} | 6 +- .../{move_to_line.c => move_up_and_down.c} | 4 +- 42sh/src/line-editing/{reader.c => queue.c} | 4 +- 42sh/src/line-editing/readline.c | 14 +++- 42sh/src/main/main.c | 4 +- 42sh/test | 62 ++++++++++++++++++ 403 files changed, 1767 insertions(+), 130 deletions(-) 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_history.d create mode 100644 42sh/objs/builtin/builtin_history.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/completion/c_binary.d create mode 100644 42sh/objs/completion/c_binary.o create mode 100644 42sh/objs/completion/c_clear.d create mode 100644 42sh/objs/completion/c_clear.o create mode 100644 42sh/objs/completion/c_files.d create mode 100644 42sh/objs/completion/c_files.o create mode 100644 42sh/objs/completion/c_init.d create mode 100644 42sh/objs/completion/c_init.o create mode 100644 42sh/objs/completion/c_matching.d create mode 100644 42sh/objs/completion/c_matching.o create mode 100644 42sh/objs/completion/c_output.d create mode 100644 42sh/objs/completion/c_output.o create mode 100644 42sh/objs/completion/c_parser.d create mode 100644 42sh/objs/completion/c_parser.o create mode 100644 42sh/objs/completion/c_pathsolver.d create mode 100644 42sh/objs/completion/c_pathsolver.o create mode 100644 42sh/objs/completion/c_printer.d create mode 100644 42sh/objs/completion/c_printer.o create mode 100644 42sh/objs/completion/c_sizing.d create mode 100644 42sh/objs/completion/c_sizing.o create mode 100644 42sh/objs/completion/c_terminal.d create mode 100644 42sh/objs/completion/c_terminal.o create mode 100644 42sh/objs/completion/completion.d create mode 100644 42sh/objs/completion/completion.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/bad_fd.d create mode 100644 42sh/objs/exec/bad_fd.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_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_redir.d create mode 100644 42sh/objs/exec/exec_redir.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/fd_is_valid.d create mode 100644 42sh/objs/exec/fd_is_valid.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_resetfds.d create mode 100644 42sh/objs/exec/process_resetfds.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/redirect_dgreat.d create mode 100644 42sh/objs/exec/redirect_dgreat.o create mode 100644 42sh/objs/exec/redirect_great.d create mode 100644 42sh/objs/exec/redirect_great.o create mode 100644 42sh/objs/exec/redirect_greatand.d create mode 100644 42sh/objs/exec/redirect_greatand.o create mode 100644 42sh/objs/exec/redirect_less.d create mode 100644 42sh/objs/exec/redirect_less.o create mode 100644 42sh/objs/exec/redirect_lessand.d create mode 100644 42sh/objs/exec/redirect_lessand.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/expand_var.d create mode 100644 42sh/objs/glob/expand_var.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_memrealloc.d create mode 100644 42sh/objs/glob/lib_perso/ft_memrealloc.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_strsubf.d create mode 100644 42sh/objs/glob/lib_perso/ft_strsubf.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/expand_bquotes.d create mode 100644 42sh/objs/lexer/expand_bquotes.o create mode 100644 42sh/objs/lexer/get_state_global.d create mode 100644 42sh/objs/lexer/get_state_global.o create mode 100644 42sh/objs/lexer/get_state_redir.d create mode 100644 42sh/objs/lexer/get_state_redir.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_bquote.d create mode 100644 42sh/objs/lexer/lexer_bquote.o create mode 100644 42sh/objs/lexer/lexer_comment.d create mode 100644 42sh/objs/lexer/lexer_comment.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_end.d create mode 100644 42sh/objs/lexer/lexer_end.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_lex.d create mode 100644 42sh/objs/lexer/lexer_lex.o create mode 100644 42sh/objs/lexer/lexer_newline.d create mode 100644 42sh/objs/lexer/lexer_newline.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_paren.d create mode 100644 42sh/objs/lexer/lexer_paren.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_word.d create mode 100644 42sh/objs/lexer/lexer_word.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/stack_to_prompt.d create mode 100644 42sh/objs/lexer/stack_to_prompt.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_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/completion.d create mode 100644 42sh/objs/line-editing/completion.o create mode 100644 42sh/objs/line-editing/control_c_and_d.d create mode 100644 42sh/objs/line-editing/control_c_and_d.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_prompt.d create mode 100644 42sh/objs/line-editing/ft_prompt.o create mode 100644 42sh/objs/line-editing/get_key.d create mode 100644 42sh/objs/line-editing/get_key.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/add_str_in_history.d create mode 100644 42sh/objs/line-editing/history/add_str_in_history.o create mode 100644 42sh/objs/line-editing/history/history.d create mode 100644 42sh/objs/line-editing/history/history.o create mode 100644 42sh/objs/line-editing/history/history_parsing.d create mode 100644 42sh/objs/line-editing/history/history_parsing.o create mode 100644 42sh/objs/line-editing/history/history_parsing_toolz.d create mode 100644 42sh/objs/line-editing/history/history_parsing_toolz.o create mode 100644 42sh/objs/line-editing/history/history_parsing_toolz_2.d create mode 100644 42sh/objs/line-editing/history/history_parsing_toolz_2.o create mode 100644 42sh/objs/line-editing/history/list_toolz.d create mode 100644 42sh/objs/line-editing/history/list_toolz.o create mode 100644 42sh/objs/line-editing/history/surch_in_history.d create mode 100644 42sh/objs/line-editing/history/surch_in_history.o create mode 100644 42sh/objs/line-editing/home_end.d create mode 100644 42sh/objs/line-editing/home_end.o create mode 100644 42sh/objs/line-editing/lib_line_editing/tool_line.d create mode 100644 42sh/objs/line-editing/lib_line_editing/tool_line.o create mode 100644 42sh/objs/line-editing/lib_line_editing/tool_line_2.d create mode 100644 42sh/objs/line-editing/lib_line_editing/tool_line_2.o create mode 100644 42sh/objs/line-editing/lib_line_editing/toolz.d create mode 100644 42sh/objs/line-editing/lib_line_editing/toolz.o create mode 100644 42sh/objs/line-editing/lib_line_editing/toolz2.d create mode 100644 42sh/objs/line-editing/lib_line_editing/toolz2.o create mode 100644 42sh/objs/line-editing/lib_line_editing/toolz_parseur.d create mode 100644 42sh/objs/line-editing/lib_line_editing/toolz_parseur.o create mode 100644 42sh/objs/line-editing/lib_line_editing/toolz_termcaps.d create mode 100644 42sh/objs/line-editing/lib_line_editing/toolz_termcaps.o create mode 100644 42sh/objs/line-editing/move_left_and_right.d create mode 100644 42sh/objs/line-editing/move_left_and_right.o create mode 100644 42sh/objs/line-editing/move_to_word.d create mode 100644 42sh/objs/line-editing/move_to_word.o create mode 100644 42sh/objs/line-editing/move_up_and_down.d create mode 100644 42sh/objs/line-editing/move_up_and_down.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/queue.d create mode 100644 42sh/objs/line-editing/queue.o create mode 100644 42sh/objs/line-editing/readline.d create mode 100644 42sh/objs/line-editing/readline.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/remove_trailing_esc_nl.d create mode 100644 42sh/objs/main/remove_trailing_esc_nl.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_redir.d create mode 100644 42sh/objs/parser/parse_redir.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 rename 42sh/src/{line-editing => builtin}/builtin_history.c (100%) rename 42sh/src/line-editing/{get_touch.c => get_key.c} (94%) create mode 100644 42sh/src/line-editing/history/add_str_in_history.c rename 42sh/src/line-editing/{ => history}/history.c (100%) rename 42sh/src/line-editing/{ => history}/history_parsing.c (95%) rename 42sh/src/line-editing/{ => history}/history_parsing_toolz.c (100%) rename 42sh/src/line-editing/{ => history}/history_parsing_toolz_2.c (100%) rename 42sh/src/line-editing/{ => history}/list_toolz.c (100%) rename 42sh/src/line-editing/{ => history}/surch_in_history.c (100%) create mode 100644 42sh/src/line-editing/home_end.c rename 42sh/src/line-editing/{ => lib_line_editing}/tool_line.c (100%) rename 42sh/src/line-editing/{ => lib_line_editing}/tool_line_2.c (100%) rename 42sh/src/line-editing/{ => lib_line_editing}/toolz.c (100%) rename 42sh/src/line-editing/{ => lib_line_editing}/toolz2.c (80%) rename 42sh/src/line-editing/{ => lib_line_editing}/toolz_parseur.c (100%) rename 42sh/src/line-editing/{ => lib_line_editing}/toolz_termcaps.c (92%) rename 42sh/src/line-editing/{get_touch_toolz_2.c => move_left_and_right.c} (66%) rename 42sh/src/line-editing/{get_touch_toolz.c => move_to_word.c} (93%) rename 42sh/src/line-editing/{move_to_line.c => move_up_and_down.c} (93%) rename 42sh/src/line-editing/{reader.c => queue.c} (94%) create mode 100644 42sh/test diff --git a/42sh/Makefile b/42sh/Makefile index bf3af16f..46c6db96 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -36,6 +36,7 @@ builtin/builtin_cd.c\ builtin/builtin_echo.c\ builtin/builtin_env.c\ builtin/builtin_exit.c\ +builtin/builtin_history.c\ builtin/builtin_read.c\ builtin/builtin_setenv.c\ builtin/builtin_unsetenv.c\ @@ -165,31 +166,32 @@ lexer/token_cmp_type.c\ lexer/token_free.c\ lexer/token_init.c\ lexer/token_print.c\ -line-editing/builtin_history.c\ line-editing/completion.c\ line-editing/control_c_and_d.c\ line-editing/copy_cut_paste.c\ line-editing/ft_prompt.c\ -line-editing/get_touch.c\ -line-editing/get_touch_toolz.c\ -line-editing/get_touch_toolz_2.c\ +line-editing/get_key.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\ -line-editing/list_toolz.c\ -line-editing/move_to_line.c\ +line-editing/history/add_str_in_history.c\ +line-editing/history/history.c\ +line-editing/history/history_parsing.c\ +line-editing/history/history_parsing_toolz.c\ +line-editing/history/history_parsing_toolz_2.c\ +line-editing/history/list_toolz.c\ +line-editing/history/surch_in_history.c\ +line-editing/home_end.c\ +line-editing/lib_line_editing/tool_line.c\ +line-editing/lib_line_editing/tool_line_2.c\ +line-editing/lib_line_editing/toolz.c\ +line-editing/lib_line_editing/toolz2.c\ +line-editing/lib_line_editing/toolz_parseur.c\ +line-editing/lib_line_editing/toolz_termcaps.c\ +line-editing/move_left_and_right.c\ +line-editing/move_to_word.c\ +line-editing/move_up_and_down.c\ line-editing/print_and_del.c\ -line-editing/reader.c\ +line-editing/queue.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/ft_readline.h b/42sh/includes/ft_readline.h index df03cd61..e2742ad1 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/09 17:24:55 by jhalford ### ########.fr */ +/* Updated: 2017/02/14 15:14:57 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -175,13 +175,16 @@ 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); char *readline(char *); int ft_completion(int ret); void ft_check_heredoc(char **str); -char *ft_strdupi_w(char const *s); +char *ft_strdupi_w(char const *s); + +void ft_add_str_in_history(char *str); +void ft_init_history(void); +char *ft_history_parsing(void); #endif diff --git a/42sh/objs/builtin/bt_read_get.d b/42sh/objs/builtin/bt_read_get.d new file mode 100644 index 00000000..2639aa9d --- /dev/null +++ b/42sh/objs/builtin/bt_read_get.d @@ -0,0 +1,8 @@ +objs/builtin/bt_read_get.o: src/builtin/bt_read_get.c \ + includes/builtin_read.h includes/types.h includes/builtin.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/includes/color.h includes/minishell.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/glob.h includes/completion.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..9d562205864c31509f41e238f3668138d83673dd GIT binary patch literal 4032 zcmb7HU2GIp6uvXt*$&-ycS|ilmf9r?v>WZkNdrdx&Yd&u?6jrzBzMj| zXU_TVIrp4(+~t&=ax@XsfY|k$8gz#wD?S3IBHV8+F*<={WRJ_t>l+BV<8OEk3x_4~0Uke+j zm68JO^;+EVR2_4~XW``v38{AD{lYl5&mbjNO;h5<;_*`IAmv{jpN&^xjM?I4^XUS) zxbgP!>VD=oIKB+_uijc?%J@pLd|#?O8L!_}^ILN`&l!XXkgQ+F|z}yLZwQTPKs>a6v>zw6IL9e zEW;6nqFIJ2os0E}Tp`~Vk`HMt*QWIZugXi=_yD!8v24DG{Y{$3AN02P z8PzO(d+NF0MlpTTQOZ)~pvRxg9q%Cw7tNk5#e~vJm$=gG@@=m2ZMJ;vmZ@P~{}U4JsHa^G*Xy?-5u~R>4F`1wQ>DFE6bFIPpgYUn0YJN*1^zvcqyJHxyV4TIElR-tNzMzQ1{*>!>QZgZOY0 zNEL-xT4C`?@9jgnXqxx-L7dKiWCnb@Fv`OO}FmXuu(-Xo{DnY-+-q=dyJtt zK8E-hC32M{{UUUH?C@EHo%~rB$f!-odK+ziOzSDxb~nuCT4upRUJ79@d4JvWwMG6 zH1YeGw^L>~b8XD8Lr?P0%->~xhB;p#-UBS(&%BfQGUoR%Kg#?`<{O!Zn1jjn63o|w z2M~ZwR0)ztSkb|9h~;LM?Y<{hvbXzu8)OF@{;)U-X8#ay>i9Q;Q^mg?oGR;gjgdBu Nm|4hHf#O#M=s&byZg>Cy 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..fa35ac5e --- /dev/null +++ b/42sh/objs/builtin/bt_read_parse.d @@ -0,0 +1,8 @@ +objs/builtin/bt_read_parse.o: src/builtin/bt_read_parse.c \ + includes/builtin_read.h includes/types.h includes/builtin.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/includes/color.h includes/minishell.h includes/lexer.h \ + includes/parser.h includes/ft_readline.h includes/exec.h \ + includes/job_control.h includes/glob.h includes/completion.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..7d3abb83d15b48dacf3bb01e18fdfe0289e62f05 GIT binary patch literal 5484 zcmb7I4QyN06~6D;_t~)>+ijW>mbMsDL(3W`Et%GJ$<{z#c})`um8L5l%sBpuU0mCW z?fy_Q72Kj4(=A1tCXGoOjQw>Tnl`k7riFGzq@b~N5`s?3AZQyT(wL&IS~Eb+zH{Gw zN#kVDUFE)W&pqdS_ndRjefK$k{NVj74#pH4!vo!pewyPEKu5bC-5~ydw3D@_U|i~0 zJTMt`zqAX73-JR5$$*5zJM>*U=6Gu~Lyn*k9{KWk9b@%0VP}VlSS=im<_m+V%z&Jz z#-7Qc#;18!T3JP-+ccpyq`#zYsE`t5?L~-#v7IX-7LNMk;epX zTgI5v94_kLU?ejT&o9J#UmBUFjJ@WyMzeHLyuFdAaIxAy3r}vxHQ+^ZxpX|7iR>l! z7R38c>7P}ifA~cIOuTIW9aBD*tkkXf@uWRd|VO#48-k zEgJ7hiD%XGW7mj>Lo6Vx{d-lO2P@u_*1@-;T~N=_>|VrK2p2Q^Q<+#e+|xCu%Gi{| zyI)S82Ohl|3aCH%im1w8JQ+?5Vs}l0>i5B2@_Y?Tyw)YNIAR9kq!bAt!+-6`TY(W18^yxim$4ibJAlSRmsSyr!(xsT~=>Ko) zGs=Iz+bI3xfKeWrFv`X8QGJXsNA=eU%82S?Mx}S$D7Bwqz9U(PM)eCMspuEVXG&+3 za_Adeq>{!(mN(HG-gEqWQN!F#?1M$etOc3?ShEy!sObSnVCttAmzLj z^H;CT%v9|F)dZFp7dbuij?GZc8D;(XNxEj&pDv#<%DvB4*Dj#D%~EUMrFId z2UM@@ZXnuO*}cLj_x%{Ka2LeBx~qKeYA3pXF0(+xI?q(}OGfFX17E)H>@d~i=3~>x z^vk3A6p4)rB?ddxJ7qlZN(16Oyb-DHUR2~8@%u)Kmp^yWceHU)1>|aaaydj5eM%&M zYVt`W-x$@WF-e)7zVB=zkqG&2I6@PQ{K4@E;CM{ocp%Q=lwn?eG< zrgV!q$maA40+G{e%rSr}#R-vHs>vgCbB^jC(W#q^3T=JLC>;nu)Jg2|j^{w;?Zt8^ zzpzv2_5p2sfHtsV4ZEFln_1TXhDw|g)>s54Ncea~{|E^W+;{fSU_3Sy%x?5?CS~8Gw=?>1<{oARc51L}@Ke8SMrWNn~aQ znVCK&bH@@fW`6IaGPz=b#Uh0Wi|k`5wue1H)=XKV1if|K=Jjih-X+RXl${#FHO_!wC^mxGwNjMdaB zHm}=Fi!kP@h3?imVm9J}bk{3e>u$la9xe>oO?Wxs56wyEhjW2owp~4OFP%Q+22usLtAV(HPa!cD+5bbqM!^9#Cl*;kKuirt6U%>P=fkACZPwkK zaCe(@H!0lRM(#50Yj|+GBM2a8D;`e};Egrk0clWMT(l@HsjgR>nClnd_7Jy0ZF0JP z5AGr2Zd055O#2yFO>q`6^J@%kb=n9BcRC)%jGH`FJmi6=krsA*3q$AAc$^2P25Q~} zX;qtCZ-I(6g0$ja!HM;6rWNVtA|Uk^waMe6_dj8&Yp}lSvL#!qHZ{2Dcbm|>Rc%_~ zQei{ks-ISy0xl{6VYg0gTEiR!?+`vQ~68Pdsyo7d4$0(QGRfZg)8wioB-CRqYYZwP(4v$Q{}# zzSJ4wj&|Q(Sdk)BPw+Q6@tI!F+A*`zXC<>>raB>lsErC@(-G{c^pEV z`VRWRL-ZL*_k)r>{RF^Y{VF`je!1j*pd|l~s2x`SJ}Ak@CBG7su)i%rHvy8rx3v(JKmnejDkwP+@$rfU%K^6ud%i+I~ Ug~Xhu_z-5{0dcGfk$%Sh3(R%)-~a#s 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..2ef06a17 --- /dev/null +++ b/42sh/objs/builtin/bt_read_term.d @@ -0,0 +1,8 @@ +objs/builtin/bt_read_term.o: src/builtin/bt_read_term.c \ + includes/builtin.h includes/types.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.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..f37140e63f47378cd908bf717333c6dcb337e386 GIT binary patch literal 5092 zcmbVQ4{Q_H8Gm>7T`qQFJD3L6mepGl%D>ow1(mhXl8%f6!h~qTU|V%@&W`Qk*v39X zKw$%gRGh3xuobE5CWN$2o3>8MG%7J|bdf+n>84Jarnb^nQH^d?Vp6wig{`RB?|b*o zaZI|>J>`4f`+fiJd;eej+JFB3Q3GR=hoJ&_LDLGV2ngjfAf52Xl&&U6aZT9##qVIm zWJDncGQ+Tvqm}?*hSA@$ZkQ^cH(q>bsF>W(`#UE;H{R>Q{a)i`a>IFYsn72!4L-^qk;PAZ4(?mP zm`HWr{EG2hDv61ykJm?ke1y`wE5CM; z-wBbH_Y?DT;^l{);S*e+-&ql_UBr9t9^>)+3URYO-WzrC&fQ}?>tJEt{@xMsz9$Co zPxlxPo0x~J&+mD$DBS*z21UnbS>61a`4RNfGRnCFnOwp!`Zmp);tUe;28Hkp;?b6Q z4(m^Bow|6*v@u-7>^cth=SxJaUw3}#V5;4MI4;uSQ=C=zZzjhh*7tWx#QTC6zZ2r1 zdlC5w(VYBfT)2tfaU|tp&{^1%q(96Uk3Euj`ZiB>yEHoc2|{Qof+u${?VILXzG&_>6w|Cmnmhv!q<~tY1HlQw{`pcZfJD-GLP~ykNr$>LqFvFh$TBmFYoc>q7eKUo zO?35gRw|mYp>if`Wpc40%P1z}3A`AJBT(aMasESCY4JjBAJ{8lRP&u4Q>ORb+O4z6FyaQGaWCo zQsz*S&O3@-DkPH$#%tIik|U_imeqnxE@M>%$x#5xfJ+l`E6$u=vJ&qs%NMK?L_8aw zH?PPek<4aB7*8ihb%_;PwxdNcnB6S49iYE|K9|*Ka3$ShE zD1-~7jXqD{QU7E9hnu#9pTH*abTdz2OPEA5R=HPUvar~K<46fho`ByEEmpkR?3ya; zVA{~iwuE^w=(Kj|9{2lkb~Q>8x%xf_^&`N3Qu+OlquJCwCwg-bCX5BDfnXA>ei0y4 z{i2_~$Of>n>D0vc=!9WSY!xw-%?{(W`%ZH#A=)jJ(yqUvB?qN_V3Nl~O)a^l(c``q zz4FPi`)IU+Kcp`xX;ix8m(&6p*FjQ~B)2j3J1%Sn)YR{~FaQ`*zwg2z;9~WsfVV(W z2r#1l7R@Dyj`@(=)~SDX;R3*otl>T2QL=83w4>k+TB8TnzE)HVSwj$Piqx8Ld7LA5{KaB^I zPY5q}B&A(mGVZGP?waephI?x*uvNUxKL-o^8r4G}ZzQ-BtjpUL>I7elx$$;jAVZsh zHWONkaSZJQq71zc%WX}eJ!pM}bjvWPp+Q%-9Ag?vyJ&^n_F!l)&{Jf&5(6CC=lZRZ z+m^AwMkv-mvHkc3{1tdq>SnVJb zTB0PPwI)QgN=Zb^RyfjXArUPgVMRNRM6?Tqh;K%SXp;&@TIys)t6!u_OO8ae=7i(_ zn!kpcH3u(V#4$!u=9EE!IvmYidUrS9bnNcZyK6!^w3A7rAt}_btKFyvqoC_ zym*3=qWa!cw<;c0ODR5Wk0Ptr6{c$KN~2F+)v5&Ljt~9BZ(z0GrPb(ocrKrEE z5wxmlr5)_`T@-}7R*Ol-#MLnamsV5Y5J>sVn`5i^l!nlIh-KRABw7
--%bQ`Y$#aLilh zX>hVT3Qm6g0O%vI3O`eFukZNdf-&Q|WjnF7~lX z`<(FCV260>BjAK%f-e>Pvx09FJR&$4w?8I0oudH+a_?S>T?=X!)*tKIA2zN2AX}P3vQ3R`H`H#V&wK8< zI1JjgC!G79_v?Az^PZ1;hg%Q-_9%}r#m4YJx1&#RJiO>=-$2)ie@Z*(HWf3{#^Qm= zs258=pD!NliAx5==X+CYee*GIjan!HG{U1{bqQl@NML9EM6BlX8L@aY6mFM-Ts#YB zuhj2wS)L|Um$S$x5Imk}_W@LBe7=Ua_8j`|lGUip>zb7G^7c=cO<8# zwX%*&0iS~BKYlzKJVo_eo}YzxS^_*PUMSqwO)j~3w`G2Vv?$c=Z{1>gTAo8i_%*$-yYvdxf$^5>2Mm!v1 z0hycMyAscu?>j{j_%X>@U!%JV^Njlv;nSgTz~^gfcx=kpn8Z6Kh5f*zJF2YIq!{Ml z1v`9gQLL`%kb57nd{aJb5;i08B+Ib9JFGF$rSlsK3&h;{4okdAxd9^{)4LA&NztK2}aM}TJ-c^^mAW)1`mBm8`Cpl zo%Kwy)4d<+>BP96Zn-q2jS;Gz=>_}o9F5c3MLp9zt{W{E^~uj|x^i33BrfUc zTSBX+wNX8}z&xn}*iLCT$Yp*U$!?!WPwGRf?;vM=C@}*_L}{7P(+~9IH79}&0|Rjf z_4KDu^jmOqdPeKllM_xv9n_PP>-6+c&*I{uo=!!GWK1$eftYD$>R+9fCZ5zE$WR1r zxrD&OCU&NGG@a^%O0bmld0G&CXjcs-nMsU}GoivXsM_gN2aM6AJh-6g;C$W`g zQSJMBvhEHWY`*I`Ukl6a6Iq(fb9X#f)#O42sZ;9-$k5=_d|%JlCp}jWD9MMc-gDvO z`oYBAA8L0mDV`LiKmQ9nrnDJ6Sw@>lPAF+@MmMIHLISwI&V`Il!UC93HUqZ>xCJ*o zSF4reqXV84U0WILUUFJZYxm}NKGn1-%M_9B&C|inXtQbUtNBU{#gyk`C>_v{{hV7# zE6|I)X6OI@NbVKWC8K?H^txwbgRE!r3olNIsHs`4-8f}cl*`bL-xA66&RKh9#yo>` zto12v0ffyTqK8J3p&cVcG8$%CBV5FZ6<>8jJF0~)3rozxv}QQpGh!Ctadx!@&;>nt z!+Z4l{-%ZlZ#A&9(O{t02-JGR-QHNj= zY&)I^b;d(si~5W}rNOqf#NfNF{dD(Eoh%fNvxq<5!ThIKFnlV)LQI&({n7SdoSk6tu88RjEmKOA@}gDTR#fa* zUsR%$VxOxX_WCN^)n&|9wA<~*matdCtW>FY*@|l2JKb9fUSIVZu1n6DDn;brs9whA zt#rcWzgb|j^Arc`1_>QDR={2+f<_B&HS69uCF6WMP6Z&68jx;20PaGGh+8jcC_y@u?>_2 z%R43`{v7urHRbU4=vgizb9E#l0+owE>PUw`Djy(VbtE9dY!SHX$gy9M6nVJ=PYrScIpsmnbGgH2Qh$%hA zN^wD+a~M{X;`8V;Us4u}i!wfAdy0yGpzbX+*Uz+TfZe)(n|3mfC)#zwuKuBEC-Yfh z_Yq>NY#S^UvR1t+ZGn(nH%fX9a^im@sV-@~ zq?;w(kR$g>9z^)pNlNFa2!O|s1hs?c#9L=G1KtDPYIM70v8*SDCtbF_B8M-@;e$DR zbq*iN;hE3+E{Fx=^eXqY#eI0gi=m}50_LmUXLR6mMwsA#Lq=BwKMnC;BENAGnv=dZ kf2i{@9-OR?3BruvA5`%+M%c#bz;eg-gg*+=<8X}q7s!&m@&Et; 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..4c805228 --- /dev/null +++ b/42sh/objs/builtin/builtin_echo.d @@ -0,0 +1,8 @@ +objs/builtin/builtin_echo.o: src/builtin/builtin_echo.c \ + includes/builtin.h includes/types.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.h diff --git a/42sh/objs/builtin/builtin_echo.o b/42sh/objs/builtin/builtin_echo.o new file mode 100644 index 0000000000000000000000000000000000000000..a871a0d67b8a5c8944873734e0d1628bca8b002b GIT binary patch literal 2684 zcmb7GO>7%Q6n(qWDH5@rsuB^D{6Jl{QIJrRlwQziy;;YOob}3H z=LZNBC8{t1DI9u19JnBHLY(QL2oP5|AaUW)14TswDFO}=Ak2HSvyOL5n((BVH}B1x zZ@xEwyWjlz>pwjJEDBg*iDCJiW0k>z@-P;i>;vR?8i;a7#rQU20+lp%q6pzyYp&P! z?770VxqaJjwN!)fh|71!JdMV6KZdjrX2Y#l>_z1iB8cbXD0)!Qx<>;evE@v1dbjtJwOpvCTz-;Ri96pM9hh4K&b^YLaC z=27t~cBw`~!g!YA_o2co&}O3i;qS)*`PL14(Q4d}#{;Vaa981ZsIm@3`0KZ9n37_c zpO5D+dKRO5UElgkl3XvbeGK?lc&7nSv8hOBrSh|JIIF&%c-2o41 z&+Dzb`sOcry|uBYx0<_pYyO_TJ-@4Oei6s^uD)Hs_86qLX!-SbpP@HdI=Azm!aYLP zw{h6!*BFjkw#T7W_%XHBkDa$OSjn(f;m*&WwA=05l%VvCwp)cCT6_BDSNWH}Jl%jP zx`COQnX4~kR;+rXQnNE-*?cyiIcrw&*%%qiqmey-E<5@-H0oxq*sN6DitTG*ndMs6 zgxq`sN9Pt-YfB48?)2AXI&ugl&Y&nmy! zu^{GPo5%PTDvi)$>(pZWCaL$a;@%wk?37N-{DR3z@oewY^Vv>&gJ?@GsIy)ObdM!h zcr0#t`~SpH`cwu9424cV0}VCDk35}!k7xe+TM09B^R-E|XR%PO#FrL{ZW9V+OD;-M zxgNx%2WKI+7~K)I2ZRz3pB;PU3b3^_OZWA}cQA^kIfdopzX_?`R^tJtlIa_f=lcE6 z_$tOkU=(Y{{z~>^&1eoRtm|k);K1V9mOPGiPDnJxc&s-*!FzA&dYZ?y?|Ee7qh=(56Uh}qh!J|*Nl$naj}RNQA9~WWwVcvtlzv2MR76A@ mSDNm5N;0D!fRk9dOxfC zx+V^3RFqAq-zm6?Oi&@p64jt+A2ES6NkJ4T8^u<`n|uDHGgmMD_4RB6PYAE;wPCoY zbI3|LT`V+bWxY{TVJS~v8JjrUNzphDIr5tMbrJv!-@JoYsoE+W#Cz^f#`)ezAg~Ia zRVdVo3&gjZpT?VHm|pS9&PAc-6w3+Tb9+cZ@g8c-MNw zQ~X@Z4&r?c;N9sFuW`d&vEM;n?HT6xsz*Hh=oDm-UyJc{zfn9V0SWA{U7g218?xyv zmYr!S$4~q7UvhSugE_>bt0BD3yH{`;z$=#IObvI}E0D7LK6t~~quyh<$aw5R44|av zWc7VeDLV==*smgkc@tc;#Qnxs;YaI|qTE=&svtTWQ8#e@Fj{(!Jm4a#Uuf%j`~Bgb z=2Q9hrvq>D?c3k;?dG?9d+PJ`w`24rq{qiEpHD9oYxQ!~NgvMSGP(3_yMmwZ{=+$R zG9w2w2lha{W@ih{a-~srw3S6?A!9>!s*c6k*~RMIw3Qt>ST9N2y&>IZy#!oAnNW5b z;989m*d?n5R&90xFzkXD5IYh>W+;)0Y)%Y_LF~}TU~o{3_J2#>%pgc2uWF>0Qt$WJTcRX z%_;GG?~0us`LLa6D=ug=UP@Ojg@U!qD1Q94a;SY$-93F>0wQ>@P5e{RIrMnu?mddx z>1Ve_(Vs-6UWqR)5`XQ~ErqB_4*icwAHIdyVs=NE1)+3_W+!e=fM}&eD&7}e!Yq2t z7S!}FLRwzdc`%kpJv2_O=ie1vz#Ic|I12GIu^vZ3??4s4qm8TWopCR 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..9af193a3 --- /dev/null +++ b/42sh/objs/builtin/builtin_exit.d @@ -0,0 +1,8 @@ +objs/builtin/builtin_exit.o: src/builtin/builtin_exit.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/builtin/builtin_exit.o b/42sh/objs/builtin/builtin_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..7d11a7bb10685bb0232ac149e82216f383c5be9d GIT binary patch literal 4564 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 Wlo=ds<7t-39X)TE_xd}LvHt@3$pPH} literal 0 HcmV?d00001 diff --git a/42sh/objs/builtin/builtin_setenv.d b/42sh/objs/builtin/builtin_setenv.d new file mode 100644 index 00000000..ae995e33 --- /dev/null +++ b/42sh/objs/builtin/builtin_setenv.d @@ -0,0 +1,8 @@ +objs/builtin/builtin_setenv.o: src/builtin/builtin_setenv.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/builtin/builtin_setenv.o b/42sh/objs/builtin/builtin_setenv.o new file mode 100644 index 0000000000000000000000000000000000000000..780acb23938204fe85c2e05613c173707fb75d89 GIT binary patch literal 3304 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 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..e4b4b814 --- /dev/null +++ b/42sh/objs/builtin/is_builtin.d @@ -0,0 +1,8 @@ +objs/builtin/is_builtin.o: src/builtin/is_builtin.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/builtin/is_builtin.o b/42sh/objs/builtin/is_builtin.o new file mode 100644 index 0000000000000000000000000000000000000000..3c54c44932caa43044f6564926fa15bf2c2d8eff GIT binary patch literal 5024 zcma)9Yiu0V6}~gOvybe0z4ivnKCd3uc$$ECzJ7KfC z+L?6{N|9AV70ZAUs!Fs{A+1CoQl%q*vRuw-&stQnzn(~9Vr6T>l znLE4diD`1BJLi07&i&@x$GP{;AOG{=r(q$KfWQMah?)%Hkw!&XhWdi$sEa->EOE_) zY=h!qa0=Eg8c}rJE*!O8-NpMx$M&_br+rT<C zcs?)Rzait3P^g~LY@g5Bxt3Aa?;F`S(!!UddREFLI>-2W(ZL>RYZtnnFN`-PbOh;` z!FOQf!7nvkPI0hNrlh>c!CF`rgy`{=tA^v{=Sy<}+sXscHsGp@^5w?I>xD^<=fe0r zzQ0JCo8>br#VVWl`Q~MO2W1rfa^1X!@srDI(fI1Q%0$7so^Q-IpU2}e(3V(~?{Lm= zLiESy@yY2BH|ERLYUP4n$sJ~R*Y)?SGQKex&&&huMCpF*rx$)V@YK!*w-;ysSTWz>WK5PmOr9Zy7T)$p_w|CwsKBIaV z{j~K)<%n6y>-wJi+FJ}tzO*zR1Rs~=6|6rw=f3_HN_w%5*>xNE_ZKf8c1XS{$tR(R z2~qNN%4YtW6^GH^-xD&vyJRqDWq;>CBR-A`wniahZXz-GUgB;c5)hXl&q5*&@c?Rj zp)c$8OQ_vzaeaSw=I`0*xpa2s8&@uj&Rs*vKISU4h*LIjWV{uP2}kuS^$&eS`W7_&G}6CI!C0Oo#+v47~C@u zgtJ4%#YP7SF)Ag6mpy6@fcvkac18o2ps)nE5e1o1aiKj7@ffPIIm8=MQrQ+h202C3 zcC}B0r=dMVbhp|U5s{~%MxVqZq(n|aEO`Nsn26G@1>-Xi5e%0sULeXt&%>gwRxU#* z3H4;{We2Z7Cpy)WhzP=lM$p)eDjK?MiYzGV1yXs^;UqxSWN z=YaV2;Go*KBK$88ZC3lz;j2LJ(Q}L1*B`zgn&Y`u?Hddq@X(OjHx&LF&|b`0@D8s&0tF#fQ{ZO?>qQem3NQB(l7|bS=Kq^`zj)34RBUz}< zBE#F};Y6Dv+}j29ojw1JAG!NCm0{>v)SUBPhyh3z&NuyjM1bP)(#8^Zh2ukB=LD1A zz8N2c>ipC!l{~yekSBm^Y|uGwg~Q1{@E!emM005}lLn`b$CB~MGtciSu6)~Ay8M@= z-sRu^=;CrC{hcSyKeqM_`x$fPzLSSnHq_gazq+*UpRYV|$0wmTciKIt-amb7S7F_O zGf!Q;2%f*8evBGL&|J+K)SamNQA?;_M|}?U2dHOIFQEPv^+Qw+GM6w_&iz_c6ix+A zoE>T6B+lt;2VU z1s3a=b)6xj%YOief1t!~wa$3l9x&LB2VNloc$&MK+YWjV*I~~?gYKN`u%l09%Z36* z=djiZ*wdgYqM&t4V6~zJm%O5-{;WkqCp7g%tt%8sX{$m%)7Ea+*6-#syj>d@<1-$5 zU0a4X!QGk~dhTIOnZ^l>A)0WxRvv&vYHr#lv7FkKKLJMCCQd=(%OR!-QaN!#;^VGN zOi6qcGK}{%iA#{U(kBi|JO+uLB)EpjmxV;%6FVdxhQ!vC7?ijl5(jxAEpaa-Ml+F= zI0A`r<>CUSlz^dj%Tb>ncY^}_iL(OU^2^wy2J*&2T#O&z}@P2I@1bobxnf9ko*JOBUy literal 0 HcmV?d00001 diff --git a/42sh/objs/completion/c_binary.d b/42sh/objs/completion/c_binary.d new file mode 100644 index 00000000..4a8c9b26 --- /dev/null +++ b/42sh/objs/completion/c_binary.d @@ -0,0 +1,8 @@ +objs/completion/c_binary.o: src/completion/c_binary.c \ + includes/completion.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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/completion/c_binary.o b/42sh/objs/completion/c_binary.o new file mode 100644 index 0000000000000000000000000000000000000000..1d527c89fd139672d4adb5cb03dda7714804ff39 GIT binary patch literal 6820 zcmb7J3v3+48J^v{y<6|y*_YUH0>;5`NeDE4#Dvz65E2s8O9(2jfZIYh=e@OkZmQCj77%SgKmifNqr8N~OGHfrv;{SSP$3klt(u7PD3#js5cKS)fJs4ATtOB-w(WR+wNM&Xf_i(QozV5S zVqwpK>oXzz$-9HKVH-wei*2vHaP_%oOlr+mem%yC!t-98J&0zQ4DA)mj?}NWx0k_9 zd+xEOfuMR=d%3~EsyoK{o9SO@@9)aY=e1WT4VBrY-rf^x;$Bj5-kb;w@4|X0*AMGo zHCGyTy-(Y_E~y+-?2_3tG0vP(Z{#9~Ly}dW6*#s=E#^C) z(;halG+FQ8xw8U$VZ6O_Rp3*sZhf8dDB|?(TIte4DR0{w)=sGku|?VIP{IM&pc?I$tU-3p(HKV$GczIdr&#^xQch* zXZXi?k-0DtY;-z55A-_pnI|_KDZ~Icx7pdC=?{k>eLCe#*E)QCV|M&6*&ToD$?h~h zhDLUL`@7lk+QB{j`>3DY(|f?a%I5@vLaNsw?PoaH4Cn>{E4yR+0d(YCXLrIE<<}u5r$ZnC zh5b-yWOZWue%X1d6&_P*qW`1pj@>;MKX>-(^Rr?#^FYUj4Hul%G3HjiLb=q@*VWV2 z)3MkoB6)T8^#F7&>+M>4yzr_{H{a8u>qD>Gu?GvKTy<-gBf2+w=-fSgY59_Tu6tRp zH)1=Lt#+m6jR?o~Tz9k56@`*7JmK5U+w za%s3j7VKQ)E9l#jc>ybwDm7m?WsK;LRz#)j39oROYx{g}b5(38TVZLXR`LqNB{$ze zbCoIr@?|?rd#Z-v1LT(SaxgTEptW4x3a6#sB*YO};UQGwi7uO*S~aK)y2Ee_F8Q`( zUcjo(XkHX#=~Qz5h#1ZJ&WIQ(W4l%^#emgZp{P9L^lf3W6-7lx?F3OXtSw@*yHylD zpCgcA1hPV2Fm(zhCsA}u0xo&ws&Kcs4pb%c0+uTmam?rZnkQt{%~j#cCFMcrvGinF z8HUM9AwPXiLx^cSu@?2+n8GhR#j@uLHHky{9xpfMLT9Psy^>=t zIrWmsId#-5$w?k@i$z;bGFGaJ>9H}EC#7m?(3$TxUKdXkgf>fC*w}1D8q=}1##tKg zV|o)dcccp~v$a)Lr16x*^2Bk;behHK}M&v2oHO+L|V8x`t{i1#J8XX8o38Ow3eqailJY>>0YANCFlz@a6i%9;{tU4BSiCPM#L&8 zjA;BeFmo3QTt!7B-LM_(3Qg~}u0nbm-NhtRY1+--1J2GMYV+z+$@O3@4GGv`jC3*obfvv>Rq z6y`Z7hR_(9lNbft6hFoC!R4&2pq;Hij4ysF?OYzVtz_(1hv+oMJ`ti-jP?g1TFq#G z9HP@1?ae^a<{Ct6-4>#?dS-?7%MkVJnN`-kAv#0PthIg>qA%;2to1~QvU+BN^-PG? z>6x>w-9St5CdAk4nE|Xns^$t5zkxiyDDiu+o_M?UO4#XWhWZ*iQK5sOz7e(^!%+Ve zqGR<;i^cVk0c03BC-*K6wt#_i;w4&$z(t&+n*1#M2jr2~#0Ox{n0=OpiRWPEDI7Wp zM1$sX4m}rWVU#X&=nsHyLXt4C0u}2Vn39?+Bbf&@>#HF=Es}XyvvMI^70EoV39|=Q z+R#6;FmVjnriQ7Q8)VGKL3%lq8W3~TIunSSt^qNd)&)SfvJEk(t?vRIBx20MybjeR z5GCfDH=x>!s+BeA8F!|!Bz`BP<^w45z{w*Lo5AKKXIoWpUiFeK4E!=6Zl>fMj>wt( z6S^c@F`|gGck=tt$fgon>L;jtoryH5p=au@5T*dl)cqlB1WczM3t_{B|+(|eKurKxZ5Y7f%B^tTsehyhGt~Gg3OJ9ScMKoRxwwrQOi|qwBwOOx{#bu8} zY-!NUJD|mU8(Ex4f~_)7uv)>H_RJ-W`3NAn^qq`(KG4ZXSY{VznJ+EZ!|djp)dM6K zyNBuIq!1x_c38`SxH=}1=VI&hunozx$66mEB+q4&t7;;7_KEmP4z>=(0%%2!pUnZZ zW*dU$LRg4+9@Q2muXu?y>F>8uE3wnuL=9}9VUe{BT)rcV8QC>J@@+bvkzEf&;|(Y1 znWS|KkbHl>AlG&`Y)xjL_?cMa^Hyguocxp_$B`$WKn86*=UF#>$YX90M0q!e&-A{; z^?mta^8e`YYj**tg~sr}b&MASH$+r^gdwp)hLskyP4D=b#*a6g*@8C@e$KIfD~LM$ zoWs|gXa^k)Iu`W1d-CniOcdJv?-kl(zdhYQF*=g&x#HSHH2<`C`HiNwJ&)wu_kMHF z9j&(>d~oAnbK8^uaN8d_u;`r&AHM2e>EzhMo!@C{JKAY!`vd6CpMA3Yp*J_Cuf5xR zZSUhPYoFY9(uXyDVS3TdrnYL_ZU5nhq4rzvdg1*az4ubvbDI}Df7A=QwiERflbunGzPcVOT9`W#?riiIRiI`w0 zV#ZM-<{*lgnv{rXkRm2lCE{&GYJo2R;o)IQ5l=|m$oTN`LJ{vXO2iWr3W7%{Z1G)I zCYc1N%Oac@!FR1?9Jrr?6DG`qcigrzf%444*o;J!B(=0{IzDjhv(pm$#3WCQQ zwRrX@^Sszl#Ji3XF(FgLEUQErV2XIfQ09+OT3imL#TBO(ce4^PTT;aQtUB_xLJ^ax z@{8vMMNAP&i-*EQsWrJ zGk>(e?+;F~#!t=enpf>ssJn1t-xp^}yscih9sFE4Llbg*+Yb);VP8++V|4O|5R5ol zC>7+FTh|CTjkFO|hkU#0=JNcA4+OygsAHYEw>8o^GNb0#7!nh~|k%|@(d9J|9<7+Y`5TVXU_X(X>S zVpkfG*s#%RHX9b?=72FbcBXM8s;L!*K42u)8x0WX&`ZYdGg{Hmw99DQWz1i1M4%D7 z@G8TM{n^m3jQs+wy9{eRx}mPs^ad;sJa`9$P&;1+NBo@+fkWQ;O>lVHnFELWohK{2 z6dd!}$pZ&`P9He*V?By5QhdJRV6wdvO4I}4!;{kBSqwG}$^&dVKDDkrTZen=a9bS~ z_RL?tY%KqW=2!VjzX~P}OxYg!m6< CbxG_1 literal 0 HcmV?d00001 diff --git a/42sh/objs/completion/c_clear.d b/42sh/objs/completion/c_clear.d new file mode 100644 index 00000000..83dc369c --- /dev/null +++ b/42sh/objs/completion/c_clear.d @@ -0,0 +1,8 @@ +objs/completion/c_clear.o: src/completion/c_clear.c includes/completion.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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/completion/c_clear.o b/42sh/objs/completion/c_clear.o new file mode 100644 index 0000000000000000000000000000000000000000..33ed9a981142b9d3784d92daaf7360e91b7e68aa GIT binary patch literal 7380 zcma)B3v3+K6@5Fqvpefquh*Z1AjipuO^ibm+xY-4v}6MbEGDH0@^K4cvYs7#7uLJm z-LbJLlr&B&QUl^6+Co1NwNMb0rYKNUphSVnN>TZgs$WErC~6Q;q9Oq;66rZ_-fUu% zv>Exn`_6s$-FNSunfu<3U;NLzpG1TR1O*yU2vpJ0Btf`N27N@~ajuK!dIPs|4lW!glib7&LnSWVU&KVpXwrXxwiY#m0 zmbI6j?+**#&OQc)tJU!MQLS3Zllb%1*+LYP#W@hr8L}u6ZA7!RUH*7=y5c-EQ zlWRoN&Ssd(OszkZ*)@HTR^MXfeTzLQogAMBr8#xDZ{Beg6EhXD=5Z`0XDTL-tJpPD zvFo^sy)zYikE=KUMWot`Z7MyGnH)DDib~P-hhzp;?8{7j;iJs-+HH`E%;a;4t{@?N+L}tkN!->cV1JFt>kq=9yyG`R{Hgo%*4W|0hm|KMu=M2hhmM## z)&n&8TypEPYgu@c8#ZkILUPQh)(YiPvah?hyEoZo7qMF`@9PEVUcIt=#ZpnL+C3}` zMaP9+k8RmSCtK~dMbD-h=JpI<%QDnxmB#WqEK>0O}JJr z>t;pGV@_#I*!gT#WUIqAn=w(YxYQadW`{+wTpCWwhLekY@m))@n#T&I%BU;sGS+oR zDxy-ZiCW=W$8xco)LsdFQZ6S zuEB!UY@w(;L-K0lY$niDWYo47HNzSgS347edBqB3SV3kvC%B;sZV963lmuL=m8-%T zcWkIiR`Xc4T*Toj>yFlh?Bce}x}XDl&%L+D?u4k!ewhLqbZfgUl=LrQRJW=P=K8sv`y5KHDnDTkqOrux(pqDZnG8 zc+tnUux)76@2Y%~c)w-vuvDu!PEN?yv*Zbmc<1+Ob&s=SLf#lAYDgt)i1CY|T%m-f zj0djjnPl9lD$-+N zt(ugo)Ku`CAyoMiRb(4z4lIec>cMy-+#YWZv|t<3cnlAAW27aJZV1NDGS4&5SygFdIk*7o`hrlViAm=W186dj3&W3(YaurRUsN$1Hrhda|vvZjnKWY zm7otBX-tlp-dJNDUu9SWYnG=*qnt%V0mB;T&y(0a^W=$wm%v=v%Pn70GbGi{}oGR*JzW2>}O!u&qaWz<})rRJHB135&e zYpJ9;gx(d%i*|;V+Gf5FG>z4@GqqISETMM`)7BSEJ)jBW0*o3P&_r&Ajc_1(CHlM3 z4Yo!e0Mm_V1(GMx4LPy>VCm48%>&?^8M=agzUZT^^z%7wa@*qLDSLYJB6gG-+`(dT}kEl>(=rq5sW(H8hD49+&Pv{OWLH3oxo zVpXthk+aMRaN3D{j&{C=9^;FAo_2QnW9KmTZ~15qW53l$X-0dekJd8UyL@ymqrC@6 z+B^@@n)mx?otFBX`H+v+YpJxk$4BRDsdeTPKDt0lWz1)Ml+jWf%wPNHLM?TPc>st{ zWTan94dDKx8{LBDw~$9VW4{OMjdYlQ^(QT4sIPGn6_O0~4S#GALp|uDQ?yi@`HqiL z44lc`&&3uqa3)@&B?w#?Ts8VTG#^18oEtj~w$JD@!$>?AGtT1D%|OhEaWybRL2p%g{TA@dR-zI0K zkcrZ>^U>9p8T&Z%c{By!*vYX9*t}Sac@20s)M9N6{01PtOtCp!k(vAiQ(|+mqA)nS z@eXKY8qGlbd+3b8fyP(>Gvg2Yuo2LR@AY9EFcE*shfRR<;?Du@;M@dYGX5su1BA_h zeen-`*aDaqO?>Bm1Zs=~61PCDc{iFi(R4T10m_X)V)a@(Li{52J@q*6Bd{1iOv)BBhk5D{U*YB!<;@KyRFJZB04$V?%1(&vRTA=M(2-K21v**|&jcJbIdzikZ8C z5*@Ki9bU8T(x$)miRiSz#$u5FmuZRd+_I*23y;oe&6YM?Dfv~w(Q;cVInrRclpHJzKOcCaZQaw?o&NEtwj|Mcb5naY;&j};VW{KYpFIEXJO1@j`?FUs z{>}X76YU>-E8p>2!=2Zi)a-QH$vdxOdH)gUaS+SvtDyHl+^gn*xuYzs? z?FRAXoCf^`^eza=60M+4&}Tuc&lac(`UdE`poc)e0=*3SJLp4D0}|T->IJcs<4?|2 zUvIgIQ^b>k60!JD#A>8OtWOlNY$*{-Bt_{XBA#TV7WiTiE^f3GareYQj@J$lMLg>$ z5qDE42yU-1&*xmN!U92MRvsl{fuM*rL(S)#MG;>%CF0gW(KLqC#5VvbV)m7YC72>s zW+mbQha#SNR1n?%+O0&~x0HyrnOdyZ$~;d~ z6mhRnS}cDQu^uWBH)o2tU#k^a?> z#uMMv&TB-F@}k~4(2ehUdTJdZX6X$g6`EKGD}lhr`0*3Kg=xeyzp3EMh+Q1zkKmrs zTD3=^p2DiWGiFL^6SW@8`+Ph@6LNfY7#wo_xix{Gi~e^SEI3jq735FK?mXW=X~OFc zxmMN5=J<8N6L|K~$6Zt3P5?qMSpNp(De?!h*Tc_PeBCIy)pF4j)NSC7Tk>0hX9C|R z&_N#6k9`1WV6THu-W6OP(2a(tbu-+r<4+4;q%R8pL64)mBYcm3O8D>ksr`D>vEd?& zcJ|kmlYmS5^~Pf;>tPsc3g4=?4CyEJ>n&Jp0C-pr%0)-@2FWLN5&Y60^oE9C>5UK= zoWDLvbLh{10n`50cK`qY literal 0 HcmV?d00001 diff --git a/42sh/objs/completion/c_files.d b/42sh/objs/completion/c_files.d new file mode 100644 index 00000000..24d4b23b --- /dev/null +++ b/42sh/objs/completion/c_files.d @@ -0,0 +1,8 @@ +objs/completion/c_files.o: src/completion/c_files.c includes/completion.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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/completion/c_files.o b/42sh/objs/completion/c_files.o new file mode 100644 index 0000000000000000000000000000000000000000..36e6e7330a248ce45392d85f6de3e4371d3124d6 GIT binary patch literal 7588 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/completion/c_output.d b/42sh/objs/completion/c_output.d new file mode 100644 index 00000000..9f1cfda3 --- /dev/null +++ b/42sh/objs/completion/c_output.d @@ -0,0 +1,8 @@ +objs/completion/c_output.o: src/completion/c_output.c \ + includes/completion.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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/completion/c_output.o b/42sh/objs/completion/c_output.o new file mode 100644 index 0000000000000000000000000000000000000000..8575a478725a256be30b89f433efc937aebd564a GIT binary patch literal 4480 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 PmSFKsx!Bztih}!po)Is= literal 0 HcmV?d00001 diff --git a/42sh/objs/completion/c_sizing.d b/42sh/objs/completion/c_sizing.d new file mode 100644 index 00000000..975d4176 --- /dev/null +++ b/42sh/objs/completion/c_sizing.d @@ -0,0 +1,8 @@ +objs/completion/c_sizing.o: src/completion/c_sizing.c \ + includes/completion.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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/completion/c_sizing.o b/42sh/objs/completion/c_sizing.o new file mode 100644 index 0000000000000000000000000000000000000000..1613f12b34d640b764987d9a57028f895d6d0b9d GIT binary patch literal 4088 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 Mu|!pne4w%IKjJPH0RR91 literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/exec_ampersand.d b/42sh/objs/exec/exec_ampersand.d new file mode 100644 index 00000000..3596ecb7 --- /dev/null +++ b/42sh/objs/exec/exec_ampersand.d @@ -0,0 +1,8 @@ +objs/exec/exec_ampersand.o: src/exec/exec_ampersand.c includes/exec.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/exec_ampersand.o b/42sh/objs/exec/exec_ampersand.o new file mode 100644 index 0000000000000000000000000000000000000000..7c1a4e679cad25173d683de1f2d9857db64e5361 GIT binary patch literal 3148 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/exec_pipe.d b/42sh/objs/exec/exec_pipe.d new file mode 100644 index 00000000..cf9d0d12 --- /dev/null +++ b/42sh/objs/exec/exec_pipe.d @@ -0,0 +1,8 @@ +objs/exec/exec_pipe.o: src/exec/exec_pipe.c includes/exec.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/exec_pipe.o b/42sh/objs/exec/exec_pipe.o new file mode 100644 index 0000000000000000000000000000000000000000..38cc74707482477a2046edb535e35adf199ca5ea GIT binary patch literal 7424 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/exec_redir.d b/42sh/objs/exec/exec_redir.d new file mode 100644 index 00000000..7f5cc78f --- /dev/null +++ b/42sh/objs/exec/exec_redir.d @@ -0,0 +1,8 @@ +objs/exec/exec_redir.o: src/exec/exec_redir.c includes/exec.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/exec_redir.o b/42sh/objs/exec/exec_redir.o new file mode 100644 index 0000000000000000000000000000000000000000..b795c5b2d062b1c3ab18061df438a55338feaf2b GIT binary patch literal 4988 zcmb7IeQaA-6~DIgJ{%{`S3i<=&Dgb??eIXDXLP&HIMUmF31v*h}qv7|v@4hzi zT2`)d?m6f8&OP_s`|dgKI&Zvp_L3n)ASBR%>Odt8T?~ZQ0lG-=8ts=2-h=%dgXZh- zDM(EO(JafgcetMH>6?bPY`UWR(m^HAAE({aDuhm~PV6D`n`LF}k;-(S9%mO!n)XJ%Ln(Pw(&ru8!{e1EBtk+Qvw>z^5) z@9zcW;ClV#3fUru)cQ;E1)?2Q{Ld=Bz1TnX`mP#ZIaL_7oe%rFRI^`SRqxrGMfO+q zw>6cPA=bv{`{Nm7`)GfuQYmj+h16Dt_o4Mpsrc4PZ$fGEUvZ?Q8h`2HR;<&tDuwO2LdLQ-+%aQB#M5F5+z)>Y^}9HK>Ydm4v&XD#8E@Ac zU|BQkK}`7@QvQx8e@Yd2Jm$;fe!k^%1?jPNz4t4BBPy8lYP~4X=qPtCqE#P$fSA1@fuKEnK2iO&33U>Ny;7ezVZ!8;bOhj3qWWtkdmbi^H7BYk z6tt4l!Rlgl_%9M#dMq*V^1!{v*D)7k8#dg%F}BSvJGo*ZHW(j>55#)Yc@&Vo!2u}o z70cpF7YV1F?zeZ?UT2l7oNI3t>0-gP3$EqlcHs#+%jJ7dm2n^?2t8jcjK(SjCpTKKGcmf$ z+gVqXbE9LfC=@d`Tw?+$IhQ4-2p&i#J;;uuGbuOa4UtlXL!=}Zh9@3(6nCv`J~b)| zVtcWi!Bfd99!rm<$|9Q)>3q?_Y{hZA0E>JEi$tduCkp&bmiWzZ_-!MVU{)#@)3)Ql z)|XP-L@DKZyO)IpcQGqUxeRIg&iE>pvwRsIWHY$}x?%;}!nflviX1i_age!1FG9yn zxfMsGT(_JXskkUhftJ9{(KamUTLP^()UQasS9Z$ zsG#-8l)4o&RIOWtqPIpONFKdO(7>1j=D85UYzu^5pIO-`Zg+qNX2?yC?a#G z88pletZ%yob2e(yRkTMkaRlYZD>10fA6>rhfjg`0oDgN=X=m@qqY=t3S$uBX+T=5Mz@-2B!Ns(yeSff z7}I;gZQ%PrdM`cP1*sD&))!H$K+95FOl=pmR%#!ECX9nnJ3!h(b0Jtv@08KJ30aTP zegG0TT3^T=SO)EFKD&uKu+e|k#T}55E&`;r8E3&(Q|yY|3TEoH;K}HPS zcYtY&8aOP_xC%hyklzV?4a6unN*|`gc#X}F4r5S#r*S{TqY%RhgX51w3@y=1K#hmc z{S|to!~8o~d!+U9W=3Wl^N2j=+}gt!65%lyI!EKotC@$j?1d&cm^+ zRJ=lX@5?!#-eR~~!mncc_7yMKFV^Mi+~@BCx;*EeJrTzH|l;PcOo zA8Kycb~M?0<~Nn#&COqEnVgr7J-z$slP}*m=efxr{UJST{@fP3=boc`|2?qhE0KB2 z3k&quZg&s-^LO*V_qPj6-6wJj&R(j2gE$i&9X2gO0_Kujq731%4AjmF$3 z#NweK<{Kd<5qAiU=aLW)s!D=Qv-Ld;JEu_8(c-CR6EV_hM{+)=(*ln60Nl@%)kAr=c2J(ER3 zaIc^}3gXtQ8JTpnVlFC(9~weTL^UHzIH5jt%8DsUh?%RP1Ip?oxPmCsir-2V1ap}X zlUrG_coSkhS62K05qb-xtoSh^#NAbK{ja<;kU7j5SYK%eJ&|r^G(Q;wyY3W$9nFE} z2E*JBE6&4YJ$8Yvrl!<*oXBYNqrp!$`gd_2yP!A+%Ru1$Xe0Un=Kux#i>t`zMzU^y zu8_`GGPw2hSDdo1_2-rku9}HBJDq-cb98Wfz1k2Mh-r6RT!t~5yxzvgcti09L&iR< zYb=yHA>^mdwa%ngm((KqXS8}fskN-tjJ4W4XfbHPwOV^pi$ZIG)}7QAC$$d1`?W^>XIcZW zwzXO?sWs`RwV}$nkss0bQa#}&o|WQLp3^Wr`roFiyJb2G}zmPyk@J* uK7M+*DZH`5Xx?^<1>yZx!9S+(>%kWMrGQ_!_z|Oq+o?=O%6x5@Li`sd2kFuP 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..41c7b05e --- /dev/null +++ b/42sh/objs/exec/exec_semi.d @@ -0,0 +1,8 @@ +objs/exec/exec_semi.o: src/exec/exec_semi.c includes/exec.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/exec_semi.o b/42sh/objs/exec/exec_semi.o new file mode 100644 index 0000000000000000000000000000000000000000..c8813974a450f8af5112585ae35df0d99620db68 GIT binary patch literal 2932 zcma)8Z)jUp6u<8!?=@}OBx`2voQy!{oM@A-+qCH1R%|5=6=d$8uyRS#m*malCFH%V ze>QPYkp{nPh~l?>@XP!-&=3AYL8Xew_CXK@L4?6z6LkzNR;<7C-o0s(t+ofwJ@=e@ z?(dy*?!R~S?_dAzU`+8bG+;ltqM?a_LEFH~WL$>^$QN`$NT~yp5r=6I#JOY4I$qz? zkB*-_x~9usN^}U1KKovmC!w5|J|sDxHZrw5x1FkM=6vkL=#gg|E)wTUVfj(S*KlA= zZR$7hish_pZpRB#ahm9o-lTZld*Y=tnW}My;%$vj;>`<~&ElC>u1r(f@#-SJp9J1E zDn95tS-*Ait){KKVc(6HYsrSOKLwtL>b5N&ay?4vtQ%r`d=gKVabvu6rBXDwl`c_u zcjcQGUq2uM`fJ1ZJiKz|w7bCV@x3GPb_%?`0nu3#ZTU9ES4n5v@s`@~PHYm-nXBA0 z-^z^2-E#GXpgghNyvt~?dn)AuACSSHJ@M6Na z2s|>~!Tu9#-iBusc&>`o^(JuMdLQ)rJ^Nu#u*(8Zs4U1>LH0??{Z}+C7qLCxlLGG> zG3kcL_n&p*qq;=MHwXt11>X<$<6Xi=RO42;EVgFdNem%KxE0V0g zyqtWU_)v0TDRP4*uIc^t@jJq_Uyjtre|JrLK1(iq5t;gYl+I6Va`O0du`@>1Hp^CQ zBt8@$itWx8ap(s}hM>gv4afI9!t81`Vays{!)>Ev#xu(a(khi9CsVK7@r(=kdcTecj-a=2~IV+0L%XrFe8iJ2jR`Z(-c*FpRBHFD1O2R1r#J5+ z*uO)+2Jtr7cglYmq9dTum#~#y7)?@Il2JgHJl%WSX3k!@O*y-XK*l|nmbqkVpSucb z#^1Y z>@6ayFPW(10_*>((18qPW|$#K>>mPZAz2({{s>cMBTA&ZBX9v;^rZ*EU#$?>>Z;s- zY%~;kO?{?E{-!L!M`ep>6=fyVgI1w$fE9W8S<%eooP=p*i?wMyLW!DPm0H5wJMws| z#h$YhTs&8e>j2jVAl;iFUZC^id7zJ#6DJ-DEg$P_92#F((R#W*(z^AO7CoS;DXm9; zu}KT-*ELm7>6cU;fwO~{jJbouUII@)3JLhZej%Um?0Q1TT|({<5`v=C-xQJxA^*o{ s>;cbCU6*KslaC~-d9%)VBY)=Ie)u`XwPrAmn-Q-Zu0@`6Tra}-54rS?*#H0l literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/fd_is_valid.d b/42sh/objs/exec/fd_is_valid.d new file mode 100644 index 00000000..e0f8b93a --- /dev/null +++ b/42sh/objs/exec/fd_is_valid.d @@ -0,0 +1,8 @@ +objs/exec/fd_is_valid.o: src/exec/fd_is_valid.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/fd_is_valid.o b/42sh/objs/exec/fd_is_valid.o new file mode 100644 index 0000000000000000000000000000000000000000..5b942c63074ee3bc788887f72beaa14c7301b271 GIT binary patch literal 2356 zcmb7E-AhzK6hE`;T|ZWL*OVywU?KaEbk{;iOib~k6%3@*42p5Rd)2M=?&a=k8U=wA zl`r#uk3IBI&_hwsi=<`e+?mn4*GxMwbM85F&ToF_+?jd%^XuUIATiE?wL;V}J`s$P) zgh$&hlmPh1R|L07Dd9Y2j7*O4T;6tEoOfPqKi{pELE(s1fOnGLdVqvgw!+I~^}pgh zQ-M-<2Rx1~@RB1VwlPKZ7xGhhUH^%fHb=9R;>BB$I4P;;B)_NFKk6fj(?;=0`J#Vz z(i}5#oAEdu2A6!>VZ9Sc-J$5^r|=Z)_IOFl${5^CP7u9K^$ts*7RmAZw)_NMcI2w_ zgT4G7OS~G1S4W4pP(1x}@w1Y;7jMaf*SABw{EYS2dOu3MvyxMOhj@7D97r#}ycAGPuCiUiIJ-vdiV zw@Exe9Qo8Zo*=-uS|Y8^b0%#%h~9b^C0lz!J0Y|j z*KAX1_|Yr$J?L7gVc};>iP<-iE3ez>=0tmY2hT;P3_F+3n$f0ML#!csOwZtTuWxEV zBi48_cA^$?wjMX84Lv@Z;^`cpN@mijm=5uQ9A?JHu4k{NlJUlqxpA&rGu)cYje{!^ z(qj;fS5Fl_O*P;T zwFZOK#$g@q38@8L~)C|Q_HD7uD|Rs@i^ z(4HW4HIR}c!WNInrG@5J+SeRH)~67-M`;k27N{p$eQC?SX@-qXq60gJ;X(P`dvA{9&d=%6@2Nffnt+ zymqKXJ2J1;4QYp-YrY|001;~iVEt}qFQ`8y>_A-VBT^rf8Wn94XqLJXb=cXJR-83K cLYP1|+_g-P2{&vzYXcwE&3p#c#^u1+KUInp9{>OV literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/ft_exec.d b/42sh/objs/exec/ft_exec.d new file mode 100644 index 00000000..54dd80bc --- /dev/null +++ b/42sh/objs/exec/ft_exec.d @@ -0,0 +1,8 @@ +objs/exec/ft_exec.o: src/exec/ft_exec.c includes/exec.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/ft_exec.o b/42sh/objs/exec/ft_exec.o new file mode 100644 index 0000000000000000000000000000000000000000..93d849f24510c6828baf9a9814c6af92f071f87f GIT binary patch literal 4844 zcmb7HeQZ|r3kH)x~f%Gq)wyVAMBr1YXd`SQ8f)!8rmPz#y9bE{3b_XCr{wvy1zddkS={P)W z3PMoLv#e6$NJ%k3mbJHU|K54tp?;+Z+M_S=1|jGhm@y)!Synt+iaH$a?daXxJI_xk za!ldZ4BOr)?9s34278IYa>^=}3UUbc_Vqq^|D0M64+rg4g+q&txNHr(ckE?yF)66F z_ooHgLcHg#oGs}E8jii_;9wzfNbYxme~!J6m6_YMm(C`0oKo%IFXW*MaY=dcqR%#b z2Ir@)`j-9`qS;iUxY*t^IRDC)tgYlEeM@`8(U^3x+CRshx(@O6_M-WGCShfx!*p-a zexFtT?N@H4zSck6UT*L)dBN5G{aM*ttL(jhoA#uC`Dm=#o?FG6WAAUbX|FVrzvX_{ zD|@HZshf4m(RoyLANGEc#L{H7f4^1n;rMsDe%_Fxs_eyb!`NrZDrXO;vvJGn-%&Z^ zy0RBi!au+sL-LP^KXvC-_7X!@vVhyQCsfy$<{DexV8!L^ zz2E)H-Uj7Nw<>hgU*R9mMXLDiiFCdha25L8>S&`7d0>{)2LP3gx`f3gr&81Em>lW57MX;Ch)nd&L|%}I9*OOl zj-36AC!&2A8SfVL#~z}l8k^iR6PffyVgpe5D^xB4EKAV%^HfJA%Lj(6z(312l6pSro#kMM5 zOjQdO^1ZAYq5l4d_k<253dM9T8|rTFZ0`)U#WE;$-|FrJ)82JY`^F8TScr8bjwE6o z$&y9f9upk{Ma=3*9nL)#k9Kt3Qyj8l`4KB$E)I#5R2q)vg{@AiI4?uuVt~meGP!Ij zB)fFBB$9%C$r>yb5(&((ak`Wk7O`Bml*pE>V)_Y;ptDMhXuS>p`MXru&e*ade1=`_Iqt;Vnn_pi` zKZK~)g-eNOCD^rqZCGC6g7_GT&RoaxGV*K1Hzg+)M6UBnay^2<9RSU!_qnH(rke%C z6UKb6(5b-+rmZt_Ktb1ba|Cz{;OcXQg?R$hOXTi%g`qzQ@+pAU=zSVU_xgSeRPzQ! z{-2>2-jnEbkMA8I-x<>Hqx%WK9X4JE3b`B2w}6?u?j>B~Z8GGRVhwW|+)8rGT;ZU3 z#o?B_!p)*quf@o_km)P+><*Y2f8i2C1yl)jp)d4Laq>*v@S9^gS|EX)Ix7q}B5tx4YpodJ^JhDU+CX0x0s z7hXZLL(bF|y5TzteQyjhL-V}=T7MbcVH#Lvi~==#mzqa`d9GeumoO(leZ*PK^y^0s zcL)3uKF;=WF?=r`>Wy$B83MmNY?Nujek+k~zx2wD?PqVC?*<(KFnXmNn2k3~{w{WC zj$OqrvWxG^?Ej;KBo@m6OK2R;4WNH++>u9qobC1bWu({qbaM`0Pb>!f#3RK8*Nufv zj=nkl*~W=~{A)B=d+5yWwyPIT4LpA8lP_zYdV90}(JwEr`}DKZxz>}H&aYarDckz% z(Qn`E9DC0HNW;vEm->^f_pK@9pFR82(V0E3j-L4U#g+rF9Xz%9#6PDQq|6MS!FK_S z2431B0Plm5{SM$9;P-$Tz)e5^2frH71=tBV02l_00ZssD13$qiSPP8CM4*Vd!EK?v z4xoscs6?z26tQ%uiL3?`u{`iR(PVA`Guf1gu}&?9gt8^G01~E=(mDs0S}Y7oB!e0v zCV>($z^TQUUk;2W%NXz&KxwgzP>biMTxB(*i0P$7%x8+2;>woHD2SMn$`;EhwHTwy zdnO4*jC>`M=>rk-Nlj#RqZTWo63IdW5$lT*$)XJri@6g0uShl#kBmBKS2k4~x!i*0 z1i1FZgF-tJ)Pl99_eE&&1ik_I@N*iQopp+<=nVv)ac!?te`~~@&~*upYTC^}9eVDD z+tSk6Sf(7uzm80LFj?xDV>`;lg2Q#BH+6qUERYmOiXHN~Q=EH92_gS$v=7m)d{IeC zK6oI+iP{rDBT>}@2aHFE`6n1sH6JbD8D^VFWpaZyB|L`k!G_)3Et>ABc~AG2b<^0b zk1i+_01EzeX!a$P0pfDq<9tuvAMGFf}DZx(Qieb@F#qX=)!&N-}sGLu_lIK1u zc_AOW>V;^{KZk8`F)^H08o7d%PAWQz|B7==K8@G0tsWiDq)#L3q~9QY&|o#ZBW-LQ zoQ!fv`WZ&WJXnzmgkd}wAA9hcZr4sy5J<#Fv0Mg0BLQx9l!ToOBU!GLviS)K)brUq zs%$S(Fpgy7He?tnbG$lXfK)(+vE$3zMt9oH>?s-7n^KnQ_+Yq#(&oz*lB@C+Xu=(7 zx6h$i)m8Ztw>0L<0~cd z6K45(zMp7-7ec+Uo|5y@H|U$QWXaaN3K{y;XLGK`@eP7kj<4`B&j0UsTi zG3-AXavh(UG14WhuH{gFA8e3({gTfcwD_dT{ETJnI?3hpo6QTx`tfEY-xD$z9ek9& zeuMaEUc_DKw+<2o-+`QgJt5u}#*RZG4mN`9Ow4TruDsg?VtMeyCbK!!c?zK zy{FfzS1!aCt|IBPQ}5MYyFwg#Ek3_#ZsrwzdTO4{44(@g{|wOC_`>v@Qj0I>$$5Qt z@4PxnNuO~T=@OkexG-T9@(@C}WYr{xlLV0kRZJv(&?Q@K=&pI%%?40b~;{^H_qKM@lv zT`t6zU_fJA(x=aleC^d3+eY_LcxdRM;qYT-shln3!@Zqdon7G#$s8`vXm1yk&hE{f zn>Mm?DH$^ln#owYVx)0OsNR`mvAtz@#wHFF_NNlD?#<;wp`W=0XvU1L#J z&`ZV4ERYC);_@;KRP*ftTJ-+vFPfmT%e5JylraEmM?Ea||Fn9BUC8b5dz$N9>ViS6m+qw4|r!( z-8X|Ob)*ic5#~FInhAGxP>pzfKee^{)kw(qJT&T79a1A5KB5e`!t3ELLIk#=P&ft6&!ZZo`RQ=;qHiB6 z>#&@>NNnGBXkOnev~JlJ^8M1GwfKGqZKrH&^ZfJ2vI$IfSe^{qc#uWRYdF|id{VK^#``;RJSuWq)3)-y?K7N(ENAWd}2pIc3LLP z=}S<(ulU3{_-|%IFCfZoWQau14XhC)N31wALbq_@c0(sgiH;1tsJsr0KG&7KJKqXu ze)q49@$QEoKC&XT? zQ9`r@aaB;FH6<(BFw&6@5J9xlB}8Y8AUYJ1i*_?Xv~MLu2a+J#u@a&ULJ;ja$tBJ) zAlkGt2-+=VMH@&u(k3H__ML?O-xly->1b)-;Yjj=BAyk=UUcQ~C{qrGlu)C`OSaU} z?Z~J9LtIy{+7}$#76?7AZf}y$a#n+_%3gq_qI?`^La9(6$cp_DXR&Iz6wBt5xoXN> zp~T9E$}#(MxUwa?rMG7#0$cnnTk#%1FV;7(GeeiQ%_P29WnkFJ%XPQImUb=k!NW?f zpu*h^-aULxl{aXE+*{#3ZJGzQG2U^Kx18j`3RmCfpVHm{c7`{NanCXC)+V@XAHN+& zZG*gJjJr^3&+^+qunru9&vOowwflH8e7s})&iA>u5B9I~y8vt%BwV$aly^$` zSt%hzI~@566JY-Xueu`p 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..fc9b6a02 --- /dev/null +++ b/42sh/objs/exec/launch_process.d @@ -0,0 +1,8 @@ +objs/exec/launch_process.o: src/exec/launch_process.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/launch_process.o b/42sh/objs/exec/launch_process.o new file mode 100644 index 0000000000000000000000000000000000000000..64d100adf60bfb9d9cf1f30b3394a7ec8b4f6cc0 GIT binary patch literal 6120 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 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..0610549f --- /dev/null +++ b/42sh/objs/exec/process_reset.d @@ -0,0 +1,8 @@ +objs/exec/process_reset.o: src/exec/process_reset.c includes/exec.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/process_reset.o b/42sh/objs/exec/process_reset.o new file mode 100644 index 0000000000000000000000000000000000000000..ee89dc0ef88efb2bb0bb37ce5e9b7a8746596231 GIT binary patch literal 3648 zcma)8Yitx%6uvXNv$O5C+l2x`fM%2BQ3&jowrCZjt%58Ml^{Ov?1fesV|l{9p55ZW}*Fpc+V9bxao0mh*DIxq#PiAFTTaI77U zCwuz3Wt-OB(S2!^6o|)R&op{@K^gLW$PFWF^;Y@~+bO$d!&thpXYDgp7awOcCx!Nt z%+J%@UL7S@@$$utYp%sRDslXnPEKxYyC%PrPkr#!ay{KOfIu#s}k>rBdE9 z3g$MZch`Jp%KRReX&rxHejZ-2cdNU>wfSw9c(WwlwQ=IP`IXE}E#96QyvBM7e23Mn zpO>Grvvkk-9+7xAuf^Nf~@{Fhu^g$kC4QO=Z5I&8zk4Ijg z-hVm0_j)Y7f6wq$2BhEKGn_u_W>4|#a%Lf|%Ui4R+snJsvtJ$_8AB(V$Y#7YqIIO2N+c7p!cY2^9D$ImJxAXd}uoor*0?$0_G}D-I5#WAx?Ce&NQs z9b=RU%Is*f7Kp||)1woViP&p33FAbiyFL(oEV3jrx8X_Ft0q)wSka7YxJi&{Q@}ho zAwtbcAR37<2JdB~2t-#jQ|Ut0g=ay1A`-!uy2;9l=DC2Z*IbOq9G5k?uj^%w&q5Gk zR-I@N3&_xxdCcusNx6EeeS@;W#3!XmQ3C4wJNURLO`GT(+=5QyDSH(ZXbrsv)~(Lh z-vIvyq%KesLVuSMQ&^}b!ummIQEEvw5z~)Cd!AZKO-$9#LhGc~rY2_S=Y4IFnuzP) zK`ZfFyP9a#=R_h`Pt>n~e-5)giR*F$+6iitxh}IIU7$7v>mnMouOQ!sN4P~h2QdH&z7%He zdN@dI?N@Y5L4oG*D(YdJ`WJfA5QR@D2)B83_X8OM*YLxEnnh!+(H;a5pG||zOfen7tCco-Gat&hUxo8dZszG%W}Vx3 z;`P5y?p}N=^z~EDl*3m)tEjVMUtF4VqitwkQXJo{`okUMG_NMxDqx>BZP4HF41vo0ot!N{9g=2se{|ytl zLMC6y;`UBe>~czKsa!|b!(%P>&KegOQik^jme2L}Iex5-yQ$_~#DILok^?MqH^dXY zaLB0psvLyuK5MX}{`0m20W)&nDuW77g{Z6E&4DIGQ|rIntc61>H8oVx>LhP)`Ccss zu7rM2Ls$U8BZGVvKH~9EO7c09w@3~~ztAs|Lw47bb~gU+&{l2!EAIUbU=E`fp)ZSN G5&r>PMhgP~ literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/process_resetfds.d b/42sh/objs/exec/process_resetfds.d new file mode 100644 index 00000000..414d7157 --- /dev/null +++ b/42sh/objs/exec/process_resetfds.d @@ -0,0 +1,8 @@ +objs/exec/process_resetfds.o: src/exec/process_resetfds.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/process_resetfds.o b/42sh/objs/exec/process_resetfds.o new file mode 100644 index 0000000000000000000000000000000000000000..7ab8577787597abf93b9b93865d421efd57bebc7 GIT binary patch literal 4676 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 QRcmUB{zd#`qLgI+2iw`w&Hw-a 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..b107df21 --- /dev/null +++ b/42sh/objs/exec/process_setgroup.d @@ -0,0 +1,8 @@ +objs/exec/process_setgroup.o: src/exec/process_setgroup.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/process_setgroup.o b/42sh/objs/exec/process_setgroup.o new file mode 100644 index 0000000000000000000000000000000000000000..818e0252645924bd7f095dbc83f981b852d7aabe GIT binary patch literal 6556 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 UCbd`)Ru&)d3g;g$`7#&(0f|x)?*IS* 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..b423aab4 --- /dev/null +++ b/42sh/objs/exec/process_setsig.d @@ -0,0 +1,8 @@ +objs/exec/process_setsig.o: src/exec/process_setsig.c includes/exec.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/process_setsig.o b/42sh/objs/exec/process_setsig.o new file mode 100644 index 0000000000000000000000000000000000000000..79d3276a54c11e10197753a55e55e15ea6c6cc28 GIT binary patch literal 2392 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/redirect_great.d b/42sh/objs/exec/redirect_great.d new file mode 100644 index 00000000..9a8fe803 --- /dev/null +++ b/42sh/objs/exec/redirect_great.d @@ -0,0 +1,8 @@ +objs/exec/redirect_great.o: src/exec/redirect_great.c includes/exec.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/redirect_great.o b/42sh/objs/exec/redirect_great.o new file mode 100644 index 0000000000000000000000000000000000000000..d0a35417458d7e17cbb038fd70601de69dbe645f GIT binary patch literal 3392 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/exec/redirect_lessand.d b/42sh/objs/exec/redirect_lessand.d new file mode 100644 index 00000000..60f4bb65 --- /dev/null +++ b/42sh/objs/exec/redirect_lessand.d @@ -0,0 +1,8 @@ +objs/exec/redirect_lessand.o: src/exec/redirect_lessand.c includes/exec.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/redirect_lessand.o b/42sh/objs/exec/redirect_lessand.o new file mode 100644 index 0000000000000000000000000000000000000000..fe3077b69b0d6a081c23da67a549693f1a605ab0 GIT binary patch literal 3328 zcmb7GZD?Cn7(Vyj+?%9nleBePUH6f#(@n5x90QAsx;i7-=wR&2O^|Dvq)ld)grsRR z+1yw=T`A}$4u2^4!(So}5y2nAP&QOhP*gQz3W_k>3iOf z^PcCv=RN1V=~ve--|z~dXaWP+11{?rB4E(n;Hz}rhK?Hc#Br_xIW{l_IYcMOG>5bG zVOzKD9f{pLW^70MQ7XjaXFHmOus-1thn*No)68TCYC~pqxMI0Y^YJJ9wmmT&;^6!s zJ$q%I(*Z)L4f-@*p_I1VZoKzdoCbP~o10B@;-v-#D%la{J3BuI?}WsdFJ8VlSmF{l z-bVTL7XmD@AvH4xUrSJL9Fw z~q+x6-V>MjA`~i z-nb$r@gmasG4Pmj4);%{?83|D%)tsy*IrpZ=DMA^;$jZ<8PE5@tZaE)0|J0M`-E)INvoA$Q&mV*OOysV^5#y<9m+u_wU*g8Oc_v`BE{`8;wO{ku~W8noxId z3`TU_+UNuKiE1U?ldWgdJ(X-GU&-Ru6|&W8s+ftUMbFMEmiG*emiA^+J?qw1b7s1{ z-z?XvIpGc$`Qotc6vL)9DXLQPRlqq|NDYZXsW=p|2F4e~XsMFHoF!_uNas=&F_;nQ zLaCaCQYvIH7PF&5X;tnCw(D9jY;*=&l{TEb8ilh>+0di~9}27wtZv@a{wU5w(}gNs zo7!8ojumO^X`lL?<)A z0bmVpp=cKOQ-G4Tutw(xa{5&|4rNyc0ZK@zQ)udm@_x%cgwdm(D11q)m6Nb?-_UBK zCG;8xk1-D6eHjB+s4ILgLPWG>e!9K}YZ0|e_}_-cW!eh0%jbUw+Ap+Ls$F6Kr_NlL z+SMVvKf!zzthVc~L+C#5Wr+9a>1z5A!l!ju2&}!fnCNHVwa`0Z31bl^^waPeP?FpG zk}QnFd@Ur~w*OCf=KPX1teRB{$S4CqjcaMU*WLvEpBNu7$b6S1woC>8@Mvf<9;>+s zK}?@Jj#S(sbnHfxq4@Ej{`D+2xmSG(CT6z5c~9#Ia_l zz@LD>1784N1GiwqJTmT^wOR!RF`O<|UAkC&x_EjE!5|isE>>1X@j&R}Im##=4qZI2 zMPLwb16{lgxZ@<=6S~I1a^Zi~(2M$T?}(lud3y;ni=4tL&utS*J*)?Fy0B z4{$WcM_Eo)(7kLO&zQ$*krq;Pqv^D9ME4sxJ#1{&wYafIH-6LGpm)Ue1)Fsvu4~4S zZhWLKfDeCdu$DmvFtJ;2GRE|UuzYc-59_VA+6L7y;zx8Ja6^QM;}d&;6xUU(XdBl9 z^zODSrKb9^MWiIpx0@FSS$4k#i3`}xWAi{h3yHYym2&<;+ctWnyjM#8ZXnJoC#5NE zUiuI}BxyBdgK6oFw#0S9#bQ^yFzwE4clU;03}Fst%zV`xNfq)LVGg7+a0oL~E3YNk Ezi$uJV*mgE 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..2b26cc30 --- /dev/null +++ b/42sh/objs/exec/set_exitstatus.d @@ -0,0 +1,8 @@ +objs/exec/set_exitstatus.o: src/exec/set_exitstatus.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/exec/set_exitstatus.o b/42sh/objs/exec/set_exitstatus.o new file mode 100644 index 0000000000000000000000000000000000000000..30de57d18f7727712317a9bfd2d932bd9a3cff94 GIT binary patch literal 3348 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
% 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 IzEa?S04BHN{Qv*} 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..b959319b --- /dev/null +++ b/42sh/objs/glob/expand_brace.d @@ -0,0 +1,8 @@ +objs/glob/expand_brace.o: src/glob/expand_brace.c includes/glob.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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/completion.h diff --git a/42sh/objs/glob/expand_brace.o b/42sh/objs/glob/expand_brace.o new file mode 100644 index 0000000000000000000000000000000000000000..b6a67fe872a09d86292ac84608be5d7966c4747c GIT binary patch literal 8452 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 L%h_!Hc9Z`C^61l0 literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/expand_var.d b/42sh/objs/glob/expand_var.d new file mode 100644 index 00000000..83a1b338 --- /dev/null +++ b/42sh/objs/glob/expand_var.d @@ -0,0 +1,8 @@ +objs/glob/expand_var.o: src/glob/expand_var.c includes/glob.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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/completion.h diff --git a/42sh/objs/glob/expand_var.o b/42sh/objs/glob/expand_var.o new file mode 100644 index 0000000000000000000000000000000000000000..681069288b736175edc32df421deac70388b209c GIT binary patch literal 5912 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/ft_strsplit_esc.d b/42sh/objs/glob/ft_strsplit_esc.d new file mode 100644 index 00000000..fb2f7f6e --- /dev/null +++ b/42sh/objs/glob/ft_strsplit_esc.d @@ -0,0 +1,8 @@ +objs/glob/ft_strsplit_esc.o: src/glob/ft_strsplit_esc.c includes/glob.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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/completion.h diff --git a/42sh/objs/glob/ft_strsplit_esc.o b/42sh/objs/glob/ft_strsplit_esc.o new file mode 100644 index 0000000000000000000000000000000000000000..3641cd5f9d622f910ad312c332793a7ce4adad47 GIT binary patch literal 5012 zcmb7Idu&tJ89&!I$8lot%>x(|TEZF_tcw#ElX!TLwA}U9Br5ALv(Tp7#Cf9NcyU~4 zS0um$`B7=6DtmPjNYm7IVpF$iOmrh88zO;if{hdcwUmV}RJ=N4Fs4EdnhJYq8H z8VS)%v!~@?k2SXV-Fk5ML*5=;m2*)%8rGLF<|1VQJ50oGrrF%m6l*i1J>5cNnmfK; z_tIBvHM8TKlM=IdT4fI$_JF7zud^#8#QE_OGC$jAsoNe+(>dccHZ^s(yh8D3;v!a4R4e1XEQQw)kM5K|VgC_D%iAw4?PhB?R@YLR=FI!xw2YUr)T{;< ziHsv8*xv0@CCK#o?FfsA`T5q!^PiL``sKwm27Gc)&cH`?DWS-2%aN2z(LaK{6STgZ zF@x0TyU?kT4Rwk~Sab1$eXJHRl7BPeAMHw9`-Ng84^0}$*my#}H>medp?y4{XuWjO zCkTrXKQzg-UfQX~pq{1p6BjVKk%nJ7Hm>yr?v0Z)-me&;Nn_yes*(J+kQhmQ#E56} zy^p|qP#-2ABdud{eQ14uV!%iTCbd2X>=O+av}0d@I!CPa#qMpMBuy`h!_s;`=1bz6 zozhMXK%UYsyldkwwL=r8q&_+EBcwF}VQxe*QJ;3~X<;mq83G0*)L}E>8nU5JL#3E%UenoKY@N_cM`nXu+@j2(Yp&eTbqxTh*9W#|;huq)% zuY~@g)=Q@;erODZ>Ia|FKTPO1Qu>YQslNxkTmcLAw-XJ+TJMt(%WaK316h$jmIw7d z{Ld+vr1atSmlIbi747Vh+Ax-E7{dub1W)|Ip+w;N{1L9F^y|Vq9T;18B^eO@M*I?X zX)HVO1nttdKbe|B;#iv+TARbb^l*K!o2>OQk^$?)-X;B@K1yUpN;pM#W>@GQRp_=| zp;4HKi0(5>nG#*sD-|Lh9gO6j+9Dm0pG7|pHF$ovsTQu>Ij z&?r?%_}djqH{6X6D9MJq6Qw9sTEA;msgC}LSJc<|Cnkz!>jomEImxY_mkQ8>dgfZ?2_b_@i3Ts4XAr@WFI#_GR zK?VyJ>59UMDW%G4PdQgTCC=rZQl$(>%Av6raOba8^?kR`|Z0$}W}FK`Tiagnw9LkOITUm9Aig7Np)57 z_MFmu&N=@d8^TR}k&I7c!mcuopJ(nFIn*3ZxI+~uUqAiMA0O1i&P4AXMNfFgfiarf!p)4S*?IsTZ#huaY4fz90GfQvpo|TW#+qo;Ry~LD*B}&PH zLRSX1gmMLX?Z?(S+6R!;c}k8uo?A$7MrvfY1AT4QvXeO2Ty~wXJN>}2lXzy?_2Pgz z*m_th%6~lz@l^;px?e!sV%L6N>g?f*Z*XUjtIjsQX04RwHH|YKCo?EJ&|L+=nOAM z>OM;ANiSDjXP|T~vf!dDKE5WypYih=fJUK$e2L4;3xhCf`xKioGARIl^{hyV7pn_{ z0PEw-sqPh-9H&f*e`YU4`I(2XQ5Oer6cY}yPCmZa$5&_g=l#4IAg~5Oz8E;L^2NaM zXqz!>bHsnk9cf-{5(0-4+YX!VjRNsMn<~Gg`*1;EShZHt7h!~9)n{pUg3>9+kD02k zf}&OJwB*j`BprbeL+3R~4M}SyT_fpJdGZR$g9!g^lGcKH5YWB@=&vX7_L;|!Y4nk8 vC1?)I%JTSU@_1(Ezdp>4s7VhEdd67VSd%s0-`Gk2YLXt-)5H{y6~_Jtx3mR# 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..60a061d1 --- /dev/null +++ b/42sh/objs/glob/ft_strsplit_spe.d @@ -0,0 +1,8 @@ +objs/glob/ft_strsplit_spe.o: src/glob/ft_strsplit_spe.c includes/glob.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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/completion.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..645e86aff2dec8a4421a86fa266fbfe7a6b24167 GIT binary patch literal 4992 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 J1FRSp`w!2s6UzVq 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..09291965 --- /dev/null +++ b/42sh/objs/glob/is_char_esc.d @@ -0,0 +1,8 @@ +objs/glob/is_char_esc.o: src/glob/is_char_esc.c includes/glob.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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/completion.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..973d629d99eb687b2d2a50db2b331400d03986f7 GIT binary patch literal 4672 zcmcInVQgE~6~52*bzD2O-Gl;LN8^eP8b+LiWlB}TTB|mC35f&+rvXvDIJT1*CAJki zG_9~y&9uss*$7Z1U?A~hi2dO25QTvP1wq-QEfkGT^A8J!HJyr7s+XRG#gr)-pK}utK&QiXE3l zlP0OUe5?4SBhh-i9d&qbTq9ogP@czEdqWIexyI)0IjRhb&yx_qOl zN#vQ;rjrK~$(W|~2dh_##~N%ip{?fdIJ8G zY7sgHO~>wDv}&Pzsnq~hJ6xq7R`oAbJ$FIXrIabBAfT5GtvKfhD!|BmF%+T+HW+%=61?FS>ExApR$)zJ+k{-4&}Ey{Hy) z7d)?D*BvZ`ihAfwP@mVspFY2QsW5P+b)gXc^z=&pb0xom=n{-dc8+im9#2*XT|RKq z)3S$2{$=n-4&fzzU=d`?Sa}=VWHv2Em$JDI-F$A5d7hv;qo;U&MYTJ34<4&b)k1hl zEda9hqW+nlD;08!;9Al{MQ{~Fi>(W%&lbWZBccAnKskVnIybD$E(B&9I}e;3^|au` z*7K9(WPPdBvc4d9R1kTHh)}*KDBm}!ZeRj7*re8P0{VrZ9wIV}dZ;7{SA3qz7+5Y- z=}MiYf&JGymltt>MYZ6BLR zjkG5+T68=zrNuK*f0VU{Gg#R^b};owEYjX}M`m1$rVnZ9>C8BrPG%Bg$#~31{;X;p z%fz!45N$FQi`R^-8p#xeVX^6S#hoRRSw@42WI}v;2ylFZXz5gjQ8VxohvO_6KPc8K zo0K2Bo4M8PwQq56Qkrm-EFRX|jQeamv$}uoa^b|;{BUbh_BgHXU9LM_w>I`R@5Zaf zIkU(iT43+0F&pX^(Gtfk0-HH;`xqCHL)>qT>~`8A$X-K#=`6*1RhKED3ne)Gw z9c6G5J;kH^9Y_kdJe58n>@Q)$8h@KC@3LVHe_XNbmZu*6gsdi7$QtJHAbE%^h%$JH zo?8{doDrB?{TQJL0<%S8jtflFiv5LFwGbvE42uZcj0nRL`C=tPfqYx5BDB^-xUD9F zuz(p8n7134<~9DLyv~)u=LoZ_3bU&Q^Jg`f!m40)3ryRb#4^jT4E~ldcPj+6TH)QY z!V`ZJvkt7Hj7ww%$dy@thX=P=C}9Wfq2)656nI)cfN578A|g}o52#cWy3(l8Jx)Sn z3Nt>Y=y!yO(eE}Lf|oY(4Ihh5lx&9=v`~mp7b!SIoC4^lg#|y!RZg$rN<6=h59LFRerrgmPdQsr2^)UF z36F&4I*!b`qP}Mzd->HrTK77A5>v@@FjI_8znB-Dv)eAip45N&3k=*7c+FHB>h6%rmhb-f{T-S^7PRzL0g| z5~rP)3_O|Nnz-*E7Yl2Hr=tAZy%A4^YJjGgKR&GbR|LO4G|x8B3nRqpRd|E*YwofS zanC5fVTf-T<>*`OW8Co;Z?gAsZy$H`aJ!#7?RRlI258RZc#wPSJ-nfZ-}D;a*2lNJ z$u|%2TZg!PR5)1P;>t8<$ARwXtcAaMi2r1ixA*aGgfie9U(|+bMkpWPxA*a_bNoi2 zB76_G^l)#MEA~^I9lJ7Z$6eK6AZWjbZ$qFhjwZg@PuV&9xCMz3)MuRi>nc#q-w$dx zZ*!jIH&fNX`4^%Rji>l#4E#{UblM-}7FdcsZ*gM3a2Bu^xZB!(1C4Xn_6qGDx-Ut6 zpVYll{|Ea<^IuE-YpI`+dau-XN_~seTctiC^{~`?r1nV-CGdAi9fI~Cp!u%tls1$Q z`a-7pVKkB((8!)A19Cqa+2*@UUFnLRai>??OdHK=lkrJ>6NxUqQ}9v3w6z~VHA76R Q{#w#%zJFF7<=4@F0k@(=O8@`> literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_back.d b/42sh/objs/glob/lib_perso/ft_ld_back.d new file mode 100644 index 00000000..b2702dac --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_back.d @@ -0,0 +1,8 @@ +objs/glob/lib_perso/ft_ld_back.o: src/glob/lib_perso/ft_ld_back.c \ + includes/glob.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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/completion.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_back.o b/42sh/objs/glob/lib_perso/ft_ld_back.o new file mode 100644 index 0000000000000000000000000000000000000000..30a5ae6989208272718de9286096d06830be9cd4 GIT binary patch literal 2512 zcmb7F&2Jl35TCc3T|2g8J2fpSRLD}G1yt;`s?-RONR$NGA(g6rgdRYT^?GBw-R!Px zr*%t%DwPj~3K4n-q8=(Pm2%@+)IWd&^wdi)m1t2Vju9Zt%_^?A;4bo%3Q^Xn21WXa38X0sqHx}{TFsyz_-E$M zo$30rHzPWP*Ej4CT$4FuIWJqKl?rb(>wcK?+4rYUz1vBVI5$P)7s0QS0HE~rJ9xHh z`r$C%{oZ8kTY4z43!YIb)vb%fx1XQHa|O(xcr|CqFA3w#(&nMu4h;M%_+1UY&%unJ;*k|Jzo@ZO!F_wwmw)Oj60KF|Zef&&* z0iIhr?{9FJ-yt!Zmj&LB1LFDoJi`p*y%)lJFd$y@vbW=WU4geG__YVb!%OEwhWXtO z@w1`=xNAg45a8T&mvNp=zT#Y}Ic3flX1l4_Qv)w6g6oJ!p$$BLVyi-UR+TT+ad(3P z&imhktiYQRc$)%GxDW@Z%05~79@sUiL7tQE!BsB~{k zMGI?lTaO>M+wD%$hxexG;$#;V7Efd^TJ=WFb+VJWiQGi?Rnx}X{>J14I=N#7brMvQGXi}aF~`5 zWg#$rJ0tp?V<`h{kxmv%u@A_o$~UdAeV<$yGO*EXZ0J=|UeH@;#+1F0RkYtz=y_!v zBA;PzgS;_iJR12@di#~}G(?A}9JloJbbag>DN29j%7HVLIdiuis95clC>(zP&ny{%KTN1maJtvJVx77KB1H zN!&Y<|6&rsQHX7j*=faQ5Kx~;g6zsEV68MuCnC{x%%b~x0QK(Q1lDfL&4lS>`g3Jw zMEnk64RaJIV$0ZH$q{TBje*Lx-vy{SroB?82f2IL@m63qU7B1qIA+70Bc!I7rpK=9 z=QLHXXfd+$+OU2{8`0;r$UH`iT5Lm8^m#?Wp>g2j!Qgsc*n`5pBrF;lPG1z3YEsll J;az4F`WG{tG(rFX 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..4d73dd4a --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_clear.d @@ -0,0 +1,8 @@ +objs/glob/lib_perso/ft_ld_clear.o: src/glob/lib_perso/ft_ld_clear.c \ + includes/glob.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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/completion.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..1dcd317b2ed88443a336d640830985de8b140fae GIT binary patch literal 2680 zcmb7FO>7%g5T0FU*N&aoPSTW=qRLVV6p7fOjlhB;649b11|0%#v2hnVE1%uu7?9F|Nz5@ef^554SZ<2F&@Y~z zzxc1Nb|txCJchpCOQf@{hu&qO$hPx^Y^!89nsv`)+ovv1oqtU|CWZ5fwEQmf+jfw! zN>_MJE$5m1cx~k<&DINxeE#nI6yDPR#H&<`H4gFPEpqcfw}l{+ix1jF z{bY;0G72lli~7|w)l#9c6YoTqH_=^*r{W>IJQUtSCg-K-&rjjWH1~m*ab2fiS2GKo z-j4H5$hV)A3EkT>KY>@vUhx|2&(D>3N7VsCYO^hU=k3VP&E))e8$P_F`^0Nrb^r6c z-$}fpOvloL9CX6#=&0eIJx1-lTX;TM|#I6d@|BJxlfdIhCr1=s)jQ67NeHl*U{z zjqH*i*Coyl5jcQ2`4MmeDnp%vJO+t8=p49{_#0>LI&i1MBlef9wV$okU*gu<%9gd( z+O$?zwkUQziV$o4^p>@nrr7&@mpwe8OzY_f3}~%$L~z^d`k*qdw>CYGhxgmQ_0#c zylbgq({}Q9&M9Q-$sDCFHDFDZmTFh>nbgGbM%m7}S8cb|C{u?gIeFqZYVeY)Rhxxs zldAk%aQTkR7aYIL6lKX!Z@f+h6B+TBQHgs?t7&VEig!zhBHIB z;bO$XI0zx!h|D1^5RF7Q2EU?y3PjHgv64pTLi}6m9R_-sn@ZnX&JsjS{N%!I~WL=oDIBmtKk4HimKdOz}U*F*~ zd5J9tAd7reWsz# z8QL4ViJXY$0S7VmJS5P^UJ$yOlJY4jk4Oo@{^n&V`QnMepy)6*9jdqQ)X5enEY>mK NO7SiVrSO;&{R342Qh@*f 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..2967c3ae --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_del.d @@ -0,0 +1,8 @@ +objs/glob/lib_perso/ft_ld_del.o: src/glob/lib_perso/ft_ld_del.c \ + includes/glob.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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/completion.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..316759962549c8b271faf42591608208808aa88d GIT binary patch literal 2880 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 a=maJxBD2NCV=h*?P{U)O9Qm}+oPPmidToLL 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..c746ae05 --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_size.d @@ -0,0 +1,8 @@ +objs/glob/lib_perso/ft_ld_size.o: src/glob/lib_perso/ft_ld_size.c \ + includes/glob.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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/completion.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..2eae6442b51095d1c35cead9cc7105d3406f4d22 GIT binary patch literal 2840 zcma)8U1%It6h1SXnf*(4H(jl%)v}OU724fcqlPM)U{^Oa1!>yaht^?#CYueL*=1+9 z`5}SOh$Y5{6dy!r^`U)HMCwC*DTPV}!M|4Y!3Q4#B1BLueOipVerM)RvO7s_4twso z=bLlCIrrS3*_(g;@voOi@(>zm8?>yTi9sPdpmhfCB2kWoED7uQ;3U>CKZIynRiCWd zecL~pJaKg0cY4F3!+iYOO94ACICD-6TTRR9nOa^ms}&2@w1ck=9C>Li#NoLvkY7Z8 zYXL-ZQ-6)GSjt+kn=i`6X_AX-lVf)`8zXYI~U*U zTjZ-wl{cO59l>`)q;+PCd^mI#r8~bXeBdF@e3O3LZ)#oj%a+D5&#G24CJIJQ(}oT< z#nQ6iiwUp{K8C(=&hLi$>7&|61*>Zh&@|V5AU18k;9C-W!lfY5sMBZb?7w2cuo&I* z?H7DMh(Wi+e1E)4eq5Ib#|9Aq;bL?_e}>EbzhNJOMIQ7jv{`tMJKBtIrGG57@M~)R z_eg4Cwx0Sjd7Hc#*cq}b5V@x!sxdc`c1j96d1C*Bi#EL+6s-`CdzC*He1{>0;CR&sugpZS(w)2SxOu;0VeVjrLkN((YxOq)w1O&tz0ulX+4lQTC4J+q$}7h z)@b;}l97+q46~3o^jxf90Lc;4lgUlCWK?y427f8ad~GrhNuAOop{U{sMbw?4PH7uT zE5`wDlllXm(1GBy!AIK%qc5~$!zm;SXfTR)p9V>;U zF*Y9g+~j%7KZ~|aK3BfVUMD{!rH00YdUh#uFw;=^r1}<&*XMm3MtK*_2hg?$eV1Um z+V1y%2>TU756Io*{}jEi+3S+Keg4lJZ-?9+p@5f%V`mKyq@10~7B#fQ#_Uhr%E>dA zd7f7CuyH%2Wh_JPvDkx+X8wD{@CTapJ`RNN?IDp0tKbV3B<5qBbK^cgUpf5#%$4Om ze_oq;YW1Bvw|1WW{K8BQ_ym-Tbpd)A%7x-_T)FK~2$z&0uC#!71VeLBKK~G21BS++ zB8scc5LYk?h5X+%y_kZNx*ct`VpA|ti#W5FrjL*`8IdCGUf&X;I3K=mmRFgq(GcT_ z211cH2lYLLOBIcBt(Cjag z2tqy9k2&rG@Y(_KQ9c^tpu@rH@I8WF8(vTTwbS4UONuveO^MDcUiFZooKR%-6~*(3 z;=8J}1HeyKUseLAU=GPDCSd&s#f$bmV^2g)2)jqvUBbd}Lh5_MhG4@09N})0i*)U| Oj8t&(IF5DY5d8-wtBhU% 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..43f43223 --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_swap.d @@ -0,0 +1,8 @@ +objs/glob/lib_perso/ft_ld_swap.o: src/glob/lib_perso/ft_ld_swap.c \ + includes/glob.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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/completion.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..f0cd57711baad8f509c6262f4894d7254ddae360 GIT binary patch literal 2788 zcmb7G+iN3b6#r(@nOvJp8@IM98mRY6QkQ~71rywAlC~gwsa25AWSS;f(#epd+pcUy zTzA)+2fN_Z3eYjcSrhS^* zYt0Jl1~N)vO&ZL))hbynX3-bMrt7xG&9w$b$5Z2uPZ?1jipDix)X?vZjwqv8AvFo- zsFDu(qR)n(3qKOc#a}>^K8>lum5by0obEHV7$dJf2I1!6OBYvs(QueR7z+$DUo;md zV+Ok<=zIdd!Bn{iAmD6`2z!!d4>a!zXOv&9&QXyLWs!Ef5>qxv_|%IVA38RfL+VBQ z5?Ld{s$3>(lq{xgV$k2mK)0xRkDt8b>Y)JnuaWC+b&>_nLAy@YxH=gKd?2j}b<$u# zjnc8w$1+*DwMo);AaZ@~_b_|u-7D0XQ!QkY0zkdFWP5Y>LH{R)CW!bh0t3-)p)eg% z!*2r}O1G|^h0o7i`1Z3iY1qfWGznBMbw36M(S(qTn#8&i{Z}P^yoIWDBRiv5C<5vu zS)lUPQKoDdiV^V#wh=}5%Y9(uZvxxjmkZ4@QRBS&;;{U^xPcgzm^*Kb2>t$^SzHnX}%WD+jgN4VVLN)qSN?HP*n>3QwRD^|I lgUG8Y+Cy{CxDDzlAs-gKC4Esy%8Ah+iFdmv*T19Rc)I`q literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_ld_to_tab.d b/42sh/objs/glob/lib_perso/ft_ld_to_tab.d new file mode 100644 index 00000000..e63b0738 --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_ld_to_tab.d @@ -0,0 +1,8 @@ +objs/glob/lib_perso/ft_ld_to_tab.o: src/glob/lib_perso/ft_ld_to_tab.c \ + includes/glob.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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/completion.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_to_tab.o b/42sh/objs/glob/lib_perso/ft_ld_to_tab.o new file mode 100644 index 0000000000000000000000000000000000000000..f8df5614ebba7b1104edd2578935eaff197a77bf GIT binary patch literal 3004 zcma)8O>7%g5T0Gwbu zj(3aacMSKBAK#w&<)fLYL}54HUv=I9R~;O9N7Q+k`!^F+^%Sl7nRwbg(Tk=aJmB~Dwt`VRp_3wj=9Iv0_ZE!qp0>UOuout`+=~PBXwAT9x z$NPx~glZMaM?#LZo`q1Z$lpC_vu}fAzDU$8M&6IUSfV^wM+ZzV{-X-x%5Xs zE-!4zrG*XfzS)F9@=ADu zv_?;0&`P*Uu?G0kDN-xp4Y|^*2Ua50@^_`XLV2tztN+NA;<{XJcwl(+I}mo`-rcRO zEm;j$lWppaL)rqbD1S2`6_a_F7yn$(nZT+y~uWZ z)ze)_Dr#;{$rTGpP?OO-)cQj@4ipXr8q{n?OJp?2(Dx@tFXNdxLWN9BNok20NZ}%O zbYd2SX5n#S<=}}L!(1M33dSS?qN7(^3&vR}!oqiDAT7-U=&GU@=wEKADkpE00 z0AnEXDGHE!>P-7#gfRjD9Dc#(al0uRz}bYzLw+)PvDIAq2XhVg)VMAVY9wfcr$`{Z zXb62=<+@0RDE8uDo5n#Bc(23uS5UY>9}U4P1W7RQW^P`$-zRtRW|F!}Xr@K9;-8Y$ zQZ=lLcgXUS1>%P|*l*)-jjW@NB@}JqA!ixo&otF4wuAE~YQK=xCbm1Aw@mAZ*zN2`wG@2}gmRfh_F4#dxjMbTLjJwA%ZL z_Zj`^!UvN^n>&qWMP0CX2H zfzGq^e3U1Qf;weGO8s0u!R2FIqM$+~I(U)+lwMR!qK2$7b-mVZv#f)HyM#Zq@nTL_ X@da2&T}gm46HU{9DJ^fm6fyQcTX?EC literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_memrealloc.d b/42sh/objs/glob/lib_perso/ft_memrealloc.d new file mode 100644 index 00000000..7adab277 --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_memrealloc.d @@ -0,0 +1,8 @@ +objs/glob/lib_perso/ft_memrealloc.o: src/glob/lib_perso/ft_memrealloc.c \ + includes/glob.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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/completion.h diff --git a/42sh/objs/glob/lib_perso/ft_memrealloc.o b/42sh/objs/glob/lib_perso/ft_memrealloc.o new file mode 100644 index 0000000000000000000000000000000000000000..3598486979d94d127e1dd85b7ac742daf8628aa4 GIT binary patch literal 2872 zcma)7O>7%Q6rNpY*RGv9e<%qGs(c77NW>0p01FUlpn*-A3RIfbm5K)cY;2d!+Ia0I zscM82wO}HorsRZ#R1QcSI8`9^P)_ttx%JRPE)}i>B5Lw1;If7x1_nI|zE94_&@W={GOYng8<>o^i<}_NtL9?W(>?pd zWa`92TWV`UAv}W4g&EVy*TFs}A&K*xnW^QuQ?0lz&X1g$IR2)bW)kPR@C>^kThpYd zt(L^IN?F(K$D5(%w9uVh;-xd0ig}LeZ_iKS%?Zri;uY<=5-suLT@(3zBk*3Q=7ZMI zKe0uRthbW3^QN;M?^IhfW4{VK57iypB4q#O(^)q~e|{2AwsB{?bh&Jq+)mF^dfVzv ziLbvZ5^C<4pNChypVDEriiRvX5pKP7lQJ*y$ca7!WMvX>&!)Vl+Mq_r} zSgvodu8X}`Y^>DRn*?GsChy-nP0Dh;iOC^SKd*0ilWkFlXsX3?8wR+xVXVwHy?87H z;4QIu@;0FxE8yjuqwoDRK{qirGjsA-?3`I~iX}UijE}}gW6xwQJRc*;Q5f;DgYoB| zWlklV$XlgM!YXEX8PTQ0T$Rt8^A$5~;c<;;Sz^|KKapQ3oz0~aV+WlA&z6^Xx#kpD zTP!Q%aW7dp?l7l#-sDx<<#Ywdj|+4)$_c8Yo1%*Bd!mD%P3!fj4Vl^*5kXrC5{ zcI!jY9;Fw1qQ>FuRSt&((U&8yL=JRL^^JF8r!=Mt*Hj-K%&|68qo0`G&!+mkRrs?F zvq1EL zcq>V{y9q(YU2pqZa{1S8f?Dx+ilKW!`~(GpNLTQe4=@e?D(b11C-v%!zitivu)hC~ zA1}P{U7hBL#~gF1ngfwIRj5r$-iMt@C-Bo4sS%jJf7gZOsy3-HPU=BRizt76lXDBcVm9?H+YfyaX1 zFSvi=`1b9$p<8pNyBF`Nz!PxrEgfdJ?2EUc8=PX4Uw{|D9*(CwPTkZjeSzrh>Gzoc zdS7tbIFz4{XP4*s0Y~}0Bf2>u@a`WGkMnbMBZ_w|g7@Tzc-~EC-+sRkcoo4fmk>_J zM9#zS7e6`<8Rhp^gx}(!c!s@zeR^8cTC7>Knl?4wSsEZK-hsSG-a$M{{f_rf994v$ zS=A~HJY9c+rggsuC4o08@a_sc5keB68u(;`_n=<0IAXM4N8oJ)laLq59|!QGdyu7q zWG{{Uv3L>fL#!vL1g1};MIP`eYFMaW(yoTX1<&!P)z+Wt>Q-KDE$^tU=5}j(OI=5I zy}A9Erm3xoN2|+QEb}GtLNAv2ids=OmUnmorlfs-6tmYS9;vIp<*(fvqpvGJHFf!X z{)X9bYqpgiDU=GO{Ar_(Pr|@R34_A$P+{;*a2rN(u5Oo$^;%hTu-YzGJbHQOZT!{? z1{9}V%ogVs?fF@~I6UN5HN&~7IZd|;MpbV>s2touaEHM4bkBsE<$-Rwz;f)3biW)+ zXO&mdId&X(Ps+f#e%$Mm-1MA)So*_c61Q6}VD)h}+8ay1n|v>MDs`^^Yzjb;K@usN z7a#5l;STPRe;x^b9aHcYW=PKahL6FOlFncl8^NKchJ(V|{~kdFyKLbPEW>^vqe!=x zZt<8xjGX0gRA1rIk2uDq+tnURy7m+Ulvch@8u{-(A4UHnD)mBn zYF0d^w1t$SUPbD8Oyal-vBm0+huXi%>-y+jRbGw$k@N>J{%dXfy(w?dk9}-y!V{VvG!*k%P{%%-o&7MMwyfo zld>`+r<70R97Zo!WE^A4Pjc!?B++|CmXt|J!KHEGtN!8x9|%i5-~t1xA1kB6o)q>q nVbKsBWn5T#t1_G){Q}U38Vb1|jzQ~uqk%tb)&rM+>4ft?xOPXF literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/lib_perso/ft_strsubf.d b/42sh/objs/glob/lib_perso/ft_strsubf.d new file mode 100644 index 00000000..53ae3eeb --- /dev/null +++ b/42sh/objs/glob/lib_perso/ft_strsubf.d @@ -0,0 +1,8 @@ +objs/glob/lib_perso/ft_strsubf.o: src/glob/lib_perso/ft_strsubf.c \ + includes/glob.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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/completion.h diff --git a/42sh/objs/glob/lib_perso/ft_strsubf.o b/42sh/objs/glob/lib_perso/ft_strsubf.o new file mode 100644 index 0000000000000000000000000000000000000000..828164343f6bc88e60919f3bfaea2a42c6307674 GIT binary patch literal 2892 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/glob/match_pattern.d b/42sh/objs/glob/match_pattern.d new file mode 100644 index 00000000..6b8d9345 --- /dev/null +++ b/42sh/objs/glob/match_pattern.d @@ -0,0 +1,8 @@ +objs/glob/match_pattern.o: src/glob/match_pattern.c includes/glob.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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/completion.h diff --git a/42sh/objs/glob/match_pattern.o b/42sh/objs/glob/match_pattern.o new file mode 100644 index 0000000000000000000000000000000000000000..7deb91da2e76a3bafaccd01f4ede4bcbf723a010 GIT binary patch literal 7088 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 Jz;~k%{{>y&2?hWF 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..a1c01939 --- /dev/null +++ b/42sh/objs/job-control/builtin_fg.d @@ -0,0 +1,8 @@ +objs/job-control/builtin_fg.o: src/job-control/builtin_fg.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..5b6854bcb8a9493456b61df7b8d4698e79d791e9 GIT binary patch literal 4880 zcmb7IZH!b`89sMr@7=pQJ0JT2r9jCbT?Fm!AO*SwiVJ1xrG*x27f{<=X7A3-4$R(} z&fKAVTFTOf>4+9hP3kYyHWGsk8cZ;uN@|s&sS;}{nrPP8nr=eV#u!AKh|hEHxzpL{ zR`6ucdC&8n_dMr4=f3A-_Ba22=Rd7NC_#Y&xdr*0iXx7TbThI+{1It$$ZMF8Ha-TY zV2;Utrs<@2I}$*c=0nMC4}F0BT9Hm5k&nJC=@bHg1P3YnWSUmlDdp^}R5bJXJj1em zGo5KjfrdJ(ra6)xu4GM+x-F);e(Tx?@2Ok;R{C{H${#lI!Eg$t&zCP))AAkSf;Xh$ zwg%u;r{zlx50}!r=FdEvVL zd3=T89qtEi_D_-VajWF}%MJ3m{uNVJGhc5LpBk>On_p>KKhHmBPjTA$ZjgN4ve)7p zzo{m|uAIsSzrnzx_-4d09k}ocm+rh^za|!V$ zzj+g1deqF6@O8Zo&F8^!$u}tZ4oW@=1&*;%zfM`-zd74wY@Y9gJw(8W{YZL%1(!CA)mM8FuoDxyy=hUTaA(Kxz%F~&BI&R7N^ZOebh(;5H951P^$_ayrjwIE0-WAR?)ud>UFLYJl2@ynPDG#N7pWyr7~`*O zf8=Mb3;Rmxkpr3R%6M;iU%Fr&Xcu-NzN0YQXBBLxRLG0E0hDpO;KVb9iaoM2{>9$h zBeF-`1YNC4sg$-IQpnb|Jjdc2H*VP!-<2+va|Js-(7&XANqmu&$Kl&Iumqrg+0y<` zEf(dHm1r0|F~bz^r$^!(+UB#NJetnu&0;n;B8s_@#(qA8>FrC=AlJ);rPs+BD~#X- zbke1dpL$ri!55SmmpeSW_=F|P0@Z$#p|q7tNjUudpy-pX}hWIYY^Mi zh3(Hlaujt@V1a1=2hdlE76%sS?ekFMAnGRq3p(0q#Ydw0$-sh`(E3r;??mw(SOjiv z`yRxsKvz3EEo!rhHCI(m9Dnx8oBjv zqPRvpPk#Yb65QZL7!fQ}jfCbV!6bu}Gz=vT#J-pS25x`j3^kEcm zRyYfoVBZ*EJbVOjh_DlIApD#Uy8s78gs$F$thXxBRWOU)kD^CJJ_Es->$;*oN~v@{ z?wYwhjY4NPzh9hV#h=~pd^vYZCD0oi8t$I+qlty@zO;Y&`&XVGy+wO%o%84RXZLSC zefXaj!Sh$-E68nFgt^EGINA5B{En^MIn;@yeFk46=vL8=(%R53gy7ekmT2D-H3CZy_RWJ%9`LKQcT zv|?ma#VsdQ+?Q1G&Xx4s7F2P!NGom;su+rrp8J|AHc2aP5vsUzq>AxL72{T_xTmP% zR+Fm#6*jF135EcAxJe#;WSEltFjDqDD3skXCDzfZKLabeI~RHI3R$jQll_HQ8;Ly? zxI63xy*xw2BrFx>{YV(4!ZDDQrpsUCbHf=Yk+ZFQg*RfNQZD%@k-L3h#Z*msPdQxw$|hrHYYT5xp~hE4evf&x3FZiy+G?se`N${QO1 z4Xz`eJwhJ*UJ6DPwY5F)vDvDo>HTU@(+^kF_P?ofwUcUVMh$59sjZ(^Z_?gWqleVi zZE754MpfTX=V*7S^R;``=xQ~5Qq>NrA?-!A3yR=sZCnkV)t*rYG<`l8S8MulHSm_I z{5~)rt1Ba;?>~4zVncnN8gK(_~~`mHz2VZeS0Bs zMD%4Lu~dDZg(Tm-kmS2t%3j&d1BT=VG8hy~w}W~pKeya=5XLdMSK(@p`{#6M+H)=twJ z-Dzf0xx8nZO*`%j%gi`t$|>Z8+3;qia-@iV4>_5s{j-%+X+*FYk!oh}!_#B4#)^D0 G3h`eA#t6&+ 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..c71e6922 --- /dev/null +++ b/42sh/objs/job-control/builtin_jobs.d @@ -0,0 +1,8 @@ +objs/job-control/builtin_jobs.o: src/job-control/builtin_jobs.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..dfb45b98d40e529d8307c177320b00f81c9682d6 GIT binary patch literal 6632 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 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..1db40d3d --- /dev/null +++ b/42sh/objs/job-control/job_cmp_id.d @@ -0,0 +1,8 @@ +objs/job-control/job_cmp_id.o: src/job-control/job_cmp_id.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..4aed2f8926ed2e72a8be44e0e8667dd704160a81 GIT binary patch literal 3784 zcmb7GYm5_B6uvXh@~xG88ObM2VG1!Gj;X`*pzKt9#@6pW zD)}yu!8`yywgcyhkL!}AgBdI|gYSVHl>UdH`5bYGJ0UY0UlHc{Ong4$t;2i29^U)V z)bQTM&%;kQrk>W(|9qu>|HnhDhs?;xw%ap1N_E$%Rx*Rx{%n6{g@$k-d5# zyXtb`*6rLxwXo8zR=j$(%&}!p)-0!(wMA~Li}|^+2dfjseD3N2ciggTyR2Hn9T(G% z!l`&Pg=evM{oW~x+88^hXn9=od>zSPg(jw~9>9aV=hdA;!$T%})@V6DCd$>ySjO*2 zJL=S3&#Kj{cFCnn*>OF*!B-5q1Rtp_*V$bX>}I}D+CE{U;yPoMQZYm33NIONvRdS; zOZ7>o>I&O({1`l&3N*G=^#R-R5!mI>wuNoOqseKH=j;C4Swv)VYo$_A_07{3_ zm+aCa$+W&C*`ah|`_(MKPGxOdBze7ggLzqEW7o|nvWO;B32p4c*?g&pByTcJtlpYbnxCAA$UtlH!L z)5V+@t)bJR8g4|PKZm-=30?pBtwvROlkj(&tmZH776b77;!_1mZ1$LwVNvD&)CN&aYf^r zA>_M;h5`7e8g+PC1ei`2ab(r+TbMR}E(H1agqV18BI6;%9FkrvD?+SG>Ght3 zSez1K`p}DcDIw+xDayZ6m#tC+3+kBL&@|L>aFcTO$0lt zitpj6C})!G=oP*LqO@GnxNz-qgBMq>;ns7~$~mhCubqv!yINcTPCJ z?VWk?111%dUq3KF+_FEgEzPZdw?aiE{(I zL5rjmt*z|?Ev0YL7G$-~O`4ijRV;#70|&&T=cHaP^)jiU{O6~n=Axz8g^m9s@}Gv# EKM>p&vj6}9 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..91618a47 --- /dev/null +++ b/42sh/objs/job-control/job_format.d @@ -0,0 +1,8 @@ +objs/job-control/job_format.o: src/job-control/job_format.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..38ddf5f8697f36c74d76a611b22735db36a6fa07 GIT binary patch literal 4004 zcma)8Z;Tvc7=LGWXLk1X@BLB7X|0|Xp|__!dZE!CCEF?yR7o)QX7_IAvbVc-X6q^~ zs;IUkRea$CAH<&zzDOlRBoY#7L@Mz?h)A3GbAm`{C=%!Qd*_|&?JDh?ectDJe)GJ) zdES}lnSBrc`P1JqA+(6V1c^c#2BsVY<1EN=g8wo6cyM7q*IOuGu&MJXp0E>isR$W@>cG@J-?9eBgJvLd~R)`&Ly3E zht=IzDQ#N;aUY(adVMF&uUV{3mc4)T=^fAOK$lANggPnTbkUJ1cIFrIsn;P+%~xzR zs%5)YoMw9e+HXYVw?^gj^eOWT`0C?R@&$M1w^s3;ulNq1CZEi&QFJ=_oDRNUPm|Bz z);Q^YcPqY?>ZzZZIPoHs)$u-p{i5k4WoLeGtNIQ1yCHQdKBqp7efoB*cAr}-+4iRO z3s)Rbd^rU+z{hXO2wIw;L?5?T+t(s^4{rZ@=PGuE6#yp-mn3Th*;e z#?Jk&Q+y*TnNQSy*ZfC*d@flMCxREpO8cLvCxi>ACeCh+ZvYH?Cj>$S<8 zoX9cZHa*{NH0w^;V@TEYeB4DUCR|30(zfT`UlyDe-cb3HuvPQi$y<BXf=aPyTeh z#9Nn}({9}pj_t}Ee1{4&j$N04V@m{nHS`_fIEa|%bSlNBygU1kOkSg0E(tjYOaV}D z_?~FU4am(kgx0MsOZOU)bk-b5cWXU(+4>N`9&KG$Bz;BV%ESf9wMo>WA#??7=*4G# zq|G%lf~dI&Dp-YoitROLl_-2<56m0qUT!)wCWjmbQKi3bI9S!@RC9(}R( z05l`?bM--CJqnAxqv!O&sP!7GI5_n4^g+uy1dq)6QhhLMT?lI@y+M7jU&MFfq7gNJ zh1yGViTO9wen_-n9))@V61l|e!;*tA&EEJsP=;mXfS4C!`V4;Ttk_pj{jnbF8|b?M z$NHGqPw;GdXE2pPSlj6>LMo!moPzx)BCI853#JB%+!^m?gk_LBk;hbsC$!{h7{?&- zqz2w(A#_u4t>jIin}(ZB-X6Lcxc$j{;PO4jvv6}sZhtx5Zn&e#1EJdkcb!NvleLg| zOiL#bmN^$wpGfsXm5EzgoQYdnc7`e@SM22#KJ>yZV@ytdLa9;das-$uZEN`KJ6TDx zJfMdp+P;=h=URLa=N9sxDu$=q9!MVpG5G1%gb8inSj7qtFlI$=#`6z@|1N1rH{?^N zZ@_=TU2J}Qwg1Kso3pE;mF(lMTAvR;^myXXTYc-_-G13$Eqz(`z@~}ChwlCGr59iM z=#Qs=`DEa$u4lKud1U#|TMj<*dp5cC;FsX~8KUDsoB?4WUJ1DoQiS-B-H_)XJodf^ z`4sXkXeg46a~#pl>-?frN6H77+-_mJq91LF^ntY$mmkJw=F3rlMGIgjggh zYNv`i3at(ttPlKTMXH6YT0$%z6~&Gs#LiSv>>)y|6a}$z2(cs;#PTA|^>hsh}-zCPAz&zDJ~{{gqB(=8l-G*73iNzhtM{ z;=f(KBLvGS9$4c-8Y^U~}@%+@`~T;O`j@R-zQZ8;nRsGkUsa4c**mbeVS;DQIh> z5jU?l^pR2UsNIHpaSIWf_xc&j{>Pk2O literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_format_head.d b/42sh/objs/job-control/job_format_head.d new file mode 100644 index 00000000..dcb6b52b --- /dev/null +++ b/42sh/objs/job-control/job_format_head.d @@ -0,0 +1,8 @@ +objs/job-control/job_format_head.o: src/job-control/job_format_head.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_format_head.o b/42sh/objs/job-control/job_format_head.o new file mode 100644 index 0000000000000000000000000000000000000000..25cc1fe76c5227f0f4f80d86a8025346507cae89 GIT binary patch literal 4372 zcma)9Yit}>6~42(Gdt^j`jN<0NVp%QzcOdaZ*aFVLkgAXT7`Z zjPt4^RY{8Cny4*J{~#m~qUF&)QAwr#p&(HxRY6qB4=7Y9l_*UFv{8$cLQuo^&D?Q! zCn@oj&OPURbIvz+_MS6y_xJz#=SNW?l(4`Ai9mj#V#-1=Zh_?Kf5KSPg5Jgf_z(85E!F!6}QGbe;f9L`+{-9 z^|cE1O3A*S?@*wI_QySvw)uv9GX>LKVsL#vpWF^{bG|~eSt}X!!VH&p-SZxn>$^uT z=>D6o&*N)MO}iT$T;Dm#w^s6-yoFmN}KJR}e-%k0fzqv#{ zG_gw=T;FzCzy9;yk!ssn&kXFZ*_gp|I>v1MkX0`l#*S_68BNKTmEdmhu_TMAKe^`t zzEagFx3IfjLhya?gyh>Q`I?eXx&n`1^=)du-)dIfWeh&=>ymGeT+CVdytPkQAAc8I z5+d%sFuC}Chy##Y@iO#oUWQP&58i?jX$O~RPv+;}&Y$?lNdEN1<@`dDS^0%netzeN z`T1iP^YgD<^q`503z@OW%jrki=f9qKXWgaMZYXelZ0Elg@u5px1p=~{+{DwHxNZ3b z#Eqn1ntbQ1@CZ+D8UsE*alr=`Ho5T&Tk>PaKAfL;GyN#vp!pLok395CH|61(Lgm<3 z2d#&)*+DZa9xgS^V`7|5o87Tv-_Gp8Qp>g)_3UVFBsY@%v{}QOW@vN-PHyA++-L3( zcFP=|ZcGiCjk?on)My*!Mr)?v7}Zjtm@~!jqz#hc%Av+|u`s-GyE(X@(&!vZO^P`QTh;`)a5xKMELU7DJ8&~}bdt`#bx)~Hvq z?nI8V)v_I<*=m?2n;|vJc5oM0ap@(*NNw2G(URcQenaWIgtK+qs?eFDr1w2 zq_~z+6y7Mk8aKKN*%=bW@;<^%Zpmim4oGR*OoZ*$25_=9>Q&Rlt+(aaa{Fle`fZg{tHOk!`9_Ae$ z-`Mq3lI7&q2z1U1>BuD%%)N%u&VREQzS4UkeGJ6lcT^D?w2E&E%iP1bDsnTv3&O7j zKWp8P^Jd=)=bP3_?RQ^rp8xw~W<#W!IrSs`jgd!A#b14~Z`;r2K6`aGG?@9;j`GS^ zzy8V(zW2k|{{7VZudnz^*VA(^T)6GM{pU_zF|$w4WfBL^{S|yHk}muh-0=~}y^wtn z3o-|J9P)h#&)dI&{2B5tMB&CjZin0rVF?0udH9SNZ$SvLT9*^>Dw+@rT|&oU5@Mgp zM7A3t_MePmEfQk;$SAfCq4SWn5DbRWyvTu8zDBWjADBcV&_VTMMa3! zDj`-LAy%X0Vh0gopUEiJDIwOcgxFk!*mDwMn-gO9ONix5h_50^&weMwSAc~6U%^FD zOe`E^_(Q${NzyU=8dQ$%5z66=l1W7MC*)l|g~;7kNObL*%ok!jmH9^K-lYF`YZqce z;$1{4%GFd7v%-5ol)(2NA8fNW%WvWEtlb)x-mtY{^mCnveIyV9VA${u&NXYQ?D)Ah zTJ^d!1@25x9y)SWelEOZ*yyxHI|AE1D*#t<@Z-VU3$NJ@3_PLxy*KDE!25#3K_*@_ z;Ppm0t*D_c{kN)iLXBznsfnDb-2#KUsH;9uSL4E9P7U3s z{Xtdq4?=PLenLD8UZ^2fHtw?NBs5k&bky^g;kjLZO8RS{v8Ew@Wf^}LH1f4!sc(~d zmDEt~byhj!HbbXj_=9GfE7k@4Y`|wDw#VZvhX3sa^MGMi4;bZwRTDh48I_Xbo=1!_ W&s#Vll{+IVvxQdC3vD|m3h_Tgo{D7v literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_free.d b/42sh/objs/job-control/job_free.d new file mode 100644 index 00000000..e53a0269 --- /dev/null +++ b/42sh/objs/job-control/job_free.d @@ -0,0 +1,8 @@ +objs/job-control/job_free.o: src/job-control/job_free.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_free.o b/42sh/objs/job-control/job_free.o new file mode 100644 index 0000000000000000000000000000000000000000..2344476affd5f807cd6f2aabe028de644a59528b GIT binary patch literal 3944 zcma)8Yls_F6uvV_CX;veVcA++Q@5>(-DGX6E`}r~^}wax`LCmhWu$13A#I zz4ZEP|J6fjTnWVEV_(h+!Q7ziBnyXSRh@~>l;!ztX|k;G>(*^rA1;d!=P_;y;}ex% zpvhUEB_qE8uimt!xfkyXg%ie1b8~aYG4U!B6K!W3_dhqk5bs@uF<(5lG1+8DFWx@& z^yP|=nE~)8cz=A47{|=7U1>}?-qCpPtDqoMh#Qlk)aA#-o37Y0#oqivyzn(1AFtAC z)g7x*nPz%N?e_zf-}x$?n~s}bfY+SZDi63fzoe>OArM z9j#;Tcay?frQZ72^Tb2bNyy&(?pF01?sqWLJ=aj^IbXXujeYu7r*W&>s9M&>@z9Zc zpTa9B;~4PRx4)tO)S36-IW=ptjnfSRENkw4@V3HRtMIN@cuEy1A!?ya-tAwvArX7` zYpQ-&rjmJ7?f0+$$dB(OPvBJWqM7^PczNcI!{wRI&*eQG@`K<9%exNb%QJ_{GY1Y5u)OEegXNjG0(sY)g&W^k z$IdBi+_>e+!ZxSvxy?pltTIAjYKI_I#_=ZrYAVm%8iuc#32Vev16*W|hHCd)jS!!nRzA;@f0+fNeFU!M3CY zdOg%_VcYQNZpE%u+H%uuH6nQ}$EgZA2S|ZI>(iEJ2V#+I-dL3F)A~^)dJ)EcZEZ4= zJvVh;>eTc_X%tRO=*qBR0QI(JjvC`P)mR`l3xTwy3vXd9r)d%Wf$eoE^WOoq7P*$|V2;c;i(r<`A3KlobN5G7|n4Y7)Jh30_=IG+&OW?nNq9^OaBKbO`!_*4;a5VW1 zq=nc(bg4dUCS#D!pmvHroKLQRehlfP`6}ZNtMg*1v5RD~97UFxfmJQ;62GUm= zykUNZ7$1lq;-YDe!eX3WdWcDYyZEn^aWMY)KY4Zf8vJ^fIx-UQ~!en%6 z1XDSY($Z%^_!g8%Yluv*57i7*GksO4W})WOTS7Glbtruk)L%h~Jk&z^PKZM|oj2j4-FNrKt5n_9dEZff~$WN{g>n=1)S4?GGSrZ0$3^zJ!I(7q9 zJpbUv$;I#7^43#NKK<_R5B>VlqA!yV-~Pf^D}K6e|J{f3>23Qz2i8v@9WUYp&}kqZ zF^{eS@;DGKiIgpNvJPa(FZK*g>^pf*+6Du$FCj&2_kHw8=V>(35*rgkIBj>^$*^ThVK=25A7)f1lPGC1mimy<7 ziQ-_4Gk#P2MDQF8;ZS~|N?%E#fj7}CckFZ$|1Uhh>eR96;2($l6D9bkCXoICKFBjB 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..10782c5e --- /dev/null +++ b/42sh/objs/job-control/job_getprocess.d @@ -0,0 +1,8 @@ +objs/job-control/job_getprocess.o: src/job-control/job_getprocess.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..a7b989763683835eb5b0c87af3987960d9078d24 GIT binary patch literal 4380 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 UtO~y6EqkoSr>$qt{QpDz7l1G4+yDRo literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_is_stopped.d b/42sh/objs/job-control/job_is_stopped.d new file mode 100644 index 00000000..891c05b6 --- /dev/null +++ b/42sh/objs/job-control/job_is_stopped.d @@ -0,0 +1,8 @@ +objs/job-control/job_is_stopped.o: src/job-control/job_is_stopped.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_is_stopped.o b/42sh/objs/job-control/job_is_stopped.o new file mode 100644 index 0000000000000000000000000000000000000000..85ebff32caba4075df3dc756e7f7ce383ad8a561 GIT binary patch literal 4868 zcmb7HYit}>6}~g}%fVl4DRp z8=QiYB#2^Jo-^hJ?ZDnSuxIC0J8Yem4f1i?z78R{HW-Jf!eUtkXRtA3xnA9eENjdC z{r7!3>=q%PBU&X}@-L1pD-?MrD7gQn0LTTc(egkbD^l*1*SCaSZRDeCADj&ahRin(_>9f_?UQ^JxtLeveh+=j`gktBODxzJ7e5zrM8?yv zp!x2Rb_Zm7;S>}ZiqpHU+uoHs`j_1J-+PWea^-1piSD`M{-e&F*mWhREdy`v=)gqo zIHfmt^wr$ai_(o9m(T&}OQHRCZv2tAMe?yep9JP{db|b?NMCPm$sv-BUlGa289Xlx ze1KY9<}Tp__kiW{`N_#ibaF?>2R_J+|Dxyf7y22TnQhy4Z_kW6b+=TlWO}=Lx_UCp z>@qUSs@@(LUF+6#tzItNy4}66I=ITNR=j$(%(hi>k-4k2np5bqMfWZj9Nk0vtNRN1 z?saS2Vau)^uxbr=Sj==5rHUs?1yOcA;aTMplp83LJLr_!a!U_8f|cd*-N@JR()u9m zaclA9Xm#d3Zq zAoph=aj{f)J*!r)+KvmCk!pdSPJN_Qb%kw}{2`uA1vcBN`hacu2<&ob+rqZtF|}%Y zIA8bo$LJ=LTXUR(@aupn0I(f9*p(e@%a&{M_c`p8%a*@SyHT&>{48wQ^-;Oj8U}~U zcc)tUQQZCGlD=C2^V)K}um2>&4EMHo6FE>=>ZY!8%QpOx*YZlf@;U8!C?leiTh}qM(T?ghSdk?WGVj$En%oGtq20_`-XIDmEu&^zO`g@Gv~J;? zOn2O(b}QyI?|}6r`?6|wt}q@%^D;V(MaC$aZ=tE@3=)3`X<2DJ0W=MXq_ufaS|oNC zRL+bk@c}e+oQN4$u!i{V&}@SliGLw96EIWpVrV8|&W-aE(!sGQn3?!jVD{2%huIrH z6Pg_``$QYhW;-y`P!fyamRyahQ?#vsa*0P2Z45f1qz+RV{)n%!$5iyK@G^FyI>){_ zk@HY{w58_Hq5Xqd#v}YCEdL0X^U!_+%Rk-~YBp~E5te^wxAU>--yq?4QN0N~vMllr zR9|$3ISG9y-q`3$5*l#WOluVh>2T<|cBg@-4 zQt5bzz!$?x=%Z++IZQvq7FqDPKhvMXYDFmg)UgD1@UP&#OOKymaQYDk-9-nK>0@a( zkHv>^^8fMScz#|xNru7&Dnf_Wa7jll@oj_@G?I?se+=H^IW7U=g@kh=6N%Xn?}^gF zhPouRYcM_k{KV3?zPhcr@V9p7{3rkU%KQrtF1~o=`;kAq_>;~pFFy3bcb-4E{(b$W zPkOV@TzY10>u~D+=N@~v=g^T@Dn9z$nX|us@7XtZrT%?vc;V~O(+B6YJ4@}%>4S4| zNVh{aLGFbVAp0T5Am4&K4Y>e$6~ZjTJ3BX2M#4wcf%#ehbGNl*u z86l=Q2{C&U;_ENznb-(1*GY)kgb*`~gqV2=F&WDlnNSEZ!$^9jBSMU62{B6$V%m@p zLy`~!P166b7%=dD^PR>i1~#^t-jlMs357G<~BM0ni2j zKNU^moEAq@+o+ka*qn2>W_%m>g(1!SnU(-x&~w1jl!j{JY!T*|3KOoH1&wXp#WV$Y z)rLUp-BK@=dXdyn^wV2WQLliVL?bM0PBTS&lP!5dcN|k8@8xl-m7%iZRV%_O;tvAu Y-bMUb6}-<|_DGG_Tfcqv{|6ZU3$?`OMgRZ+ 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..fe7a65ad --- /dev/null +++ b/42sh/objs/job-control/job_kill_all.d @@ -0,0 +1,8 @@ +objs/job-control/job_kill_all.o: src/job-control/job_kill_all.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..88e746c47eab7dd787d191497df423e617d6fc9d GIT binary patch literal 4204 zcma)8ZH!!189w*U-1*o$J2U%XDOp+ume#GMJ4;((qZ{mE+f2(gMWB2n>UHMs?98oq zXNI|V3T-fH+(vgTKfsSjl%PL|7=nh7l8`7O5hX~BM)8L~B#mOMB5~D37D!y5=bUr5 zJ42y8$$Q@OKIc8peb2e?d++)6J8%9kDTEOd=pb=O%R*Oxpj{4GA^1M+ram?CAlINp zHaG<(M-a_%!s>mY8Y}zueRth{-i}6|9*~cZeH8>IvA8%%6*b41tyVfUCkWdTa-6+) zPT#senidhyU%4r?w{?8VlD(vj?1;~Ax)SQ;yQRxph_l>WckA+q_{x<^yLycK?~X6x z`?2P@R6egU*W{93z6@U=+A$r)BPnISj`P#6?}G8Q%Z*w!crV`1DxABs*=_Qn_J{D}4&%j%7vS3U37ZO&t# zq0?#H>osN_XJ+qtS0NtOd<6}TfsZK}&#UhWhCO`Mx--|t+f@r3r~7;GtmfOJrbS8f zX;WbP^=M2T)tm1%BxCP>S2W*2oq&saznS-mkLQ9ZA#C-5WAGax!vMLjz0hNvhTH;K z-}neh*M`?Se8BifY3VPeg?|*D66feuvc|wvTH3c#I!)nlxwP zrPGI&OQ+MNr9FDDMIsLmEVtZMLI6V$5+u~qYCMa!FAzb-Q2x@#vU zxWw(W+jyV@Z?!O-Z_c6=!)klpYX-t~yg9#I6QN6mMXuA7fa^#EwjbH9a9wz;h2+-D zZ5cdEkxW6WTE%nND<%aTl_!AXQHO-H;F$4q6Xh^$dzDVepd9%qxpCQX2kIzW?WS7| z;G)7e28=D)AuE>6Cq}XZ#vroE90xdP?CFbTKW2a2{&40K8RYbCVQS#O5Xv?usH_c8 z%1wyGkP*w;HrL?a-Y;U=14A?>Q6VY*=hN2!yV15W-M8k8@1VWrYtc8eMvA$9!{CFm zSK&c7U}26NwtXY(s*M6tHI!mGiHx|G3hid4WFP(M*QzZ7j5}&@Fmi?wGar(74`YBg z5Lm6RgU}fKxw7itqBRsJL;N^8>l8W;(w8MpLfvI;O@0}g{??c|Dw2P~XggL}+sx5a zGLO*=t&fjGSl}>i#M5{y)-bw9 z0i?Gi9)tRvwJG@ov^?`Gd3-;BCErKE9E~TRhUIeIRXj{aD&O4I*h=y&Ectduu@hl6 z;PxD#^icXmC=0)d(rwcv4CN=B8r312!qk7*{oeBrFd1crL60k!uC;`E*W&ZLx}N`H zKK%I%YoRZHJ%&g?Te#M-NbrIo@>dIuiW1m@;BSFzS(by4@BwerYkl9i|IRa~-umxX z>YHAEc6jg8Zyd=len0hx?>_#@+q>fRd_HsROvl`k|D8KL^71_|J@(Amt^a)P{*S&p zadOfA>df4x#IJ4&k5q<6zV`3mj4XpQh6C9E*#?<{9EMaN9mpc&+mIhZUVyv`;Z^({ zNIwEDKz2d)L+*yKHZUbvEE^zbObtRz84WS32{G9<#4063ts&+bA*Qp2m^6f#NBG*X zu@DF`7c|5qB*etj_aY`8A!ecGVwwZjB5P= literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_notify_change.d b/42sh/objs/job-control/job_notify_change.d new file mode 100644 index 00000000..b4e6f7ec --- /dev/null +++ b/42sh/objs/job-control/job_notify_change.d @@ -0,0 +1,8 @@ +objs/job-control/job_notify_change.o: src/job-control/job_notify_change.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_notify_change.o b/42sh/objs/job-control/job_notify_change.o new file mode 100644 index 0000000000000000000000000000000000000000..bd2da9f6a485658a156c260b376b3ce93d67aec9 GIT binary patch literal 4268 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 jk;?7V3Ad}xG3n*(xg8?QClCgZ{O?;&dyBd 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 Y1|Q)bY>k!pO(E5Dj>+$IxWn!Lf4wFQPyhe` literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_run.d b/42sh/objs/job-control/job_run.d new file mode 100644 index 00000000..22913996 --- /dev/null +++ b/42sh/objs/job-control/job_run.d @@ -0,0 +1,8 @@ +objs/job-control/job_run.o: src/job-control/job_run.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_run.o b/42sh/objs/job-control/job_run.o new file mode 100644 index 0000000000000000000000000000000000000000..f503a3de0650af9ecce79e067c379badd4bf308c GIT binary patch literal 4044 zcma)8eT*Ds8GmPXXLj~xzj}AnYiir2*CGhFTYD%MFtsg(EP5D&Erq1bba(dSrrn!e zXJ$*=a0#ZQav-Ksr| zH$8;+;u`USligMS_n^evDOde3Ys5p*g^` zTeqy)eS;&Om3T#I+zmXQDFqw=a?gkG8go|D!|p}{ENkU?a8BawmUu@bo>YY?#9Sa;N5%F(%njJN-G!?w+)|J%3I}FLDuB?ESEJ>cVjY(QQHKI&~}H zhE+Xek`=4?KD`qkszKm6wO)WS2&`ti+7j)K+bV_~F`AC&2UgeX*bSd9ZO0EVOUM{( z13r>lzH_P}*bPo7^$@V<`cBJj)Qd!Rc|!&BojRv(c=Jxj7q;buF$6XlU~H=s8f+`H zKySyoEo>VeeN20<>V>nj0*T~z8;!aM`v@sAG&^3S<#l>)T`236?YS{6kt^sMbL*5* z?7CWlaa7qolE~d^-e!Ix^SKO4OB1Rz+%<+w%L_7XJy_%>gg&Mua;C{KxQeqPk-KY* z$_x_P*amf%Y2r&7i7ZC?zQ}E}@2k-_(+9=3tfFwD+_jkK7L3jl$TWAc48~9+QH>i+ zR*?}mk)d6_mW7Bf=Kg6A8e(l2E^S;%F#0(L)Qq3qU3ROK2i_44sA>Rk$F1 zyUs_&5p`4Q6gWN9E$XC5eHGFx)Qak4GW8Us3)HSvCyf-nmZ@!3Ckv@C4r;;NAFFw&6XqePe+H!sP>bdQ#1U*rdL7gm^Bb`` z3U#;0Fp}Fq>6DVa2%by8cU)xt4Y^9Yp%_hYL&*nZsc^&@eo3RNe0fg=EIbm)k-lMz zY@wOQ{?&Z=S{((A(-AFt_Uhmoj%#LdWMfpsravzL z-WGUC2_CNJ?eUGlS!a{}o4vu0{&t`+ot!H?@zu&qC(-bH4}Hdmt4HaSiBt5SN)b zz-8rHehu_J&@-SHK<7bkgFXOdunSv2%rmHh>4Dm0V+PX1l;kae#)YeagnMrdL=$Oi-ir->OU2Qq7EV){rgRuoOIfTR~|h$fb&G%<5% zVoFLA(~BmioWyz`DordV>BUu}iAgF=tRR}WsM2&+npon}#0sVti(10}zpP3LJa+lA6(j1TaXb@zSQD06%4)1i>HDoa#w2^z;4kG!R+`scN*{zS-i{eEa0^k=k0$c?R`py;Pn9cvT4#SqQZt-t`@)K+kqr??M5 zp1LK{^|IvGNxoTfF#7BNker3j!ipQk0X0mZLH)*|?|X-I!RL^L8-KovHxOk!s)RLP j^^S#F)u+LA+!j``7e1jZJd$cv` 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..f26914a5 --- /dev/null +++ b/42sh/objs/job-control/job_update_id.d @@ -0,0 +1,8 @@ +objs/job-control/job_update_id.o: src/job-control/job_update_id.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..eb8f999c633d5b1bce16a7eb6f0985289a8bd74f GIT binary patch literal 3980 zcmb7GU5pb|6uvXEVgB=`$7W&{6loUZU%kqj_ zy}%Cq4cBenaLNy@A!(40)4r1wg1NyNp$eO26^i|hLCf{(K4e*|Zd-ZF>hQ4$d3JG8 zXurw)0?+T&X*Ti;_{vq=hg z4r%3kOU@pbdZQ5#e}(raKi_HdtLH0&MfdM~AGCaPD=rf~rB2H?oVWcHTk{L~u4`FdOU z4$hFz+g3a6dN)YEx$>=lGebUXI-jyNzp|{~aJ|1LPJLKuwR~T@I*fICR-?2vpJ31-^mzQq9`zj+H^v1AR@@pXd%meqV7?3a8iB;SgVPx_`1C29I9+;3&4 z;xo3c_qgP{UM4dFJ~rbY^5c6+Gr$a9G?Sl84DnIu_0X(6cfPTb`zy0{?WT2^EycR)R4bXjp5C6`%woHY zL!rB`7f#QzB|R6PFWkDF9jf+s+trF!ua;?Bjanh^6)mUGV~gxY7ZlmSd#gi*e0JFq zw`AG1ZC0(}mPAvma0};9|2x=Tu-=x;+#bck=k;d`-*~{2)|sd3}zY?*BPu73mHyS;jQDAisiCZ8^q)_r!ak7=puCK5we!xc50DiTA!DkrF5VS)Ef zP-zQABzcu-qCE9EK!Optk~@`1(lj|7wcn1Q8#?Lqp~~A((jq<;fVwiL0yG9BrkL=o zT~Rnu@*J=)2U&_Un&ws95IS~Cu-gsp1CbCHQK793l;00Yd+J;W0c8`nwvtkmi2B4< zT%LFt{B?j=dw^cYNZ^%rf?nzT2%d;;L#O#&H2Mf^eFwUSAZ=&F#-KK9iwr`H))uP^ zgz*EcyF2-T0Edm5si8QTptSM4zNLU$od z?IPiRc%)HhlkhuuOX$rZMVn5_1Hhv5^$TIX2{Uqs_6bzXh#rB`uK|35{(OBM%-@OS zbS7oOja(G(hRPYHVqOB{J&2J|FtNEhblc$?=1rlSgqt=ug>DM&T=OotpFxZ?+>H4k z%s=SPg4<{A2;C02D@1~+UdhKXrTuH@*ontVXY21@^v-)bj@y5Kj(2*1g*i409GtR>~X zTZFPTt)vq%gIkERo(1WhAj{-rc(#d^$@HV@we3OW3vn%CRq-Pt73E~I9lgRiAWF-n zE6Ps)fR}YDcDcbTDcf-Cp_g@*_FdYHxZB*U75q(}eh30Y^W}_-9P^f4ucyT0I~WZc z`$S%_aH7E=`6mDXJ7g*ntFrtnH3*cqCLBEQa|z;cCUbxJEs|2Sc>HGVEPbCA8_*2> zMlGqY(X=&M9A+A(afLQpe*pn&w6-;xx=)MhyR;ZQRd+Szc2&nq6RSZ6&hDkq$oER_ zW-O+Ad7$;I)QhB^FEte7^k1dE06GOAY&562VpfYUdBSk4AAd!8yspY%x#(3Z!WzKu a41R0|@Y5{#r(@Z}HU3}t_S8=l3H|~^-(n;H literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_update_status.d b/42sh/objs/job-control/job_update_status.d new file mode 100644 index 00000000..19398d4d --- /dev/null +++ b/42sh/objs/job-control/job_update_status.d @@ -0,0 +1,8 @@ +objs/job-control/job_update_status.o: src/job-control/job_update_status.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_update_status.o b/42sh/objs/job-control/job_update_status.o new file mode 100644 index 0000000000000000000000000000000000000000..26a7e9fae55bfc44f902f0df141e3e10efbcf483 GIT binary patch literal 2748 zcma)6-D@0G6hAYYnQXGj?k3TyRKkLdHehyR8Z_9biMFzZ6ie+#5X*HkyGb_P?5;Dj zO(LxXVx=JzQ^W@!1QGQ~!H2%o7b*2s^bb(*rC^}}`=UXE@ptClNp@$qBnQqtANSth zJswE8WflPmk;_k2XN2oHzDtN>=f_XK9!yh!^NsR6Q1R_7Aku4e z#3%8JW!ra$@jAIUHT0QTV@S0ro;5Y)6Gy59NEAn^{jy@#Zbt4>25HfEU2-jb~LV#k?q4^Bi77z8eZ? zRK;{<&-f%>d1}sYa5%nxmCYfAcWa+`etZ?n4&$8+;r+HxJa4JeG~ag>-j^yqEvl4V z5$cD`7mv<|49EAV|EP$9e81Wg&o0j+Pft`!3x!fnh>2snM-z=Hyp(eO0z7tQasO1S zLhfP+h{p1hZpzQVP*7tnc zAG~k%_~zP`&9&;5Z>?-n;*;CU54QihttGDV?{@DXhUWY3-C?wqACnjEjPtWfO-!6S znYxsB+(NmO8c7eP2UCabBL0GbkwF;g;i2?%{p31!X0ALnV3$jtQ!cVDs+FAOi67-220veiA0 zky@@|Fj|a7i0f?k8Y>VVgCkjkH+%usadh_0@hk@tFjDbJ+VTg#+xA_Aqx6r4Ov@#8 zd)XD<>))Rm{Jqw+U;*fCJ+~cU0kIDU=UY=U0fjL;ySU5%coqmb%M7p*H*;Hxw5~8EU7b4 z9R=xW@0})XF{vdxTBGY&#UVZkUfyD`?QON6Xgr?$P=BpcHiPI_tkLOHjGFduyc46w zXMnZPYoSclbuxvLU99HvnZl8g=j%Q0lH1_O2=)Iryd1nVoFS*vvwSyqbaX?$9Qe6| z)W$vXDU#5PXnXW+!!#$2Uh^g6DRb0lA2r%04Sn5cGo#-ct(eixqlWgDZX%mEun*e@ z`XF)Oz+=jOLE2_U$)}axy~Hxv0Ju5)E}A Mv0xQE{yT{N2VgUNYXATM literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/job_wait.d b/42sh/objs/job-control/job_wait.d new file mode 100644 index 00000000..3cc04235 --- /dev/null +++ b/42sh/objs/job-control/job_wait.d @@ -0,0 +1,8 @@ +objs/job-control/job_wait.o: src/job-control/job_wait.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_wait.o b/42sh/objs/job-control/job_wait.o new file mode 100644 index 0000000000000000000000000000000000000000..3b16cd881e469db17a0a9b77233410d375ff21a9 GIT binary patch literal 3328 zcma)9U2GIp6uvXtnQpsfTPPp|Lso4?g1cK<&_=7a!s<3aF#I+eyqTSywp+F{o1IzO zT2@H_(^5zv5o1Dp(D>kkCO-J0KHy)1KQSi82OoSeCMF=5KqOj)SiduKr`??v+LNC9 z-E;1_-#zztw%`Bz$A7hqNg;*;S_A!5K@o#O)jwqFGLHaHn+ljz5}V~jd; zB%JR{_3fLp{o1ss5Fh1oG{PAE$T&ve3+KA+6m#Z)a0K~$p1q>|C)Mxipae-`$q72RCneZ z)^s<;V17QIzl@9XX@x@G;HEZA>CKz(RgqtpNa))|^Yi$u%#gdm!TdJRg@Uwrz-sG6 zWe%!Vg!7903Ys3|+Y#W~v_w8%In!kf&i4($7ZS;gf{*0(9r9~IoBI|Wo z(0^jr)y9)?#DLaonCYJQ$8Vs~{RSHB{Ab5*%%IDu)YW&T#*_4Exv~z$#RZ4EavE-t z+EnUx`uLZzLtl*N%p>LTF(Y4YZQpFi#xqvFJf6vy%B}H^?6_g+z3&htvuB^#UymrLk~!7=gtGWVn>XkowLkXXQD097JEp~Vc& zaJeQTI@(dQ9nC4(Oj<6rMw^vTv`JkTT`sM_UdstMS4iFUq3C0g$0HjWdYhlZE`}5) z3s-M54&at5Q)ywL=#!BM&Y`-R^)`EbvG(-g^KM+2&LV4I4--J1^}sFt&+hEq^c~Ux z9RX6KG)fSX&y5ybo6H*doI`K2wEPv%D$oIwR!|#L@>JBQrvM|+n)T{=Kp7fJs}yn? zDkGWn-kvn2=4%7$B%bYk|5x_aT|g*vlL00u08-hP>|kH_;8pN17DKNCDV=N*x@!_s zfeQR|$-TU2ov5wt*hHixw>GKYJ?$L)@WkJJ@EwM}3_S4=~HCqjZ zoQ9H%7D%{goybMYCtP=%Yb|o5xgy$=X%C2^O8kjQFYRH{Xp_{`P#ZprC`#^L=)^6e znVAv&8S9BQy(({8=Kl<%5oC52r6k>oE<-8N7*Hv21zECW7n3rMOC}rQ$p&1 zB7dTU!%5hE%6jz)jtL^&YQU+o#CtuS#9`ZKW3RvfBBgB9-Ji zOql(Q!SJTX-v?sk_-jC96CVd+o#Mly{dpkXz<4*1;4o{TfqMVPCs+sYkE1|emR@dFO9t6 O7;_%mu?hv)jQtNE2>Yi1 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/mark_job_as_running.d b/42sh/objs/job-control/mark_job_as_running.d new file mode 100644 index 00000000..1a028c2b --- /dev/null +++ b/42sh/objs/job-control/mark_job_as_running.d @@ -0,0 +1,9 @@ +objs/job-control/mark_job_as_running.o: \ + src/job-control/mark_job_as_running.c includes/job_control.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/job-control/mark_job_as_running.o b/42sh/objs/job-control/mark_job_as_running.o new file mode 100644 index 0000000000000000000000000000000000000000..85489f31f62296431ae8b127b0419dd17666aaa2 GIT binary patch literal 4500 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 U{;T9%q&jwf^Pg`2QvmjV0ebTMd;kCd 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..7a25b017 --- /dev/null +++ b/42sh/objs/job-control/process_format.d @@ -0,0 +1,8 @@ +objs/job-control/process_format.o: src/job-control/process_format.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..edcd1945e4a130845fcd6c3d6f16a3233b0fbc94 GIT binary patch literal 6368 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 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..fce1f36b --- /dev/null +++ b/42sh/objs/job-control/process_free.d @@ -0,0 +1,8 @@ +objs/job-control/process_free.o: src/job-control/process_free.c \ + includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..c71e91eb7093e916d866d067d6c0f1fd6429dbc2 GIT binary patch literal 3860 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/job-control/put_job_in_background.d b/42sh/objs/job-control/put_job_in_background.d new file mode 100644 index 00000000..2f2fb5a2 --- /dev/null +++ b/42sh/objs/job-control/put_job_in_background.d @@ -0,0 +1,9 @@ +objs/job-control/put_job_in_background.o: \ + src/job-control/put_job_in_background.c includes/job_control.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/job-control/put_job_in_background.o b/42sh/objs/job-control/put_job_in_background.o new file mode 100644 index 0000000000000000000000000000000000000000..6e11cade1901404d328aab03237151c595f7aa21 GIT binary patch literal 4232 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

A zw6m(m)77DdcB&Ch>VeNrHR^~R+PFHO;(B$qHlog>xET)!ERj#p&U!-F1Jp1OYD)YQ zM2DYn@jrm0zQo@FN96I-;CP+*ad5mt{6&Y)c^(|=6Mt6f-vY-P#B<=p+bH=;aN@B} z;ZgCs9j^6CzD)APl7rDtV{GI@(AyxmjlZWGRI#l|U(%#M+N5)C8-macKO=gTzf};y_Fd1QZ}4E=|~+_x603obQg? zwG*QR83Bc~&;k{Gs#U6jcnAbkfl>r5DyS$y6k7hE4?tC=BA`@(B2k`Af4|w;i+zNW zuI`)f`+YO>&G*gBelvT|fB4V;7(!?vfdUi;RU#-lL3mCAy-($5JnuC76}PYto&dw9 zAT?2m$Fe+UkLSxi-aIt2`4|qQla)Yw9QL|-zFz>-K^t<*$~vPHW0vbxrP{JKY+ZlJ zxwR&NoyQp%p8J%4K9Z$AL$28?mTjr7xA#Y7C+L$m1F6Q3YcDf8T6HGr?`;19dq-6F z6SY?;<;v_*Z|@nkMz=+MgInW1zX|iFs*dYlHB%aM+)vy4YQpayly9U0sm70MZ#-j5 z7wi2C>~W9r`FwksN~P#nrOY_p`&7J_EC0@t)`WQTbN%z}l}C5V1+Mq+yUN}|Wv@%^ zYX!;b;+^4NC1cmyd#ujh`6p=4o2nc)-dBTo)nb-T&>mhoX|mqGFR1wn;=Omyj7WX4 zE?&DljyOGQqO`kE%39XO4KsTTDtnzu`2y_mmANl?e?K*UPTtB@vATW-%bJ}Jb|`y; z%HG?`o`M3?kq>0@ARiP9C26rf-UG_s#cBig&-HsB{0#p%FS1L*e~~yD^FfcJJ>{3d z*@nxq2{iNJ5CP59pNPC=c>mvruYD`Ef8WOsir3j=c>mDb!`D8Y+Wypfz7d@pH(qvO z=cH403*}PhKyQC$5_sGT{lkjKRI}il~%bjCYk| zd0f;?6}!z+SX!AV(Hke*NpqDdcBLolVcJy^hWC+E%EApCyD?xjQz$CWgl)Nd zSWKa)$f#{UYKFB(>~f|=(e*e28Ac#0WCin{;F~LoPD#Kew_Fv@9>+#g$y}dh%0--k z8E?WBQgkv^_=1&3JC?32D`PNODP(8PX#g>e%a@@d<9XG>=!A##lPgp)MVMRLak-A1 z7Bz90kdo(M<`ws+-WxAx(a&?L;{`0AZ58Cwdo~$t+g4dBY)fi@ivhNUZKFkPRpn0N zdduKp$*nj}R>;z~*QS8CPNXwBN9#@0xv zF%@lZY}Q(kAM{=*TeQJ=sBv{-P2%*1bq&aw5uq!^d966QSImNug(B3rHjzNqi8cu~ zFy?~!284*UYN5tNgw}*GlW2QhE5QJASX|a6{JI3MWeqhA?ncR4>j+yn*36==Nz*t~ z>QoH13YMGcMIx~lV#^#Sj3Q5j{ML!n=XosFY*<1|7p~D$^-2>?`(Wsv8 zHb(*;=TSAep5dO#SD0=|i1qNf;7L3{^dWLrdoXvCt=ll>XRN>F$tJ_I&De5tt^ zT>89)K92w;F*D)I==1gfZH3Pw%HGj=s5MSQF$H8?5T6FyVXQW90H+<}EZVsVi18U; zrk&e@y0wh``vF?V*nbkBK}P$t0Ig@VcLnHdM$6fgHqSw{=D`4M(9>s`zYNfjo*p!R z6`*tV^ak^{0s4xb9yXr~(6FA~XucSr^Yrv4^Ch597~lDNdIal_O<^Qa`~`ZWEB-gI zext*DBj~h%p}xgV47HP?z7y1)%23}6&}n+Q&HOMxX$H>8-NO+UGH_13M2ir(h;mfp zMif!F6Pg?6nmidBFx$X6SZp4Tc-1#mEw#wIefun@hl7FrZv0k*?D7Bj}gz^kF%ghnP}4x3j1@uf2n zbIdFNUCBDcoHBn1^cWFi7RJ{gu7fIZijjjj1Tj8r(6h}DBTJ%_&>GjE*bUrpQv7PL z`3)`R_237gZfN89Hv@4yG|b_MoXLk-Hy0y{M3mhdeu^f;$%K}?2SN{1V}pjS$;Sei z1dJtr6Tn8mRPt~Dn*ir0{{Z+U_DunHCf^0L2%7;1l3`4nge`!BqLDA%LuisTw5B06 zOO2pt6O9*xy+nOXi@XdT)0*ETGh~mCSz~I(BwEdZ#ZY&A0oY*d40AC!b6ac)gI)q8 z*S?2AF9k|OQP<09UI)YliS==7odYCSyPx@FI6%mro#sVAT%H)RXScZ}s6+PbH@61} z*>gp0S!2ka10tHjU`9KNRcIAj+`<90)}>Iit_cbeT?w&`*(*9oNxm4HAYH>w^Wxmn zBW9QRZE(3sx*6FIfaG>s%*gHl%E34`bh^QO07!12FLH6QrkAcChWXmf9EX;Cd>ux@ zvtygSjR%!HeZYIE#51!maed#Tc>bR@EwHf=)J9`?;41uzf=BSRj&l_crW!~H+NO8> zHzf{YEst-;#Qyw{VH=}lLvdQX=-0!x3#|r zy7R|J*Zlk+TT(aP9sARvN82_$vG>f6CiF$AuA7_MtA^8Y+s0hSfxDjl;5+|%q5Y{{ z3lE?CY^wdeZ{#~(jo-d^UbE9>ciz7D7ECrX^&_A|pqD{MKsvVa98foC4d^0J2IPTm z05KWd4|)>xBIq^H2cQN_9QXV(&=6<@vJin7HyGtT4>Gpm8KKPc3PTldHA=W;W<5d1(XP5gXnRsxs=hr=Gkt`1jvfte;$nSc>g)PBNoF8E7ox2$ zx>0J{M~z98Tn_rG)&1pwzYFZ*1V0P=CfsVDLVbnh11o21+$p!u^8fdm)e?GqhmYpG zpsy=L-5(RZHb)*WlnU}=t2YndpwhIWj=L{w0z)r4-;w5r;qRD4bC^~T=d?5@0< zFN~{-N>MFT2~J!&AtX5T2qz+e#DPlu3%wxqP^2Cav<>gg&L;LW#eUMvn>X|3H@`RY zW_JJh=dVYD04xevVHv=(9m7h)g7PdDo$M#bRho!$NBV>|Vgi*64We-Fn;U-64(x^5 z%L{vU*g7K{ghyPi3;_t}0k{_WkmlU*{Dx&$Whdv|cp=UQa{NeKHl&Jln}}C2%d1t6 zpkjpcnfHnp-re>3R<=HudP~8>?k>m>ukILPhKhHXHoHR-v{~JcAn z@07&o7tgYn9GaryeIof?k$7h$zZ-ZSbS^0S@@tgrs_8wB_q!7B_kG5@QZfWZm0yS# z!uG~1xo+L$c4>v^Jr?h63G}uI4d92K`~p0uyetk_<(H7Vb4cRd?GsP%b4!MbcT~Yk zB_!~kQqCjb=Wn|E#(Q3RpO*6red6II7LY2xuN8jlJ@E`@1>^Mjs=aR670%~p_Cmoo zNaAU-^BcsYr{+7%KY3J2yk?CrHSlzU3F>=rM|z)>c-sBNi_t&xoq8hJ8 zWKcd16aexfx%C8oln3H1Ob!b_qVo)vALV`e8}&5W$OFz}=@g2Wid?dDsAqdoZ~v)Z zzo+RpWB6)7yY)bC|8|$A>FwG3qVY4~>Nnqb9@S4{)c#`eezCoM3&e1H_MU$ISM8%; znwGuRYHphK*2Ls7PivN)daGHkueK(#uUDF;W3*hWa(u$ls*bN+oI5>tZb9@8gV!+f z%T76KIJVz#>UqzqTDH$?CA(5L8#x1tbT_s6`AcWDHM8Maj;&4S3b}%I*r?-!lASJ~ zk(-*#9eb@eSbot%jC^(7S+11wQu2 z3M|yQz@=+0b*XcAP&)DZ@u78}B1aU;AqH{OG5kKzb^sKv-AGQMCjR70(a87k|CSm= z7@~vTdm?vPt0 zvQGzgmUapO4hjYU@jTi%E&htsFG!6_^v_5=ih4w>Pa^;?Vd*eMyVK4pG^c4udI#~ROU zW@htpELln#v2{@$p^Cp$YAO6`eiQ*ecnBg@QOZMVRZ%r+BNeI$kroAs(57wrojZ5T z?!+{{(z)kx&;9P1d(VAn-v8I-|Hc@TA`BI%2lSSLDhEQj6;vYqYs#5~-*8d*1UfJo zQC9R*RZlXUx0UBAgmP6uxd7S3F954gh06}zV}hF&L3huXkAd2jn64t zb=|!YuMx_jQql+MsF%f?DQi5$aC`xt2#?(yuiR{!x@whYD7+iK*AVgDCj#1a)A)Qm zyE4reI2_+E1m3W~`{4@lczn&W7REal!h30jc;3=}Hgr?#xahE-M7-4mTXMg?9@7_%A1C?&r{{)sgY;pq*v=3sUG z4&n1)ufQ7@c%uSOs0^Rq2xQ{Helrb=BZj|sF^EqD(*zzbIPjK>kLHD+g~?v-M!^q( z;xN)Vc?A3^a9W1Fpw2>gL^mEeonFh!Q>FIDr4yfyx99$ShFv0`(lhs;C#GxyW~n{- znQv`RUgAP~@*}}7iVknmyqBKY{t(z}t5Gd1j#Af!$xH323#Ink6AP0cO)TuWII%Ew zVWK@a9Q6AJeA|;B3b@~wPMjS-@XoAZ9h#dxs+)5oTkdvqvlZK%o2{6wxsm+V>a1>S zb9LLx?c23;|Gxcub4{aq|A?_U*Q`5DF1QWdG}UIE+qru$a~-WXZCCP|ZF!Du7G0z6 zxn5Ikl&z|%I|YsHpuL~lz5DS!xkI|+8n%@iD~uLKbDK012UdP;6iQ*+mcre4tpKe! zofWg z9bE)hUE`Pzq+`13QDT-I>=;#c4j z+~h$5e1#fGTTOtMp?#CIH3ZQcOG7>jThIE~5XAEkBTp%R0*l3?gdHow{2vn5$L@s~ z0YytO3W}CKvN^d8tQ1d5srw+j3W}#B44m2%sA;J2)Ks8mpk`AC0<{n7P)dh-78K7y z&81F3{DjngsAH+;0(BMCah9e~C#X3lWj+A!`zxwJmc9TsP4>8?*ujg zs7m{Gl)(5wO&rVKDbNxWiv>QD0F~J zxIQ9G!Q+jxlrh4jLK)ZtLRzyp2)WKZC;C&tE^j{o0>< ze|ns5glnJ-Cg*k#t@cjP4?r`ZdC;?<7eKFpehc~w=n6MN@8K6O+_Y3Uh&zKt7M`a7GD1^ zcVfs3T2u7sEaE&Opso_6lyvMdCLPI2*;FjP2rn9Z9cb|?fnC2IoM&uDCVNW$UfSOP z@PV(){tiz`x|T_!rc;FimO|G!GmT2kD;kz&w&*@8wp=IBipJKl?{r(-qi#|4U%Sh9 zfddO)&v+VOWYhHu4LY>_{*bX@#Qh4T2OHL|sN!`21GdVNC%#MNH>&R_E=?$C;L-U0 zIGmS``beLo^!A=n)jeiRzbI`(;{D)#5P~B52P)eMsiT?8 zo%$W2_CiSC7t)zp^VDY9Yp9m(RSk#cyX)2FJG4Chgi!0cM^8Y8$B$Qrt5r93&$hTz QwTb@#UX5`lykgk@0Og6LKL7v# 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..57cfa8ba --- /dev/null +++ b/42sh/objs/job-control/sigttin_handler.d @@ -0,0 +1,8 @@ +objs/job-control/sigttin_handler.o: src/job-control/sigttin_handler.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..9e9a7c2adc03cd799c5d4d024b4f5c59c5731c41 GIT binary patch literal 2664 zcma)8O>7%Q6n?Xg^XJrY5{imIu!@?th}urmphi$2rg6KeLWSC-tpwFzuQ&Eu&hBb= zlO{EmBDEl_DiS?$(NnpRl`IB&-bal-L40wkObpzOKAk!WC-ELe_WPj2{Vo-BK{3iN#0y~$ z#w$2Z&EQsHiReAC-#;YKS+O;MpAO^~;Mv8hxZo(iQF%H?C7#kNojnsdzZQN@L672{ zkKi5a5YJz8_T6t);$4t@E_R5Ak61uP`F$1Pcke(v-Cn|d`h3~CX<8-D=Vtbf24GX- zsWSLA;?bw(7py;dRWc(;;M}P2MHg>3?6-dp{*u|#!7yw}JlTZ=Kqd6a?!I5s5{S|L zP7xW(3k)1VUL?Ogg&);{_!cJmMIO;Pg1U+M^yxf-;c2wU1Kve#71}SUe0Qxw2l@+I z^PzToTh%t=8<^Z|Jl2{&Z_zZZnSUglW`0}PZ)r=~#;Yot`@`hlU3fHeH@}^0e*Y!N z)Gh7ykLryd>ZY~QsIM8d#@NIuPpud2TBBa9EjPx}r%QFi)*EHpSFg-on4h1$bW(N9 z(i>wY+Olv&LO*z}o~_!&v~F9zYuB=#S@wO?;+29`su^xZhaA0Gb#CtJJL-zzdZulu zQRUFL zmJe)*jU`9ov1F?I`Q#8A#+y(w7#wEP{jub0iPsay2i_XM>WqUT1G6J|Sw|t3d^3@t z3w<9osJ~uOy900%BP5psBiisMOI9jC7+_bcn7{@Ziz)X$ye0hWG^J}Dn>dz*b|t5U zRYDf&2nk}rPt~0V(>G{YfrT~`q_oYYP;~ANN-KURIkfIGl!!uA#qc*ghIQU0>KkBu z{gcEb#@EFd0PTie2+IF0)q^lZC&(17JR@4LO~TdLt;@hxQ!F*m)B7oA(JC*XZapTT zot^NEA(u>jteiU({;a=;ISNc+%h*53L)fz5Fo8wN7NWI-bt~xf?OtSTkj0h$-qAQy z&W!+2OAh`w^A|w` H%@V+W-11s~ 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..4993f579 --- /dev/null +++ b/42sh/objs/job-control/sigttou_handler.d @@ -0,0 +1,8 @@ +objs/job-control/sigttou_handler.o: src/job-control/sigttou_handler.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..37b7e16fd3de1fe1b0ab7d808b07fdd12f02ee5b GIT binary patch literal 2680 zcma)8O>7%Q6n<;h`E%<0Q3L|Ps%j{aYC8=9q5>sWV(LgKkTxlm_!;c=#@@);HTF7f zYAjhQLRh5|NF2Cvfjh@?qKH;pKwLTIg2*A2dWMSdz1i8s-loJ)dh_0!dGpOTGjG=Z z{qKAK_7Z7fLIXVly&XZLLm^K>GaNrczTt_GEtTWPz$DgT9)t+tnpa)V_u}RB<>md@ z_dZY#<1v?JzlVdM>F2N&!l=3x%Py!+Av*DV9Dn?5Py1}5P-h6dyqT*N1VH785cBV( zF1)dqbysT&fK%7J*oA} zz~fKNAE-ZdRVu?v5W*~q)e3Ick2}8yax#WyyGM^ws~5nmA)^XR(i*?UjL80v&_vGb(kMU*}t)JfBr^#C)N7tdr~vD zGuQ9v@Bdu4?2Sf!(=0W{r%qS(dd?{|>bX*_F&=**UpF12QE*)S;=;M*<+oN&>18Yb z+PDQ_};{4CJ`j2rxK?px$lf&yi#)%NFDvf$zBPe7(4x-8C zXVGccCX{n|H~df_|F={xV3>}V>9y*R7^Oq}<+W=UNV__$4G;GAeSs`q=4t5G14i22 z^$(d+vEffcb4UH3_ji#Kq8YTB_D}36T8-C$YJs|?VDX@EC7u4gn+y+WkRVjFvpG_!+ql9pmf3QN>Tf;zr}oD*L!M9_NDt-m#Zqf!>o;_BmyrQ5HsyrlTIWxOuBWBKUMTAz#K{GmknC|R>fr~hYuI|gW)ijuD@hDc1nMHIk+Lu zoRhWDlMUZdihr9!&k zYvXhLrQ4Uu1ul+nlkzuS`OBZCKN(*p8Y}j@rmKzaj<>d64g4f4THjc@8{@Rie5xmr>M+d(^G=!yu~hjBD`gw}aqEpjLQ-p9 z<1!(BQE=X$0hE{#8yeLvQ6uJ3>ek^mOPwwSNpNJGL zJr*hKdi(f^6On=5&0zHNlsHVbGmN6}dSu;;U6Dd>zhkqNHfx1r0rgYB%0ALJClu*x zlWij#W?zO#BYm4_5Gi;atqU*qNBU&1PDhj2(QA9O~YK?_Gea0~UE!M-&|3%$3w)rH>m5O*-26@C}l z@XP_AzBM07=Y@g7t_OkFoe-7ln;6B0U7RRo7K!z;_V?>GHgcw=(7P7$Kc6^p(o3YT z98EbNvTa{kWah$Sh2GV4RM?aOtL)`lfe{l#Zr;O%`u=ViLQ_o4WzGsOSg?3uc!ibC zCDN&ITXSo3Yj{#DiA3Af)(X%(eQNWRb3`s1Ye`xwt!xW+R(BLzs?)O5c{`K0n`5G7 zQ4S7TI(yQ~I-)Jpr{=oMSZ0-($>+Mnm+VEXE1GrHBHob`iIgpJiJL6$eG$#s!ZzFO ztYwLu;tAX8MvIhfrEHUy(%iJUk)m1baH#}Nrc<5ad@7gdOj#Xa`b}DKTVxZRUGxgy zsdNYZx{~bDHYJmdWx<9WQ9J51ky4&bq?ENf5?RzZJg2yA#*@)bkrF-WYzJy3%R4OI zA!5mN&JuQdxs^g?vI8NYP(u=d4ii)U>`%Zh_MmmotvN_w#WYaM# zmt(LAtO&v-v%4{UP+HmUL^>y8WE!B7K6p$;y7=CnaE`< z3)8{Uao{LU_U}r$!I+{eL?&u?$w`T;S&4Imc$*R_6qr2B8kPy6rk$x*GZpV>%|%yO zu$iLxRLMP6o(UB-ny(_HkF2QjRAWDTo1v`s%nA4^W&~#j&o(Zvxd_SBrwOl8U0#Fh z%JgASs}$7g?EFk( zI4>rX;hFC+S-Lmg!DG=?coxTD;0bwNCiD3=zTLA%Du_$G8#BE`)o&8{HonnwFJaC5 z4&2)FIAN`co>9BG=OGB5I@#2>@j%a`g!M0>Q`A1#vz2hfyH4Bwo+k(!USmkwUKILD z7M@ZX_z$A+3cUcPm6UCus#N<3EN~pf10Zi>@DZ@Ex7uJ7v*68J>unUqlR&eH>b#A9 z;}FobMD^arknt}Ujqo-$i1I)LHP1s=GA3{p#N7~m-_!SjmHIXI6j%l|`_;lhUY{rF z%|;1ScY*X)b~gsn&xxj>I}vyQVi`!Q)X@51eoIrgX2fr9-9_!BH z;FE4$BL^=dT?my{6ZkG{uA|sk(GKR<8)Q@2@tJg+aGQ=~7}_e>2iBul$wp&?Yrq;x z>x^5#xe%q8USZr0={GPcZD1^%F^SGVEJ9;zjUAM7?JK$7o)V$$qv!WfY=^m4AKU@< zqQA{}0i4$U8T7mtNWLaB>G`if3w)@X#Zf+l#yfFP`e%C^GsaOMX?dZq@hOk-g$pn8 zH9qYzO3+Hy&ha&(r@#{6ci>H%5c~(&4P~Q^L#nH?vF!LT&=we#VX{jM1Kv3GWpc7d zKpJ43oa|{pl?bEEne6ST;ED&w1fGZZ3B*7oz`ngO^i9_O2yI|LiV48R8Ntb54Mz3g zlp4d{Z9~4>oZtZZF!*i@jjcm7&@NIQ^i*98;TBYu8y-Ynb(IUt0sU3ixv&B-R26e! zC1691S_im|unMrP>K+$X1I`iE+&S~1D=+nwJ^(Yhd22=W7RVXu{T@9J z?)OO3JE$u21ooi%G057a;FDl;{O1}w!TIj{Cv&nX$u)1{Dl?5-qoJ;utNc0;7sB6y zcn!WaaviZFM;ULs2s<)t@MYq%_@{asCmDy_x@q3VR^y0^rh6Nw4=$(wJd9Fk*Q2vQ z0>uEVv~z0Mfv5I|P}COO0`D=zI=;f%os?dNgax>2E;Ea~R+94)&&Sc}QvOTRL7A#$ z{)MJlYKOO_s<(@bHC%3SSScM=L(n%Lj6{B*DFbK! z6(Ifw#6c+PK>R&30yGjd1~d+2-;o%t|LJ1;S2ML&r%uUuDk_{@E=+L1^88~DMm-(M8EZL9yC zS9a9S+qL?<<7ZAwjm~=~gzjDtAANLNdi0h>H*VSdi&sDU@yBnB{LxDft=_$S{N7Qo zhDN>@*tGiE&C9opsIn$LcJSzwSa{Rw!u$VOeIF+Lmmq$ic@uOH^eHHS6&(#~1ziGK z3`&4jgYE)70(u7Y2hiU^{|50ZSS{#m&KF>8Vs562=~}6n_NZdYRVt<=s+a^-kNW_rV#ZQ& z@vNqb$CI++oKwa8qEri&irHSNcwW+q=c`h2Y*g_+q*Tm%R52H-9(muOic74lcz#mF zLs3P~q(c?6kg~!FB~{F5%8KcgR!qCfidPM)cqdURW?8CuEGiZ6GF0(;qkQrDMHQ2o z3iT1C;!Q|d{lC;xinPM?0c-iFOD3HTd)!pyx#>#bSsC(#j8cC;tk~-)P}hg_a^i%0 zNfmP|LbrM^DR&a55O2ZOE9y{sJjW}_QF_=1@!$_#kxaD5?UqC;mdx`vPfI?Rbx})V zTH7~=YjUe{E%Ik1f6kt&2@Hh$t9RIsXY?w6?KXGu9`5*njCV)TR&jZPMDW|4i!YbpL)Wgvtt3#xK2dQV zchrMPeii^RNK~>=k80;a5rs6QT70Jn&n?1Zi|{Q)n17cH^~XIm6yIBfBSpBs2n)P& zMPG)58OP@uJKK@Z2z;oqqj;fHok@H+O5w{5KVHO^o3XCtW;~imqP_e^g7*_&ft(LN sW-Mz(ZG2bfN1I_SI`dI{W>Nm}vD``laR<0j2z-}`Lf0KlI{%XV54@74hyVZp literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/expand_bquotes.d b/42sh/objs/lexer/expand_bquotes.d new file mode 100644 index 00000000..36e5836e --- /dev/null +++ b/42sh/objs/lexer/expand_bquotes.d @@ -0,0 +1,8 @@ +objs/lexer/expand_bquotes.o: src/lexer/expand_bquotes.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/expand_bquotes.o b/42sh/objs/lexer/expand_bquotes.o new file mode 100644 index 0000000000000000000000000000000000000000..4e7401f6d690a6afb20c17775772e3954b7705de GIT binary patch literal 6440 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/get_state_global.d b/42sh/objs/lexer/get_state_global.d new file mode 100644 index 00000000..c87933e7 --- /dev/null +++ b/42sh/objs/lexer/get_state_global.d @@ -0,0 +1,8 @@ +objs/lexer/get_state_global.o: src/lexer/get_state_global.c \ + includes/lexer.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.h diff --git a/42sh/objs/lexer/get_state_global.o b/42sh/objs/lexer/get_state_global.o new file mode 100644 index 0000000000000000000000000000000000000000..4f60406129decc7ac91caec191124b9c15f31e05 GIT binary patch literal 3932 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 V*HDzR`y$u0IYAN*X*J~_{x5)7`{4ip literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_backslash.d b/42sh/objs/lexer/lexer_backslash.d new file mode 100644 index 00000000..1f470ee8 --- /dev/null +++ b/42sh/objs/lexer/lexer_backslash.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_backslash.o: src/lexer/lexer_backslash.c \ + includes/lexer.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.h diff --git a/42sh/objs/lexer/lexer_backslash.o b/42sh/objs/lexer/lexer_backslash.o new file mode 100644 index 0000000000000000000000000000000000000000..a944b60a17332d4352770e65226c2fef64f3b33f GIT binary patch literal 4148 zcma)93v63g89w)3U;8?CY$qvE`jk<&Py~52OG^alR;O|5q)yu9(Eu8RA{>OLD`ObgO`OiJqzx&TCZ~KH$Gy#F?K`rSJQB;)8s5c3|M|s)rG+g8u6xRo* zU=0&QG0jSLq2kz%KNbJ@)H}XwElY!ZoOS^Oj1A6tDz}(sCOb1fYg(1E4VmW9(b&YW z+bmq3zwx0^9`-uAMyfS7;&b@&#k39A^L=MsZy|OYwWDo&T@RNpH8WGrp5*hdkI&`% zhNRgjU#@Vh$RYK7L-ryG5tmV1m+@W1`pNCPYkcKYVK!^Mo3ASOQ-&ut2V84S-<9t~ zDs6{YAD_!7w_^i*sZuGQH4CW|4DVgf`$ZYwfDC8LJ>zruiZhSc8(bgXuO;7olJCd{ z`Rw>gsdPQxKkE3-Y>=;Vx^&m)4axj%ldJyZ2KjL4Y|8rhI%Iyh&->%XwS9Gsy8TTT zPvAK#=6vB)u8=X!Lo2cFMmd_Pz#`@>IBKda9VD^EJ<=OX$kLwa)hd=|RVDN3I*WB}j#yiNjxO%Zfo-=*eu^$`uRI{;r;`p6JeW9`BmY{vJ48eZ5_~J}9hmx;vj;$d(;x&ZN@E zt$fOw>q?96X$!--+=B+uAH8IMnq$*i46d#UFC#S@C{AhAy zJPtoOGA1VDhsDuD6GLKrdTcO0Ar4H$V^bm-pPY2e*!Ym`Q9nF=XbR&THCXGJ(i@EJ zKRB6;O(w+Q*hG9>>_0R%79XDyag4UZe=}Uc+A#~INx47NqHCducWbCg zX-3AV9z_cU0v`>03@1X{DYVcwya7C2=-RC8YtTY$`9N@_<)NSux-L`+jkE~i?OW&i z?!)K@0|5{jVZjdmRw#!;h=!J$nF5XIJJLe(ejL;wPNxtt99HLLV=$LRP<)sQCE+Mr zE=ya@!0;$LwITuS6ojIE4pP+~C7@LyJ=&Kcb?pgAul99FpY{}_p*;=h*M0!mp#20g zpk0LwYQKVP)Lw!NX@7OjjI~|H(Ypg zpRhd>(yLzj%;WT$Rv?A%4tscvx1fx-A^d*8d~j`ZLl~+}YYwzR4-ndQ?NcsuT^c2h@d|K`$MSu4*w)nFRJHLzCkFTVc6Um*#07f9nO}9S(t6gfdHW^ zsLBXuS%76f%qV9$3-4!aJE*n?17Cv0fR!ZYG@gO$vmm^RzYFjMnp=(ELizsy@iqF} z8omj&Q+Y7(G;{|xSlP#Uo`+}88sj`K!0Tt*AeaMxa=ra(dt2Zy@a%|&)b^N;#<&#ro17YXYZnJ|uH%cxe%Qg>;@%Pemfd6hSVHw<@1WH3 z->VOABGygph{Bsi5ngB=sl+=-2yznVC19ZP!<-oJFZRH3F5(@E05*2KeO8L>Zxl_p1b)%-)H;(`_R5E;L7B4|%~o#fX}+?AYX4SKN$J&P)hpA)-WrKI5XCXd8N#-XzzZJ90c;uA#{1)%}g` z->F^btBUWVr=r{nH9{(!169ct()sxezGm01d6Cb}9IJG%HFVEgW!LM@Jk+cje++0c(XT7p=&DX8>&Ms=QI*=t9_^!48A)sKSpyPSL`O9&C6+ z4|qrQmI2)u&{gk2Jp@nn&g(&2U(&jM}TRg-bFoZB=uGf z81-JVM{a`N0-yod1zqv(RsC2Z%*zV{y7Md0h`O@?jfgt!mBc&g+fKW;L+Tw;Lvft< ur&2dVGvnPtv&OaGJhgs%UAu6;BPfOQaV3GZZ!xSWzaLEef65jzoacX%R)p&S literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_bquote.d b/42sh/objs/lexer/lexer_bquote.d new file mode 100644 index 00000000..b21282a3 --- /dev/null +++ b/42sh/objs/lexer/lexer_bquote.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_bquote.o: src/lexer/lexer_bquote.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_bquote.o b/42sh/objs/lexer/lexer_bquote.o new file mode 100644 index 0000000000000000000000000000000000000000..625a2669d1cd5740ccf2546c7a769051734635f6 GIT binary patch literal 4776 zcma)Adu&tJ89(=NuI*gE@_+^ssJlRyPR#?Fb=m56F~sG@Bq7VAWE<11<2b~vv0XoS zR8S!t+F9N-STzZ0+C$pZu|G!l2bUV;s%W8Ozwh32 zgX6;BDChgm_dDPDo$oyFao+gkKmT{K&{XORYlbc}*oo*Po^?XJh-&?oISKODo;ds-6uT{+Y)!XF5p|dFK<698>*BNh%b5O4@aNYVQ zvb!+OqFKu9No8hDb9nH&D`Uq6Ur2!c;G-kc(q!K&DAw^M=gql1R@ZJ|n#=ElbAoTc zu4dDMPnb++Y~Cr8UOK<2jKx?#Ubi?8x`^VK7;pPc;-h&960vSKq-L$i>)=mUT@kvE zs*%T#YZL8p%4#imo8>8^@=v4u-k4E2aLK5Y7L97@l2N^%{wk#lur3&9H5OtF#l`Yd zUSHtwT2Q}0{TbB*)UQIXlP?v&SBdBlcQH@?T%6}O9)~gY^{X)aTkBo$NC-a3=HWTXa?(Oakbtcld zvb*|wVRZLx?A~w>E94VB>EzyI-j?Rf6Qyi1*_~iLQw6l`*|{hC*lfI~Z)0KJOyu^N zxl&=CB~3Ib6ywDt8;m|2nHrvCqtWfdL!(jH!$Tu%B09#lZyO(Eqf;ZBqT_7Kcr-G} zhNBY`b}=$KXj!DcHnnXM?QFHF)-r{)DYAL%#BgN7U}KT-=qTH~ZDb@mI?1AFoyruM z6~Bm_#nXi%E1KyPRKZq>Y^IompU`F@^<=}A{SX~e;O%?Il8V`uXd_2!`*#fiY!*a2Ukcr1xG5dHjgO;`~2u=4YfuyW1EkWJQ z#*1;5EF{=c5LORBHd--*Fo%~5&Arqpt@k%`#UIq#{Ebo*&Vj5-ieJ~iqCbG`uXHlS z-|oX@5@18kxO>*Yen{6*rFElmlQhtv_{sP4-l68N;;Z1|OcoF|aQ7`UJu5+DH^9TH zxuz%G2j-z>qUy(;=d~`#N!)w(jp?QvhI!e&q>!SvvZV9alH)K{sZ&W4tk82$Quag2 z${_-jry*6P3dxo4Lu$$~NSE>>NVoDFq(?ac*`S<+)RmVYy$T&|pYkT8UwIocpj?0q zDs-$GnR*y$V0m2qmO=iSBcewRYly;G|Qtk*c zujiX6uSe!Qg<3BBvNM$*pP7v)s|D{|%NE(V*NBVxB>`9S5W}@#mqqTO9+! z|A;beC1WCDKv~~O(%86GvN3xd`vM={L)(p(knra%kL7I%s&9J@sh0m%K0!E8ZXrh` zdbdbSgXZ{#(>I7Q;v}5D>273to)AW_1M&Q^BWVPAM7uFC$;7`7w&$4&*>i@xO}efss2xoz4jvSd42VL znKdu(|KgQJa9tsOOu}8reaKsozky8adJvfw@j2udk^hWLtNQ^m$E4HQK+#&AbAllyo3JZu% zqloMO?Hw2P1+6PctRyZPB3+i8y(B$3&ZNCTDd=^%kBBbX;o16;y*r$Xibedvr{&E) z=LT~jLYe&%o|1IM?}L=64`eBoNu*1&_?58q-Dm04%v`Z&siLP;$U9a~>c0N_*)pWC zuh3(CwhGMtD0a^iaqTA$ip7oT)PNppl)FfW*BG zA8}oa@#Zjhhq@x#U#T78cg^w681ISkFM(WpkT+>_d{vBxV!SiVUD^Y@A;lZv-x}k0#<&_rqcU#? z;DvRBw`mLfbFfy%_!s`c17Ys#MlI1GnlKN>_zGBUuyg>^pjxCkwdr zDm0yOEJPP=a4b&O27%K@4GYlqzP(Yp-i4<6S!nVf68Z(ZUi-DscMDBFBtT(pLDG)j z9l!$soJ7SM)4G3aZT!n&Sv|d~YwMZ)^dia3Ts8+mFH(WpuUBk2dUToi)t<~?0RIDq C3mNhN literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_comment.d b/42sh/objs/lexer/lexer_comment.d new file mode 100644 index 00000000..734f79da --- /dev/null +++ b/42sh/objs/lexer/lexer_comment.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_comment.o: src/lexer/lexer_comment.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_comment.o b/42sh/objs/lexer/lexer_comment.o new file mode 100644 index 0000000000000000000000000000000000000000..0b19e61060550d0fa678ee21dbf0fe0719d9a89b GIT binary patch literal 3952 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 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..3b826058 --- /dev/null +++ b/42sh/objs/lexer/lexer_delim.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_delim.o: src/lexer/lexer_delim.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_delim.o b/42sh/objs/lexer/lexer_delim.o new file mode 100644 index 0000000000000000000000000000000000000000..d729aff5f3f75bf19b7a9fc8036b493d3a4515d4 GIT binary patch literal 4272 zcmb7He{5Sv9l!UU-}7^xV>?M#(xvN+vUUZLxJ$zn4Y!NiczsEow9AjRnwVZ4+ljq8 zw&nNSU#zG!bXsO48dV685WhBl{J{VTrfK|`IyTgafr`c?goMVx9h zz+^;Wa-vw4lRM_Px@%7+4^Dnyd)gJD5FQQtGypX6`PeBEUa_ofZn`#W*-n+aENkdM zV*CNGnt3>XrAeVwIf$zZE;m{pUa_3v?q<9fR<&kqOmFPX^;IoAy!7;RHFt#OzdAk- z?^^<9t$2mfOqseg<2^zfh>{dhTov)Xj`b7Ucgy&y>C$Y@z8UYkVn1C}#`+9TTamZK zn@eYSh|TeNcw#%&fS0aRiaD#4o}=(?n(tF0zPJcy`$xv-;+3Z#&m`*O4I&k z%5#{fW7SGW3#F`OrG~tQB=Z6@=xq}6J9QF%~Y|wZU@U+eIGm_@CF55 zXUN49Cd2geo=(y`Z^c51BR0?X6@fP_f;k90DmOkPK3bOuH89)@j)Lz5`QW6j$U>&5 z8nhqOSZD|$ky4FSAE{573x6}`{~0wGPQGa_)RxS8?M<_OFZ~v3m(6-|$;=GuW_=Vj zf$$4)X^9}`ud(nK+o4c{x~b2#&ZlP9dD575gj$~hwVU-mbKy4}$Mx2hJkWab zhB^Oo^pTembgrYR)I+1uBe|+wD3_uGz1w=XMYm>(xQu!Rw!!G_@9Vwi6U?q=V#VCC zT-D{c^NWSK-VBRP+2|UZJz9P=n~wGO*?B8dIc`;IcAn)d^st?@lVd~42NF}MNj8=| zkQyFK!cGm3vWet=c3|K55F48s-IW|?d&ZNANtQ}ZOt@-dY=~PVADr4ZiGHrw)o5A5 z+LhS7cOsRTFxmdZcyf&G-Zwg$9GhfG^yZUNmi&23wR6)!ZE%?zkU0s;W#DuHgdkfCrTq!CRG!;34HN;9=zwctrU-c$@cDvy~4R>7jq1LJmt;AtY5^tX${z+u*SB z4`L>A*aFw&#Y1(n+Ae@I|2x#er@srKzYi7&kQ=0IXz@dID(yxHGES~_ayK*9L)$^t zZF0A6q@X=a)_S=+!h!)4dN)Yj6qtbcB*^z!|9udCT_04#&;mMV1uPW8t0d=_^1gQ=RB+ds@nx*<2BFPEq8Ys1jQp7lDnfUa1WY& zA1pS4_zYLx7#+*pdQt&IDB)?l%Z10(330Sfl~1J`1s?*7-5p%2hu?S5c%j~!%}xt1T~Y zJN1MS2_E_Rw}0^JyYi2#=QsItgFK_wR(evLtdF_?{ z&ky|PYrlJ5jlFvN_R<}{e(clN>Gr35r9AsMs2{WkM0qs_It4lhqUC-bL_2#4^cG0P zqEik-<-0>K4+?DwxoDS!i*|-wv`xZAnL;i~t@V&7l=I}GRK?vvh0>W^l=Pz2A(-T% zbfXnRp#&rsWut&6n_P6RL`OOgUd@`CmiJw7N`T$Nx}6)&Nr6XQ%e7Lg)BzkXJXvk@&1 zzT>8d=#RTK6nR|U-6}p)SrTn!_CvIkr0bzpaEZnMNrh6TSj*xocja|w#lrNA6I-c> z)$FQg#R}U8?q#by_HjGLpC_BSk6&+|fE!+0d?H|(@YzkE@$Th_`9_4s`>Zog->AuKMCYpI5u! zpgspxN!uw0uxyCuH4q~2`7I=7)AJKZ1iyo?F62p3-v@~q^!x}C{j{fr+#=*AAt8AE zb3$&04AVfO(52L1^6%b8o5pFhNpG|Vn{4KOk`QOsjANy<*=lC4!u5hJzK=v3{)NYD TuzS2}2HQv9DfqXL%d!6g%*>h* 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..578d808d --- /dev/null +++ b/42sh/objs/lexer/lexer_dquote.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_dquote.o: src/lexer/lexer_dquote.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_dquote.o b/42sh/objs/lexer/lexer_dquote.o new file mode 100644 index 0000000000000000000000000000000000000000..9c108a75fcf2ed151419b109957a7f843b297a86 GIT binary patch literal 4716 zcma)9Yiv}<6`uQ;>s{aV?)m|Bcxf9$;;OMtfKVrOh}U@Gda(`lBakZXWxZbPP0a3Q z9|j_*kZovJZY9$w3RTs#Ql*sqA^AZhk_Za4Dzro@Ra2?0s+RnSWU4epky=3@q2HN1 z*Q__Dc(ilQoO93l=FH5Q$Nv7)e|=uTn4&QdR2?-PQ*b1Pb9%w>zpC^O8bmhl#nxwuci#g%LZK&kB`o zckT@LZE-&{7w7L1?*$5Geo;$B7jG;b7wU4nU(y7XlCuBvWamT|NQt| zyq`*l#o{GXd(z}mj`wZ3Mo}5X$1=X-m_PYx!T7SV)JP)tMZ6Qnys@!X-+UR;f_Qsl zaS>v9d@i0`jz!?bGMTZ2or>+H@V+qK*JXTdGOWk%8=r%h9(qnJaCv+mO1#w)udqlw z5nm=2FURxBd~@-Bv`D=Cfy{#AZIXEPa@Nl*5)YeBK$gcBk@?}q_b0y`_+3`EzVY;4 zj5BW+Qu~srVcYKRylaXxL*j*8B{n{7nbXKWx#nefiBWq`7OU$x*!KMMU`FD#OT3W8 zlOn^hGwQa9&+Xr2N+6bx_lm^(SO&9O9!%%%5g*MAzq~rix-OL zWq0qDjolf;Tr36Qg$XH-Wq066NPffEsvK}J{yE>rp}dC5-l4u9{jJ-(FrYA|d&QLZ zVw6s|#mFVsdpdI4n*4S9w|*6-V=dI({d7-gJdw>M)2UEv^V;UMp~mMW`^>>H+Ew&@v7wKi2xA*i!dIwkp-pN#+iTGvYEH;+Q zv%Ec)1j{)ro=)Wxu#?=*C0|T1B6glObu5e1MkpbVrBfrJLMoRWNhO9ugr1^Dh3JA{ zX{rd<;dmLuM`Kx*N#~d|AHu|Gg2ta``SkON6g(ZClbjArQW6tg3PRlt$MP|j$i>-Q z5TXZY)`^&zQmw4<*K*AtG?x3Tl^SG`Ly-BrJ!r2%<*U5Az#c)>pXF^}6&{_i z^(2Tl5AqDEv8*x%R&eOMTYJ<=GE?N|@(oKEpbl&j2 zAco?lqm+OB3^ZpIwC6ZTE{ur!L*<}74{Hs`HrJedY14;B6rhYC!dXm0%0NH%s zl{Tvl_2yq7iHJJYh7j{^gxLwGj2iw1829KM(D2`&P03^Rhb=I1(Gf?gisI;;l^fsv zYBMDmEgI?H5Ek=&NmcH92c;DMel|fEP^J5g3Ozg&T+Duz3(tCh( zbiLChPDehyfk;P%_KVZHb7$@0@0mg0_^F@$;_^-PWH$ZBc-``sKDn~Iw(0$K@zBc$ z^WRUdeCz5%|K4}*)k8NfZTL>>XUBi{HgCDSY<+6wnS+nrng!M^!p9_h8Fd5dR@85z z(z+f-rA2%V^=(v2*?*vZg32-Jv>VVAtFsy$g_eX=v`SJ%D?=(;CaI!KAr+<8Qg9T? zc~VgcdGc0;J7ngWnMTrMGGk0SNR`q8c|-`#yxFZHMVg-q-vwU4e+W7 zZnW{0QKFhL%B!IB8prrjV}^(J@Q0(kIm$P-@rpKHX`F;xl7SrJRz->G#t5(W)bV=g(VJ$xE8*OjX zujv%pnAawm!%aIOll}>*zl`Z6`5ka9Ow%h;J_?S-X*vxKQ{zp^ACi2PRYjE9nREt(9-C6@JWO3_NIX-KZ1lRa@xMEf I8U`HuA3325GXMYp literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_end.d b/42sh/objs/lexer/lexer_end.d new file mode 100644 index 00000000..151636b4 --- /dev/null +++ b/42sh/objs/lexer/lexer_end.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_end.o: src/lexer/lexer_end.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_end.o b/42sh/objs/lexer/lexer_end.o new file mode 100644 index 0000000000000000000000000000000000000000..dd72d50f4e02337b4fd199d4fd54b2cc18d93a0a GIT binary patch literal 4348 zcmb7Idu$v>8K2#~z1zDzpU<%q+&U>&xp^S)BaR!H;+CA_ZO)GE1V569*XF#p_FZ$? zJ8t(JyRISN0JTg+qc#X30Z~Ck2!w(}L_>;V9%_K{sMJcSRA}>0ktPod5F98}Ee}6C?%(3V@bmumlL@4p55ho0QEFui_GK2CDzRMAA7cXZ`6sSuz-Zv;AP&6LJRM@k-uphK9C^w9+ zl(r^K`~7$?SLM(-)dQ*EH^e)fHrx=a)g`i_e)U-f+GLIbI|0 zwc|GNaEM*V>iDL4{`&Jh5W7`;M&U5#>F8zaNY2XW`hb5_-HxX?UV_6M1shNK0cG}#NPEHngBpwfAp`dDh=wbcAS+Ed5nchDuZFn2k% zP+m?gTv#TA^R%X^y}!3jAqX3qP1V%N7nK3EAU)SEusRD+NIRu-14*9E0JflS3UG!(1f=B9)8r7mlw1b z`JmSHi-OazT3+jS#@|uTyB;T-4r8&HuLjGryV5SyOYfGiH8nW5-rIF*{z! z&&`hK%X1rBwq<6`f-z@gP2-TOMVMVO+VbYKS@O7UTA5aZCF!G(7#P?$n3yt4cCKJ0 zx?0;?+Y?)iJicTtUF|ShJ3Cspe&{9$ZDTe%woM)>Jd{bdb#~ZU-6+oJ#j>4crj8M9 zC+(Q5S9>ryHZaPDwEY8pLmKRXzCkvk?PdG-4EM63vB4f~nC%+YlA~-u8yWG`BDkL{FuqbE_x0bN9$VawNs}CWo~lwsX(mpf)thH1u|-PLpOi%VFuf?J!5r z=OAoP7zN8QQN^Wh=N>j0G2NlVkS^hrx=z^nf;E{aTXt^JGBXJRwCHko#~@f*X2SI( zZd4v2*(L@ADWfeF$KxF~&r9MU{^KzbBhmc9-ilum+& zq;G*M()Yl_(vQF+(oexv>1pt&bRN7$`V)9ex(Hq?{S7=Wy#`)){bS=tA?$k{6`~}( z0U^lZiQ*O4{x>+R>>#bNq=N^=69>OamVAL`7y1{q2qlv!sEjCBhFG8b$g#j8 zt#D6~+NAsuB770-IN9qXCn2^752)XU+=LAlcF;IKhvkl%q;Y7BE~@JRvifJ=+9@_S zsxQEDBkC2K6D+(H&7OoSxF+;N2w73?hbOcIo$@9%lBA_@?*@|o74G@G3x3u%Eh3*vrFLw#ITfn{57$Z#b(>Ohs>Y*JKRfk<=iU~7QYyS)G&DW_=JQSUEiZN$iIa~wU(0Pc zb7|8*k1Ty>?ycW-e!lBJ-~7W_x$U_-w^2|qF_*jIyL7kvoAj+%5prfG2 zK~I6sf@o)71-%K9vFMb;P~F|3yBvkKgj}>s+_l7Av`ySanL@2-+t*PytPOWjs^Z&0 zh0+;+ZqoBsbm+-N=|(GtLJ3GN%0>=P$B0~Xu6Rc}59FfU;4aF4a?z3CBT}l8i?Wxy z=&+EBP7m)$c}*@_4(_6aBp2m3chS)!7Xk3N{#WjVkQcPC=&@4xSB6kl6+fSZhliOk z9T(!!kn$KGhMpmbD_(~9Un!Q1#lIr%tl`gF){M3ydkQTD;cBb~T%a*PLe4Vson6{f3K+8e6s uKU`%qeZtX;X(y{&1t*g$xptS%hp{Y{< 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..57229930 --- /dev/null +++ b/42sh/objs/lexer/lexer_great.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_great.o: src/lexer/lexer_great.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_great.o b/42sh/objs/lexer/lexer_great.o new file mode 100644 index 0000000000000000000000000000000000000000..379ad97e0dd60aeb040a8c854328e3c028006f15 GIT binary patch literal 4448 zcmb7HeQaA-6~FJjJo`D%v7MxZ^lNy^)&{hEvVE)ANtr}k;k)2N2AH}<;X1-q5MWENks(7=B zBoDDRJ`YbU2fH<1BA?HstZZVI!u!bgc8K`;L_DwDGCmhCH~9!(;M(}o0`D$?w|tv; zJidG)S&R4e8oZ6c>k}txHS_1j=N!wg`n@j*yjC$PcAI$EbR4oazTb-c^}hG>ptF$^>khE2mFGc33#qF5VzMnin)Nrn?6m1>Xu<68ovWk+EKC z2JHn^7ji*Vb7WL^xnX_6Ed9lt`+NVEvu5e!MYB{~GRwt_X8At)m5PgI`6Q^gRC=v+ zZi!GxDUWD#=Oi=vPqd={gW*?$pP5_UR5IQPpQhjdRvun77o;d3FuYXWr_H@4mG)^j zfh&zrD_p~wae@0P8CU=MDu*zZ%BJh{oLQcL&nEbk=a#pHPtT%5#UW({eBZvq;?lxS zp4#4L&;2^Wzp8Zdyji*g>-m!LRwbHlHyV5!KhDjvv9!=H#v6#8nR90`9(}h&R=}fY&2^&MZrjO(vnM!o^Y_(^sWd4|yFWNIKWnqNvB%Bl*Fm}c!;^S<@ z*dHGpF`&l>huN61m+jv(I>1IIhPNA|Y}cp}8)tE2Y|O33Mh3V>a^J+Bag1}t_G--% z+VaCLt|5 zeLTg8Sq|;4L;>5L8=+@%+39F8Yp18Psi`OdX6bh4UI>;Zif~^xoD6o9aX6|(G zE^ZY(d5Af=L#ZrAy3!VsPA)Q%;4V2McT))`!BTdTRf6CiVA;xJW>TYccc@uaLJ{Bk zP@~j@{V3N-N=Vo5*FTF*tF$vEw4ni)V<);cN&WRoh*~xW2b&*60;wvKg=w%EPmrD! zs{byG-lppS(!z{71X>_m2*&E0t32rq=sVa<;Jr9Yg8W4k!+GMKhZ;YSg6tk-GL`C6 z)qBLq2hdO_wJV3HheG$EqOtEnFseN-vsw7-v-x|AAkpx=fLZg zpMvYkFTsP#Iq(MMZSautXYjD{E_g(F54_QPHL%K4N_yyTXpqCw`w)^U&*!gj{a@hF zX7=Grn5egb)H?!W5T63oJ?y_9!mnwBtxbUia$x&GzIF8!Rjag1 zpN9MiNE#$BdDQsF43QTH+RN0oTW$;Lr%|JTr8xQ2UWDpD1m=?hoiHD#>U!-hh`^t~ z=1JdB{}e>Kv`zmWrQL!rx0!qZ)0DpCm>1%)ulUI(I^f$n6o(G^QQ8bEX}lZ^^(6}NWn zTKB0Z^hogV&z}C#o6GX^h1?&KYt}#c!TI&g9e>=KjDF*U^R@KG7Z*4Et?y*M_$mnVuV*RG~5O8Ok8^DBpn}R($R<%3Hr4&!pjEq zIR9@qLBx2*Vxh?6@{R`aTxQRpugsn$Xz5C*0bC+aASs@@_&ZuKK#Z?MLWsE=3 z-O;R0W&sRxixQU9V7=C+>b@bhxlh&l)Ua>2+5$};QX75qYAdQ6`cz+^+TaksbBMU& zdmbH!Ad6}PWCT4wPWlikWLO6oh16kt6hM#N5a_X+11SKC0H_t7$ipZ4)Vp0+t<(2- zW$fx*9#tjZHaUP*d6=&g>)0$L9fFv#j;A1D>Np|v4k3T++I`Omxk<=7goL1RzMl(8 s$6FW%uWUx8O6B!xeQixUb00Iry()hKVomAkV&UIgDm%5JDFL1R52;PxU;qFB 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..afd576aa --- /dev/null +++ b/42sh/objs/lexer/lexer_greatand.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_greatand.o: src/lexer/lexer_greatand.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_greatand.o b/42sh/objs/lexer/lexer_greatand.o new file mode 100644 index 0000000000000000000000000000000000000000..807757f4405b12abe8226f0faf256048d5df6265 GIT binary patch literal 4312 zcmb7HeQaA-6~FJjyyxdU$96s_S=$wlY$cOOoOWRZmUeL)w@#X*B_C};OmB|uCf-sz z_#^$$I+dnFvjS4fm^SeTodjZ&n5rQd(h!?An3k!VM8${Tk0GjwNf}}=O`x^ww($GC zcb`ez7Q&U!Irp4=Q!K1Q@6eG^>L}KqxnXF4K5}Qm%I!&ae-P zrvp=vLNub-b}4hTD$)_B1EuP>6tte;A6^dKEE?#nSvXGf0{_6NV zymJy}t$5kop**|P;+>Q6#bp#xzYE-j`IF0c-S`U0+*GD`E#6<`ddl!b$?|Gdd0o82 z$&?dfZG0Y{T#hy1C1+=6GIlO`nBiUXy>H3*dSy7}{~4c)m!G`PS>W3EZjt$MtHk^9 z8u6U?W|OH}ym$@X@7IV|IyQUV@6AfQRypfe)`*8q=RnrR_jQ@S-uE^JtLy4jYSuTE zKaB4z+2!1kY%XovL;ap3(bB8@%3V@mEr{>e43!OKkBhYDC-w}Wl3J`Y}%czqJ@ zpv04^z~@hUb;|1g&E_1$+V3^xemE?Hd0c+)!5hTKc|ns9mV3Z4_*T%paz8x**~4bg zKG4d-AxJex#!8nP)+Z8`w-WPz>q}Hlyql<$ml6x*cM}VD@>eNef_5pfXhhH*)ulvg z&P*(vfYaTf7kWRxMAZ4qB6Ru-sBC!=P3*B$`DNuLr_JfJust!qs3a=e(F|xb$KP0b zXnA?L694e+Z#&3wAol@z7|8z63oXk02OXh@_OA`JytKG009Qungg*aD*a@<7;$oum zKCBlj@zB!Dnat5l!R7W;A(Jd6bLq~Mh)xvIJ34hFe_uKo z?cQ3Pwo|jm?Ada0T4Zc=DwdL^jOdT=icJiSi;?(&p@ES&^r3-aF&5t^4(uK67b6qH zJL02a_h>veE{5V`V{SDz((h=LUz*rEj()D#u~M_8wj;K4&)86GEFt#AM&l!5=icGr z_{g}3qqh@%HExm3l|*u;SP~_BCJRw?MJk^wWzZz0UCbWO2r|3GU6CwcyE;bbGx^+9 zq?{{er*fHegn&8T%FaN9<#Z9(mAG0{)5(IE%@>6`BaVw(1y9{CO8NUUIrMa8QA(aT zG*UQ2I*h}mu>>MhOo?g`&Iqtl7_$Szom7!e-Oj zg%;e{fJ?0tu1!i`y%uE4X95GwcO!XpU8vGD&@6<}y-M}nir(8T3qWQ_(80eB!i5l` zzInw+Rs(zonhD;6Ga%r+WMVi6+;hxy4w8WQEOQrSw<{d(Jw8-kHFZk6mZMq2GXM{* z2fCaVRqm!=lAO;{UI+eYmZYMW_|qV^SP>(sWe2>27I z-wx6@`Ntr-Ky_dB^+EVdlh|e&%%2Cl2V|_T&p@;)yDc8u&w!KxjxvXu^D%=QiZg)q4+ytKFR6^^K}USAHW`?zOnusM7y%xdJ=Lo7Fg-y zI4?nSMvZZtSD^KNnXcL8h4W{p`-mS<`&nEKHmqitn5p@wl5Cy<^RVA_n33hwGa%2mzE+7 zNFAxf>rDt^(q0ELLA*<8{q%_^U%R57FXVrlYT59} zdlxq}cl>T^D)Q(9rEg|$e)iJle;j%7dnYcx+Wlb9M~`24PLIB}{*K(u&p+_FtGolQ z5+9Rr3#c2k8^pX~R&YTd0sRp49EdCXXV7~f9h1%+M%7szUg{`Z5}LS5(!`aaiOVES z1g43pwGI-6IZqQ)6=w$v)0rkFz4YRyr-|vt8AD+L(!^|(@Z3f;abL-f+z&J{H>8RA zPZPI<9FeI?6SG&ExLIi8?vWjt*EDfDq=^Yh6Z2b|`lN}wQO5P(a>s|f;F^bHkX5|DOOpE$BI$saw-b<>g${)@apRp z&jid9u3I!B_g#O~v7+)eg@QjJ&gU*DKw7Y!($}GxFiod)t5^Rt%)Qrk z(ar=h@Z7zV>iJ>p(AsAcGxE`{8P*)G?im^@gV`>pFw--Y1;8Tq9JS0B5 z@R)2=jrAmwH$H%SRWKjY_8vOUBBWZ`kOLUrmZb-uAz>cV}DkPG`z$<7wj Y*{LjEHqMK~#-F-OF6}vaPds4!8`YDwQ2+n{ literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_less.d b/42sh/objs/lexer/lexer_less.d new file mode 100644 index 00000000..247e4e4d --- /dev/null +++ b/42sh/objs/lexer/lexer_less.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_less.o: src/lexer/lexer_less.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_less.o b/42sh/objs/lexer/lexer_less.o new file mode 100644 index 0000000000000000000000000000000000000000..cd0a4d1795623138d85d4bf830256d2b20919785 GIT binary patch literal 4448 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 VUBllSCjQXnirMRp`16j&`Y)o&wl4qx literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_lex.d b/42sh/objs/lexer/lexer_lex.d new file mode 100644 index 00000000..c8e1ecf2 --- /dev/null +++ b/42sh/objs/lexer/lexer_lex.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_lex.o: src/lexer/lexer_lex.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_lex.o b/42sh/objs/lexer/lexer_lex.o new file mode 100644 index 0000000000000000000000000000000000000000..5c87a07b0b321f8cc8b86ed56f61084c60bf2bb2 GIT binary patch literal 5456 zcmd5=eQaA-6~E8+b!ZD29<)bYV!sf?AD4XvUTE7~-HCZLE-bkIRGnCNI}_?`Ri zbDY;g%YR(?eBN`E(g20zeFyVHuOwln8Lemyj;d- zZ_#&d8lUAa+qY9Jurt2B(%*79z)zQ#jMQQs<1L9Vmq=ykM_U3Ll-qX@w zjf~=(x9AUtSh#e?_iMR-?eU%n-E6$c>@dbz&_^<(sZ77Fx3|n|A@^IeR9=8TIx@$w z|76IH`7?&}fjm~%YT(Q-&C=hH^cO~ADm{WoV|JCWD4yR`MtF3N_j}S`i`;;dGSR() z_@ruHd^9h@M70`HWewmQ>=%KqTEN(HG^BL81yEWjPJ-%ELo8 zLZop`x zDX@Z`PMHN}S|pjx6bxu3)y>pCgAvjT;_l4j&9?6)g!Hm%#CSMu4tKm>M zhewOzYD^9#@+_A%nOR5_49mn~4YIP>me_;Q-u52W8Qa$0+8JXlvG&#u)*aizwr%ce zVV%7l>tkJPV^=KN!`frr-4+||Y!MRChk7^npq)k5mrA;n)<-vN>TZvA$Jv%>SFDq5 z*xb<(>+E4Mv_=%kU1G45s@On5Pno#h)2U%5MnaLYBuk_*UDnVF*a=R^)+)S9v`VE4C)?G?+*)h(1Hn(IpHyAQ z0&YcV#gX>h$y%%L!@1`nFpPN@LVY)`pE53F-*U9OUsYk@Uj&U?BL|EHsuj1Us+ORZ z3+E&>!F7l zNL^NH^NB}a<((HvS{$HkQsddEo&{ZrP(7{G%Nvj=HcuP% zLb0x;x=pUypjrS&0ejl1Pac8jdkwNz@i&A2Em*#!{9Ur}tkC`r%CxIMisnJJOA7$I zH4WIKRReQvF|bz)1D9!az&?$f`n7w31KK)ZRoeg@)Y^c{we7%~)(0HYhJY)y9B?HI z?E~?Zi5rNzjS)gowoahJTc?QmuXH{2`L79?dSMmzMPx6gvh_<;`_ZCx?(0IPWkcJc zqe7xNsd7EF;~A1xHPT+;9|!ig06hyOUm7?Dvchw}`eV>TPOZE)4rsP97(tI*=A4Kx1{n4N}-SNYBm@$v6NspY*;RIXbrMkAL_*?OVFD`T;a@vi}ny6q+|;X#`YgpA#D)0mbf9 zR$tdA_4U8l(9#hsAm=DF4vO8)IKGW=no-Cn={*1+fZk-JqbCPh;P^95>PSynf+&^M z$!aP_2hyjhu%NGq`Ll%HOcUo_ZPmHT6X-xU4I=tb!6=Fna0mG z{p+hgKfxQ$F1{zT?4|u{uh7A{LjEz}I{}S=jev&%!+>$XApq@)6M%C7S|3_Tj>Qri z5bcRB2cXbW;>T!prHWdRik4TZ=v0x4jv>9IP$)l;>Hq*4j0zonQc+rvR&)+Y)eJ;4 zhC+vxRJ8r2dy#UWq8ua}9+p<8=Twv{s3FaQ?2)!Osc6?r6(tr@QKpf;=sb{$4v19I zMkW=V3#ob~I$+-U8-YLVrpf!cHUF3l$C-aJZ#E)3o>+0?8rtIrt%AN|PB3R}- z2rG(WDd6Y_)Y0s$olsa*t9Zh-q1-xDmR$?%&PY4i4|Ccz!>5Zq14~7@qLl+H6bnE} zr}_p84XI2rJ<^YFnT8QFZ%YlSdz$W@uQB(U4dTi+@hXx{iVrKsaOX#c$gO1q9(|@nvm<7kUTz66n-6?%vLQ-U(g?i4@);?)Sb4gH7Pu zxaR=(xA6tuqoNzQUfIS2ZQK>%iuY44KW6MzM1zqnI{}J;)PD;U@9_G^L6HLLCoQUt zgJOL&x<2uDh?WDzXtg0wj7{4i>2^@05RLW-K2x+fDAI@442l%0HGv|fXsbbyUhu>a zDM|~2V&7;rpxF6Z1*i`cz>sn%1JQp7+TUn(5z3z>{h6dMNxBYpm}Bo~ZN?As3crw;ie4q3(ptyR7PQtI!RL%!^g zqYl}P#-;5$9rg4iD6OY7QYt4M@_vVW-XYs*5^7N{0hjt)>yVlCAt0X5I$qT{OBrL- z*5Z49n7%lqQNJ;e7)e7EZ)!c2NfoOG^G2d5qz%(#y8R&|8)rs_`|w#KCDX{+Y%Y<< zL!CM=KIx17(feKsefR({(+PYb*|m?3WbwUXSI?8?2^dhCKKZ5PXg1$(^G2q~iV-B{ KWEupCjQtyDmq^3_ literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_newline.d b/42sh/objs/lexer/lexer_newline.d new file mode 100644 index 00000000..491828d6 --- /dev/null +++ b/42sh/objs/lexer/lexer_newline.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_newline.o: src/lexer/lexer_newline.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_newline.o b/42sh/objs/lexer/lexer_newline.o new file mode 100644 index 0000000000000000000000000000000000000000..3c569940576b57c2da122ae302ab4ac9c05c3456 GIT binary patch literal 4156 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 C-nc0M literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_paren.d b/42sh/objs/lexer/lexer_paren.d new file mode 100644 index 00000000..2851c323 --- /dev/null +++ b/42sh/objs/lexer/lexer_paren.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_paren.o: src/lexer/lexer_paren.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_paren.o b/42sh/objs/lexer/lexer_paren.o new file mode 100644 index 0000000000000000000000000000000000000000..00d2656aa6de7fc2105cdc66215f88b7082b1c25 GIT binary patch literal 4452 zcmb7GYiwLc6`p(V&fU9v*SqUSUAIZfwl2kq@PovSOfkWmc$@WR?YMq44X>N^dTnpx z++FQm$4+Qb@HPlze#9z>AR!(+4-!L-iV@J-*pOR=~A-Y03AX&Oo9vGqm+CJ`6u_h=6iE9)>H|*>pEE0&G&&J^S4j( zos@jiWZ0e=uT6UW{N`=JSo^(6?>xw0F3Imb^B(chx}b|O)4kv*_!iU)0BI}Q>KUWl zqcj;ttu8bLRdH`scicgHJh}AeWaaN&$)%^SCYR=}B$ww%uL@n+!6MIefhD<|xSCvs zV#%e%8mzTsr3Za<+j@PKGf{M|zCn||$ks@mYJ*t%^}5f}c>#laHMyk25z|zWUP)&A z40Ixh?UB+BVNz?u%lU zN>3zm{CzGaXt1vCXbO9s<~0#Mbu1^1%2{P8iGUJU&i9G*M^i*hQ&X6pU*%lar(TKE z{Siy2A0Lbz&Xt^e!H)HGbaiya+Oo5_^xAv6V03hE?fB4U=9IFXv$=&_$(2?yQ_9&L zS=Kr3z_oLFzVPH^rn7siGh=0oN37zUGsAKgJe+c-oMZioN8{t^F*cOgmmU~Oz)lYg zveCpa+qZY5pAC%W*}NxDB^WB9^mXuro@T`hq=okhPX}0>_Jv8 z9L(A9bhRTj-Ae?L5>pC6(@kc|8J2UhY&{4u1CXsEW=7wq)GO}~H*zf;)i;Fel?I$R z)u(7-(|pAI2#%%J#A2a)Yms_#wjH$^>w z4xiGd9i$N&y?BcD8Aw(890A&KNT2paNUp6w>e^Q!{o2T1y%%rNv`f|}G;W;UZW zOx9g$t6`?mIz(2p+8Sk{z$egdMdkMerl7W<`aa1Yf$|$Z;`Yr$1QsFoq3ZVrEvOb{ zw>b^{3aTQEG1Ry$%)l zE5r)f8-rhiYEyQY--iA$_FUHO*sjV&MA7F`y`qkDL z3-n{ybAa>){yY>ne8WKaIkYL2lB4k?lz3rCdp`m$=I-NVXUjQCH`+qNzmH0#+L!EF z-|Hy<&lp_V;+1S7G8B686}*oc-aemr8yO=`!hNU)Dm}!6(YuPX$Z$d#J;sDliBz?_ zj(x$5h7SMuTi<>49rcA$;kVhQ4bQ&y+J?sV-)+stzVcN0OZiPdS$*iu`7_^m`s#)5 z&-VQLTLO9-M}k`V0-L9|U0qD&!(QmYvng>s%CN>$u0R4APZqNJCj4!|Uc z(v4OOg%Xe;%0@{~HbHc*q$8aNg6Nn?i1MExIude5N>zd=dnH7Ng&;aT(vk9-AX*9u z(Fzen`7I$jdIZsFlyUv9-0>qXXn)~RRZ_&@@>HRWc^Rb~9bw8sREdWC#tAvmMvT1l zHgR3QF8vvchohfYch!0K*q1R@bx)OYEnLSG6n7paZ)a!cCh?cO{_3;Y{KQnbbG@T; z&MA3TXMS7Hc6Jlu9C13uv*j@NQS6wZg{XRg@#}zf!YhRyG0oyTufu~77ei62NH^rOiB3&0AyC;$Ke literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/lexer_quote.d b/42sh/objs/lexer/lexer_quote.d new file mode 100644 index 00000000..7aa514fd --- /dev/null +++ b/42sh/objs/lexer/lexer_quote.d @@ -0,0 +1,8 @@ +objs/lexer/lexer_quote.o: src/lexer/lexer_quote.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/lexer_quote.o b/42sh/objs/lexer/lexer_quote.o new file mode 100644 index 0000000000000000000000000000000000000000..ee08e72613c17e7b6830d328bdf2d96eaf14126c GIT binary patch literal 4324 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 M@ITGY&oZ3<0wpz=RsaA1 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..99f36040 --- /dev/null +++ b/42sh/objs/lexer/reduce_parens.d @@ -0,0 +1,8 @@ +objs/lexer/reduce_parens.o: src/lexer/reduce_parens.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/reduce_parens.o b/42sh/objs/lexer/reduce_parens.o new file mode 100644 index 0000000000000000000000000000000000000000..38c9256e11b09a634c7d67d4b572c73fc2523fa0 GIT binary patch literal 4108 zcma)9du$v>8K2#~S+9Ne-T4tWsnhf%hv2sO&Nwc()Cp&rE1OFqMQPo-5@O(K7{#w zyR-J)H6|*Oz_${`BPi>v|wPMnRwu9u0do!k9Nih#e<;Pz)nyO;u(L$1Qs% z!`SuU_cDG~?Y%2}C&~=KGe2PeTGk`mPyYIcv{Y&L{ESYs&efZ9aZoeNDW% ztm%c=9AAJZ!eiIR%a%$7%doR^6y7K1`@V>8Oa!!e-S~XG;?zMe!Oig{#s1wY@Lsz? zJTJad)@;VRuLco8#*i=OLKykK3<@ zXBOu$PuHl}3wb+d7<+fs_ZSs;abY|MJlc{2*ncAArueK`W4es&`W+0T@jjRocqxH* zS>OqkVfwRyOguPmg}m({HqZBIf%kn8%s_|Vd+1Z*qjiaqOW02w1-}tA3V(un9y~|Q zp#7lwLPHR#^~M{NC-mwieep_4uXzdApWJs&uO53>uU0NErOz>(YQ0u@SFi2VtAEz3 zuU{ruy_$YUU%bkq-yXrRdJS4F6@&HSQu+b~qAwo1h}OqRtfepNHR`eqaasS?C}BoV z;F@K%^o7NHPtXJb>ICh(rS!)ztgamOfGGU+0GAj$?uCtbQ<{zd_1Zpww(7NS zYI=3aUx8rQJAr^$j$yQ~YW~P#zLm3j^$&XWPw0Kt>w`gQZB{6okf~!W{jt9IX6oy2 zjMLo{-@EsLeerp#?Bt7fd^9nX7>W;=1zebeqeD;nJid`t#Yz#Zb`mB_PB`eCoLMLy%w>}!!_KT>mW~*uiZjbx!z~`NY~~0~hm?%O3PpP+?p1l) zWx1@IW#(+Q%q+)b72C`E#%fUn)}kVQjdQukLyjo) z36pS3izE<-V7B^8Bku z@BHZI?e;B0$4`c@o*Q{2);|B6AN}O~2WI@cM_)pp^Psavdcjd>iOEDOFHDp;GSPbD$WXZgA`^iKFK_e1M5jTRC{N@?soM&UvH&6z zoeSYbyOvC}b%Yn4ATrUR5+l;qClj3p;YGWiOmqZ}Jr(s|2&U8vHk~@ks13`JRs88~zl0W%g5eO43J> z4%8Bj0h02zS*YajYFqmfutI)n+D)!CBr8ri(31J>qhDYR7UzhQ^lp9!8;0J0iCF^n zJ}SQ0aI@pff~|+!9c|d3eox3D$o^#xg+9z71?L*vE4V#4Z_}RRn=8Ce&G6_L?>NKN zM|rC{%VRLKWFYS0N`<%of_K8uHpVp=dLU{pZ&PPDS5NT{^&!3qrVif}c^gg{w9EiJ z$)n_)LH9lUCWxU7S5#&G4A+$QN#3GP@(>)uukbE3wvM53kJsf^wZgZ-bVr8Yo#Ckr z&y4X-^wlPLG=u2&@Lsg`!7`>|6!~{ts>rQK0-N^o!Uj{|$kmR!C?nv*sIVY||G?z2 z27|AIQ~N96)IJ1`#T%qUinZE-X9n5T*96}t_!hyzy!Mv`hcAm#B}xpuPGxsA=@U&l z?YVmYyPEXfO*%6g_5d@cT_c;zmCd=5C*!+3Ww{F$o)pxC-GLwELVg literal 0 HcmV?d00001 diff --git a/42sh/objs/lexer/stack_to_prompt.d b/42sh/objs/lexer/stack_to_prompt.d new file mode 100644 index 00000000..efc4faac --- /dev/null +++ b/42sh/objs/lexer/stack_to_prompt.d @@ -0,0 +1,8 @@ +objs/lexer/stack_to_prompt.o: src/lexer/stack_to_prompt.c \ + includes/lexer.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.h diff --git a/42sh/objs/lexer/stack_to_prompt.o b/42sh/objs/lexer/stack_to_prompt.o new file mode 100644 index 0000000000000000000000000000000000000000..01c32ca2d0a3ac8957f0bb10f1b90b79f8f8600b GIT binary patch literal 3752 zcmb7HZEO=|9DlCYyS}dNC|e*5(uDEi3oRg+1tw5fp>y4Uy)a_HOLyzq&eGQ2bqs_^ zq9ZJ*0TjRZLHwZ6#6*l5O^ik*YWO4xe({3|(`X=SSky!m1OEPZ&(-w+9Z&Xu|NnpY ze_rmn?yJ9kx#40=5E&TA3Hn3=i-0iZgOX(5VXSwXflEBcvVqBnLcC5<^vt-<4G2Z) zPwejh*S54Nt`Hve(h@LnU>vb>NGgh|>6Lsj%bj*S3+Evo|5WA*7mj)pc*B{YYE}WL z5mA(m!Fcc1TGk?39E@=;Z`kkU^WOW%9UV3P#k{P4< z*Y{`Pz03h-i3d68Ml*o4>8 zYVx*t`_ih>qP;&0kGD4qymYx-$SB41K5Fll`M$>cYv=78{onpfywcF9vBCEKzTgNCj>k=g>E|q+r1icP@%yiF6A4pFAkeoa`oqX!>Gz(5NpeXre;u_Un`H+m`iRt8V zmQ-1CGI1GMmjl5GYBc$*^a_c|#I-A@NI}S33r$*~{XFEWg>X5UReN~IUkeRep*RmU z)Iz;hXekc`YoTpch}H&eZR9puzqa?>h6sDSTGBI+!}%E)rHfQxKJ+e#SGHLIhm?qOO*jTJKEnMzF4)9Pc2 zUQ)^xoMAnxveq6%X>>RpTeDirDQfwEQm$$_mQhfJ5HPO zboHg;eMz<>-ka!QTef$1Cwlr>0@eAV&TP#yHJ7fKPNpk`yoL-@sHLKwK>?SFmOq$b z#1x(0j&udDt>J`SC>67jYEjE)i<#jFJ*G%sd%aW!=tv=*H8YGfiVBUwl0aAz10i`q zpi!8E)9r8yV!-EH=Ub0$7MC+I(1OG246@EJV^S;Z4L%=2aumgLgiT&CK)K8Oo#Bmm z_goTla2FN0*VLJwX26&QjCsQ|p5$u)a%Y&J+VE!jgE(BQK>d)y+|b}<_mjX#n!?~y zTzAm1b_&Zy<3lRa8zG2Kf;+?sa8aa}#VI}qE{UhXW$`6&mv{!;ExrNn5#I*)itmH_ z#E-%K;^*KE;zjU)_$_!){2n|c{si90oUcPjSBW|K)yA0Bk+ADG1ROzuas`*;WSQpS z2>t=n?KqiJ$ZFgR&YaU=k_c56oPR_2xS$6>;(Tut#5{41uLW`)x#l_+GhZvT^<*_U z7Q20qK-*1Lvtx0H`8`{quL4PnJUb!UK+Zi<62j$n61FD?rh??KGzuZ%mrt@UP8r56 zN0MKr+&1TTWAuqB+6I~$<-7%=F|(Fzd+kk(yUC&ZnTT#<8uZl>m<%c5mk&;$VKYX! zGY1_Q%B5~GC8j@e1Vk&?1)@E{AEQlb24T>_BUcpU1YyvMl8Y9()$lOdMRL*N zhfNn@l8ZKrW6}DPi#ClH(&-`>9X0NveIpm09bQPAO)feT+(pNUTy(a0;eYLb3u{Iz ziR{{#GBrY}8`iD}2YZ@OsALfzVOMmImt`S%zE(dlQ+0 za6QlfF3>YTLcXXLs>ArTRJ-X}AwM*t$7+FCRjXK5EdM~;gRIV@9nfM5|G{N^DWW+7 zw%xe+T;Qk_G#yc#7qbAm6S{f5!jN!&=$D&`z?=@|F)t+aDh36~<(-gZdAB6WSt)p4 zYL*|C-0hOwE_vlH9yl)rPf9)`=dRS>C85h9V`11uJPc25I>#lQ1G1mxlKxX7dyva^ kEsret%FNhy{sR1OJ89ePQAM2lU)9$^ZZW 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..845e4133 --- /dev/null +++ b/42sh/objs/lexer/token_append.d @@ -0,0 +1,8 @@ +objs/lexer/token_append.o: src/lexer/token_append.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/token_append.o b/42sh/objs/lexer/token_append.o new file mode 100644 index 0000000000000000000000000000000000000000..fe366f6990a8cc5b44d6fe34844eef4916be95ad GIT binary patch literal 5484 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 Pm;@T1yj!Vx%fb9FdhK&E 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..e4475d15 --- /dev/null +++ b/42sh/objs/lexer/token_free.d @@ -0,0 +1,8 @@ +objs/lexer/token_free.o: src/lexer/token_free.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/token_free.o b/42sh/objs/lexer/token_free.o new file mode 100644 index 0000000000000000000000000000000000000000..85d2c0a29112607804d6f5f7d6ae51bc68b6a9ca GIT binary patch literal 3208 zcma)8TZkJ~7(O%ENv6qeHtjC8wHF3m2Ceux7b`mm4 zyS*rd#nz<{ZV~aNLcxbV_#$3FA4H*2gyIDer4NFF(kd+$k+!yA{k}72c9UuA_J{xc zm-C-5|2hAE&g7eG7ype3p+y7+a2vR4V6ecT#o()S-iC&w{=_ubfC3wsg4{_b$hPaw zMBUeYd+X!RZk@FQ?K!0ok3ai;!j~`(1u>MiU2sMlW42eXNw;l}>=@qi#7szlb5VKz zQ2EUS2%$IWGkE1nUb@40Px5e@=ts5hCf6h*;A;bBdRd+hrZz(ys-e360^4qV4=jbZ&Yu?VDLiEgv~@AiDTDqi zmt2V$-tUVF?-#Y`lG^Xm+vLY{NijCz2Qv9Z;9kV@=n9aGK_231a5J$)WL2`}sX6s+ z*{R>MlNYS))XP`1Q;kd6qYcXQkms|Lr_JotmGcBqb}D2qYO#aZ$uF!IP7U)uS(`U+ zf6Ch9)Vxx~wT9CD>3(ZfzKlnpZ>S$edT@36{(FU2%V)~Ygj37ZD=#@N3gtNIyvS_x zurf2Yx3asC%M7meigv!b&#pGSqL>X7gPxL#?@ zbqZF=t^2D*-IgfAQ<9xaCxu)i2gc`%xtegiyqG}=JgWugwfWkLWS0?1rlL!d^R)#i zhu$eRbfGBxBDJLvus~ZEk0c*VJe0Vn{ZW+DFodog42%x8n6ZUe?uQFu_KHYyZ6bl{ z&+F16$wY!MLc}}Z-_S*4h<($`-(|Uk$%YW^;ywz{dSA#f_*UryFeB_PNr7A2Zo}3( zHO+~KG=T9+jV_5Go3(U_T3{&rb$NUOmU!c@ZGW z_y(9wy8=7}-UQ~6K?t57pB@m)M;Gh45DenE)5S6>7pqGb3*H3=u`G14QVNS5LKhoH zEo8UQ#RgJQEErwZ>_T=KUF<@&kd>y3WmgOTuL3cgE>9FI0#eOSkQNGxqV3-zw273K zYLA)I>Q|N`^7CtcX@bimhLfqo`udLG@7hm@(Z%Z+HSKz`10#=s$!ar?p2#%3TBhXY z%Z-AQDGdxg(CYE_c^UaAd3bANkcYe0{7?eU4@ei;7V6!DfnJiIW2kLH$S2lU@sRir z1(Jz$YDPSM*)XFUjgIIhqZ?A+Xe^9Q8q01{WAN(mYSBqOD(fk~N64UWMDA7e@uC2{ zkCi|IeUCt5KDtK9l}avG5<mO*JU<%MgusW;og-c{!x^@3BD>bNs5 J)!8Ex;y>z*!Il63 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..bf6b8110 --- /dev/null +++ b/42sh/objs/lexer/token_init.d @@ -0,0 +1,8 @@ +objs/lexer/token_init.o: src/lexer/token_init.c includes/lexer.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/lexer/token_init.o b/42sh/objs/lexer/token_init.o new file mode 100644 index 0000000000000000000000000000000000000000..c018b02ca3b4a8f8fd796c6b35aa362c67e9f15a GIT binary patch literal 3000 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/control_c_and_d.d b/42sh/objs/line-editing/control_c_and_d.d new file mode 100644 index 00000000..dea13ffd --- /dev/null +++ b/42sh/objs/line-editing/control_c_and_d.d @@ -0,0 +1,8 @@ +objs/line-editing/control_c_and_d.o: src/line-editing/control_c_and_d.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/control_c_and_d.o b/42sh/objs/line-editing/control_c_and_d.o new file mode 100644 index 0000000000000000000000000000000000000000..affb66fae3ff42f667b4812d6725de13c8f64862 GIT binary patch literal 3744 zcmb7HU2GIp6uz_DnJ(RScgv3;7@3Fq8+W^qM)}oNSsW4?u|jQwWSGv*whPk4(+szPDO*8r%8@bHKu5c7KI2pAVe@@qJYsj7= z(el>^Lvl;Z3($bu8}dWPOCuFTQc(fR(U3$LL1B@zi<+dYgWEN z!*o*g=O_61YhichGm6EWrRR-7N^eHJ^*leZMSs0xelB03ZE}D@<9lt6eD=QLto5GZe9!Ww@-4uo!l8~V2n~ehW*D=_pP5bpl3>WyY2)2@4+bN8|8dO&c{uL z&&+_(3B`WSW%CZBzh0Gp?>-j~fq>*J^5c7QT7I-H&bKg(i6Jz&1nmOi$$z1VvG0IH zvjxp7R4+Az+_h}eYCmh$-(xE#j?)U%zS2fI$H!9RM5NWex#nW(hE_cr+i@l{%HxyT zuv4HmjHuMjPnjE79a35J&|*9!Jj3m3^vh87Zx%hgjwnag6SWh);&g3H8>w8=Mw^JKm@bu)TcAz$@ua>p6xp^PJm=<-7p%*6Vfnq)miudjAse7G`>%AIGNPUKTP zt!lNgX|A#MByqWGXbolU21Y&W%drmn>ZqGHcXz6LtWr5!$g8Uo$wX3p*v#Qm8DEuz zk!V|)Sn&uem&{h$Z*eP~wQ;qznuWYwD&%xiH*iAI36r&MD}$xAe{W$|+GuTCSsu{M z;y%4tDG#uWt@l+j89nnjsp8qR*DzVhvRO87GpSj6AhJLXMqvpQ5wY#sb{2X#sBG1e+Nnx3FO3$#9tV?ptW?#t%8ippiXBO9Oe%1*aFc z^W+gp@Ik42H#8|KNx{II`$tJ{euKv9oE3)B%ukopja!gOizTT}wa&gltNvW9bL^mzpkLdK$O^HvLLTqdBBNx;{vpOo1YI zCm-123Knzn?AUB`-fawVEkq-sS}6A*lkw|_7N4=?!PmoWK&qQ!Y3*9jApbX2y=MvB zXkL`a-F2cDui+=xGh*ke?9wiP^C( z@m?S{SG<$k8-XF%9l$6s0mOA2ZvtY|#Q#Fhb&RdQ4#c*JUj?FsMLz)XGc$9KP2!tW}Z;VQ`HaEa*7MWmN4+tJFlVOPp-V8ynr(x7P+ zCvE!k<8V}LbHIR}Hf%#L<0{Hob|LSKAtq-*)$v!!Fn8 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..a1c6c56a --- /dev/null +++ b/42sh/objs/line-editing/copy_cut_paste.d @@ -0,0 +1,8 @@ +objs/line-editing/copy_cut_paste.o: src/line-editing/copy_cut_paste.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.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..6e89a5128a771062a54eea8c5a3a7f47812ad9d5 GIT binary patch literal 5456 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/ft_prompt.d b/42sh/objs/line-editing/ft_prompt.d new file mode 100644 index 00000000..be27c557 --- /dev/null +++ b/42sh/objs/line-editing/ft_prompt.d @@ -0,0 +1,8 @@ +objs/line-editing/ft_prompt.o: src/line-editing/ft_prompt.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/ft_prompt.o b/42sh/objs/line-editing/ft_prompt.o new file mode 100644 index 0000000000000000000000000000000000000000..414e06113e79845be32ab4fc47cfb24375dc5d55 GIT binary patch literal 6184 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/get_key.d b/42sh/objs/line-editing/get_key.d new file mode 100644 index 00000000..30611d30 --- /dev/null +++ b/42sh/objs/line-editing/get_key.d @@ -0,0 +1,8 @@ +objs/line-editing/get_key.o: src/line-editing/get_key.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/get_key.o b/42sh/objs/line-editing/get_key.o new file mode 100644 index 0000000000000000000000000000000000000000..e6876a95e0027a01550c5263e35c93fc87d4a449 GIT binary patch literal 5300 zcmb7IeQXrR6`#Gk**p8}y#tp3IZ}>564KV^<11K+mDmNROM_dKVnS*~+he`sLTTf+R@~p4 zojva@v>{KP{mt*qn>TMh_U)X1{qMhi7-mcfGCWX1C^H<7Bno6Xicb80$Y_hxa9P^8 z96lM9xa?;b6>F>_3BWLR_V3=gz}?zFz^RcxibanxmLOG#O%k|b7{i%L#%1JhYv0bk z1-?W2*+G+nq$7^MBm(+`qiTA>pS7ntYLqJ_p@+Z6`W}6_VRM2O2y)s1HYw*VDS;f( z(YXF{1yd;e{sw4r9_eiL5T|-mf0;ddO4b1}-=_Fne`lndTlHt>M+(%%A74c7=dAR1 zRmL}i^`m`-+%&#YCO>MGZ}i7hr<41<9Cd3Ays5wa8B>JlkI(fdx0ijizf7^1vy6OZ zKZSS0d=(j=dqm&<$oL$8g*|)42K(cyN`GtQ^ak4+^K>h|`Fi3jW=y}o7k&Q5Z_!_6 zym-_3o|XQ7ETcJoi~jHu3zz=*GV)Nk^X+SQr`bT?e9gjs%(G%t^9SwxuwiW9+OR}r zO8V=S$}IfRD>#euCms3xSy^MGgxz&I`18v}=`Sn&os|A0W!P@FNvIm{ubmej{qv=K zLb6#Nz_{k{$Ra0?f;GiQ>mqVt)OnGpaT)1gzY3V_VC;GLqGPuMg@jyFAzPaJCs97G z4C?hi>b1Y5uTsZXm;k*t_7xU;da*}SzaU!b{qJ8R!*%noh5+@~^&6%DWogcYxlFMfh)16 zSCaaONHMxOfY!IsdT~1bz~EeO?ARNGd~+u3_1mrd?a0NyK<{vL}r}aRL{n zuBY|dIYqDQX%RElA^F647$k=J@LZ6@&}SD2YKfty*BE?@uYJSUyb3zkUZG>>6*{C| z`MQ^&o*2@bG>M^yo4GIGgfC$5rhvhl0zUszlRNg#)c2Yc@6@N7cw%VXCa(f~vzPnp zee_jIZr{FZAbG$lmF+@4*_}$K(#f@E4xiG_?leehy3wwt%T^rYzvxZq5H;UDAmW`4P6PBzj>IX8ps>SSlg^jSX z{iH=1osCqCl9d_84QSZT6SK?WHe_ZqC04R3Y%fz5DR*fdJgCLhgtkaojN}y9$b#Co zj)&Urk3J9$Ah!h-WgAXXXcgPmu^HKn--b$1qh`j`4kf5XqYeqTi>^ev(J`_H^ucHp zW-T%FVXSoty9b}8C^bZ*52B$hg%B1iy{(SJd)jDZ#@aWsfK*XGEybFxu;}ljI0-pI zDV4Rc&k#U9=YV*+x6gnHO6Nie#9D&xT{1|CIrMEjmM}g9ptPavQ|ST~S4P8C;3TQ+ zz-ktzllly?y@Ayc7WpcwJk&yYs8xx60}u%#bVrVhm|(l>SttSIF zCh-ItdzsjM#F%zM_HkoYcD+EYYn7JwfRP{Jp~6J}QlCzi^rBI5$0VI1Z&9=`NUHNc zxp*kH{);btF!WR91DZYE&xcWHHOM}NLP7%({|ylc1x@@I5r{h`=}7!z(pVqICIlZ; z+>1NSgJKUd4n58V#GM1Rr6;GNGk+V5_l2`@GkNULZs_)*Q06&`LVH26O`@zpfzTe3 zinf&!Aw=vhkaqnxQZPn~N>;SOvg7}oM;I~ETw(2s+-Y}ZTs1o(HK!fT4ejpKl_wu% z%2-^9w}m6m!HS|-fwF9t2AZFDPZI0X;@=ExX_wbLVYd}_&;84>ljAVI-3Is!ut#92 zDF4yg@l+@l6vfV)x#}=(lm0x!+}uIQDU~JTh0H|z5(=;uLLtEo3JUF;SExzJ9zv~qLbczSxLd!3C@H;&G zbJeLYjdbxgwdX0`jxHg!hsV_)K=FCOPVuEcH1id^d0P*Ufh_?`M3Ox8F2)WPBNsUf z=AYtf>mwL!v6@AfQ#|-C?@*8OF#Uiowm|uvo&gBwY zB?f_U=>LvIq4vuXe-A{`>-?4EXC=NY@h}j#na+~rhQw_^oP|!hcapzVz-7QV5Vx() ze_)L<!GH^}PE&=hAUAqXxYp=ZuyaRX=h%1-&0+3QPeKixnF(A&bmIY!= zZ8tCi)PZ=hwQk^2;94MFLTwokcQg$)40i*K=7~_$-%9+x#P3S%0b<_j-I60_VV{%; z5d6y$>p%?-PoR+e6D20=#3>QP;L!ah$nmI2$nWsL<6S#M3Sp zOLVIu{X$LLs%%HQzi_}ZO7>{hLvz-M!zgLy@dI02yU2%GEtRbN0+%;3C!}Jr#0=9g za~AGrq>{lI)uNyhT6s=g#6QGT=qRm3SNcG|RQrPf0IQLM_X>?(lOlEkDa?sw+S z^<%vhI`Z5z=k?7wXJ+o5^+%uI`NF}NVrO`u=b;a9JbdVA%g}Y=AJH~=OvQ+_v3OuI z>IKrzFp`l|Ny&g1#y+iX-wbb!+!BZID3;=4#+HyWk988Unqh?7lZn=7vlL|GSvX#) z|EJsXG^uSai+CC%M^eoOK!wIIb{yEg=PT1z%Vb=)rQ|^t9>jAXExfi^I49nu#Iq*2 zm2ZuvX->S*kt2!7398@R_$<8dO7|zlYmGL=$R!)EPc?ylOPc~MzQCj(Vm;(AXMBlJ zv^ml~AMa~U)8Be-k^9EtL383A4~0dD+3{I;GCcNpyih#e7BQls;}qV!d=JU^`ei_Y z$Hr&k#f}^m3!ELF(`5p!mUv@Nh$rHUhr-!->$C6{SQ}g7gJjjuj4ydQo-^N9BwmyB zuXsW{9AW{P9pBHg;(PP4c;VP_>VAer} z$vrtIKH3N3U6^kMLdvD+hhR@zBe0mUAy9&S1)UnjN1bdbXIT=Ap1keXd;hMdKlbUp z9g~CFeR3SsCWvep=y^{M@4v5SQj^~6d5hDNtf%Ilx4R0u%ZeVZfo4B68{O$Id_CG- zZ#TV%^{@tc4dlg2`g3=+_l=v?J*m6rw7Wgpy>r^VA1mIo6ze!8mC^2}2b5mz{`iHd zsi|>D#H?M_wz6C!|# z@oog5XS7L?mok(|P3XOYV-%5|e&2WahWF`iVpxuP>4TbSnCY0*(=RcZ;36!uNXaUR zo^f>s6z1(F=`5jHs(|)HH`;nLkE8#u+CJfB_ z>0yzoo+-jIAzL8DETt`5iRt&yG?Z!vQD7C7Aw4}{n@+b^8#A?=QU0;%3A+~xH>7Au z^-PDU9v2JxEc7DZnN_t>QPUk`R!LwX%h{Aw&kF26R6I2{sErD%ur`Y1C(MFfCBO42 zNIE7&K!e%{SjL3CLlpT2R@@c#7?R>e4~k4S&sZC zk^jU^?H=pwxW~K~2R2Sk$M+!s^z&N}0Z8P3*(BI3dm$RE-s~a+xu(4+hZt@awultS zDrz?(d2{JuX2A?r`{2)JSV~q-(W~8}vIFIoa2JW@L5)Zi0-e^(pQyuhd6!;k!ns%b z)A&lUDX0?Or>o8Lgm(|+F5Wm;C_P+6SksG%m(Ei_FslzT>+K?r^_=%gfwasx)9)$0 z&ha17bYk6RdwS2(i>F&$~IP(ZFruwC&J}z_z?Ibjjc)CIm;zbS(ugYZ-;kz^U2uJ#!&gj z%Jvo`96xQuQ|&FRDQPrEl13EYOyguM(MW=DOC)^Ekp3iSZ8wfZPUln`m1GcVN=6b! zB9f#CShyvWV6D+4ql@ZMc8s;MNVJh1iN)F?p(slpk5jK?N};mGvxwV01?qB7p;Clx zWGjQPNU3()Jul{O$zQwRjgYQ}!q`D0>DZ$`EPxNtBk~5VxOZU}~rIPT(C* zO{qOg&ov4eBb@kvV96Mq>AFS+*C=4uO4tSw>N*jeqf^42p@T;VwXf5&Y9_WSij5`^ z(Nsyu*zd{gg)7h@`-WlSUX;4JzYw>DIOgb-z*b?E+8>g3#modN$dD!wQLgwkxj6~g z^>d6=#q~=Np64Vpr-+*Ad$;RkMxO`j*cqacOkpa+$($kq@ieB|Z5oSy{2ljC%HLXD z+4YYc_G=zm4xm{nPFH=8^lgfpjE+kU61nWwil^uJ86`FgoCA3jPiH`cjF=&kxFU*E%& zQw2)F0*A8?vrwX?=nbFH&X}6A4mjKHDfpJ{%L`Q#PuT6ixaCvRPUgXK+0h>A`^>bH z`Q)^FgYYIzJDFEbJ6fyi2d16OZ=T)nunBBz11uHgKc0nnDpW&sCHt#^NzLyMJ{zLW zF4{n%*}V$Sb6-z!*Ck${j`HGuzWf@0CcxM9@%7iZ%^Bc!^#g9ZaF8!l`?xp2T>)M^ z%$E=G6#>2^z@O>o&j)x#AFmAX^#NYh&uzofg_j)U%hVuWndI&Ow{>x*+Fux^>A0HW z&NO#Gi9fsA%x(4DrPlHMAa@73EdbR!5Cpk1$Q=P*801R>d>w*W8>CrElibnIy=n_D zR0AAh;JaWP;ERJ4*V-lu%7^Fzd{vMJ&Lm#}^HM;rLUKu($<@V|s=N3S$l&7&b|Knk zz7j0{+-f~1nn&~?x7XKmn?2FT9rl7ct|C;5TB+yEe)ZK+GGM=z?&r z=N>Amh^}Oqm-g|M0m|dqer`t@P*(c|?l{OjsC#J>_XR1gF9j)Ee;1{lM}@JUzGipT zaV5o>vz5EupK;eNOw@--oZIU8bLuc+#rk1NxGY9OB@{lq>rg#)s|bd&krsAX_|zoC zY2=Ef0d*puB3TNmco$!QsY`b8rw9r~m<8no6!KHwMrd)wWiP_Q+Q0f1_qhKp<|rKI z%lde6ke7+m6*NgvEQ2ePUB_%oWizOWd2=VVq z`b|ksOG>|dNnbAMbCRx*Haop7Hv$$g&gBB?xmJkj2lDAkkO92bXz1Di(0y)u~u`Oh=dw}(J0xucVPUV aClV1Zvo6nsKKHgwlDXIIc@o^P(f$j9lT{Z0 literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/history/add_str_in_history.d b/42sh/objs/line-editing/history/add_str_in_history.d new file mode 100644 index 00000000..96aa9497 --- /dev/null +++ b/42sh/objs/line-editing/history/add_str_in_history.d @@ -0,0 +1,9 @@ +objs/line-editing/history/add_str_in_history.o: \ + src/line-editing/history/add_str_in_history.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/history/add_str_in_history.o b/42sh/objs/line-editing/history/add_str_in_history.o new file mode 100644 index 0000000000000000000000000000000000000000..12d7fe76833e668db6fae29c28e73c17bbe4b725 GIT binary patch literal 3440 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 bOj>H4!EX)%r|(?)dT)-P)s;E*=^p+E-56^Z literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/history/history_parsing_toolz.d b/42sh/objs/line-editing/history/history_parsing_toolz.d new file mode 100644 index 00000000..4509c738 --- /dev/null +++ b/42sh/objs/line-editing/history/history_parsing_toolz.d @@ -0,0 +1,9 @@ +objs/line-editing/history/history_parsing_toolz.o: \ + src/line-editing/history/history_parsing_toolz.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/history/history_parsing_toolz.o b/42sh/objs/line-editing/history/history_parsing_toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..9bf472d0bde1e39eb26e18e07d0de8207ebc3410 GIT binary patch literal 5576 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 akgf_ zc#%S!cu&&?g8s1t`$p#Xmc4!tsJEOfjASZH@j4xQe!WQoFN$UB9ZjZ0iq8COJh{DW zWxQmml+PH2lO2}@QTAH#0ER_dtKsfl6dQUi-pRbqu#pwO39QH z?=uJ9-bchU&y<#}_eY6$K_)Z&h`5B{6@+Q7Nxp0p4%Vdq?W$dmMU>J?}!8M7Om3W6Fo>UoBdq|k<^OnyQ z1fsLvt>O}4?6Uj-uKJ{Q;S#54>o51V5R=uUy4$kVe0eJg_Yv;Y{U$6nUNw4;JML-QRTb5d% z7uJwW(Dn)~@d`D>cEbU_RRw-npWbPi7OW^y*JtQan2{A?W~|S6hy`C+ZPhF+wFQuw zpXcZ27iR26im1R!6_qsPx!@%{D9r^A3J}ZILl;-Lzkl#x_*AA`$rTIXuITpY_VCtJ z9=C0zYde(at{u_Nr&y(&>Yz_Hl1b;xTw$amo2!_`@);N_rePL~`Lod!>lmm2sAJ@G z@kBb=v1>;qYotnNjM7*o%S=PK$~abWsCXVz*<_iO=oKo^6MWn>Qsqq2%os98M39;A zjNxSJC3}PsG|Og^X@s6;N~^Lt(8gVXkhVV1s;t7fQG=|n4PSaYge$PyzX#{R-KMw# ze!r#g7Ul}{wUN?=lca5ey4UZAnjF)wGTG!b&st_IcT45AQ5 z=fFC>UU8P2**4mH&|yo6*8WML?u6>vi>3fp67C6zHOdkG2INUH4X7I#zl0u*D1+)o zFMr3@hSZHArs73s+7va4N=OU8E(n828GIkD8dRdBc-4y~8c~CU-=tp5en(m>4Kg3$ z5ZMVTgI_>XHz*W0{)6b>LrW+>2~EVQqGkG#9-XSTZ=GiJiO8l{znw(?MfTu^rhI4z+rc2QMUb=$_+E%;J<017SiWx$OVooTs2F%J673eq zF5c46+IzLr8d)-KSErmk%#`tv5^DB%r{G0-JPr=ur>W-WB|c+4fzYe!vn}#@5`Ofs zz9#+TJWKpO0jA0Z;i)Kp2U^f7lnYqN6;k=JG=4=q=yG9n*l`7<>E?-MDX8JPp&f9m z_)H-Mxq=E`@AGzYk9J-=z%?zwUD^oue7n$X(c;`?^0nGA9;9x9x5T-sJ;P~0)h31X zL8{OdV6eNK`~HM#a<6s~z;TX0zxDxlLpH^E8-lqu#ock<8sqB`vJL}0Muz4XUrind z;E{NUM-UzXM775_2Y8%s0Vv^bzKjBp%rVTE;69`nL*Ab@I;+|q9QpuC%x$-MQS)_;fPL%9F| literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/history/surch_in_history.d b/42sh/objs/line-editing/history/surch_in_history.d new file mode 100644 index 00000000..fda5e5a2 --- /dev/null +++ b/42sh/objs/line-editing/history/surch_in_history.d @@ -0,0 +1,9 @@ +objs/line-editing/history/surch_in_history.o: \ + src/line-editing/history/surch_in_history.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/history/surch_in_history.o b/42sh/objs/line-editing/history/surch_in_history.o new file mode 100644 index 0000000000000000000000000000000000000000..1c3dce3088b4d4c79c61f0a831669f467f6d369f GIT binary patch literal 6104 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 M4T0#=QJVe#1MAR6TmS$7 literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/home_end.d b/42sh/objs/line-editing/home_end.d new file mode 100644 index 00000000..7ce5fc03 --- /dev/null +++ b/42sh/objs/line-editing/home_end.d @@ -0,0 +1,8 @@ +objs/line-editing/home_end.o: src/line-editing/home_end.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/home_end.o b/42sh/objs/line-editing/home_end.o new file mode 100644 index 0000000000000000000000000000000000000000..a98a66538f9e22e9c3a2556eb407acca13fb5f26 GIT binary patch literal 3988 zcmb7HU5pb|6u#5$%$Du4Eq}^iv?vG|+O32LVIg!Q=qL~k!pdUEq&uB$3%hM?XJH|d zY*J8~)kG8Vod*+Re85B>lxRvI0*Q&d!HdaiFzhD&5KRnO4D~yA&a`E=$a1r{-#zD^ z``vHOy>svEkJG>3YZpTC3;dwAp;lG=L{L$dpz35lpj_6RjtP!&ZEy;zVIF4~wl!+A z0WgfcJNEBw*lz1*pVJ~f((-Ai5OH#~i7^7V7=~H0i`iV79bP_{hvkV20e7T>JWbtc z7%6LDByE6H`V3?H8@+p8toPsI0VVca_VB@dAEnDTls8-Q9iW6amCbXS45!(WFF7z! zw2n~z?$_t?t!0|o@?~>_c^cy7E3-a}`ApWgrb`IUX-j>@WG-zXNnXB5&+}fHa&puXY`Mee8TgQ5`v*g1|EGfPEzVhfh^H4rBKaA(Jjgj2Z zY%XOOyS6t{Bg6#rCD>U7A1%>->_1MNCx2GP7%XCSodMqSAj0QUhWSL$;cGJMUF563 zzuBB*^gi!t=G(>_Fatg+8R%ozefn0SPo9NACo$By7`1?Sxz$2Kd<2_lUPEmz6ib!P z(?>1)^vbV#`M3BvF-b%9@@PbaPLcSj`Ow*L$3^JmR=8cyxE|Nb7ixM%ua6xcjhqvD z<-{GPsz&s3HLQ=HxT9CTcYN<}9fDHXt`jBVdS%D$h8fYvci$e{62OF%fqI9WP@xH@ zs@vZ46|^|D2$XcV$h}_0vaHc zdCID;1**R*tS#%Br_kHviwSBZI{aOmgFV63o!e-klBo3h3K2kz5S_w3bagVhxF0M| zB%B*%Fiw-c6f7mAD82-{+*qaWFm*)~`1RL&b?T<^RB2`^NIBoD3L~R)d$PZprJ;{U|XDnV$}I(&rZ{zVU)m=l}7wH$4ke5OB6! z1@#^`WoMn98U3yd<@g?c|-^@voIyIphfON&OUqj>itE|JEDq#!Y;zA5}6MQ!icscPC^s$Wa1 zTEF&eB*ob#A{p2e$7fLaxgYpZ2vHKA=8EUPR5q2-&`= z&euLv7qeS|Tilx6L_x&1W8A`kt+sDb+qA2yum5~M6xyIKx1xU>LzX+bf|!*?Yk@&% zOiPVR(H&_h@o7kwxQ-Mc=h2Hm{6)WHJj-~R@fc$fh^-a1*zRL|6^MH@+Qarb##O*J z_!qNHDaT)QTCSUj{tXPk{==~s{lfN7Y*!tOe!=(|ko11c_PdNW;{fAM#wd_AA%?0mLmH{ekUo89!lskMRT}{$-H*-*W6lhk&H7kNaO@+`#x0BYlt1 zynBFfao4N(*Y_@wm_M0A?Vw>Zi z_1H^2wlHv>r!CtUu+r&l&N!O2apaE_OR}RdV%t`6*i052n*wwA1eX6M(nv%WtsL8_ nq@6TMxKV~IJD>9~OVi9)=3%-;jQpTMcaZeT>x9_odO`UQD`Ryt literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/lib_line_editing/tool_line.d b/42sh/objs/line-editing/lib_line_editing/tool_line.d new file mode 100644 index 00000000..269a6d65 --- /dev/null +++ b/42sh/objs/line-editing/lib_line_editing/tool_line.d @@ -0,0 +1,9 @@ +objs/line-editing/lib_line_editing/tool_line.o: \ + src/line-editing/lib_line_editing/tool_line.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/lib_line_editing/tool_line.o b/42sh/objs/line-editing/lib_line_editing/tool_line.o new file mode 100644 index 0000000000000000000000000000000000000000..8a0535b87e4c72d87a12305a0b4e126707e74d61 GIT binary patch literal 4900 zcmcIoeQaCR6~E8UeRks3FCQf-v@|Y+4w}UdrId(yEZrLPYBdsKZ3Y$9!*QM+Gxyo@ z2TfU#vN|1cjYO&q!Nh8jCJkv(gBo>1%RpN8JNMn^ z`fIf7w4>a2?m73I-#zEt`|i8W??3tIUmnI3H^T$11uetz2%v$kMO!81f1ry#dti=y zK#mMdMol9n$T0HeRNn5}^8S(g_Fs~n-W?POi129InGVJTbPJm%y+ejEVU8CPMlPQf zD#O_GwcYpL?F=&qN2R1dZ+UHA^>kJB5uc5hO2>q{9`B2FHTZ37wYTUu#fy%QXU&Hx z|JwK*yhkO>mEt9>c$!@5@qQ}fds*fiX|sVBP``C{w`qLYsFg5tjd&BP?c_ZFF4x(S z!JFb8j>bfY_3=4)GCX#9yl5tqG7T$wn8Itw*Oc)s$bde+Y4b@^7smx;#e@oulf`}Gy#<&S2X=6k=yJ0k;HxbON$IzRmJ|aPnPP zUzMrdt;;u-K8!r`M!`Cgv?dH=-=1oZVTm^{mFIv*ukyN1`TjQ4&zv;kS*)(@U>LRM z!J@=llz17xjVDEh<(_o<#4GP_(h`XE`JR^V>kgUKJ@R1MiTLE6tjU+^(oVoW`$eL` zjc8%m(^4#ePth>iJ!sWL=M}XYz-oif=pWEaAL^w?SM^e1<<`@)Z|da(D|+!xHamJj zo4F2-dU<3;FN2M)YQNZ^6hCPj)}A~&JX^SMa^%7f73~Dgywp{(^y6Nv$ zHQ`(wV%p5Mia|A$b^>LVQ;?$q$3ti0@pw?{oxuoWP2($f>g58$Y3VMm{%?`egiAlT zibyF%L^>zpD=r6|8oo8MOkwL~l(bw}`6~&Px+3maVOdu$)`Wjvo7pN{>_W#zVexij zz0aQ%X;ao2*8d8>T;`4D}T^S zztc-2i}q;oSAj!kwBBg|*!6DAr;#hc9m-AqF7EcXtDF2CN+-6UD+pz$GTi3& z-|72;?{n+Egb#3_T$Wk8^C$J;4}GWHWf*`?6%rTll*AnmF_8WKqA+wkKpo@w~0=g?Ob z51DzN!s7$T?k(Q$qq~T%>j8BI%;Uwe^wr%uwBjR0p9`$6Akrz!zFFZESfeCc(5RnZ zJ3ChDoBh-NcfUOKUGF!4y#2&+?*kZ1p&dhe9PN8(Vl}|yXhdRF!Gl6#Ok|4wcA5+% z>IeQ8Au%Ra1^wrw?8GX~8)Bu{{u>+T^mFP_^J3p{yj0{SCpC()iodlhXFjpC&0cY}kd{uQcYj7`m8iPNWlpkUZRW=fy4^U%bqMR%}_(bQuB_jZ5Vf607@6sFz#$^ zDowL-r|ilj_cCRwU1?wE@y-E-3bC0y{voQrM%zHpZh!l?Twhr)ulvGo4+f^BowH3? z6Fb_PE7DHp!-EpplVU!R? ziuycfA8-w5ei*if`85lC%N)Nx!Z(I_-&F#Ra<%Pa-d^C>P#h7isiy>dcbIPwlWbbx zeRKTA2=5Q`TOxc*m=B7n+=$)v1ozGJPIzh&-V-MO9<|7?hhlSt-x%gwff?qC`ZLbn z6BDif5%0oihk)L=zA1K7(!~D;c=?_7 literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/lib_line_editing/tool_line_2.d b/42sh/objs/line-editing/lib_line_editing/tool_line_2.d new file mode 100644 index 00000000..1fe110a3 --- /dev/null +++ b/42sh/objs/line-editing/lib_line_editing/tool_line_2.d @@ -0,0 +1,9 @@ +objs/line-editing/lib_line_editing/tool_line_2.o: \ + src/line-editing/lib_line_editing/tool_line_2.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/lib_line_editing/tool_line_2.o b/42sh/objs/line-editing/lib_line_editing/tool_line_2.o new file mode 100644 index 0000000000000000000000000000000000000000..0c53472fb95fa60c76588a1e7a2b4adaed2cede3 GIT binary patch literal 6156 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 H(JkzM5-=sl literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/lib_line_editing/toolz.d b/42sh/objs/line-editing/lib_line_editing/toolz.d new file mode 100644 index 00000000..2bf91c2a --- /dev/null +++ b/42sh/objs/line-editing/lib_line_editing/toolz.d @@ -0,0 +1,9 @@ +objs/line-editing/lib_line_editing/toolz.o: \ + src/line-editing/lib_line_editing/toolz.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/lib_line_editing/toolz.o b/42sh/objs/line-editing/lib_line_editing/toolz.o new file mode 100644 index 0000000000000000000000000000000000000000..31100f3e549be72ee7cd9fd4c715d608234ca030 GIT binary patch literal 4192 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/move_left_and_right.d b/42sh/objs/line-editing/move_left_and_right.d new file mode 100644 index 00000000..a96cde3e --- /dev/null +++ b/42sh/objs/line-editing/move_left_and_right.d @@ -0,0 +1,9 @@ +objs/line-editing/move_left_and_right.o: \ + src/line-editing/move_left_and_right.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/move_left_and_right.o b/42sh/objs/line-editing/move_left_and_right.o new file mode 100644 index 0000000000000000000000000000000000000000..9ea5deb924494b298b3b78140afd80f3e442177b GIT binary patch literal 4680 zcmb_gZERat89vv}xpqDpC(Y7jYB$_5HW>J$qd>NPkU+z3(?+1JE3IIo%?ERN)0=qD(1+{XkHmNk||Cls{+_bX8zz6!<}Z_6LFp4Ji?fg=#-SCsCgF-1pkf zjmv_>QIDVVzUMv9dCtc@=cIqQ{r0~@LTEvOALI_?Wr?3CGSYp>2HAH>L!EBL3deXh zI0fZCZfBZ~HRG@WFwGNVr%p6&uk<1bK_WiVve7HV9r4dg+}{~HCfG?AXOgIJo3fSr#{z+`Znu&l|7D+5AIErrs?t(is`m|$7paZ z>7!jOhFfgQmzta`TW4whHtX~FET-8mU*4W7QWHPl66?Fnd<(2^84JpD+E!mVWoNC* zR=!c+9@^W@#7$_+H=Rl=iGF<^AMII6@6VSil?s+=r>05Xmhpau^_@~|LOl4s`dq%^ zCXFeWg^|&v(tocV(M=&iPW?@&1MRW?A2_w#kQ&SW)`*WqDJ0 z<9)J+iJRbC-*j;r<8;ibeJ*cjO!N4WW~dMg%s0Z$68Pv7T*v-nA|IcXGpEW}UAKY% zJh;JpIp$kpJ~jo0?^P*RlBzuE^{YEupoUq=>xm2pF2tNu#!^fndXP z%~v;?3g!>JjZrBzUj5t*n*0V$W|B=;bV(TXiz}?Zlr-kp@Q2)VLu$)Wqqf|Ku$xBx z&CUF3JU1E*M=+l1jY|h1eU?_ES>Z{)z83NM>tolAIpq4-awB|V*{B;^B){g@^O~n; z?a&s|r3M*^nplclI~Z2&>tlQB9N2qwpef z@Bvu|dklSco<~^SqTBgktwO} zfZhwk<7MSrc<&(nFEMmGQoaY75|v3`P)IzU-Rs>O$4j?v?Ecxx!|%NQ)la;49C0Qx zy?bdED2AqN7cvsf2DxaG*hMo#E}AU9@Bf?75Jb>m5Zz3?U_`Sit+3~(E^ev!MyFkP zN@z2ET3=5nynrauu?M;DU)0r|JKly6qrH7!4}5k9U;irZ2;#2acH_7o;g9!PB7g&C3mAVF840TPBb2u zp+&h{ugSd}96<2SFR4y~h?hE1Uy&Mm5wkMXbqu0zdHP6-J}w6u5>-DDkd8y!@2GKy z?tn3P^)yD{$bL^DWQ9@g!I%c7WMokefg^Mftv0aP7ep?4JN)&%_>Q`%%UZ0`V`li|r8OyC5UJn~c9@e3fwt*n#@*u|3at zfw2N49ky!^o@D>$*+0(yee54(3^4vp?N<@I&Ug)oCu-~`Y+qsg77(w4*z;@`8P6~t zW!%R&#MsFg0Mfkt0~-@v$NtQC6G-#&d$zAK{+RIqg>Nr+;I-M%HHU--FJ5K#y2em|G*|M898l-cnvcQYLN#QWEvjxj3+KQ~%i!$-w KB?Zfd*8c$Lb_EIm literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/move_to_word.d b/42sh/objs/line-editing/move_to_word.d new file mode 100644 index 00000000..156881c3 --- /dev/null +++ b/42sh/objs/line-editing/move_to_word.d @@ -0,0 +1,8 @@ +objs/line-editing/move_to_word.o: src/line-editing/move_to_word.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/move_to_word.o b/42sh/objs/line-editing/move_to_word.o new file mode 100644 index 0000000000000000000000000000000000000000..2d590d7264988ab4888453ec0ddcf057e03b4d23 GIT binary patch literal 8032 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 P-7z+_dF#S$E@J%;Ut@i; literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/move_up_and_down.d b/42sh/objs/line-editing/move_up_and_down.d new file mode 100644 index 00000000..40345835 --- /dev/null +++ b/42sh/objs/line-editing/move_up_and_down.d @@ -0,0 +1,8 @@ +objs/line-editing/move_up_and_down.o: src/line-editing/move_up_and_down.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/move_up_and_down.o b/42sh/objs/line-editing/move_up_and_down.o new file mode 100644 index 0000000000000000000000000000000000000000..10f717d5ec0d1c6c9591389be23aa0a131c00d50 GIT binary patch literal 5764 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 LaLaC(c1QDn*7FlD literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/print_and_del.d b/42sh/objs/line-editing/print_and_del.d new file mode 100644 index 00000000..df52adf8 --- /dev/null +++ b/42sh/objs/line-editing/print_and_del.d @@ -0,0 +1,8 @@ +objs/line-editing/print_and_del.o: src/line-editing/print_and_del.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/print_and_del.o b/42sh/objs/line-editing/print_and_del.o new file mode 100644 index 0000000000000000000000000000000000000000..93b3b50432554b5d8e5fd5787c82027b260e0987 GIT binary patch literal 6696 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 literal 0 HcmV?d00001 diff --git a/42sh/objs/line-editing/queue.d b/42sh/objs/line-editing/queue.d new file mode 100644 index 00000000..fba5b3bb --- /dev/null +++ b/42sh/objs/line-editing/queue.d @@ -0,0 +1,8 @@ +objs/line-editing/queue.o: src/line-editing/queue.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/queue.o b/42sh/objs/line-editing/queue.o new file mode 100644 index 0000000000000000000000000000000000000000..53cd4575ffe255e04bcf3ce3b805b4e0b6c00589 GIT binary patch literal 5588 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 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..e2c5a962 --- /dev/null +++ b/42sh/objs/main/data_exit.d @@ -0,0 +1,8 @@ +objs/main/data_exit.o: src/main/data_exit.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/main/data_exit.o b/42sh/objs/main/data_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..cf3e8b9b63f9e42e8400732f8433527300301569 GIT binary patch literal 6132 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 N| z`(8qe6;sMzDLA0QIQ|Sc!U#H5aKL{`2bhVV2nagJ_)~Rs>L5c$LHX1AefQm$qzee% z$+_oz=bn4+x%cin_r8~>-+cK$Q6WNMfeI7>9nw)HK`4tsY2x=NpJ?$L4lA1g!>1r6 zR6on|oSmKmV3xIYc>C5l97s5xDIfkP`+K|531u_2L1{qTiRFq+Z_ZZ zTZOo^RtaLP~J7Z zN~SpOxbO7$s_O4|72^4(K$_+6>Te=r%Mh#M3;d~V`2hYh<#NHXikS(9_m26#rsC^Y z;r#M_8CW}|*i&@LsG&H}*VdXEWl!xGt zkKT{*`%`;f<HTP#85r@6rQFI`ef{)d>QNMY!ABC# zOvlv5uyJPk)#KV;2V%3|c644_dS*I-mJ!tm7;LbL`4RS;jd9sUN_9UTC@5cmZ2IVeOo*68oU8-jWcg~5s12H|bXPPpK-*?ZAJ__Ip28JTN z?O6jvg|t;`i*-Jd-ut>}xQ^*%X87%6D1TiEx%be%ne_h2BXSG&z8-40cD@CF5wJ!r z_7A_E-urm+vd6X#Z`mvcnZ%NtHeI|qIptK`e5si1>+0$1Nv^O9$h@6>Jpf&6R(JKT z6mG@tp2*~j-Pw$nvGT>d*JX?DZ7%wCk6&53BAe-6v)avBc6paoo^*3!)=uP$o*#r_38Ii4k%>$7~ZJn0F$gaN&Y zvM85a;pVS$ERT;{rh+_RDJ;EA7Tx@K(a9$1u3SOB@MJq&yGp|FK5~j#IT#vpXf0KC zA!ung3vsfSd3F|g5s^*yWW^UoopFSPkUUE=*Jl-bA}jK;w#ykWCnhqUofEkdvP}6( z3|PtJ3o0^UTkcL)yHJ(otZjeRoYqdU!`USYuE!C`FalXVD|jLa=2TH|iUJ|IrHXKN zIyOutbA6U66>vMrc$2P>qLZm0mMco5uw(7Yx;ze-<$QMjng$Tdc-m?-WIWuQMkhTS z3}g8URt#%vJ1+N;%c2$z3sUqPti0m>(t8u7Ec$s)Wg?I5v#q?`de0_6X< za3R39ux(h(?yCGHalhr{;mIvKPFBd;_v9<)q6;K8=8dD24#`%k}Y`%!9 zgdbeR$zqzqE7^sT>j<@oW7!@zGv&ahSMk-7V=cM#lF2o-)hfwF&N+pGB^MbxRl)LD z7|WH~c}pX&86wmeT3+9*hwBqYTYY1w3E4qwz#|>*LQ7L`lc-$#g8b0}P2tJ48)$aS#Y*i6ue^QA_%)%tC< zvjA7l_^hE$!@60IXsZu}I7-7w808E&O)!Ak+Vv0{7oh1B#Mq?ENSZq&6Q9MAg?#tyQGc3W8r%@shP+}F?})S@x1>f@{;#+6{v zYfv$JhZ8a4>5$fKUJc>jAgxzR3G)U>^rfxVQZe)9pzSm*l`wAus^?~`(NeAEH-UIQ zXlu1p()>82MVOLyx|SL-j{seR7_>9ARL-;^ZRCvm!l`>TVK6Quib`iZMku-%@*NPv z&H7is^jP#m(A*C(;?#T(Y#{P6^B_2TMlNNXj|b>7#`zS`ci470<9ri{bBI`s(|}&0 z5iPaE`HrQ&5cn zMbEDp2OEi=X%@lhC)!UxE+ozrv;9nf&gN`C z4NoES(6E*oFz*S_xms$-JP@FdXsNXMV1UwEYLofH0BzJ#7n%ow z_)CtSr=_-I|0y=1dKCI-N6iypJ<)danV{2BPW3rxS!$(%Q$f^yhO_}aba-O=q;#ThCaNo=2fsmu|D%Ha1ItblS3QW2ChhK9fxiN zdJA1**nx!kDo_cJehfQMHqVD%TCNYL?hlz41#m++^ScmM~&sqcqG)WDm=0`w0r zuW17tG3VxN$~m6|?KT*hm~+G&2I50!V$L!1LZB(OVa^G2570p(&RIl9Aa+1idt!74 z#8nV$(osgX4x+xw_$0K^>rq_}9A8}HfVIY(%mR29%;GJaxCg|CDZYRsawUI&F7bsJ zQ5fu9dm}8;b+w`Rtq^*#4t4Pmdd9yRz&gNK{JsFz1191R1h4_HHU0y@v)DHQn2f&& zXcIO9_QhWcU=!egsN*yD1?cLcq56$5Yq%6ui>TWMc98m5NPi4G7D_xz7L`5z#1=CY zy$V)uLk_Q~F|Zv2u~W?iIMZHi73bUxB)7hkb8ZD{K*EZ3ag{rOxF4}@{<2O5lAGPb zbkZFlB+sO|7KpnOL-Jf<_6Kc9o;~JJfRH@b%;7y?6jz+1h(DmFsH!fZ)62$HVq_yO)ELG{XleXo~otd z<{d!t_wym{E%x-H!8F{9fN*fh;$w`2vgH>;kMgjR2M~BSl_>N35?A--4gUYJ;d|mT zkorz05Gvv_z;%2`sRcqJ1z~3eeKR^<|M{B8R$dr5C-z?mqD?C}Kg_j*mV!b>x9O zmWH-U)M@|hrm^RVviieDH&l?O?ywoTaGcQ$4 zr%J`E1690BDEB-csN#{KteASK;$y2+Op8=85vz{8mQcm4sp8_nKoxU=vf}N6Dqc90 zud?dM1y@#gC>0MOrDCF$zA&P4&#MttJUEmUa~V}kZc4?ImMR{;YD6Y4s(3+ER?O#8 zH8&w9Z>o6cDywS%sbWG@LHw`$5=HJ{4nU9jMct_B=(rN3ozPWVL}+Isl!!-Td^9=I z642q7>Fn6C;6^S6>l4>&=hQI`v2-F}O|+p$DD+l+9qJIrAP&AS;A??hnB-ew_oQ3t zR;W9FTHoo%YusIKx8;A3JkAn&yoQgCc|l)S%zcZ%Hwz3lfzKE6EvqYsaOCT<>x*Na zRdF&|zHs{re+0$C3y zuj~-8HtPKs02Vlg5R+fRjUnBvxj>H^v82A(IA5X>Az!w<@;49XoFQ7bLCI537Z!ee;|@NOObN@A0={I;eMMuli+?C( aC(BCh;vZJ{36_e&LZ^I%!kAt33gW*63SR60 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..d8e16b10 --- /dev/null +++ b/42sh/objs/main/data_singleton.d @@ -0,0 +1,8 @@ +objs/main/data_singleton.o: src/main/data_singleton.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/main/data_singleton.o b/42sh/objs/main/data_singleton.o new file mode 100644 index 0000000000000000000000000000000000000000..1fcfe8a627b1945ac77bc6c250aba9d591c7c8d2 GIT binary patch literal 6304 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 Sdn{MtpX77oo$4PVA^rn-!pg<~ 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..9679ce72 --- /dev/null +++ b/42sh/objs/main/ft_cleanup.d @@ -0,0 +1,8 @@ +objs/main/ft_cleanup.o: src/main/ft_cleanup.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/main/ft_cleanup.o b/42sh/objs/main/ft_cleanup.o new file mode 100644 index 0000000000000000000000000000000000000000..d4aab287021029a71169a869d3e925fc389a7f87 GIT binary patch literal 3592 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 KRf&9)iT?o(gQ0~0 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..bb1306a8 --- /dev/null +++ b/42sh/objs/main/lib_expansion.d @@ -0,0 +1,8 @@ +objs/main/lib_expansion.o: src/main/lib_expansion.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/main/lib_expansion.o b/42sh/objs/main/lib_expansion.o new file mode 100644 index 0000000000000000000000000000000000000000..0e63dd8b9ea5cc5a8d22336b999f1a969fa004b2 GIT binary patch literal 2608 zcma)8&2Jk;6o0eMY#iIQla}(;3hg0$L=ZczB4N=`8qvUFB~sNkAsomzybAuS{0QWTzl++RzU)Z1C=a5HSf*NI`%dte$tya@6DUv z{O04W{mb8fJRSyMA;1Q82(`?yF;G!nKy6d-DRQ4CqU_Kd6yHZoAWcvZMTnZysCj+Q zzc{yianJXAJE}u?lFJByTw(}5_jAY!k#n;3RZ*=~WLSu^AI_eCubblITvHK4?+*DL z&F_%)@ror|hJ$!V>2P}F>jCksY_{TT5Pm;DAMYcDIVfJiT`AF&AfBuEZ7ICRir*J_ ze(L)6-EYNmSDosUcz*@xK+^?zdZm3E3)PBEx3O{-Wqm&zs z$QeZbdDQP!J+;xMX&Ch!YOm0KN!60QLkIR3&DH~R^LN8+ecCo#^*_z+xwg5PhQ!q( z&i#RC$pU53nT*J(gfBq+M^& z4-reyZyb8%%Uy3syPp4yys;*>z^UaF(CgIT!sdlplh*eYw<5*!y)XHxrSEo#oP|p9 zq|E4_OQGOgyva^4{vbJo{|qIf&?9D`qviNRLWc%m8()1gjh6URE^S7AIR9^{VT2(% znB5h1l!VeJ{_^bdd0>rEHX0ia?_d@!a~$>Fzl7B3_*Vh5@zE{q-9zeU55B}44N}-L z_D}o}wv5(5W&Se-2)f-+>J71Aq QS-IVERD)}!0#S$m00%T#?f?J) literal 0 HcmV?d00001 diff --git a/42sh/objs/main/main.d b/42sh/objs/main/main.d new file mode 100644 index 00000000..66cfd558 --- /dev/null +++ b/42sh/objs/main/main.d @@ -0,0 +1,8 @@ +objs/main/main.o: src/main/main.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/main/main.o b/42sh/objs/main/main.o new file mode 100644 index 0000000000000000000000000000000000000000..06742aa014805a58f70149f827fe4d5e5e95ae57 GIT binary patch literal 10032 zcmb7K3zSsFnXZ1^o}TW@bkBpAyc(N9H1zO}v+{68rlElWkzoKe+Vphy%(V1$H~knu zm|bzurESRiNV1;YC3gC6#b#6XwT7wPKC#{22Nk@lJTCUO$-d|iEsRCk*4mHIwY{<_o2S|LuT ziPWbFp;(u-FB?hq#B-PG+gfkvG4q?autq+Y)z=q^N)s#XGxe$Aim%oe$z+o8a4OPA z^DY^0R@rAR(RE*GpP?_^b%&hbO8Y)g`rt14yz({mN&7O9Xr(?^gQ3UN_tDqXm*0`O z?0B1$zK_&;uDL=PdXZGjhcRBf#8PFYedClprhVrpUsR+@75bv-K8!OTE~K_4Qn7Hj zy={1l7Nu{qV)~{C!9A)S9gyOw&=>CwcV{uXMrGxG@Tk&vzfmpjQu-7Wc%6IAGHLn! zO{Ap8%JI%t{yMCz@cN9_G1#ZpYeFl?Kj&dptB0JSFi^@U)_@N*WEG43$ZiX2L)6g(9wiNWR?&plj8q5Z+*p}`~GP;tmmQVbqBBem=wI33zw zI4-%x;PWA+)$_9k%i!lO&z`q0T(|(mr-kPp9Sw$pU$WU5zM~{WE}7eucy6uo+RMO1pG4koC6OTjNggGbli_OfTn9#jb-{kQuQE}IJX4F!)= z0PZ`h=qW{Cm2^K`OD`1%j$HJL@=l4oSENbOsc_8K_Uj=|oYAxxJdNgO;ha(E5_51m zR16+GqX1?XK-y9Y9^@pH?byHgUM#?3@P|@Qdx?{WxkZDA+l#^bJ$q`Y&zR$qv$%TS z8LrwnM~cCHQei2$??tZ2(EbHyF(J>kqFm~H2Z|mpcJ6I2{v4(ITZ=E1f_sbhX@`Vi zF6=G__goyc=bjUP#^mo;!?|RZzs(-x_(m*^ZDf}Qj3sr^8OACwJadVvrD$VVTpEoc z+82x!!Nnsjx}=GhVwgl(J8XIEKFY;#+soaaDQ#+f;Qdkp#ewsoV&SYB@f-|p!Av*^ zjy0BN3H7A{XXcdQhy9DW-i>lGcv2RM!M7weUHma5p1nnyGkOiQweQ#3NJ^_uuP&_^ zw_@`bKk2X^j=CkGnm&dK?9cBPX8JG+vFfyThR z*v@!5I&kaGzDUnNV@`tGe7Srix@GaLjR{%I$7NC0xkN4-oz)jfq-53<72>P48xpeD zo@{&o+Ov6Iy4#oQjVF^*tuK>^EpANsGCkQ0=^g2=a5SCDXVXbvBIi?vxx|fY#Er|A ziB`r2zV`MFt9||PY%Y;b`I?(%H_i6Vh$a!x1e#|9G|iveH0SC|?48w_Lz7uO+tPQ$ zBD3bt&Gm+(nH}LwA=fM7;beR}%*)3`TX0!xXZw1wCb+SE#hM^+`-;_~Be+&DNaaN;oeG1-vp9DX{qeB$7i%gwoDPBWxi6B6iD+*mEAr_r@s!Ai zlZjkj3dHHyfiTSNpVqpgS4qF)Wql(#j-{e-0aj!v;yDG6fDAbDZzXh)fo7 zOx_qgy4$*Kz&QLx|f`-v>S~8+x z$pKE9I4Yu1NR(HcT*O?Pa%9ky%f#a`A#+2M!6IpNte?F-O3f+9GU2j;brNL zrLico@fZexmnE7^=dfT5_jJc*=OX=a$jni6uB7l1ohpg+R#c5&x{q5~Sh^2$ki~lz zMql!U#j=xrvD8``Yw9&yjn^@urq)u2Bf)C7*lOJF>)Zw;>Xk2G$aoK7pdzHST{(6K$RhqCW78^L{kAT%98yQVpW1!p6g5b4&SoiuU zbho0O`kN6wjN%X68Y!R|_Ib+E_-*YiOKX&_EvrRcoy9_P>ZhWsYhir@2jX@wL2>kG zR9ywr$7phlW2Z|Z`km(Q11H=fgf3>1;8|o4nVXjc)=hwR%M2S%ANXwxGK-B7sMWTE z4BG&5yX|h|nyrZ3Vf#DeRkrUSciIjhueLpg+-3U_a<}cL$aUMZ$Vb_Rkk{CF58<($ zK<>5u26?Tp9|Y0fV`g_Cmrt{_7Ts_75ZLOmP{>kceIV1o>Gd2$?zBG8JC&&RDFdzD zPE>aVLORrieoR!q6-ZRKpv>nMn?Wrb{)B?HNvef#Mk<=E6!pHrrgKK9ojXG9JgL^P zS*bG}XxZRl%Z{?S+fPc&ZfN}55)By!_P$Hh`8o}>(^!p{77mO3SrFGzWLF{C#=Dz9 z#@Xuh1)!gi)nN4teKAVsiAG!fPCbXxXlSyHvHHDYl*@+lO7OJFt{N0?Lec&$Edo;I zv{SdM5$wN4!EuHAUXXE?<@&cl=~>GPcJLq(Y_qIn2j2tgMia{_t6$e22cml{?d;Cg z1hIbtbWE`KL&mim*^|Ikem4i>tE$sq0;Ta)BaE+-#=ipo&(Wlc#_O+{Xsp#gPS~l- zPOI#1Q1v^=-UD)YYd!+G%i^4+{|*J|)H$^K_dvAUIhS^SZr07C?h8O0F=@{E(5;V$ zt_0BntKX+T1hmu+^i8XOv+e``CwS?c*INC(dI9`^6R6qdKWG)MF4Wo~@2J<@Aez&a z2WK*h)p0jH+fsdtJ`gvV>{Z`Rvlg-rCRc}P)^ZbVw)!XPHvw^V zR7YrJC(sw@s=CYSpP|z?5=E{4+4_AZidp^5xG03pE;q8Q0)q z3*03Ts@`BOBZ)S0UhQmc4^dACvWFq+TIGHOWV7o!{hvWOJl7)X`4JI@;95*QPnva0 zIJ|!|(e)hO3npsefH?0`ODhNTiivLEfcR=iol7ww{Y?|KS^bOjlO_sU{Vn>hO|;DF zZ`0p5(Q>Olq<>)_e0NxBnM z8Zw1LbrW&mJ`UAu)=lM5N1NzMtG_`XZz4Yj&Uf?)_AreDr{g7R#K47}y}F)7)`&Ka zG47clN8HW&JgPuL_jT-giBjlZ$gWoaU4=cx~0~!4`Ae!u6V)Gxe z=y4NXZ}UH8(fdr;V)H*^5w5w=vKrbPjqVPR&HBYL>vGIDgS#6-I>v0*2Y~n*=@_$9 z--{AA107@b>fZzU0VO$R;o67d?O@eRcKtnyF%(CIT(m5QqJ5_407%H=ws;>yVKnUb z=oSps`>!S(1?cqt%!D<7UhgX=^Z<_Y{t9p^+j;?g-roW)C#(f*#zI!G4zNYka!33z zL_AfNx&XxLTaYz~+P?yMlYFN|I|=HvG<-l(C0m?lO|`{!JEUr%(J{k40i?x!jm~|Y z8<2Y@C#jLn<&*{Jooj&3p^3YR-f0G+AKkOKA{J4SlQf%edaH@BjrsKDK=i5`+t>_! zjai3nY_`6^MA*jWmuJI`Z4B@Id35HoIk9pf<+yq@JFtuy55^e3nF;%36vuL3vCm*h zuIFZy?qs8}?%g1p^y&IuP&v0VII;(U)S$SW}3*@K7i9WBB00c}SQ6$%j9s z6mOy!_fgMSB(~wj=|m)4z>29z(~z!0I#NnZ%2vfEjjfGOKlV&Ro8y-^GyoviO=S7LRnY zc*ZOB3~R{Z{;pWu`N-mys#uJA$YLNg4HORpKC&1ADk&bLWbs^8EXK5CF)marhM#0H zZc=vf5G0Ecn3CegL>9v^#bQ)TmhEDX+>y!RCarXF8zhVSqH4%ch%Cl8N~%Nk$dgd9 zcvex0N0@5(9w1rV_NF1>;Xue@EM{7-)H5bjEXLxLV$7#>F)SmCQ*E+TkKAJwi{}xg zcupx6PfW77+bZ=8g~?)ctXMq2$l{@dwz9^Jf)uSrg4l%xnIp7{STy$ju5H-y0&76V3)0v{tJ*q3H#hQX{Qd_`KGLwiBPz zYNpVBCOHsK((@-yVE`;ZT!6edB`2JIqWsiPev6_$ML{Hgp=$pGFeBL(BtDNI5pRYud>%t0ERkOl|R8X9?Zpv{_m^6zplU^R^X`> z!*^VSI*RE+z1}gP&X|j14&{%koQ1IG^U_I6i-1 zgXRY!AbvD4zR8%txUSDJ=kae?ktCQ#EBq@9zsrQXwieR(?0^p% b8Gh-K=HQl{Qu0%W@qvu&aHL;;J`(>6SXKv# literal 0 HcmV?d00001 diff --git a/42sh/objs/main/remove_trailing_esc_nl.d b/42sh/objs/main/remove_trailing_esc_nl.d new file mode 100644 index 00000000..f6b9e26e --- /dev/null +++ b/42sh/objs/main/remove_trailing_esc_nl.d @@ -0,0 +1,8 @@ +objs/main/remove_trailing_esc_nl.o: src/main/remove_trailing_esc_nl.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/main/remove_trailing_esc_nl.o b/42sh/objs/main/remove_trailing_esc_nl.o new file mode 100644 index 0000000000000000000000000000000000000000..01517e94549323e6d246c230a20e5c17d68512cc GIT binary patch literal 2516 zcma)8>uV!b6u)=UnI=t|q+36@C`&%9FL0B(6fD}+7B@1jRhI4Uy5QqFnNFLOWHKhx z?gN!Bp}J*3x`?0rC;Y1T_~2r{x&8?O5h^Gwg5aYVf9KAfHkmdy2hKhBoO|x?{?6P- za{uq&{vBqF#~2#u5Y*Grrntnrug*gBE?8TS&Q$n0iROENXZ$E)Ct*gI} zSFPJJ9L4*iI~n~=BNFI?XO&6~XPx-=@(c0aP%wkyRovw|O^M=Npv{AP5E#~0{NBO$ zQ`>iBy$#D70|Te zB#z}5;MGg3a)YD%lB$~13h%Q4@gzUbvZHu~2;R2?;`ukcBkNsMc*~04PXprN(n-iD zzb_*E=Hd$Yz^IHMAcS47p-x|{xz{T0k`N2$4^kOxtL&T#dcdQnVI#c1hwg_{7RwFn zZZJWJ$a|pPl^KP%t?-n~l8lwZKH2a+s8(Ew7_E0k;eDhg{iy1_-G?8YgDmAHN8}7D z?_uaR@~QthEaiX)y8!JLI+~$&#|PxX1?EoM^9oE*Jt!>+hwc4s#eoye2hPq9@k^( ztno;CjGq8^Esx*{J~I+aKbL$y`9x}N{KXWGl+H92nnS%qlRd6}n#IyDB$L<_Bf}_x z-Gl~5GfrQGrP$MCAg={Rwk6dMGU0>)eq|LN&v0pC+Ffr``tPD0((aZ&CU1;9rr)Aw z$iQRI^er?77Bm-UOUpH{s06B2h5nDpFjgV9$PPt)U;^op zkQ~2xk@4$Uo=pwMw~H~=msLGY2BE{hL`mOyqIxL z*S^yEnwG$#k}J^8JPROLqoC~L%AQgdMvfPirA^LA8Z;uu0#<>Ghi=)YKRs2)Wungo F`ww(RL;L^$ 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..9aa40517 --- /dev/null +++ b/42sh/objs/main/shell_exit.d @@ -0,0 +1,8 @@ +objs/main/shell_exit.o: src/main/shell_exit.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/main/shell_exit.o b/42sh/objs/main/shell_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..21e359ed5e2f4e31a55d14fa5ecd118cf9a6b803 GIT binary patch literal 2676 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 WM&utrh+|;@u`3o3(u)6>pzD8oKIF^* literal 0 HcmV?d00001 diff --git a/42sh/objs/main/shell_get_opts.d b/42sh/objs/main/shell_get_opts.d new file mode 100644 index 00000000..d2fbee1b --- /dev/null +++ b/42sh/objs/main/shell_get_opts.d @@ -0,0 +1,8 @@ +objs/main/shell_get_opts.o: src/main/shell_get_opts.c \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/main/shell_get_opts.o b/42sh/objs/main/shell_get_opts.o new file mode 100644 index 0000000000000000000000000000000000000000..c2505c1b02e09ed9d54455c5bed288e9398a6d89 GIT binary patch literal 3768 zcmb7HeP~-%6u&RYeMy@(NjJ;7b#4)6oy?@&s9If}EiU6ZR@g_^6`8)KuW6H!CNUpf zCmWPz9qq!Pg*ioZ3W^Mdp#M%Ct;&Y};~x%DMA^iFWgQGHQukGV=e_%qChfFdIPZMi zbAI=nbMLz^`S$kB`*y}8E5ie115I)~ydaF#Acgb?jC}~EaaH)3I+=+)G>M_A>Cj-> zkPW>((Ai$lP3c!k0)y}?*OtWlpvarCkFk8ys8F=yTL;41n z=9i?yi?P9AY;U;`3aq5w1^Fd{S}ER{61;(B;-!xymaO-J!0Q$HytPa`yu>TPlblVgrk-AY@0lR5_eqPCb<$d|f-f__nk8+A%qTsP( zb4o5VX9iI}Mi%ws+CAzAAUuH3hu^*aIKmmr;{oV$V3tfsXcqmM8)}x&+yi9E1?Jor z9ofG%_sBEQi<@mD@FJ73Ua{#udF2ALdcS6;-!N)ILOvgh#eIk3-C8`BPR66Gl`cB( zu3a5%-hogu6^X~ZP5uUdgLk7A#qI2CYJlQz+~VK-I7=n9`u<=fR-X!oqEWRklvd-3 zbjq)>`u!;c*Y_QcALk06SSsc<~01GAvU zBC#|J4lpeoOtJ{0@2ylNJ?dJ?tuBvT>#CAg;K*3~Fs_hV%B`+vom-ucRXmUP%gUKW z7+%C4*&2&fUK)ZIYXh^owmF@6sqAh>F^mqi@nSmYHNbC+Cx~I}Fqr-{e?1tUFu8PR zyow#&(4;y^vRWpNzOBnw@Pw9lU)O%Z(`K27o+oW1%`xr~(R=bJuhOiWKn6e3#jAKS z-X$E&^`(vzG+SM8tR_d`r*-^QI==ia#oFvNWxtMx{2@JnrR-}}2-3Vg#3iNQD3X5f z03GuvP4~_1u(gBeM$$6?e+NWEPaQn1YmDg)f$SH$xuz(^`1OW4 z(rHav>;L%B9uPeQqCvF~j+JrzD8$z4I%5q(qfX8H`q38X`#{tbT9aC|0fa$qArtjT znEovjyT}&a`5_L1SzO+3ZgHz&Sv21zEW;0&H>;Cg+smXukL0PaJH`=1X|4q|-KM_H z&zlF4wYoefEH6~b2A=M>9kTb1;V1H7OZi3NrwBih&mzB7SlhxH;3-LWT$OlAQ~^jb z?+jLQ58%=u7gk2Qr4MVJ#BJq{YA$Ewv)n58@ilUqTjWo9nLN&&&D_(>SB~?wzj4d= zyh?U#<97K1U)Ra)&78|&Zkyotm$*m%gAA(?z8=%Iok019dv#IHa*H)H&LwMQCui1< zVg5+Dqn^w1PF^?6<>vgN5*B5SHl*`8FUuf@VeXLM!+JY;MKi(MuwE^)v%#^Le}*Ln zX^HYqi;PCFizpMP(05+&HwE7+_$F{0=IOTqdQtrsngP-GqtO-L1UStPfz$jZaKftv z$G6ibj;VYWI^yJGf@cJOTJUjYmXc#Gg(!NGK#=LGkH(>XHFEdA6ay$eL+DUe&p zr0)SOQ1zQ~p-%EbovD#j5I+-{YJ4b+FGJxYP-M=3Fof0o1TnQYP5;KU{sdEdg6W`| O!oR&}C>@VcPX7Qqm{mvs literal 0 HcmV?d00001 diff --git a/42sh/objs/main/shell_init.d b/42sh/objs/main/shell_init.d new file mode 100644 index 00000000..ba48009b --- /dev/null +++ b/42sh/objs/main/shell_init.d @@ -0,0 +1,8 @@ +objs/main/shell_init.o: src/main/shell_init.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/main/shell_init.o b/42sh/objs/main/shell_init.o new file mode 100644 index 0000000000000000000000000000000000000000..56370d1de5a0aa9fb4bb7bd74abd3b8c13678aa0 GIT binary patch literal 7740 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 B1ONa4 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..fad47284 --- /dev/null +++ b/42sh/objs/main/sig_handler.d @@ -0,0 +1,8 @@ +objs/main/sig_handler.o: src/main/sig_handler.c includes/minishell.h \ + libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 includes/completion.h diff --git a/42sh/objs/main/sig_handler.o b/42sh/objs/main/sig_handler.o new file mode 100644 index 0000000000000000000000000000000000000000..388fe25ccf2cfaf0c0bc5dd0e549904265a26cf6 GIT binary patch literal 2908 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 R%V#z_;zZf~_!Te2e*q;u?dSji 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..5260d7ec --- /dev/null +++ b/42sh/objs/parser/parse_dgreat.d @@ -0,0 +1,8 @@ +objs/parser/parse_dgreat.o: src/parser/parse_dgreat.c includes/parser.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/parser/parse_dgreat.o b/42sh/objs/parser/parse_dgreat.o new file mode 100644 index 0000000000000000000000000000000000000000..261f2414b259dff5c5e4b486c74c6827cc1fedb0 GIT binary patch literal 4964 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 QAe;$4ZShkSk9?H>0zHD};{X5v 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..d0ed7453 --- /dev/null +++ b/42sh/objs/parser/parse_great.d @@ -0,0 +1,8 @@ +objs/parser/parse_great.o: src/parser/parse_great.c includes/parser.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/parser/parse_great.o b/42sh/objs/parser/parse_great.o new file mode 100644 index 0000000000000000000000000000000000000000..114fed77e4f8f42b35f087c80f9c1e1ca3081d79 GIT binary patch literal 5024 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 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..0795a301 --- /dev/null +++ b/42sh/objs/parser/parse_greatand.d @@ -0,0 +1,8 @@ +objs/parser/parse_greatand.o: src/parser/parse_greatand.c \ + includes/parser.h includes/minishell.h libft/includes/libft.h \ + libft/includes/lst.h libft/includes/get_next_line.h \ + libft/includes/ft_xattr.h libft/includes/mytime.h \ + libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.h diff --git a/42sh/objs/parser/parse_greatand.o b/42sh/objs/parser/parse_greatand.o new file mode 100644 index 0000000000000000000000000000000000000000..cb8ad855637b8080f1cc2d535f38fb1c065a511f GIT binary patch literal 4976 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 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..36b19d1d --- /dev/null +++ b/42sh/objs/parser/parse_lessand.d @@ -0,0 +1,8 @@ +objs/parser/parse_lessand.o: src/parser/parse_lessand.c includes/parser.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/parser/parse_lessand.o b/42sh/objs/parser/parse_lessand.o new file mode 100644 index 0000000000000000000000000000000000000000..f538711e16db7aae23a769cebe07df7578057112 GIT binary patch literal 4964 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 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..d3422ea9 --- /dev/null +++ b/42sh/objs/parser/parse_word.d @@ -0,0 +1,8 @@ +objs/parser/parse_word.o: src/parser/parse_word.c includes/parser.h \ + includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ + libft/includes/get_next_line.h libft/includes/ft_xattr.h \ + libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ + libft/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 \ + includes/completion.h diff --git a/42sh/objs/parser/parse_word.o b/42sh/objs/parser/parse_word.o new file mode 100644 index 0000000000000000000000000000000000000000..f5de56d00e8e393487111d19aa89369ffb3fa019 GIT binary patch literal 4984 zcmb7I4UAM*6~6Ok-@G?F%l=YWmLCU}((TXg^4qL-fnCeuV+w{~x20Nr%+Ad24$RI> z=e>ai0oQ`s5gYqswQ1B+W6>C^(MnQlOhJfH(L!1!HAX{7O^I!7i#6FwQvAOA?ptOD zuz0iQo_o$c=iGD8z30q*d-6YTeP9R?2nuw7DnMRG7X_fr0F0A)m6ogVCLW>=noq-~ zAk>kGX4`IR)b++5eP`dsJ1^1xXdazFqdmE7qYz;-s>B$P-)uXX8Ym9gj$4o{+g^2d z?}pX>wD9fxUfKJ3XkyAAX#RlMx0lH!B)ihyKPO2GvD+-ymg7khzP|W z-bg$lU99xax2KLne7L=MKA%b1+4uZLx~Ud&$E{s*enmY(!V-hRH;EJ?URQo~X39q{7~jYqaNX&tGxBcPo1rRMcO;Mtev)X|mG44b|R8{r#Tx6IJaW zsN#GRxe@HswTszp>1@)r*RHxGD#WO=7gbENUI<>rVcb7;<`wo*!}eeSr|T)$_T+l- zxU$!y?6oO-iWCu;_Q%A2zGc!`X|Zy@uPS@rQqBy+9$Wq@{xL36B;qO3`DVZ<9=Z$DW1|Y5AAxV ze0#;?R_U}=`Wyrn0W>q<3Hjo$c}}#tX<1$poFr zWrw20tdkzfrjk*b%cKTfQAiIByTWnf1=`M}v4rCxWmIJOiR|21BDY0us9Dpr64g)Fg{D|k2rZpN8q;9L zQ(&?Ng0+zdwUND3V0ldwi7w=JH49&4dYOQTp>TP{%9PcjM%=T`Wm~y1=tUy7sVq2nFh%2MH?wlAK+FwLlHOJwb)Ehd2F;RKpnN zKyBOs9B4cX=RmDLN~);?5+cZ2q*rM#0BJ|j87I+=l4>=_fTCJs_yOR0=x9^5RuO&> zR0FB&AQC%Be)G%x_I>I%; z2RXNp8(4tRF;a`L0bv}%koyTW2AhF&(|8%^W^(35mH|bL1>u#zO$eXSMhgt*6Qph= z^>t7Trg0OgZ-C;-8aIOy#vF+Cffbr-t^(hcoN+WZl^F-o_Xj8wCE-9&^< z9GD0*rhkQy*-T%)3K>bwkP)V~_B!pHNB1};L$l2NKyBd_6A=#g&<-O^SHiut^FvU* zNR9Bvxu@rS>UQiY`~oQMKD zq5!W1u$AkQuGGDV_W#IGpPw{SX$%d1!mkjpj%PA|%n=*_`SgtT`2b*%;J5*J8elqr zzk2T1(zDO4`|i$zXBNEu$lAf#2m0?j5Nmt$#m_XHYk4Ixb>^ezPtE+w;qUBx?DWx( zJpI~xi%M_2yYrWN=ZRnMTy~*lNp|*6ZqrXJ9D5-0-ZQz`6)zohmZA@x@!UT3~ z5P{M9Kz)s2GPYb~7Qp&9?OeR*|K^F_+WIeRw@>juBOisVCSHVOAaJ2}3i<%o00b^Q z(nKabFz9xsvx!VGiO-A)_4ElaQZE80vW3%V(oE9?Ikfyiq1Knkslh6g$}TTCgsl*HoL|*CU~r z-q@|1-5A}WSA%Nk){Smm12qLyOQ@*Vh3?n!*Ag1m=Ymxq(}NrJ+L(TQXt{n17>i~ttv7e;LD!qPL(VLY=^u^hE6Qequv-hA#?W598F+q7*J4=v8NG?zm_7q*$FQV% zkDQ+#)8~NG9Wskr2!|l1Aw-Bk`+01{ME<`4jBPD{4H!{q{{t|>)&4zTh_-)G;W#kP zwtY1)K26&#k00t$c!9!m6b7Px=(NIXf$PBV+eQq^NLlF1>E??0whH>z3Yxm*`hyj8 zPX#UPLA>JKLb8~b!+0`TNQ`*nOj3Rs48#*#%oRWo3CG+?_ql+p7H*}^k1Xv0H*)| literal 0 HcmV?d00001 diff --git a/42sh/src/line-editing/builtin_history.c b/42sh/src/builtin/builtin_history.c similarity index 100% rename from 42sh/src/line-editing/builtin_history.c rename to 42sh/src/builtin/builtin_history.c diff --git a/42sh/src/line-editing/control_c_and_d.c b/42sh/src/line-editing/control_c_and_d.c index 64dc4716..d484cbaa 100644 --- a/42sh/src/line-editing/control_c_and_d.c +++ b/42sh/src/line-editing/control_c_and_d.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 15:17:28 by gwojda #+# #+# */ -/* Updated: 2017/02/05 16:49:10 by gwojda ### ########.fr */ +/* Updated: 2017/02/14 14:08:21 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -36,6 +36,7 @@ void ft_control_d(void) void ft_control_c(void) { ft_putchar('\n'); + set_exitstatus(1, 1); ft_prompt(); ft_strdel(&STR); POS = 0; diff --git a/42sh/src/line-editing/ft_prompt.c b/42sh/src/line-editing/ft_prompt.c index 2f1d752e..5e6e21b1 100644 --- a/42sh/src/line-editing/ft_prompt.c +++ b/42sh/src/line-editing/ft_prompt.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:51:33 by gwojda #+# #+# */ -/* Updated: 2017/02/10 18:19:16 by gwojda ### ########.fr */ +/* Updated: 2017/02/14 14:13:05 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,6 +15,7 @@ static int ft_git_status(void) { int pip[2]; + int len; char *tmp; char *line; pid_t soon; @@ -25,14 +26,16 @@ static int ft_git_status(void) { wait(&soon); if (WEXITSTATUS(soon)) - return (0); + return (-1); close(pip[1]); get_next_line(pip[0], &line); tmp = line; if (ft_strrchr(line, '/')) + { line = ft_strdup(ft_strrchr(line, '/') + 1); - ft_printf("\x1b[38;5;47mgit:(\x1b[38;5;203m%s\x1b[38;5;47m)", line); - free(tmp); + ft_printf("\x1b[38;5;47mgit:(\x1b[38;5;203m%s\x1b[38;5;47m)", line); + free(tmp); + } if (!get_next_line(pip[0], &tmp)) printf("\x1b[38;5;83m %C ", L'✓'); else @@ -49,30 +52,9 @@ static int ft_git_status(void) close(pip[0]); execve("/usr/bin/git", exec, data_singleton()->env); } - return (ft_strlen(line) + 8); -} - -/* -**ft_printf de la lib bug avec unicode -*/ - -static int ft_get_date(void) -{ - time_t t; - struct tm tm; - - t = time(NULL); - tm = *localtime(&t); - ft_putstr("\x1b[38;5;242m"); -// 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("\x1b[38;5;184m%C ", L'☀'); - else - printf("\x1b[38;5;184m%C ", L'★'); - fflush(NULL); - return (10); + len = ft_strlen(line); + ft_strdel(&line); + return (len + 8); } static int ft_currend_dir(void) @@ -98,7 +80,6 @@ void ft_prompt() ret = 0; do_job_notification(); -// ft_get_date(); if (ft_getenv(data_singleton()->env, "?") && ft_atoi(ft_getenv(data_singleton()->env, "?"))) printf("\x1b[38;5;1m%C ", L'➜'); else @@ -106,8 +87,7 @@ void ft_prompt() fflush(NULL); ft_putstr("\x1b[38;5;361m"); ret += ft_currend_dir(); - if (!(ret += ft_git_status())) - ret += ft_get_date(); + ret += ft_git_status(); printf("\x1b[38;5;184m%C ", L'›'); fflush(NULL); ft_putstr("\033[22;37m"); diff --git a/42sh/src/line-editing/get_touch.c b/42sh/src/line-editing/get_key.c similarity index 94% rename from 42sh/src/line-editing/get_touch.c rename to 42sh/src/line-editing/get_key.c index 7c90314c..30444e59 100644 --- a/42sh/src/line-editing/get_touch.c +++ b/42sh/src/line-editing/get_key.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* get_touch.c :+: :+: :+: */ +/* get_key.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:28:49 by gwojda #+# #+# */ -/* Updated: 2017/02/09 17:25:01 by jhalford ### ########.fr */ +/* Updated: 2017/02/14 11:16:09 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/history/add_str_in_history.c b/42sh/src/line-editing/history/add_str_in_history.c new file mode 100644 index 00000000..91574ece --- /dev/null +++ b/42sh/src/line-editing/history/add_str_in_history.c @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* add_str_in_history.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/14 11:27:03 by gwojda #+# #+# */ +/* Updated: 2017/02/14 14:57:01 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); +} + +void ft_add_str_in_history(char *str) +{ + if (str && (!data_singleton()->line.list_beg || + ft_strcmp(data_singleton()->line.list_beg->prev->str, str))) + { + ft_push_back_history(&data_singleton()->line.list_beg, + ft_create_history_list(str)); + ft_add_in_history_file(str); + } +} diff --git a/42sh/src/line-editing/history.c b/42sh/src/line-editing/history/history.c similarity index 100% rename from 42sh/src/line-editing/history.c rename to 42sh/src/line-editing/history/history.c diff --git a/42sh/src/line-editing/history_parsing.c b/42sh/src/line-editing/history/history_parsing.c similarity index 95% rename from 42sh/src/line-editing/history_parsing.c rename to 42sh/src/line-editing/history/history_parsing.c index b7187bc9..c96e94e8 100644 --- a/42sh/src/line-editing/history_parsing.c +++ b/42sh/src/line-editing/history/history_parsing.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/25 11:39:47 by gwojda #+# #+# */ -/* Updated: 2017/02/09 16:25:31 by jhalford ### ########.fr */ +/* Updated: 2017/02/14 15:15:16 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -70,7 +70,7 @@ static void ft_history_parsing_2(void) ft_history_parsing(); } -void ft_history_parsing(void) +char *ft_history_parsing(void) { int i; char boolean; @@ -78,7 +78,7 @@ void ft_history_parsing(void) i = 0; boolean = 0; if (!STR) - return ; + return (STR); while (STR && STR[i]) { if (STR[i] == '!') @@ -92,4 +92,5 @@ void ft_history_parsing(void) } if (boolean) ft_history_parsing_2(); + return (STR); } diff --git a/42sh/src/line-editing/history_parsing_toolz.c b/42sh/src/line-editing/history/history_parsing_toolz.c similarity index 100% rename from 42sh/src/line-editing/history_parsing_toolz.c rename to 42sh/src/line-editing/history/history_parsing_toolz.c diff --git a/42sh/src/line-editing/history_parsing_toolz_2.c b/42sh/src/line-editing/history/history_parsing_toolz_2.c similarity index 100% rename from 42sh/src/line-editing/history_parsing_toolz_2.c rename to 42sh/src/line-editing/history/history_parsing_toolz_2.c diff --git a/42sh/src/line-editing/list_toolz.c b/42sh/src/line-editing/history/list_toolz.c similarity index 100% rename from 42sh/src/line-editing/list_toolz.c rename to 42sh/src/line-editing/history/list_toolz.c diff --git a/42sh/src/line-editing/surch_in_history.c b/42sh/src/line-editing/history/surch_in_history.c similarity index 100% rename from 42sh/src/line-editing/surch_in_history.c rename to 42sh/src/line-editing/history/surch_in_history.c diff --git a/42sh/src/line-editing/home_end.c b/42sh/src/line-editing/home_end.c new file mode 100644 index 00000000..707e5001 --- /dev/null +++ b/42sh/src/line-editing/home_end.c @@ -0,0 +1,51 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* home_end.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/14 11:13:24 by gwojda #+# #+# */ +/* Updated: 2017/02/14 11:13:47 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_end(void) +{ + if (!STR) + return ; + 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); +} + +void ft_home(void) +{ + if (!STR) + return ; + 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); +} diff --git a/42sh/src/line-editing/tool_line.c b/42sh/src/line-editing/lib_line_editing/tool_line.c similarity index 100% rename from 42sh/src/line-editing/tool_line.c rename to 42sh/src/line-editing/lib_line_editing/tool_line.c diff --git a/42sh/src/line-editing/tool_line_2.c b/42sh/src/line-editing/lib_line_editing/tool_line_2.c similarity index 100% rename from 42sh/src/line-editing/tool_line_2.c rename to 42sh/src/line-editing/lib_line_editing/tool_line_2.c diff --git a/42sh/src/line-editing/toolz.c b/42sh/src/line-editing/lib_line_editing/toolz.c similarity index 100% rename from 42sh/src/line-editing/toolz.c rename to 42sh/src/line-editing/lib_line_editing/toolz.c diff --git a/42sh/src/line-editing/toolz2.c b/42sh/src/line-editing/lib_line_editing/toolz2.c similarity index 80% rename from 42sh/src/line-editing/toolz2.c rename to 42sh/src/line-editing/lib_line_editing/toolz2.c index 9a468b8f..9db4d662 100644 --- a/42sh/src/line-editing/toolz2.c +++ b/42sh/src/line-editing/lib_line_editing/toolz2.c @@ -6,25 +6,12 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/07 11:00:28 by gwojda #+# #+# */ -/* Updated: 2017/02/04 16:20:11 by gwojda ### ########.fr */ +/* Updated: 2017/02/14 14:43:32 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) @@ -66,3 +53,24 @@ long long ft_pow(int nbr, int power) } return (ret); } + +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); +} diff --git a/42sh/src/line-editing/toolz_parseur.c b/42sh/src/line-editing/lib_line_editing/toolz_parseur.c similarity index 100% rename from 42sh/src/line-editing/toolz_parseur.c rename to 42sh/src/line-editing/lib_line_editing/toolz_parseur.c diff --git a/42sh/src/line-editing/toolz_termcaps.c b/42sh/src/line-editing/lib_line_editing/toolz_termcaps.c similarity index 92% rename from 42sh/src/line-editing/toolz_termcaps.c rename to 42sh/src/line-editing/lib_line_editing/toolz_termcaps.c index ba933617..637b5aef 100644 --- a/42sh/src/line-editing/toolz_termcaps.c +++ b/42sh/src/line-editing/lib_line_editing/toolz_termcaps.c @@ -6,12 +6,18 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/08 12:35:11 by gwojda #+# #+# */ -/* Updated: 2017/02/04 16:26:55 by gwojda ### ########.fr */ +/* Updated: 2017/02/14 11:13:10 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" +int ft_put(int nb) +{ + write(1, &nb, 1); + return (1); +} + int ft_get_ind_prev(char *str, size_t pos) { while (pos && str[pos] != '\n') diff --git a/42sh/src/line-editing/get_touch_toolz_2.c b/42sh/src/line-editing/move_left_and_right.c similarity index 66% rename from 42sh/src/line-editing/get_touch_toolz_2.c rename to 42sh/src/line-editing/move_left_and_right.c index dc05a282..b58bc789 100644 --- a/42sh/src/line-editing/get_touch_toolz_2.c +++ b/42sh/src/line-editing/move_left_and_right.c @@ -1,61 +1,17 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* get_touch_toolz_2.c :+: :+: :+: */ +/* move_left_and_right.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:43:58 by gwojda #+# #+# */ -/* Updated: 2017/02/05 17:07:43 by gwojda ### ########.fr */ +/* Updated: 2017/02/14 11:15:38 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -int ft_put(int nb) -{ - write(1, &nb, 1); - return (1); -} - -void ft_end(void) -{ - if (!STR) - return ; - 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); -} - -void ft_home(void) -{ - if (!STR) - return ; - 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(void) { size_t tmp; diff --git a/42sh/src/line-editing/get_touch_toolz.c b/42sh/src/line-editing/move_to_word.c similarity index 93% rename from 42sh/src/line-editing/get_touch_toolz.c rename to 42sh/src/line-editing/move_to_word.c index 0f6e0ab6..703cc03d 100644 --- a/42sh/src/line-editing/get_touch_toolz.c +++ b/42sh/src/line-editing/move_to_word.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* get_touch_toolz.c :+: :+: :+: */ +/* move_to_word.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2016/12/19 16:42:54 by gwojda #+# #+# */ -/* Updated: 2017/02/05 16:57:51 by gwojda ### ########.fr */ +/* Created: 2017/02/14 11:12:09 by gwojda #+# #+# */ +/* Updated: 2017/02/14 11:12:19 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/move_to_line.c b/42sh/src/line-editing/move_up_and_down.c similarity index 93% rename from 42sh/src/line-editing/move_to_line.c rename to 42sh/src/line-editing/move_up_and_down.c index 0ce1e938..26eaa8d8 100644 --- a/42sh/src/line-editing/move_to_line.c +++ b/42sh/src/line-editing/move_up_and_down.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* move_to_line.c :+: :+: :+: */ +/* move_up_and_down.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:21:40 by gwojda #+# #+# */ -/* Updated: 2017/02/05 17:01:51 by gwojda ### ########.fr */ +/* Updated: 2017/02/14 11:18:54 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/reader.c b/42sh/src/line-editing/queue.c similarity index 94% rename from 42sh/src/line-editing/reader.c rename to 42sh/src/line-editing/queue.c index 6d58ce23..dded6bd6 100644 --- a/42sh/src/line-editing/reader.c +++ b/42sh/src/line-editing/queue.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* reader.c :+: :+: :+: */ +/* queue.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:52:57 by gwojda #+# #+# */ -/* Updated: 2017/02/09 16:59:46 by jhalford ### ########.fr */ +/* Updated: 2017/02/14 11:18:22 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index bce462e1..a37b90fa 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/09 17:03:16 by jhalford ### ########.fr */ +/* Updated: 2017/02/14 15:17:33 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -67,9 +67,15 @@ void ft_init_termios(void) void readline_init(char *prompt) { + static int beg = 0; + + if (!beg) + { + ft_init_line(); + ft_init_history(); + beg = 1; + } ft_save_termios(1); - ft_init_line(); - ft_init_history(); ft_init_termios(); if (STR) ft_strdel(&STR); @@ -85,6 +91,8 @@ char *readline(char *prompt) readline_init(prompt); input = ft_read_stdin(); ft_putchar('\n'); + if (!prompt) + input = ft_history_parsing(); if (tcsetattr(0, TCSANOW, ft_save_termios(0)) == -1) return (NULL); return (input); diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 7416749f..907ce438 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/10 00:36:05 by jhalford ### ########.fr */ +/* Updated: 2017/02/14 15:37:13 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -69,12 +69,14 @@ int interactive_shell() return (1); if (!token) return (0); + ft_add_str_in_history(lexer.str); token_print(token); if (ft_parse(&ast, &token)) return (1); btree_print(STDBUG, ast, &ft_putast); if (ft_exec(&ast)) return (1); + ft_strdel(&lexer.str); return (0); } diff --git a/42sh/test b/42sh/test new file mode 100644 index 00000000..4e559b24 --- /dev/null +++ b/42sh/test @@ -0,0 +1,62 @@ + shell_init.c 28 interactive shell settings + main.c 90 start of shell pid=44206 pgrp=44206 job_control is ON + lexer_end.c 7 check + main.c 65 [history] stack=[0] state=[4] + token_print.c 29 13:[history] + token_print.c 29 13:[history] + lexer_end.c 7 check + main.c 65 [history] stack=[0] state=[4] + token_print.c 29 13:[history] + token_print.c 29 13:[history] + lexer_end.c 7 check + main.c 65 [aaaaaaa] stack=[0] state=[4] + token_print.c 29 13:[aaaaaaa] + token_print.c 29 13:[aaaaaaa] + lexer_end.c 7 check + main.c 65 [ssssss] stack=[0] state=[4] + token_print.c 29 13:[ssssss] + token_print.c 29 13:[ssssss] + lexer_end.c 7 check + main.c 65 [ddddddddd] stack=[0] state=[4] + token_print.c 29 13:[ddddddddd] + token_print.c 29 13:[ddddddddd] + lexer_end.c 7 check + main.c 65 [ffffffffffffff] stack=[0] state=[4] + token_print.c 29 13:[ffffffffffffff] + token_print.c 29 13:[ffffffffffffff] + lexer_end.c 7 check + main.c 65 [ffffffffffffff] stack=[0] state=[4] + token_print.c 29 13:[ffffffffffffff] + token_print.c 29 13:[ffffffffffffff] + lexer_end.c 7 check + main.c 65 [history] stack=[0] state=[4] + token_print.c 29 13:[history] + token_print.c 29 13:[history] + lexer_end.c 7 check + main.c 65 [history] stack=[0] state=[4] + token_print.c 29 13:[history] + token_print.c 29 13:[history] + lexer_end.c 7 check + main.c 65 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + token_print.c 29 13:[ls] + job_wait.c 20 gonna wait [1] + lexer_end.c 7 check + main.c 65 [ls -la] stack=[0] state=[4] + token_print.c 29 13:[ls] + token_print.c 29 13:[-la] + token_print.c 29 13:[ls] + token_print.c 29 13:[-la] + job_wait.c 20 gonna wait [1] + lexer_end.c 7 check + main.c 65 [ls -la] stack=[0] state=[4] + token_print.c 29 13:[ls] + token_print.c 29 13:[-la] + token_print.c 29 13:[ls] + token_print.c 29 13:[-la] + job_wait.c 20 gonna wait [1] + lexer_end.c 7 check + main.c 65 [history] stack=[0] state=[4] + token_print.c 29 13:[history] + token_print.c 29 13:[history] + shell_exit.c 17 shell_exit() From a190bbbbe899e0694c54b6e05fe07b3d8220e82f Mon Sep 17 00:00:00 2001 From: gwojda Date: Tue, 14 Feb 2017 15:45:22 +0100 Subject: [PATCH 60/98] recollage de l'historique + control R + point d'exclamation. quelques fixes pour le prompt --- 42sh/objs/builtin/bt_read_get.d | 8 -------- 42sh/objs/builtin/bt_read_get.o | Bin 4032 -> 0 bytes 42sh/objs/builtin/bt_read_parse.d | 8 -------- 42sh/objs/builtin/bt_read_parse.o | Bin 5484 -> 0 bytes 42sh/objs/builtin/bt_read_term.d | 8 -------- 42sh/objs/builtin/bt_read_term.o | Bin 5092 -> 0 bytes 42sh/objs/builtin/builtin_cd.d | 8 -------- 42sh/objs/builtin/builtin_cd.o | Bin 5004 -> 0 bytes 42sh/objs/builtin/builtin_echo.d | 8 -------- 42sh/objs/builtin/builtin_echo.o | Bin 2684 -> 0 bytes 42sh/objs/builtin/builtin_env.d | 8 -------- 42sh/objs/builtin/builtin_env.o | Bin 2356 -> 0 bytes 42sh/objs/builtin/builtin_exit.d | 8 -------- 42sh/objs/builtin/builtin_exit.o | Bin 4564 -> 0 bytes 42sh/objs/builtin/builtin_history.d | 8 -------- 42sh/objs/builtin/builtin_history.o | Bin 3532 -> 0 bytes 42sh/objs/builtin/builtin_read.d | 8 -------- 42sh/objs/builtin/builtin_read.o | Bin 6972 -> 0 bytes 42sh/objs/builtin/builtin_setenv.d | 8 -------- 42sh/objs/builtin/builtin_setenv.o | Bin 3304 -> 0 bytes 42sh/objs/builtin/builtin_unsetenv.d | 8 -------- 42sh/objs/builtin/builtin_unsetenv.o | Bin 2816 -> 0 bytes 42sh/objs/builtin/is_builtin.d | 8 -------- 42sh/objs/builtin/is_builtin.o | Bin 5024 -> 0 bytes 42sh/objs/completion/c_binary.d | 8 -------- 42sh/objs/completion/c_binary.o | Bin 6820 -> 0 bytes 42sh/objs/completion/c_clear.d | 8 -------- 42sh/objs/completion/c_clear.o | Bin 7380 -> 0 bytes 42sh/objs/completion/c_files.d | 8 -------- 42sh/objs/completion/c_files.o | Bin 7588 -> 0 bytes 42sh/objs/completion/c_init.d | 8 -------- 42sh/objs/completion/c_init.o | Bin 8420 -> 0 bytes 42sh/objs/completion/c_matching.d | 8 -------- 42sh/objs/completion/c_matching.o | Bin 6368 -> 0 bytes 42sh/objs/completion/c_output.d | 8 -------- 42sh/objs/completion/c_output.o | Bin 4480 -> 0 bytes 42sh/objs/completion/c_parser.d | 8 -------- 42sh/objs/completion/c_parser.o | Bin 6400 -> 0 bytes 42sh/objs/completion/c_pathsolver.d | 8 -------- 42sh/objs/completion/c_pathsolver.o | Bin 8912 -> 0 bytes 42sh/objs/completion/c_printer.d | 8 -------- 42sh/objs/completion/c_printer.o | Bin 5144 -> 0 bytes 42sh/objs/completion/c_sizing.d | 8 -------- 42sh/objs/completion/c_sizing.o | Bin 4088 -> 0 bytes 42sh/objs/completion/c_terminal.d | 8 -------- 42sh/objs/completion/c_terminal.o | Bin 4092 -> 0 bytes 42sh/objs/completion/completion.d | 8 -------- 42sh/objs/completion/completion.o | Bin 8396 -> 0 bytes 42sh/objs/exec/ast_free.d | 8 -------- 42sh/objs/exec/ast_free.o | Bin 3976 -> 0 bytes 42sh/objs/exec/bad_fd.d | 8 -------- 42sh/objs/exec/bad_fd.o | Bin 2432 -> 0 bytes 42sh/objs/exec/exec_ampersand.d | 8 -------- 42sh/objs/exec/exec_ampersand.o | Bin 3148 -> 0 bytes 42sh/objs/exec/exec_and_if.d | 8 -------- 42sh/objs/exec/exec_and_if.o | Bin 7796 -> 0 bytes 42sh/objs/exec/exec_command.d | 8 -------- 42sh/objs/exec/exec_command.o | Bin 6984 -> 0 bytes 42sh/objs/exec/exec_or_if.d | 8 -------- 42sh/objs/exec/exec_or_if.o | Bin 7792 -> 0 bytes 42sh/objs/exec/exec_pipe.d | 8 -------- 42sh/objs/exec/exec_pipe.o | Bin 7424 -> 0 bytes 42sh/objs/exec/exec_redir.d | 8 -------- 42sh/objs/exec/exec_redir.o | Bin 4988 -> 0 bytes 42sh/objs/exec/exec_semi.d | 8 -------- 42sh/objs/exec/exec_semi.o | Bin 2932 -> 0 bytes 42sh/objs/exec/fd_is_valid.d | 8 -------- 42sh/objs/exec/fd_is_valid.o | Bin 2356 -> 0 bytes 42sh/objs/exec/ft_exec.d | 8 -------- 42sh/objs/exec/ft_exec.o | Bin 4844 -> 0 bytes 42sh/objs/exec/ft_findexec.d | 8 -------- 42sh/objs/exec/ft_findexec.o | Bin 4748 -> 0 bytes 42sh/objs/exec/launch_process.d | 8 -------- 42sh/objs/exec/launch_process.o | Bin 6120 -> 0 bytes 42sh/objs/exec/process_redirect.d | 8 -------- 42sh/objs/exec/process_redirect.o | Bin 5268 -> 0 bytes 42sh/objs/exec/process_reset.d | 8 -------- 42sh/objs/exec/process_reset.o | Bin 3648 -> 0 bytes 42sh/objs/exec/process_resetfds.d | 8 -------- 42sh/objs/exec/process_resetfds.o | Bin 4676 -> 0 bytes 42sh/objs/exec/process_setexec.d | 8 -------- 42sh/objs/exec/process_setexec.o | Bin 4544 -> 0 bytes 42sh/objs/exec/process_setgroup.d | 8 -------- 42sh/objs/exec/process_setgroup.o | Bin 6556 -> 0 bytes 42sh/objs/exec/process_setsig.d | 8 -------- 42sh/objs/exec/process_setsig.o | Bin 2392 -> 0 bytes 42sh/objs/exec/redirect_dgreat.d | 8 -------- 42sh/objs/exec/redirect_dgreat.o | Bin 3400 -> 0 bytes 42sh/objs/exec/redirect_great.d | 8 -------- 42sh/objs/exec/redirect_great.o | Bin 3392 -> 0 bytes 42sh/objs/exec/redirect_greatand.d | 8 -------- 42sh/objs/exec/redirect_greatand.o | Bin 3300 -> 0 bytes 42sh/objs/exec/redirect_less.d | 8 -------- 42sh/objs/exec/redirect_less.o | Bin 3272 -> 0 bytes 42sh/objs/exec/redirect_lessand.d | 8 -------- 42sh/objs/exec/redirect_lessand.o | Bin 3328 -> 0 bytes 42sh/objs/exec/set_exitstatus.d | 8 -------- 42sh/objs/exec/set_exitstatus.o | Bin 3348 -> 0 bytes 42sh/objs/glob/dir_glob.d | 8 -------- 42sh/objs/glob/dir_glob.o | Bin 8252 -> 0 bytes 42sh/objs/glob/expand_brace.d | 8 -------- 42sh/objs/glob/expand_brace.o | Bin 8452 -> 0 bytes 42sh/objs/glob/expand_esc.d | 8 -------- 42sh/objs/glob/expand_esc.o | Bin 4608 -> 0 bytes 42sh/objs/glob/expand_var.d | 8 -------- 42sh/objs/glob/expand_var.o | Bin 5912 -> 0 bytes 42sh/objs/glob/ft_strsplit_esc.d | 8 -------- 42sh/objs/glob/ft_strsplit_esc.o | Bin 5012 -> 0 bytes 42sh/objs/glob/ft_strsplit_spe.d | 8 -------- 42sh/objs/glob/ft_strsplit_spe.o | Bin 4992 -> 0 bytes 42sh/objs/glob/glob.d | 8 -------- 42sh/objs/glob/glob.o | Bin 4752 -> 0 bytes 42sh/objs/glob/is_char_esc.d | 8 -------- 42sh/objs/glob/is_char_esc.o | Bin 4672 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_back.d | 8 -------- 42sh/objs/glob/lib_perso/ft_ld_back.o | Bin 2512 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_clear.d | 8 -------- 42sh/objs/glob/lib_perso/ft_ld_clear.o | Bin 2680 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_del.d | 8 -------- 42sh/objs/glob/lib_perso/ft_ld_del.o | Bin 2880 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_front.d | 8 -------- 42sh/objs/glob/lib_perso/ft_ld_front.o | Bin 2512 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_new.d | 8 -------- 42sh/objs/glob/lib_perso/ft_ld_new.o | Bin 2628 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_order.d | 8 -------- 42sh/objs/glob/lib_perso/ft_ld_order.o | Bin 3136 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_pushback.d | 8 -------- 42sh/objs/glob/lib_perso/ft_ld_pushback.o | Bin 2840 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_pushfront.d | 9 --------- 42sh/objs/glob/lib_perso/ft_ld_pushfront.o | Bin 2876 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_reverse.d | 8 -------- 42sh/objs/glob/lib_perso/ft_ld_reverse.o | Bin 2740 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_size.d | 8 -------- 42sh/objs/glob/lib_perso/ft_ld_size.o | Bin 2840 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_swap.d | 8 -------- 42sh/objs/glob/lib_perso/ft_ld_swap.o | Bin 2788 -> 0 bytes 42sh/objs/glob/lib_perso/ft_ld_to_tab.d | 8 -------- 42sh/objs/glob/lib_perso/ft_ld_to_tab.o | Bin 3004 -> 0 bytes 42sh/objs/glob/lib_perso/ft_memrealloc.d | 8 -------- 42sh/objs/glob/lib_perso/ft_memrealloc.o | Bin 2872 -> 0 bytes 42sh/objs/glob/lib_perso/ft_strjoinf.d | 8 -------- 42sh/objs/glob/lib_perso/ft_strjoinf.o | Bin 2608 -> 0 bytes 42sh/objs/glob/lib_perso/ft_strsubf.d | 8 -------- 42sh/objs/glob/lib_perso/ft_strsubf.o | Bin 2892 -> 0 bytes 42sh/objs/glob/lib_perso/ft_tabdel.d | 8 -------- 42sh/objs/glob/lib_perso/ft_tabdel.o | Bin 2616 -> 0 bytes 42sh/objs/glob/lib_perso/ft_tablen.d | 5 ----- 42sh/objs/glob/lib_perso/ft_tablen.o | Bin 2448 -> 0 bytes 42sh/objs/glob/match_pattern.d | 8 -------- 42sh/objs/glob/match_pattern.o | Bin 7088 -> 0 bytes 42sh/objs/job-control/builtin_bg.d | 8 -------- 42sh/objs/job-control/builtin_bg.o | Bin 4880 -> 0 bytes 42sh/objs/job-control/builtin_fg.d | 8 -------- 42sh/objs/job-control/builtin_fg.o | Bin 4880 -> 0 bytes 42sh/objs/job-control/builtin_jobs.d | 8 -------- 42sh/objs/job-control/builtin_jobs.o | Bin 6632 -> 0 bytes 42sh/objs/job-control/do_job_notification.d | 9 --------- 42sh/objs/job-control/do_job_notification.o | Bin 4656 -> 0 bytes 42sh/objs/job-control/job_addprocess.d | 8 -------- 42sh/objs/job-control/job_addprocess.o | Bin 5116 -> 0 bytes 42sh/objs/job-control/job_cmp_id.d | 8 -------- 42sh/objs/job-control/job_cmp_id.o | Bin 3784 -> 0 bytes 42sh/objs/job-control/job_format.d | 8 -------- 42sh/objs/job-control/job_format.o | Bin 4004 -> 0 bytes 42sh/objs/job-control/job_format_head.d | 8 -------- 42sh/objs/job-control/job_format_head.o | Bin 4372 -> 0 bytes 42sh/objs/job-control/job_free.d | 8 -------- 42sh/objs/job-control/job_free.o | Bin 3944 -> 0 bytes 42sh/objs/job-control/job_getprocess.d | 8 -------- 42sh/objs/job-control/job_getprocess.o | Bin 4380 -> 0 bytes 42sh/objs/job-control/job_getrank.d | 8 -------- 42sh/objs/job-control/job_getrank.o | Bin 4412 -> 0 bytes 42sh/objs/job-control/job_is_completed.d | 8 -------- 42sh/objs/job-control/job_is_completed.o | Bin 4868 -> 0 bytes 42sh/objs/job-control/job_is_stopped.d | 8 -------- 42sh/objs/job-control/job_is_stopped.o | Bin 4868 -> 0 bytes 42sh/objs/job-control/job_kill_all.d | 8 -------- 42sh/objs/job-control/job_kill_all.o | Bin 4204 -> 0 bytes 42sh/objs/job-control/job_notify_change.d | 8 -------- 42sh/objs/job-control/job_notify_change.o | Bin 4268 -> 0 bytes 42sh/objs/job-control/job_notify_new.d | 8 -------- 42sh/objs/job-control/job_notify_new.o | Bin 4636 -> 0 bytes 42sh/objs/job-control/job_remove.d | 8 -------- 42sh/objs/job-control/job_remove.o | Bin 5084 -> 0 bytes 42sh/objs/job-control/job_run.d | 8 -------- 42sh/objs/job-control/job_run.o | Bin 4044 -> 0 bytes 42sh/objs/job-control/job_update_id.d | 8 -------- 42sh/objs/job-control/job_update_id.o | Bin 3980 -> 0 bytes 42sh/objs/job-control/job_update_status.d | 8 -------- 42sh/objs/job-control/job_update_status.o | Bin 2748 -> 0 bytes 42sh/objs/job-control/job_wait.d | 8 -------- 42sh/objs/job-control/job_wait.o | Bin 3328 -> 0 bytes 42sh/objs/job-control/mark_job_as_running.d | 9 --------- 42sh/objs/job-control/mark_job_as_running.o | Bin 4500 -> 0 bytes 42sh/objs/job-control/process_cmp_pid.d | 8 -------- 42sh/objs/job-control/process_cmp_pid.o | Bin 3588 -> 0 bytes 42sh/objs/job-control/process_format.d | 8 -------- 42sh/objs/job-control/process_format.o | Bin 6368 -> 0 bytes 42sh/objs/job-control/process_free.d | 8 -------- 42sh/objs/job-control/process_free.o | Bin 3860 -> 0 bytes 42sh/objs/job-control/process_mark_status.d | 9 --------- 42sh/objs/job-control/process_mark_status.o | Bin 4296 -> 0 bytes 42sh/objs/job-control/put_job_in_background.d | 9 --------- 42sh/objs/job-control/put_job_in_background.o | Bin 4232 -> 0 bytes 42sh/objs/job-control/put_job_in_foreground.d | 9 --------- 42sh/objs/job-control/put_job_in_foreground.o | Bin 4980 -> 0 bytes 42sh/objs/job-control/sigchld_handler.d | 8 -------- 42sh/objs/job-control/sigchld_handler.o | Bin 6144 -> 0 bytes 42sh/objs/job-control/sigint_handler.d | 8 -------- 42sh/objs/job-control/sigint_handler.o | Bin 2608 -> 0 bytes 42sh/objs/job-control/sigtstp_handler.d | 8 -------- 42sh/objs/job-control/sigtstp_handler.o | Bin 4308 -> 0 bytes 42sh/objs/job-control/sigttin_handler.d | 8 -------- 42sh/objs/job-control/sigttin_handler.o | Bin 2664 -> 0 bytes 42sh/objs/job-control/sigttou_handler.d | 8 -------- 42sh/objs/job-control/sigttou_handler.o | Bin 2680 -> 0 bytes 42sh/objs/lexer/command_getoutput.d | 8 -------- 42sh/objs/lexer/command_getoutput.o | Bin 6796 -> 0 bytes 42sh/objs/lexer/expand_bquotes.d | 8 -------- 42sh/objs/lexer/expand_bquotes.o | Bin 6440 -> 0 bytes 42sh/objs/lexer/get_state_global.d | 8 -------- 42sh/objs/lexer/get_state_global.o | Bin 3932 -> 0 bytes 42sh/objs/lexer/get_state_redir.d | 8 -------- 42sh/objs/lexer/get_state_redir.o | Bin 3508 -> 0 bytes 42sh/objs/lexer/lexer_backslash.d | 8 -------- 42sh/objs/lexer/lexer_backslash.o | Bin 4148 -> 0 bytes 42sh/objs/lexer/lexer_bquote.d | 8 -------- 42sh/objs/lexer/lexer_bquote.o | Bin 4776 -> 0 bytes 42sh/objs/lexer/lexer_comment.d | 8 -------- 42sh/objs/lexer/lexer_comment.o | Bin 3952 -> 0 bytes 42sh/objs/lexer/lexer_default.d | 8 -------- 42sh/objs/lexer/lexer_default.o | Bin 4260 -> 0 bytes 42sh/objs/lexer/lexer_delim.d | 8 -------- 42sh/objs/lexer/lexer_delim.o | Bin 4272 -> 0 bytes 42sh/objs/lexer/lexer_dquote.d | 8 -------- 42sh/objs/lexer/lexer_dquote.o | Bin 4716 -> 0 bytes 42sh/objs/lexer/lexer_end.d | 8 -------- 42sh/objs/lexer/lexer_end.o | Bin 4348 -> 0 bytes 42sh/objs/lexer/lexer_great.d | 8 -------- 42sh/objs/lexer/lexer_great.o | Bin 4448 -> 0 bytes 42sh/objs/lexer/lexer_greatand.d | 8 -------- 42sh/objs/lexer/lexer_greatand.o | Bin 4312 -> 0 bytes 42sh/objs/lexer/lexer_less.d | 8 -------- 42sh/objs/lexer/lexer_less.o | Bin 4448 -> 0 bytes 42sh/objs/lexer/lexer_lessand.d | 8 -------- 42sh/objs/lexer/lexer_lessand.o | Bin 4308 -> 0 bytes 42sh/objs/lexer/lexer_lex.d | 8 -------- 42sh/objs/lexer/lexer_lex.o | Bin 5456 -> 0 bytes 42sh/objs/lexer/lexer_newline.d | 8 -------- 42sh/objs/lexer/lexer_newline.o | Bin 4156 -> 0 bytes 42sh/objs/lexer/lexer_number.d | 8 -------- 42sh/objs/lexer/lexer_number.o | Bin 4384 -> 0 bytes 42sh/objs/lexer/lexer_paren.d | 8 -------- 42sh/objs/lexer/lexer_paren.o | Bin 4452 -> 0 bytes 42sh/objs/lexer/lexer_quote.d | 8 -------- 42sh/objs/lexer/lexer_quote.o | Bin 4324 -> 0 bytes 42sh/objs/lexer/lexer_sep.d | 8 -------- 42sh/objs/lexer/lexer_sep.o | Bin 4536 -> 0 bytes 42sh/objs/lexer/lexer_word.d | 8 -------- 42sh/objs/lexer/lexer_word.o | Bin 4252 -> 0 bytes 42sh/objs/lexer/reduce_parens.d | 8 -------- 42sh/objs/lexer/reduce_parens.o | Bin 4108 -> 0 bytes 42sh/objs/lexer/stack_to_prompt.d | 8 -------- 42sh/objs/lexer/stack_to_prompt.o | Bin 3752 -> 0 bytes 42sh/objs/lexer/token_append.d | 8 -------- 42sh/objs/lexer/token_append.o | Bin 5484 -> 0 bytes 42sh/objs/lexer/token_cmp_type.d | 8 -------- 42sh/objs/lexer/token_cmp_type.o | Bin 2792 -> 0 bytes 42sh/objs/lexer/token_free.d | 8 -------- 42sh/objs/lexer/token_free.o | Bin 3208 -> 0 bytes 42sh/objs/lexer/token_init.d | 8 -------- 42sh/objs/lexer/token_init.o | Bin 3000 -> 0 bytes 42sh/objs/lexer/token_print.d | 8 -------- 42sh/objs/lexer/token_print.o | Bin 3692 -> 0 bytes 42sh/objs/line-editing/completion.d | 8 -------- 42sh/objs/line-editing/completion.o | Bin 3244 -> 0 bytes 42sh/objs/line-editing/control_c_and_d.d | 8 -------- 42sh/objs/line-editing/control_c_and_d.o | Bin 3744 -> 0 bytes 42sh/objs/line-editing/copy_cut_paste.d | 8 -------- 42sh/objs/line-editing/copy_cut_paste.o | Bin 5456 -> 0 bytes 42sh/objs/line-editing/ft_prompt.d | 8 -------- 42sh/objs/line-editing/ft_prompt.o | Bin 6184 -> 0 bytes 42sh/objs/line-editing/get_key.d | 8 -------- 42sh/objs/line-editing/get_key.o | Bin 5300 -> 0 bytes 42sh/objs/line-editing/heredoc.d | 8 -------- 42sh/objs/line-editing/heredoc.o | Bin 5892 -> 0 bytes .../line-editing/history/add_str_in_history.d | 9 --------- .../line-editing/history/add_str_in_history.o | Bin 3440 -> 0 bytes 42sh/objs/line-editing/history/history.d | 8 -------- 42sh/objs/line-editing/history/history.o | Bin 4780 -> 0 bytes .../objs/line-editing/history/history_parsing.d | 9 --------- .../objs/line-editing/history/history_parsing.o | Bin 6056 -> 0 bytes .../history/history_parsing_toolz.d | 9 --------- .../history/history_parsing_toolz.o | Bin 5576 -> 0 bytes .../history/history_parsing_toolz_2.d | 9 --------- .../history/history_parsing_toolz_2.o | Bin 4416 -> 0 bytes 42sh/objs/line-editing/history/list_toolz.d | 9 --------- 42sh/objs/line-editing/history/list_toolz.o | Bin 3712 -> 0 bytes .../line-editing/history/surch_in_history.d | 9 --------- .../line-editing/history/surch_in_history.o | Bin 6104 -> 0 bytes 42sh/objs/line-editing/home_end.d | 8 -------- 42sh/objs/line-editing/home_end.o | Bin 3988 -> 0 bytes .../line-editing/lib_line_editing/tool_line.d | 9 --------- .../line-editing/lib_line_editing/tool_line.o | Bin 4900 -> 0 bytes .../line-editing/lib_line_editing/tool_line_2.d | 9 --------- .../line-editing/lib_line_editing/tool_line_2.o | Bin 6156 -> 0 bytes 42sh/objs/line-editing/lib_line_editing/toolz.d | 9 --------- 42sh/objs/line-editing/lib_line_editing/toolz.o | Bin 4192 -> 0 bytes .../objs/line-editing/lib_line_editing/toolz2.d | 9 --------- .../objs/line-editing/lib_line_editing/toolz2.o | Bin 4868 -> 0 bytes .../lib_line_editing/toolz_parseur.d | 9 --------- .../lib_line_editing/toolz_parseur.o | Bin 3728 -> 0 bytes .../lib_line_editing/toolz_termcaps.d | 9 --------- .../lib_line_editing/toolz_termcaps.o | Bin 4604 -> 0 bytes 42sh/objs/line-editing/move_left_and_right.d | 9 --------- 42sh/objs/line-editing/move_left_and_right.o | Bin 4680 -> 0 bytes 42sh/objs/line-editing/move_to_word.d | 8 -------- 42sh/objs/line-editing/move_to_word.o | Bin 8032 -> 0 bytes 42sh/objs/line-editing/move_up_and_down.d | 8 -------- 42sh/objs/line-editing/move_up_and_down.o | Bin 5764 -> 0 bytes 42sh/objs/line-editing/print_and_del.d | 8 -------- 42sh/objs/line-editing/print_and_del.o | Bin 6696 -> 0 bytes 42sh/objs/line-editing/queue.d | 8 -------- 42sh/objs/line-editing/queue.o | Bin 5588 -> 0 bytes 42sh/objs/line-editing/readline.d | 8 -------- 42sh/objs/line-editing/readline.o | Bin 6488 -> 0 bytes 42sh/objs/main/data_exit.d | 8 -------- 42sh/objs/main/data_exit.o | Bin 6132 -> 0 bytes 42sh/objs/main/data_init.d | 8 -------- 42sh/objs/main/data_init.o | Bin 7048 -> 0 bytes 42sh/objs/main/data_singleton.d | 8 -------- 42sh/objs/main/data_singleton.o | Bin 6304 -> 0 bytes 42sh/objs/main/ft_cleanup.d | 8 -------- 42sh/objs/main/ft_cleanup.o | Bin 3592 -> 0 bytes 42sh/objs/main/ft_putast.d | 8 -------- 42sh/objs/main/ft_putast.o | Bin 4172 -> 0 bytes 42sh/objs/main/ft_putast2.d | 8 -------- 42sh/objs/main/ft_putast2.o | Bin 4652 -> 0 bytes 42sh/objs/main/lib_expansion.d | 8 -------- 42sh/objs/main/lib_expansion.o | Bin 2608 -> 0 bytes 42sh/objs/main/main.d | 8 -------- 42sh/objs/main/main.o | Bin 10032 -> 0 bytes 42sh/objs/main/remove_trailing_esc_nl.d | 8 -------- 42sh/objs/main/remove_trailing_esc_nl.o | Bin 2516 -> 0 bytes 42sh/objs/main/shell_exit.d | 8 -------- 42sh/objs/main/shell_exit.o | Bin 2676 -> 0 bytes 42sh/objs/main/shell_get_avdata.d | 8 -------- 42sh/objs/main/shell_get_avdata.o | Bin 6428 -> 0 bytes 42sh/objs/main/shell_get_opts.d | 8 -------- 42sh/objs/main/shell_get_opts.o | Bin 3768 -> 0 bytes 42sh/objs/main/shell_init.d | 8 -------- 42sh/objs/main/shell_init.o | Bin 7740 -> 0 bytes 42sh/objs/main/sig_handler.d | 8 -------- 42sh/objs/main/sig_handler.o | Bin 2908 -> 0 bytes 42sh/objs/parser/ft_parse.d | 8 -------- 42sh/objs/parser/ft_parse.o | Bin 5200 -> 0 bytes 42sh/objs/parser/parse_dgreat.d | 8 -------- 42sh/objs/parser/parse_dgreat.o | Bin 4964 -> 0 bytes 42sh/objs/parser/parse_dless.d | 8 -------- 42sh/objs/parser/parse_dless.o | Bin 4880 -> 0 bytes 42sh/objs/parser/parse_great.d | 8 -------- 42sh/objs/parser/parse_great.o | Bin 5024 -> 0 bytes 42sh/objs/parser/parse_greatand.d | 8 -------- 42sh/objs/parser/parse_greatand.o | Bin 4976 -> 0 bytes 42sh/objs/parser/parse_less.d | 8 -------- 42sh/objs/parser/parse_less.o | Bin 5012 -> 0 bytes 42sh/objs/parser/parse_lessand.d | 8 -------- 42sh/objs/parser/parse_lessand.o | Bin 4964 -> 0 bytes 42sh/objs/parser/parse_redir.d | 8 -------- 42sh/objs/parser/parse_redir.o | Bin 4096 -> 0 bytes 42sh/objs/parser/parse_separator.d | 8 -------- 42sh/objs/parser/parse_separator.o | Bin 4640 -> 0 bytes 42sh/objs/parser/parse_subshell.d | 8 -------- 42sh/objs/parser/parse_subshell.o | Bin 5224 -> 0 bytes 42sh/objs/parser/parse_word.d | 8 -------- 42sh/objs/parser/parse_word.o | Bin 4984 -> 0 bytes 376 files changed, 1520 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_history.d delete mode 100644 42sh/objs/builtin/builtin_history.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/completion/c_binary.d delete mode 100644 42sh/objs/completion/c_binary.o delete mode 100644 42sh/objs/completion/c_clear.d delete mode 100644 42sh/objs/completion/c_clear.o delete mode 100644 42sh/objs/completion/c_files.d delete mode 100644 42sh/objs/completion/c_files.o delete mode 100644 42sh/objs/completion/c_init.d delete mode 100644 42sh/objs/completion/c_init.o delete mode 100644 42sh/objs/completion/c_matching.d delete mode 100644 42sh/objs/completion/c_matching.o delete mode 100644 42sh/objs/completion/c_output.d delete mode 100644 42sh/objs/completion/c_output.o delete mode 100644 42sh/objs/completion/c_parser.d delete mode 100644 42sh/objs/completion/c_parser.o delete mode 100644 42sh/objs/completion/c_pathsolver.d delete mode 100644 42sh/objs/completion/c_pathsolver.o delete mode 100644 42sh/objs/completion/c_printer.d delete mode 100644 42sh/objs/completion/c_printer.o delete mode 100644 42sh/objs/completion/c_sizing.d delete mode 100644 42sh/objs/completion/c_sizing.o delete mode 100644 42sh/objs/completion/c_terminal.d delete mode 100644 42sh/objs/completion/c_terminal.o delete mode 100644 42sh/objs/completion/completion.d delete mode 100644 42sh/objs/completion/completion.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/bad_fd.d delete mode 100644 42sh/objs/exec/bad_fd.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_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_redir.d delete mode 100644 42sh/objs/exec/exec_redir.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/fd_is_valid.d delete mode 100644 42sh/objs/exec/fd_is_valid.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_resetfds.d delete mode 100644 42sh/objs/exec/process_resetfds.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/redirect_dgreat.d delete mode 100644 42sh/objs/exec/redirect_dgreat.o delete mode 100644 42sh/objs/exec/redirect_great.d delete mode 100644 42sh/objs/exec/redirect_great.o delete mode 100644 42sh/objs/exec/redirect_greatand.d delete mode 100644 42sh/objs/exec/redirect_greatand.o delete mode 100644 42sh/objs/exec/redirect_less.d delete mode 100644 42sh/objs/exec/redirect_less.o delete mode 100644 42sh/objs/exec/redirect_lessand.d delete mode 100644 42sh/objs/exec/redirect_lessand.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/expand_var.d delete mode 100644 42sh/objs/glob/expand_var.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_memrealloc.d delete mode 100644 42sh/objs/glob/lib_perso/ft_memrealloc.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_strsubf.d delete mode 100644 42sh/objs/glob/lib_perso/ft_strsubf.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/expand_bquotes.d delete mode 100644 42sh/objs/lexer/expand_bquotes.o delete mode 100644 42sh/objs/lexer/get_state_global.d delete mode 100644 42sh/objs/lexer/get_state_global.o delete mode 100644 42sh/objs/lexer/get_state_redir.d delete mode 100644 42sh/objs/lexer/get_state_redir.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_bquote.d delete mode 100644 42sh/objs/lexer/lexer_bquote.o delete mode 100644 42sh/objs/lexer/lexer_comment.d delete mode 100644 42sh/objs/lexer/lexer_comment.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_end.d delete mode 100644 42sh/objs/lexer/lexer_end.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_lex.d delete mode 100644 42sh/objs/lexer/lexer_lex.o delete mode 100644 42sh/objs/lexer/lexer_newline.d delete mode 100644 42sh/objs/lexer/lexer_newline.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_paren.d delete mode 100644 42sh/objs/lexer/lexer_paren.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_word.d delete mode 100644 42sh/objs/lexer/lexer_word.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/stack_to_prompt.d delete mode 100644 42sh/objs/lexer/stack_to_prompt.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_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/completion.d delete mode 100644 42sh/objs/line-editing/completion.o delete mode 100644 42sh/objs/line-editing/control_c_and_d.d delete mode 100644 42sh/objs/line-editing/control_c_and_d.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_prompt.d delete mode 100644 42sh/objs/line-editing/ft_prompt.o delete mode 100644 42sh/objs/line-editing/get_key.d delete mode 100644 42sh/objs/line-editing/get_key.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/add_str_in_history.d delete mode 100644 42sh/objs/line-editing/history/add_str_in_history.o delete mode 100644 42sh/objs/line-editing/history/history.d delete mode 100644 42sh/objs/line-editing/history/history.o delete mode 100644 42sh/objs/line-editing/history/history_parsing.d delete mode 100644 42sh/objs/line-editing/history/history_parsing.o delete mode 100644 42sh/objs/line-editing/history/history_parsing_toolz.d delete mode 100644 42sh/objs/line-editing/history/history_parsing_toolz.o delete mode 100644 42sh/objs/line-editing/history/history_parsing_toolz_2.d delete mode 100644 42sh/objs/line-editing/history/history_parsing_toolz_2.o delete mode 100644 42sh/objs/line-editing/history/list_toolz.d delete mode 100644 42sh/objs/line-editing/history/list_toolz.o delete mode 100644 42sh/objs/line-editing/history/surch_in_history.d delete mode 100644 42sh/objs/line-editing/history/surch_in_history.o delete mode 100644 42sh/objs/line-editing/home_end.d delete mode 100644 42sh/objs/line-editing/home_end.o delete mode 100644 42sh/objs/line-editing/lib_line_editing/tool_line.d delete mode 100644 42sh/objs/line-editing/lib_line_editing/tool_line.o delete mode 100644 42sh/objs/line-editing/lib_line_editing/tool_line_2.d delete mode 100644 42sh/objs/line-editing/lib_line_editing/tool_line_2.o delete mode 100644 42sh/objs/line-editing/lib_line_editing/toolz.d delete mode 100644 42sh/objs/line-editing/lib_line_editing/toolz.o delete mode 100644 42sh/objs/line-editing/lib_line_editing/toolz2.d delete mode 100644 42sh/objs/line-editing/lib_line_editing/toolz2.o delete mode 100644 42sh/objs/line-editing/lib_line_editing/toolz_parseur.d delete mode 100644 42sh/objs/line-editing/lib_line_editing/toolz_parseur.o delete mode 100644 42sh/objs/line-editing/lib_line_editing/toolz_termcaps.d delete mode 100644 42sh/objs/line-editing/lib_line_editing/toolz_termcaps.o delete mode 100644 42sh/objs/line-editing/move_left_and_right.d delete mode 100644 42sh/objs/line-editing/move_left_and_right.o delete mode 100644 42sh/objs/line-editing/move_to_word.d delete mode 100644 42sh/objs/line-editing/move_to_word.o delete mode 100644 42sh/objs/line-editing/move_up_and_down.d delete mode 100644 42sh/objs/line-editing/move_up_and_down.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/queue.d delete mode 100644 42sh/objs/line-editing/queue.o delete mode 100644 42sh/objs/line-editing/readline.d delete mode 100644 42sh/objs/line-editing/readline.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/remove_trailing_esc_nl.d delete mode 100644 42sh/objs/main/remove_trailing_esc_nl.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_redir.d delete mode 100644 42sh/objs/parser/parse_redir.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 2639aa9d..00000000 --- a/42sh/objs/builtin/bt_read_get.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/builtin/bt_read_get.o: src/builtin/bt_read_get.c \ - includes/builtin_read.h includes/types.h includes/builtin.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/includes/color.h includes/minishell.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/glob.h includes/completion.h diff --git a/42sh/objs/builtin/bt_read_get.o b/42sh/objs/builtin/bt_read_get.o deleted file mode 100644 index 9d562205864c31509f41e238f3668138d83673dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4032 zcmb7HU2GIp6uvXt*$&-ycS|ilmf9r?v>WZkNdrdx&Yd&u?6jrzBzMj| zXU_TVIrp4(+~t&=ax@XsfY|k$8gz#wD?S3IBHV8+F*<={WRJ_t>l+BV<8OEk3x_4~0Uke+j zm68JO^;+EVR2_4~XW``v38{AD{lYl5&mbjNO;h5<;_*`IAmv{jpN&^xjM?I4^XUS) zxbgP!>VD=oIKB+_uijc?%J@pLd|#?O8L!_}^ILN`&l!XXkgQ+F|z}yLZwQTPKs>a6v>zw6IL9e zEW;6nqFIJ2os0E}Tp`~Vk`HMt*QWIZugXi=_yD!8v24DG{Y{$3AN02P z8PzO(d+NF0MlpTTQOZ)~pvRxg9q%Cw7tNk5#e~vJm$=gG@@=m2ZMJ;vmZ@P~{}U4JsHa^G*Xy?-5u~R>4F`1wQ>DFE6bFIPpgYUn0YJN*1^zvcqyJHxyV4TIElR-tNzMzQ1{*>!>QZgZOY0 zNEL-xT4C`?@9jgnXqxx-L7dKiWCnb@Fv`OO}FmXuu(-Xo{DnY-+-q=dyJtt zK8E-hC32M{{UUUH?C@EHo%~rB$f!-odK+ziOzSDxb~nuCT4upRUJ79@d4JvWwMG6 zH1YeGw^L>~b8XD8Lr?P0%->~xhB;p#-UBS(&%BfQGUoR%Kg#?`<{O!Zn1jjn63o|w z2M~ZwR0)ztSkb|9h~;LM?Y<{hvbXzu8)OF@{;)U-X8#ay>i9Q;Q^mg?oGR;gjgdBu Nm|4hHf#O#M=s&byZg>Cy diff --git a/42sh/objs/builtin/bt_read_parse.d b/42sh/objs/builtin/bt_read_parse.d deleted file mode 100644 index fa35ac5e..00000000 --- a/42sh/objs/builtin/bt_read_parse.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/builtin/bt_read_parse.o: src/builtin/bt_read_parse.c \ - includes/builtin_read.h includes/types.h includes/builtin.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/includes/color.h includes/minishell.h includes/lexer.h \ - includes/parser.h includes/ft_readline.h includes/exec.h \ - includes/job_control.h includes/glob.h includes/completion.h diff --git a/42sh/objs/builtin/bt_read_parse.o b/42sh/objs/builtin/bt_read_parse.o deleted file mode 100644 index 7d3abb83d15b48dacf3bb01e18fdfe0289e62f05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5484 zcmb7I4QyN06~6D;_t~)>+ijW>mbMsDL(3W`Et%GJ$<{z#c})`um8L5l%sBpuU0mCW z?fy_Q72Kj4(=A1tCXGoOjQw>Tnl`k7riFGzq@b~N5`s?3AZQyT(wL&IS~Eb+zH{Gw zN#kVDUFE)W&pqdS_ndRjefK$k{NVj74#pH4!vo!pewyPEKu5bC-5~ydw3D@_U|i~0 zJTMt`zqAX73-JR5$$*5zJM>*U=6Gu~Lyn*k9{KWk9b@%0VP}VlSS=im<_m+V%z&Jz z#-7Qc#;18!T3JP-+ccpyq`#zYsE`t5?L~-#v7IX-7LNMk;epX zTgI5v94_kLU?ejT&o9J#UmBUFjJ@WyMzeHLyuFdAaIxAy3r}vxHQ+^ZxpX|7iR>l! z7R38c>7P}ifA~cIOuTIW9aBD*tkkXf@uWRd|VO#48-k zEgJ7hiD%XGW7mj>Lo6Vx{d-lO2P@u_*1@-;T~N=_>|VrK2p2Q^Q<+#e+|xCu%Gi{| zyI)S82Ohl|3aCH%im1w8JQ+?5Vs}l0>i5B2@_Y?Tyw)YNIAR9kq!bAt!+-6`TY(W18^yxim$4ibJAlSRmsSyr!(xsT~=>Ko) zGs=Iz+bI3xfKeWrFv`X8QGJXsNA=eU%82S?Mx}S$D7Bwqz9U(PM)eCMspuEVXG&+3 za_Adeq>{!(mN(HG-gEqWQN!F#?1M$etOc3?ShEy!sObSnVCttAmzLj z^H;CT%v9|F)dZFp7dbuij?GZc8D;(XNxEj&pDv#<%DvB4*Dj#D%~EUMrFId z2UM@@ZXnuO*}cLj_x%{Ka2LeBx~qKeYA3pXF0(+xI?q(}OGfFX17E)H>@d~i=3~>x z^vk3A6p4)rB?ddxJ7qlZN(16Oyb-DHUR2~8@%u)Kmp^yWceHU)1>|aaaydj5eM%&M zYVt`W-x$@WF-e)7zVB=zkqG&2I6@PQ{K4@E;CM{ocp%Q=lwn?eG< zrgV!q$maA40+G{e%rSr}#R-vHs>vgCbB^jC(W#q^3T=JLC>;nu)Jg2|j^{w;?Zt8^ zzpzv2_5p2sfHtsV4ZEFln_1TXhDw|g)>s54Ncea~{|E^W+;{fSU_3Sy%x?5?CS~8Gw=?>1<{oARc51L}@Ke8SMrWNn~aQ znVCK&bH@@fW`6IaGPz=b#Uh0Wi|k`5wue1H)=XKV1if|K=Jjih-X+RXl${#FHO_!wC^mxGwNjMdaB zHm}=Fi!kP@h3?imVm9J}bk{3e>u$la9xe>oO?Wxs56wyEhjW2owp~4OFP%Q+22usLtAV(HPa!cD+5bbqM!^9#Cl*;kKuirt6U%>P=fkACZPwkK zaCe(@H!0lRM(#50Yj|+GBM2a8D;`e};Egrk0clWMT(l@HsjgR>nClnd_7Jy0ZF0JP z5AGr2Zd055O#2yFO>q`6^J@%kb=n9BcRC)%jGH`FJmi6=krsA*3q$AAc$^2P25Q~} zX;qtCZ-I(6g0$ja!HM;6rWNVtA|Uk^waMe6_dj8&Yp}lSvL#!qHZ{2Dcbm|>Rc%_~ zQei{ks-ISy0xl{6VYg0gTEiR!?+`vQ~68Pdsyo7d4$0(QGRfZg)8wioB-CRqYYZwP(4v$Q{}# zzSJ4wj&|Q(Sdk)BPw+Q6@tI!F+A*`zXC<>>raB>lsErC@(-G{c^pEV z`VRWRL-ZL*_k)r>{RF^Y{VF`je!1j*pd|l~s2x`SJ}Ak@CBG7su)i%rHvy8rx3v(JKmnejDkwP+@$rfU%K^6ud%i+I~ Ug~Xhu_z-5{0dcGfk$%Sh3(R%)-~a#s diff --git a/42sh/objs/builtin/bt_read_term.d b/42sh/objs/builtin/bt_read_term.d deleted file mode 100644 index 2ef06a17..00000000 --- a/42sh/objs/builtin/bt_read_term.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/builtin/bt_read_term.o: src/builtin/bt_read_term.c \ - includes/builtin.h includes/types.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.h diff --git a/42sh/objs/builtin/bt_read_term.o b/42sh/objs/builtin/bt_read_term.o deleted file mode 100644 index f37140e63f47378cd908bf717333c6dcb337e386..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5092 zcmbVQ4{Q_H8Gm>7T`qQFJD3L6mepGl%D>ow1(mhXl8%f6!h~qTU|V%@&W`Qk*v39X zKw$%gRGh3xuobE5CWN$2o3>8MG%7J|bdf+n>84Jarnb^nQH^d?Vp6wig{`RB?|b*o zaZI|>J>`4f`+fiJd;eej+JFB3Q3GR=hoJ&_LDLGV2ngjfAf52Xl&&U6aZT9##qVIm zWJDncGQ+Tvqm}?*hSA@$ZkQ^cH(q>bsF>W(`#UE;H{R>Q{a)i`a>IFYsn72!4L-^qk;PAZ4(?mP zm`HWr{EG2hDv61ykJm?ke1y`wE5CM; z-wBbH_Y?DT;^l{);S*e+-&ql_UBr9t9^>)+3URYO-WzrC&fQ}?>tJEt{@xMsz9$Co zPxlxPo0x~J&+mD$DBS*z21UnbS>61a`4RNfGRnCFnOwp!`Zmp);tUe;28Hkp;?b6Q z4(m^Bow|6*v@u-7>^cth=SxJaUw3}#V5;4MI4;uSQ=C=zZzjhh*7tWx#QTC6zZ2r1 zdlC5w(VYBfT)2tfaU|tp&{^1%q(96Uk3Euj`ZiB>yEHoc2|{Qof+u${?VILXzG&_>6w|Cmnmhv!q<~tY1HlQw{`pcZfJD-GLP~ykNr$>LqFvFh$TBmFYoc>q7eKUo zO?35gRw|mYp>if`Wpc40%P1z}3A`AJBT(aMasESCY4JjBAJ{8lRP&u4Q>ORb+O4z6FyaQGaWCo zQsz*S&O3@-DkPH$#%tIik|U_imeqnxE@M>%$x#5xfJ+l`E6$u=vJ&qs%NMK?L_8aw zH?PPek<4aB7*8ihb%_;PwxdNcnB6S49iYE|K9|*Ka3$ShE zD1-~7jXqD{QU7E9hnu#9pTH*abTdz2OPEA5R=HPUvar~K<46fho`ByEEmpkR?3ya; zVA{~iwuE^w=(Kj|9{2lkb~Q>8x%xf_^&`N3Qu+OlquJCwCwg-bCX5BDfnXA>ei0y4 z{i2_~$Of>n>D0vc=!9WSY!xw-%?{(W`%ZH#A=)jJ(yqUvB?qN_V3Nl~O)a^l(c``q zz4FPi`)IU+Kcp`xX;ix8m(&6p*FjQ~B)2j3J1%Sn)YR{~FaQ`*zwg2z;9~WsfVV(W z2r#1l7R@Dyj`@(=)~SDX;R3*otl>T2QL=83w4>k+TB8TnzE)HVSwj$Piqx8Ld7LA5{KaB^I zPY5q}B&A(mGVZGP?waephI?x*uvNUxKL-o^8r4G}ZzQ-BtjpUL>I7elx$$;jAVZsh zHWONkaSZJQq71zc%WX}eJ!pM}bjvWPp+Q%-9Ag?vyJ&^n_F!l)&{Jf&5(6CC=lZRZ z+m^AwMkv-mvHkc3{1tdq>SnVJb zTB0PPwI)QgN=Zb^RyfjXArUPgVMRNRM6?Tqh;K%SXp;&@TIys)t6!u_OO8ae=7i(_ zn!kpcH3u(V#4$!u=9EE!IvmYidUrS9bnNcZyK6!^w3A7rAt}_btKFyvqoC_ zym*3=qWa!cw<;c0ODR5Wk0Ptr6{c$KN~2F+)v5&Ljt~9BZ(z0GrPb(ocrKrEE z5wxmlr5)_`T@-}7R*Ol-#MLnamsV5Y5J>sVn`5i^l!nlIh-KRABw7

--%bQ`Y$#aLilh zX>hVT3Qm6g0O%vI3O`eFukZNdf-&Q|WjnF7~lX z`<(FCV260>BjAK%f-e>Pvx09FJR&$4w?8I0oudH+a_?S>T?=X!)*tKIA2zN2AX}P3vQ3R`H`H#V&wK8< zI1JjgC!G79_v?Az^PZ1;hg%Q-_9%}r#m4YJx1&#RJiO>=-$2)ie@Z*(HWf3{#^Qm= zs258=pD!NliAx5==X+CYee*GIjan!HG{U1{bqQl@NML9EM6BlX8L@aY6mFM-Ts#YB zuhj2wS)L|Um$S$x5Imk}_W@LBe7=Ua_8j`|lGUip>zb7G^7c=cO<8# zwX%*&0iS~BKYlzKJVo_eo}YzxS^_*PUMSqwO)j~3w`G2Vv?$c=Z{1>gTAo8i_%*$-yYvdxf$^5>2Mm!v1 z0hycMyAscu?>j{j_%X>@U!%JV^Njlv;nSgTz~^gfcx=kpn8Z6Kh5f*zJF2YIq!{Ml z1v`9gQLL`%kb57nd{aJb5;i08B+Ib9JFGF$rSlsK3&h;{4okdAxd9^{)4LA&NztK2}aM}TJ-c^^mAW)1`mBm8`Cpl zo%Kwy)4d<+>BP96Zn-q2jS;Gz=>_}o9F5c3MLp9zt{W{E^~uj|x^i33BrfUc zTSBX+wNX8}z&xn}*iLCT$Yp*U$!?!WPwGRf?;vM=C@}*_L}{7P(+~9IH79}&0|Rjf z_4KDu^jmOqdPeKllM_xv9n_PP>-6+c&*I{uo=!!GWK1$eftYD$>R+9fCZ5zE$WR1r zxrD&OCU&NGG@a^%O0bmld0G&CXjcs-nMsU}GoivXsM_gN2aM6AJh-6g;C$W`g zQSJMBvhEHWY`*I`Ukl6a6Iq(fb9X#f)#O42sZ;9-$k5=_d|%JlCp}jWD9MMc-gDvO z`oYBAA8L0mDV`LiKmQ9nrnDJ6Sw@>lPAF+@MmMIHLISwI&V`Il!UC93HUqZ>xCJ*o zSF4reqXV84U0WILUUFJZYxm}NKGn1-%M_9B&C|inXtQbUtNBU{#gyk`C>_v{{hV7# zE6|I)X6OI@NbVKWC8K?H^txwbgRE!r3olNIsHs`4-8f}cl*`bL-xA66&RKh9#yo>` zto12v0ffyTqK8J3p&cVcG8$%CBV5FZ6<>8jJF0~)3rozxv}QQpGh!Ctadx!@&;>nt z!+Z4l{-%ZlZ#A&9(O{t02-JGR-QHNj= zY&)I^b;d(si~5W}rNOqf#NfNF{dD(Eoh%fNvxq<5!ThIKFnlV)LQI&({n7SdoSk6tu88RjEmKOA@}gDTR#fa* zUsR%$VxOxX_WCN^)n&|9wA<~*matdCtW>FY*@|l2JKb9fUSIVZu1n6DDn;brs9whA zt#rcWzgb|j^Arc`1_>QDR={2+f<_B&HS69uCF6WMP6Z&68jx;20PaGGh+8jcC_y@u?>_2 z%R43`{v7urHRbU4=vgizb9E#l0+owE>PUw`Djy(VbtE9dY!SHX$gy9M6nVJ=PYrScIpsmnbGgH2Qh$%hA zN^wD+a~M{X;`8V;Us4u}i!wfAdy0yGpzbX+*Uz+TfZe)(n|3mfC)#zwuKuBEC-Yfh z_Yq>NY#S^UvR1t+ZGn(nH%fX9a^im@sV-@~ zq?;w(kR$g>9z^)pNlNFa2!O|s1hs?c#9L=G1KtDPYIM70v8*SDCtbF_B8M-@;e$DR zbq*iN;hE3+E{Fx=^eXqY#eI0gi=m}50_LmUXLR6mMwsA#Lq=BwKMnC;BENAGnv=dZ kf2i{@9-OR?3BruvA5`%+M%c#bz;eg-gg*+=<8X}q7s!&m@&Et; diff --git a/42sh/objs/builtin/builtin_echo.d b/42sh/objs/builtin/builtin_echo.d deleted file mode 100644 index 4c805228..00000000 --- a/42sh/objs/builtin/builtin_echo.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/builtin/builtin_echo.o: src/builtin/builtin_echo.c \ - includes/builtin.h includes/types.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.h diff --git a/42sh/objs/builtin/builtin_echo.o b/42sh/objs/builtin/builtin_echo.o deleted file mode 100644 index a871a0d67b8a5c8944873734e0d1628bca8b002b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2684 zcmb7GO>7%Q6n(qWDH5@rsuB^D{6Jl{QIJrRlwQziy;;YOob}3H z=LZNBC8{t1DI9u19JnBHLY(QL2oP5|AaUW)14TswDFO}=Ak2HSvyOL5n((BVH}B1x zZ@xEwyWjlz>pwjJEDBg*iDCJiW0k>z@-P;i>;vR?8i;a7#rQU20+lp%q6pzyYp&P! z?770VxqaJjwN!)fh|71!JdMV6KZdjrX2Y#l>_z1iB8cbXD0)!Qx<>;evE@v1dbjtJwOpvCTz-;Ri96pM9hh4K&b^YLaC z=27t~cBw`~!g!YA_o2co&}O3i;qS)*`PL14(Q4d}#{;Vaa981ZsIm@3`0KZ9n37_c zpO5D+dKRO5UElgkl3XvbeGK?lc&7nSv8hOBrSh|JIIF&%c-2o41 z&+Dzb`sOcry|uBYx0<_pYyO_TJ-@4Oei6s^uD)Hs_86qLX!-SbpP@HdI=Azm!aYLP zw{h6!*BFjkw#T7W_%XHBkDa$OSjn(f;m*&WwA=05l%VvCwp)cCT6_BDSNWH}Jl%jP zx`COQnX4~kR;+rXQnNE-*?cyiIcrw&*%%qiqmey-E<5@-H0oxq*sN6DitTG*ndMs6 zgxq`sN9Pt-YfB48?)2AXI&ugl&Y&nmy! zu^{GPo5%PTDvi)$>(pZWCaL$a;@%wk?37N-{DR3z@oewY^Vv>&gJ?@GsIy)ObdM!h zcr0#t`~SpH`cwu9424cV0}VCDk35}!k7xe+TM09B^R-E|XR%PO#FrL{ZW9V+OD;-M zxgNx%2WKI+7~K)I2ZRz3pB;PU3b3^_OZWA}cQA^kIfdopzX_?`R^tJtlIa_f=lcE6 z_$tOkU=(Y{{z~>^&1eoRtm|k);K1V9mOPGiPDnJxc&s-*!FzA&dYZ?y?|Ee7qh=(56Uh}qh!J|*Nl$naj}RNQA9~WWwVcvtlzv2MR76A@ mSDNm5N;0D!fRk9dOxfC zx+V^3RFqAq-zm6?Oi&@p64jt+A2ES6NkJ4T8^u<`n|uDHGgmMD_4RB6PYAE;wPCoY zbI3|LT`V+bWxY{TVJS~v8JjrUNzphDIr5tMbrJv!-@JoYsoE+W#Cz^f#`)ezAg~Ia zRVdVo3&gjZpT?VHm|pS9&PAc-6w3+Tb9+cZ@g8c-MNw zQ~X@Z4&r?c;N9sFuW`d&vEM;n?HT6xsz*Hh=oDm-UyJc{zfn9V0SWA{U7g218?xyv zmYr!S$4~q7UvhSugE_>bt0BD3yH{`;z$=#IObvI}E0D7LK6t~~quyh<$aw5R44|av zWc7VeDLV==*smgkc@tc;#Qnxs;YaI|qTE=&svtTWQ8#e@Fj{(!Jm4a#Uuf%j`~Bgb z=2Q9hrvq>D?c3k;?dG?9d+PJ`w`24rq{qiEpHD9oYxQ!~NgvMSGP(3_yMmwZ{=+$R zG9w2w2lha{W@ih{a-~srw3S6?A!9>!s*c6k*~RMIw3Qt>ST9N2y&>IZy#!oAnNW5b z;989m*d?n5R&90xFzkXD5IYh>W+;)0Y)%Y_LF~}TU~o{3_J2#>%pgc2uWF>0Qt$WJTcRX z%_;GG?~0us`LLa6D=ug=UP@Ojg@U!qD1Q94a;SY$-93F>0wQ>@P5e{RIrMnu?mddx z>1Ve_(Vs-6UWqR)5`XQ~ErqB_4*icwAHIdyVs=NE1)+3_W+!e=fM}&eD&7}e!Yq2t z7S!}FLRwzdc`%kpJv2_O=ie1vz#Ic|I12GIu^vZ3??4s4qm8TWopCR diff --git a/42sh/objs/builtin/builtin_exit.d b/42sh/objs/builtin/builtin_exit.d deleted file mode 100644 index 9af193a3..00000000 --- a/42sh/objs/builtin/builtin_exit.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/builtin/builtin_exit.o: src/builtin/builtin_exit.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/builtin/builtin_exit.o b/42sh/objs/builtin/builtin_exit.o deleted file mode 100644 index 7d11a7bb10685bb0232ac149e82216f383c5be9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4564 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 Wlo=ds<7t-39X)TE_xd}LvHt@3$pPH} diff --git a/42sh/objs/builtin/builtin_setenv.d b/42sh/objs/builtin/builtin_setenv.d deleted file mode 100644 index ae995e33..00000000 --- a/42sh/objs/builtin/builtin_setenv.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/builtin/builtin_setenv.o: src/builtin/builtin_setenv.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/builtin/builtin_setenv.o b/42sh/objs/builtin/builtin_setenv.o deleted file mode 100644 index 780acb23938204fe85c2e05613c173707fb75d89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3304 zcma)8Uu;uV7(ch|x$WA~b{iNCC?yQUz`6=d7cH^{O76-?7GOAydbw-6wWMor+S@S< zOUMew+F%AzUrmfJz7P`M{0Br5Bu?SM7#?{sGR4FPA5;kS_uYH$=%g*`E?>pc3 zJKuNCxu?7F?;j7mj7e^W4$XshnWKxKL7qZW2tPv3i@DoE+ZddTT3E!Xs*#y89+If) z;l#+{hu9tsQW6m2qg;#tWB4O*ij*y?nkpNmTwz=ooP0J^O=m_c z<0?qa8CBi;YX8A~3tqz_uMdQ!$H52lB1)StUra5_H!t|?1+K4 z6rK6meD*dzo=?;Dd`2y36O`VPdLtsgxSf!FacsP#UW>0dddxgvXMS%8zD^MzUm>5F zpRT2xe5V|IM_0&aoY0r8_fx?)Ch|MILOy)NCZ#h!zqk~3y}vz{FIAjCorYQ|9M2Wf zsyev$;Z`#i6MPY24Eq_Ql<(sHi8FWHmrPb2E8%pl0Oxx!B>4ISUrg``NN-Hm9+O`9 zescwr(OK`T;B$#&bnub<^@#jBF=xJo0n3q+e-iCJ{OMCT*~(ZR8jua4H4804ZRr!y z?6v%OSgHM@RPXjFwdp^VTIG&X8@_!lF-Oi9*&R~K*`AGHS89oyNfbDM z21zl~SiS6n118a`y_ngEnQy2Rm=I^hTq1)RT}ym7|255??fJoSB4Uew$Y-rvOWaaY zi8-Zy00b>cHGYMKPG`xx$y$$Jv7%xkt6iZpFEsmHx$Rcml2W^7k=BXy07$1nx?8Dv zZd^;;hd-O|L03=ARWD1m#N7N$qtOtlEA`4PEBNg6Er6R!O*XNJtS9a()vJAPep}8M znZhL7#ro+fi3|=NIS`r5l*+kcA<`R-MPrdIsXX4luHG0xbm#Wy^UtwzDb+n%$>oh) z!Pcrp6iu=2;WFa8$B!3}rM2#z+sj!srJqpsN;%6!kZ@+Xg28mn$g)&cD=}@7Ar+m` z&lTmAV^W*6DcHf?!LYnG*e12(NL^7F+oe9gJNQ!I<-oJ810B0@qHfMy!Zgr<*L>$9 z$UB)k_(~vviztT}Ie0glirvHpTHl{6{^N=bmK`ZESuwtwSU%8sb>DrQPa9OmQ2oAT(L$o z|KogU%c!j;M+m)l5|g1hesk$%u=0wXdN+`Ye0Z`C_z)UZP5IIu&^rU6y2(W43e*2( z;>9YIExd(@QzMQ=V&^8keUM30VJY0|_07VI7FmZjdyjY;4g1tte=z)xYtJfcCmDMH z9~aw!UXtzwSD}|^4K%6gOJR=Nk59$Sq=mM}6n9AC9=~r7Z>exu{+Wm6{m=&AFv8_H z=khrBehI@2Z<8-zGRfU>`D5;Sjj#EYZ-8IR4EK(3KcZSO8K8OI4%gK{9ZB9E=T9fO z&)}US+!qHy7PCnnPI7L5vWgXw+?%96M9b~}io4xYv-}CSe}u1rb#0vcliV}QeV~?i zao6iys<>KEFJrxEc+0!CK;w+Nen&-wzlX*?b$tZQp=Y2`@S3uvyK>MT*y$xBzfEHP z8E8;-y=ZB7%Q6n<-GHcsr?P8{(ge&jy7QmS+DGM zlA<7`I8-&3P>KZV4aBVn3Wx)!7ZMSvLPEfSLoY}<1gVig>M;UT^WN@Eus1Eqlis}f z-n{wd&6}CEfBx&wdz}E1AFx5~K(!b)aa5E?QFqDt0J+Y`)@Tljz{m-t5ptras%6xkju;_imJH$uSscrzu4Z#W-A*z}+GS!?~vCEE2RZqP!cJ4JX41(ul?s;9_ z8xkF#=#UkB#ggv0y?m2YoEG`*kbGJuQ#KZezdb*}m*Jd;M5R3-+}qLe5K5sbHLvG);V84=R12yJ|{m*)4hD#9zOe!eD+1_zWWV0j{snn z=XdRpeE8@bN^gE9=M($AcOai$n#XVIx^+>ts+BzOX?x*NFm13jI}dtZD}%NG$YDVN=BNWw zkMvYH#{A)^{8+e0>c!Ie66oxeM!Wst7lSVapAMaloe1GkG4OHM=@@=7hua|Q2Y>jL zU=R;mjsOL89(4@-g7tClb%4$VLhvjZ6e_zA@nf|20)#`lki!@$B7H{2@4LFR?BMIz zBC;+!=%$PE^*z+#yPExgP!CN+^wt`oUXEryBozArTVPAnbjUZ*bbd|!OW4Sg{2e(q zsZU<{Cu#`dB{)B(&~AiceH?MI`@{F#+{%x%RVRP62{)u|F1fsO@y;|``45Vrl9AHo zB%wDYfsB^n?;5>6H_znCm7pH~Xn7Rzc~sgpI&l@s7Nc8) zpB(YDiO5fS`y5D1Q7Ibg46I=kE%Z3*z(2&*Y>JbIv2gUV@8l8jH{x@Q@xk-hO48rq zBiKr`2CCHZUSQt~zz5^x(nUpb#2=AZS9jnflVuyv{S51>GN1e|WAY8wU1cG8oCU|3 zKgD{{(T6BD&U#bqiE$RV$@*tlAjNv*9E;+}Ln+2m$nz=lH&}#b6 zJ}NFdNdLg_Tm~OTi~hkETq_T8dz9NJxkW>9@~hkuSA-faJWfF8ZnX?U3`bfqsQbPP h>a0zF4fS~o)U0M}YNcT2iiTY>!5PA_tWiXse*tW5hD`tf diff --git a/42sh/objs/builtin/is_builtin.d b/42sh/objs/builtin/is_builtin.d deleted file mode 100644 index e4b4b814..00000000 --- a/42sh/objs/builtin/is_builtin.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/builtin/is_builtin.o: src/builtin/is_builtin.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/builtin/is_builtin.o b/42sh/objs/builtin/is_builtin.o deleted file mode 100644 index 3c54c44932caa43044f6564926fa15bf2c2d8eff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5024 zcma)9Yiu0V6}~gOvybe0z4ivnKCd3uc$$ECzJ7KfC z+L?6{N|9AV70ZAUs!Fs{A+1CoQl%q*vRuw-&stQnzn(~9Vr6T>l znLE4diD`1BJLi07&i&@x$GP{;AOG{=r(q$KfWQMah?)%Hkw!&XhWdi$sEa->EOE_) zY=h!qa0=Eg8c}rJE*!O8-NpMx$M&_br+rT<C zcs?)Rzait3P^g~LY@g5Bxt3Aa?;F`S(!!UddREFLI>-2W(ZL>RYZtnnFN`-PbOh;` z!FOQf!7nvkPI0hNrlh>c!CF`rgy`{=tA^v{=Sy<}+sXscHsGp@^5w?I>xD^<=fe0r zzQ0JCo8>br#VVWl`Q~MO2W1rfa^1X!@srDI(fI1Q%0$7so^Q-IpU2}e(3V(~?{Lm= zLiESy@yY2BH|ERLYUP4n$sJ~R*Y)?SGQKex&&&huMCpF*rx$)V@YK!*w-;ysSTWz>WK5PmOr9Zy7T)$p_w|CwsKBIaV z{j~K)<%n6y>-wJi+FJ}tzO*zR1Rs~=6|6rw=f3_HN_w%5*>xNE_ZKf8c1XS{$tR(R z2~qNN%4YtW6^GH^-xD&vyJRqDWq;>CBR-A`wniahZXz-GUgB;c5)hXl&q5*&@c?Rj zp)c$8OQ_vzaeaSw=I`0*xpa2s8&@uj&Rs*vKISU4h*LIjWV{uP2}kuS^$&eS`W7_&G}6CI!C0Oo#+v47~C@u zgtJ4%#YP7SF)Ag6mpy6@fcvkac18o2ps)nE5e1o1aiKj7@ffPIIm8=MQrQ+h202C3 zcC}B0r=dMVbhp|U5s{~%MxVqZq(n|aEO`Nsn26G@1>-Xi5e%0sULeXt&%>gwRxU#* z3H4;{We2Z7Cpy)WhzP=lM$p)eDjK?MiYzGV1yXs^;UqxSWN z=YaV2;Go*KBK$88ZC3lz;j2LJ(Q}L1*B`zgn&Y`u?Hddq@X(OjHx&LF&|b`0@D8s&0tF#fQ{ZO?>qQem3NQB(l7|bS=Kq^`zj)34RBUz}< zBE#F};Y6Dv+}j29ojw1JAG!NCm0{>v)SUBPhyh3z&NuyjM1bP)(#8^Zh2ukB=LD1A zz8N2c>ipC!l{~yekSBm^Y|uGwg~Q1{@E!emM005}lLn`b$CB~MGtciSu6)~Ay8M@= z-sRu^=;CrC{hcSyKeqM_`x$fPzLSSnHq_gazq+*UpRYV|$0wmTciKIt-amb7S7F_O zGf!Q;2%f*8evBGL&|J+K)SamNQA?;_M|}?U2dHOIFQEPv^+Qw+GM6w_&iz_c6ix+A zoE>T6B+lt;2VU z1s3a=b)6xj%YOief1t!~wa$3l9x&LB2VNloc$&MK+YWjV*I~~?gYKN`u%l09%Z36* z=djiZ*wdgYqM&t4V6~zJm%O5-{;WkqCp7g%tt%8sX{$m%)7Ea+*6-#syj>d@<1-$5 zU0a4X!QGk~dhTIOnZ^l>A)0WxRvv&vYHr#lv7FkKKLJMCCQd=(%OR!-QaN!#;^VGN zOi6qcGK}{%iA#{U(kBi|JO+uLB)EpjmxV;%6FVdxhQ!vC7?ijl5(jxAEpaa-Ml+F= zI0A`r<>CUSlz^dj%Tb>ncY^}_iL(OU^2^wy2J*&2T#O&z}@P2I@1bobxnf9ko*JOBUy diff --git a/42sh/objs/completion/c_binary.d b/42sh/objs/completion/c_binary.d deleted file mode 100644 index 4a8c9b26..00000000 --- a/42sh/objs/completion/c_binary.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/completion/c_binary.o: src/completion/c_binary.c \ - includes/completion.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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/completion/c_binary.o b/42sh/objs/completion/c_binary.o deleted file mode 100644 index 1d527c89fd139672d4adb5cb03dda7714804ff39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6820 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 CbxG_1 diff --git a/42sh/objs/completion/c_clear.d b/42sh/objs/completion/c_clear.d deleted file mode 100644 index 83dc369c..00000000 --- a/42sh/objs/completion/c_clear.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/completion/c_clear.o: src/completion/c_clear.c includes/completion.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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/completion/c_clear.o b/42sh/objs/completion/c_clear.o deleted file mode 100644 index 33ed9a981142b9d3784d92daaf7360e91b7e68aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7380 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 diff --git a/42sh/objs/completion/c_files.d b/42sh/objs/completion/c_files.d deleted file mode 100644 index 24d4b23b..00000000 --- a/42sh/objs/completion/c_files.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/completion/c_files.o: src/completion/c_files.c includes/completion.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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/completion/c_files.o b/42sh/objs/completion/c_files.o deleted file mode 100644 index 36e6e7330a248ce45392d85f6de3e4371d3124d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7588 zcmb7J4Uingb?%wn*`2-F+ui$-bmVl>!b-9b+>d??C%C{#=*a32RRSaFih_*xX6Nn} z?d@*%M?Xe#37tggd|=CV@L$T<1iK<96^c+YB}0M1C=#-qSX5Gk5CtoVC`4?>3Y4*e ztD<~gPtQtsl4H5+x?g{Gt{hLJT^})#}R?Mv9c5sc#d5jbbVKUev>1Mf{ZMSG2F3DU7<6%k>S% zy!n3nL5tt3(<|y5&p6V=nfCeml)K`0>&ui%dDkvv#%bPV{yNIOA!W{oztcWXUvc;$ zxxq8-dr|3Ip!D6cdMX zRnD~UP8BcT-#6QQH|unUzfN%+epc;TVOy?{we59l>XPV`l)iqSiNwKI?{z$XO3@5` z?wCDN#_oC(Ycvk5fQ~LUqK3_dvKYvKF>hEu^AT`ePw@t zr`gB2Bq(4tu$4YAM5iIoS8RQU5ch#H4Xj6Hp&q|dnM#Qqy6UnaJ^5~W;^)cq-U#+;XfyM%vi`)wQ$nmxHq>&dagAb7+O< z5BPMsyFdQK(f<9l6Q3P8aZrozlfKm5yTBkkc`*q7r1)=(z|xOk@L4YHn|oS%xa;g> z?T8nVqc_w}O&ryx?mn{ezvG|prA3(H#Q__>>#z*Mp&3CqJXJeX4}$lwv|Yu+GH@D? z8iI&Aab*32udQM(POe+G@$TeSw_M2;3(4NDp01wcVkeISq_ejNplijluBF$DO4;dV zuE@Jp$aOpRNG|VIx*XBHp@O;HquYuPWi#C?mQ}`Vr?kT^)hc5mSEvfduDI?NPn;m1 zbKJ6U#xiA55mh^zsb)mQBW_`<$dpGNHd{rpRHeX3J~Jxv#lmP(HdL8sHmKT?R6LR^ zlxkS3h?T43B~dC?L?!oW*RJA-$!5yPZMMQvORZ4JjTYQ&lIluj_*IqTP+d_yEbk$= zkd=#JU<{+h@($Q5`O38JzLbjeJk8#mDzgMYSoY^Ym#xPJL zDqth@UyNjP1vEuGaAh|OH$}DRj4MXUPwHBvwXvH)bzI>7pW?WD-G8@EGCPYJv7Km8} zHRHH!#Hwps2zqg_M&+30jWyN*vT3X?XizX-*NCx%rg4>~Yq84BP})paEbBIOTV`SC z6EMEjke19^B#8*)%=XTAlP9!@iW^B#20S8L|3`x!$N(Ebb=MMNmlD!8y69=kv~ChZ z|HAg&68{HUpwhFr@@UIG#)Uhie_JsXy`|nmuGD8YV$@YkIeJ0G$H&eW{)j)}I1# zvc61Dnbz0*vE_OyVLb^{q2vlZ)n*+A+DG(BJ(aY^(A$X^>Nn}B&DO7g-h(0f&3bCg zDxvobyw-aIse`&OX=>y%5P2G%Kuh2+K@2l;0GyZ54Z6`IApODntrMV>4n9EJ-tf_b zwC!!6Iao3H$Fwbs$+SCY)3z2LZPrtBtqvfDBAB72*8;8JykR}H*xKkLM^E)wwvV!U zs#ip=gV;Nm7@8O9ME6~EjRyk10tuVuN^l};&@92E;81iWNL%nzRvJ{=yn!~a1KI|m z;6~bfkB>INW?^!+`3UtqhGratfmzWi$mZ}Z*2AFG6Yis)-9Yp&{D;)@s6TcaeSgeH zx6}78`lz4Ye#J+t=jfYE zk)BFhulgvhr`B1=e6&_it+!49jbiu1gL-O6n0a&~+tB<3{P3dan;<>m4(nh2N%QII zX&~u%lCHk%k6lYw|I8V!hzkHOU;|%V!v!faU z{)*XanV?+EyoF1*05Kxwtz3E@&}O{lCUziU@gvATBEOi}fs!=@BqeVPq@LBR%|5(6 zkUFGUV?OK;qz-E$vIScBFa;Jy7gK5EqR$cOa~HTTKqvyAgVw!3e9dYJIa}r2yeJ6ch2vkLq zGP@Y%n1Ed1iw{QWi_3L1?e%o(^`Au|ZF?pHaWsmkozK>pwljcNsf(%6#Sref0 z8Cguv9tV<7)AjW1t3Xs9S)!++*3&@p`ME*v?FHznXP@w0*yB&FVg{4vAtH&h&@1F= z_*jJBEf>f+ZY=oBQwP5OhWxDoEDtQu-KZ=sD(Bopfa2>VkL5~we;=7<=vaX2f9Zf* z(!KzGSO?_~ZzNst@Dxa!;ivp*&L8Z!3dm27{0Yzb{7Ol`+CcfsAHUwkeAMeu|Ngt# zj#s8~9o5Hj9ihKlU0og=OZ4pCZw0eI5O2H_Z$I|EY{&6GIri<@-#Ys@8-`ojU;5DP z_}=M7zua_a@2?Zlt%o`viMP*pTHF5t^*i6VaO-nF+mP6Q(ER7)hg;XYwDXg{sp$(7 ziyn`+m&0zy7uSt+eCsbx{Lhy@INAQ%mIXhWdm_>P(Pzgx-f4JZ=bR>Yk&}F4Cr`d5Dw6+ks*+`H;nIq*%;PWHD_i z7E>fyn=i65fMoFjUVw_igO)6wp1A0-@G?Ud?>CCY(-Z=NnGNdsoU2usASletqgV_A zSD;85QSN)?Sj?nkF?XwpyvdNoM62xLSwa@mhmzuj zge=}sl&(E$A}^In>S@K|xusal%~BUuRO)$~B8z8@l4ANJi}_HoG&PauwOWz+j#9iw zDk&ZTl6BD`=6kYuPAe&1f5~DFRYv@OX(oJ0io*<5)D53{rj^|a&4wu`myP?$N&ED@ zLff9u649{9?WG}eQG0&Qv~%Ht(l5lSSmIIrjz%~s3+2|J?pJbZoy+9*V0~T8hh|Ot z4SpPHD40e({eufWr8xN-e;;?(D&=m4x^v5WZ<@}j?5K3x-sk3NlHlWm#PCSfpIZ_5 z1?_*t!GhztLQekL>>A_yCslaek*ZyGGg*Fk@ED$c^s#H|vkE{E3hN(;JVE|;_Imh* ziw_@#YPp#A7y@KoT_1v-eM`VIg937mD_PN5fArWwr*9~qI*pb zn2T=XprH>L7FsYOp)-cQ$FM@*G-4QQ8Z_DljdqL;hH8cg-2bK#Z1{nJzA<4$CX8rk zj}hrJS|QM91Vf{S{`vb2157~b?K9?#82SMt1bu%H>N7e9jYOYe?J>+QBQ#_LFr)dn zF$*iT_Zf@(j2i}xd40z6Gseu2aMDU zh7Pkr$K~RY5MZCtBA0Cny$Cnq?Vw>`K2*__u0-({rw(S+>$;cIcO|B zV{{K1u|6Yk#)x`hF}<)fzzrR8TIepl0neNeTM=DsX6GhQgu8PUDE70nRZ+g!i6CM z{(7uwL+<$AbG~!WJ@?#mpZm+NfAYJ}N`x>R0tK=Yd0L|IBO@(F4if(#X(ttsPH7z* z!=_;Nu@Wg1%Ecyf7H{F3`UY>B!!~yV9YLZ!`qH^f2rmUragfALp-?27%fyqTS`Z2? zv}fBX)%9&Qqp@ilnr$DA4d+KgFsdY>(B@seJFcD88q|I*qf?KkW zrC)4sAA>V5?W&vyEcSElg@=bTvAvAvLjP=gPEI1y7qu5pj-;qxZ12zAlnQZJ`}sAG zg&)U!xGeT_{mX=tqp|G8_GZ*1S`AtLbKM-TxzDvX9*!s%i~Y0h>EV6>d*O6C5ep^5 z<8<$$@!AV@P&;$#5Bg`>OAYT)6I|@ypkDY*+Fob9X68uIc<1?-4o8aZ9VoK5`wQC3 z?N5L1cpuXCexcX%!7peJn^>7F_AjI3Wsi49!`whMS2W&8Y8>Oth4RUL@nkd<+PZmu zi|=ZCJz6*cd)$Jju>Q26B73p1&`1WeYc(i758l%D#u1?EIJFJ9cPKb{L3r=t8UFq;bQzrL zyAYh3@LRN}9SxNP+zW-*bW2#8`ub3?P-1J($yZ;8CWUQhF0SdiuHE~MR@L)GT|@@X z%o-nn@f|RJP5b){o9=!nc%r8rP^_IfK9+O$6n+}Kci^lV#MGAd!b!~y6?)w^8$8j= zI9nr~+5!u`Y98j*t3Cg?u-w0Q!y?4m`}7?j*cyfXTP^m>g}zgkQsIQHd`?9RL8R$I zuZ~#fLNx~2s$YSDoa-%2+vC|>=-Ezw^HfjgJQ;XKmk~-2DO-iUcY>2Iwcq;Uh)S*A zWrsN`q374ni7n*M7Y5D+PxM*6!-UoJg~Gs@se$ud182N#WDpP<5A}E*R;9d>iDo#^fhmJ>FwK?KzTv z@1DN*9yRp(;YBgm!}n)qW{Mhl@0wLH=!9BzXrw$rc)I$|9NBi-d+!Ze1YgcA@a6OZ zKj+nTvE5VOyWrzH77SZOtB9?<*TO<@u#&fL^(Ke7p)3(ulsXftf+xm6cu}~zvKa|dA$3!l~79wkrOk_MN zB4goB3gF2kyfHYQC7WidFL)F7{HfM3@-a@e?!iHW@ zF@_?Q*$;mgLc9r;0HLs$;n*mgfg`brSOl#V$yy|wO5hb4&gHX0v9WLlGqfi)3_X@v zRi;M~=yW_fe*`wPqZ`g4lEe8NF7T0f2L53rkyw^dqdVG7IFii8xF9TQ4KFvIilSXE zmKl#DSXgr^(76Z+I*o)V!vm6jz-Fz21k zWoJDO?-gpfGEgHrU?UvA7>UM{C{mc-Oe~6Fid-s^NM&O}2XQ3Yo(=DfL1(R|>l8&S z8G1!jOd~o+XJ^72h!YwA#S z1w5*iYJ_#oiim@FuUKy&H(xQLLaZS{n*Y+Xf2f%qsBmmTF@$Vf?;Is-Y?MjR#V}xW zn*kvwfR+`8(nP%7RhhfsK*TW<^4A5H3KW;U)tyzGte#{1X4D? zVg@?p!#3J%2D;@BY}984dgNm^y4DPAmOr-9b!H$apRrNU3~ZGz+GvXz*e*{1t)bWb zW?)d5mx6U=A#)k7J3*w=Tnmw-8^tTYMzix5Anit@d>d5xwv3~H2S~-j&(Z&jU3VEr z{~H@!ZU$=Q2Q~^Y7XJzK2#gy|jK%M5v>dSzCVO=}jp9?t%@&snY>9LBvH5dACSzv} z6;~OC+q`e0N%8wIzd-4fLhI3{)Vy!(6}*WZYq~5HbvuDtI0jL6iY1ag>Bi0_Y*}M) zP&8Xjcl(%ryO^qXhx;K(cYetX49OB8Khc$DU`!r@ z)>-^Kc6K@fkD9`ydyZ-duLC1%Twf(|JDMN~gLTE6V<0`QTO=b$ZP#x4mbcNZ^zBZd zAEJrtPwCqaf#|m@MBg}X3JsZorSf?owYb9c^dEsvvfVJ(JYT8`MY!fawow#oUO0XX zwL=hS#i72XMt==V6dV71eSIbQi=GwH)~UK%DW4Iy;twtgB}%D@-=8d;}`N z%5uZ=cVOP2q{2W`&$JCI0o|UHHuM1cJa5?03%JPh7T`N<>jU(AJ_a-q)5u9_bS;2%4+u-4tgCpHTNwX^p!x5aeiAF<~|@!h`Wu8ehZMA?RGBuui6OP+AnVc z;`F$&tyjpe*>%{~?J{B`Z0q&2)9S{y?iA)fpfks_D6WE*Tv@{ojM`s8Q2VZ32=i^Q zb=+d+d*tY^<0Ei)v(Y8aZ-ES!Hp^q6YLTqq$o>jQEvJgBWyUAaJ>u2vnhCEZxDS6 zuqxx4R*5nLU-Iy?XNH23Z~paz-wRIvcPIEDGS6k|RI?!x&wk=(Ss>YVHN@p^C1Ts| zAEQ%?b}Nxdnc%*%;}8;`e(}oCGR&;{{>bZzUs71ZpOgGeUyY16in76R@skgK3@$8W^Q?wj$(mcQ^e{LOh? z>iykMG~erO$dtqy>mNG%_sb%+4ZlQgKX|0v-|*qL2Zn1J-Yq+JVAqp}|L5oLdK+Fo zUc32;-wya*`$4qv-#>7@+~FMay?9&G&wLeopUj)feb0OpYkc|7PCWe7spkK9=D>ze zzq56u@rlszde^JhYqvD%KqFA3HFOVEz*MH^?6&^Q>HkybhU%%pme@ z$af;&hx{-y_vg=$xgWU+9S9`9QLRMoM&`{sjGRY4g8V(?$B?p;F1`DWw<^4F2SgZv}p=a6|9;Gf_D&)6gJW}}E#rv6IC!%m4XeOkl^4n=%@=!U#r zDB^viwYaS);-#uZe5FwIBNST1+k+xrDB2c}M~b+$w1`I&MLe#WK#};=p@_Gr7L5W@ z#Cu9Nr4El&}jPg=xdgd(0S z+7>62A|AZj3EnOg@zT*EzI7U_ z$^ufv8$tK-|DAdz^G;l}Lej5m+E|cIX$jwjNEg-H=cIA_4q;6A3|~cw`zW;N1kXD6 z2Rs31X6)Cy==J!%VSc3&uB$}7&B)Wgwe)m9qF9e}Xo^*^Y#5*72cm(5X2kJiB$4Mw zhPHe*)22~dyrc6=MPIxYDrEO(+d|f#B^ES<93NMPM{>3)#CGnhS?d`4wAz8k1kHX% zgNNhzqNaY_TWZR>#g61cnOHc=PfFT^^_>X7Db(j1ON@^O_>G^;Wl{;PXB)v{38^nL zRug<91A{Q?Pb&b>z#m26tHlea1HVaBlu_UZlU!Qn-Xqi(FSpKeRmka^;}BLNOJs(g*P(i1F{TLAgvZm%?T< z1TFn?gDN++%G!SE$Wf~rOh0~PxGcWL<-T4vfUoJ7W-I%u0t2JeRqSLj>!re^ta%fp zU$<~{O<94K)exMNjc26)q+Ib6+14%B9hDpBwUbr1$a-|Qq+2$2 zvn)Y(gD}Pc^y6&e4&bqeMbI(>9`oPw5-8@pH4 zfD@|a2`m-byBn1D#x)%PMQXvHtAv{rouG+JUwN(*0L0H}+6+D7OEvXt3Zmp+)_OcY zJm60uGx7cA)jV-G@;s>c`51q;T2Q~L2yZXK8;UUBnDgz45O(Tl3?DM_f!W&Hr1qy| o*5Xg|(R^Adg5{^_P&^gMC8(!9gY$m_fJ^Xi?z%xXKP<%m0?Xw-5P-Aj%iE$vYogauBLgGL|&mlz-BqXY!oAch5u8UiXUpdwloS|M7cDiMfEB|z2m`(|hT zM=0sYZ{B=w-n@BlX7|nP`L~}O|4&Q^Eh12XqM)jQDh)z86Lf;Y&ne~Rpkpt`poADU z1*wrj6x;UQaX)AWc;nhF8z*tt8dVM2lhe*tJSuJub;xZy?+%U*+n!&OV%uJ`dG%G7 zPpE`;9%W!Ch8gfFwLYaiVXstiqXUSSjBlyU0^sJuAdO6^skmH54+xH?LCrEjw!aRX*vcvrM;1yBVC;7 zUucid7|R#i%T=o-*DmKq=-y}IJ)rzsA*~6~_l5oi_9}zhYZ%jFJ2kfzAKgU1rn;en|UL-mXRj~mTU$y<<{os6T zHh`uUPC-&zHMQ#t+nchx|C-(PUiwfPs@dJ&IFa2w`ayONY31%;ALID!t`nm1Httt; z5Bkw3#k<$O_jh_cLwGE^XYB{sUE^CsiZ(yXb}Nu3x3EJG`2&T6+EZYrdKu zb8B9)Qcm}E_jdQDyPOj8!@|B^fbOM>yBEzDUd`#@qfl~v==C`ENX~Z(#qw~sBYHM@ z7~V5{V`W=D*Ryo7SFoMxcDp+26~v^XD3*QU3E$4={G9Lt=9b5VQ^?gst~Ttj8WWYO zPpzR+ZdjBm<>9ofI9P77Z%gI{tXQs&`ogJTI)9`psufRo#T~Bg^U287@W|Q``(fHsEleLEx15I?vZH|BN^Luwo(^#cRhj0?JmX}SGg=E8gYGcg zf=j+FnHR8{Gm;lYSv%F7Ul4K`MWKQhqIx4HtmTR&XTW#7fhD;_Mp zKT^qKobT2~ir7BKF3PR<9WvN9HBL7^BP)=NJGkOZ)nn*k!JL6 z2%EM3x=6$F#Knp8k^?QP@S;Zyp)1iq3v$t15ouVNNFZMsje-)h4J;Ugt6GZ|X-F6} zAcR#9-GLT@K4ibR>`MfFb-d6eCL~CO$q8+P+VvA=(bu49oT~90OtlP_Q}iN{Sczs+ zE4t2uqs@kNr=?Re@gOcR!AW7sRGkzHFe6JgV6qOccN1qyDA2CSLqTiPwvk2jd&YTt z(AsW54OBgVLrH7f$6HdA7bzoZ;C3d=TTszPBo*5UcC)7USi8{pH%MQkXM}YZS~RLJ z)-#rMPuRCa&!nvH0o8Lamg&8QoH2CP5&HR~`qM@Fxu zpGQM<9sPU_=yCRaoqnDKVhmB6ekLH7Xsez%%W4IZQ|IXQnLw{_+@PN6vaSq~qi1@p z%^}L`nLc4Y1Na7vnrE9w(0mI`)*zXKcKcoFlh*mS&dqZ?7qy0XRw0Rk#wf2W-jhK6EVfS1Y{CAcX*QwaYQ{R_+=kv*hxPk#&>V*P zCI?X=%~0P8`_5sg?}X@FJu}PtTZl3YoQu1Ylg(w|TzHA*A#h=ER`V`YA3`2!i+>FE zg4Jj7jpSt3a!#E9;)+-ob80@@pJ0fE9Y|Rp16A#`<2>qpaAVC;a@ybYBDoIEqW4QzI@*}4Jz5X8w@ z417BfU#4U$XXHvg&Av9wDC!IjPuvZaY<)sY?n7e{7NS0>VQBK<5Y_`)$zO!90Wg(( zDuj)Ivy;yOUc#{{z;yD@fDU03U|;fs5Hx9nj*#7wL*8!1}H8tyXa6J!=7jo(&}Tej$VI0BS_Wvbwp< z7XWcXtR6mEJwS4|dznv`h6vd+Z7m1l_E^ZCUDoQb581QV8VC`x=hBI7wU9mggfR<~ znR8HOpcR?l#0j+K3n6G;6;{Gnj%Ew9m$8N|`fF}PYlMT&i2Gn$;+@t_;PN5qVq~`g z$;W9vBijo^qn{N*ujOjG`7!iX0^W#dgy_Z z7eDcjO{qH$SbsQrXx5r%cV77Es6H>%d3R%bE#`K7cl}Vu{zqQ^_}&kH*M9i=xi6jd za;p7bcNRL{uG_csj3&3!N$=aa7mNC1&{LqJpg)1$2kCgUTR~l*OF>Kx1<*~PZ-agW zItV%f`XlH#h>O+&>I8imv>s%GY9Kx*_kn%}dJgm|=v~l9pgJsU2dEds7ZHDg37qSQ z!jqaJUI&zj8HOUJ93^5BqKLUkiI@i|VrEq$URR_R_*@VQPg9C`MB<*s!rKc)w}6z0 zMT%*QhjSin`Y#Un^}s2O@yTCU`S_zs%zFl*3d47Zkf?x`?vEJ$@1^_%VlRuIKiu{fY zTKL+-j{s%ARw)I72^-ieTYgdpCh!@L29`*D69Yg4M-+StN~BFQn(M49j8=1UiMr56lGG8)Uf~INiGWQxu^hF@h%^&KfJk^I_2c9p)k;X_DUIdN>Sje1@ zAQmnQu-T({r{ZTT4n}>mhdTwn1h^56u&_A=%5!Eaot1gU7Rx#O g@)E+KVhN9cjqSjH0GvWib`*EucPO^P-=u{2FO#Cswg3PC diff --git a/42sh/objs/completion/c_output.d b/42sh/objs/completion/c_output.d deleted file mode 100644 index 9f1cfda3..00000000 --- a/42sh/objs/completion/c_output.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/completion/c_output.o: src/completion/c_output.c \ - includes/completion.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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/completion/c_output.o b/42sh/objs/completion/c_output.o deleted file mode 100644 index 8575a478725a256be30b89f433efc937aebd564a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4480 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 PmSFKsx!Bztih}!po)Is= diff --git a/42sh/objs/completion/c_sizing.d b/42sh/objs/completion/c_sizing.d deleted file mode 100644 index 975d4176..00000000 --- a/42sh/objs/completion/c_sizing.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/completion/c_sizing.o: src/completion/c_sizing.c \ - includes/completion.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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/completion/c_sizing.o b/42sh/objs/completion/c_sizing.o deleted file mode 100644 index 1613f12b34d640b764987d9a57028f895d6d0b9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4088 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 Mu|!pne4w%IKjJPH0RR91 diff --git a/42sh/objs/exec/exec_ampersand.d b/42sh/objs/exec/exec_ampersand.d deleted file mode 100644 index 3596ecb7..00000000 --- a/42sh/objs/exec/exec_ampersand.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/exec_ampersand.o: src/exec/exec_ampersand.c includes/exec.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/exec_ampersand.o b/42sh/objs/exec/exec_ampersand.o deleted file mode 100644 index 7c1a4e679cad25173d683de1f2d9857db64e5361..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3148 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 diff --git a/42sh/objs/exec/exec_pipe.d b/42sh/objs/exec/exec_pipe.d deleted file mode 100644 index cf9d0d12..00000000 --- a/42sh/objs/exec/exec_pipe.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/exec_pipe.o: src/exec/exec_pipe.c includes/exec.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/exec_pipe.o b/42sh/objs/exec/exec_pipe.o deleted file mode 100644 index 38cc74707482477a2046edb535e35adf199ca5ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7424 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 diff --git a/42sh/objs/exec/exec_redir.d b/42sh/objs/exec/exec_redir.d deleted file mode 100644 index 7f5cc78f..00000000 --- a/42sh/objs/exec/exec_redir.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/exec_redir.o: src/exec/exec_redir.c includes/exec.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/exec_redir.o b/42sh/objs/exec/exec_redir.o deleted file mode 100644 index b795c5b2d062b1c3ab18061df438a55338feaf2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4988 zcmb7IeQaA-6~DIgJ{%{`S3i<=&Dgb??eIXDXLP&HIMUmF31v*h}qv7|v@4hzi zT2`)d?m6f8&OP_s`|dgKI&Zvp_L3n)ASBR%>Odt8T?~ZQ0lG-=8ts=2-h=%dgXZh- zDM(EO(JafgcetMH>6?bPY`UWR(m^HAAE({aDuhm~PV6D`n`LF}k;-(S9%mO!n)XJ%Ln(Pw(&ru8!{e1EBtk+Qvw>z^5) z@9zcW;ClV#3fUru)cQ;E1)?2Q{Ld=Bz1TnX`mP#ZIaL_7oe%rFRI^`SRqxrGMfO+q zw>6cPA=bv{`{Nm7`)GfuQYmj+h16Dt_o4Mpsrc4PZ$fGEUvZ?Q8h`2HR;<&tDuwO2LdLQ-+%aQB#M5F5+z)>Y^}9HK>Ydm4v&XD#8E@Ac zU|BQkK}`7@QvQx8e@Yd2Jm$;fe!k^%1?jPNz4t4BBPy8lYP~4X=qPtCqE#P$fSA1@fuKEnK2iO&33U>Ny;7ezVZ!8;bOhj3qWWtkdmbi^H7BYk z6tt4l!Rlgl_%9M#dMq*V^1!{v*D)7k8#dg%F}BSvJGo*ZHW(j>55#)Yc@&Vo!2u}o z70cpF7YV1F?zeZ?UT2l7oNI3t>0-gP3$EqlcHs#+%jJ7dm2n^?2t8jcjK(SjCpTKKGcmf$ z+gVqXbE9LfC=@d`Tw?+$IhQ4-2p&i#J;;uuGbuOa4UtlXL!=}Zh9@3(6nCv`J~b)| zVtcWi!Bfd99!rm<$|9Q)>3q?_Y{hZA0E>JEi$tduCkp&bmiWzZ_-!MVU{)#@)3)Ql z)|XP-L@DKZyO)IpcQGqUxeRIg&iE>pvwRsIWHY$}x?%;}!nflviX1i_age!1FG9yn zxfMsGT(_JXskkUhftJ9{(KamUTLP^()UQasS9Z$ zsG#-8l)4o&RIOWtqPIpONFKdO(7>1j=D85UYzu^5pIO-`Zg+qNX2?yC?a#G z88pletZ%yob2e(yRkTMkaRlYZD>10fA6>rhfjg`0oDgN=X=m@qqY=t3S$uBX+T=5Mz@-2B!Ns(yeSff z7}I;gZQ%PrdM`cP1*sD&))!H$K+95FOl=pmR%#!ECX9nnJ3!h(b0Jtv@08KJ30aTP zegG0TT3^T=SO)EFKD&uKu+e|k#T}55E&`;r8E3&(Q|yY|3TEoH;K}HPS zcYtY&8aOP_xC%hyklzV?4a6unN*|`gc#X}F4r5S#r*S{TqY%RhgX51w3@y=1K#hmc z{S|to!~8o~d!+U9W=3Wl^N2j=+}gt!65%lyI!EKotC@$j?1d&cm^+ zRJ=lX@5?!#-eR~~!mncc_7yMKFV^Mi+~@BCx;*EeJrTzH|l;PcOo zA8Kycb~M?0<~Nn#&COqEnVgr7J-z$slP}*m=efxr{UJST{@fP3=boc`|2?qhE0KB2 z3k&quZg&s-^LO*V_qPj6-6wJj&R(j2gE$i&9X2gO0_Kujq731%4AjmF$3 z#NweK<{Kd<5qAiU=aLW)s!D=Qv-Ld;JEu_8(c-CR6EV_hM{+)=(*ln60Nl@%)kAr=c2J(ER3 zaIc^}3gXtQ8JTpnVlFC(9~weTL^UHzIH5jt%8DsUh?%RP1Ip?oxPmCsir-2V1ap}X zlUrG_coSkhS62K05qb-xtoSh^#NAbK{ja<;kU7j5SYK%eJ&|r^G(Q;wyY3W$9nFE} z2E*JBE6&4YJ$8Yvrl!<*oXBYNqrp!$`gd_2yP!A+%Ru1$Xe0Un=Kux#i>t`zMzU^y zu8_`GGPw2hSDdo1_2-rku9}HBJDq-cb98Wfz1k2Mh-r6RT!t~5yxzvgcti09L&iR< zYb=yHA>^mdwa%ngm((KqXS8}fskN-tjJ4W4XfbHPwOV^pi$ZIG)}7QAC$$d1`?W^>XIcZW zwzXO?sWs`RwV}$nkss0bQa#}&o|WQLp3^Wr`roFiyJb2G}zmPyk@J* uK7M+*DZH`5Xx?^<1>yZx!9S+(>%kWMrGQ_!_z|Oq+o?=O%6x5@Li`sd2kFuP diff --git a/42sh/objs/exec/exec_semi.d b/42sh/objs/exec/exec_semi.d deleted file mode 100644 index 41c7b05e..00000000 --- a/42sh/objs/exec/exec_semi.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/exec_semi.o: src/exec/exec_semi.c includes/exec.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/exec_semi.o b/42sh/objs/exec/exec_semi.o deleted file mode 100644 index c8813974a450f8af5112585ae35df0d99620db68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2932 zcma)8Z)jUp6u<8!?=@}OBx`2voQy!{oM@A-+qCH1R%|5=6=d$8uyRS#m*malCFH%V ze>QPYkp{nPh~l?>@XP!-&=3AYL8Xew_CXK@L4?6z6LkzNR;<7C-o0s(t+ofwJ@=e@ z?(dy*?!R~S?_dAzU`+8bG+;ltqM?a_LEFH~WL$>^$QN`$NT~yp5r=6I#JOY4I$qz? zkB*-_x~9usN^}U1KKovmC!w5|J|sDxHZrw5x1FkM=6vkL=#gg|E)wTUVfj(S*KlA= zZR$7hish_pZpRB#ahm9o-lTZld*Y=tnW}My;%$vj;>`<~&ElC>u1r(f@#-SJp9J1E zDn95tS-*Ait){KKVc(6HYsrSOKLwtL>b5N&ay?4vtQ%r`d=gKVabvu6rBXDwl`c_u zcjcQGUq2uM`fJ1ZJiKz|w7bCV@x3GPb_%?`0nu3#ZTU9ES4n5v@s`@~PHYm-nXBA0 z-^z^2-E#GXpgghNyvt~?dn)AuACSSHJ@M6Na z2s|>~!Tu9#-iBusc&>`o^(JuMdLQ)rJ^Nu#u*(8Zs4U1>LH0??{Z}+C7qLCxlLGG> zG3kcL_n&p*qq;=MHwXt11>X<$<6Xi=RO42;EVgFdNem%KxE0V0g zyqtWU_)v0TDRP4*uIc^t@jJq_Uyjtre|JrLK1(iq5t;gYl+I6Va`O0du`@>1Hp^CQ zBt8@$itWx8ap(s}hM>gv4afI9!t81`Vays{!)>Ev#xu(a(khi9CsVK7@r(=kdcTecj-a=2~IV+0L%XrFe8iJ2jR`Z(-c*FpRBHFD1O2R1r#J5+ z*uO)+2Jtr7cglYmq9dTum#~#y7)?@Il2JgHJl%WSX3k!@O*y-XK*l|nmbqkVpSucb z#^1Y z>@6ayFPW(10_*>((18qPW|$#K>>mPZAz2({{s>cMBTA&ZBX9v;^rZ*EU#$?>>Z;s- zY%~;kO?{?E{-!L!M`ep>6=fyVgI1w$fE9W8S<%eooP=p*i?wMyLW!DPm0H5wJMws| z#h$YhTs&8e>j2jVAl;iFUZC^id7zJ#6DJ-DEg$P_92#F((R#W*(z^AO7CoS;DXm9; zu}KT-*ELm7>6cU;fwO~{jJbouUII@)3JLhZej%Um?0Q1TT|({<5`v=C-xQJxA^*o{ s>;cbCU6*KslaC~-d9%)VBY)=Ie)u`XwPrAmn-Q-Zu0@`6Tra}-54rS?*#H0l diff --git a/42sh/objs/exec/fd_is_valid.d b/42sh/objs/exec/fd_is_valid.d deleted file mode 100644 index e0f8b93a..00000000 --- a/42sh/objs/exec/fd_is_valid.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/fd_is_valid.o: src/exec/fd_is_valid.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/fd_is_valid.o b/42sh/objs/exec/fd_is_valid.o deleted file mode 100644 index 5b942c63074ee3bc788887f72beaa14c7301b271..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2356 zcmb7E-AhzK6hE`;T|ZWL*OVywU?KaEbk{;iOib~k6%3@*42p5Rd)2M=?&a=k8U=wA zl`r#uk3IBI&_hwsi=<`e+?mn4*GxMwbM85F&ToF_+?jd%^XuUIATiE?wL;V}J`s$P) zgh$&hlmPh1R|L07Dd9Y2j7*O4T;6tEoOfPqKi{pELE(s1fOnGLdVqvgw!+I~^}pgh zQ-M-<2Rx1~@RB1VwlPKZ7xGhhUH^%fHb=9R;>BB$I4P;;B)_NFKk6fj(?;=0`J#Vz z(i}5#oAEdu2A6!>VZ9Sc-J$5^r|=Z)_IOFl${5^CP7u9K^$ts*7RmAZw)_NMcI2w_ zgT4G7OS~G1S4W4pP(1x}@w1Y;7jMaf*SABw{EYS2dOu3MvyxMOhj@7D97r#}ycAGPuCiUiIJ-vdiV zw@Exe9Qo8Zo*=-uS|Y8^b0%#%h~9b^C0lz!J0Y|j z*KAX1_|Yr$J?L7gVc};>iP<-iE3ez>=0tmY2hT;P3_F+3n$f0ML#!csOwZtTuWxEV zBi48_cA^$?wjMX84Lv@Z;^`cpN@mijm=5uQ9A?JHu4k{NlJUlqxpA&rGu)cYje{!^ z(qj;fS5Fl_O*P;T zwFZOK#$g@q38@8L~)C|Q_HD7uD|Rs@i^ z(4HW4HIR}c!WNInrG@5J+SeRH)~67-M`;k27N{p$eQC?SX@-qXq60gJ;X(P`dvA{9&d=%6@2Nffnt+ zymqKXJ2J1;4QYp-YrY|001;~iVEt}qFQ`8y>_A-VBT^rf8Wn94XqLJXb=cXJR-83K cLYP1|+_g-P2{&vzYXcwE&3p#c#^u1+KUInp9{>OV diff --git a/42sh/objs/exec/ft_exec.d b/42sh/objs/exec/ft_exec.d deleted file mode 100644 index 54dd80bc..00000000 --- a/42sh/objs/exec/ft_exec.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/ft_exec.o: src/exec/ft_exec.c includes/exec.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/ft_exec.o b/42sh/objs/exec/ft_exec.o deleted file mode 100644 index 93d849f24510c6828baf9a9814c6af92f071f87f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4844 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 diff --git a/42sh/objs/exec/launch_process.d b/42sh/objs/exec/launch_process.d deleted file mode 100644 index fc9b6a02..00000000 --- a/42sh/objs/exec/launch_process.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/launch_process.o: src/exec/launch_process.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/launch_process.o b/42sh/objs/exec/launch_process.o deleted file mode 100644 index 64d100adf60bfb9d9cf1f30b3394a7ec8b4f6cc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6120 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 diff --git a/42sh/objs/exec/process_reset.d b/42sh/objs/exec/process_reset.d deleted file mode 100644 index 0610549f..00000000 --- a/42sh/objs/exec/process_reset.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/process_reset.o: src/exec/process_reset.c includes/exec.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/process_reset.o b/42sh/objs/exec/process_reset.o deleted file mode 100644 index ee89dc0ef88efb2bb0bb37ce5e9b7a8746596231..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3648 zcma)8Yitx%6uvXNv$O5C+l2x`fM%2BQ3&jowrCZjt%58Ml^{Ov?1fesV|l{9p55ZW}*Fpc+V9bxao0mh*DIxq#PiAFTTaI77U zCwuz3Wt-OB(S2!^6o|)R&op{@K^gLW$PFWF^;Y@~+bO$d!&thpXYDgp7awOcCx!Nt z%+J%@UL7S@@$$utYp%sRDslXnPEKxYyC%PrPkr#!ay{KOfIu#s}k>rBdE9 z3g$MZch`Jp%KRReX&rxHejZ-2cdNU>wfSw9c(WwlwQ=IP`IXE}E#96QyvBM7e23Mn zpO>Grvvkk-9+7xAuf^Nf~@{Fhu^g$kC4QO=Z5I&8zk4Ijg z-hVm0_j)Y7f6wq$2BhEKGn_u_W>4|#a%Lf|%Ui4R+snJsvtJ$_8AB(V$Y#7YqIIO2N+c7p!cY2^9D$ImJxAXd}uoor*0?$0_G}D-I5#WAx?Ce&NQs z9b=RU%Is*f7Kp||)1woViP&p33FAbiyFL(oEV3jrx8X_Ft0q)wSka7YxJi&{Q@}ho zAwtbcAR37<2JdB~2t-#jQ|Ut0g=ay1A`-!uy2;9l=DC2Z*IbOq9G5k?uj^%w&q5Gk zR-I@N3&_xxdCcusNx6EeeS@;W#3!XmQ3C4wJNURLO`GT(+=5QyDSH(ZXbrsv)~(Lh z-vIvyq%KesLVuSMQ&^}b!ummIQEEvw5z~)Cd!AZKO-$9#LhGc~rY2_S=Y4IFnuzP) zK`ZfFyP9a#=R_h`Pt>n~e-5)giR*F$+6iitxh}IIU7$7v>mnMouOQ!sN4P~h2QdH&z7%He zdN@dI?N@Y5L4oG*D(YdJ`WJfA5QR@D2)B83_X8OM*YLxEnnh!+(H;a5pG||zOfen7tCco-Gat&hUxo8dZszG%W}Vx3 z;`P5y?p}N=^z~EDl*3m)tEjVMUtF4VqitwkQXJo{`okUMG_NMxDqx>BZP4HF41vo0ot!N{9g=2se{|ytl zLMC6y;`UBe>~czKsa!|b!(%P>&KegOQik^jme2L}Iex5-yQ$_~#DILok^?MqH^dXY zaLB0psvLyuK5MX}{`0m20W)&nDuW77g{Z6E&4DIGQ|rIntc61>H8oVx>LhP)`Ccss zu7rM2Ls$U8BZGVvKH~9EO7c09w@3~~ztAs|Lw47bb~gU+&{l2!EAIUbU=E`fp)ZSN G5&r>PMhgP~ diff --git a/42sh/objs/exec/process_resetfds.d b/42sh/objs/exec/process_resetfds.d deleted file mode 100644 index 414d7157..00000000 --- a/42sh/objs/exec/process_resetfds.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/process_resetfds.o: src/exec/process_resetfds.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/process_resetfds.o b/42sh/objs/exec/process_resetfds.o deleted file mode 100644 index 7ab8577787597abf93b9b93865d421efd57bebc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4676 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 QRcmUB{zd#`qLgI+2iw`w&Hw-a diff --git a/42sh/objs/exec/process_setgroup.d b/42sh/objs/exec/process_setgroup.d deleted file mode 100644 index b107df21..00000000 --- a/42sh/objs/exec/process_setgroup.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/process_setgroup.o: src/exec/process_setgroup.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/process_setgroup.o b/42sh/objs/exec/process_setgroup.o deleted file mode 100644 index 818e0252645924bd7f095dbc83f981b852d7aabe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6556 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 UCbd`)Ru&)d3g;g$`7#&(0f|x)?*IS* diff --git a/42sh/objs/exec/process_setsig.d b/42sh/objs/exec/process_setsig.d deleted file mode 100644 index b423aab4..00000000 --- a/42sh/objs/exec/process_setsig.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/process_setsig.o: src/exec/process_setsig.c includes/exec.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/process_setsig.o b/42sh/objs/exec/process_setsig.o deleted file mode 100644 index 79d3276a54c11e10197753a55e55e15ea6c6cc28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2392 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 diff --git a/42sh/objs/exec/redirect_great.d b/42sh/objs/exec/redirect_great.d deleted file mode 100644 index 9a8fe803..00000000 --- a/42sh/objs/exec/redirect_great.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/redirect_great.o: src/exec/redirect_great.c includes/exec.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/redirect_great.o b/42sh/objs/exec/redirect_great.o deleted file mode 100644 index d0a35417458d7e17cbb038fd70601de69dbe645f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3392 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 diff --git a/42sh/objs/exec/redirect_lessand.d b/42sh/objs/exec/redirect_lessand.d deleted file mode 100644 index 60f4bb65..00000000 --- a/42sh/objs/exec/redirect_lessand.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/redirect_lessand.o: src/exec/redirect_lessand.c includes/exec.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/redirect_lessand.o b/42sh/objs/exec/redirect_lessand.o deleted file mode 100644 index fe3077b69b0d6a081c23da67a549693f1a605ab0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3328 zcmb7GZD?Cn7(Vyj+?%9nleBePUH6f#(@n5x90QAsx;i7-=wR&2O^|Dvq)ld)grsRR z+1yw=T`A}$4u2^4!(So}5y2nAP&QOhP*gQz3W_k>3iOf z^PcCv=RN1V=~ve--|z~dXaWP+11{?rB4E(n;Hz}rhK?Hc#Br_xIW{l_IYcMOG>5bG zVOzKD9f{pLW^70MQ7XjaXFHmOus-1thn*No)68TCYC~pqxMI0Y^YJJ9wmmT&;^6!s zJ$q%I(*Z)L4f-@*p_I1VZoKzdoCbP~o10B@;-v-#D%la{J3BuI?}WsdFJ8VlSmF{l z-bVTL7XmD@AvH4xUrSJL9Fw z~q+x6-V>MjA`~i z-nb$r@gmasG4Pmj4);%{?83|D%)tsy*IrpZ=DMA^;$jZ<8PE5@tZaE)0|J0M`-E)INvoA$Q&mV*OOysV^5#y<9m+u_wU*g8Oc_v`BE{`8;wO{ku~W8noxId z3`TU_+UNuKiE1U?ldWgdJ(X-GU&-Ru6|&W8s+ftUMbFMEmiG*emiA^+J?qw1b7s1{ z-z?XvIpGc$`Qotc6vL)9DXLQPRlqq|NDYZXsW=p|2F4e~XsMFHoF!_uNas=&F_;nQ zLaCaCQYvIH7PF&5X;tnCw(D9jY;*=&l{TEb8ilh>+0di~9}27wtZv@a{wU5w(}gNs zo7!8ojumO^X`lL?<)A z0bmVpp=cKOQ-G4Tutw(xa{5&|4rNyc0ZK@zQ)udm@_x%cgwdm(D11q)m6Nb?-_UBK zCG;8xk1-D6eHjB+s4ILgLPWG>e!9K}YZ0|e_}_-cW!eh0%jbUw+Ap+Ls$F6Kr_NlL z+SMVvKf!zzthVc~L+C#5Wr+9a>1z5A!l!ju2&}!fnCNHVwa`0Z31bl^^waPeP?FpG zk}QnFd@Ur~w*OCf=KPX1teRB{$S4CqjcaMU*WLvEpBNu7$b6S1woC>8@Mvf<9;>+s zK}?@Jj#S(sbnHfxq4@Ej{`D+2xmSG(CT6z5c~9#Ia_l zz@LD>1784N1GiwqJTmT^wOR!RF`O<|UAkC&x_EjE!5|isE>>1X@j&R}Im##=4qZI2 zMPLwb16{lgxZ@<=6S~I1a^Zi~(2M$T?}(lud3y;ni=4tL&utS*J*)?Fy0B z4{$WcM_Eo)(7kLO&zQ$*krq;Pqv^D9ME4sxJ#1{&wYafIH-6LGpm)Ue1)Fsvu4~4S zZhWLKfDeCdu$DmvFtJ;2GRE|UuzYc-59_VA+6L7y;zx8Ja6^QM;}d&;6xUU(XdBl9 z^zODSrKb9^MWiIpx0@FSS$4k#i3`}xWAi{h3yHYym2&<;+ctWnyjM#8ZXnJoC#5NE zUiuI}BxyBdgK6oFw#0S9#bQ^yFzwE4clU;03}Fst%zV`xNfq)LVGg7+a0oL~E3YNk Ezi$uJV*mgE diff --git a/42sh/objs/exec/set_exitstatus.d b/42sh/objs/exec/set_exitstatus.d deleted file mode 100644 index 2b26cc30..00000000 --- a/42sh/objs/exec/set_exitstatus.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/exec/set_exitstatus.o: src/exec/set_exitstatus.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/exec/set_exitstatus.o b/42sh/objs/exec/set_exitstatus.o deleted file mode 100644 index 30de57d18f7727712317a9bfd2d932bd9a3cff94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3348 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
% 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 IzEa?S04BHN{Qv*} diff --git a/42sh/objs/glob/expand_brace.d b/42sh/objs/glob/expand_brace.d deleted file mode 100644 index b959319b..00000000 --- a/42sh/objs/glob/expand_brace.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/expand_brace.o: src/glob/expand_brace.c includes/glob.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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/completion.h diff --git a/42sh/objs/glob/expand_brace.o b/42sh/objs/glob/expand_brace.o deleted file mode 100644 index b6a67fe872a09d86292ac84608be5d7966c4747c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8452 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 L%h_!Hc9Z`C^61l0 diff --git a/42sh/objs/glob/expand_var.d b/42sh/objs/glob/expand_var.d deleted file mode 100644 index 83a1b338..00000000 --- a/42sh/objs/glob/expand_var.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/expand_var.o: src/glob/expand_var.c includes/glob.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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/completion.h diff --git a/42sh/objs/glob/expand_var.o b/42sh/objs/glob/expand_var.o deleted file mode 100644 index 681069288b736175edc32df421deac70388b209c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5912 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 diff --git a/42sh/objs/glob/ft_strsplit_esc.d b/42sh/objs/glob/ft_strsplit_esc.d deleted file mode 100644 index fb2f7f6e..00000000 --- a/42sh/objs/glob/ft_strsplit_esc.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/ft_strsplit_esc.o: src/glob/ft_strsplit_esc.c includes/glob.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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/completion.h diff --git a/42sh/objs/glob/ft_strsplit_esc.o b/42sh/objs/glob/ft_strsplit_esc.o deleted file mode 100644 index 3641cd5f9d622f910ad312c332793a7ce4adad47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5012 zcmb7Idu&tJ89&!I$8lot%>x(|TEZF_tcw#ElX!TLwA}U9Br5ALv(Tp7#Cf9NcyU~4 zS0um$`B7=6DtmPjNYm7IVpF$iOmrh88zO;if{hdcwUmV}RJ=N4Fs4EdnhJYq8H z8VS)%v!~@?k2SXV-Fk5ML*5=;m2*)%8rGLF<|1VQJ50oGrrF%m6l*i1J>5cNnmfK; z_tIBvHM8TKlM=IdT4fI$_JF7zud^#8#QE_OGC$jAsoNe+(>dccHZ^s(yh8D3;v!a4R4e1XEQQw)kM5K|VgC_D%iAw4?PhB?R@YLR=FI!xw2YUr)T{;< ziHsv8*xv0@CCK#o?FfsA`T5q!^PiL``sKwm27Gc)&cH`?DWS-2%aN2z(LaK{6STgZ zF@x0TyU?kT4Rwk~Sab1$eXJHRl7BPeAMHw9`-Ng84^0}$*my#}H>medp?y4{XuWjO zCkTrXKQzg-UfQX~pq{1p6BjVKk%nJ7Hm>yr?v0Z)-me&;Nn_yes*(J+kQhmQ#E56} zy^p|qP#-2ABdud{eQ14uV!%iTCbd2X>=O+av}0d@I!CPa#qMpMBuy`h!_s;`=1bz6 zozhMXK%UYsyldkwwL=r8q&_+EBcwF}VQxe*QJ;3~X<;mq83G0*)L}E>8nU5JL#3E%UenoKY@N_cM`nXu+@j2(Yp&eTbqxTh*9W#|;huq)% zuY~@g)=Q@;erODZ>Ia|FKTPO1Qu>YQslNxkTmcLAw-XJ+TJMt(%WaK316h$jmIw7d z{Ld+vr1atSmlIbi747Vh+Ax-E7{dub1W)|Ip+w;N{1L9F^y|Vq9T;18B^eO@M*I?X zX)HVO1nttdKbe|B;#iv+TARbb^l*K!o2>OQk^$?)-X;B@K1yUpN;pM#W>@GQRp_=| zp;4HKi0(5>nG#*sD-|Lh9gO6j+9Dm0pG7|pHF$ovsTQu>Ij z&?r?%_}djqH{6X6D9MJq6Qw9sTEA;msgC}LSJc<|Cnkz!>jomEImxY_mkQ8>dgfZ?2_b_@i3Ts4XAr@WFI#_GR zK?VyJ>59UMDW%G4PdQgTCC=rZQl$(>%Av6raOba8^?kR`|Z0$}W}FK`Tiagnw9LkOITUm9Aig7Np)57 z_MFmu&N=@d8^TR}k&I7c!mcuopJ(nFIn*3ZxI+~uUqAiMA0O1i&P4AXMNfFgfiarf!p)4S*?IsTZ#huaY4fz90GfQvpo|TW#+qo;Ry~LD*B}&PH zLRSX1gmMLX?Z?(S+6R!;c}k8uo?A$7MrvfY1AT4QvXeO2Ty~wXJN>}2lXzy?_2Pgz z*m_th%6~lz@l^;px?e!sV%L6N>g?f*Z*XUjtIjsQX04RwHH|YKCo?EJ&|L+=nOAM z>OM;ANiSDjXP|T~vf!dDKE5WypYih=fJUK$e2L4;3xhCf`xKioGARIl^{hyV7pn_{ z0PEw-sqPh-9H&f*e`YU4`I(2XQ5Oer6cY}yPCmZa$5&_g=l#4IAg~5Oz8E;L^2NaM zXqz!>bHsnk9cf-{5(0-4+YX!VjRNsMn<~Gg`*1;EShZHt7h!~9)n{pUg3>9+kD02k zf}&OJwB*j`BprbeL+3R~4M}SyT_fpJdGZR$g9!g^lGcKH5YWB@=&vX7_L;|!Y4nk8 vC1?)I%JTSU@_1(Ezdp>4s7VhEdd67VSd%s0-`Gk2YLXt-)5H{y6~_Jtx3mR# diff --git a/42sh/objs/glob/ft_strsplit_spe.d b/42sh/objs/glob/ft_strsplit_spe.d deleted file mode 100644 index 60a061d1..00000000 --- a/42sh/objs/glob/ft_strsplit_spe.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/ft_strsplit_spe.o: src/glob/ft_strsplit_spe.c includes/glob.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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/completion.h diff --git a/42sh/objs/glob/ft_strsplit_spe.o b/42sh/objs/glob/ft_strsplit_spe.o deleted file mode 100644 index 645e86aff2dec8a4421a86fa266fbfe7a6b24167..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4992 zcmb7IYiv}<6`s4-vtHJ)*AJkCJTQtO(BQQpv?Z{Bt@t)Ki&sIZO}D7gjlF(GW^H-B z!O$SNEROb}sHQDyqf{#GpU{>@krD+`T8eFiZCZ&&IA9(>sN@z~YK0R;?UJf-zcY94 z+FqMSN1A))%z1rt&dluCm%jMtm${57D#Hgo2fc&iQ;d%G2zr_(@6mp?*b?-S4Vulv zC!?;>B${b&DW*)b z>f4nsebW{*+s_#}^P)Q=vIh=(K-Biv)*cem+5Qg7_1QM=JbRR(3;L_8ukUPpjr`BW zXZzbP%^%iZYq+VMOtSrbD)C*UBBFg?;_E{GT-MZr_&V#t&5e=y{?1VGX0=^QW--=q zL4W(|LIPqoKHHy!#~$pjuA`%^(G1t^BY5-H`+JGc-cr>M#Ao?yuYXk(I2&KNOj3zl z=DCOTC-8ODg|hwCWceF^NPk@iIu=}SxAfO5@wq&5FhjEHVXYU3PPoj*_unjhZ$8jp zsC^&S*=0t<`&+{erdeGz6PmGg;*c`-ikv(Re{`pOfc-}lEel^`i`mqP>RLk6oO>U{ zrN2H)%vRtck$%Jsws(sZ36eR#tzqFYd%Y{<`9C62oRAmOpMg*A$vOCFALNtgJj;-T zE6_)w?*!dk#8@?n(RZU$BOU7GkFd_h3-+N}t&#Yf5&OsP_+N~~p(!H~orvqVjo6_n zruEVmGKTatIhq_q6e9(dRCGc+TYGzgW@G0RBQ$07|6Mf_{}wYwLLW0?>1^v>SP$u= zWMias#LQkk1MnvU#N&j2b22X2}SFrJ7==M z_CdiD`qbq6)6>(Fm}J==2eczk3T1(M7{P!%U?ETF=MlA1J9e%rt`8*jfsFqFn4}=3 zr41YXe`QAElC`u@U=$e`GZHzM7FgmhDO5;@N?^=L`LMR=lo6^uZ`q~-f-#hjjYMFo zDy5HBB0^OH`U(AXHu6*V&c&&ueky}?;aq(F<@9t0$xu!|fKk=~Tu+0hjoA6!FAp|p zt8k)Z{mVuD)2RPcT)#7<3(!OQxMdn80T!jFd$us`ND#%Go$$0>!mAnBn4%Ki$&~PF zQoouF8$d(})1rhK_jD3d`UGSNePY2lSF|JRp!A-CTq9C}b~bwF+0WwoCt5F^p4g#r zhQfkR>Yv2*D@pxICiG7rm)W*pe=i;w)p{StwA|fTXKh-npSJO_{+>^#p_0@`H;%+F zmMGeX!)jnW5g12(;lUHTdnjIe`N1A8C-uw1I#oNq{$iq5*c-76*u&BESH8o>5LBPw@5yu-y||;NjOY5=4a?OW$3z{p_^8Qt|#^D zas5V8zmdt%@oaa<(6!9^Cd9U0AVb%Z`n6dZx|s;voSmVu2YVPx>SHoPHz`BH-p)`e za4XiYBm%c43y`Xme#^>ICH-g@S6A-|6u;Kk8EI_~7jN;Fd&`U0h1&4aDBV&H#=Ciw zcjI~%=?s-Mx3$-oHFeQ5F4ED~ia|%CH^jnFVT@bDU5s9cjgb(Gh9j-b;l_qy;UL5!8(AxBYVBrFW#M|J z6ew#vMO^jdJ0JBFD1|sw4voEldtNPJs%J-D9`5=aFVqT^3b*Rnnzt?Qsl_i8?ZgY1 zbLNm!WZ>L9hs~XDgh$z0;hSBcIJ9M$3nRuBvkgShp0|kj+Rs_XGhiKC@KHnfIF%eB z#^(!RjUS&qE#Q=`ikAp?9PRj#;NOKDTnimIW!q_sYyOqs$e+`3H253hwv!>ans8SfFdle~bd`hd6!lHrwa!DnyD-#cYbH%V73Bu2;Y}TzC;+S>FD&=C3}vT9*%KpOZEi@-4k=7+&dNakoDAek0IvuDg)-!K z1%M*rnEC^Jc#h+JFfP(|{DDRT_^5A#rQ#Xisx&~v?>+&Pe;SGRfFfQEz(}U(txtU8 z`CtFy=QTe~X`68Evl{dU^lo(0=|`s~iV3>TKm4h!ar8{5AU!3degDxR` z3_bWSk%npe*s)4a{u_?xmeAXf8tGM`m!~bgw`>Fp=(R!b#9d2I;$hkTdaxb`+XziX z`HyD_z6yCnSL}O~W#5XpNJZ2|G8d@kHihT9UAwu{8RV+7nSXtRZ*%(j(|-P3AOEV4 zuk-O`ex7%jI}Zza&Ior!q3!2xXN)fb^)&IqK3?GGkNEgE|jW z&hPLgh?Uy~=eu~GYdf6#xz@ys`gozAuk`V+KyetBBV7H6JJbU~)g9z6peCFSC@U~z zYV~K_>2|%yd30tSyM$bI{*dPZvHL!LU3+=1)9(`i)uXf2m!9NBe*UOf#^YYDx=upq zT56$0UVMCQA0@RMSdpn9U+(hq+#r;i@1rwLDmlQfeuyO<405-+BnYrR&YbGrVOq%> zv=aAk?Mf7#oJq%HUhV)6H{lS4LMeTG4a(~0WdMO{1o<-HKeS?OObf zd`;4em?VBcQbW=TN!LpHMAm$<h=f<%UJ8AkzmeILO+qDu-(g#xq&em%6xN#F6Wog5sx^*1qHOKb+ z$g-_bySmxpS&>#ywIQI4KM+G2P@qUzw{*$YEznMMAO;M9R0#?xDpG(yXol4A`_4T# zb#4MHM>^;Ge&6}d?|kQZkA3-rzuhcjOmQ$2$WG)bj>30@DV zGRjr5ond5S!&wO+4CCQY=fk(Kr5#sIjrb^*vp&Ywk;%!9k+70sL^IiRf1+0!?0goF zOV)Q;io~)Tiw^O0$GUR821td?F!mnYv;U#R`e$W>KS;}fjSuD}lonq+8C{XDmnOU< zeNxV2iD^Z?NLN=nHbnEcG(L;(v?RD)zWzi{lA750I88p%CE657S7m&0EU0FhR*Wwl zN%Y1t%lY25?V&Rslcc0vk#8^(6(QQ=v-o6q?8EsYsZ=~>BqDxjLdMrA1Nz~I z#%J;+y9UGp+vD3RCuyVPE3YUSsj1q=TM}O?61DTS+xP;v$(MaRwc>amm3)3VfuFri zJ{)2}X^-zD9d;yZypL9zxTLg=H<}#8II~7B@mPPN+c4VpmiV#>$+ue?UjQE+nXhC2 zNg^9xtk394V|C32_WR(5uy$FG62~91c-7dhN0#5nPyYll*z7reJL?0iS(8oWv9gDH;XXtfG zgisjmLl4&)ZaLIQ2N33`6un@Mr!d+Lzn=Wa1oMry3U7X0h{`_+(Saep;rG3sJD0!7 zbYBPqYe#V9dT|@Ztrt#pqP;o%;w0&M;cW?N5F+L)*Zz7F6-62*;%x`z^cKBvdC}FJ zNdMwQK6Qci#GyBPL~8Wib%I(lv0w7n;fKvK6PhF2tu2AQp%)*JeYc3ZLTC=tg^e{b zOTiX%vsP$xdj5j{(3_2{iLu5ewukOte_PvucK=W;o#{^|{JR>P8=L)GqH%mQ0=t?4 z8h37Q+_sfv($S{gc(O|rjZxOrkwKHD-p7&y-I1o9+cSMeH1)WV%4Pakv@eooxkRSF zHxcXh3q(y>HXVy(4WXtYSr*GgDQ{=JaVE_fv$iLhOLVhLUoxF#(OlZ-?oYG9NH*FB zzc?zWh$a)+SR%_3^oU8(7kJPh)_5$z`e9e9l}+9n?(kM=_1WIDm9pFI@P6F$3C}$htu+te?$tO`rHNXV?OXy~%NsFPz7`#rER4Bp z6o=R2Axc~#mFTXuhQKbmZe}PPS}o>+##jaWC<&yXDMV>KnbaMC4)s2i>isC3^i9+h zHB5$2li?5wmm;dO<_M5xSha^mP1 z!F%RSc=qUf1h<^0a9z!k-wIGUkfPc;(GPX=Jptc>a~Zl3O!X84D|fnm$Ry0_dbNRhzHOnq)CSc<@rrT#)drV`;uVA5pf*%_C|-f?RvT(P)a4MdG^h=J z&t(g3R2#N1=Qjblsy>PO@~2V!7+Af-ja!M;s%t!xkTl2YI*Q;eXs-}cE%kZPLUrhq zsnpu}K5X2nQg=9vpWCC8LUTeHdq*U)De`GX`q(==4u7}%`6Iia>&RltAkQOH5=#Yn zK%iT^q7&HcytsB2tiEr@#{~|`t0g~uyeU2h<9N$slOho(C90#{L~jzp^sR0_Hs+aa zKYirI?_8R%|50^))PL&8YrpIH$a`~NsCs7l8%JoBzlQvMRyYj?-rVLjpRTX8f=io(w-HAN= zFY0Jv!8*HakGJY+^}$N{EEIlw;WsyL`pJHn-7f)7Rh$_``M0-{DM)CBtXP*gF34y+ z*GffHw3u@HqCXAmuapbS2cC>YF_tGC}HhYUU8C_!?CuLZ~iq` zU4HJ>F7mowu!ng?kh_EYZg6dtC=9&}dUcSO1^If-)x@2EP+o&ym^;IW@HcSjV@XL&9av^HLr)WnfU^gA%t%Oh?R#c9$UCkgr1G*am(8 zSq0exiK86&l$7^E;u;Cie#6r&FarrH?R6;)DGy4yS<3ZN`lW;r?H-bn`tyRwIs-oe z_5oXI2ucZL-?HJa*zg@TEaQOHO!U*Yl<$NM(>#>cAGYBR8{T2Vbgh)Or>{&Ye#C~U zuC$&RgRw!phnUerFBb7E>Ph3p!i?B(DuN$ZLwF*|%4j?$0siXf&ZUGM>OitTVd?a$ zA$RhK#f6F(9WNt1)MASrccmjyAoOF<%gmrxm{IaFlg+Y8 J1FRSp`w!2s6UzVq diff --git a/42sh/objs/glob/is_char_esc.d b/42sh/objs/glob/is_char_esc.d deleted file mode 100644 index 09291965..00000000 --- a/42sh/objs/glob/is_char_esc.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/is_char_esc.o: src/glob/is_char_esc.c includes/glob.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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/completion.h diff --git a/42sh/objs/glob/is_char_esc.o b/42sh/objs/glob/is_char_esc.o deleted file mode 100644 index 973d629d99eb687b2d2a50db2b331400d03986f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4672 zcmcInVQgE~6~52*bzD2O-Gl;LN8^eP8b+LiWlB}TTB|mC35f&+rvXvDIJT1*CAJki zG_9~y&9uss*$7Z1U?A~hi2dO25QTvP1wq-QEfkGT^A8J!HJyr7s+XRG#gr)-pK}utK&QiXE3l zlP0OUe5?4SBhh-i9d&qbTq9ogP@czEdqWIexyI)0IjRhb&yx_qOl zN#vQ;rjrK~$(W|~2dh_##~N%ip{?fdIJ8G zY7sgHO~>wDv}&Pzsnq~hJ6xq7R`oAbJ$FIXrIabBAfT5GtvKfhD!|BmF%+T+HW+%=61?FS>ExApR$)zJ+k{-4&}Ey{Hy) z7d)?D*BvZ`ihAfwP@mVspFY2QsW5P+b)gXc^z=&pb0xom=n{-dc8+im9#2*XT|RKq z)3S$2{$=n-4&fzzU=d`?Sa}=VWHv2Em$JDI-F$A5d7hv;qo;U&MYTJ34<4&b)k1hl zEda9hqW+nlD;08!;9Al{MQ{~Fi>(W%&lbWZBccAnKskVnIybD$E(B&9I}e;3^|au` z*7K9(WPPdBvc4d9R1kTHh)}*KDBm}!ZeRj7*re8P0{VrZ9wIV}dZ;7{SA3qz7+5Y- z=}MiYf&JGymltt>MYZ6BLR zjkG5+T68=zrNuK*f0VU{Gg#R^b};owEYjX}M`m1$rVnZ9>C8BrPG%Bg$#~31{;X;p z%fz!45N$FQi`R^-8p#xeVX^6S#hoRRSw@42WI}v;2ylFZXz5gjQ8VxohvO_6KPc8K zo0K2Bo4M8PwQq56Qkrm-EFRX|jQeamv$}uoa^b|;{BUbh_BgHXU9LM_w>I`R@5Zaf zIkU(iT43+0F&pX^(Gtfk0-HH;`xqCHL)>qT>~`8A$X-K#=`6*1RhKED3ne)Gw z9c6G5J;kH^9Y_kdJe58n>@Q)$8h@KC@3LVHe_XNbmZu*6gsdi7$QtJHAbE%^h%$JH zo?8{doDrB?{TQJL0<%S8jtflFiv5LFwGbvE42uZcj0nRL`C=tPfqYx5BDB^-xUD9F zuz(p8n7134<~9DLyv~)u=LoZ_3bU&Q^Jg`f!m40)3ryRb#4^jT4E~ldcPj+6TH)QY z!V`ZJvkt7Hj7ww%$dy@thX=P=C}9Wfq2)656nI)cfN578A|g}o52#cWy3(l8Jx)Sn z3Nt>Y=y!yO(eE}Lf|oY(4Ihh5lx&9=v`~mp7b!SIoC4^lg#|y!RZg$rN<6=h59LFRerrgmPdQsr2^)UF z36F&4I*!b`qP}Mzd->HrTK77A5>v@@FjI_8znB-Dv)eAip45N&3k=*7c+FHB>h6%rmhb-f{T-S^7PRzL0g| z5~rP)3_O|Nnz-*E7Yl2Hr=tAZy%A4^YJjGgKR&GbR|LO4G|x8B3nRqpRd|E*YwofS zanC5fVTf-T<>*`OW8Co;Z?gAsZy$H`aJ!#7?RRlI258RZc#wPSJ-nfZ-}D;a*2lNJ z$u|%2TZg!PR5)1P;>t8<$ARwXtcAaMi2r1ixA*aGgfie9U(|+bMkpWPxA*a_bNoi2 zB76_G^l)#MEA~^I9lJ7Z$6eK6AZWjbZ$qFhjwZg@PuV&9xCMz3)MuRi>nc#q-w$dx zZ*!jIH&fNX`4^%Rji>l#4E#{UblM-}7FdcsZ*gM3a2Bu^xZB!(1C4Xn_6qGDx-Ut6 zpVYll{|Ea<^IuE-YpI`+dau-XN_~seTctiC^{~`?r1nV-CGdAi9fI~Cp!u%tls1$Q z`a-7pVKkB((8!)A19Cqa+2*@UUFnLRai>??OdHK=lkrJ>6NxUqQ}9v3w6z~VHA76R Q{#w#%zJFF7<=4@F0k@(=O8@`> diff --git a/42sh/objs/glob/lib_perso/ft_ld_back.d b/42sh/objs/glob/lib_perso/ft_ld_back.d deleted file mode 100644 index b2702dac..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_back.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/lib_perso/ft_ld_back.o: src/glob/lib_perso/ft_ld_back.c \ - includes/glob.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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/completion.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_back.o b/42sh/objs/glob/lib_perso/ft_ld_back.o deleted file mode 100644 index 30a5ae6989208272718de9286096d06830be9cd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2512 zcmb7F&2Jl35TCc3T|2g8J2fpSRLD}G1yt;`s?-RONR$NGA(g6rgdRYT^?GBw-R!Px zr*%t%DwPj~3K4n-q8=(Pm2%@+)IWd&^wdi)m1t2Vju9Zt%_^?A;4bo%3Q^Xn21WXa38X0sqHx}{TFsyz_-E$M zo$30rHzPWP*Ej4CT$4FuIWJqKl?rb(>wcK?+4rYUz1vBVI5$P)7s0QS0HE~rJ9xHh z`r$C%{oZ8kTY4z43!YIb)vb%fx1XQHa|O(xcr|CqFA3w#(&nMu4h;M%_+1UY&%unJ;*k|Jzo@ZO!F_wwmw)Oj60KF|Zef&&* z0iIhr?{9FJ-yt!Zmj&LB1LFDoJi`p*y%)lJFd$y@vbW=WU4geG__YVb!%OEwhWXtO z@w1`=xNAg45a8T&mvNp=zT#Y}Ic3flX1l4_Qv)w6g6oJ!p$$BLVyi-UR+TT+ad(3P z&imhktiYQRc$)%GxDW@Z%05~79@sUiL7tQE!BsB~{k zMGI?lTaO>M+wD%$hxexG;$#;V7Efd^TJ=WFb+VJWiQGi?Rnx}X{>J14I=N#7brMvQGXi}aF~`5 zWg#$rJ0tp?V<`h{kxmv%u@A_o$~UdAeV<$yGO*EXZ0J=|UeH@;#+1F0RkYtz=y_!v zBA;PzgS;_iJR12@di#~}G(?A}9JloJbbag>DN29j%7HVLIdiuis95clC>(zP&ny{%KTN1maJtvJVx77KB1H zN!&Y<|6&rsQHX7j*=faQ5Kx~;g6zsEV68MuCnC{x%%b~x0QK(Q1lDfL&4lS>`g3Jw zMEnk64RaJIV$0ZH$q{TBje*Lx-vy{SroB?82f2IL@m63qU7B1qIA+70Bc!I7rpK=9 z=QLHXXfd+$+OU2{8`0;r$UH`iT5Lm8^m#?Wp>g2j!Qgsc*n`5pBrF;lPG1z3YEsll J;az4F`WG{tG(rFX 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 4d73dd4a..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_clear.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/lib_perso/ft_ld_clear.o: src/glob/lib_perso/ft_ld_clear.c \ - includes/glob.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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/completion.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 1dcd317b2ed88443a336d640830985de8b140fae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2680 zcmb7FO>7%g5T0FU*N&aoPSTW=qRLVV6p7fOjlhB;649b11|0%#v2hnVE1%uu7?9F|Nz5@ef^554SZ<2F&@Y~z zzxc1Nb|txCJchpCOQf@{hu&qO$hPx^Y^!89nsv`)+ovv1oqtU|CWZ5fwEQmf+jfw! zN>_MJE$5m1cx~k<&DINxeE#nI6yDPR#H&<`H4gFPEpqcfw}l{+ix1jF z{bY;0G72lli~7|w)l#9c6YoTqH_=^*r{W>IJQUtSCg-K-&rjjWH1~m*ab2fiS2GKo z-j4H5$hV)A3EkT>KY>@vUhx|2&(D>3N7VsCYO^hU=k3VP&E))e8$P_F`^0Nrb^r6c z-$}fpOvloL9CX6#=&0eIJx1-lTX;TM|#I6d@|BJxlfdIhCr1=s)jQ67NeHl*U{z zjqH*i*Coyl5jcQ2`4MmeDnp%vJO+t8=p49{_#0>LI&i1MBlef9wV$okU*gu<%9gd( z+O$?zwkUQziV$o4^p>@nrr7&@mpwe8OzY_f3}~%$L~z^d`k*qdw>CYGhxgmQ_0#c zylbgq({}Q9&M9Q-$sDCFHDFDZmTFh>nbgGbM%m7}S8cb|C{u?gIeFqZYVeY)Rhxxs zldAk%aQTkR7aYIL6lKX!Z@f+h6B+TBQHgs?t7&VEig!zhBHIB z;bO$XI0zx!h|D1^5RF7Q2EU?y3PjHgv64pTLi}6m9R_-sn@ZnX&JsjS{N%!I~WL=oDIBmtKk4HimKdOz}U*F*~ zd5J9tAd7reWsz# z8QL4ViJXY$0S7VmJS5P^UJ$yOlJY4jk4Oo@{^n&V`QnMepy)6*9jdqQ)X5enEY>mK NO7SiVrSO;&{R342Qh@*f 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 2967c3ae..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_del.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/lib_perso/ft_ld_del.o: src/glob/lib_perso/ft_ld_del.c \ - includes/glob.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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/completion.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 316759962549c8b271faf42591608208808aa88d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2880 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 a=maJxBD2NCV=h*?P{U)O9Qm}+oPPmidToLL 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 c746ae05..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_size.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/lib_perso/ft_ld_size.o: src/glob/lib_perso/ft_ld_size.c \ - includes/glob.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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/completion.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 2eae6442b51095d1c35cead9cc7105d3406f4d22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2840 zcma)8U1%It6h1SXnf*(4H(jl%)v}OU724fcqlPM)U{^Oa1!>yaht^?#CYueL*=1+9 z`5}SOh$Y5{6dy!r^`U)HMCwC*DTPV}!M|4Y!3Q4#B1BLueOipVerM)RvO7s_4twso z=bLlCIrrS3*_(g;@voOi@(>zm8?>yTi9sPdpmhfCB2kWoED7uQ;3U>CKZIynRiCWd zecL~pJaKg0cY4F3!+iYOO94ACICD-6TTRR9nOa^ms}&2@w1ck=9C>Li#NoLvkY7Z8 zYXL-ZQ-6)GSjt+kn=i`6X_AX-lVf)`8zXYI~U*U zTjZ-wl{cO59l>`)q;+PCd^mI#r8~bXeBdF@e3O3LZ)#oj%a+D5&#G24CJIJQ(}oT< z#nQ6iiwUp{K8C(=&hLi$>7&|61*>Zh&@|V5AU18k;9C-W!lfY5sMBZb?7w2cuo&I* z?H7DMh(Wi+e1E)4eq5Ib#|9Aq;bL?_e}>EbzhNJOMIQ7jv{`tMJKBtIrGG57@M~)R z_eg4Cwx0Sjd7Hc#*cq}b5V@x!sxdc`c1j96d1C*Bi#EL+6s-`CdzC*He1{>0;CR&sugpZS(w)2SxOu;0VeVjrLkN((YxOq)w1O&tz0ulX+4lQTC4J+q$}7h z)@b;}l97+q46~3o^jxf90Lc;4lgUlCWK?y427f8ad~GrhNuAOop{U{sMbw?4PH7uT zE5`wDlllXm(1GBy!AIK%qc5~$!zm;SXfTR)p9V>;U zF*Y9g+~j%7KZ~|aK3BfVUMD{!rH00YdUh#uFw;=^r1}<&*XMm3MtK*_2hg?$eV1Um z+V1y%2>TU756Io*{}jEi+3S+Keg4lJZ-?9+p@5f%V`mKyq@10~7B#fQ#_Uhr%E>dA zd7f7CuyH%2Wh_JPvDkx+X8wD{@CTapJ`RNN?IDp0tKbV3B<5qBbK^cgUpf5#%$4Om ze_oq;YW1Bvw|1WW{K8BQ_ym-Tbpd)A%7x-_T)FK~2$z&0uC#!71VeLBKK~G21BS++ zB8scc5LYk?h5X+%y_kZNx*ct`VpA|ti#W5FrjL*`8IdCGUf&X;I3K=mmRFgq(GcT_ z211cH2lYLLOBIcBt(Cjag z2tqy9k2&rG@Y(_KQ9c^tpu@rH@I8WF8(vTTwbS4UONuveO^MDcUiFZooKR%-6~*(3 z;=8J}1HeyKUseLAU=GPDCSd&s#f$bmV^2g)2)jqvUBbd}Lh5_MhG4@09N})0i*)U| Oj8t&(IF5DY5d8-wtBhU% 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 43f43223..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_swap.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/lib_perso/ft_ld_swap.o: src/glob/lib_perso/ft_ld_swap.c \ - includes/glob.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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/completion.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 f0cd57711baad8f509c6262f4894d7254ddae360..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2788 zcmb7G+iN3b6#r(@nOvJp8@IM98mRY6QkQ~71rywAlC~gwsa25AWSS;f(#epd+pcUy zTzA)+2fN_Z3eYjcSrhS^* zYt0Jl1~N)vO&ZL))hbynX3-bMrt7xG&9w$b$5Z2uPZ?1jipDix)X?vZjwqv8AvFo- zsFDu(qR)n(3qKOc#a}>^K8>lum5by0obEHV7$dJf2I1!6OBYvs(QueR7z+$DUo;md zV+Ok<=zIdd!Bn{iAmD6`2z!!d4>a!zXOv&9&QXyLWs!Ef5>qxv_|%IVA38RfL+VBQ z5?Ld{s$3>(lq{xgV$k2mK)0xRkDt8b>Y)JnuaWC+b&>_nLAy@YxH=gKd?2j}b<$u# zjnc8w$1+*DwMo);AaZ@~_b_|u-7D0XQ!QkY0zkdFWP5Y>LH{R)CW!bh0t3-)p)eg% z!*2r}O1G|^h0o7i`1Z3iY1qfWGznBMbw36M(S(qTn#8&i{Z}P^yoIWDBRiv5C<5vu zS)lUPQKoDdiV^V#wh=}5%Y9(uZvxxjmkZ4@QRBS&;;{U^xPcgzm^*Kb2>t$^SzHnX}%WD+jgN4VVLN)qSN?HP*n>3QwRD^|I lgUG8Y+Cy{CxDDzlAs-gKC4Esy%8Ah+iFdmv*T19Rc)I`q diff --git a/42sh/objs/glob/lib_perso/ft_ld_to_tab.d b/42sh/objs/glob/lib_perso/ft_ld_to_tab.d deleted file mode 100644 index e63b0738..00000000 --- a/42sh/objs/glob/lib_perso/ft_ld_to_tab.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/lib_perso/ft_ld_to_tab.o: src/glob/lib_perso/ft_ld_to_tab.c \ - includes/glob.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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/completion.h diff --git a/42sh/objs/glob/lib_perso/ft_ld_to_tab.o b/42sh/objs/glob/lib_perso/ft_ld_to_tab.o deleted file mode 100644 index f8df5614ebba7b1104edd2578935eaff197a77bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3004 zcma)8O>7%g5T0Gwbu zj(3aacMSKBAK#w&<)fLYL}54HUv=I9R~;O9N7Q+k`!^F+^%Sl7nRwbg(Tk=aJmB~Dwt`VRp_3wj=9Iv0_ZE!qp0>UOuout`+=~PBXwAT9x z$NPx~glZMaM?#LZo`q1Z$lpC_vu}fAzDU$8M&6IUSfV^wM+ZzV{-X-x%5Xs zE-!4zrG*XfzS)F9@=ADu zv_?;0&`P*Uu?G0kDN-xp4Y|^*2Ua50@^_`XLV2tztN+NA;<{XJcwl(+I}mo`-rcRO zEm;j$lWppaL)rqbD1S2`6_a_F7yn$(nZT+y~uWZ z)ze)_Dr#;{$rTGpP?OO-)cQj@4ipXr8q{n?OJp?2(Dx@tFXNdxLWN9BNok20NZ}%O zbYd2SX5n#S<=}}L!(1M33dSS?qN7(^3&vR}!oqiDAT7-U=&GU@=wEKADkpE00 z0AnEXDGHE!>P-7#gfRjD9Dc#(al0uRz}bYzLw+)PvDIAq2XhVg)VMAVY9wfcr$`{Z zXb62=<+@0RDE8uDo5n#Bc(23uS5UY>9}U4P1W7RQW^P`$-zRtRW|F!}Xr@K9;-8Y$ zQZ=lLcgXUS1>%P|*l*)-jjW@NB@}JqA!ixo&otF4wuAE~YQK=xCbm1Aw@mAZ*zN2`wG@2}gmRfh_F4#dxjMbTLjJwA%ZL z_Zj`^!UvN^n>&qWMP0CX2H zfzGq^e3U1Qf;weGO8s0u!R2FIqM$+~I(U)+lwMR!qK2$7b-mVZv#f)HyM#Zq@nTL_ X@da2&T}gm46HU{9DJ^fm6fyQcTX?EC diff --git a/42sh/objs/glob/lib_perso/ft_memrealloc.d b/42sh/objs/glob/lib_perso/ft_memrealloc.d deleted file mode 100644 index 7adab277..00000000 --- a/42sh/objs/glob/lib_perso/ft_memrealloc.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/lib_perso/ft_memrealloc.o: src/glob/lib_perso/ft_memrealloc.c \ - includes/glob.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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/completion.h diff --git a/42sh/objs/glob/lib_perso/ft_memrealloc.o b/42sh/objs/glob/lib_perso/ft_memrealloc.o deleted file mode 100644 index 3598486979d94d127e1dd85b7ac742daf8628aa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2872 zcma)7O>7%Q6rNpY*RGv9e<%qGs(c77NW>0p01FUlpn*-A3RIfbm5K)cY;2d!+Ia0I zscM82wO}HorsRZ#R1QcSI8`9^P)_ttx%JRPE)}i>B5Lw1;If7x1_nI|zE94_&@W={GOYng8<>o^i<}_NtL9?W(>?pd zWa`92TWV`UAv}W4g&EVy*TFs}A&K*xnW^QuQ?0lz&X1g$IR2)bW)kPR@C>^kThpYd zt(L^IN?F(K$D5(%w9uVh;-xd0ig}LeZ_iKS%?Zri;uY<=5-suLT@(3zBk*3Q=7ZMI zKe0uRthbW3^QN;M?^IhfW4{VK57iypB4q#O(^)q~e|{2AwsB{?bh&Jq+)mF^dfVzv ziLbvZ5^C<4pNChypVDEriiRvX5pKP7lQJ*y$ca7!WMvX>&!)Vl+Mq_r} zSgvodu8X}`Y^>DRn*?GsChy-nP0Dh;iOC^SKd*0ilWkFlXsX3?8wR+xVXVwHy?87H z;4QIu@;0FxE8yjuqwoDRK{qirGjsA-?3`I~iX}UijE}}gW6xwQJRc*;Q5f;DgYoB| zWlklV$XlgM!YXEX8PTQ0T$Rt8^A$5~;c<;;Sz^|KKapQ3oz0~aV+WlA&z6^Xx#kpD zTP!Q%aW7dp?l7l#-sDx<<#Ywdj|+4)$_c8Yo1%*Bd!mD%P3!fj4Vl^*5kXrC5{ zcI!jY9;Fw1qQ>FuRSt&((U&8yL=JRL^^JF8r!=Mt*Hj-K%&|68qo0`G&!+mkRrs?F zvq1EL zcq>V{y9q(YU2pqZa{1S8f?Dx+ilKW!`~(GpNLTQe4=@e?D(b11C-v%!zitivu)hC~ zA1}P{U7hBL#~gF1ngfwIRj5r$-iMt@C-Bo4sS%jJf7gZOsy3-HPU=BRizt76lXDBcVm9?H+YfyaX1 zFSvi=`1b9$p<8pNyBF`Nz!PxrEgfdJ?2EUc8=PX4Uw{|D9*(CwPTkZjeSzrh>Gzoc zdS7tbIFz4{XP4*s0Y~}0Bf2>u@a`WGkMnbMBZ_w|g7@Tzc-~EC-+sRkcoo4fmk>_J zM9#zS7e6`<8Rhp^gx}(!c!s@zeR^8cTC7>Knl?4wSsEZK-hsSG-a$M{{f_rf994v$ zS=A~HJY9c+rggsuC4o08@a_sc5keB68u(;`_n=<0IAXM4N8oJ)laLq59|!QGdyu7q zWG{{Uv3L>fL#!vL1g1};MIP`eYFMaW(yoTX1<&!P)z+Wt>Q-KDE$^tU=5}j(OI=5I zy}A9Erm3xoN2|+QEb}GtLNAv2ids=OmUnmorlfs-6tmYS9;vIp<*(fvqpvGJHFf!X z{)X9bYqpgiDU=GO{Ar_(Pr|@R34_A$P+{;*a2rN(u5Oo$^;%hTu-YzGJbHQOZT!{? z1{9}V%ogVs?fF@~I6UN5HN&~7IZd|;MpbV>s2touaEHM4bkBsE<$-Rwz;f)3biW)+ zXO&mdId&X(Ps+f#e%$Mm-1MA)So*_c61Q6}VD)h}+8ay1n|v>MDs`^^Yzjb;K@usN z7a#5l;STPRe;x^b9aHcYW=PKahL6FOlFncl8^NKchJ(V|{~kdFyKLbPEW>^vqe!=x zZt<8xjGX0gRA1rIk2uDq+tnURy7m+Ulvch@8u{-(A4UHnD)mBn zYF0d^w1t$SUPbD8Oyal-vBm0+huXi%>-y+jRbGw$k@N>J{%dXfy(w?dk9}-y!V{VvG!*k%P{%%-o&7MMwyfo zld>`+r<70R97Zo!WE^A4Pjc!?B++|CmXt|J!KHEGtN!8x9|%i5-~t1xA1kB6o)q>q nVbKsBWn5T#t1_G){Q}U38Vb1|jzQ~uqk%tb)&rM+>4ft?xOPXF diff --git a/42sh/objs/glob/lib_perso/ft_strsubf.d b/42sh/objs/glob/lib_perso/ft_strsubf.d deleted file mode 100644 index 53ae3eeb..00000000 --- a/42sh/objs/glob/lib_perso/ft_strsubf.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/lib_perso/ft_strsubf.o: src/glob/lib_perso/ft_strsubf.c \ - includes/glob.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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/completion.h diff --git a/42sh/objs/glob/lib_perso/ft_strsubf.o b/42sh/objs/glob/lib_perso/ft_strsubf.o deleted file mode 100644 index 828164343f6bc88e60919f3bfaea2a42c6307674..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2892 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 diff --git a/42sh/objs/glob/match_pattern.d b/42sh/objs/glob/match_pattern.d deleted file mode 100644 index 6b8d9345..00000000 --- a/42sh/objs/glob/match_pattern.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/glob/match_pattern.o: src/glob/match_pattern.c includes/glob.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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/completion.h diff --git a/42sh/objs/glob/match_pattern.o b/42sh/objs/glob/match_pattern.o deleted file mode 100644 index 7deb91da2e76a3bafaccd01f4ede4bcbf723a010..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7088 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 Jz;~k%{{>y&2?hWF diff --git a/42sh/objs/job-control/builtin_fg.d b/42sh/objs/job-control/builtin_fg.d deleted file mode 100644 index a1c01939..00000000 --- a/42sh/objs/job-control/builtin_fg.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/builtin_fg.o: src/job-control/builtin_fg.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/builtin_fg.o b/42sh/objs/job-control/builtin_fg.o deleted file mode 100644 index 5b6854bcb8a9493456b61df7b8d4698e79d791e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4880 zcmb7IZH!b`89sMr@7=pQJ0JT2r9jCbT?Fm!AO*SwiVJ1xrG*x27f{<=X7A3-4$R(} z&fKAVTFTOf>4+9hP3kYyHWGsk8cZ;uN@|s&sS;}{nrPP8nr=eV#u!AKh|hEHxzpL{ zR`6ucdC&8n_dMr4=f3A-_Ba22=Rd7NC_#Y&xdr*0iXx7TbThI+{1It$$ZMF8Ha-TY zV2;Utrs<@2I}$*c=0nMC4}F0BT9Hm5k&nJC=@bHg1P3YnWSUmlDdp^}R5bJXJj1em zGo5KjfrdJ(ra6)xu4GM+x-F);e(Tx?@2Ok;R{C{H${#lI!Eg$t&zCP))AAkSf;Xh$ zwg%u;r{zlx50}!r=FdEvVL zd3=T89qtEi_D_-VajWF}%MJ3m{uNVJGhc5LpBk>On_p>KKhHmBPjTA$ZjgN4ve)7p zzo{m|uAIsSzrnzx_-4d09k}ocm+rh^za|!V$ zzj+g1deqF6@O8Zo&F8^!$u}tZ4oW@=1&*;%zfM`-zd74wY@Y9gJw(8W{YZL%1(!CA)mM8FuoDxyy=hUTaA(Kxz%F~&BI&R7N^ZOebh(;5H951P^$_ayrjwIE0-WAR?)ud>UFLYJl2@ynPDG#N7pWyr7~`*O zf8=Mb3;Rmxkpr3R%6M;iU%Fr&Xcu-NzN0YQXBBLxRLG0E0hDpO;KVb9iaoM2{>9$h zBeF-`1YNC4sg$-IQpnb|Jjdc2H*VP!-<2+va|Js-(7&XANqmu&$Kl&Iumqrg+0y<` zEf(dHm1r0|F~bz^r$^!(+UB#NJetnu&0;n;B8s_@#(qA8>FrC=AlJ);rPs+BD~#X- zbke1dpL$ri!55SmmpeSW_=F|P0@Z$#p|q7tNjUudpy-pX}hWIYY^Mi zh3(Hlaujt@V1a1=2hdlE76%sS?ekFMAnGRq3p(0q#Ydw0$-sh`(E3r;??mw(SOjiv z`yRxsKvz3EEo!rhHCI(m9Dnx8oBjv zqPRvpPk#Yb65QZL7!fQ}jfCbV!6bu}Gz=vT#J-pS25x`j3^kEcm zRyYfoVBZ*EJbVOjh_DlIApD#Uy8s78gs$F$thXxBRWOU)kD^CJJ_Es->$;*oN~v@{ z?wYwhjY4NPzh9hV#h=~pd^vYZCD0oi8t$I+qlty@zO;Y&`&XVGy+wO%o%84RXZLSC zefXaj!Sh$-E68nFgt^EGINA5B{En^MIn;@yeFk46=vL8=(%R53gy7ekmT2D-H3CZy_RWJ%9`LKQcT zv|?ma#VsdQ+?Q1G&Xx4s7F2P!NGom;su+rrp8J|AHc2aP5vsUzq>AxL72{T_xTmP% zR+Fm#6*jF135EcAxJe#;WSEltFjDqDD3skXCDzfZKLabeI~RHI3R$jQll_HQ8;Ly? zxI63xy*xw2BrFx>{YV(4!ZDDQrpsUCbHf=Yk+ZFQg*RfNQZD%@k-L3h#Z*msPdQxw$|hrHYYT5xp~hE4evf&x3FZiy+G?se`N${QO1 z4Xz`eJwhJ*UJ6DPwY5F)vDvDo>HTU@(+^kF_P?ofwUcUVMh$59sjZ(^Z_?gWqleVi zZE754MpfTX=V*7S^R;``=xQ~5Qq>NrA?-!A3yR=sZCnkV)t*rYG<`l8S8MulHSm_I z{5~)rt1Ba;?>~4zVncnN8gK(_~~`mHz2VZeS0Bs zMD%4Lu~dDZg(Tm-kmS2t%3j&d1BT=VG8hy~w}W~pKeya=5XLdMSK(@p`{#6M+H)=twJ z-Dzf0xx8nZO*`%j%gi`t$|>Z8+3;qia-@iV4>_5s{j-%+X+*FYk!oh}!_#B4#)^D0 G3h`eA#t6&+ diff --git a/42sh/objs/job-control/builtin_jobs.d b/42sh/objs/job-control/builtin_jobs.d deleted file mode 100644 index c71e6922..00000000 --- a/42sh/objs/job-control/builtin_jobs.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/builtin_jobs.o: src/job-control/builtin_jobs.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/builtin_jobs.o b/42sh/objs/job-control/builtin_jobs.o deleted file mode 100644 index dfb45b98d40e529d8307c177320b00f81c9682d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6632 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 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 1db40d3d..00000000 --- a/42sh/objs/job-control/job_cmp_id.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_cmp_id.o: src/job-control/job_cmp_id.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.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 4aed2f8926ed2e72a8be44e0e8667dd704160a81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3784 zcmb7GYm5_B6uvXh@~xG88ObM2VG1!Gj;X`*pzKt9#@6pW zD)}yu!8`yywgcyhkL!}AgBdI|gYSVHl>UdH`5bYGJ0UY0UlHc{Ong4$t;2i29^U)V z)bQTM&%;kQrk>W(|9qu>|HnhDhs?;xw%ap1N_E$%Rx*Rx{%n6{g@$k-d5# zyXtb`*6rLxwXo8zR=j$(%&}!p)-0!(wMA~Li}|^+2dfjseD3N2ciggTyR2Hn9T(G% z!l`&Pg=evM{oW~x+88^hXn9=od>zSPg(jw~9>9aV=hdA;!$T%})@V6DCd$>ySjO*2 zJL=S3&#Kj{cFCnn*>OF*!B-5q1Rtp_*V$bX>}I}D+CE{U;yPoMQZYm33NIONvRdS; zOZ7>o>I&O({1`l&3N*G=^#R-R5!mI>wuNoOqseKH=j;C4Swv)VYo$_A_07{3_ zm+aCa$+W&C*`ah|`_(MKPGxOdBze7ggLzqEW7o|nvWO;B32p4c*?g&pByTcJtlpYbnxCAA$UtlH!L z)5V+@t)bJR8g4|PKZm-=30?pBtwvROlkj(&tmZH776b77;!_1mZ1$LwVNvD&)CN&aYf^r zA>_M;h5`7e8g+PC1ei`2ab(r+TbMR}E(H1agqV18BI6;%9FkrvD?+SG>Ght3 zSez1K`p}DcDIw+xDayZ6m#tC+3+kBL&@|L>aFcTO$0lt zitpj6C})!G=oP*LqO@GnxNz-qgBMq>;ns7~$~mhCubqv!yINcTPCJ z?VWk?111%dUq3KF+_FEgEzPZdw?aiE{(I zL5rjmt*z|?Ev0YL7G$-~O`4ijRV;#70|&&T=cHaP^)jiU{O6~n=Axz8g^m9s@}Gv# EKM>p&vj6}9 diff --git a/42sh/objs/job-control/job_format.d b/42sh/objs/job-control/job_format.d deleted file mode 100644 index 91618a47..00000000 --- a/42sh/objs/job-control/job_format.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_format.o: src/job-control/job_format.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_format.o b/42sh/objs/job-control/job_format.o deleted file mode 100644 index 38ddf5f8697f36c74d76a611b22735db36a6fa07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4004 zcma)8Z;Tvc7=LGWXLk1X@BLB7X|0|Xp|__!dZE!CCEF?yR7o)QX7_IAvbVc-X6q^~ zs;IUkRea$CAH<&zzDOlRBoY#7L@Mz?h)A3GbAm`{C=%!Qd*_|&?JDh?ectDJe)GJ) zdES}lnSBrc`P1JqA+(6V1c^c#2BsVY<1EN=g8wo6cyM7q*IOuGu&MJXp0E>isR$W@>cG@J-?9eBgJvLd~R)`&Ly3E zht=IzDQ#N;aUY(adVMF&uUV{3mc4)T=^fAOK$lANggPnTbkUJ1cIFrIsn;P+%~xzR zs%5)YoMw9e+HXYVw?^gj^eOWT`0C?R@&$M1w^s3;ulNq1CZEi&QFJ=_oDRNUPm|Bz z);Q^YcPqY?>ZzZZIPoHs)$u-p{i5k4WoLeGtNIQ1yCHQdKBqp7efoB*cAr}-+4iRO z3s)Rbd^rU+z{hXO2wIw;L?5?T+t(s^4{rZ@=PGuE6#yp-mn3Th*;e z#?Jk&Q+y*TnNQSy*ZfC*d@flMCxREpO8cLvCxi>ACeCh+ZvYH?Cj>$S<8 zoX9cZHa*{NH0w^;V@TEYeB4DUCR|30(zfT`UlyDe-cb3HuvPQi$y<BXf=aPyTeh z#9Nn}({9}pj_t}Ee1{4&j$N04V@m{nHS`_fIEa|%bSlNBygU1kOkSg0E(tjYOaV}D z_?~FU4am(kgx0MsOZOU)bk-b5cWXU(+4>N`9&KG$Bz;BV%ESf9wMo>WA#??7=*4G# zq|G%lf~dI&Dp-YoitROLl_-2<56m0qUT!)wCWjmbQKi3bI9S!@RC9(}R( z05l`?bM--CJqnAxqv!O&sP!7GI5_n4^g+uy1dq)6QhhLMT?lI@y+M7jU&MFfq7gNJ zh1yGViTO9wen_-n9))@V61l|e!;*tA&EEJsP=;mXfS4C!`V4;Ttk_pj{jnbF8|b?M z$NHGqPw;GdXE2pPSlj6>LMo!moPzx)BCI853#JB%+!^m?gk_LBk;hbsC$!{h7{?&- zqz2w(A#_u4t>jIin}(ZB-X6Lcxc$j{;PO4jvv6}sZhtx5Zn&e#1EJdkcb!NvleLg| zOiL#bmN^$wpGfsXm5EzgoQYdnc7`e@SM22#KJ>yZV@ytdLa9;das-$uZEN`KJ6TDx zJfMdp+P;=h=URLa=N9sxDu$=q9!MVpG5G1%gb8inSj7qtFlI$=#`6z@|1N1rH{?^N zZ@_=TU2J}Qwg1Kso3pE;mF(lMTAvR;^myXXTYc-_-G13$Eqz(`z@~}ChwlCGr59iM z=#Qs=`DEa$u4lKud1U#|TMj<*dp5cC;FsX~8KUDsoB?4WUJ1DoQiS-B-H_)XJodf^ z`4sXkXeg46a~#pl>-?frN6H77+-_mJq91LF^ntY$mmkJw=F3rlMGIgjggh zYNv`i3at(ttPlKTMXH6YT0$%z6~&Gs#LiSv>>)y|6a}$z2(cs;#PTA|^>hsh}-zCPAz&zDJ~{{gqB(=8l-G*73iNzhtM{ z;=f(KBLvGS9$4c-8Y^U~}@%+@`~T;O`j@R-zQZ8;nRsGkUsa4c**mbeVS;DQIh> z5jU?l^pR2UsNIHpaSIWf_xc&j{>Pk2O diff --git a/42sh/objs/job-control/job_format_head.d b/42sh/objs/job-control/job_format_head.d deleted file mode 100644 index dcb6b52b..00000000 --- a/42sh/objs/job-control/job_format_head.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_format_head.o: src/job-control/job_format_head.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_format_head.o b/42sh/objs/job-control/job_format_head.o deleted file mode 100644 index 25cc1fe76c5227f0f4f80d86a8025346507cae89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4372 zcma)9Yit}>6~42(Gdt^j`jN<0NVp%QzcOdaZ*aFVLkgAXT7`Z zjPt4^RY{8Cny4*J{~#m~qUF&)QAwr#p&(HxRY6qB4=7Y9l_*UFv{8$cLQuo^&D?Q! zCn@oj&OPURbIvz+_MS6y_xJz#=SNW?l(4`Ai9mj#V#-1=Zh_?Kf5KSPg5Jgf_z(85E!F!6}QGbe;f9L`+{-9 z^|cE1O3A*S?@*wI_QySvw)uv9GX>LKVsL#vpWF^{bG|~eSt}X!!VH&p-SZxn>$^uT z=>D6o&*N)MO}iT$T;Dm#w^s6-yoFmN}KJR}e-%k0fzqv#{ zG_gw=T;FzCzy9;yk!ssn&kXFZ*_gp|I>v1MkX0`l#*S_68BNKTmEdmhu_TMAKe^`t zzEagFx3IfjLhya?gyh>Q`I?eXx&n`1^=)du-)dIfWeh&=>ymGeT+CVdytPkQAAc8I z5+d%sFuC}Chy##Y@iO#oUWQP&58i?jX$O~RPv+;}&Y$?lNdEN1<@`dDS^0%netzeN z`T1iP^YgD<^q`503z@OW%jrki=f9qKXWgaMZYXelZ0Elg@u5px1p=~{+{DwHxNZ3b z#Eqn1ntbQ1@CZ+D8UsE*alr=`Ho5T&Tk>PaKAfL;GyN#vp!pLok395CH|61(Lgm<3 z2d#&)*+DZa9xgS^V`7|5o87Tv-_Gp8Qp>g)_3UVFBsY@%v{}QOW@vN-PHyA++-L3( zcFP=|ZcGiCjk?on)My*!Mr)?v7}Zjtm@~!jqz#hc%Av+|u`s-GyE(X@(&!vZO^P`QTh;`)a5xKMELU7DJ8&~}bdt`#bx)~Hvq z?nI8V)v_I<*=m?2n;|vJc5oM0ap@(*NNw2G(URcQenaWIgtK+qs?eFDr1w2 zq_~z+6y7Mk8aKKN*%=bW@;<^%Zpmim4oGR*OoZ*$25_=9>Q&Rlt+(aaa{Fle`fZg{tHOk!`9_Ae$ z-`Mq3lI7&q2z1U1>BuD%%)N%u&VREQzS4UkeGJ6lcT^D?w2E&E%iP1bDsnTv3&O7j zKWp8P^Jd=)=bP3_?RQ^rp8xw~W<#W!IrSs`jgd!A#b14~Z`;r2K6`aGG?@9;j`GS^ zzy8V(zW2k|{{7VZudnz^*VA(^T)6GM{pU_zF|$w4WfBL^{S|yHk}muh-0=~}y^wtn z3o-|J9P)h#&)dI&{2B5tMB&CjZin0rVF?0udH9SNZ$SvLT9*^>Dw+@rT|&oU5@Mgp zM7A3t_MePmEfQk;$SAfCq4SWn5DbRWyvTu8zDBWjADBcV&_VTMMa3! zDj`-LAy%X0Vh0gopUEiJDIwOcgxFk!*mDwMn-gO9ONix5h_50^&weMwSAc~6U%^FD zOe`E^_(Q${NzyU=8dQ$%5z66=l1W7MC*)l|g~;7kNObL*%ok!jmH9^K-lYF`YZqce z;$1{4%GFd7v%-5ol)(2NA8fNW%WvWEtlb)x-mtY{^mCnveIyV9VA${u&NXYQ?D)Ah zTJ^d!1@25x9y)SWelEOZ*yyxHI|AE1D*#t<@Z-VU3$NJ@3_PLxy*KDE!25#3K_*@_ z;Ppm0t*D_c{kN)iLXBznsfnDb-2#KUsH;9uSL4E9P7U3s z{Xtdq4?=PLenLD8UZ^2fHtw?NBs5k&bky^g;kjLZO8RS{v8Ew@Wf^}LH1f4!sc(~d zmDEt~byhj!HbbXj_=9GfE7k@4Y`|wDw#VZvhX3sa^MGMi4;bZwRTDh48I_Xbo=1!_ W&s#Vll{+IVvxQdC3vD|m3h_Tgo{D7v diff --git a/42sh/objs/job-control/job_free.d b/42sh/objs/job-control/job_free.d deleted file mode 100644 index e53a0269..00000000 --- a/42sh/objs/job-control/job_free.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_free.o: src/job-control/job_free.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_free.o b/42sh/objs/job-control/job_free.o deleted file mode 100644 index 2344476affd5f807cd6f2aabe028de644a59528b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3944 zcma)8Yls_F6uvV_CX;veVcA++Q@5>(-DGX6E`}r~^}wax`LCmhWu$13A#I zz4ZEP|J6fjTnWVEV_(h+!Q7ziBnyXSRh@~>l;!ztX|k;G>(*^rA1;d!=P_;y;}ex% zpvhUEB_qE8uimt!xfkyXg%ie1b8~aYG4U!B6K!W3_dhqk5bs@uF<(5lG1+8DFWx@& z^yP|=nE~)8cz=A47{|=7U1>}?-qCpPtDqoMh#Qlk)aA#-o37Y0#oqivyzn(1AFtAC z)g7x*nPz%N?e_zf-}x$?n~s}bfY+SZDi63fzoe>OArM z9j#;Tcay?frQZ72^Tb2bNyy&(?pF01?sqWLJ=aj^IbXXujeYu7r*W&>s9M&>@z9Zc zpTa9B;~4PRx4)tO)S36-IW=ptjnfSRENkw4@V3HRtMIN@cuEy1A!?ya-tAwvArX7` zYpQ-&rjmJ7?f0+$$dB(OPvBJWqM7^PczNcI!{wRI&*eQG@`K<9%exNb%QJ_{GY1Y5u)OEegXNjG0(sY)g&W^k z$IdBi+_>e+!ZxSvxy?pltTIAjYKI_I#_=ZrYAVm%8iuc#32Vev16*W|hHCd)jS!!nRzA;@f0+fNeFU!M3CY zdOg%_VcYQNZpE%u+H%uuH6nQ}$EgZA2S|ZI>(iEJ2V#+I-dL3F)A~^)dJ)EcZEZ4= zJvVh;>eTc_X%tRO=*qBR0QI(JjvC`P)mR`l3xTwy3vXd9r)d%Wf$eoE^WOoq7P*$|V2;c;i(r<`A3KlobN5G7|n4Y7)Jh30_=IG+&OW?nNq9^OaBKbO`!_*4;a5VW1 zq=nc(bg4dUCS#D!pmvHroKLQRehlfP`6}ZNtMg*1v5RD~97UFxfmJQ;62GUm= zykUNZ7$1lq;-YDe!eX3WdWcDYyZEn^aWMY)KY4Zf8vJ^fIx-UQ~!en%6 z1XDSY($Z%^_!g8%Yluv*57i7*GksO4W})WOTS7Glbtruk)L%h~Jk&z^PKZM|oj2j4-FNrKt5n_9dEZff~$WN{g>n=1)S4?GGSrZ0$3^zJ!I(7q9 zJpbUv$;I#7^43#NKK<_R5B>VlqA!yV-~Pf^D}K6e|J{f3>23Qz2i8v@9WUYp&}kqZ zF^{eS@;DGKiIgpNvJPa(FZK*g>^pf*+6Du$FCj&2_kHw8=V>(35*rgkIBj>^$*^ThVK=25A7)f1lPGC1mimy<7 ziQ-_4Gk#P2MDQF8;ZS~|N?%E#fj7}CckFZ$|1Uhh>eR96;2($l6D9bkCXoICKFBjB diff --git a/42sh/objs/job-control/job_getprocess.d b/42sh/objs/job-control/job_getprocess.d deleted file mode 100644 index 10782c5e..00000000 --- a/42sh/objs/job-control/job_getprocess.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_getprocess.o: src/job-control/job_getprocess.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_getprocess.o b/42sh/objs/job-control/job_getprocess.o deleted file mode 100644 index a7b989763683835eb5b0c87af3987960d9078d24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4380 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 UtO~y6EqkoSr>$qt{QpDz7l1G4+yDRo diff --git a/42sh/objs/job-control/job_is_stopped.d b/42sh/objs/job-control/job_is_stopped.d deleted file mode 100644 index 891c05b6..00000000 --- a/42sh/objs/job-control/job_is_stopped.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_is_stopped.o: src/job-control/job_is_stopped.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_is_stopped.o b/42sh/objs/job-control/job_is_stopped.o deleted file mode 100644 index 85ebff32caba4075df3dc756e7f7ce383ad8a561..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4868 zcmb7HYit}>6}~g}%fVl4DRp z8=QiYB#2^Jo-^hJ?ZDnSuxIC0J8Yem4f1i?z78R{HW-Jf!eUtkXRtA3xnA9eENjdC z{r7!3>=q%PBU&X}@-L1pD-?MrD7gQn0LTTc(egkbD^l*1*SCaSZRDeCADj&ahRin(_>9f_?UQ^JxtLeveh+=j`gktBODxzJ7e5zrM8?yv zp!x2Rb_Zm7;S>}ZiqpHU+uoHs`j_1J-+PWea^-1piSD`M{-e&F*mWhREdy`v=)gqo zIHfmt^wr$ai_(o9m(T&}OQHRCZv2tAMe?yep9JP{db|b?NMCPm$sv-BUlGa289Xlx ze1KY9<}Tp__kiW{`N_#ibaF?>2R_J+|Dxyf7y22TnQhy4Z_kW6b+=TlWO}=Lx_UCp z>@qUSs@@(LUF+6#tzItNy4}66I=ITNR=j$(%(hi>k-4k2np5bqMfWZj9Nk0vtNRN1 z?saS2Vau)^uxbr=Sj==5rHUs?1yOcA;aTMplp83LJLr_!a!U_8f|cd*-N@JR()u9m zaclA9Xm#d3Zq zAoph=aj{f)J*!r)+KvmCk!pdSPJN_Qb%kw}{2`uA1vcBN`hacu2<&ob+rqZtF|}%Y zIA8bo$LJ=LTXUR(@aupn0I(f9*p(e@%a&{M_c`p8%a*@SyHT&>{48wQ^-;Oj8U}~U zcc)tUQQZCGlD=C2^V)K}um2>&4EMHo6FE>=>ZY!8%QpOx*YZlf@;U8!C?leiTh}qM(T?ghSdk?WGVj$En%oGtq20_`-XIDmEu&^zO`g@Gv~J;? zOn2O(b}QyI?|}6r`?6|wt}q@%^D;V(MaC$aZ=tE@3=)3`X<2DJ0W=MXq_ufaS|oNC zRL+bk@c}e+oQN4$u!i{V&}@SliGLw96EIWpVrV8|&W-aE(!sGQn3?!jVD{2%huIrH z6Pg_``$QYhW;-y`P!fyamRyahQ?#vsa*0P2Z45f1qz+RV{)n%!$5iyK@G^FyI>){_ zk@HY{w58_Hq5Xqd#v}YCEdL0X^U!_+%Rk-~YBp~E5te^wxAU>--yq?4QN0N~vMllr zR9|$3ISG9y-q`3$5*l#WOluVh>2T<|cBg@-4 zQt5bzz!$?x=%Z++IZQvq7FqDPKhvMXYDFmg)UgD1@UP&#OOKymaQYDk-9-nK>0@a( zkHv>^^8fMScz#|xNru7&Dnf_Wa7jll@oj_@G?I?se+=H^IW7U=g@kh=6N%Xn?}^gF zhPouRYcM_k{KV3?zPhcr@V9p7{3rkU%KQrtF1~o=`;kAq_>;~pFFy3bcb-4E{(b$W zPkOV@TzY10>u~D+=N@~v=g^T@Dn9z$nX|us@7XtZrT%?vc;V~O(+B6YJ4@}%>4S4| zNVh{aLGFbVAp0T5Am4&K4Y>e$6~ZjTJ3BX2M#4wcf%#ehbGNl*u z86l=Q2{C&U;_ENznb-(1*GY)kgb*`~gqV2=F&WDlnNSEZ!$^9jBSMU62{B6$V%m@p zLy`~!P166b7%=dD^PR>i1~#^t-jlMs357G<~BM0ni2j zKNU^moEAq@+o+ka*qn2>W_%m>g(1!SnU(-x&~w1jl!j{JY!T*|3KOoH1&wXp#WV$Y z)rLUp-BK@=dXdyn^wV2WQLliVL?bM0PBTS&lP!5dcN|k8@8xl-m7%iZRV%_O;tvAu Y-bMUb6}-<|_DGG_Tfcqv{|6ZU3$?`OMgRZ+ 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 fe7a65ad..00000000 --- a/42sh/objs/job-control/job_kill_all.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_kill_all.o: src/job-control/job_kill_all.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.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 88e746c47eab7dd787d191497df423e617d6fc9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4204 zcma)8ZH!!189w*U-1*o$J2U%XDOp+ume#GMJ4;((qZ{mE+f2(gMWB2n>UHMs?98oq zXNI|V3T-fH+(vgTKfsSjl%PL|7=nh7l8`7O5hX~BM)8L~B#mOMB5~D37D!y5=bUr5 zJ42y8$$Q@OKIc8peb2e?d++)6J8%9kDTEOd=pb=O%R*Oxpj{4GA^1M+ram?CAlINp zHaG<(M-a_%!s>mY8Y}zueRth{-i}6|9*~cZeH8>IvA8%%6*b41tyVfUCkWdTa-6+) zPT#senidhyU%4r?w{?8VlD(vj?1;~Ax)SQ;yQRxph_l>WckA+q_{x<^yLycK?~X6x z`?2P@R6egU*W{93z6@U=+A$r)BPnISj`P#6?}G8Q%Z*w!crV`1DxABs*=_Qn_J{D}4&%j%7vS3U37ZO&t# zq0?#H>osN_XJ+qtS0NtOd<6}TfsZK}&#UhWhCO`Mx--|t+f@r3r~7;GtmfOJrbS8f zX;WbP^=M2T)tm1%BxCP>S2W*2oq&saznS-mkLQ9ZA#C-5WAGax!vMLjz0hNvhTH;K z-}neh*M`?Se8BifY3VPeg?|*D66feuvc|wvTH3c#I!)nlxwP zrPGI&OQ+MNr9FDDMIsLmEVtZMLI6V$5+u~qYCMa!FAzb-Q2x@#vU zxWw(W+jyV@Z?!O-Z_c6=!)klpYX-t~yg9#I6QN6mMXuA7fa^#EwjbH9a9wz;h2+-D zZ5cdEkxW6WTE%nND<%aTl_!AXQHO-H;F$4q6Xh^$dzDVepd9%qxpCQX2kIzW?WS7| z;G)7e28=D)AuE>6Cq}XZ#vroE90xdP?CFbTKW2a2{&40K8RYbCVQS#O5Xv?usH_c8 z%1wyGkP*w;HrL?a-Y;U=14A?>Q6VY*=hN2!yV15W-M8k8@1VWrYtc8eMvA$9!{CFm zSK&c7U}26NwtXY(s*M6tHI!mGiHx|G3hid4WFP(M*QzZ7j5}&@Fmi?wGar(74`YBg z5Lm6RgU}fKxw7itqBRsJL;N^8>l8W;(w8MpLfvI;O@0}g{??c|Dw2P~XggL}+sx5a zGLO*=t&fjGSl}>i#M5{y)-bw9 z0i?Gi9)tRvwJG@ov^?`Gd3-;BCErKE9E~TRhUIeIRXj{aD&O4I*h=y&Ectduu@hl6 z;PxD#^icXmC=0)d(rwcv4CN=B8r312!qk7*{oeBrFd1crL60k!uC;`E*W&ZLx}N`H zKK%I%YoRZHJ%&g?Te#M-NbrIo@>dIuiW1m@;BSFzS(by4@BwerYkl9i|IRa~-umxX z>YHAEc6jg8Zyd=len0hx?>_#@+q>fRd_HsROvl`k|D8KL^71_|J@(Amt^a)P{*S&p zadOfA>df4x#IJ4&k5q<6zV`3mj4XpQh6C9E*#?<{9EMaN9mpc&+mIhZUVyv`;Z^({ zNIwEDKz2d)L+*yKHZUbvEE^zbObtRz84WS32{G9<#4063ts&+bA*Qp2m^6f#NBG*X zu@DF`7c|5qB*etj_aY`8A!ecGVwwZjB5P= diff --git a/42sh/objs/job-control/job_notify_change.d b/42sh/objs/job-control/job_notify_change.d deleted file mode 100644 index b4e6f7ec..00000000 --- a/42sh/objs/job-control/job_notify_change.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_notify_change.o: src/job-control/job_notify_change.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_notify_change.o b/42sh/objs/job-control/job_notify_change.o deleted file mode 100644 index bd2da9f6a485658a156c260b376b3ce93d67aec9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4268 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 jk;?7V3Ad}xG3n*(xg8?QClCgZ{O?;&dyBd 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 Y1|Q)bY>k!pO(E5Dj>+$IxWn!Lf4wFQPyhe` diff --git a/42sh/objs/job-control/job_run.d b/42sh/objs/job-control/job_run.d deleted file mode 100644 index 22913996..00000000 --- a/42sh/objs/job-control/job_run.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_run.o: src/job-control/job_run.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_run.o b/42sh/objs/job-control/job_run.o deleted file mode 100644 index f503a3de0650af9ecce79e067c379badd4bf308c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4044 zcma)8eT*Ds8GmPXXLj~xzj}AnYiir2*CGhFTYD%MFtsg(EP5D&Erq1bba(dSrrn!e zXJ$*=a0#ZQav-Ksr| zH$8;+;u`USligMS_n^evDOde3Ys5p*g^` zTeqy)eS;&Om3T#I+zmXQDFqw=a?gkG8go|D!|p}{ENkU?a8BawmUu@bo>YY?#9Sa;N5%F(%njJN-G!?w+)|J%3I}FLDuB?ESEJ>cVjY(QQHKI&~}H zhE+Xek`=4?KD`qkszKm6wO)WS2&`ti+7j)K+bV_~F`AC&2UgeX*bSd9ZO0EVOUM{( z13r>lzH_P}*bPo7^$@V<`cBJj)Qd!Rc|!&BojRv(c=Jxj7q;buF$6XlU~H=s8f+`H zKySyoEo>VeeN20<>V>nj0*T~z8;!aM`v@sAG&^3S<#l>)T`236?YS{6kt^sMbL*5* z?7CWlaa7qolE~d^-e!Ix^SKO4OB1Rz+%<+w%L_7XJy_%>gg&Mua;C{KxQeqPk-KY* z$_x_P*amf%Y2r&7i7ZC?zQ}E}@2k-_(+9=3tfFwD+_jkK7L3jl$TWAc48~9+QH>i+ zR*?}mk)d6_mW7Bf=Kg6A8e(l2E^S;%F#0(L)Qq3qU3ROK2i_44sA>Rk$F1 zyUs_&5p`4Q6gWN9E$XC5eHGFx)Qak4GW8Us3)HSvCyf-nmZ@!3Ckv@C4r;;NAFFw&6XqePe+H!sP>bdQ#1U*rdL7gm^Bb`` z3U#;0Fp}Fq>6DVa2%by8cU)xt4Y^9Yp%_hYL&*nZsc^&@eo3RNe0fg=EIbm)k-lMz zY@wOQ{?&Z=S{((A(-AFt_Uhmoj%#LdWMfpsravzL z-WGUC2_CNJ?eUGlS!a{}o4vu0{&t`+ot!H?@zu&qC(-bH4}Hdmt4HaSiBt5SN)b zz-8rHehu_J&@-SHK<7bkgFXOdunSv2%rmHh>4Dm0V+PX1l;kae#)YeagnMrdL=$Oi-ir->OU2Qq7EV){rgRuoOIfTR~|h$fb&G%<5% zVoFLA(~BmioWyz`DordV>BUu}iAgF=tRR}WsM2&+npon}#0sVti(10}zpP3LJa+lA6(j1TaXb@zSQD06%4)1i>HDoa#w2^z;4kG!R+`scN*{zS-i{eEa0^k=k0$c?R`py;Pn9cvT4#SqQZt-t`@)K+kqr??M5 zp1LK{^|IvGNxoTfF#7BNker3j!ipQk0X0mZLH)*|?|X-I!RL^L8-KovHxOk!s)RLP j^^S#F)u+LA+!j``7e1jZJd$cv` 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 f26914a5..00000000 --- a/42sh/objs/job-control/job_update_id.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_update_id.o: src/job-control/job_update_id.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.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 eb8f999c633d5b1bce16a7eb6f0985289a8bd74f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3980 zcmb7GU5pb|6uvXEVgB=`$7W&{6loUZU%kqj_ zy}%Cq4cBenaLNy@A!(40)4r1wg1NyNp$eO26^i|hLCf{(K4e*|Zd-ZF>hQ4$d3JG8 zXurw)0?+T&X*Ti;_{vq=hg z4r%3kOU@pbdZQ5#e}(raKi_HdtLH0&MfdM~AGCaPD=rf~rB2H?oVWcHTk{L~u4`FdOU z4$hFz+g3a6dN)YEx$>=lGebUXI-jyNzp|{~aJ|1LPJLKuwR~T@I*fICR-?2vpJ31-^mzQq9`zj+H^v1AR@@pXd%meqV7?3a8iB;SgVPx_`1C29I9+;3&4 z;xo3c_qgP{UM4dFJ~rbY^5c6+Gr$a9G?Sl84DnIu_0X(6cfPTb`zy0{?WT2^EycR)R4bXjp5C6`%woHY zL!rB`7f#QzB|R6PFWkDF9jf+s+trF!ua;?Bjanh^6)mUGV~gxY7ZlmSd#gi*e0JFq zw`AG1ZC0(}mPAvma0};9|2x=Tu-=x;+#bck=k;d`-*~{2)|sd3}zY?*BPu73mHyS;jQDAisiCZ8^q)_r!ak7=puCK5we!xc50DiTA!DkrF5VS)Ef zP-zQABzcu-qCE9EK!Optk~@`1(lj|7wcn1Q8#?Lqp~~A((jq<;fVwiL0yG9BrkL=o zT~Rnu@*J=)2U&_Un&ws95IS~Cu-gsp1CbCHQK793l;00Yd+J;W0c8`nwvtkmi2B4< zT%LFt{B?j=dw^cYNZ^%rf?nzT2%d;;L#O#&H2Mf^eFwUSAZ=&F#-KK9iwr`H))uP^ zgz*EcyF2-T0Edm5si8QTptSM4zNLU$od z?IPiRc%)HhlkhuuOX$rZMVn5_1Hhv5^$TIX2{Uqs_6bzXh#rB`uK|35{(OBM%-@OS zbS7oOja(G(hRPYHVqOB{J&2J|FtNEhblc$?=1rlSgqt=ug>DM&T=OotpFxZ?+>H4k z%s=SPg4<{A2;C02D@1~+UdhKXrTuH@*ontVXY21@^v-)bj@y5Kj(2*1g*i409GtR>~X zTZFPTt)vq%gIkERo(1WhAj{-rc(#d^$@HV@we3OW3vn%CRq-Pt73E~I9lgRiAWF-n zE6Ps)fR}YDcDcbTDcf-Cp_g@*_FdYHxZB*U75q(}eh30Y^W}_-9P^f4ucyT0I~WZc z`$S%_aH7E=`6mDXJ7g*ntFrtnH3*cqCLBEQa|z;cCUbxJEs|2Sc>HGVEPbCA8_*2> zMlGqY(X=&M9A+A(afLQpe*pn&w6-;xx=)MhyR;ZQRd+Szc2&nq6RSZ6&hDkq$oER_ zW-O+Ad7$;I)QhB^FEte7^k1dE06GOAY&562VpfYUdBSk4AAd!8yspY%x#(3Z!WzKu a41R0|@Y5{#r(@Z}HU3}t_S8=l3H|~^-(n;H diff --git a/42sh/objs/job-control/job_update_status.d b/42sh/objs/job-control/job_update_status.d deleted file mode 100644 index 19398d4d..00000000 --- a/42sh/objs/job-control/job_update_status.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_update_status.o: src/job-control/job_update_status.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_update_status.o b/42sh/objs/job-control/job_update_status.o deleted file mode 100644 index 26a7e9fae55bfc44f902f0df141e3e10efbcf483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2748 zcma)6-D@0G6hAYYnQXGj?k3TyRKkLdHehyR8Z_9biMFzZ6ie+#5X*HkyGb_P?5;Dj zO(LxXVx=JzQ^W@!1QGQ~!H2%o7b*2s^bb(*rC^}}`=UXE@ptClNp@$qBnQqtANSth zJswE8WflPmk;_k2XN2oHzDtN>=f_XK9!yh!^NsR6Q1R_7Aku4e z#3%8JW!ra$@jAIUHT0QTV@S0ro;5Y)6Gy59NEAn^{jy@#Zbt4>25HfEU2-jb~LV#k?q4^Bi77z8eZ? zRK;{<&-f%>d1}sYa5%nxmCYfAcWa+`etZ?n4&$8+;r+HxJa4JeG~ag>-j^yqEvl4V z5$cD`7mv<|49EAV|EP$9e81Wg&o0j+Pft`!3x!fnh>2snM-z=Hyp(eO0z7tQasO1S zLhfP+h{p1hZpzQVP*7tnc zAG~k%_~zP`&9&;5Z>?-n;*;CU54QihttGDV?{@DXhUWY3-C?wqACnjEjPtWfO-!6S znYxsB+(NmO8c7eP2UCabBL0GbkwF;g;i2?%{p31!X0ALnV3$jtQ!cVDs+FAOi67-220veiA0 zky@@|Fj|a7i0f?k8Y>VVgCkjkH+%usadh_0@hk@tFjDbJ+VTg#+xA_Aqx6r4Ov@#8 zd)XD<>))Rm{Jqw+U;*fCJ+~cU0kIDU=UY=U0fjL;ySU5%coqmb%M7p*H*;Hxw5~8EU7b4 z9R=xW@0})XF{vdxTBGY&#UVZkUfyD`?QON6Xgr?$P=BpcHiPI_tkLOHjGFduyc46w zXMnZPYoSclbuxvLU99HvnZl8g=j%Q0lH1_O2=)Iryd1nVoFS*vvwSyqbaX?$9Qe6| z)W$vXDU#5PXnXW+!!#$2Uh^g6DRb0lA2r%04Sn5cGo#-ct(eixqlWgDZX%mEun*e@ z`XF)Oz+=jOLE2_U$)}axy~Hxv0Ju5)E}A Mv0xQE{yT{N2VgUNYXATM diff --git a/42sh/objs/job-control/job_wait.d b/42sh/objs/job-control/job_wait.d deleted file mode 100644 index 3cc04235..00000000 --- a/42sh/objs/job-control/job_wait.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/job_wait.o: src/job-control/job_wait.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/job_wait.o b/42sh/objs/job-control/job_wait.o deleted file mode 100644 index 3b16cd881e469db17a0a9b77233410d375ff21a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3328 zcma)9U2GIp6uvXtnQpsfTPPp|Lso4?g1cK<&_=7a!s<3aF#I+eyqTSywp+F{o1IzO zT2@H_(^5zv5o1Dp(D>kkCO-J0KHy)1KQSi82OoSeCMF=5KqOj)SiduKr`??v+LNC9 z-E;1_-#zztw%`Bz$A7hqNg;*;S_A!5K@o#O)jwqFGLHaHn+ljz5}V~jd; zB%JR{_3fLp{o1ss5Fh1oG{PAE$T&ve3+KA+6m#Z)a0K~$p1q>|C)Mxipae-`$q72RCneZ z)^s<;V17QIzl@9XX@x@G;HEZA>CKz(RgqtpNa))|^Yi$u%#gdm!TdJRg@Uwrz-sG6 zWe%!Vg!7903Ys3|+Y#W~v_w8%In!kf&i4($7ZS;gf{*0(9r9~IoBI|Wo z(0^jr)y9)?#DLaonCYJQ$8Vs~{RSHB{Ab5*%%IDu)YW&T#*_4Exv~z$#RZ4EavE-t z+EnUx`uLZzLtl*N%p>LTF(Y4YZQpFi#xqvFJf6vy%B}H^?6_g+z3&htvuB^#UymrLk~!7=gtGWVn>XkowLkXXQD097JEp~Vc& zaJeQTI@(dQ9nC4(Oj<6rMw^vTv`JkTT`sM_UdstMS4iFUq3C0g$0HjWdYhlZE`}5) z3s-M54&at5Q)ywL=#!BM&Y`-R^)`EbvG(-g^KM+2&LV4I4--J1^}sFt&+hEq^c~Ux z9RX6KG)fSX&y5ybo6H*doI`K2wEPv%D$oIwR!|#L@>JBQrvM|+n)T{=Kp7fJs}yn? zDkGWn-kvn2=4%7$B%bYk|5x_aT|g*vlL00u08-hP>|kH_;8pN17DKNCDV=N*x@!_s zfeQR|$-TU2ov5wt*hHixw>GKYJ?$L)@WkJJ@EwM}3_S4=~HCqjZ zoQ9H%7D%{goybMYCtP=%Yb|o5xgy$=X%C2^O8kjQFYRH{Xp_{`P#ZprC`#^L=)^6e znVAv&8S9BQy(({8=Kl<%5oC52r6k>oE<-8N7*Hv21zECW7n3rMOC}rQ$p&1 zB7dTU!%5hE%6jz)jtL^&YQU+o#CtuS#9`ZKW3RvfBBgB9-Ji zOql(Q!SJTX-v?sk_-jC96CVd+o#Mly{dpkXz<4*1;4o{TfqMVPCs+sYkE1|emR@dFO9t6 O7;_%mu?hv)jQtNE2>Yi1 diff --git a/42sh/objs/job-control/mark_job_as_running.d b/42sh/objs/job-control/mark_job_as_running.d deleted file mode 100644 index 1a028c2b..00000000 --- a/42sh/objs/job-control/mark_job_as_running.d +++ /dev/null @@ -1,9 +0,0 @@ -objs/job-control/mark_job_as_running.o: \ - src/job-control/mark_job_as_running.c includes/job_control.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/mark_job_as_running.o b/42sh/objs/job-control/mark_job_as_running.o deleted file mode 100644 index 85489f31f62296431ae8b127b0419dd17666aaa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4500 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 U{;T9%q&jwf^Pg`2QvmjV0ebTMd;kCd diff --git a/42sh/objs/job-control/process_format.d b/42sh/objs/job-control/process_format.d deleted file mode 100644 index 7a25b017..00000000 --- a/42sh/objs/job-control/process_format.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/process_format.o: src/job-control/process_format.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/process_format.o b/42sh/objs/job-control/process_format.o deleted file mode 100644 index edcd1945e4a130845fcd6c3d6f16a3233b0fbc94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6368 zcmb7IeQ;FO6~Avc_w8;r*=z`bI3R9k6ATXd5Ti{oC{&_L0P83QVs)0yW;a<4yW8Ej z7_5{?pluAapskLzt(i`pX=kj1GulxZG&9;(>4&yjt=2#29|D=u%CtCAos#~3_uaQi zmZhFhRPEkm77{} zuy}878fp}-f=ioi15iS%jl}=`8Qi?Zd+CcBcD7U+F z#+Qqw`xE)|@j6TL)lg-F%xLGt+ZKzf5KH58@bq$s&&P{pvxA9fI<}4Boj2d>b$kbO zKubS2J{vF7d#769()ixec=a0Zmlueq;>*V3rFb8g;Jtf+c-D^Wobz3x7x6zjf#)s| z4~JMmmd3YG?+<6bA63s-S-V@ZzVXa9%+rb%(s!rQebMNKwKFYNYrJ7C49ydQNAL;k zzcO1^f|nSGCUaO_d$9CAn9z97YP@lcr&)pHH{kS1i|03$R*0qZ9jdgoPw6PO)Y$y* z5T8!ztoWE0br<^W#B;C?^-bt|K{tWf2g+;UCR7&Amz8*&vz|A47hZ0SjJ_WkIn^2& z-FbGjaAx$@(~+^AXCq_R@^5tKNpPsU+9UU!7{+}K(Xo-8XGGOru3u#TszC&BNSvg@ z(a!hAI!})rGe*vesyz%Ii80+ZS(atmXAz0+H81E}!Y!}Y~kfX?6arEip=tFuG zIj!1z6{Fd|YTOyM9o^6#Y1nmkYAP~{-dHEx4Ik;h%9;}p^ny5ptf%zOl=^PyLg>xzo(jGXXB zMy9YtO^j*(suRe7g0eNBzbk0-`&a$J8JpyKzYwAY7A-Q?t}Qri5g8c@0*^-sct3J% z?4-b8bucov@oZ$&K%_xLnoKrVU9tz-CF?g@05T9q+KC33A_6kniG9erx;+v`1ZtBl zrpNnso*o9R+RGzG9hKuf{D4mWMvIhL15b!;xU?vbV9ow!FC)6jgAz^smn-Xt;B@2| z(#D;w({>0DPTCOGth7DsjLk|Lv_2zkDaWQb>0;U@kDo&@YL!EF5e=!3$Q9CQyl_Gx zkuT)4iF9A0PsB56E0r#w*Oy5rl(I++rK}JPLZUGwLd!(xUi^i`8h-FX8#Z)r3~f*3 z@~KQZ)ZX0M+!|_(58^A`)ZPlFxot)B<;z4q7jL;U)7wP&TxPH(o6E!#`Fu2)$!&{S z&2iCkYaSRa{dZ^X?2EOut;i2VoLi z&}1r?x3YqKCTrzI7A|xQB46yqwu|^cEGM!tYXIp@#FJ37X*Sg-P-l8{Sb$!!0t3mu zR2ogDV2NC!4-SQui4SJ-h!wdg2R;tOt#59uZ@+VYpofhh9+q>i`7Kss%MRKWTH>P?0Nh9UN#N z*YgZoa9f`zciXRtE+^2i9EFU<=pJHQr5q@;Ds5&dvuZjJ@^!6l=@5SUSANspOahQ3I|2G=VA0uK%;Dl=O^g?6J7W1{&OH6 zuSsnGVl=YMWGtRvp}7>*Z1i3ZvRYo|yBhR1L@1Zj86%I9Yoaqoc^A26IP-Obdz@U0 zD_rN>0gic;t*-E5-!~lYa#uLy+XIfaa)m40=;KtB<`u4RtM5UFYjcI$d_Mrk{KzX^ z;dWutwb_Tpe+>pq!_1=Z`8t{#$uFxQj!}6Kg33poMwkzw8=#pv&K^-bhtS*xZSNA# zVRW~m>xp=1pFwpm_xusk$I&%w{7-;LFJiuB4Z|+J!uTa*q0A8WPbFB1DP8uh=@+MZ zpL^=LXa8RI$o;!4zUa21W>JSx)iwk@fXbpaK4`Pz;2xCNTrL*1|3LYeRg4LSoK*lVW3`QjTwIai07JbM{D)`c+83)Mh;FSAtsmQWw8; zSN+k=Pw)BY$h}v7V*dWi)`IbqPZeAZ!Do&w{h)RD+x`bOBrksOU#~9;R&0OzjrjaU z3#$`LG)uw4=;k2LO$nkEvYNoubM5%@5r}A?O*kC zn?M0Oy!8DB$AfvRd4R{*Hb)=FSwEM+lnM3HK@X=|Ik3A$ZKO1+o;tQNo(aIRi~DV1 zNN>5fUV6+f8SIc{9kSe9FDt>-bxE%U`Fd%BbDOV9^D*f+JEWPE^T92ov;*WZ=|a~u zdz{flW@DS_nodf(M|)&7 zam=?Bb(!zWYIE*aX5UcdYTeAXvra~Dw8$+7|I=|Rf7WGw_g#v}&hJaA>0BB{qb zUL4&G=}{T5a}l6_#Oek+j`dJ;_90gK_8?ZKBiJLWz}6v@E?L1N(ex2b4{G{FO*GvilX wG>Knr_#b-~|GLL-w%K}uquGMR|H137`W059rr^|%N2NrhWGR&X)hWdP0J-a2G5`Po diff --git a/42sh/objs/job-control/process_free.d b/42sh/objs/job-control/process_free.d deleted file mode 100644 index fce1f36b..00000000 --- a/42sh/objs/job-control/process_free.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/process_free.o: src/job-control/process_free.c \ - includes/job_control.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/process_free.o b/42sh/objs/job-control/process_free.o deleted file mode 100644 index c71e91eb7093e916d866d067d6c0f1fd6429dbc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3860 zcmb7HYitx%6uvXNGdtaFw_6H`0m&xIqZqndO3_9UsiN6xF-8UPIc{gC?clPz*_q`P zj3hN`gFg^88h5kRK=T~dmeMn zch9}|+Ixq#PlSVYt^z7|k zAP4$w*KNA(oE}PdN`ZJBc0p1IA37>_hd$({S+qy%!)2poO?Mb zv>#=Df#&yWgFKB_s#w0c74Hp+6UO8@x#l(_USV{!W^ZM_&H06R&q<66#dFGI6^69p zZIq*Hk{^}%t;71s?VB;bTA@5{yXWKG)w1Wu+nOf}ZAQE;1z(cxxrzD-uttA|b>?D3gcxLCGom zh^_OzPvR|;$()k&E&W4&T$dDq6Tw0=`FS7@{#?4x!PkN#4{no8KQQuBzaC?xukTqS{0l0kFbMAZSJNbV4 zo`XX?PwA17jqB4}?V9UU%IU#uU$!sZW0i0T^bYnx$qw{qS1c25&B|@AjP_cUvRA8= za@AVJvRxM&X4_dylM7ZD+-=hb4KeP z4yR|1l?vlQzJAgiR_Rg}C%d&sGNsQ?b}6&4|7sS-S<2dYBzZ;R%EZ$4t69UEP^DqG z8&~r{ldAE#)aQ!f?jQzl=pqqGu1O?NXGSONLbP=&kz^u4NFm}K_&nTAWe|m$n4=7L zFU2tJn(y1O#AiZ5`3A?&@aw-_EN8`_-54;x58uqd6Qo{spu=wXB*+#eaY{MJ=ah=EdWX%GCPQ%z}7lsI5>l z>G&LIFY;Tzn(2w>!fz|pOkbR1`EdhkW+1)>+G%>OQZs|X;Lyepy4WEMrYpvJ$oeL9 zUqjcHB^ar+*U`5>755jfZUOLR$@HZSh3u0@GrQRBQ7VZD|u+T}f35LeELcz@%!L1qf zZ`Gh;Y3I{Nd^X;x%oNiRyqRfBfHNP;9pK($&Ls!$U-a?q2Oj$Mon5Q`&_B7xo4fzm zt95m8>h&W_PWJ77G_h}F?2;!=AD*9T-+JIPYxew$y6h!Z`l(&tApRss#R9QxdO%l# zZUPlR9_SI!v!Iti?}0u89R+d6@F%#1bHUMACN!~bq={Qj6DvWQ_Dd5_N%$b+E4^4G z(u*gACLS8x18l4$ns^MP7f%^YyFt>#a-@k>CgE8bG_lsD7f&ipEGubZ;n2idl7TEo znpk5p2_9gYc%o(CA!%aq%fNptju^I-n}?{d$*YIBO)ab!W#=tI*`88T?J;Ao9AyDK z-#bH~vuDGrOAIAb53AR9$e%l6F??0=B|H`7k7NgWg=2t}mPb$I>TWIPl&w;|Xy=@j zgO@d1+#PPt41TUjC-*!DQF2Ddyb#32zgEo;DTWOovJa+WzQ!KQWQ1E--LlU z?TvF_`tMrcTyi}K{v_J~6tqaEqUrHpw5WcA)}i01rNGr2w4^?%bx~Xm>sz5Urr)8d zuqyhbs$*FI!QVCDz3ae{Q19j70Kcja9BK7(XOV|*ho7EMH ywksessD8yX>XaMxi&}J^{l@RY9K(a|dPTeBi})XLT7=9WF`~kFlosy;`Bu1Bz78H^+5>(6iZqIk= z`R;VP=QwRG2QHKtQ`DwHLP%BfC;WkEMXC6wP)H@90tG1u0jj`73Q7d15d`9$?X&xOtarCzAxB3|b3h@}r^{5aobWoh3-Y=$^vz>aWGA~cdZ^@y0!~Y7?GSgz%hqaT%dBK47~UQ8eL=?ekPOJa zYkVGFb?l_O!L9LKl6YGr-uLej&yBB^&9&nFs|D}!J>og1Ypc$8o$dwpo?O72_lSo> z>_WE27nAwx&-Z$VocL|lvcI|N1m@|OjmoJ~C2yLC58O5tA}#R}QrX)n1XD7N{F5QK z;8{hpP{;0i4z2gW35mB?;-w{?6a}VV^xNeAc`KJHE@JC^za{Zb$zY~{$Flb$;^Vrw zcVWc4Fd2L=C?n6)Iq?KNbkmjhIpL^s6r1{y*2wKf|W}5HKM8C3&o})K@x)5qE z#G_{)@Lc9IbD4DJOYh7qEG}kd(S)C;`X%G0>KYgEwth9!Gqix|+_4+Yzsxjm&3O12 zt~o#BM!1m{&+hpQ*j!`5>zMu7%fg+=?C9Iq&>?<4`T^Os1gf8Kl{3%o90i*@wyQfn2rX)T`x`1TrVG^(XN7WSxdRm=mdEHh@y&r>ZCO+0@9eT{LsG(`Kz< z7e%S!h*i8qt&}I34s$nK$DuNP5iUE1(c$5XTDfF9!ZBTDdyMf|K$hIJOHW#Y)p9&3 zm#dZWM5Dsh!8$RX3g7k`AZ1{}UTS40MXs2wi(1wx3Tw*B6=3G^LcUZHg?zQ)h`N<8 z)otNabLFaSiL8USeXQZ&>T=9NIXf=gG2M#eDQlFz&bSunjOiOX*C<`cGBqj=#&Jfr zh(PDVkqFLFa1dr)%HFm>=dQ@^$bIbx*O?A{18woskH= zg$Q>5`Cyzv8fUl-A0{Hwqa2Li2heuS9lfL9Wug~}$J_%153Xnz+sROlc+9Q+ZxnS0 z#6Sg=77Y6Rey4JrA0$dtp^>7g&rdz$%I8r-a=zn5ch zH5m%4fbIrqYt>{-v>BBDfL?vG(ShbXn(7w<*TIaCN^EsA)W$YcVNhr*Rv7o5aesId z_>V!xc8=1A)Rl9C}B>YlQ&XovNxQDo|78wE7EFfdndDQGW|&{2A2{D6}m? zPo@3e5ZV|0N~pKc?4X+(1XhPTfo`-Ohbj~g@DoxC;X?Y{z6_e~l}?WIaf_$(-sM-; z-I`#^xO)%Ii)H5}S&!VBtNHHD3 z2aP&fGak12`a54QZMyixmbV^z_3X{ppWgYt{_9UVYcE`VrJ?r4emLL%?$DWYk@JTO zn_l?mZ#Kl*Cttms>)x<#jn$t^eDmqI;r}j(3DpDI3fc{N6qE%yps#|y4f-DF4bWxK zUqQ@YFu{ag3qs+xQN?|fDjoo;crK)hc}f*im+v(S&jwXIGSZ3}OBIti4vxZeMHSOh zTFpxpCm>Zk;Iv}$NO)!jRm?qU#p6R251CXkaj0T0Nk<+|s(7Yk5Ij&+@q|gogj6vn zrQ`of4g*`t%>&3%k=GD`R}?>ClqZh}Wh$n`+Kte2au~kT=WY^danZlV#J*@Fm0Y=zw^F4Y>5s3}*r)9~6e-jD?k$(b z3Xbn<%!2vQVUC}R4jwIDkVLAyr}IhuyfI65`` zipzuG+UHlO!ul0jcIa8pa}vC|6jB0Sy(V*mDK3 zfe&2vcn|ju(;e6k4ikO1o|5;%c95Y|TZ@*IzY|AFF{tMHrv{nEB diff --git a/42sh/objs/job-control/put_job_in_background.d b/42sh/objs/job-control/put_job_in_background.d deleted file mode 100644 index 2f2fb5a2..00000000 --- a/42sh/objs/job-control/put_job_in_background.d +++ /dev/null @@ -1,9 +0,0 @@ -objs/job-control/put_job_in_background.o: \ - src/job-control/put_job_in_background.c includes/job_control.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/put_job_in_background.o b/42sh/objs/job-control/put_job_in_background.o deleted file mode 100644 index 6e11cade1901404d328aab03237151c595f7aa21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4232 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

A 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 QwTb@#UX5`lykgk@0Og6LKL7v# diff --git a/42sh/objs/job-control/sigttin_handler.d b/42sh/objs/job-control/sigttin_handler.d deleted file mode 100644 index 57cfa8ba..00000000 --- a/42sh/objs/job-control/sigttin_handler.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/sigttin_handler.o: src/job-control/sigttin_handler.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/sigttin_handler.o b/42sh/objs/job-control/sigttin_handler.o deleted file mode 100644 index 9e9a7c2adc03cd799c5d4d024b4f5c59c5731c41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2664 zcma)8O>7%Q6n?Xg^XJrY5{imIu!@?th}urmphi$2rg6KeLWSC-tpwFzuQ&Eu&hBb= zlO{EmBDEl_DiS?$(NnpRl`IB&-bal-L40wkObpzOKAk!WC-ELe_WPj2{Vo-BK{3iN#0y~$ z#w$2Z&EQsHiReAC-#;YKS+O;MpAO^~;Mv8hxZo(iQF%H?C7#kNojnsdzZQN@L672{ zkKi5a5YJz8_T6t);$4t@E_R5Ak61uP`F$1Pcke(v-Cn|d`h3~CX<8-D=Vtbf24GX- zsWSLA;?bw(7py;dRWc(;;M}P2MHg>3?6-dp{*u|#!7yw}JlTZ=Kqd6a?!I5s5{S|L zP7xW(3k)1VUL?Ogg&);{_!cJmMIO;Pg1U+M^yxf-;c2wU1Kve#71}SUe0Qxw2l@+I z^PzToTh%t=8<^Z|Jl2{&Z_zZZnSUglW`0}PZ)r=~#;Yot`@`hlU3fHeH@}^0e*Y!N z)Gh7ykLryd>ZY~QsIM8d#@NIuPpud2TBBa9EjPx}r%QFi)*EHpSFg-on4h1$bW(N9 z(i>wY+Olv&LO*z}o~_!&v~F9zYuB=#S@wO?;+29`su^xZhaA0Gb#CtJJL-zzdZulu zQRUFL zmJe)*jU`9ov1F?I`Q#8A#+y(w7#wEP{jub0iPsay2i_XM>WqUT1G6J|Sw|t3d^3@t z3w<9osJ~uOy900%BP5psBiisMOI9jC7+_bcn7{@Ziz)X$ye0hWG^J}Dn>dz*b|t5U zRYDf&2nk}rPt~0V(>G{YfrT~`q_oYYP;~ANN-KURIkfIGl!!uA#qc*ghIQU0>KkBu z{gcEb#@EFd0PTie2+IF0)q^lZC&(17JR@4LO~TdLt;@hxQ!F*m)B7oA(JC*XZapTT zot^NEA(u>jteiU({;a=;ISNc+%h*53L)fz5Fo8wN7NWI-bt~xf?OtSTkj0h$-qAQy z&W!+2OAh`w^A|w` H%@V+W-11s~ diff --git a/42sh/objs/job-control/sigttou_handler.d b/42sh/objs/job-control/sigttou_handler.d deleted file mode 100644 index 4993f579..00000000 --- a/42sh/objs/job-control/sigttou_handler.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/job-control/sigttou_handler.o: src/job-control/sigttou_handler.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/job-control/sigttou_handler.o b/42sh/objs/job-control/sigttou_handler.o deleted file mode 100644 index 37b7e16fd3de1fe1b0ab7d808b07fdd12f02ee5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2680 zcma)8O>7%Q6n<;h`E%<0Q3L|Ps%j{aYC8=9q5>sWV(LgKkTxlm_!;c=#@@);HTF7f zYAjhQLRh5|NF2Cvfjh@?qKH;pKwLTIg2*A2dWMSdz1i8s-loJ)dh_0!dGpOTGjG=Z z{qKAK_7Z7fLIXVly&XZLLm^K>GaNrczTt_GEtTWPz$DgT9)t+tnpa)V_u}RB<>md@ z_dZY#<1v?JzlVdM>F2N&!l=3x%Py!+Av*DV9Dn?5Py1}5P-h6dyqT*N1VH785cBV( zF1)dqbysT&fK%7J*oA} zz~fKNAE-ZdRVu?v5W*~q)e3Ick2}8yax#WyyGM^ws~5nmA)^XR(i*?UjL80v&_vGb(kMU*}t)JfBr^#C)N7tdr~vD zGuQ9v@Bdu4?2Sf!(=0W{r%qS(dd?{|>bX*_F&=**UpF12QE*)S;=;M*<+oN&>18Yb z+PDQ_};{4CJ`j2rxK?px$lf&yi#)%NFDvf$zBPe7(4x-8C zXVGccCX{n|H~df_|F={xV3>}V>9y*R7^Oq}<+W=UNV__$4G;GAeSs`q=4t5G14i22 z^$(d+vEffcb4UH3_ji#Kq8YTB_D}36T8-C$YJs|?VDX@EC7u4gn+y+WkRVjFvpG_!+ql9pmf3QN>Tf;zr}oD*L!M9_NDt-m#Zqf!>o;_BmyrQ5HsyrlTIWxOuBWBKUMTAz#K{GmknC|R>fr~hYuI|gW)ijuD@hDc1nMHIk+Lu zoRhWDlMUZdihr9!&k zYvXhLrQ4Uu1ul+nlkzuS`OBZCKN(*p8Y}j@rmKzaj<>d64g4f4THjc@8{@Rie5xmr>M+d(^G=!yu~hjBD`gw}aqEpjLQ-p9 z<1!(BQE=X$0hE{#8yeLvQ6uJ3>ek^mOPwwSNpNJGL zJr*hKdi(f^6On=5&0zHNlsHVbGmN6}dSu;;U6Dd>zhkqNHfx1r0rgYB%0ALJClu*x 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 diff --git a/42sh/objs/lexer/expand_bquotes.d b/42sh/objs/lexer/expand_bquotes.d deleted file mode 100644 index 36e5836e..00000000 --- a/42sh/objs/lexer/expand_bquotes.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/expand_bquotes.o: src/lexer/expand_bquotes.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/expand_bquotes.o b/42sh/objs/lexer/expand_bquotes.o deleted file mode 100644 index 4e7401f6d690a6afb20c17775772e3954b7705de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6440 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 diff --git a/42sh/objs/lexer/get_state_global.d b/42sh/objs/lexer/get_state_global.d deleted file mode 100644 index c87933e7..00000000 --- a/42sh/objs/lexer/get_state_global.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/get_state_global.o: src/lexer/get_state_global.c \ - includes/lexer.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.h diff --git a/42sh/objs/lexer/get_state_global.o b/42sh/objs/lexer/get_state_global.o deleted file mode 100644 index 4f60406129decc7ac91caec191124b9c15f31e05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3932 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 V*HDzR`y$u0IYAN*X*J~_{x5)7`{4ip diff --git a/42sh/objs/lexer/lexer_backslash.d b/42sh/objs/lexer/lexer_backslash.d deleted file mode 100644 index 1f470ee8..00000000 --- a/42sh/objs/lexer/lexer_backslash.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_backslash.o: src/lexer/lexer_backslash.c \ - includes/lexer.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.h diff --git a/42sh/objs/lexer/lexer_backslash.o b/42sh/objs/lexer/lexer_backslash.o deleted file mode 100644 index a944b60a17332d4352770e65226c2fef64f3b33f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4148 zcma)93v63g89w)3U;8?CY$qvE`jk<&Py~52OG^alR;O|5q)yu9(Eu8RA{>OLD`ObgO`OiJqzx&TCZ~KH$Gy#F?K`rSJQB;)8s5c3|M|s)rG+g8u6xRo* zU=0&QG0jSLq2kz%KNbJ@)H}XwElY!ZoOS^Oj1A6tDz}(sCOb1fYg(1E4VmW9(b&YW z+bmq3zwx0^9`-uAMyfS7;&b@&#k39A^L=MsZy|OYwWDo&T@RNpH8WGrp5*hdkI&`% zhNRgjU#@Vh$RYK7L-ryG5tmV1m+@W1`pNCPYkcKYVK!^Mo3ASOQ-&ut2V84S-<9t~ zDs6{YAD_!7w_^i*sZuGQH4CW|4DVgf`$ZYwfDC8LJ>zruiZhSc8(bgXuO;7olJCd{ z`Rw>gsdPQxKkE3-Y>=;Vx^&m)4axj%ldJyZ2KjL4Y|8rhI%Iyh&->%XwS9Gsy8TTT zPvAK#=6vB)u8=X!Lo2cFMmd_Pz#`@>IBKda9VD^EJ<=OX$kLwa)hd=|RVDN3I*WB}j#yiNjxO%Zfo-=*eu^$`uRI{;r;`p6JeW9`BmY{vJ48eZ5_~J}9hmx;vj;$d(;x&ZN@E zt$fOw>q?96X$!--+=B+uAH8IMnq$*i46d#UFC#S@C{AhAy zJPtoOGA1VDhsDuD6GLKrdTcO0Ar4H$V^bm-pPY2e*!Ym`Q9nF=XbR&THCXGJ(i@EJ zKRB6;O(w+Q*hG9>>_0R%79XDyag4UZe=}Uc+A#~INx47NqHCducWbCg zX-3AV9z_cU0v`>03@1X{DYVcwya7C2=-RC8YtTY$`9N@_<)NSux-L`+jkE~i?OW&i z?!)K@0|5{jVZjdmRw#!;h=!J$nF5XIJJLe(ejL;wPNxtt99HLLV=$LRP<)sQCE+Mr zE=ya@!0;$LwITuS6ojIE4pP+~C7@LyJ=&Kcb?pgAul99FpY{}_p*;=h*M0!mp#20g zpk0LwYQKVP)Lw!NX@7OjjI~|H(Ypg zpRhd>(yLzj%;WT$Rv?A%4tscvx1fx-A^d*8d~j`ZLl~+}YYwzR4-ndQ?NcsuT^c2h@d|K`$MSu4*w)nFRJHLzCkFTVc6Um*#07f9nO}9S(t6gfdHW^ zsLBXuS%76f%qV9$3-4!aJE*n?17Cv0fR!ZYG@gO$vmm^RzYFjMnp=(ELizsy@iqF} z8omj&Q+Y7(G;{|xSlP#Uo`+}88sj`K!0Tt*AeaMxa=ra(dt2Zy@a%|&)b^N;#<&#ro17YXYZnJ|uH%cxe%Qg>;@%Pemfd6hSVHw<@1WH3 z->VOABGygph{Bsi5ngB=sl+=-2yznVC19ZP!<-oJFZRH3F5(@E05*2KeO8L>Zxl_p1b)%-)H;(`_R5E;L7B4|%~o#fX}+?AYX4SKN$J&P)hpA)-WrKI5XCXd8N#-XzzZJ90c;uA#{1)%}g` z->F^btBUWVr=r{nH9{(!169ct()sxezGm01d6Cb}9IJG%HFVEgW!LM@Jk+cje++0c(XT7p=&DX8>&Ms=QI*=t9_^!48A)sKSpyPSL`O9&C6+ z4|qrQmI2)u&{gk2Jp@nn&g(&2U(&jM}TRg-bFoZB=uGf z81-JVM{a`N0-yod1zqv(RsC2Z%*zV{y7Md0h`O@?jfgt!mBc&g+fKW;L+Tw;Lvft< ur&2dVGvnPtv&OaGJhgs%UAu6;BPfOQaV3GZZ!xSWzaLEef65jzoacX%R)p&S diff --git a/42sh/objs/lexer/lexer_bquote.d b/42sh/objs/lexer/lexer_bquote.d deleted file mode 100644 index b21282a3..00000000 --- a/42sh/objs/lexer/lexer_bquote.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_bquote.o: src/lexer/lexer_bquote.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_bquote.o b/42sh/objs/lexer/lexer_bquote.o deleted file mode 100644 index 625a2669d1cd5740ccf2546c7a769051734635f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4776 zcma)Adu&tJ89(=NuI*gE@_+^ssJlRyPR#?Fb=m56F~sG@Bq7VAWE<11<2b~vv0XoS zR8S!t+F9N-STzZ0+C$pZu|G!l2bUV;s%W8Ozwh32 zgX6;BDChgm_dDPDo$oyFao+gkKmT{K&{XORYlbc}*oo*Po^?XJh-&?oISKODo;ds-6uT{+Y)!XF5p|dFK<698>*BNh%b5O4@aNYVQ zvb!+OqFKu9No8hDb9nH&D`Uq6Ur2!c;G-kc(q!K&DAw^M=gql1R@ZJ|n#=ElbAoTc zu4dDMPnb++Y~Cr8UOK<2jKx?#Ubi?8x`^VK7;pPc;-h&960vSKq-L$i>)=mUT@kvE zs*%T#YZL8p%4#imo8>8^@=v4u-k4E2aLK5Y7L97@l2N^%{wk#lur3&9H5OtF#l`Yd zUSHtwT2Q}0{TbB*)UQIXlP?v&SBdBlcQH@?T%6}O9)~gY^{X)aTkBo$NC-a3=HWTXa?(Oakbtcld zvb*|wVRZLx?A~w>E94VB>EzyI-j?Rf6Qyi1*_~iLQw6l`*|{hC*lfI~Z)0KJOyu^N zxl&=CB~3Ib6ywDt8;m|2nHrvCqtWfdL!(jH!$Tu%B09#lZyO(Eqf;ZBqT_7Kcr-G} zhNBY`b}=$KXj!DcHnnXM?QFHF)-r{)DYAL%#BgN7U}KT-=qTH~ZDb@mI?1AFoyruM z6~Bm_#nXi%E1KyPRKZq>Y^IompU`F@^<=}A{SX~e;O%?Il8V`uXd_2!`*#fiY!*a2Ukcr1xG5dHjgO;`~2u=4YfuyW1EkWJQ z#*1;5EF{=c5LORBHd--*Fo%~5&Arqpt@k%`#UIq#{Ebo*&Vj5-ieJ~iqCbG`uXHlS z-|oX@5@18kxO>*Yen{6*rFElmlQhtv_{sP4-l68N;;Z1|OcoF|aQ7`UJu5+DH^9TH zxuz%G2j-z>qUy(;=d~`#N!)w(jp?QvhI!e&q>!SvvZV9alH)K{sZ&W4tk82$Quag2 z${_-jry*6P3dxo4Lu$$~NSE>>NVoDFq(?ac*`S<+)RmVYy$T&|pYkT8UwIocpj?0q zDs-$GnR*y$V0m2qmO=iSBcewRYly;G|Qtk*c zujiX6uSe!Qg<3BBvNM$*pP7v)s|D{|%NE(V*NBVxB>`9S5W}@#mqqTO9+! z|A;beC1WCDKv~~O(%86GvN3xd`vM={L)(p(knra%kL7I%s&9J@sh0m%K0!E8ZXrh` zdbdbSgXZ{#(>I7Q;v}5D>273to)AW_1M&Q^BWVPAM7uFC$;7`7w&$4&*>i@xO}efss2xoz4jvSd42VL znKdu(|KgQJa9tsOOu}8reaKsozky8adJvfw@j2udk^hWLtNQ^m$E4HQK+#&AbAllyo3JZu% zqloMO?Hw2P1+6PctRyZPB3+i8y(B$3&ZNCTDd=^%kBBbX;o16;y*r$Xibedvr{&E) z=LT~jLYe&%o|1IM?}L=64`eBoNu*1&_?58q-Dm04%v`Z&siLP;$U9a~>c0N_*)pWC zuh3(CwhGMtD0a^iaqTA$ip7oT)PNppl)FfW*BG zA8}oa@#Zjhhq@x#U#T78cg^w681ISkFM(WpkT+>_d{vBxV!SiVUD^Y@A;lZv-x}k0#<&_rqcU#? z;DvRBw`mLfbFfy%_!s`c17Ys#MlI1GnlKN>_zGBUuyg>^pjxCkwdr zDm0yOEJPP=a4b&O27%K@4GYlqzP(Yp-i4<6S!nVf68Z(ZUi-DscMDBFBtT(pLDG)j z9l!$soJ7SM)4G3aZT!n&Sv|d~YwMZ)^dia3Ts8+mFH(WpuUBk2dUToi)t<~?0RIDq C3mNhN diff --git a/42sh/objs/lexer/lexer_comment.d b/42sh/objs/lexer/lexer_comment.d deleted file mode 100644 index 734f79da..00000000 --- a/42sh/objs/lexer/lexer_comment.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_comment.o: src/lexer/lexer_comment.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_comment.o b/42sh/objs/lexer/lexer_comment.o deleted file mode 100644 index 0b19e61060550d0fa678ee21dbf0fe0719d9a89b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3952 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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 3b826058..00000000 --- a/42sh/objs/lexer/lexer_delim.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_delim.o: src/lexer/lexer_delim.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_delim.o b/42sh/objs/lexer/lexer_delim.o deleted file mode 100644 index d729aff5f3f75bf19b7a9fc8036b493d3a4515d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4272 zcmb7He{5Sv9l!UU-}7^xV>?M#(xvN+vUUZLxJ$zn4Y!NiczsEow9AjRnwVZ4+ljq8 zw&nNSU#zG!bXsO48dV685WhBl{J{VTrfK|`IyTgafr`c?goMVx9h zz+^;Wa-vw4lRM_Px@%7+4^Dnyd)gJD5FQQtGypX6`PeBEUa_ofZn`#W*-n+aENkdM zV*CNGnt3>XrAeVwIf$zZE;m{pUa_3v?q<9fR<&kqOmFPX^;IoAy!7;RHFt#OzdAk- z?^^<9t$2mfOqseg<2^zfh>{dhTov)Xj`b7Ucgy&y>C$Y@z8UYkVn1C}#`+9TTamZK zn@eYSh|TeNcw#%&fS0aRiaD#4o}=(?n(tF0zPJcy`$xv-;+3Z#&m`*O4I&k z%5#{fW7SGW3#F`OrG~tQB=Z6@=xq}6J9QF%~Y|wZU@U+eIGm_@CF55 zXUN49Cd2geo=(y`Z^c51BR0?X6@fP_f;k90DmOkPK3bOuH89)@j)Lz5`QW6j$U>&5 z8nhqOSZD|$ky4FSAE{573x6}`{~0wGPQGa_)RxS8?M<_OFZ~v3m(6-|$;=GuW_=Vj zf$$4)X^9}`ud(nK+o4c{x~b2#&ZlP9dD575gj$~hwVU-mbKy4}$Mx2hJkWab zhB^Oo^pTembgrYR)I+1uBe|+wD3_uGz1w=XMYm>(xQu!Rw!!G_@9Vwi6U?q=V#VCC zT-D{c^NWSK-VBRP+2|UZJz9P=n~wGO*?B8dIc`;IcAn)d^st?@lVd~42NF}MNj8=| zkQyFK!cGm3vWet=c3|K55F48s-IW|?d&ZNANtQ}ZOt@-dY=~PVADr4ZiGHrw)o5A5 z+LhS7cOsRTFxmdZcyf&G-Zwg$9GhfG^yZUNmi&23wR6)!ZE%?zkU0s;W#DuHgdkfCrTq!CRG!;34HN;9=zwctrU-c$@cDvy~4R>7jq1LJmt;AtY5^tX${z+u*SB z4`L>A*aFw&#Y1(n+Ae@I|2x#er@srKzYi7&kQ=0IXz@dID(yxHGES~_ayK*9L)$^t zZF0A6q@X=a)_S=+!h!)4dN)Yj6qtbcB*^z!|9udCT_04#&;mMV1uPW8t0d=_^1gQ=RB+ds@nx*<2BFPEq8Ys1jQp7lDnfUa1WY& zA1pS4_zYLx7#+*pdQt&IDB)?l%Z10(330Sfl~1J`1s?*7-5p%2hu?S5c%j~!%}xt1T~Y zJN1MS2_E_Rw}0^JyYi2#=QsItgFK_wR(evLtdF_?{ z&ky|PYrlJ5jlFvN_R<}{e(clN>Gr35r9AsMs2{WkM0qs_It4lhqUC-bL_2#4^cG0P zqEik-<-0>K4+?DwxoDS!i*|-wv`xZAnL;i~t@V&7l=I}GRK?vvh0>W^l=Pz2A(-T% zbfXnRp#&rsWut&6n_P6RL`OOgUd@`CmiJw7N`T$Nx}6)&Nr6XQ%e7Lg)BzkXJXvk@&1 zzT>8d=#RTK6nR|U-6}p)SrTn!_CvIkr0bzpaEZnMNrh6TSj*xocja|w#lrNA6I-c> z)$FQg#R}U8?q#by_HjGLpC_BSk6&+|fE!+0d?H|(@YzkE@$Th_`9_4s`>Zog->AuKMCYpI5u! zpgspxN!uw0uxyCuH4q~2`7I=7)AJKZ1iyo?F62p3-v@~q^!x}C{j{fr+#=*AAt8AE zb3$&04AVfO(52L1^6%b8o5pFhNpG|Vn{4KOk`QOsjANy<*=lC4!u5hJzK=v3{)NYD TuzS2}2HQv9DfqXL%d!6g%*>h* diff --git a/42sh/objs/lexer/lexer_dquote.d b/42sh/objs/lexer/lexer_dquote.d deleted file mode 100644 index 578d808d..00000000 --- a/42sh/objs/lexer/lexer_dquote.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_dquote.o: src/lexer/lexer_dquote.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_dquote.o b/42sh/objs/lexer/lexer_dquote.o deleted file mode 100644 index 9c108a75fcf2ed151419b109957a7f843b297a86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4716 zcma)9Yiv}<6`uQ;>s{aV?)m|Bcxf9$;;OMtfKVrOh}U@Gda(`lBakZXWxZbPP0a3Q z9|j_*kZovJZY9$w3RTs#Ql*sqA^AZhk_Za4Dzro@Ra2?0s+RnSWU4epky=3@q2HN1 z*Q__Dc(ilQoO93l=FH5Q$Nv7)e|=uTn4&QdR2?-PQ*b1Pb9%w>zpC^O8bmhl#nxwuci#g%LZK&kB`o zckT@LZE-&{7w7L1?*$5Geo;$B7jG;b7wU4nU(y7XlCuBvWamT|NQt| zyq`*l#o{GXd(z}mj`wZ3Mo}5X$1=X-m_PYx!T7SV)JP)tMZ6Qnys@!X-+UR;f_Qsl zaS>v9d@i0`jz!?bGMTZ2or>+H@V+qK*JXTdGOWk%8=r%h9(qnJaCv+mO1#w)udqlw z5nm=2FURxBd~@-Bv`D=Cfy{#AZIXEPa@Nl*5)YeBK$gcBk@?}q_b0y`_+3`EzVY;4 zj5BW+Qu~srVcYKRylaXxL*j*8B{n{7nbXKWx#nefiBWq`7OU$x*!KMMU`FD#OT3W8 zlOn^hGwQa9&+Xr2N+6bx_lm^(SO&9O9!%%%5g*MAzq~rix-OL zWq0qDjolf;Tr36Qg$XH-Wq066NPffEsvK}J{yE>rp}dC5-l4u9{jJ-(FrYA|d&QLZ zVw6s|#mFVsdpdI4n*4S9w|*6-V=dI({d7-gJdw>M)2UEv^V;UMp~mMW`^>>H+Ew&@v7wKi2xA*i!dIwkp-pN#+iTGvYEH;+Q zv%Ec)1j{)ro=)Wxu#?=*C0|T1B6glObu5e1MkpbVrBfrJLMoRWNhO9ugr1^Dh3JA{ zX{rd<;dmLuM`Kx*N#~d|AHu|Gg2ta``SkON6g(ZClbjArQW6tg3PRlt$MP|j$i>-Q z5TXZY)`^&zQmw4<*K*AtG?x3Tl^SG`Ly-BrJ!r2%<*U5Az#c)>pXF^}6&{_i z^(2Tl5AqDEv8*x%R&eOMTYJ<=GE?N|@(oKEpbl&j2 zAco?lqm+OB3^ZpIwC6ZTE{ur!L*<}74{Hs`HrJedY14;B6rhYC!dXm0%0NH%s zl{Tvl_2yq7iHJJYh7j{^gxLwGj2iw1829KM(D2`&P03^Rhb=I1(Gf?gisI;;l^fsv zYBMDmEgI?H5Ek=&NmcH92c;DMel|fEP^J5g3Ozg&T+Duz3(tCh( zbiLChPDehyfk;P%_KVZHb7$@0@0mg0_^F@$;_^-PWH$ZBc-``sKDn~Iw(0$K@zBc$ z^WRUdeCz5%|K4}*)k8NfZTL>>XUBi{HgCDSY<+6wnS+nrng!M^!p9_h8Fd5dR@85z z(z+f-rA2%V^=(v2*?*vZg32-Jv>VVAtFsy$g_eX=v`SJ%D?=(;CaI!KAr+<8Qg9T? zc~VgcdGc0;J7ngWnMTrMGGk0SNR`q8c|-`#yxFZHMVg-q-vwU4e+W7 zZnW{0QKFhL%B!IB8prrjV}^(J@Q0(kIm$P-@rpKHX`F;xl7SrJRz->G#t5(W)bV=g(VJ$xE8*OjX zujv%pnAawm!%aIOll}>*zl`Z6`5ka9Ow%h;J_?S-X*vxKQ{zp^ACi2PRYjE9nREt(9-C6@JWO3_NIX-KZ1lRa@xMEf I8U`HuA3325GXMYp diff --git a/42sh/objs/lexer/lexer_end.d b/42sh/objs/lexer/lexer_end.d deleted file mode 100644 index 151636b4..00000000 --- a/42sh/objs/lexer/lexer_end.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_end.o: src/lexer/lexer_end.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_end.o b/42sh/objs/lexer/lexer_end.o deleted file mode 100644 index dd72d50f4e02337b4fd199d4fd54b2cc18d93a0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4348 zcmb7Idu$v>8K2#~z1zDzpU<%q+&U>&xp^S)BaR!H;+CA_ZO)GE1V569*XF#p_FZ$? zJ8t(JyRISN0JTg+qc#X30Z~Ck2!w(}L_>;V9%_K{sMJcSRA}>0ktPod5F98}Ee}6C?%(3V@bmumlL@4p55ho0QEFui_GK2CDzRMAA7cXZ`6sSuz-Zv;AP&6LJRM@k-uphK9C^w9+ zl(r^K`~7$?SLM(-)dQ*EH^e)fHrx=a)g`i_e)U-f+GLIbI|0 zwc|GNaEM*V>iDL4{`&Jh5W7`;M&U5#>F8zaNY2XW`hb5_-HxX?UV_6M1shNK0cG}#NPEHngBpwfAp`dDh=wbcAS+Ed5nchDuZFn2k% zP+m?gTv#TA^R%X^y}!3jAqX3qP1V%N7nK3EAU)SEusRD+NIRu-14*9E0JflS3UG!(1f=B9)8r7mlw1b z`JmSHi-OazT3+jS#@|uTyB;T-4r8&HuLjGryV5SyOYfGiH8nW5-rIF*{z! z&&`hK%X1rBwq<6`f-z@gP2-TOMVMVO+VbYKS@O7UTA5aZCF!G(7#P?$n3yt4cCKJ0 zx?0;?+Y?)iJicTtUF|ShJ3Cspe&{9$ZDTe%woM)>Jd{bdb#~ZU-6+oJ#j>4crj8M9 zC+(Q5S9>ryHZaPDwEY8pLmKRXzCkvk?PdG-4EM63vB4f~nC%+YlA~-u8yWG`BDkL{FuqbE_x0bN9$VawNs}CWo~lwsX(mpf)thH1u|-PLpOi%VFuf?J!5r z=OAoP7zN8QQN^Wh=N>j0G2NlVkS^hrx=z^nf;E{aTXt^JGBXJRwCHko#~@f*X2SI( zZd4v2*(L@ADWfeF$KxF~&r9MU{^KzbBhmc9-ilum+& zq;G*M()Yl_(vQF+(oexv>1pt&bRN7$`V)9ex(Hq?{S7=Wy#`)){bS=tA?$k{6`~}( z0U^lZiQ*O4{x>+R>>#bNq=N^=69>OamVAL`7y1{q2qlv!sEjCBhFG8b$g#j8 zt#D6~+NAsuB770-IN9qXCn2^752)XU+=LAlcF;IKhvkl%q;Y7BE~@JRvifJ=+9@_S zsxQEDBkC2K6D+(H&7OoSxF+;N2w73?hbOcIo$@9%lBA_@?*@|o74G@G3x3u%Eh3*vrFLw#ITfn{57$Z#b(>Ohs>Y*JKRfk<=iU~7QYyS)G&DW_=JQSUEiZN$iIa~wU(0Pc zb7|8*k1Ty>?ycW-e!lBJ-~7W_x$U_-w^2|qF_*jIyL7kvoAj+%5prfG2 zK~I6sf@o)71-%K9vFMb;P~F|3yBvkKgj}>s+_l7Av`ySanL@2-+t*PytPOWjs^Z&0 zh0+;+ZqoBsbm+-N=|(GtLJ3GN%0>=P$B0~Xu6Rc}59FfU;4aF4a?z3CBT}l8i?Wxy z=&+EBP7m)$c}*@_4(_6aBp2m3chS)!7Xk3N{#WjVkQcPC=&@4xSB6kl6+fSZhliOk z9T(!!kn$KGhMpmbD_(~9Un!Q1#lIr%tl`gF){M3ydkQTD;cBb~T%a*PLe4Vson6{f3K+8e6s uKU`%qeZtX;X(y{&1t*g$xptS%hp{Y{< diff --git a/42sh/objs/lexer/lexer_great.d b/42sh/objs/lexer/lexer_great.d deleted file mode 100644 index 57229930..00000000 --- a/42sh/objs/lexer/lexer_great.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_great.o: src/lexer/lexer_great.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_great.o b/42sh/objs/lexer/lexer_great.o deleted file mode 100644 index 379ad97e0dd60aeb040a8c854328e3c028006f15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4448 zcmb7HeQaA-6~FJjJo`D%v7MxZ^lNy^)&{hEvVE)ANtr}k;k)2N2AH}<;X1-q5MWENks(7=B zBoDDRJ`YbU2fH<1BA?HstZZVI!u!bgc8K`;L_DwDGCmhCH~9!(;M(}o0`D$?w|tv; zJidG)S&R4e8oZ6c>k}txHS_1j=N!wg`n@j*yjC$PcAI$EbR4oazTb-c^}hG>ptF$^>khE2mFGc33#qF5VzMnin)Nrn?6m1>Xu<68ovWk+EKC z2JHn^7ji*Vb7WL^xnX_6Ed9lt`+NVEvu5e!MYB{~GRwt_X8At)m5PgI`6Q^gRC=v+ zZi!GxDUWD#=Oi=vPqd={gW*?$pP5_UR5IQPpQhjdRvun77o;d3FuYXWr_H@4mG)^j zfh&zrD_p~wae@0P8CU=MDu*zZ%BJh{oLQcL&nEbk=a#pHPtT%5#UW({eBZvq;?lxS zp4#4L&;2^Wzp8Zdyji*g>-m!LRwbHlHyV5!KhDjvv9!=H#v6#8nR90`9(}h&R=}fY&2^&MZrjO(vnM!o^Y_(^sWd4|yFWNIKWnqNvB%Bl*Fm}c!;^S<@ z*dHGpF`&l>huN61m+jv(I>1IIhPNA|Y}cp}8)tE2Y|O33Mh3V>a^J+Bag1}t_G--% z+VaCLt|5 zeLTg8Sq|;4L;>5L8=+@%+39F8Yp18Psi`OdX6bh4UI>;Zif~^xoD6o9aX6|(G zE^ZY(d5Af=L#ZrAy3!VsPA)Q%;4V2McT))`!BTdTRf6CiVA;xJW>TYccc@uaLJ{Bk zP@~j@{V3N-N=Vo5*FTF*tF$vEw4ni)V<);cN&WRoh*~xW2b&*60;wvKg=w%EPmrD! zs{byG-lppS(!z{71X>_m2*&E0t32rq=sVa<;Jr9Yg8W4k!+GMKhZ;YSg6tk-GL`C6 z)qBLq2hdO_wJV3HheG$EqOtEnFseN-vsw7-v-x|AAkpx=fLZg zpMvYkFTsP#Iq(MMZSautXYjD{E_g(F54_QPHL%K4N_yyTXpqCw`w)^U&*!gj{a@hF zX7=Grn5egb)H?!W5T63oJ?y_9!mnwBtxbUia$x&GzIF8!Rjag1 zpN9MiNE#$BdDQsF43QTH+RN0oTW$;Lr%|JTr8xQ2UWDpD1m=?hoiHD#>U!-hh`^t~ z=1JdB{}e>Kv`zmWrQL!rx0!qZ)0DpCm>1%)ulUI(I^f$n6o(G^QQ8bEX}lZ^^(6}NWn zTKB0Z^hogV&z}C#o6GX^h1?&KYt}#c!TI&g9e>=KjDF*U^R@KG7Z*4Et?y*M_$mnVuV*RG~5O8Ok8^DBpn}R($R<%3Hr4&!pjEq zIR9@qLBx2*Vxh?6@{R`aTxQRpugsn$Xz5C*0bC+aASs@@_&ZuKK#Z?MLWsE=3 z-O;R0W&sRxixQU9V7=C+>b@bhxlh&l)Ua>2+5$};QX75qYAdQ6`cz+^+TaksbBMU& zdmbH!Ad6}PWCT4wPWlikWLO6oh16kt6hM#N5a_X+11SKC0H_t7$ipZ4)Vp0+t<(2- zW$fx*9#tjZHaUP*d6=&g>)0$L9fFv#j;A1D>Np|v4k3T++I`Omxk<=7goL1RzMl(8 s$6FW%uWUx8O6B!xeQixUb00Iry()hKVomAkV&UIgDm%5JDFL1R52;PxU;qFB diff --git a/42sh/objs/lexer/lexer_greatand.d b/42sh/objs/lexer/lexer_greatand.d deleted file mode 100644 index afd576aa..00000000 --- a/42sh/objs/lexer/lexer_greatand.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_greatand.o: src/lexer/lexer_greatand.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_greatand.o b/42sh/objs/lexer/lexer_greatand.o deleted file mode 100644 index 807757f4405b12abe8226f0faf256048d5df6265..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4312 zcmb7HeQaA-6~FJjyyxdU$96s_S=$wlY$cOOoOWRZmUeL)w@#X*B_C};OmB|uCf-sz z_#^$$I+dnFvjS4fm^SeTodjZ&n5rQd(h!?An3k!VM8${Tk0GjwNf}}=O`x^ww($GC zcb`ez7Q&U!Irp4=Q!K1Q@6eG^>L}KqxnXF4K5}Qm%I!&ae-P zrvp=vLNub-b}4hTD$)_B1EuP>6tte;A6^dKEE?#nSvXGf0{_6NV zymJy}t$5kop**|P;+>Q6#bp#xzYE-j`IF0c-S`U0+*GD`E#6<`ddl!b$?|Gdd0o82 z$&?dfZG0Y{T#hy1C1+=6GIlO`nBiUXy>H3*dSy7}{~4c)m!G`PS>W3EZjt$MtHk^9 z8u6U?W|OH}ym$@X@7IV|IyQUV@6AfQRypfe)`*8q=RnrR_jQ@S-uE^JtLy4jYSuTE zKaB4z+2!1kY%XovL;ap3(bB8@%3V@mEr{>e43!OKkBhYDC-w}Wl3J`Y}%czqJ@ zpv04^z~@hUb;|1g&E_1$+V3^xemE?Hd0c+)!5hTKc|ns9mV3Z4_*T%paz8x**~4bg zKG4d-AxJex#!8nP)+Z8`w-WPz>q}Hlyql<$ml6x*cM}VD@>eNef_5pfXhhH*)ulvg z&P*(vfYaTf7kWRxMAZ4qB6Ru-sBC!=P3*B$`DNuLr_JfJust!qs3a=e(F|xb$KP0b zXnA?L694e+Z#&3wAol@z7|8z63oXk02OXh@_OA`JytKG009Qungg*aD*a@<7;$oum zKCBlj@zB!Dnat5l!R7W;A(Jd6bLq~Mh)xvIJ34hFe_uKo z?cQ3Pwo|jm?Ada0T4Zc=DwdL^jOdT=icJiSi;?(&p@ES&^r3-aF&5t^4(uK67b6qH zJL02a_h>veE{5V`V{SDz((h=LUz*rEj()D#u~M_8wj;K4&)86GEFt#AM&l!5=icGr z_{g}3qqh@%HExm3l|*u;SP~_BCJRw?MJk^wWzZz0UCbWO2r|3GU6CwcyE;bbGx^+9 zq?{{er*fHegn&8T%FaN9<#Z9(mAG0{)5(IE%@>6`BaVw(1y9{CO8NUUIrMa8QA(aT zG*UQ2I*h}mu>>MhOo?g`&Iqtl7_$Szom7!e-Oj zg%;e{fJ?0tu1!i`y%uE4X95GwcO!XpU8vGD&@6<}y-M}nir(8T3qWQ_(80eB!i5l` zzInw+Rs(zonhD;6Ga%r+WMVi6+;hxy4w8WQEOQrSw<{d(Jw8-kHFZk6mZMq2GXM{* z2fCaVRqm!=lAO;{UI+eYmZYMW_|qV^SP>(sWe2>27I z-wx6@`Ntr-Ky_dB^+EVdlh|e&%%2Cl2V|_T&p@;)yDc8u&w!KxjxvXu^D%=QiZg)q4+ytKFR6^^K}USAHW`?zOnusM7y%xdJ=Lo7Fg-y zI4?nSMvZZtSD^KNnXcL8h4W{p`-mS<`&nEKHmqitn5p@wl5Cy<^RVA_n33hwGa%2mzE+7 zNFAxf>rDt^(q0ELLA*<8{q%_^U%R57FXVrlYT59} zdlxq}cl>T^D)Q(9rEg|$e)iJle;j%7dnYcx+Wlb9M~`24PLIB}{*K(u&p+_FtGolQ z5+9Rr3#c2k8^pX~R&YTd0sRp49EdCXXV7~f9h1%+M%7szUg{`Z5}LS5(!`aaiOVES z1g43pwGI-6IZqQ)6=w$v)0rkFz4YRyr-|vt8AD+L(!^|(@Z3f;abL-f+z&J{H>8RA zPZPI<9FeI?6SG&ExLIi8?vWjt*EDfDq=^Yh6Z2b|`lN}wQO5P(a>s|f;F^bHkX5|DOOpE$BI$saw-b<>g${)@apRp z&jid9u3I!B_g#O~v7+)eg@QjJ&gU*DKw7Y!($}GxFiod)t5^Rt%)Qrk z(ar=h@Z7zV>iJ>p(AsAcGxE`{8P*)G?im^@gV`>pFw--Y1;8Tq9JS0B5 z@R)2=jrAmwH$H%SRWKjY_8vOUBBWZ`kOLUrmZb-uAz>cV}DkPG`z$<7wj Y*{LjEHqMK~#-F-OF6}vaPds4!8`YDwQ2+n{ diff --git a/42sh/objs/lexer/lexer_less.d b/42sh/objs/lexer/lexer_less.d deleted file mode 100644 index 247e4e4d..00000000 --- a/42sh/objs/lexer/lexer_less.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_less.o: src/lexer/lexer_less.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_less.o b/42sh/objs/lexer/lexer_less.o deleted file mode 100644 index cd0a4d1795623138d85d4bf830256d2b20919785..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4448 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 VUBllSCjQXnirMRp`16j&`Y)o&wl4qx diff --git a/42sh/objs/lexer/lexer_lex.d b/42sh/objs/lexer/lexer_lex.d deleted file mode 100644 index c8e1ecf2..00000000 --- a/42sh/objs/lexer/lexer_lex.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_lex.o: src/lexer/lexer_lex.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_lex.o b/42sh/objs/lexer/lexer_lex.o deleted file mode 100644 index 5c87a07b0b321f8cc8b86ed56f61084c60bf2bb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5456 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 KWEupCjQtyDmq^3_ diff --git a/42sh/objs/lexer/lexer_newline.d b/42sh/objs/lexer/lexer_newline.d deleted file mode 100644 index 491828d6..00000000 --- a/42sh/objs/lexer/lexer_newline.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_newline.o: src/lexer/lexer_newline.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_newline.o b/42sh/objs/lexer/lexer_newline.o deleted file mode 100644 index 3c569940576b57c2da122ae302ab4ac9c05c3456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4156 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 C-nc0M diff --git a/42sh/objs/lexer/lexer_paren.d b/42sh/objs/lexer/lexer_paren.d deleted file mode 100644 index 2851c323..00000000 --- a/42sh/objs/lexer/lexer_paren.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_paren.o: src/lexer/lexer_paren.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_paren.o b/42sh/objs/lexer/lexer_paren.o deleted file mode 100644 index 00d2656aa6de7fc2105cdc66215f88b7082b1c25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4452 zcmb7GYiwLc6`p(V&fU9v*SqUSUAIZfwl2kq@PovSOfkWmc$@WR?YMq44X>N^dTnpx z++FQm$4+Qb@HPlze#9z>AR!(+4-!L-iV@J-*pOR=~A-Y03AX&Oo9vGqm+CJ`6u_h=6iE9)>H|*>pEE0&G&&J^S4j( zos@jiWZ0e=uT6UW{N`=JSo^(6?>xw0F3Imb^B(chx}b|O)4kv*_!iU)0BI}Q>KUWl zqcj;ttu8bLRdH`scicgHJh}AeWaaN&$)%^SCYR=}B$ww%uL@n+!6MIefhD<|xSCvs zV#%e%8mzTsr3Za<+j@PKGf{M|zCn||$ks@mYJ*t%^}5f}c>#laHMyk25z|zWUP)&A z40Ixh?UB+BVNz?u%lU zN>3zm{CzGaXt1vCXbO9s<~0#Mbu1^1%2{P8iGUJU&i9G*M^i*hQ&X6pU*%lar(TKE z{Siy2A0Lbz&Xt^e!H)HGbaiya+Oo5_^xAv6V03hE?fB4U=9IFXv$=&_$(2?yQ_9&L zS=Kr3z_oLFzVPH^rn7siGh=0oN37zUGsAKgJe+c-oMZioN8{t^F*cOgmmU~Oz)lYg zveCpa+qZY5pAC%W*}NxDB^WB9^mXuro@T`hq=okhPX}0>_Jv8 z9L(A9bhRTj-Ae?L5>pC6(@kc|8J2UhY&{4u1CXsEW=7wq)GO}~H*zf;)i;Fel?I$R z)u(7-(|pAI2#%%J#A2a)Yms_#wjH$^>w z4xiGd9i$N&y?BcD8Aw(890A&KNT2paNUp6w>e^Q!{o2T1y%%rNv`f|}G;W;UZW zOx9g$t6`?mIz(2p+8Sk{z$egdMdkMerl7W<`aa1Yf$|$Z;`Yr$1QsFoq3ZVrEvOb{ zw>b^{3aTQEG1Ry$%)l zE5r)f8-rhiYEyQY--iA$_FUHO*sjV&MA7F`y`qkDL z3-n{ybAa>){yY>ne8WKaIkYL2lB4k?lz3rCdp`m$=I-NVXUjQCH`+qNzmH0#+L!EF z-|Hy<&lp_V;+1S7G8B686}*oc-aemr8yO=`!hNU)Dm}!6(YuPX$Z$d#J;sDliBz?_ zj(x$5h7SMuTi<>49rcA$;kVhQ4bQ&y+J?sV-)+stzVcN0OZiPdS$*iu`7_^m`s#)5 z&-VQLTLO9-M}k`V0-L9|U0qD&!(QmYvng>s%CN>$u0R4APZqNJCj4!|Uc z(v4OOg%Xe;%0@{~HbHc*q$8aNg6Nn?i1MExIude5N>zd=dnH7Ng&;aT(vk9-AX*9u z(Fzen`7I$jdIZsFlyUv9-0>qXXn)~RRZ_&@@>HRWc^Rb~9bw8sREdWC#tAvmMvT1l zHgR3QF8vvchohfYch!0K*q1R@bx)OYEnLSG6n7paZ)a!cCh?cO{_3;Y{KQnbbG@T; z&MA3TXMS7Hc6Jlu9C13uv*j@NQS6wZg{XRg@#}zf!YhRyG0oyTufu~77ei62NH^rOiB3&0AyC;$Ke diff --git a/42sh/objs/lexer/lexer_quote.d b/42sh/objs/lexer/lexer_quote.d deleted file mode 100644 index 7aa514fd..00000000 --- a/42sh/objs/lexer/lexer_quote.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/lexer_quote.o: src/lexer/lexer_quote.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/lexer_quote.o b/42sh/objs/lexer/lexer_quote.o deleted file mode 100644 index ee08e72613c17e7b6830d328bdf2d96eaf14126c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4324 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 M@ITGY&oZ3<0wpz=RsaA1 diff --git a/42sh/objs/lexer/reduce_parens.d b/42sh/objs/lexer/reduce_parens.d deleted file mode 100644 index 99f36040..00000000 --- a/42sh/objs/lexer/reduce_parens.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/reduce_parens.o: src/lexer/reduce_parens.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/reduce_parens.o b/42sh/objs/lexer/reduce_parens.o deleted file mode 100644 index 38c9256e11b09a634c7d67d4b572c73fc2523fa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4108 zcma)9du$v>8K2#~S+9Ne-T4tWsnhf%hv2sO&Nwc()Cp&rE1OFqMQPo-5@O(K7{#w zyR-J)H6|*Oz_${`BPi>v|wPMnRwu9u0do!k9Nih#e<;Pz)nyO;u(L$1Qs% z!`SuU_cDG~?Y%2}C&~=KGe2PeTGk`mPyYIcv{Y&L{ESYs&efZ9aZoeNDW% ztm%c=9AAJZ!eiIR%a%$7%doR^6y7K1`@V>8Oa!!e-S~XG;?zMe!Oig{#s1wY@Lsz? zJTJad)@;VRuLco8#*i=OLKykK3<@ zXBOu$PuHl}3wb+d7<+fs_ZSs;abY|MJlc{2*ncAArueK`W4es&`W+0T@jjRocqxH* zS>OqkVfwRyOguPmg}m({HqZBIf%kn8%s_|Vd+1Z*qjiaqOW02w1-}tA3V(un9y~|Q zp#7lwLPHR#^~M{NC-mwieep_4uXzdApWJs&uO53>uU0NErOz>(YQ0u@SFi2VtAEz3 zuU{ruy_$YUU%bkq-yXrRdJS4F6@&HSQu+b~qAwo1h}OqRtfepNHR`eqaasS?C}BoV z;F@K%^o7NHPtXJb>ICh(rS!)ztgamOfGGU+0GAj$?uCtbQ<{zd_1Zpww(7NS zYI=3aUx8rQJAr^$j$yQ~YW~P#zLm3j^$&XWPw0Kt>w`gQZB{6okf~!W{jt9IX6oy2 zjMLo{-@EsLeerp#?Bt7fd^9nX7>W;=1zebeqeD;nJid`t#Yz#Zb`mB_PB`eCoLMLy%w>}!!_KT>mW~*uiZjbx!z~`NY~~0~hm?%O3PpP+?p1l) zWx1@IW#(+Q%q+)b72C`E#%fUn)}kVQjdQukLyjo) z36pS3izE<-V7B^8Bku z@BHZI?e;B0$4`c@o*Q{2);|B6AN}O~2WI@cM_)pp^Psavdcjd>iOEDOFHDp;GSPbD$WXZgA`^iKFK_e1M5jTRC{N@?soM&UvH&6z zoeSYbyOvC}b%Yn4ATrUR5+l;qClj3p;YGWiOmqZ}Jr(s|2&U8vHk~@ks13`JRs88~zl0W%g5eO43J> z4%8Bj0h02zS*YajYFqmfutI)n+D)!CBr8ri(31J>qhDYR7UzhQ^lp9!8;0J0iCF^n zJ}SQ0aI@pff~|+!9c|d3eox3D$o^#xg+9z71?L*vE4V#4Z_}RRn=8Ce&G6_L?>NKN zM|rC{%VRLKWFYS0N`<%of_K8uHpVp=dLU{pZ&PPDS5NT{^&!3qrVif}c^gg{w9EiJ z$)n_)LH9lUCWxU7S5#&G4A+$QN#3GP@(>)uukbE3wvM53kJsf^wZgZ-bVr8Yo#Ckr z&y4X-^wlPLG=u2&@Lsg`!7`>|6!~{ts>rQK0-N^o!Uj{|$kmR!C?nv*sIVY||G?z2 z27|AIQ~N96)IJ1`#T%qUinZE-X9n5T*96}t_!hyzy!Mv`hcAm#B}xpuPGxsA=@U&l z?YVmYyPEXfO*%6g_5d@cT_c;zmCd=5C*!+3Ww{F$o)pxC-GLwELVg diff --git a/42sh/objs/lexer/stack_to_prompt.d b/42sh/objs/lexer/stack_to_prompt.d deleted file mode 100644 index efc4faac..00000000 --- a/42sh/objs/lexer/stack_to_prompt.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/stack_to_prompt.o: src/lexer/stack_to_prompt.c \ - includes/lexer.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.h diff --git a/42sh/objs/lexer/stack_to_prompt.o b/42sh/objs/lexer/stack_to_prompt.o deleted file mode 100644 index 01c32ca2d0a3ac8957f0bb10f1b90b79f8f8600b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3752 zcmb7HZEO=|9DlCYyS}dNC|e*5(uDEi3oRg+1tw5fp>y4Uy)a_HOLyzq&eGQ2bqs_^ zq9ZJ*0TjRZLHwZ6#6*l5O^ik*YWO4xe({3|(`X=SSky!m1OEPZ&(-w+9Z&Xu|NnpY ze_rmn?yJ9kx#40=5E&TA3Hn3=i-0iZgOX(5VXSwXflEBcvVqBnLcC5<^vt-<4G2Z) zPwejh*S54Nt`Hve(h@LnU>vb>NGgh|>6Lsj%bj*S3+Evo|5WA*7mj)pc*B{YYE}WL z5mA(m!Fcc1TGk?39E@=;Z`kkU^WOW%9UV3P#k{P4< z*Y{`Pz03h-i3d68Ml*o4>8 zYVx*t`_ih>qP;&0kGD4qymYx-$SB41K5Fll`M$>cYv=78{onpfywcF9vBCEKzTgNCj>k=g>E|q+r1icP@%yiF6A4pFAkeoa`oqX!>Gz(5NpeXre;u_Un`H+m`iRt8V zmQ-1CGI1GMmjl5GYBc$*^a_c|#I-A@NI}S33r$*~{XFEWg>X5UReN~IUkeRep*RmU z)Iz;hXekc`YoTpch}H&eZR9puzqa?>h6sDSTGBI+!}%E)rHfQxKJ+e#SGHLIhm?qOO*jTJKEnMzF4)9Pc2 zUQ)^xoMAnxveq6%X>>RpTeDirDQfwEQm$$_mQhfJ5HPO zboHg;eMz<>-ka!QTef$1Cwlr>0@eAV&TP#yHJ7fKPNpk`yoL-@sHLKwK>?SFmOq$b z#1x(0j&udDt>J`SC>67jYEjE)i<#jFJ*G%sd%aW!=tv=*H8YGfiVBUwl0aAz10i`q zpi!8E)9r8yV!-EH=Ub0$7MC+I(1OG246@EJV^S;Z4L%=2aumgLgiT&CK)K8Oo#Bmm z_goTla2FN0*VLJwX26&QjCsQ|p5$u)a%Y&J+VE!jgE(BQK>d)y+|b}<_mjX#n!?~y zTzAm1b_&Zy<3lRa8zG2Kf;+?sa8aa}#VI}qE{UhXW$`6&mv{!;ExrNn5#I*)itmH_ z#E-%K;^*KE;zjU)_$_!){2n|c{si90oUcPjSBW|K)yA0Bk+ADG1ROzuas`*;WSQpS z2>t=n?KqiJ$ZFgR&YaU=k_c56oPR_2xS$6>;(Tut#5{41uLW`)x#l_+GhZvT^<*_U z7Q20qK-*1Lvtx0H`8`{quL4PnJUb!UK+Zi<62j$n61FD?rh??KGzuZ%mrt@UP8r56 zN0MKr+&1TTWAuqB+6I~$<-7%=F|(Fzd+kk(yUC&ZnTT#<8uZl>m<%c5mk&;$VKYX! zGY1_Q%B5~GC8j@e1Vk&?1)@E{AEQlb24T>_BUcpU1YyvMl8Y9()$lOdMRL*N zhfNn@l8ZKrW6}DPi#ClH(&-`>9X0NveIpm09bQPAO)feT+(pNUTy(a0;eYLb3u{Iz ziR{{#GBrY}8`iD}2YZ@OsALfzVOMmImt`S%zE(dlQ+0 za6QlfF3>YTLcXXLs>ArTRJ-X}AwM*t$7+FCRjXK5EdM~;gRIV@9nfM5|G{N^DWW+7 zw%xe+T;Qk_G#yc#7qbAm6S{f5!jN!&=$D&`z?=@|F)t+aDh36~<(-gZdAB6WSt)p4 zYL*|C-0hOwE_vlH9yl)rPf9)`=dRS>C85h9V`11uJPc25I>#lQ1G1mxlKxX7dyva^ kEsret%FNhy{sR1OJ89ePQAM2lU)9$^ZZW diff --git a/42sh/objs/lexer/token_append.d b/42sh/objs/lexer/token_append.d deleted file mode 100644 index 845e4133..00000000 --- a/42sh/objs/lexer/token_append.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/token_append.o: src/lexer/token_append.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/token_append.o b/42sh/objs/lexer/token_append.o deleted file mode 100644 index fe366f6990a8cc5b44d6fe34844eef4916be95ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5484 zcmb7I4QyM*9l!UU@5PQ2+iBV^{Qz9jb!llnnszim%Ieex$HbweF|YwLu45+w*U9YX zelTFDMJNxKiEc~-X=5NH2GYca#2BcoZGZt9+LqFNbcjh^S5ScfY1Ps2v1Pyiy?eoN z%G#ZB|Ns3z?sxyY``^8D{`lz!|EXY1(HID-19g~#_)$?7piYwVOG?IL8SbY(D7Fkt zM%7D7lz7}oZ8xm8CHID|@BKoyTaT(%i|}aJ&uc9l2zS{&#N+Y4)aF8eJa6QLIvx*R z7wEZS+Qr6kO1xFhX_MWM7E848GDAtBD93xUYz;1{v|*}HwQ zQY2P3-;(%-6UlPCQ)PH}pCg{JWB82ot#etC)XFHHI7d7jIssW8-$iZ<&z|pIpCy;j zviT;5wqTw{ypY{CnC*+lyMiUYY@@`xSt^eJk5bV<{>hXq!%Gds(>d&})gd0Ac^~{z z;@vOt*4Iqq2o1~w(j?gQ`5nv(#Pa#Bud=*X$|%NwM`btSlQ}sfK3W&CByQ^4i@s_mtS~_5k1x8MU%{wN8Bhl08pcy)q zHbW=F#XBa$#qT?a{y-0qxKD&`+V zSAk<*DGYG%Nr%x-v~cpo7s9SlC7e7cd&DNgX2%TA(QpyUVvp|?hbjgJRNWW7&jK~W z(}t=OQ1=zyBNz((-stI(=zFh(-e)3=Rc{2Iqdf>b?*t8c_s32Ji#Lsj&CrpcdDx7- z^-$pSCn58t!16;u^KXGeM~kuX(N8fed+B`MXXmaBy51N$I8wD1-A@ML5j4ll*kS4# zSUwgsM~kt;hmHn|q4B`zq}G|7kjq{d^gioY8*q&UM@G@R7<=T}3YQ|i7;?ROuWnwo+FO;!wjj)?pe(HY{w z4i+XTo(~ZZ@`jSBFcD5}b#@h_6Vak8bno0%>0;=^fOp?X@BT52J8td1zzoo}?CSi0Rjz&Y>y)1;@$$>hIa2Dv2D65xU`AXR zSYC3vmPtu0GnDQ33qt;V2_wN$`6Sg=mLI$=#gZ&PFqAV`CY5D0hFDefws>Ch;h{XN zv~t2?H9?cNl43A#U~s{bLs=t*ktC0cF^I$sdRZlMxZ;HpvIuK>5h%Vaz2uY{<*S}r zu6ca=B2SGn2brik6wTvyU+TULx1!d-G|ysul^tHziANk?3i)!k8z#L8o#!a)D>V=K zeyysr_8Z9I3eHriq7KeAGep;Xz*rp^tE?><$z2WP&RT+M!)0A1o}6A>z}AKC6xVwd zTS-R)C1f!{?N_3jfap*fv<#^=dQ>Rd?Vzf*lN8!Lpbo7F%C+x<>e_>#71~cgo!aA| zF6}AMO6?g?x3(9wN_!EsS{noPXm5ggwIiTDjgC_db36gY$3b+(LEZQX5T~Mpin3Qk zj!>?hf~@+KgHR|H>YnYZ(NKMdK_PA1DkMUKWDJm0(}~GL%4Mb{r@AL|CrPyg!}J40 zQKHr|VU!xOE}tG{Sd6k0e+P3N2e|}QTU;3cYfvtCcY?14h_YU-XYM2< z3RMZH^-ec|{(__qwch6@P$6wl>+9U#h9uTCsMh#N*PL;5*MU5J9Ynh?snV&#TKX^;XE#I$>Ec@s;w}1V!Z3iB{gAVjRQ9nj?VPcC>DLXq* zDQPI(zJvNb)JIXDL46gKw&w#>x|qnHnv^U{!BHraNkz$x`;Q8tk&3cXdQtk3it=$j z`7lP;2C3){kzRB-NJXbbdQn!BiVlfXQTmaJa#X4)^+-h-BZHu@NkzFQy%G>fMLFz1 zMWK6)RCEo=ASjzjMd>X&(qSSM9dPMInMx{3VCh9!ODala=|#tlRCEGmT>mR=Dv$uQ z<>+A*d6yEzjB-F~?z6PB?DlPT&6n8iJXCJ$Vaj%&;;X7~-VYQCdogOuDGFn1%D&54 zz~j3|-B4{`^5hppeeGYCpNs?9FxxLfcpqDSGM-s}4OkzQJqb@m`OH%ds?eNJmBDN> zQ|QC5%jsts%M5N#8_m;(=0ZMaOU;9;+b(7^H2EF*X7OIh?{x4xG*pvTGxU-mFZn4X<{PK2uwve%)Z|CO`Tyt2~y zHrf%a&>pNqg!_;2h9+JSaUSCiy`QVk-N2OsXZ!eK@@#@feT1*r$?MzsWf59O^`xpJ zGk%0s$Nn{5Ah{m`Hl*koN;MldsmEg$RM*8I8Prps_6_U$uf&Mc5$o_)l z%OpQv^7WGYB?lA!&q>}6?gfB-_NX7pcA-0+7%g5T3X8I@{Q>-56DY7POKBlnU$+A{s$d5*om%f`m$2xKxX?-oy^h+Ia0W zts0bwf(SvPm8itA;!qB7=pi8SbEp7`NJSzC#DyCY;?$}VMG7rym~Z#3v9}4$Nb}~+ z?7Z*In|VL`)6J{5JBUPxxM2=6S5RkEI+6^!CHNJ6^t8En9}2pFwzcthXxh zhWwZ`ztfa~_&mJI#I#%BV0@oR?_N24Xq$L$eAT=e#9IsCy|zuf`pN31>%AfIgiPR> zZQ}8vb0LHA{e=V1%KjjQVoFpT#5U|8Y}OT0CSCsm3P75zS>zyHc5+eHkncR}JU%0Wqv3-rwv z@%8ezBpjliBZBW?{$Be3%<>+5W`2pem9Sp9=2r8z`bTq1zvq_b*K$&B|dT#m2 z-17YOTzY@*t=p71e|cb|S0ui;eEho+oDY3`{Md{7tW|SL6n;WH}}^Y^OA3TLs;>^pjIMWl_zV zB(YOG7*DC8crvm(zEgB_29*pOyTx#4DE?IR>FC3;vD7m$-d8Fq(lnOh>#dhU@dME) zmqJYtERkI-yfOR=r9>zmjRJs3>tf%r6qG>}_8(?%Uutf}V)Upi(+e%-+9&(X9qb## zFREq-Th^*Sx|(~}hw)CSVHFOMMQ%> z!k=;z5$d1luW+LY6_XL=ULMI|a33xu?JIaA$jVSvT-i_Y(gnj?|>cE@H*zAg_pFjPjn!R%2 zlPiBC(;qN@%=|g?Dl_tgl%gtFD^iFv&xG{BgaqwkW(I`!7iQYSeBqXt zK{=jiB%XXnIoKtC7igY+6!%6G;#Rzi1QVN>Me`Eji@+>53V5g5ZwS6l*wKA&GDVcf zy>q-S(GJwhrBFhsvCgm6ROFDldr0j$q;?Le$}ft-)3L*TW|onxln+VyfRrrU@5iOY Pm;@T1yj!Vx%fb9FdhK&E diff --git a/42sh/objs/lexer/token_free.d b/42sh/objs/lexer/token_free.d deleted file mode 100644 index e4475d15..00000000 --- a/42sh/objs/lexer/token_free.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/token_free.o: src/lexer/token_free.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/token_free.o b/42sh/objs/lexer/token_free.o deleted file mode 100644 index 85d2c0a29112607804d6f5f7d6ae51bc68b6a9ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3208 zcma)8TZkJ~7(O%ENv6qeHtjC8wHF3m2Ceux7b`mm4 zyS*rd#nz<{ZV~aNLcxbV_#$3FA4H*2gyIDer4NFF(kd+$k+!yA{k}72c9UuA_J{xc zm-C-5|2hAE&g7eG7ype3p+y7+a2vR4V6ecT#o()S-iC&w{=_ubfC3wsg4{_b$hPaw zMBUeYd+X!RZk@FQ?K!0ok3ai;!j~`(1u>MiU2sMlW42eXNw;l}>=@qi#7szlb5VKz zQ2EUS2%$IWGkE1nUb@40Px5e@=ts5hCf6h*;A;bBdRd+hrZz(ys-e360^4qV4=jbZ&Yu?VDLiEgv~@AiDTDqi zmt2V$-tUVF?-#Y`lG^Xm+vLY{NijCz2Qv9Z;9kV@=n9aGK_231a5J$)WL2`}sX6s+ z*{R>MlNYS))XP`1Q;kd6qYcXQkms|Lr_JotmGcBqb}D2qYO#aZ$uF!IP7U)uS(`U+ zf6Ch9)Vxx~wT9CD>3(ZfzKlnpZ>S$edT@36{(FU2%V)~Ygj37ZD=#@N3gtNIyvS_x zurf2Yx3asC%M7meigv!b&#pGSqL>X7gPxL#?@ zbqZF=t^2D*-IgfAQ<9xaCxu)i2gc`%xtegiyqG}=JgWugwfWkLWS0?1rlL!d^R)#i zhu$eRbfGBxBDJLvus~ZEk0c*VJe0Vn{ZW+DFodog42%x8n6ZUe?uQFu_KHYyZ6bl{ z&+F16$wY!MLc}}Z-_S*4h<($`-(|Uk$%YW^;ywz{dSA#f_*UryFeB_PNr7A2Zo}3( zHO+~KG=T9+jV_5Go3(U_T3{&rb$NUOmU!c@ZGW z_y(9wy8=7}-UQ~6K?t57pB@m)M;Gh45DenE)5S6>7pqGb3*H3=u`G14QVNS5LKhoH zEo8UQ#RgJQEErwZ>_T=KUF<@&kd>y3WmgOTuL3cgE>9FI0#eOSkQNGxqV3-zw273K zYLA)I>Q|N`^7CtcX@bimhLfqo`udLG@7hm@(Z%Z+HSKz`10#=s$!ar?p2#%3TBhXY z%Z-AQDGdxg(CYE_c^UaAd3bANkcYe0{7?eU4@ei;7V6!DfnJiIW2kLH$S2lU@sRir z1(Jz$YDPSM*)XFUjgIIhqZ?A+Xe^9Q8q01{WAN(mYSBqOD(fk~N64UWMDA7e@uC2{ zkCi|IeUCt5KDtK9l}avG5<mO*JU<%MgusW;og-c{!x^@3BD>bNs5 J)!8Ex;y>z*!Il63 diff --git a/42sh/objs/lexer/token_init.d b/42sh/objs/lexer/token_init.d deleted file mode 100644 index bf6b8110..00000000 --- a/42sh/objs/lexer/token_init.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/lexer/token_init.o: src/lexer/token_init.c includes/lexer.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/lexer/token_init.o b/42sh/objs/lexer/token_init.o deleted file mode 100644 index c018b02ca3b4a8f8fd796c6b35aa362c67e9f15a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3000 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 diff --git a/42sh/objs/line-editing/control_c_and_d.d b/42sh/objs/line-editing/control_c_and_d.d deleted file mode 100644 index dea13ffd..00000000 --- a/42sh/objs/line-editing/control_c_and_d.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/line-editing/control_c_and_d.o: src/line-editing/control_c_and_d.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/control_c_and_d.o b/42sh/objs/line-editing/control_c_and_d.o deleted file mode 100644 index affb66fae3ff42f667b4812d6725de13c8f64862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3744 zcmb7HU2GIp6uz_DnJ(RScgv3;7@3Fq8+W^qM)}oNSsW4?u|jQwWSGv*whPk4(+szPDO*8r%8@bHKu5c7KI2pAVe@@qJYsj7= z(el>^Lvl;Z3($bu8}dWPOCuFTQc(fR(U3$LL1B@zi<+dYgWEN z!*o*g=O_61YhichGm6EWrRR-7N^eHJ^*leZMSs0xelB03ZE}D@<9lt6eD=QLto5GZe9!Ww@-4uo!l8~V2n~ehW*D=_pP5bpl3>WyY2)2@4+bN8|8dO&c{uL z&&+_(3B`WSW%CZBzh0Gp?>-j~fq>*J^5c7QT7I-H&bKg(i6Jz&1nmOi$$z1VvG0IH zvjxp7R4+Az+_h}eYCmh$-(xE#j?)U%zS2fI$H!9RM5NWex#nW(hE_cr+i@l{%HxyT zuv4HmjHuMjPnjE79a35J&|*9!Jj3m3^vh87Zx%hgjwnag6SWh);&g3H8>w8=Mw^JKm@bu)TcAz$@ua>p6xp^PJm=<-7p%*6Vfnq)miudjAse7G`>%AIGNPUKTP zt!lNgX|A#MByqWGXbolU21Y&W%drmn>ZqGHcXz6LtWr5!$g8Uo$wX3p*v#Qm8DEuz zk!V|)Sn&uem&{h$Z*eP~wQ;qznuWYwD&%xiH*iAI36r&MD}$xAe{W$|+GuTCSsu{M z;y%4tDG#uWt@l+j89nnjsp8qR*DzVhvRO87GpSj6AhJLXMqvpQ5wY#sb{2X#sBG1e+Nnx3FO3$#9tV?ptW?#t%8ippiXBO9Oe%1*aFc z^W+gp@Ik42H#8|KNx{II`$tJ{euKv9oE3)B%ukopja!gOizTT}wa&gltNvW9bL^mzpkLdK$O^HvLLTqdBBNx;{vpOo1YI zCm-123Knzn?AUB`-fawVEkq-sS}6A*lkw|_7N4=?!PmoWK&qQ!Y3*9jApbX2y=MvB zXkL`a-F2cDui+=xGh*ke?9wiP^C( z@m?S{SG<$k8-XF%9l$6s0mOA2ZvtY|#Q#Fhb&RdQ4#c*JUj?FsMLz)XGc$9KP2!tW}Z;VQ`HaEa*7MWmN4+tJFlVOPp-V8ynr(x7P+ zCvE!k<8V}LbHIR}Hf%#L<0{Hob|LSKAtq-*)$v!!Fn8 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 a1c6c56a..00000000 --- a/42sh/objs/line-editing/copy_cut_paste.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/line-editing/copy_cut_paste.o: src/line-editing/copy_cut_paste.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.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 6e89a5128a771062a54eea8c5a3a7f47812ad9d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5456 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 diff --git a/42sh/objs/line-editing/ft_prompt.d b/42sh/objs/line-editing/ft_prompt.d deleted file mode 100644 index be27c557..00000000 --- a/42sh/objs/line-editing/ft_prompt.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/line-editing/ft_prompt.o: src/line-editing/ft_prompt.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/ft_prompt.o b/42sh/objs/line-editing/ft_prompt.o deleted file mode 100644 index 414e06113e79845be32ab4fc47cfb24375dc5d55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6184 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 diff --git a/42sh/objs/line-editing/get_key.d b/42sh/objs/line-editing/get_key.d deleted file mode 100644 index 30611d30..00000000 --- a/42sh/objs/line-editing/get_key.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/line-editing/get_key.o: src/line-editing/get_key.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/get_key.o b/42sh/objs/line-editing/get_key.o deleted file mode 100644 index e6876a95e0027a01550c5263e35c93fc87d4a449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5300 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 aClV1Zvo6nsKKHgwlDXIIc@o^P(f$j9lT{Z0 diff --git a/42sh/objs/line-editing/history/add_str_in_history.d b/42sh/objs/line-editing/history/add_str_in_history.d deleted file mode 100644 index 96aa9497..00000000 --- a/42sh/objs/line-editing/history/add_str_in_history.d +++ /dev/null @@ -1,9 +0,0 @@ -objs/line-editing/history/add_str_in_history.o: \ - src/line-editing/history/add_str_in_history.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/history/add_str_in_history.o b/42sh/objs/line-editing/history/add_str_in_history.o deleted file mode 100644 index 12d7fe76833e668db6fae29c28e73c17bbe4b725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3440 zcmb7GTWnNC7@o7cbGmfP?v_g;7iAObg~(n|jEy3;k&@#Iirg$DcyfC7Y`eJK-Rz!1 zYiv@pVBBno^nrv2Lr667#Y7WdOz}blB}NlpeBhB7P>h=Nfrkc+_50_{(CulFI?2pG z|3Cl#%{Q0x&-v;0U;nf*rUe-q)DY@LjwXSMvIf;4{T}6<9J?l^(t*jS#$}voy3VLO z2V$E0`}+6K>8jU7Bv1&CxJ*PCi;^M4CP=7ans&{t7D|KC;Kx%qYW@(BX(@r0K6Onq z=M0PtngA6ern%#_-n~2TdTo`wK9iPJK0KJ`K`Ojr*|&FDLQ7!8YX%R)_X(F-Y*G#dtZJYUU}fCIAA}&=jek%>GA}7 zaGC7P3Ez5K_*E?1k7xPtdY6djj#U<2?@5W5mwcQh;^89}kbZuD`1t*BUp%`!jCH!^ zNa=W?lrzm;JLa|qc_ZX$J<>Q0JenfWardJ5_RkqI^HrR#7vRqadnDeF#LKjMcv5A! z)@n$Y)cq?KN&?Zp-p?i8uM*%a@Tg?KPu|IS{JJnEa#6%{q`?PJyWvlktB_|Q!GrBV zZ7t+Wb>Wq4^;*1tz-Zhs>VIa8Q+zdeeYFfgQxoVJjqw?yaphBXlL8xkx9a1!W@9HQ zjsLzEO>_K~(HxmEntd~k@o9J(jggzew+Xd5a?@yhBUIzmQ{Th?Yg%>VHib3%u1QDg zUzHR5Y}7Ajj$F!%l8S9O0e{9Mzqp`NAD>~d6O_^=Eu%i#4-0LcvNU`8jb=~SXm%4l zfnBGlEiFFviwUEC5e~G(zG;sp(QbUF`d%a`#gAM{ZGECPWDXT-Zn-*!)99s4k=V8C z;O@jRr&=qNONs7OCY4D%W*3p(lHD072uf|)#A;PLO?M>eRWK=e}YzbSg0su)8unS z{hgaO^bT*Hdbt~Y169lcsgj`J3O$8NMd6B-L-*s(qWm8p#c!2B_Yx5C3o?%X8`^H- zizG7fZp2QUd8-HgeWL-<((ir9H0%V;XO34}ZzIevU8Gw{u<3@}NG*!-sf> zzKyTT^3E&|T<2jue1QjG3G0(WYWfAv!n?WNeu1~^{XCZE=_$kv@{PL7lUe>`mUnOC zfh-{3=4%T4ahNk%zD|FMhr}fB@wH!It}NH|!vP&@Vr;FT$C90p$h}Dp8G@V!TfBG4 zYmnHx z&*Nb_5#&6*_<+}G#b@oI+K35KX)(s8ES(K*f@)b(foO}uu zH$#5AK)%e-P{lq<>o+?;kMBHlE|f1{94=9apYPk8pGKPkax~(i=oBL4cIT|Ok|~bZ z)d%@r_U)k)QRcf3bMlR5ESaJ|KaY>o6A$Ohl*b7QCJu4@qc!zxkqM^w&GZd^dOl-T)uTAo63=to&#n$g?o& zen>R99PJSNrDd@Y7ogKN*@H$xJk-dSYUU}?Te$2q8ox8@e@tH#w|~)fj0f^m6*dDu3t$QjR|%ox3ReBI79E!XhLoF#bq@0>%AaYf)OuvqAvkW+%)nr`E?3pzlV2XKB))(HOtQIh4~zlNHa!4canC(B#Y@RxHeI zG-@|^sCL6>l+(BItJ0csqAv~2O}Vl2x;IU8_jRLT>@n)s(g&{&cRX^2oCL2YmSG&r zfmYv&3g`&+;_72*SUx+$(lpXW{g=~VLou|9y|TnRZc4P|^(%3ZVQGHl+Ftzp5xf-H z_h?&Lj!$viwfMoSXaDQ>8=C!oL;s)e*UE}*^!tz)7}&o%an!C<^QB^h8Ezu~Qa0+DsL5TCGN8q5WRTMRFZtMrtPyB>J+V-%=M=j42G}@tPaJ(kF z)8rVKWCw2!W&gKmbkhvVCnTkQ5%%C^JYJ=^!O$Ck<$=9nV*4|h_652{_-*v=lD0q4 z9SXnaY0n3`<3j%{)W}q6{*}Ki4H0W%nM#n4(*%aaapiV=m{-3?pxnbgm z>;HM{3s+M+pwrbkizc%Meie;GE(|awH6djA=nt~)&B^6IFelCTpZIvW(+>d&>6E)F zG+f!E(nfPp4L^Ei`pLHJFNBpie{ul2iAJ|=T3GU-m0pGhp+zPWtrj*J39TQQXffBJ zLH=E$K_o%NxSp*iZy_R@CEmvQrfYp*e3C8m#e4NDUw&37V{s+EC>T167|L`t+Sn8& zGd=BXVX-Y1|5{*sJ71fmAHCP_|IPK|Jj7gn1^9*Tx_HY`R|8&uS4E;(EUp>eqtO=d|<*>W-$K*1GgBX)7=q-mIyETF?!;q%B6! z$3UUp1j{-7lC~U%H86y4YU(BOQ%@t3NY?3f%+{}c{DP*SE7XHGwP55j;`(XE9D;Q{ zr?tU#jec2M4cG3?T3aZEG(zbElA|4gDh3pA3U#IPKUY>j$6H*A4-Eg3_wWV?f6w>< z5Pw1@-(~#@$y@e1*qPF^)2BVqD7@Vf+UsqdNWqq{N03pfsc#uDxOoZf*srA#08O8&QPcZf{KE}9~v5zsq2#|b-7{M)KczEZ_ zIP?xOvJ`=&PqOVB&}R(0U$Ey4r2J=&Z};in^XZmPU+L3@Ip5`j2JpWj1-odsQSo}?K!sYIk{{^CaqPqp94oOQ zpi*TRsu+t2v{pi!*8SKYv}F_8CXIfv@KHW8*0TO!Y?`(Ru`O9aqABfwR%Fk6@3~2Q zV@9?kpZlEmocBEM`=0yWbC2)G5AQt6XH2p(Tu}2+hd3@SRFs9N3dxTtuNUhBBSOcJ z!O5sP#XMC_g!>Xg0I2FV-}Y@&ve9Z6Jj6%7w9aL06%FRGegdPYYN$8S6ODC<4l|#@ zLvc~rWY^KST8xH3Rc#NqB|B7*YCWpD>D7jpzcZ=TVfZC_UNrHcJB!lb>*@~W0Gh4oBEYeL=%zVSbziLVfl%ER!?$2YaQ18m= zUr#XB5$>JI_kfaNTKSX6n`vD+`F00Gnu})t3_jr=doo`z9`6dPvEXiUZ$`Wig@4C{ zLw|mve>z`x+fMBUoBcat(}}7C-_8=zm;zJ0)BKAELuS5TnE1XoOTNUuc+Pk~5quHh z&o5`mhlg0BH2b%vKqoTdEpto-Dq5y^L*2U(XF^TJ_C{mvs=9g8^ck&!uU~X}!AH-s zGGE^p&@}OdJJm=J?yf$;ydR7RzSDwlNbm`f;c@OX+JuwOZ#1Scn&Uko9)f=eFZ#qr z*9rebPG>!PXH^@%iCh8l-{DX@P5W6Lp-ww0}@R487m#FvLUGbPdagc4BFe^*ks zYcBcjk>*9;=j;?4rKXbVb1}zZJkOIo8Lvx8`|gk3M&B6e2-Vsv1H+p7Kw#W)XekDi zknbK;M-48Tnb|VxI5W?dddR$vw=Q}IlH*5w<0mD@VcI&!_D{_k$(}W$&#H7B{w8$b zp=697P2N*7eJ;)2)O|Qht3V-4cTUm0zF|ztY`LMN6;~#3FLh2z2kwono|u^EKkzwo z93n?FvPoS%U?t^Of+tXHd&K5$n_Cr6bGFq0ge^x+U~gqM6@(@h!s7p|B* znz5zMN=oRgk_p^(oGG%T9=IKc{{{_X&@wq#Z<(U{K-YkQEu%`PK#?vhsUeG!zND!b z;JanGn;OzqSqar*?GZ2>yr!vU`s!iH#FIX7)u74*uC6!-D_ST@=y^r@Oi7)ErH|8r z%hQdK`OJYEi1=D2a5;TeXZPKrB~U{5m9zh}DAFTZn6aDF!pn|*qvLQR26K3=c@O~8 z97Xzr@BpC$H+Sr^#b`A8W7DzqBONF5-4)d|x9=T6dg}L_Cg)L!`|_zPOBFFL`UITZoP`iZ^vd8W=vs1_BeB z?IVGSfvsMxsr!=l-4)uurL6&eA@SmR(x-j5vzQ*~OrHv-Pr+murrZ!2WAKi^TNimd z(_gQ0l>3mp@6bM!9-hi}7|$HQ4ce&PW<3$LM{mtkRJEUI(~zr3N6L%m4a-KlOKF?& zh+NlV@|hly=}*B)T_ZbtanEM)6qxf#+-Yn8;=#~!ep<$nM%s5(TOwg0H6%^t{MGE7 zx5{bRh=h{FNCz~To(|p}=PN5&10610n>ROaaqS8B^hUd5t~H(-PmODNs0$||_nI0A zp1PHu+7+y~Csf^q*NQvb9!=l`TiqG$O?3C{Gf<5O!4T{4gjjW;7i`rXd%JhG2dnE= z_I9eF_&znB?CoTcgeoQ)6LNH^t8#U&%+*=PLY=`L7L6rXl(lttcZGv7M#tgA?l_Z5 zr6nbExwXV8mzR`EbC5a~4?5>a-a>21TKhWtvZBVh8?i*zI%W}FjX1mK&D3Iy^DG_N z!?Kz1*TKPPwyla;OE%c;^j3V9Y|^?j8(NGNvF8X-Ue!Un8s~mp6J5puR%)hWpVTNV zz--BCIiC24v}2ADS8ZlrRGyK;>b4P$TH!`GEu6T$S03&A7ZX7 z*@gi;FJBvA$}0^DIYEY~QuOw`^k6c6w-Lu9rBwh9bl+X3>24@am1_t zJtJE+{R8%p>#f(kXupC=i$wjjN>xA_d&69jsA#Z7_QAC;%OI9&bX^EbY zGsas*hWtdIHDlb!lWqFQjBz7+Y5&Vi>T^oYqI}yiXi*r8i1SPGbYjAI3|K>n^9{=j z#rpl%^)^Ax_HSKJ_{nnVbwSVhK-Uxg=G1!=dMAXQ@Oy^dO{|B7H9%96zA7okRifBX zrN`}$IHBtsrLo^(gQPjEKwn$5tXG)C^9o<$g+J%{O^EH0{Ek9oy;Vb-n@gVooBCq3i z+tb=2+i1a>5cfR9Z7D!bGggQH9N6jH6+j!X42Ylmt2`Y)0^;YsfD4U(Ao_m*#3u>& zP9V+S3dGOt#l;CM2O{m~e}Vl2Klfc+@JzdJ0ZH$V0xt-B7l`Af`=pS61jHWcJ^?HM z9u@uj1@0193B>Cv$ie6sfL2EH%kUkem(FL{@cR|~8bxK!X`fvp0)0$l~N5mf0A-4#xB#|$IwP-u_pVyvx4?F#GdV4^#!>6l(HT3@I$9NMLJhI_*8_?Amn bOj>H4!EX)%r|(?)dT)-P)s;E*=^p+E-56^Z diff --git a/42sh/objs/line-editing/history/history_parsing_toolz.d b/42sh/objs/line-editing/history/history_parsing_toolz.d deleted file mode 100644 index 4509c738..00000000 --- a/42sh/objs/line-editing/history/history_parsing_toolz.d +++ /dev/null @@ -1,9 +0,0 @@ -objs/line-editing/history/history_parsing_toolz.o: \ - src/line-editing/history/history_parsing_toolz.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/history/history_parsing_toolz.o b/42sh/objs/line-editing/history/history_parsing_toolz.o deleted file mode 100644 index 9bf472d0bde1e39eb26e18e07d0de8207ebc3410..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5576 zcmb7Ie{5679lvM$o*g^bfiQlQ!mF4it(no>#9wYI-zMu`-5&_Q`N2-D{K?cX@h7Q659SC>Qp7s*p@{rjn>iZ^L=;E zah#-tQ|`X^{oeOJ_x*8q@0{EJ{l~{n#uPh4gX%y{a5Pn@D9ceNNH|Biy+91)X%33T z1Cvqpkq|}K)8U@9=nMW}OZ&ko-s)W>Lr@5hmOWa@*isTW*cl>L(e=)7N2Xg(rIV&e z*LNIh-v7Kc%q*NkGoN8-;*%&#futUahg(!_lk`FDrv=Pj{sh_m@#SUto9{?Mt3+h6Ynx5uc$Q3JQs;( z#XBAhnI@LnXW_|out(zs6Ny+@H-g8>ycz!fT-ukH25o<&eF87uam-9`seRjB0;opf z{b`MYIN%Qo*h%Fj15S_2&QO6&_q^sXebD<MLL(R+c zRR1Z)z7L*`**;V%q+?a`Sta3PmR2qMzSeiYUd#4QXxYqIw)K8??}(PmOlW;uneQ8P z%twELM$5HKXt@TEvFx?%tr1#B%eD+@q2BuzGpP0T4l>`lfT`a*1eifvU9TH5g z7Yv~>&E7Jmg)$?WGNxs(TdIRly=yX~)di#?eb}emoUU)$Ced4HKAdrCeZQ+e^4l&d zb-quZBa2y)zhl~smLZZ2FgdfS9UhIqi4k~C2M8Jyq%nGmm>i8YV5r>Ua!oFpF-kh? zul8Tla;-z!me#TUz4v^5bYco~UcCm{`IdV>QDjV4TB8yJnnPOORfS?YIxsmoX--9m zvg8}8=}cbQzt75-mTg70S~0xY%GSRHGG;YkVoA1gy(3d$7TKcviIOwFY~_%xY%jw9 zAuPKp1DCm~Dc7~W>k4pgPT?2QxV5kZIU~}ZLmIQaZ)w@v02+`$dj~Y-n$~xXfG||p zW|UHCIOR6CP3rez0Fc=Rgl8XeZN-Q7^VmG{N=M2J^ds|%)Nf|}dxw4J8mu`K-^>`r z7^~gYvNv#mC)4Z-V(~2MnKY87}OAg#{eBi@q~g)|=_mRJCVM+uo`d z!^u=MZd5hY)z{TmtqaBQJ*{o12UE9kL*4qPSt=Rw$8agthC8F_sL}0@L{sT_@}x!e zL=Xr@x1Ns2W2fpu%-@;XaKXO6ho0)qY;)2&DAB!8^RT(1{?KZ-lRZ%0& zj1F3dQ8yMgm=QiTE7TR< zg~}q_%eFcQ7b#6{yLYo^i|48GZ8+<8&TLY!3(rHx#%U}sokBXQj}dX!FuQlF$Aeqj zwFDA@%2-*YV)uGHv;>|@3!t>Cl9&d%{GY&`PS-l-m|u!=_Ke9fc0^Jl)`L@MLhzm( zRN79Wr&KG7-S%?NAI$zG0D(&kn%rf<#U7g6Ex|=-F{PR~hwbH~<;2xo5M29W;?_uR z-%8@v636%$8Y({{4n=9pQ|nV`n3gmb@zIiijjRP#7Tyuu(F4RSqA_M0pcdtpbVzCY zAvk4cksCXwxv^8a5oslqozggA_%6u_!vm5NhVLeh@jG!-c zKDgrIYm-|-Rj;0YV`%NauAF}Eqth7wHtLU1-$1>IN}2j6DkX!kD8e|lR48pEq61N5 zO3W0Kh&J95A);iGh_Wk1v@u9@5sjQk%aDlniPWOaK_c2OQtOj~c!;nfg$1H8PQyD)4Aw_H8U*MQap_-7k=J%-b~{A^*^hT-Ke@ET~W z4)CWNxxZM0mbW$XGAI$2Gr$$~i=5dHyBfK}{cB#<$E(yd0d~u)WFMM@#`$R3KpXb(bg#&7Ty7l~8=_C^QE6 zh5)Z0=iAa|wDNO@V@rUq4{-lD-zrq!hB2^}979m%iqDa=yv%*&abi<>mVYMCp9=72 z8o5|=$vCeZ=eD;Ir+2M5+0X&q_q^l%7Dru9XRg!|3IF}{e z4(bK4b#Jbhymb#^i210IQFy)ywIO|b(3PzYaQ?HbP(5%(H#q?2_?O%i^{xYy+<=E(=c z<$=j)hDnHFns(-r?W`UCxrxMc8@#)EMs-$%M`2$EKre~BY>tRKOf#K1U(K2oyDUVe zdF=V|XFu<%nTzunZ3^Q(N~V3tNRH6OD-=^g(1|xo1!@^xa^EeYP4SZF&zCbV(*E1? zbMd|{0k(>lx2B8a(uvn6&uB*O_j@uwFN&u*F*ePwoV2o;%7b`ck>@GXW8t8?TBn=h z%_LJI#m@X(Jel4W@RFrcA!Ay}8A|Vg{m#k!5;C3MkIc`(E1tg~4!ASFC5g9J;^nr8 zC-N&LQ=NGK?!bF>i+J{IY192i`EXzSb>)H%Q0%riwGz zr)^fPi+L+;nkSEKm@>9c;*Ck+Tfn1N<`AAg3Dkj?$(hq-oUY?wn(h4{C-HI;uPN~) z%dmY{B}D7*Z{8A!o%>ysc)Mj5Q#}sSG2|zo$+rBcE~4)Q1HzD$J1|c|=m-5ZD77;> zhSQj>gKTNaBWqQCHJK$fM!vfengG&ici=*y1LlJ1#U*6X)r z23PLFW6@<6^(SwKuRh&s*{I&t8^UTquUBulmJ52LdPA@OLh!Ywn|=e)>l4k@r~|RA z*KQ~fEU%W<*4El~aAaLTIX9te>a|~vy>Ki1@En|(tk-GOtBJr!a}wL1gwaz7Mla#& zU-2XS8Y3Wg>o@DaaneIT=^~idN7NAoE^p;+~1EA|N)~V~da#OF}Bp|5P6JG=` z6K`PSjiYXEPyn(%f+C%M;nq0y(8$S?XHP|5%#Aan{vhiHLVi(J^E;UO@AXr(`E*1-y&EZ&z#V0F3jb|?wFQk+4 zL&KGvnJUeirD`R|rfvE*XEU}baY$0mBn$Y$lExLA2U#kYEHnC$7Z8!zCJ|T7D(!5E zzNQvkCGxD2znn2`d>YcpGJ29J`9jgkMyggNpS3dSNZtbEOo^3>6;^@gMR8@2bl4Rf zWXd+>kx)PPgnG4|p>0YZnt~dGuumBactTGF4+lTheZ2oDwIR+_DLUSdi^-ujmUlXl zixy^N>f6gap(DW{nudQnBn~cPUHytD6bw=j#sWPsI^Ivr2=$&kWdaHx(WtuFt7OM#usb|$a{=n~D?s;`jFVo1| zKZ&3BAomXXr?7k<(dO3v9~=6%(EJ#IVbHgh^7Al`t8$PL9?6MPOwxNX z-&}t5FR$NQ-1+@C)((5q@32(ln=k$RrBB~4L07~47UmBz-^RRyNi`yWD&2Na45}cB z=zOJ!&V@vDP*Ox^L?S9Y9(@{gnk1s5mG=&+J&C69BSrtK3O?-6-5I!61#wOsY!9x*4)>KjfZ+)QJ?Oin$w_Uk73UJ)3K9r zSf||}9wOD*xpF_$!xRj-VJaWia9Q3;6{=}m1LM_7IWD<){@}=G+9j3QO5BteM%iRH zY0?Pgblx;|_gIb|ZO031JQlKTg7G3T*0tV2JYj`*1>WHi&E`HsJHa(A!97}*`+kMx zRUW{yS2MWZ;3~9T(5eQ=cX=36-zevhhH9`gxX0jqP;7V1_g&?K2H!c)y;_y`Yt#H8 zgYPo)!+e7PeMr4QLZ2g^M9QC1O9RDgAav6 zYCF#Hhp_y_DDR%;0h>PzyB-LF31oi)$qr~az8iv&!MhXO548u}fOd{Q0=n1W2S)j* z!G{e#bdMjkh28wRoeH~wFYvuE-DB|mqx`VJpD=j*9zWuk{tU^SKxMEam{MX$whK#& z;xmx<=Tr^P17lC3uz)j$BE}Px&TV{-;wm1r1;mG9){>QK;fc&P14Uw8kh7@Ne3m3ND3nSej@2PP-^z> zyN9LVLByc%7RlUk28&jHw1cO<+NzIq@bnJ1>Y4fAr9+CWbhYHFtrV^UxHH&EJo;9) akgf_ zc#%S!cu&&?g8s1t`$p#Xmc4!tsJEOfjASZH@j4xQe!WQoFN$UB9ZjZ0iq8COJh{DW zWxQmml+PH2lO2}@QTAH#0ER_dtKsfl6dQUi-pRbqu#pwO39QH z?=uJ9-bchU&y<#}_eY6$K_)Z&h`5B{6@+Q7Nxp0p4%Vdq?W$dmMU>J?}!8M7Om3W6Fo>UoBdq|k<^OnyQ z1fsLvt>O}4?6Uj-uKJ{Q;S#54>o51V5R=uUy4$kVe0eJg_Yv;Y{U$6nUNw4;JML-QRTb5d% z7uJwW(Dn)~@d`D>cEbU_RRw-npWbPi7OW^y*JtQan2{A?W~|S6hy`C+ZPhF+wFQuw zpXcZ27iR26im1R!6_qsPx!@%{D9r^A3J}ZILl;-Lzkl#x_*AA`$rTIXuITpY_VCtJ z9=C0zYde(at{u_Nr&y(&>Yz_Hl1b;xTw$amo2!_`@);N_rePL~`Lod!>lmm2sAJ@G z@kBb=v1>;qYotnNjM7*o%S=PK$~abWsCXVz*<_iO=oKo^6MWn>Qsqq2%os98M39;A zjNxSJC3}PsG|Og^X@s6;N~^Lt(8gVXkhVV1s;t7fQG=|n4PSaYge$PyzX#{R-KMw# ze!r#g7Ul}{wUN?=lca5ey4UZAnjF)wGTG!b&st_IcT45AQ5 z=fFC>UU8P2**4mH&|yo6*8WML?u6>vi>3fp67C6zHOdkG2INUH4X7I#zl0u*D1+)o zFMr3@hSZHArs73s+7va4N=OU8E(n828GIkD8dRdBc-4y~8c~CU-=tp5en(m>4Kg3$ z5ZMVTgI_>XHz*W0{)6b>LrW+>2~EVQqGkG#9-XSTZ=GiJiO8l{znw(?MfTu^rhI4z+rc2QMUb=$_+E%;J<017SiWx$OVooTs2F%J673eq zF5c46+IzLr8d)-KSErmk%#`tv5^DB%r{G0-JPr=ur>W-WB|c+4fzYe!vn}#@5`Ofs zz9#+TJWKpO0jA0Z;i)Kp2U^f7lnYqN6;k=JG=4=q=yG9n*l`7<>E?-MDX8JPp&f9m z_)H-Mxq=E`@AGzYk9J-=z%?zwUD^oue7n$X(c;`?^0nGA9;9x9x5T-sJ;P~0)h31X zL8{OdV6eNK`~HM#a<6s~z;TX0zxDxlLpH^E8-lqu#ock<8sqB`vJL}0Muz4XUrind z;E{NUM-UzXM775_2Y8%s0Vv^bzKjBp%rVTE;69`nL*Ab@I;+|q9QpuC%x$-MQS)_;fPL%9F| diff --git a/42sh/objs/line-editing/history/surch_in_history.d b/42sh/objs/line-editing/history/surch_in_history.d deleted file mode 100644 index fda5e5a2..00000000 --- a/42sh/objs/line-editing/history/surch_in_history.d +++ /dev/null @@ -1,9 +0,0 @@ -objs/line-editing/history/surch_in_history.o: \ - src/line-editing/history/surch_in_history.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/history/surch_in_history.o b/42sh/objs/line-editing/history/surch_in_history.o deleted file mode 100644 index 1c3dce3088b4d4c79c61f0a831669f467f6d369f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6104 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 M4T0#=QJVe#1MAR6TmS$7 diff --git a/42sh/objs/line-editing/home_end.d b/42sh/objs/line-editing/home_end.d deleted file mode 100644 index 7ce5fc03..00000000 --- a/42sh/objs/line-editing/home_end.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/line-editing/home_end.o: src/line-editing/home_end.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/home_end.o b/42sh/objs/line-editing/home_end.o deleted file mode 100644 index a98a66538f9e22e9c3a2556eb407acca13fb5f26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3988 zcmb7HU5pb|6u#5$%$Du4Eq}^iv?vG|+O32LVIg!Q=qL~k!pdUEq&uB$3%hM?XJH|d zY*J8~)kG8Vod*+Re85B>lxRvI0*Q&d!HdaiFzhD&5KRnO4D~yA&a`E=$a1r{-#zD^ z``vHOy>svEkJG>3YZpTC3;dwAp;lG=L{L$dpz35lpj_6RjtP!&ZEy;zVIF4~wl!+A z0WgfcJNEBw*lz1*pVJ~f((-Ai5OH#~i7^7V7=~H0i`iV79bP_{hvkV20e7T>JWbtc z7%6LDByE6H`V3?H8@+p8toPsI0VVca_VB@dAEnDTls8-Q9iW6amCbXS45!(WFF7z! zw2n~z?$_t?t!0|o@?~>_c^cy7E3-a}`ApWgrb`IUX-j>@WG-zXNnXB5&+}fHa&puXY`Mee8TgQ5`v*g1|EGfPEzVhfh^H4rBKaA(Jjgj2Z zY%XOOyS6t{Bg6#rCD>U7A1%>->_1MNCx2GP7%XCSodMqSAj0QUhWSL$;cGJMUF563 zzuBB*^gi!t=G(>_Fatg+8R%ozefn0SPo9NACo$By7`1?Sxz$2Kd<2_lUPEmz6ib!P z(?>1)^vbV#`M3BvF-b%9@@PbaPLcSj`Ow*L$3^JmR=8cyxE|Nb7ixM%ua6xcjhqvD z<-{GPsz&s3HLQ=HxT9CTcYN<}9fDHXt`jBVdS%D$h8fYvci$e{62OF%fqI9WP@xH@ zs@vZ46|^|D2$XcV$h}_0vaHc zdCID;1**R*tS#%Br_kHviwSBZI{aOmgFV63o!e-klBo3h3K2kz5S_w3bagVhxF0M| zB%B*%Fiw-c6f7mAD82-{+*qaWFm*)~`1RL&b?T<^RB2`^NIBoD3L~R)d$PZprJ;{U|XDnV$}I(&rZ{zVU)m=l}7wH$4ke5OB6! z1@#^`WoMn98U3yd<@g?c|-^@voIyIphfON&OUqj>itE|JEDq#!Y;zA5}6MQ!icscPC^s$Wa1 zTEF&eB*ob#A{p2e$7fLaxgYpZ2vHKA=8EUPR5q2-&`= z&euLv7qeS|Tilx6L_x&1W8A`kt+sDb+qA2yum5~M6xyIKx1xU>LzX+bf|!*?Yk@&% zOiPVR(H&_h@o7kwxQ-Mc=h2Hm{6)WHJj-~R@fc$fh^-a1*zRL|6^MH@+Qarb##O*J z_!qNHDaT)QTCSUj{tXPk{==~s{lfN7Y*!tOe!=(|ko11c_PdNW;{fAM#wd_AA%?0mLmH{ekUo89!lskMRT}{$-H*-*W6lhk&H7kNaO@+`#x0BYlt1 zynBFfao4N(*Y_@wm_M0A?Vw>Zi z_1H^2wlHv>r!CtUu+r&l&N!O2apaE_OR}RdV%t`6*i052n*wwA1eX6M(nv%WtsL8_ nq@6TMxKV~IJD>9~OVi9)=3%-;jQpTMcaZeT>x9_odO`UQD`Ryt diff --git a/42sh/objs/line-editing/lib_line_editing/tool_line.d b/42sh/objs/line-editing/lib_line_editing/tool_line.d deleted file mode 100644 index 269a6d65..00000000 --- a/42sh/objs/line-editing/lib_line_editing/tool_line.d +++ /dev/null @@ -1,9 +0,0 @@ -objs/line-editing/lib_line_editing/tool_line.o: \ - src/line-editing/lib_line_editing/tool_line.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/lib_line_editing/tool_line.o b/42sh/objs/line-editing/lib_line_editing/tool_line.o deleted file mode 100644 index 8a0535b87e4c72d87a12305a0b4e126707e74d61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4900 zcmcIoeQaCR6~E8UeRks3FCQf-v@|Y+4w}UdrId(yEZrLPYBdsKZ3Y$9!*QM+Gxyo@ z2TfU#vN|1cjYO&q!Nh8jCJkv(gBo>1%RpN8JNMn^ z`fIf7w4>a2?m73I-#zEt`|i8W??3tIUmnI3H^T$11uetz2%v$kMO!81f1ry#dti=y zK#mMdMol9n$T0HeRNn5}^8S(g_Fs~n-W?POi129InGVJTbPJm%y+ejEVU8CPMlPQf zD#O_GwcYpL?F=&qN2R1dZ+UHA^>kJB5uc5hO2>q{9`B2FHTZ37wYTUu#fy%QXU&Hx z|JwK*yhkO>mEt9>c$!@5@qQ}fds*fiX|sVBP``C{w`qLYsFg5tjd&BP?c_ZFF4x(S z!JFb8j>bfY_3=4)GCX#9yl5tqG7T$wn8Itw*Oc)s$bde+Y4b@^7smx;#e@oulf`}Gy#<&S2X=6k=yJ0k;HxbON$IzRmJ|aPnPP zUzMrdt;;u-K8!r`M!`Cgv?dH=-=1oZVTm^{mFIv*ukyN1`TjQ4&zv;kS*)(@U>LRM z!J@=llz17xjVDEh<(_o<#4GP_(h`XE`JR^V>kgUKJ@R1MiTLE6tjU+^(oVoW`$eL` zjc8%m(^4#ePth>iJ!sWL=M}XYz-oif=pWEaAL^w?SM^e1<<`@)Z|da(D|+!xHamJj zo4F2-dU<3;FN2M)YQNZ^6hCPj)}A~&JX^SMa^%7f73~Dgywp{(^y6Nv$ zHQ`(wV%p5Mia|A$b^>LVQ;?$q$3ti0@pw?{oxuoWP2($f>g58$Y3VMm{%?`egiAlT zibyF%L^>zpD=r6|8oo8MOkwL~l(bw}`6~&Px+3maVOdu$)`Wjvo7pN{>_W#zVexij zz0aQ%X;ao2*8d8>T;`4D}T^S zztc-2i}q;oSAj!kwBBg|*!6DAr;#hc9m-AqF7EcXtDF2CN+-6UD+pz$GTi3& z-|72;?{n+Egb#3_T$Wk8^C$J;4}GWHWf*`?6%rTll*AnmF_8WKqA+wkKpo@w~0=g?Ob z51DzN!s7$T?k(Q$qq~T%>j8BI%;Uwe^wr%uwBjR0p9`$6Akrz!zFFZESfeCc(5RnZ zJ3ChDoBh-NcfUOKUGF!4y#2&+?*kZ1p&dhe9PN8(Vl}|yXhdRF!Gl6#Ok|4wcA5+% z>IeQ8Au%Ra1^wrw?8GX~8)Bu{{u>+T^mFP_^J3p{yj0{SCpC()iodlhXFjpC&0cY}kd{uQcYj7`m8iPNWlpkUZRW=fy4^U%bqMR%}_(bQuB_jZ5Vf607@6sFz#$^ zDowL-r|ilj_cCRwU1?wE@y-E-3bC0y{voQrM%zHpZh!l?Twhr)ulvGo4+f^BowH3? z6Fb_PE7DHp!-EpplVU!R? ziuycfA8-w5ei*if`85lC%N)Nx!Z(I_-&F#Ra<%Pa-d^C>P#h7isiy>dcbIPwlWbbx zeRKTA2=5Q`TOxc*m=B7n+=$)v1ozGJPIzh&-V-MO9<|7?hhlSt-x%gwff?qC`ZLbn z6BDif5%0oihk)L=zA1K7(!~D;c=?_7 diff --git a/42sh/objs/line-editing/lib_line_editing/tool_line_2.d b/42sh/objs/line-editing/lib_line_editing/tool_line_2.d deleted file mode 100644 index 1fe110a3..00000000 --- a/42sh/objs/line-editing/lib_line_editing/tool_line_2.d +++ /dev/null @@ -1,9 +0,0 @@ -objs/line-editing/lib_line_editing/tool_line_2.o: \ - src/line-editing/lib_line_editing/tool_line_2.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/lib_line_editing/tool_line_2.o b/42sh/objs/line-editing/lib_line_editing/tool_line_2.o deleted file mode 100644 index 0c53472fb95fa60c76588a1e7a2b4adaed2cede3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6156 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 H(JkzM5-=sl diff --git a/42sh/objs/line-editing/lib_line_editing/toolz.d b/42sh/objs/line-editing/lib_line_editing/toolz.d deleted file mode 100644 index 2bf91c2a..00000000 --- a/42sh/objs/line-editing/lib_line_editing/toolz.d +++ /dev/null @@ -1,9 +0,0 @@ -objs/line-editing/lib_line_editing/toolz.o: \ - src/line-editing/lib_line_editing/toolz.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/lib_line_editing/toolz.o b/42sh/objs/line-editing/lib_line_editing/toolz.o deleted file mode 100644 index 31100f3e549be72ee7cd9fd4c715d608234ca030..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4192 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 diff --git a/42sh/objs/line-editing/move_left_and_right.d b/42sh/objs/line-editing/move_left_and_right.d deleted file mode 100644 index a96cde3e..00000000 --- a/42sh/objs/line-editing/move_left_and_right.d +++ /dev/null @@ -1,9 +0,0 @@ -objs/line-editing/move_left_and_right.o: \ - src/line-editing/move_left_and_right.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/move_left_and_right.o b/42sh/objs/line-editing/move_left_and_right.o deleted file mode 100644 index 9ea5deb924494b298b3b78140afd80f3e442177b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4680 zcmb_gZERat89vv}xpqDpC(Y7jYB$_5HW>J$qd>NPkU+z3(?+1JE3IIo%?ERN)0=qD(1+{XkHmNk||Cls{+_bX8zz6!<}Z_6LFp4Ji?fg=#-SCsCgF-1pkf zjmv_>QIDVVzUMv9dCtc@=cIqQ{r0~@LTEvOALI_?Wr?3CGSYp>2HAH>L!EBL3deXh zI0fZCZfBZ~HRG@WFwGNVr%p6&uk<1bK_WiVve7HV9r4dg+}{~HCfG?AXOgIJo3fSr#{z+`Znu&l|7D+5AIErrs?t(is`m|$7paZ z>7!jOhFfgQmzta`TW4whHtX~FET-8mU*4W7QWHPl66?Fnd<(2^84JpD+E!mVWoNC* zR=!c+9@^W@#7$_+H=Rl=iGF<^AMII6@6VSil?s+=r>05Xmhpau^_@~|LOl4s`dq%^ zCXFeWg^|&v(tocV(M=&iPW?@&1MRW?A2_w#kQ&SW)`*WqDJ0 z<9)J+iJRbC-*j;r<8;ibeJ*cjO!N4WW~dMg%s0Z$68Pv7T*v-nA|IcXGpEW}UAKY% zJh;JpIp$kpJ~jo0?^P*RlBzuE^{YEupoUq=>xm2pF2tNu#!^fndXP z%~v;?3g!>JjZrBzUj5t*n*0V$W|B=;bV(TXiz}?Zlr-kp@Q2)VLu$)Wqqf|Ku$xBx z&CUF3JU1E*M=+l1jY|h1eU?_ES>Z{)z83NM>tolAIpq4-awB|V*{B;^B){g@^O~n; z?a&s|r3M*^nplclI~Z2&>tlQB9N2qwpef z@Bvu|dklSco<~^SqTBgktwO} zfZhwk<7MSrc<&(nFEMmGQoaY75|v3`P)IzU-Rs>O$4j?v?Ecxx!|%NQ)la;49C0Qx zy?bdED2AqN7cvsf2DxaG*hMo#E}AU9@Bf?75Jb>m5Zz3?U_`Sit+3~(E^ev!MyFkP zN@z2ET3=5nynrauu?M;DU)0r|JKly6qrH7!4}5k9U;irZ2;#2acH_7o;g9!PB7g&C3mAVF840TPBb2u zp+&h{ugSd}96<2SFR4y~h?hE1Uy&Mm5wkMXbqu0zdHP6-J}w6u5>-DDkd8y!@2GKy z?tn3P^)yD{$bL^DWQ9@g!I%c7WMokefg^Mftv0aP7ep?4JN)&%_>Q`%%UZ0`V`li|r8OyC5UJn~c9@e3fwt*n#@*u|3at zfw2N49ky!^o@D>$*+0(yee54(3^4vp?N<@I&Ug)oCu-~`Y+qsg77(w4*z;@`8P6~t zW!%R&#MsFg0Mfkt0~-@v$NtQC6G-#&d$zAK{+RIqg>Nr+;I-M%HHU--FJ5K#y2em|G*|M898l-cnvcQYLN#QWEvjxj3+KQ~%i!$-w KB?Zfd*8c$Lb_EIm diff --git a/42sh/objs/line-editing/move_to_word.d b/42sh/objs/line-editing/move_to_word.d deleted file mode 100644 index 156881c3..00000000 --- a/42sh/objs/line-editing/move_to_word.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/line-editing/move_to_word.o: src/line-editing/move_to_word.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/move_to_word.o b/42sh/objs/line-editing/move_to_word.o deleted file mode 100644 index 2d590d7264988ab4888453ec0ddcf057e03b4d23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8032 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 P-7z+_dF#S$E@J%;Ut@i; diff --git a/42sh/objs/line-editing/move_up_and_down.d b/42sh/objs/line-editing/move_up_and_down.d deleted file mode 100644 index 40345835..00000000 --- a/42sh/objs/line-editing/move_up_and_down.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/line-editing/move_up_and_down.o: src/line-editing/move_up_and_down.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/move_up_and_down.o b/42sh/objs/line-editing/move_up_and_down.o deleted file mode 100644 index 10f717d5ec0d1c6c9591389be23aa0a131c00d50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5764 zcmb7Ie{56N6~52TwM`Q2B!p0)qu$D(Y3IbG6i^$oAn^3&k&ZE-q$+b9$8n5;+ur1xt)=8-ASZHX;s!BuCR;aW;n94+=F%7Y*O(|>ko%_y< zlSlZmtK9e9bM86cJ?Gy0?z_&PZv5*Lrx2Q5;DK6#IwJA#qM|HD)k(fhX_#+xTw)tj z2B)A}!G57oCfb`}0T2pp3+&uhl+D(A6aWhGQL}o15Dla#5&Z;a356o*Oe&s;vBJt{ z^33D@(NfdXK-+8)@pMGnv#}6JRZl3i>8TA{zc6iemE(GwHE&z^pq@o(@^$w_=HxqN znbYr=O%G)@=Hv^vx2K|eY5r!%XY%c5?|bEoCpvq`#mcwJVGwPhO@UHbZs1R=h2YfZ zj4u^V#G>h2`MyD$VMYn_zL}w#lW$KrqC&LBXYz4);_iImWU@ONN`&`Nc(>#`!0`=n zK<#&p&*1B6->nwd8ef&mAX?6R*YA-}#g`06tbA)Md^K(+E`nwLjQBG9lXK?#H1mzJ z|Ks<_hnHAUTI2f^zi4K@|Gg_;q-PKE%!IOueepy`D71M~F%_IS%-7G#hde^i8TCH) zAHRy0e4|~V&JutkU_3s+(?Ch-b zJa7nZLh$^0k;0^&&t5whP=@M}4_ws?*-5>yMvow$+E2iPX)9Tqo5Zv&gEyva19o*G za5XnF1#{(A2#n`Ow0vNEf(BSMGI&NWYzIq~9?62`x}Lis23xLp4m~k5&U55i#PH4R3OJIaxUcq*=#BgwGYDzBzFuu?uEf{}{7hhA0&yLTU zjz|%vPAnoO*QrMW<1mM&Qm=ho&sXZXvtF7&>-@FNwLgvB7_sceJM6^IAq#WaiYqy8 zstRf)jh!}84q9HNNrZV5JN(kLVap}mPJ2|(w-|eA)t{RO-_Z-rwDT_-J6|*pW-oXS zZKs(t{Kty^W7Ga4YLJ=!BmCwV{>Ji5s`bZndU-A!4qTXCo=wF;P8A0^H9g2lH3-Ld z(sR1eWvpV~&D=RH-*+<~7@k-}3uy#;yvT8!IOv7M%Czko9pe35VeV(OfpbkbES6FX zY9qMx+?gpo@1pHY{l?%&*3);D1DV;OUV$b(cMdOplj(z(;&!HM$fmz>Esi7lh}>z+ z+}Vm}{U+4Ee6zRsb#JA25p>B0U-KtuV zPDSdwakl%S9q|mVk@b6e_C`b5WGIYpQAf|dL|sJGZ%>1!KDMuCcSpE>bwj!<6iMz6 zC9~-+(TNXN(s+g%2+7ApXyPKC$cSW5TBPF#qM;0ZP{JvE=|U`b_atK8Y$6?xC88Z( zGN!9%q$`|4HVL6sYM*s4kal;4W2w7RtHN%z)j?UMHJ94mkC#1BwzB;5_;A=)3mYrG zh@-Z|Y9oY{vn(9Th27m$R)!Ca(<8{oRRb_MG2NSKBp~!?(Z`A2Dk|n@iQ4A%+OULT zn=;0?Z$~#Itya_Qwxb8XN$p3LP+v(KTO4B_Z3o@7HIF83M|)pX%}>JwQt}T<+6W0G z-D4zG5(%U(MOmdNZO56ap1zJ`wc`LizdU2`udrXQV%chh;%9p^3vI^$`85?oX_^&E z6NMri-@-$dI9EV$t-|AbknPJ{jcEP|P1`e$mjO9sc9d(=i{kSZm62|2p09(bgDj{h;(N=qV@4d*R7eY zN$*eBhxqr*9H%uXjo!L0+Gl*uLZA&N=F!$u#a^q)lF}CGd|8$`UX`9siKpEWlclZF z?HHDhpj_aBvJuL+q_Y)P8R^_9OJL$cv(oW9xd?W4SDmaf+n416$5FYM)e>quOl`pO zr{Qr~+Am8D7Q(*G<;CzHNLN-m96Le2UY26W%0}r4(xBA?JoM34X?qcULvmhFRy0a? zP*!E+k}V@xt`Wb`vG1LCvns|F$rpOf|PV-VuG$oNM_`t3>jZXm@I z1LAMtqb%34{40=A|4)F_-wUL1f1z& zX&}xU-_Ke80plR!UPk(d6UDO|Nbx+$dip&><1A;SpQj{W1tJv3WyV(+hZ)0+t&D3K z>ls%t(l0LJX=7|=^fCfe|6xWt-`sF$L#0ArC6djv`fHFqkdGq?Do>%3Y?c@rGekl8 z&6MeDH&dqeO!;Ap{3VM_zrAMKKW~vm2=~%hG!tr%#$vd6?u%z|gUzPWsw0`rWTL4( zk#N$G$uNO`@2G!)k|!)v(L_;(gSwtlAMU;c>e7pgZ6=K4HWBNNW_l8qQI%-ic`=%j LaLaC(c1QDn*7FlD diff --git a/42sh/objs/line-editing/print_and_del.d b/42sh/objs/line-editing/print_and_del.d deleted file mode 100644 index df52adf8..00000000 --- a/42sh/objs/line-editing/print_and_del.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/line-editing/print_and_del.o: src/line-editing/print_and_del.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/print_and_del.o b/42sh/objs/line-editing/print_and_del.o deleted file mode 100644 index 93b3b50432554b5d8e5fd5787c82027b260e0987..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6696 zcmb7IeQ;FO6~AwH@5_>qY(5}}AgnFgirr)d6tq!8W!q;o8m);i#XgeFX0y22?Cb|b zN~V;B!n&n{W9`^ZJ5sbA+r}~DRL2pNP#mC2m6=Y3Kb)Frahg~=O|7j_8R_rbciv|6 z5{tdF_xZrMD9HgV#gG}>T`C^Hlej4KBYoWzM*-e`QWqGBA@dZM#tF!u- z>P$o<>6v`5d#&;I_30|RRm55O`Z~kPMW=r@AG;?m&exet#v^8;vya@H5$|dCZ;0I) zzNmi|Uw_wTwZKmQw$HJMmNDN(zE4;raKu~UU$Qgo_5I09r=s&nmsA3t~J20^PlKo3MEQ#uAFr8E=qpf;w^vrMlL_ z_u(J!$!Y#kUQ|jdtiY)A64djsr=g4Spq-0>CB4^9~Q z?3hsqp|(!!Xwrml*9wfaHNKbTX}OQeeY+{D6QT1I!8p06400oykq?cHAHHzm0y?1< zh0yu?j`@~03&o#%w=F+-{zPb!x`xFVfl(On7qaJv1s#>9h@hBk?ihmHJkr9R@tY=zdz+_;v1O=*h5k(=Cak!r%1+ot8$Z|svb z9%L2MVkxnl?PEs%1Wy#g3~R7d6GkC8U6q}%)rmI6^`J)^Tbl7F>aM6V(u~{w<&u)6^ARCjcdf9*9u^uW7 zzNNd+CG7pwd_44luoIIT2nydGwN$IHGi`MN`OS@~tvRLgBdRfkJ61HJl%{m$JkXdy`|D+OulE=9B*M zyQZ_2+MX_QWKSEgEs8w(N$2Dzos;L_S3Wdi4!BEKxs)gNkV=2un z3v|(SF!tT}Z*ZsyOB_)5;#td$0v;QMK}&F&oVGo+7Z@vH-K#}Q72MQQ1rM1*_9UJ` zK|F(eyKX8CK$#Yoqd=yuBgG9_S8A$a#r`dB#v@*I8?+=>hbBvJDBSa*=ZoI7KR@-1 z2zQIM^kL(_{q~Ml|CUH99qUi{*E9qhg8natf~7BpH-trFdm0>#(XIWPyE_|Ktw{Hp;p78mGMnxdJsGp7KMT_Y zz5>i}Z)b{Bih&yGY%-ZLR}`Dn0I9$PfRbh zMH7*3KaEL6GGepH^d&`Ce}6pEnGjlyc12a4bXQgDi>hk0T5Kg(1C+H|bGf_fhKes& zd|~dbbvNTB=9a?6s#}qBkJE~5^l`ZD3Jx~ZZ9Z{RYYpi$m>fW?b-`3}tngdQ#W z3jPuSN~;CxYM(obFaM3)sddEA(tKJAMr&@@L&+zUd>2GWy-z9WKBD$)!iCCVH4)4^ zwnNe`)o9%Iv#L!r()G~5nqxqEO^<)WY>z}FTh7Ow7Q_c2v3bc+NQEywxxVzO1`T^*r zr;LW_Pok}B-d?nyM$^5-n@00FG+i6@LcTCtbBjq)E$wPORoEbmL-l#iTxhxPf*nY0UJ=MP#^Jb zCILky6L?TbLa4N$t)3r16)wnr8}kAKBgw{Z`ZmQGbd$j7kY7KWQE6fhd%GQqg)WBZUwL zP)SAGja9U0q@v~FfwZKgqV;8~{}pB#FB?Wo67iQ%WeMo-3NqW70 z>3TszsL*q=2IxB{=kJtrTI8h}xpcq00%k+ydin%PFd9= z-7WeC>Dnh3?2(J1|J*t0hhY=gymhipZ=$wG&q|k`k(z!;il0eWx%V+yOB1%pOPb^Y zWnTxHT1$a2${^{G;K{rmS%-L zCE<=6ibZh6cFU!EgR*9WT07S{BMOL&@B`AZ;9g_3) z_c*0qwV0T32)^cAI&J{*8Xmg%1&-i?_f6oJEdP*k8{_?qcQQ6JUJt~nKX3)h^^86s z{$>lfSpJvCn&(|0&iaAB0&yqI9|hvz6gb8GFEaj$@lnQa0r9s+AjNW+@h--%Fs=sT z@1DSNmKQO)f%pafhMN#B1>R)*BM@Jvfuk%x!}vJkqd?*-u)LKq&U%yO^+1Ya9n04; zE@qs=IF6uc{x=wpFg^;bhJH7Y;!FT(J#GTxff8^5DbMdgpuD~Xq&&U~MA!UZ0Ezc8 zAdTAx#B({Yh4oR!JAwEL4BWu-)r=qFkwoL)VLZn88^)hA{uqb@bAaBjWS?cc3OxAf zmoxqodXmQ(f6e$fBmGZF{r5AjW^81%_7`5A{y-(98S?{&yK9WovIO6|Yqkm-N5 z(tc`}%BLLiQHLx{oM2LszWyx{GuD^P;?SZLopJoDU!t*2K-3qFWX!HeG>T)*)>sBd zr)(;%24Qd}lIjb0CM}r^)hUV&Ml=$ZsR&MDwyX|Q_E2?lA}iKlg?vAWMjBD629Mz;7r%wW75IUo-z@(M)R3Y{1^Oq(^&uj diff --git a/42sh/objs/line-editing/queue.d b/42sh/objs/line-editing/queue.d deleted file mode 100644 index fba5b3bb..00000000 --- a/42sh/objs/line-editing/queue.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/line-editing/queue.o: src/line-editing/queue.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/line-editing/queue.o b/42sh/objs/line-editing/queue.o deleted file mode 100644 index 53cd4575ffe255e04bcf3ce3b805b4e0b6c00589..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5588 zcmbVQYiv}<6`s56xx4m)uWbm=JRHiisow@nStq8j?Tw3DlwjgCwAage*SpB9H~RpC za4@lnym71=l~z<$L!|x)QX2`WYDKMv*h&PZKT@L#iVAK0!<9^xs)(ut607t(b7$<` zwOeRMo_pTkoHKK0?s$Lu+28)x36XQtgN_e5{K|;*zrY-;g5tKBC1(dTX0{h-AW|mLSR^&g=0=G1#d=BHjM|3mY$@jCbI7Ym%5pD*98Y_%-#>LcQb z{9^tYaEfUZC>; z>P%Xx=%Glo&9Zjxm>rt2E{WGFmF^Z*-K-!WSaht!OEtIKAcF_kCl= zg6M6wu(kR%SZZf1bw=O183AZ3Y+;K@01Ksn1K2o0NBFHiJj}t=p9i|9r@(@5nk3mA z=$@idY~?`HxTq^#U=B1vzXb$URw=8kO4;5YxCuu%87z; z;8BWitbY{G+x@1KNKcm&*p)EN!5&fABfvVZu+IZKeJ!1uw*BellewHz{^#I-R{5Wu zr+|#0cT~_j2s*8TPTK_xWfm}`3K&uaIP3x(Sp{TZ_bcpvVD~8Op6mi>=hy|D=z8$r zfeaZW-b|l}2_j}y@H541pP8`?fN%x?@c?Me03cozcA^E`E!yk$;tUEIBGyOPRE3&d zp@s^*^9{HQI4Wb}F`y}koiXuQ)mGh=r8Z;)5|6;Tj6mXNN^MXh&qP;dL=%tb^%>E` z+jW+L%dAt#fTKEzmvy>DnRTdg%bc;6!A+G&JjN;##4eF|RU)BWY{+Bg@sDV;i7mK8 z?mwJwX1W`@!am@zAto;QZc-{$BmJYj-8b|4n{F6`OQFCN-J~sVTv)92e#RP%Qx_Zh zQ#ao9-8ieslZL*m1HPNRBU;*b^VTqO5HBae7=v_1=U^CpFJ~#enkY%^>*vTa;JarI z)XhfK(#qo`Dw3r)A#A_$; z5$TMU)|FS5SC+01bl?J3R#yq3ytcZ$Y6DBe0~HL@EoqAPR<-s@jR~dd9_(0&ke!%b2W1oKI`$| z8|yL{#kiM%*qHbXYZ~bao`!BSd_3gt@jOeP1ltp; zmxMFE;CuX#v>HuwI!+#aL-3nmgA^MQQoSvO-xrbvDbI1T?IKAV$rF+_M$)F3E$#Xp zNt?d{iSbr?qWvMyrrMqkFxslw;Z~{P1jwp35jG*+Ro>d3!xUyvSeMAepiC%B5oS;r zq_D`@kU6)CER9~+kmcSR1W`=GF`aG^JkLc*x|{Gg1=;zey9Mlzz&iHoKLv5QT?Fik z;GvH~p=s#BM(SHYw*iokN3R$ z@tsf4qT{S!yV2Xw{pjRhj!sQX7Umi0Ar&o_3>=jzS`6v+-^z4lOg|z;lRJQbvs$av9HH9m zfwS!D)x2wK=ftb2(~i8rw5}qpXo1T;B-4BxG46lbQ>b_Bh0 zYx~JO*nEEUdYry*`^kLf_+7y|IT-zRplP2MF2qx#oYA%11DI8$67h;iG|-W13syvG z>NaI-5{DBNmi)g>oz=jxRpnuNBjn)l?Yp%XtgWZ^TPb&+}k$BS)f6 z{UCQZyN0;tENF4)c!lvwy^V9q%~;t%Q2dqsBoD_k=w?ap;{_ynMAC0cS}5rayqaV` zCTXLjDNhQnz(xDbY(yGtRW|OQWn|1ds zf9nGuQ!vjW6Unxn%y!4EyY!~Ej!o0Fu3bh$kf@Kg)Xfp1iHsVti=dNjr;AP@o9k5! z+n%XU>xroLFNJhZ7kx8H*wF)_h;-}YJldQXWt{*KBe&GkG0R$H`sN%oM5kgj|5%M7AXf` z)(d;uVUNER_T^J)ufFF!`X)c2K4(Y1s=se3eKFE#yOg^#o9nji8&_Azisee*amDO|K5oI9xk9L;%cC#TXZI8^yKV>X z`7)vO1(m-`aL}nOEjwU&_o<;IOzq!nPHOb}E7ZYqTIp+^?e<;<`xI-2eT<6?N!T@n zjTa%Wg#0DI(-#V{6CJtDHX<`ohME3yy3`P;ee$$9S$^$^7-xs%XiJPZO)i;9Hdm0N zEz4(6D=R1{O3oxZD##NpE#j7^qnGa{PjLL?@Eft@zE%6-%hGq%=;gL^!$apLqkDMH zoatsk@#MbJ*^!}h(%#_-5&ib(!PEv1ACD!6k1tP-44qAu+s0j|Mux_dbniy_LYukp%DRtC$zqOo6%4@nY{b;J3oY-<%|-bX3s-fy%?-{}Y`4eYd?VVYIEc22fo6@gbTIH!r6J^b)$AI6tX%Iea| z^3d2wX)Ia(our2+u(Ei9Cr8^R0OCxL#7G+q=F}leI}*!2SM0OCQU1)-)9|scte7 zY0b6lpu#)1T@UPMTmlqJJ>g z8!P3C+1^~HJC@Bk5E+yrXl$q|@j#C7$j}6+|(6SB9rFbr1v#~IJ2{30HEw%p0wc!=vPuHz&ydHWb61b(2&dXT}u z1DcG0YzRE8$tcK+0*`?_hio)}j0OIH>J=CQv*KI0Jn(l-&IZ{cg71L-I;8_f=w4tT zSWB0~^H9tY!8w4VYz`Ws$ALkk?i3*)JHE`8kWoJdDW>naF@yh0!SSs&4F4No(?j2y zkbhiV#^C$*TctpP9YSYOm^D*3q3s}+`5Hy`s=)U%=Kcpr8NXk#BU8SixWm-yvnYo>Zg#dbVycsL6oId1>+% zk{G5h!`4nYjCmD!p(GdO_voGnI8F-d-=hHuU(J z@R#4aDz!Hp{^x>K{*L2E=NA{<;OuEwyZ`9C=XOEn0P-Q^Bgn^*UqBv1W+WLjj^(gG zq8qHfsc6m!t7{d_)ye7xWF|(I^nTUOsbn>wXhx9LQAKm9vzkC=(*CRFs{a2!GK?WJ zzlKb_?lF#jM6O0&v|JwJr(?Au?uFbBk$-{wTjW0?{{#7b)nFWxGUxKGLA%Hg*biJOBgu23Z< zw-s32$a9gA63OjNQsgC!8B#V1fv5qPh_onWs))^(4D%V+{Vx7rGwWqYK z&HYv9$<83sRiiM_ZF5O@1&NLNw z6wkZU;3#lE{E0qx(BF65aCrRG_(X^(lRs*hzS{NX<(6amtYPyCg_kN^EU{!RRH)lE zQqHi}o8kd8P#c_UnxI40D$}yonSQI+^mUpSS_jO~N^?Pn>04=DZ1tI+g-r80^AdFP zTkEX-X7CACF#aYpa4TS)8MHcqE1`PW6v2h2Rr@Ho3#{Lp_2}GSmC(U4Ypvaoa!g^p z3nzk)n$e$|vtKhC*PFierr}%MXo_cH)|0TtL5IFhGXS-(cbe8g>o;Zu=J~C|<|2%- z0s_8u<`svbZ&->GFFFwm>!hJ`jg&{69ea z4ZMT`2XLIvj*t+mjsa=!KHx>byA}UtAkw8bDgFjUuTi)Ph_fpm0OCRypM)?Dt@wWx zjsqJ&p9bQl5FZ87uU`T2f{JtB;dvb&0m9A;xcAs@E8M8?iwc)1T&$4iCgl-Bi66iY z{8?`)d_mz!h4(Aud4oS|NMT7~I}mZQu2FQ8!mmQVYLANI(9&C|Zb)BZ0H-QuD7`$^?^Kl0Gu@zB5a&|@C@I*&cP zI92LD>5dx=bGZkx1HUca#D5?&))uwGnkWY91y>r zcV|Hk<})a5kTg5px7F@RW&5QVRCQyU%Ak-9K2& oOm`ACjJ9+5ebRl)PPr^!w)kl<1K~=OdP}K7x3C9N{rrvoe-D@_TL1t6 diff --git a/42sh/objs/main/data_exit.d b/42sh/objs/main/data_exit.d deleted file mode 100644 index e2c5a962..00000000 --- a/42sh/objs/main/data_exit.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/main/data_exit.o: src/main/data_exit.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/main/data_exit.o b/42sh/objs/main/data_exit.o deleted file mode 100644 index cf3e8b9b63f9e42e8400732f8433527300301569..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6132 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 N| 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 aC(BCh;vZJ{36_e&LZ^I%!kAt33gW*63SR60 diff --git a/42sh/objs/main/data_singleton.d b/42sh/objs/main/data_singleton.d deleted file mode 100644 index d8e16b10..00000000 --- a/42sh/objs/main/data_singleton.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/main/data_singleton.o: src/main/data_singleton.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/main/data_singleton.o b/42sh/objs/main/data_singleton.o deleted file mode 100644 index 1fcfe8a627b1945ac77bc6c250aba9d591c7c8d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6304 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 Sdn{MtpX77oo$4PVA^rn-!pg<~ diff --git a/42sh/objs/main/ft_cleanup.d b/42sh/objs/main/ft_cleanup.d deleted file mode 100644 index 9679ce72..00000000 --- a/42sh/objs/main/ft_cleanup.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/main/ft_cleanup.o: src/main/ft_cleanup.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/main/ft_cleanup.o b/42sh/objs/main/ft_cleanup.o deleted file mode 100644 index d4aab287021029a71169a869d3e925fc389a7f87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3592 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 KRf&9)iT?o(gQ0~0 diff --git a/42sh/objs/main/lib_expansion.d b/42sh/objs/main/lib_expansion.d deleted file mode 100644 index bb1306a8..00000000 --- a/42sh/objs/main/lib_expansion.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/main/lib_expansion.o: src/main/lib_expansion.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/main/lib_expansion.o b/42sh/objs/main/lib_expansion.o deleted file mode 100644 index 0e63dd8b9ea5cc5a8d22336b999f1a969fa004b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2608 zcma)8&2Jk;6o0eMY#iIQla}(;3hg0$L=ZczB4N=`8qvUFB~sNkAsomzybAuS{0QWTzl++RzU)Z1C=a5HSf*NI`%dte$tya@6DUv z{O04W{mb8fJRSyMA;1Q82(`?yF;G!nKy6d-DRQ4CqU_Kd6yHZoAWcvZMTnZysCj+Q zzc{yianJXAJE}u?lFJByTw(}5_jAY!k#n;3RZ*=~WLSu^AI_eCubblITvHK4?+*DL z&F_%)@ror|hJ$!V>2P}F>jCksY_{TT5Pm;DAMYcDIVfJiT`AF&AfBuEZ7ICRir*J_ ze(L)6-EYNmSDosUcz*@xK+^?zdZm3E3)PBEx3O{-Wqm&zs z$QeZbdDQP!J+;xMX&Ch!YOm0KN!60QLkIR3&DH~R^LN8+ecCo#^*_z+xwg5PhQ!q( z&i#RC$pU53nT*J(gfBq+M^& z4-reyZyb8%%Uy3syPp4yys;*>z^UaF(CgIT!sdlplh*eYw<5*!y)XHxrSEo#oP|p9 zq|E4_OQGOgyva^4{vbJo{|qIf&?9D`qviNRLWc%m8()1gjh6URE^S7AIR9^{VT2(% znB5h1l!VeJ{_^bdd0>rEHX0ia?_d@!a~$>Fzl7B3_*Vh5@zE{q-9zeU55B}44N}-L z_D}o}wv5(5W&Se-2)f-+>J71Aq QS-IVERD)}!0#S$m00%T#?f?J) diff --git a/42sh/objs/main/main.d b/42sh/objs/main/main.d deleted file mode 100644 index 66cfd558..00000000 --- a/42sh/objs/main/main.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/main/main.o: src/main/main.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/main/main.o b/42sh/objs/main/main.o deleted file mode 100644 index 06742aa014805a58f70149f827fe4d5e5e95ae57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10032 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 b8Gh-K=HQl{Qu0%W@qvu&aHL;;J`(>6SXKv# diff --git a/42sh/objs/main/remove_trailing_esc_nl.d b/42sh/objs/main/remove_trailing_esc_nl.d deleted file mode 100644 index f6b9e26e..00000000 --- a/42sh/objs/main/remove_trailing_esc_nl.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/main/remove_trailing_esc_nl.o: src/main/remove_trailing_esc_nl.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/main/remove_trailing_esc_nl.o b/42sh/objs/main/remove_trailing_esc_nl.o deleted file mode 100644 index 01517e94549323e6d246c230a20e5c17d68512cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2516 zcma)8>uV!b6u)=UnI=t|q+36@C`&%9FL0B(6fD}+7B@1jRhI4Uy5QqFnNFLOWHKhx z?gN!Bp}J*3x`?0rC;Y1T_~2r{x&8?O5h^Gwg5aYVf9KAfHkmdy2hKhBoO|x?{?6P- za{uq&{vBqF#~2#u5Y*Grrntnrug*gBE?8TS&Q$n0iROENXZ$E)Ct*gI} zSFPJJ9L4*iI~n~=BNFI?XO&6~XPx-=@(c0aP%wkyRovw|O^M=Npv{AP5E#~0{NBO$ zQ`>iBy$#D70|Te zB#z}5;MGg3a)YD%lB$~13h%Q4@gzUbvZHu~2;R2?;`ukcBkNsMc*~04PXprN(n-iD zzb_*E=Hd$Yz^IHMAcS47p-x|{xz{T0k`N2$4^kOxtL&T#dcdQnVI#c1hwg_{7RwFn zZZJWJ$a|pPl^KP%t?-n~l8lwZKH2a+s8(Ew7_E0k;eDhg{iy1_-G?8YgDmAHN8}7D z?_uaR@~QthEaiX)y8!JLI+~$&#|PxX1?EoM^9oE*Jt!>+hwc4s#eoye2hPq9@k^( ztno;CjGq8^Esx*{J~I+aKbL$y`9x}N{KXWGl+H92nnS%qlRd6}n#IyDB$L<_Bf}_x z-Gl~5GfrQGrP$MCAg={Rwk6dMGU0>)eq|LN&v0pC+Ffr``tPD0((aZ&CU1;9rr)Aw z$iQRI^er?77Bm-UOUpH{s06B2h5nDpFjgV9$PPt)U;^op zkQ~2xk@4$Uo=pwMw~H~=msLGY2BE{hL`mOyqIxL z*S^yEnwG$#k}J^8JPROLqoC~L%AQgdMvfPirA^LA8Z;uu0#<>Ghi=)YKRs2)Wungo F`ww(RL;L^$ diff --git a/42sh/objs/main/shell_exit.d b/42sh/objs/main/shell_exit.d deleted file mode 100644 index 9aa40517..00000000 --- a/42sh/objs/main/shell_exit.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/main/shell_exit.o: src/main/shell_exit.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/main/shell_exit.o b/42sh/objs/main/shell_exit.o deleted file mode 100644 index 21e359ed5e2f4e31a55d14fa5ecd118cf9a6b803..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2676 zcmbVO&2Jk;6n|@X9Vbp42Z~h0hb%!L5w)G9DU<*rX&bZ(L4wkhf)u9f_1fOB*Pz-1L;v58p%h{0vRIh2puUSCeX;yCK6+TxeG4oY%$va!Oi;Jkcwne-*R5R$~at zcNn|;&fJyP_O*TzGfVKVVtBaR11a%r*Wea$yh%!SghnV?y>uv^UM@Gxb;@V2e-dw8 zV4M`sa;h$w#PQw}{w)Z+8R1`m#h|(%9qM00cWS185btg*-diV(cU3pIi*f%Xo`gLf zPxn0AWRAW{?j4BtO9AvU4-Md>WBm*9-0})9aNNIN1>VyF@4FM?asNEsh~udu+Y)d0 zgm}TGcWAuh0`IKwuRkp&T^6fv7%w(4hm8BT6!Y)=v3Q2Nig5;P&ADkg6~-1XcaH|x z5_oyBcmwh1sreM|pGa-YKeNuN4Xkcx5PuIo7uvG|Z%g0_5i$UEIVZl~zm~%h+;V{4LB3a0@a&gX1phQz=j5@(twZ2fT?RN)#`RgHKLW>+t!K*4fqC zzvr~uuY7?Tzme9rlt}IN`DJAHMrhvo{_Ak7GygYN5u*0V>=~`SlhE1^VE7h2@zLGM zpEY$19n;#|xz7F0F9^f8JM#~;_K&&cADWi4-fC`|c58HM($6=`uH9;u?X}iu;asI@ zx<<>do3_o&4J#NM=L-YiH;mG%ZaJmyUeSO#>fZd~;t@5ZTql2_I8mI)j~O;T zIfV-oC={osij(6Vw%MWD&-Kr%a%c`5Vk;H!g}3Hsjd$0#3O0c9hnF|eE7Ra5O$x~L{oHT8*i)l%w?I$c#0 z3#yX(Cee?$03HJ4xrOWeOenmC9DAZLBjj_)QLXSCa!gx+{Ks=1p}s$bGW9meFCa&~ zR7vn>1bT|8Sa_gnVr4cyW4vt1TU9d*yKzg_aF)6Dhc62a#`p8mUMfAhgV{u>iQiwG2;DCmHJq7{VaR8X4uW1d?Zf`&t?Pl%yY zkdkVgZTs#fUjZ=NzNB~kB`0uL+odYhM_c?!LeMsVYstdLwjIwe=L!Q#P^mA}Bgdl8 zkQt5)xIP}jo~+w9JYYkqY_aWS>z1rOf3(+bReMw^ELG@3^Ej2EzI@R+slKIjZp@Ra z8UuprN%dv=`pWJI<2T;EP~Rb?=CkU{75a-DQmHSc*7F|aXQVn%d<)h?nSN6H%9+A| z>wQ$;3u?SFPuyD{)<*eB^$lelX=0^)p+3H|d_G-Yrc}zib|EuF^FHG5L1o_}sZEIc zKGnWJU$O5>xxkh7MG}Fc=}O;UKBGQqUn%2M>ic|!zL?r~N} zq!#mx&!`WZSgNeFZ@b#)p}zwY$5<9rE9`TML-5nLhYK5Xg{*C_S~hmXKBcc!33o#u zx86f||J0gS=yM0{{xViK7*LrHURC;fl)imRpMnC*KN!}@NB3{8AT?I{n^fz0y)x#g z@^}Bo*vGg?6RLxaPUF#4{0s&CIs)DW&e!lF(AbAlkj6PYw!pt-| zd!={uzL(xf>Pe!0^kDB1YEC=7N76elJeuAaeYWoDux-U@?B@8$2Bi{R;tiXty+6w>xf(Sa>YVx zcSl!8SL;kCkJQoL-38DwZ%)UVvxHZ6I)^g3LZ>(A=JWP|>)V-;Y{t)YIHGfnhvA(A z8;e(FGoAD1c!Rc6+H9AGy+KjgT{wf8vfx1B+md+!a|0dfmjIT;!T(ON8T7Mye}#6eZ!QBdHyDw~|)a!~1W2VfRV z@@>hyfR&x0tjNjIDP{aYF_iJ0K`~gwrYUX2gyl>wuPhUe?QLSQ8AVBY?F3%atxe)8 zceBWQK4&1q3}m^iU;-0N5hCvv1WfXZW#Mje9dwn<3s|O@$6=fChdm*yZl(-dt}OPU zA4^Y`r2(ic<+5XA8bX9|?i@5^d|U+jhJEC@{#+R$LTnw^<2o`dDsTu$!FLgP#e>lM zL&Yq{`EGeAhvjqZoLqX}A%kwmE=qx8O9^m3#Ex(r^cY=L`I2$HrSs6_m0UL~WEp4* z1ShNuYu>2EnGqouhJor=0qdv#qCcA}peW*nE4x{^Dg2_7FM6&}LF~_Vd6^Lxea=*T zj^v0XLob<(siUGKgDf|e3^G=#jPTf)E7(6OG&!NwYcpyajYw_MY_6@>8jvvb4hS2x zo~lUgg6f6U%Nx(daT1v)^ictB33Xz5qY%b)5vg5VU5&(MPJ|>Ffy-f|7OAZ^I9v#; z2A!5S5_BU!#${V|&{kE4JX1X?!M!9g+S_37no+fAtJO5lS~m?-&4=bBr?0MFjB5P^ zH1Qm5Fr;OTZIX$*aK#BytHoR>5@I$P9_GIA2``kRNjMZ}YqRL1)oo-M(f4fH!b<%% zlt85^$nIK0Ei?n=A0cXND2!ngrWU=K>^2l%1x1pvo4~Hs^iGSjaIk)+o)Xp` zAP&~&=qby(Gi;lyr;^rPK%ZmVJUunZ`U%i%qOYh(2FW z4O&;Dww592j->9_MU;LRcd&?>GthG{s*y(HK}sxhJ|s`08g=8(gY`r&wO#?|py*{Z z@wXwmoF={j^fZPd%pi7ld@>wxHA>>TRZ9=0u} z@4G^DE`7f(L_PHOn;}|4Z@(R)^XTpOfTYf)@YZ@DM9cKlBJ1H0_3Eh}>(LOMucww- zKMm0ZdMa)GJVa?dwaWTsh?eWAi>z0GYVi`pR_LkqBHDGGfx?)AUr6^=^n#bezH6!O5o6aRy$Z8E{-gIji|C6dyt! znHbj*@B>!26$j^J)&fr51Vr`LLQXvuC>9063M4HZgSR3LSXhCQ^<^O0b8#fKPqQ*1 zJU5csuUWYe_C!)oXu@oO7H*QrjQA|D4e=8`$EDAmkY>;+4xgje#X#I|arkUmR{&kl zHu#*hz5(6&US@m*9FBM>zS4MP(@3}FqRm3Taa zwSdXQGa;-4oRl~SxPoJofUSwQ0ZWASfZd7rL)ZY=BWk$m?uD!-rq!-Rx4ImPCQ;J| z_6p^eX1oS&Y00<9VsgYk*%H^x?dVm7g^0|IH-Yt7r(1jrnDVUIbb1<)T>Ex9-3Bxn z$;#?rnCAg;L99-`THQc$wY!*4&Iu6`XREaoh|6Okan7_>gl$NiUDoOlA#u(dT~-T; zvs*-`VKQ?zirMHDnN`mTw1)E_Xjl~%B66d9pi|;s0b3t$vu*&F zFUd@L#uO}Hr&;ujuRWE=PuEikYcG&|fzIIKVofhzl18Ka3?RoTCZ9ltneZeYu6vj# zR~AHh2Z+zuvBZ^QaaBM5|McOP;&f0GmEnP@n9l?^@YetiT096fkPy^O>-bj?KYZBA z^PE0$JinUQho3_HtEmMv6?7Wt*AHY{4(!ae__yR*%wL`7&y5ZyyRN;tI+}e(y!K{Y z^TEfmEiYbuaPP#s-+p9GUt{xA|8`p*JJj~>y8So&Cz%-8-+ok2UP{DGU=;E0f_oPq z9+4C=9!eK?J4H+*O2pkx5fgwK$ZbLqca9SAAfSkQMGZU*ND-GniI`9+VxCnZURNmM z4MthdgN!2P7p4Ar)r+?pC1UDjFQ!u^;@yFwLnxGb9uO4q%uv0UdMV5Njcrs9w!9dlE*9(f~qDkrE#gHQ26jiUiO2ku0iI`~Fi^*51=iP`Ro*b$d za~VZUZc4cxC6MJF6$@}`KVuIj}*trUSPBR(m=#E?6f1JL`# zqi)w!GwunKj<#jB&^9HtWFls9V{)F!pyaz$b^LgEI~Pl8lQ-#0Yv6-?u0da2@Or6f zAJ*2O)Hnxm_;&;T4RG?q{4DGo_R5_Kb>`-FpFLjUZT33t;19NOJt4<;cwfICj`f77 z{7(XZVPMXoTp=f0ItF2t{A~7uYQJxn-AtAr-hm*P2zA6;{jC5H74kzr@A~*BCFsa+ z$DoEUJbd^U{BkiL2u5{at!()j9jL&kJ1Pi~`VIy_51d7?DR?4vnh~%1q7gG6GFKWk z<_g1Df$xKrMts<4F#l@ki;Q~nB{V;2Oj&Ql78!;)Xhip1YUq*8yN!4xzTVKyCv_9? z7GgDYLUa3)fKT9|0CD^LfSa9)w<$hFaWM8XJ5i8xz3Wg3A0BLDpsbI@!bVi_2fu@V WM&utrh+|;@u`3o3(u)6>pzD8oKIF^* diff --git a/42sh/objs/main/shell_get_opts.d b/42sh/objs/main/shell_get_opts.d deleted file mode 100644 index d2fbee1b..00000000 --- a/42sh/objs/main/shell_get_opts.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/main/shell_get_opts.o: src/main/shell_get_opts.c \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/main/shell_get_opts.o b/42sh/objs/main/shell_get_opts.o deleted file mode 100644 index c2505c1b02e09ed9d54455c5bed288e9398a6d89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3768 zcmb7HeP~-%6u&RYeMy@(NjJ;7b#4)6oy?@&s9If}EiU6ZR@g_^6`8)KuW6H!CNUpf zCmWPz9qq!Pg*ioZ3W^Mdp#M%Ct;&Y};~x%DMA^iFWgQGHQukGV=e_%qChfFdIPZMi zbAI=nbMLz^`S$kB`*y}8E5ie115I)~ydaF#Acgb?jC}~EaaH)3I+=+)G>M_A>Cj-> zkPW>((Ai$lP3c!k0)y}?*OtWlpvarCkFk8ys8F=yTL;41n z=9i?yi?P9AY;U;`3aq5w1^Fd{S}ER{61;(B;-!xymaO-J!0Q$HytPa`yu>TPlblVgrk-AY@0lR5_eqPCb<$d|f-f__nk8+A%qTsP( zb4o5VX9iI}Mi%ws+CAzAAUuH3hu^*aIKmmr;{oV$V3tfsXcqmM8)}x&+yi9E1?Jor z9ofG%_sBEQi<@mD@FJ73Ua{#udF2ALdcS6;-!N)ILOvgh#eIk3-C8`BPR66Gl`cB( zu3a5%-hogu6^X~ZP5uUdgLk7A#qI2CYJlQz+~VK-I7=n9`u<=fR-X!oqEWRklvd-3 zbjq)>`u!;c*Y_QcALk06SSsc<~01GAvU zBC#|J4lpeoOtJ{0@2ylNJ?dJ?tuBvT>#CAg;K*3~Fs_hV%B`+vom-ucRXmUP%gUKW z7+%C4*&2&fUK)ZIYXh^owmF@6sqAh>F^mqi@nSmYHNbC+Cx~I}Fqr-{e?1tUFu8PR zyow#&(4;y^vRWpNzOBnw@Pw9lU)O%Z(`K27o+oW1%`xr~(R=bJuhOiWKn6e3#jAKS z-X$E&^`(vzG+SM8tR_d`r*-^QI==ia#oFvNWxtMx{2@JnrR-}}2-3Vg#3iNQD3X5f z03GuvP4~_1u(gBeM$$6?e+NWEPaQn1YmDg)f$SH$xuz(^`1OW4 z(rHav>;L%B9uPeQqCvF~j+JrzD8$z4I%5q(qfX8H`q38X`#{tbT9aC|0fa$qArtjT znEovjyT}&a`5_L1SzO+3ZgHz&Sv21zEW;0&H>;Cg+smXukL0PaJH`=1X|4q|-KM_H z&zlF4wYoefEH6~b2A=M>9kTb1;V1H7OZi3NrwBih&mzB7SlhxH;3-LWT$OlAQ~^jb z?+jLQ58%=u7gk2Qr4MVJ#BJq{YA$Ewv)n58@ilUqTjWo9nLN&&&D_(>SB~?wzj4d= zyh?U#<97K1U)Ra)&78|&Zkyotm$*m%gAA(?z8=%Iok019dv#IHa*H)H&LwMQCui1< zVg5+Dqn^w1PF^?6<>vgN5*B5SHl*`8FUuf@VeXLM!+JY;MKi(MuwE^)v%#^Le}*Ln zX^HYqi;PCFizpMP(05+&HwE7+_$F{0=IOTqdQtrsngP-GqtO-L1UStPfz$jZaKftv z$G6ibj;VYWI^yJGf@cJOTJUjYmXc#Gg(!NGK#=LGkH(>XHFEdA6ay$eL+DUe&p zr0)SOQ1zQ~p-%EbovD#j5I+-{YJ4b+FGJxYP-M=3Fof0o1TnQYP5;KU{sdEdg6W`| O!oR&}C>@VcPX7Qqm{mvs diff --git a/42sh/objs/main/shell_init.d b/42sh/objs/main/shell_init.d deleted file mode 100644 index ba48009b..00000000 --- a/42sh/objs/main/shell_init.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/main/shell_init.o: src/main/shell_init.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/main/shell_init.o b/42sh/objs/main/shell_init.o deleted file mode 100644 index 56370d1de5a0aa9fb4bb7bd74abd3b8c13678aa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7740 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 B1ONa4 diff --git a/42sh/objs/main/sig_handler.d b/42sh/objs/main/sig_handler.d deleted file mode 100644 index fad47284..00000000 --- a/42sh/objs/main/sig_handler.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/main/sig_handler.o: src/main/sig_handler.c includes/minishell.h \ - libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 includes/completion.h diff --git a/42sh/objs/main/sig_handler.o b/42sh/objs/main/sig_handler.o deleted file mode 100644 index 388fe25ccf2cfaf0c0bc5dd0e549904265a26cf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2908 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 R%V#z_;zZf~_!Te2e*q;u?dSji diff --git a/42sh/objs/parser/parse_dgreat.d b/42sh/objs/parser/parse_dgreat.d deleted file mode 100644 index 5260d7ec..00000000 --- a/42sh/objs/parser/parse_dgreat.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/parser/parse_dgreat.o: src/parser/parse_dgreat.c includes/parser.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/parser/parse_dgreat.o b/42sh/objs/parser/parse_dgreat.o deleted file mode 100644 index 261f2414b259dff5c5e4b486c74c6827cc1fedb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4964 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 QAe;$4ZShkSk9?H>0zHD};{X5v diff --git a/42sh/objs/parser/parse_great.d b/42sh/objs/parser/parse_great.d deleted file mode 100644 index d0ed7453..00000000 --- a/42sh/objs/parser/parse_great.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/parser/parse_great.o: src/parser/parse_great.c includes/parser.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/parser/parse_great.o b/42sh/objs/parser/parse_great.o deleted file mode 100644 index 114fed77e4f8f42b35f087c80f9c1e1ca3081d79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5024 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 diff --git a/42sh/objs/parser/parse_greatand.d b/42sh/objs/parser/parse_greatand.d deleted file mode 100644 index 0795a301..00000000 --- a/42sh/objs/parser/parse_greatand.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/parser/parse_greatand.o: src/parser/parse_greatand.c \ - includes/parser.h includes/minishell.h libft/includes/libft.h \ - libft/includes/lst.h libft/includes/get_next_line.h \ - libft/includes/ft_xattr.h libft/includes/mytime.h \ - libft/includes/dlst.h libft/includes/btree.h libft/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 includes/completion.h diff --git a/42sh/objs/parser/parse_greatand.o b/42sh/objs/parser/parse_greatand.o deleted file mode 100644 index cb8ad855637b8080f1cc2d535f38fb1c065a511f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4976 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 diff --git a/42sh/objs/parser/parse_lessand.d b/42sh/objs/parser/parse_lessand.d deleted file mode 100644 index 36b19d1d..00000000 --- a/42sh/objs/parser/parse_lessand.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/parser/parse_lessand.o: src/parser/parse_lessand.c includes/parser.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/parser/parse_lessand.o b/42sh/objs/parser/parse_lessand.o deleted file mode 100644 index f538711e16db7aae23a769cebe07df7578057112..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4964 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 diff --git a/42sh/objs/parser/parse_word.d b/42sh/objs/parser/parse_word.d deleted file mode 100644 index d3422ea9..00000000 --- a/42sh/objs/parser/parse_word.d +++ /dev/null @@ -1,8 +0,0 @@ -objs/parser/parse_word.o: src/parser/parse_word.c includes/parser.h \ - includes/minishell.h libft/includes/libft.h libft/includes/lst.h \ - libft/includes/get_next_line.h libft/includes/ft_xattr.h \ - libft/includes/mytime.h libft/includes/dlst.h libft/includes/btree.h \ - libft/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 \ - includes/completion.h diff --git a/42sh/objs/parser/parse_word.o b/42sh/objs/parser/parse_word.o deleted file mode 100644 index f5de56d00e8e393487111d19aa89369ffb3fa019..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4984 zcmb7I4UAM*6~6Ok-@G?F%l=YWmLCU}((TXg^4qL-fnCeuV+w{~x20Nr%+Ad24$RI> z=e>ai0oQ`s5gYqswQ1B+W6>C^(MnQlOhJfH(L!1!HAX{7O^I!7i#6FwQvAOA?ptOD zuz0iQo_o$c=iGD8z30q*d-6YTeP9R?2nuw7DnMRG7X_fr0F0A)m6ogVCLW>=noq-~ zAk>kGX4`IR)b++5eP`dsJ1^1xXdazFqdmE7qYz;-s>B$P-)uXX8Ym9gj$4o{+g^2d z?}pX>wD9fxUfKJ3XkyAAX#RlMx0lH!B)ihyKPO2GvD+-ymg7khzP|W z-bg$lU99xax2KLne7L=MKA%b1+4uZLx~Ud&$E{s*enmY(!V-hRH;EJ?URQo~X39q{7~jYqaNX&tGxBcPo1rRMcO;Mtev)X|mG44b|R8{r#Tx6IJaW zsN#GRxe@HswTszp>1@)r*RHxGD#WO=7gbENUI<>rVcb7;<`wo*!}eeSr|T)$_T+l- zxU$!y?6oO-iWCu;_Q%A2zGc!`X|Zy@uPS@rQqBy+9$Wq@{xL36B;qO3`DVZ<9=Z$DW1|Y5AAxV ze0#;?R_U}=`Wyrn0W>q<3Hjo$c}}#tX<1$poFr zWrw20tdkzfrjk*b%cKTfQAiIByTWnf1=`M}v4rCxWmIJOiR|21BDY0us9Dpr64g)Fg{D|k2rZpN8q;9L zQ(&?Ng0+zdwUND3V0ldwi7w=JH49&4dYOQTp>TP{%9PcjM%=T`Wm~y1=tUy7sVq2nFh%2MH?wlAK+FwLlHOJwb)Ehd2F;RKpnN zKyBOs9B4cX=RmDLN~);?5+cZ2q*rM#0BJ|j87I+=l4>=_fTCJs_yOR0=x9^5RuO&> zR0FB&AQC%Be)G%x_I>I%; z2RXNp8(4tRF;a`L0bv}%koyTW2AhF&(|8%^W^(35mH|bL1>u#zO$eXSMhgt*6Qph= z^>t7Trg0OgZ-C;-8aIOy#vF+Cffbr-t^(hcoN+WZl^F-o_Xj8wCE-9&^< z9GD0*rhkQy*-T%)3K>bwkP)V~_B!pHNB1};L$l2NKyBd_6A=#g&<-O^SHiut^FvU* zNR9Bvxu@rS>UQiY`~oQMKD zq5!W1u$AkQuGGDV_W#IGpPw{SX$%d1!mkjpj%PA|%n=*_`SgtT`2b*%;J5*J8elqr zzk2T1(zDO4`|i$zXBNEu$lAf#2m0?j5Nmt$#m_XHYk4Ixb>^ezPtE+w;qUBx?DWx( zJpI~xi%M_2yYrWN=ZRnMTy~*lNp|*6ZqrXJ9D5-0-ZQz`6)zohmZA@x@!UT3~ z5P{M9Kz)s2GPYb~7Qp&9?OeR*|K^F_+WIeRw@>juBOisVCSHVOAaJ2}3i<%o00b^Q z(nKabFz9xsvx!VGiO-A)_4ElaQZE80vW3%V(oE9?Ikfyiq1Knkslh6g$}TTCgsl*HoL|*CU~r z-q@|1-5A}WSA%Nk){Smm12qLyOQ@*Vh3?n!*Ag1m=Ymxq(}NrJ+L(TQXt{n17>i~ttv7e;LD!qPL(VLY=^u^hE6Qequv-hA#?W598F+q7*J4=v8NG?zm_7q*$FQV% zkDQ+#)8~NG9Wskr2!|l1Aw-Bk`+01{ME<`4jBPD{4H!{q{{t|>)&4zTh_-)G;W#kP zwtY1)K26&#k00t$c!9!m6b7Px=(NIXf$PBV+eQq^NLlF1>E??0whH>z3Yxm*`hyj8 zPX#UPLA>JKLb8~b!+0`TNQ`*nOj3Rs48#*#%oRWo3CG+?_ql+p7H*}^k1Xv0H*)| From c764027070e1d8820d1542c8a2cb8842aba4132b Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Tue, 14 Feb 2017 20:32:34 +0100 Subject: [PATCH 61/98] heredoc starting to work; goto do multiple heredoc and execution part --- 42sh/Makefile | 3 +++ 42sh/includes/lexer.h | 11 +++++++--- 42sh/src/exec/process_redirect.c | 7 +++--- 42sh/src/exec/redirect_greatand.c | 1 + 42sh/src/lexer/get_lexer_stack.c | 6 ++++++ 42sh/src/lexer/lexer_end.c | 15 ++++++++++--- 42sh/src/lexer/lexer_init.c | 10 +++++++++ 42sh/src/lexer/lexer_less.c | 8 ++++--- 42sh/src/lexer/lexer_lex.c | 6 ++++-- 42sh/src/lexer/stack_to_prompt.c | 2 ++ 42sh/src/lexer_dless.c | 36 +++++++++++++++++++++++++++++++ 42sh/src/main/main.c | 25 +++++++++++---------- 12 files changed, 104 insertions(+), 26 deletions(-) create mode 100644 42sh/src/lexer/get_lexer_stack.c create mode 100644 42sh/src/lexer/lexer_init.c create mode 100644 42sh/src/lexer_dless.c diff --git a/42sh/Makefile b/42sh/Makefile index bf3af16f..4a034b0a 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -138,6 +138,7 @@ job-control/sigttin_handler.c\ job-control/sigttou_handler.c\ lexer/command_getoutput.c\ lexer/expand_bquotes.c\ +lexer/get_lexer_stack.c\ lexer/get_state_global.c\ lexer/get_state_redir.c\ lexer/lexer_backslash.c\ @@ -149,6 +150,7 @@ lexer/lexer_dquote.c\ lexer/lexer_end.c\ lexer/lexer_great.c\ lexer/lexer_greatand.c\ +lexer/lexer_init.c\ lexer/lexer_less.c\ lexer/lexer_lessand.c\ lexer/lexer_lex.c\ @@ -165,6 +167,7 @@ lexer/token_cmp_type.c\ lexer/token_free.c\ lexer/token_init.c\ lexer/token_print.c\ +lexer_dless.c\ line-editing/builtin_history.c\ line-editing/completion.c\ line-editing/control_c_and_d.c\ diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index 687203de..d89b0a54 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -45,10 +45,11 @@ enum e_lexstate SEP, WORD, NUMBER, - GREAT, LESS, - GREATAND, + GREAT, LESSAND, + GREATAND, + DLESS, QUOTE, DQUOTE, BQUOTE, @@ -74,6 +75,7 @@ struct s_lexer int pos; t_lexstate state; t_list *stack; + t_list *heredoc_stack; }; @@ -101,6 +103,8 @@ char *stack_to_prompt(t_list *stack); t_lexstate get_state_global(t_lexer *lexer); t_lexstate get_state_redir(t_lexer *lexer); +int get_lexer_stack(t_lexer lexer); +void lexer_init(t_lexer *lexer); int lexer_lex(t_list **alst, t_lexer *lexer); int lexer_default(t_list **alst, t_lexer *lexer); int lexer_newline(t_list **alst, t_lexer *lexer); @@ -110,8 +114,9 @@ int lexer_word(t_list **alst, t_lexer *lexer); int lexer_number(t_list **alst, t_lexer *lexer); int lexer_less(t_list **alst, t_lexer *lexer); int lexer_great(t_list **alst, t_lexer *lexer); -int lexer_lessand(t_list **alst, t_lexer *lexer); int lexer_greatand(t_list **alst, t_lexer *lexer); +int lexer_lessand(t_list **alst, t_lexer *lexer); +int lexer_dless(t_list **alst, t_lexer *lexer); int lexer_quote(t_list **alst, t_lexer *lexer); int lexer_dquote(t_list **alst, t_lexer *lexer); int lexer_bquote(t_list **alst, t_lexer *lexer); diff --git a/42sh/src/exec/process_redirect.c b/42sh/src/exec/process_redirect.c index a5560582..574448f0 100644 --- a/42sh/src/exec/process_redirect.c +++ b/42sh/src/exec/process_redirect.c @@ -30,14 +30,13 @@ int process_redirect(t_process *p) int i; redirs = p->redirs; + DG("process redirect"); while (redirs) { redir = redirs->content; + DG("process redirect 2, type=[%i]", redir->type); if (redir->n > 9) - { - bad_fd(redir->n); - exit(1); - } + return (bad_fd(redir->n)); i = 0; while (g_redirmap[i].type) { diff --git a/42sh/src/exec/redirect_greatand.c b/42sh/src/exec/redirect_greatand.c index 6e4bf37f..70658424 100644 --- a/42sh/src/exec/redirect_greatand.c +++ b/42sh/src/exec/redirect_greatand.c @@ -17,6 +17,7 @@ int redirect_greatand(t_redir *redir) int fdold; int fdnew; + DG("redir greatand"); if (redir->close) { close(redir->n); diff --git a/42sh/src/lexer/get_lexer_stack.c b/42sh/src/lexer/get_lexer_stack.c new file mode 100644 index 00000000..10ce9b70 --- /dev/null +++ b/42sh/src/lexer/get_lexer_stack.c @@ -0,0 +1,6 @@ +#include "lexer.h" + +int get_lexer_stack(t_lexer lexer) +{ + return (lexer.stack ? *(int*)lexer.stack->content : 0); +} diff --git a/42sh/src/lexer/lexer_end.c b/42sh/src/lexer/lexer_end.c index f7650e81..7dccf710 100644 --- a/42sh/src/lexer/lexer_end.c +++ b/42sh/src/lexer/lexer_end.c @@ -5,14 +5,23 @@ int lexer_end(t_list **alst, t_lexer *lexer) t_token *token; DG("check"); - if (*alst && (lexer->state == QUOTE + if ((*alst && (lexer->state == QUOTE || lexer->state == DQUOTE || lexer->state == BQUOTE)) + || get_lexer_stack(*lexer) == DLESS) { - token = (*alst)->content; ft_strappend(&lexer->str, (char[]){'\n', 0}); - token_append(token, lexer, 1, 0); lexer->pos++; + if (get_lexer_stack(*lexer) == DLESS) + { + token = (*(t_list**)lexer->heredoc_stack->content)->content; + token_append_char(token, '\n', 0, 0); + } + else + { + token = (*alst)->content; + token_append_char(token, '\n', 1, 0); + } return (0); } return (0); diff --git a/42sh/src/lexer/lexer_init.c b/42sh/src/lexer/lexer_init.c new file mode 100644 index 00000000..230ee3f6 --- /dev/null +++ b/42sh/src/lexer/lexer_init.c @@ -0,0 +1,10 @@ +#include "lexer.h" + +void lexer_init(t_lexer *lexer) +{ + lexer->str = NULL; + lexer->pos = 0; + lexer->state = DEFAULT; + lexer->stack = NULL; + lexer->heredoc_stack = NULL; +} diff --git a/42sh/src/lexer/lexer_less.c b/42sh/src/lexer/lexer_less.c index 00798f44..4f8eae63 100644 --- a/42sh/src/lexer/lexer_less.c +++ b/42sh/src/lexer/lexer_less.c @@ -28,11 +28,13 @@ int lexer_less(t_list **alst, t_lexer *lexer) } if (lexer->str[lexer->pos + 1] == '<') { + token_free(token, 0); + (*alst)->content = token_init(); token->type = TK_DLESS; - lexer->pos++; - token_append(token, lexer, 0, 0); - lexer->pos++; + lexer->pos += 2; + push(&lexer->stack, DLESS); lexer->state = DEFAULT; + ft_lsteadd(&lexer->heredoc_stack, ft_lstnew(alst, sizeof(alst))); return (lexer_lex(&(*alst)->next, lexer)); } else diff --git a/42sh/src/lexer/lexer_lex.c b/42sh/src/lexer/lexer_lex.c index 9472a565..2defdb6d 100644 --- a/42sh/src/lexer/lexer_lex.c +++ b/42sh/src/lexer/lexer_lex.c @@ -20,10 +20,11 @@ int (*g_lexer[])(t_list **alst, t_lexer *lexer) = &lexer_sep, &lexer_word, &lexer_number, - &lexer_great, &lexer_less, - &lexer_greatand, + &lexer_great, &lexer_lessand, + &lexer_greatand, + &lexer_dless, &lexer_quote, &lexer_dquote, &lexer_bquote, @@ -43,6 +44,7 @@ int lexer_lex(t_list **alst, t_lexer *lexer) { t_token *token; + DG("check 01, state=[%i]", lexer->state); if (lexer->str[lexer->pos] == 0) return (lexer_end(alst, lexer)); if (!*alst) diff --git a/42sh/src/lexer/stack_to_prompt.c b/42sh/src/lexer/stack_to_prompt.c index 385ffc89..b79c208b 100644 --- a/42sh/src/lexer/stack_to_prompt.c +++ b/42sh/src/lexer/stack_to_prompt.c @@ -31,6 +31,8 @@ char *stack_to_prompt(t_list *stack) return ("dquote bquote> "); else if (top == PAREN) return ("subsh> "); + else if (top == DLESS) + return ("heredoc> "); else return ("error> "); } diff --git a/42sh/src/lexer_dless.c b/42sh/src/lexer_dless.c new file mode 100644 index 00000000..cd9cba17 --- /dev/null +++ b/42sh/src/lexer_dless.c @@ -0,0 +1,36 @@ +#include "lexer.h" + +int lexer_dless(t_list **alst, t_lexer *lexer) +{ + t_list *heredoc_lst; + t_token *eof_tok; + t_token *heredoc_tok; + + (void)alst; + (void)lexer; + heredoc_lst = *(t_list**)lexer->heredoc_stack->content; + heredoc_tok = heredoc_lst->content; + if (!(heredoc_lst->next)) + { + ft_dprintf(2, "{red}%s: parse error near `\\n'{eoc}\n", SHELL_NAME); + return (1); + } + eof_tok = heredoc_lst->next->content; + if (!(eof_tok->type == TK_WORD)) + { + ft_dprintf(2, "{red}%s: expected word token after <<{eoc}\n", SHELL_NAME); + return (1); + } + DG("heredoc contains [%s]", heredoc_tok->data); + DG("heredoc ends at [%s]", eof_tok->data); + DG("input is [%s]", lexer->str + lexer->pos); + if (ft_strcmp(eof_tok->data, lexer->str + lexer->pos) == 0) + { + pop(&lexer->stack); + pop(&lexer->heredoc_stack); + return (0); + } + while (lexer->str[lexer->pos]) + token_append_char(heredoc_tok, lexer->str[lexer->pos++], 0, 0); + return (lexer_end(alst, lexer)); +} diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 7416749f..17c882bc 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -18,10 +18,8 @@ int non_interactive_shell(char *command) t_lexer lexer; t_btree *ast; - lexer.pos = 0; - lexer.state = DEFAULT; + lexer_init(&lexer); lexer.str = command; - lexer.stack = NULL; token = NULL; ast = NULL; while (lexer.str[lexer.pos]) @@ -43,6 +41,7 @@ int non_interactive_shell(char *command) } return (0); } + int interactive_shell() { t_list *token; @@ -50,21 +49,25 @@ int interactive_shell() t_lexer lexer; t_btree *ast; - lexer.pos = 0; - lexer.state = DEFAULT; - lexer.str = NULL; + lexer_init(&lexer); token = NULL; - lexer.stack = NULL; ast = NULL; do { ft_strappend(&lexer.str, readline(stack_to_prompt(lexer.stack))); - if (lexer.stack && *(int*)lexer.stack->content == BACKSLASH) + DG("check 0"); + if (get_lexer_stack(lexer) == BACKSLASH) pop(&lexer.stack); + else if (get_lexer_stack(lexer) == DLESS) + lexer.state = DLESS; + DG("check 1"); ltoken = ft_lstlast(token); - lexer_lex((token ? <oken : &token), &lexer); + if (lexer_lex((token ? <oken : &token), &lexer)) + return (1); + DG("check 2"); DG("[{mag}%s{eoc}] stack=[%i] state=[%i]", lexer.str, lexer.stack ? *(int*)lexer.stack->content : 0, lexer.state); + DG("check 3"); token_print(token); - } while (lexer.stack); + } while (get_lexer_stack(lexer)); if (bquotes_expand(&token)) return (1); if (!token) @@ -85,7 +88,7 @@ int main(int ac, char **av) data = data_singleton(); setlocale(LC_ALL, ""); shell_init(ac, av); - DG("{inv}{bol}{gre}start of shell{eoc} pid=%i pgrp=%i job_control is %s", getpid(), getpgrp(), SH_HAS_JOBC(data->opts) ? "ON" : "OFF"); + DG("{inv}{bol}{gre}start of shell{eoc} JOBC is %s", SH_HAS_JOBC(data->opts)?"ON":"OFF"); if (SH_IS_INTERACTIVE(data->opts)) { while (1) From 3f984ad4988233c2d3ef12f5ddb4db3712325576 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Wed, 15 Feb 2017 00:00:39 +0100 Subject: [PATCH 62/98] multiple heredocs on one line word OK --- 42sh/src/exec/process_redirect.c | 2 -- 42sh/src/job-control/job_wait.c | 1 - 42sh/src/lexer/lexer_end.c | 1 - 42sh/src/lexer/lexer_lex.c | 1 - 42sh/src/lexer/lexer_sep.c | 1 + 42sh/src/lexer_dless.c | 8 +++++--- 42sh/src/main/main.c | 5 ----- 7 files changed, 6 insertions(+), 13 deletions(-) diff --git a/42sh/src/exec/process_redirect.c b/42sh/src/exec/process_redirect.c index 574448f0..6b45872d 100644 --- a/42sh/src/exec/process_redirect.c +++ b/42sh/src/exec/process_redirect.c @@ -30,11 +30,9 @@ int process_redirect(t_process *p) int i; redirs = p->redirs; - DG("process redirect"); while (redirs) { redir = redirs->content; - DG("process redirect 2, type=[%i]", redir->type); if (redir->n > 9) return (bad_fd(redir->n)); i = 0; diff --git a/42sh/src/job-control/job_wait.c b/42sh/src/job-control/job_wait.c index 6cd87253..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("gonna wait [%i]", id); if (job_is_stopped(id)) return (0); job_update_status(); diff --git a/42sh/src/lexer/lexer_end.c b/42sh/src/lexer/lexer_end.c index 7dccf710..2ec70dd2 100644 --- a/42sh/src/lexer/lexer_end.c +++ b/42sh/src/lexer/lexer_end.c @@ -4,7 +4,6 @@ int lexer_end(t_list **alst, t_lexer *lexer) { t_token *token; - DG("check"); if ((*alst && (lexer->state == QUOTE || lexer->state == DQUOTE || lexer->state == BQUOTE)) diff --git a/42sh/src/lexer/lexer_lex.c b/42sh/src/lexer/lexer_lex.c index 2defdb6d..f6614e5a 100644 --- a/42sh/src/lexer/lexer_lex.c +++ b/42sh/src/lexer/lexer_lex.c @@ -44,7 +44,6 @@ int lexer_lex(t_list **alst, t_lexer *lexer) { t_token *token; - DG("check 01, state=[%i]", lexer->state); if (lexer->str[lexer->pos] == 0) return (lexer_end(alst, lexer)); if (!*alst) diff --git a/42sh/src/lexer/lexer_sep.c b/42sh/src/lexer/lexer_sep.c index 581f2395..a393f714 100644 --- a/42sh/src/lexer/lexer_sep.c +++ b/42sh/src/lexer/lexer_sep.c @@ -18,6 +18,7 @@ int lexer_sep(t_list **alst, t_lexer *lexer) char c; char cn; + lexer->state = DEFAULT; if (*alst) { token = (*alst)->content; diff --git a/42sh/src/lexer_dless.c b/42sh/src/lexer_dless.c index cd9cba17..6f0644b9 100644 --- a/42sh/src/lexer_dless.c +++ b/42sh/src/lexer_dless.c @@ -28,9 +28,11 @@ int lexer_dless(t_list **alst, t_lexer *lexer) { pop(&lexer->stack); pop(&lexer->heredoc_stack); - return (0); + while (lexer->str[++lexer->pos]) + ; } - while (lexer->str[lexer->pos]) - token_append_char(heredoc_tok, lexer->str[lexer->pos++], 0, 0); + else + while (lexer->str[lexer->pos]) + token_append_char(heredoc_tok, lexer->str[lexer->pos++], 0, 0); return (lexer_end(alst, lexer)); } diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 17c882bc..3d2df86d 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -54,25 +54,20 @@ int interactive_shell() ast = NULL; do { ft_strappend(&lexer.str, readline(stack_to_prompt(lexer.stack))); - DG("check 0"); if (get_lexer_stack(lexer) == BACKSLASH) pop(&lexer.stack); else if (get_lexer_stack(lexer) == DLESS) lexer.state = DLESS; - DG("check 1"); ltoken = ft_lstlast(token); if (lexer_lex((token ? <oken : &token), &lexer)) return (1); - DG("check 2"); DG("[{mag}%s{eoc}] stack=[%i] state=[%i]", lexer.str, lexer.stack ? *(int*)lexer.stack->content : 0, lexer.state); - DG("check 3"); token_print(token); } while (get_lexer_stack(lexer)); if (bquotes_expand(&token)) return (1); if (!token) return (0); - token_print(token); if (ft_parse(&ast, &token)) return (1); btree_print(STDBUG, ast, &ft_putast); From 16cfada91f8bfd2bf97360deea2db2f083172aa1 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Wed, 15 Feb 2017 00:13:02 +0100 Subject: [PATCH 63/98] heredoc redirection done, looks to work OK --- 42sh/Makefile | 1 + 42sh/src/exec/process_redirect.c | 2 +- 42sh/src/exec/redirect_dless.c | 27 +++++++++++++++++++++++++++ 42sh/src/lexer_dless.c | 3 +++ 42sh/src/parser/parse_dless.c | 3 ++- 5 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 42sh/src/exec/redirect_dless.c diff --git a/42sh/Makefile b/42sh/Makefile index 4a034b0a..5d9d4f2d 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -72,6 +72,7 @@ exec/process_setexec.c\ exec/process_setgroup.c\ exec/process_setsig.c\ exec/redirect_dgreat.c\ +exec/redirect_dless.c\ exec/redirect_great.c\ exec/redirect_greatand.c\ exec/redirect_less.c\ diff --git a/42sh/src/exec/process_redirect.c b/42sh/src/exec/process_redirect.c index 6b45872d..eec4d26d 100644 --- a/42sh/src/exec/process_redirect.c +++ b/42sh/src/exec/process_redirect.c @@ -16,7 +16,7 @@ t_redirmap g_redirmap[] = { {TK_LESS, redirect_less}, {TK_GREAT, redirect_great}, - /* {TK_DLESS, redirect_dless}, */ + {TK_DLESS, redirect_dless}, {TK_DGREAT, redirect_dgreat}, {TK_LESSAND, redirect_lessand}, {TK_GREATAND, redirect_greatand}, diff --git a/42sh/src/exec/redirect_dless.c b/42sh/src/exec/redirect_dless.c new file mode 100644 index 00000000..241f6e1f --- /dev/null +++ b/42sh/src/exec/redirect_dless.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* redirect_dless.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/06 22:09:53 by jhalford #+# #+# */ +/* Updated: 2017/02/07 16:05:09 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "exec.h" + +int redirect_dless(t_redir *redir) +{ + int fds[2]; + char *str; + + pipe(fds); + str = redir->word.word; + write(fds[PIPE_WRITE], str, ft_strlen(str)); + close(fds[PIPE_WRITE]); + dup2(fds[PIPE_READ], 0); + close(fds[PIPE_READ]); + return (0); +} diff --git a/42sh/src/lexer_dless.c b/42sh/src/lexer_dless.c index 6f0644b9..f0e0ee4d 100644 --- a/42sh/src/lexer_dless.c +++ b/42sh/src/lexer_dless.c @@ -30,6 +30,9 @@ int lexer_dless(t_list **alst, t_lexer *lexer) pop(&lexer->heredoc_stack); while (lexer->str[++lexer->pos]) ; + ft_strappend(&lexer->str, (char[]){'\n', 0}); + lexer->pos++; + return (0); } else while (lexer->str[lexer->pos]) diff --git a/42sh/src/parser/parse_dless.c b/42sh/src/parser/parse_dless.c index 20d91421..1b75baa2 100644 --- a/42sh/src/parser/parse_dless.c +++ b/42sh/src/parser/parse_dless.c @@ -26,7 +26,8 @@ int parse_dless(t_btree **ast, t_list **start, t_list **lst) next_tok = (*lst)->next->content; if (next_tok->type != TK_WORD) return (1); - node->data.redir.word.word = ft_strdup(next_tok->data); + node->data.redir.word.word = ft_strdup(tok->data); + node->data.redir.n = 0; ft_lst_delif(start, (*lst)->content, &ft_addrcmp, &token_free); ft_lst_delif(start, (*lst)->next->content, &ft_addrcmp, &token_free); ft_parse(&(*ast)->left, start); From b67c7fd7d3b959c5b56f905985aae0ebfa292a64 Mon Sep 17 00:00:00 2001 From: gwojda Date: Wed, 15 Feb 2017 15:46:43 +0100 Subject: [PATCH 64/98] ajout d'env avec opt -i -u / export / unset --- 42sh/Makefile | 2 + 42sh/includes/builtin.h | 4 +- 42sh/includes/minishell.h | 2 +- 42sh/src/builtin/builtin_env.c | 146 ++++++++++++++++++++++++------ 42sh/src/builtin/builtin_export.c | 20 ++++ 42sh/src/builtin/builtin_unset.c | 18 ++++ 42sh/src/builtin/is_builtin.c | 4 +- 42sh/src/line-editing/ft_prompt.c | 8 +- 42sh/test | 75 ++++----------- 42sh/testmake | 3 + 10 files changed, 190 insertions(+), 92 deletions(-) create mode 100644 42sh/src/builtin/builtin_export.c create mode 100644 42sh/src/builtin/builtin_unset.c create mode 100644 42sh/testmake diff --git a/42sh/Makefile b/42sh/Makefile index 3ada95e4..31d30f64 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -36,9 +36,11 @@ builtin/builtin_cd.c\ builtin/builtin_echo.c\ builtin/builtin_env.c\ builtin/builtin_exit.c\ +builtin/builtin_export.c\ builtin/builtin_history.c\ builtin/builtin_read.c\ builtin/builtin_setenv.c\ +builtin/builtin_unset.c\ builtin/builtin_unsetenv.c\ builtin/is_builtin.c\ completion/c_binary.c\ diff --git a/42sh/includes/builtin.h b/42sh/includes/builtin.h index 45db3c5a..bb3c2637 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/02/02 19:07:01 by gwojda ### ########.fr */ +/* Updated: 2017/02/15 11:45:15 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,6 +18,8 @@ # include "builtin_read.h" t_execf *is_builtin(t_process *p); +int builtin_export(const char *path, char *const av[], char *const envp[]); +int builtin_unset(const char *path, char *const av[], char *const envp[]); int builtin_env(const char *path, char *const argv[], char *const envp[]); int builtin_echo(const char *path, char *const argv[], char *const envp[]); int builtin_cd(const char *path, char *const argv[], char *const envp[]); diff --git a/42sh/includes/minishell.h b/42sh/includes/minishell.h index d1e3fa06..5ba7c179 100644 --- a/42sh/includes/minishell.h +++ b/42sh/includes/minishell.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:07:44 by jhalford #+# #+# */ -/* Updated: 2017/02/10 00:26:10 by jhalford ### ########.fr */ +/* Updated: 2017/02/15 14:20:59 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/builtin/builtin_env.c b/42sh/src/builtin/builtin_env.c index 1262dd6e..1a8c71b3 100644 --- a/42sh/src/builtin/builtin_env.c +++ b/42sh/src/builtin/builtin_env.c @@ -3,43 +3,131 @@ /* ::: :::::::: */ /* builtin_env.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:14:20 by jhalford #+# #+# */ -/* Updated: 2017/01/10 13:08:15 by jhalford ### ########.fr */ +/* Updated: 2017/02/15 15:45:54 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -int builtin_env(const char *path, char *const argv[], char *const envp[]) +/* +** a ajouter dans la lib ? +*/ + +int ft_sstr_found(char **sstr, char *name) { - (void)argv; - (void)envp; - (void)path; + int size; + + size = 0; + if (sstr) + while (sstr[size] && ft_strncmp(name, sstr[size], ft_strlen(name))) + ++size; + return (size); +} + +void ft_sstr_freeone(char **sstr, int index) +{ + char *tmp; + + tmp = sstr[index]; + while (sstr[index]) + { + sstr[index] = sstr[index + 1]; + index++; + } + free(tmp); +} + +/* +** +*/ + +static void ft_env_execute(char *const argv[], char **env) +{ + pid_t soon; + char *path; + char *path_exe; + + path = ft_getenv(env, "PATH"); + path_exe = ft_findexec(path, *argv); + if (!path || !path_exe) + { + ft_dprintf(2, "{red}%s: no such file or directory: %s{eoc}\n", + SHELL_NAME, *argv); + return ; + } + if ((soon = fork())) + wait(&soon); + else + set_exitstatus(execve(path_exe, argv, env), 1); + free(path_exe); +} + +static void ft_illegal_opt_env(char c) +{ + ft_dprintf(2, "{red}env: option requires an argument -- %c\n", c); + ft_dprintf(2, "usage: env\t[-iv] [-P utilpath] [-S string]"); + ft_dprintf(2, " [-u name]\n\t\t[name=value ...] "); + ft_dprintf(2, "[utility [argument ...]]{eoc}\n"); +} + +static int ft_check_env_opt(char ***argv, char ***env) +{ + if (!ft_strcmp(**argv, "-i")) + { + ft_sstrfree(*env); + *env = NULL; + ++(*argv); + } + else if (!ft_strcmp(**argv, "-u")) + { + ++(*argv); + if (!**argv) + { + ft_illegal_opt_env('u'); + return (1); + } + ft_sstr_freeone(*env, ft_sstr_found(*env, **argv)); + ++(*argv); + } + else if (***argv == '-') + { + ft_illegal_opt_env(*(**argv + 1)); + return (1); + } return (0); } -/* int builtin_env(char **av, t_data *data) */ -/* { */ -/* int i; */ -/* char **env; */ -/* i = 1; */ -/* env = NULL; */ -/* if (!av[1]) */ -/* { */ -/* ft_sstrprint(data->env, '\n'); */ -/* ft_putchar('\n'); */ -/* } */ -/* else */ -/* { */ -/* while (av[i] && ft_strchr(av[i], '=')) */ -/* { */ -/* env = ft_sstradd(env, av[i]); */ -/* i++; */ -/* } */ -/* if (av[i]) */ -/* ft_cmd_process(av + i); */ -/* } */ -/* return (0); */ -/* } */ +int builtin_env(const char *path, char *const argv[], char *const envp[]) +{ + char **env; + + (void)path; + env = ft_sstrdup((char **)envp); + while (*argv) + { + if (ft_check_env_opt((char ***)&argv, (char ***)&env)) + break ; + while (*argv && ft_strrchr(*argv, '=')) + { + env = ft_sstradd(env, *argv); + ++argv; + } + if (env && (!*argv || (!ft_strcmp(*argv, "env") && !*(argv + 1)))) + { + ft_sstrprint(env, '\n'); + ft_putchar('\n'); + return (0); + } + if (*argv && ft_strcmp(*argv, "env")) + { + ft_env_execute(argv, env); + return (0); + } + if (*argv) + ++argv; + } + return (0); +} diff --git a/42sh/src/builtin/builtin_export.c b/42sh/src/builtin/builtin_export.c new file mode 100644 index 00000000..b5fd1b4d --- /dev/null +++ b/42sh/src/builtin/builtin_export.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* builtin_export.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/15 11:39:37 by gwojda #+# #+# */ +/* Updated: 2017/02/15 11:46:20 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +int builtin_export(const char *path, char *const av[], char *const envp[]) +{ + if (ft_strcmp(av[0], "export") == 0) + av++; + return (builtin_setenv(path, av, envp)); +} diff --git a/42sh/src/builtin/builtin_unset.c b/42sh/src/builtin/builtin_unset.c new file mode 100644 index 00000000..c3afa192 --- /dev/null +++ b/42sh/src/builtin/builtin_unset.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* builtin_unset.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/15 11:43:34 by gwojda #+# #+# */ +/* Updated: 2017/02/15 11:58:22 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +int builtin_unset(const char *path, char *const av[], char *const envp[]) +{ + return (builtin_unsetenv(path, av, envp)); +} diff --git a/42sh/src/builtin/is_builtin.c b/42sh/src/builtin/is_builtin.c index eba6e445..8dd86660 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/26 14:58:02 by gwojda ### ########.fr */ +/* Updated: 2017/02/15 11:44:31 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,6 +16,8 @@ t_stof g_builtin[] = { {"echo", &builtin_echo}, {"cd", &builtin_cd}, + {"export", &builtin_export}, + {"unset", &builtin_unset}, {"setenv", &builtin_setenv}, {"unsetenv", &builtin_unsetenv}, {"env", &builtin_env}, diff --git a/42sh/src/line-editing/ft_prompt.c b/42sh/src/line-editing/ft_prompt.c index 5e6e21b1..264e9237 100644 --- a/42sh/src/line-editing/ft_prompt.c +++ b/42sh/src/line-editing/ft_prompt.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:51:33 by gwojda #+# #+# */ -/* Updated: 2017/02/14 14:13:05 by gwojda ### ########.fr */ +/* Updated: 2017/02/15 11:52:24 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -36,6 +36,12 @@ static int ft_git_status(void) ft_printf("\x1b[38;5;47mgit:(\x1b[38;5;203m%s\x1b[38;5;47m)", line); free(tmp); } + else + { + line = ft_strdup(line + 3); + ft_printf("\x1b[38;5;47mgit:(\x1b[38;5;203m%s\x1b[38;5;47m)", line); + free(tmp); + } if (!get_next_line(pip[0], &tmp)) printf("\x1b[38;5;83m %C ", L'✓'); else diff --git a/42sh/test b/42sh/test index 4e559b24..40044643 100644 --- a/42sh/test +++ b/42sh/test @@ -1,62 +1,19 @@  shell_init.c 28 interactive shell settings - main.c 90 start of shell pid=44206 pgrp=44206 job_control is ON - lexer_end.c 7 check - main.c 65 [history] stack=[0] state=[4] - token_print.c 29 13:[history] - token_print.c 29 13:[history] - lexer_end.c 7 check - main.c 65 [history] stack=[0] state=[4] - token_print.c 29 13:[history] - token_print.c 29 13:[history] - lexer_end.c 7 check - main.c 65 [aaaaaaa] stack=[0] state=[4] - token_print.c 29 13:[aaaaaaa] - token_print.c 29 13:[aaaaaaa] - lexer_end.c 7 check - main.c 65 [ssssss] stack=[0] state=[4] - token_print.c 29 13:[ssssss] - token_print.c 29 13:[ssssss] - lexer_end.c 7 check - main.c 65 [ddddddddd] stack=[0] state=[4] - token_print.c 29 13:[ddddddddd] - token_print.c 29 13:[ddddddddd] - lexer_end.c 7 check - main.c 65 [ffffffffffffff] stack=[0] state=[4] - token_print.c 29 13:[ffffffffffffff] - token_print.c 29 13:[ffffffffffffff] - lexer_end.c 7 check - main.c 65 [ffffffffffffff] stack=[0] state=[4] - token_print.c 29 13:[ffffffffffffff] - token_print.c 29 13:[ffffffffffffff] - lexer_end.c 7 check - main.c 65 [history] stack=[0] state=[4] - token_print.c 29 13:[history] - token_print.c 29 13:[history] - lexer_end.c 7 check - main.c 65 [history] stack=[0] state=[4] - token_print.c 29 13:[history] - token_print.c 29 13:[history] - lexer_end.c 7 check - main.c 65 [ls] stack=[0] state=[4] - token_print.c 29 13:[ls] - token_print.c 29 13:[ls] - job_wait.c 20 gonna wait [1] - lexer_end.c 7 check - main.c 65 [ls -la] stack=[0] state=[4] - token_print.c 29 13:[ls] - token_print.c 29 13:[-la] - token_print.c 29 13:[ls] - token_print.c 29 13:[-la] - job_wait.c 20 gonna wait [1] - lexer_end.c 7 check - main.c 65 [ls -la] stack=[0] state=[4] - token_print.c 29 13:[ls] - token_print.c 29 13:[-la] - token_print.c 29 13:[ls] - token_print.c 29 13:[-la] - job_wait.c 20 gonna wait [1] - lexer_end.c 7 check - main.c 65 [history] stack=[0] state=[4] - token_print.c 29 13:[history] + main.c 88 start of shell JOBC is ON + main.c 64 [env -o] stack=[0] state=[4] + token_print.c 29 13:[env] + token_print.c 29 13:[-o] + main.c 64 [env -u] stack=[0] state=[4] + token_print.c 29 13:[env] + token_print.c 29 13:[-u] + main.c 64 [histor] stack=[0] state=[4] + token_print.c 29 13:[histor] + main.c 64 [history] stack=[0] state=[4]  token_print.c 29 13:[history] + main.c 64 [env -u LESS] stack=[0] state=[4] + token_print.c 29 13:[env] + token_print.c 29 13:[-u] + token_print.c 29 13:[LESS] + main.c 64 [env ] stack=[0] state=[0] + token_print.c 29 13:[env]  shell_exit.c 17 shell_exit() diff --git a/42sh/testmake b/42sh/testmake new file mode 100644 index 00000000..e0995542 --- /dev/null +++ b/42sh/testmake @@ -0,0 +1,3 @@ + shell_init.c 28 interactive shell settings + main.c 88 start of shell JOBC is ON + shell_exit.c 17 shell_exit() From 81b4c83c700c04866510a68f4df9010ff9d6c792 Mon Sep 17 00:00:00 2001 From: gwojda Date: Wed, 15 Feb 2017 15:47:09 +0100 Subject: [PATCH 65/98] ajout d'env avec opt -i -u / export / unset --- 42sh/test | 19 ------------------- 42sh/testmake | 3 --- 2 files changed, 22 deletions(-) delete mode 100644 42sh/test delete mode 100644 42sh/testmake diff --git a/42sh/test b/42sh/test deleted file mode 100644 index 40044643..00000000 --- a/42sh/test +++ /dev/null @@ -1,19 +0,0 @@ - shell_init.c 28 interactive shell settings - main.c 88 start of shell JOBC is ON - main.c 64 [env -o] stack=[0] state=[4] - token_print.c 29 13:[env] - token_print.c 29 13:[-o] - main.c 64 [env -u] stack=[0] state=[4] - token_print.c 29 13:[env] - token_print.c 29 13:[-u] - main.c 64 [histor] stack=[0] state=[4] - token_print.c 29 13:[histor] - main.c 64 [history] stack=[0] state=[4] - token_print.c 29 13:[history] - main.c 64 [env -u LESS] stack=[0] state=[4] - token_print.c 29 13:[env] - token_print.c 29 13:[-u] - token_print.c 29 13:[LESS] - main.c 64 [env ] stack=[0] state=[0] - token_print.c 29 13:[env] - shell_exit.c 17 shell_exit() diff --git a/42sh/testmake b/42sh/testmake deleted file mode 100644 index e0995542..00000000 --- a/42sh/testmake +++ /dev/null @@ -1,3 +0,0 @@ - shell_init.c 28 interactive shell settings - main.c 88 start of shell JOBC is ON - shell_exit.c 17 shell_exit() From 3dfc6abb61201e9d6ac695d220b9f9a89452c3b5 Mon Sep 17 00:00:00 2001 From: gwojda Date: Thu, 16 Feb 2017 12:46:42 +0100 Subject: [PATCH 66/98] correction de quelques bugs sur le prompt - correction de segv sur env - correction de leaks --- 42sh/Makefile | 1 - 42sh/includes/ft_readline.h | 4 +- 42sh/src/builtin/builtin_env.c | 4 +- 42sh/src/builtin/builtin_exit.c | 5 +- 42sh/src/history/add_str_in_history.c | 11 ++- 42sh/src/history/history_parsing.c | 3 +- 42sh/src/line-editing/ft_prompt.c | 34 ++++---- 42sh/src/line-editing/heredoc.c | 109 -------------------------- 42sh/src/line-editing/readline.c | 19 ++++- 9 files changed, 52 insertions(+), 138 deletions(-) delete mode 100644 42sh/src/line-editing/heredoc.c diff --git a/42sh/Makefile b/42sh/Makefile index 31d30f64..2c2e3fbe 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -184,7 +184,6 @@ line-editing/control_c_and_d.c\ line-editing/copy_cut_paste.c\ line-editing/ft_prompt.c\ line-editing/get_key.c\ -line-editing/heredoc.c\ line-editing/home_end.c\ line-editing/lib_line_editing/tool_line.c\ line-editing/lib_line_editing/tool_line_2.c\ diff --git a/42sh/includes/ft_readline.h b/42sh/includes/ft_readline.h index e2742ad1..06b7f449 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/14 15:14:57 by gwojda ### ########.fr */ +/* Updated: 2017/02/16 12:44:23 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -179,7 +179,7 @@ void ft_read_it(int input, size_t *pos, char **str); char *readline(char *); int ft_completion(int ret); -void ft_check_heredoc(char **str); +struct termios *ft_save_termios(int save); char *ft_strdupi_w(char const *s); diff --git a/42sh/src/builtin/builtin_env.c b/42sh/src/builtin/builtin_env.c index 1a8c71b3..67d0c2bb 100644 --- a/42sh/src/builtin/builtin_env.c +++ b/42sh/src/builtin/builtin_env.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:14:20 by jhalford #+# #+# */ -/* Updated: 2017/02/15 15:45:54 by gwojda ### ########.fr */ +/* Updated: 2017/02/16 12:40:08 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -31,6 +31,8 @@ void ft_sstr_freeone(char **sstr, int index) { char *tmp; + if (!sstr || !sstr[index]) + return ; tmp = sstr[index]; while (sstr[index]) { diff --git a/42sh/src/builtin/builtin_exit.c b/42sh/src/builtin/builtin_exit.c index 220886c9..42539ac2 100644 --- a/42sh/src/builtin/builtin_exit.c +++ b/42sh/src/builtin/builtin_exit.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* builtin_exit.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:28:41 by jhalford #+# #+# */ -/* Updated: 2017/02/02 15:04:48 by jhalford ### ########.fr */ +/* Updated: 2017/02/16 12:44:44 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -36,6 +36,7 @@ int builtin_exit(const char *path, char *const av[], char *const envp[]) /* status = ft_atoi(ft_getenv(data_singleton()->env, "?")); */ status = 0; } + ft_save_termios(-1); exit(status); return (0); } diff --git a/42sh/src/history/add_str_in_history.c b/42sh/src/history/add_str_in_history.c index 91574ece..a0b37c4a 100644 --- a/42sh/src/history/add_str_in_history.c +++ b/42sh/src/history/add_str_in_history.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/14 11:27:03 by gwojda #+# #+# */ -/* Updated: 2017/02/14 14:57:01 by gwojda ### ########.fr */ +/* Updated: 2017/02/16 12:37:35 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,13 +15,18 @@ void ft_add_in_history_file(char *str) { int fd; + char *home; + char *path; - fd = open(".42sh_history", - O_CREAT | O_WRONLY | O_APPEND, S_IWUSR | S_IRUSR); + if (!(home = ft_getenv(data_singleton()->env, "HOME"))) + return ; + path = ft_str3join(home, "/", ".42sh_history"); + fd = open(path, O_CREAT | O_WRONLY | O_APPEND, S_IWUSR | S_IRUSR); if (fd == -1) return ; write(fd, str, ft_strlen(str)); write(fd, "\n", 1); + free(path); close(fd); } diff --git a/42sh/src/history/history_parsing.c b/42sh/src/history/history_parsing.c index c96e94e8..d2ec5ae2 100644 --- a/42sh/src/history/history_parsing.c +++ b/42sh/src/history/history_parsing.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/25 11:39:47 by gwojda #+# #+# */ -/* Updated: 2017/02/14 15:15:16 by gwojda ### ########.fr */ +/* Updated: 2017/02/16 12:28:52 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -66,7 +66,6 @@ static void ft_history_parsing_2(void) data_singleton()->line.input = ft_read_stdin(); ft_putchar('\n'); data_singleton()->line.opt = data_singleton()->line.opt | ~HIST; - ft_check_heredoc(&data_singleton()->line.input); ft_history_parsing(); } diff --git a/42sh/src/line-editing/ft_prompt.c b/42sh/src/line-editing/ft_prompt.c index 264e9237..2302f512 100644 --- a/42sh/src/line-editing/ft_prompt.c +++ b/42sh/src/line-editing/ft_prompt.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:51:33 by gwojda #+# #+# */ -/* Updated: 2017/02/15 11:52:24 by gwojda ### ########.fr */ +/* Updated: 2017/02/16 12:38:58 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -65,19 +65,27 @@ static int ft_git_status(void) static int ft_currend_dir(void) { - int i; - int j; char **env; + char *pwd; + char *currend_dir; - 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_printf("%s ", env[i] + j + 1); - return (ft_strlen(env[i] + j + 1)); + if (!(pwd = ft_getenv(env, "PWD"))) + return (0); + if (ft_getenv(env, "HOME") && !ft_strcmp(pwd, ft_getenv(env, "HOME"))) + { + ft_printf("%c ", '~'); + return (1); + } + if (!(currend_dir = ft_strrchr(pwd, '/'))) + return (0); + if (!*(currend_dir + 1)) + { + ft_printf("%c ", '/'); + return (1); + } + ft_printf("%s ", currend_dir + 1); + return (ft_strlen(currend_dir + 1)); } void ft_prompt() @@ -94,8 +102,6 @@ void ft_prompt() ft_putstr("\x1b[38;5;361m"); ret += ft_currend_dir(); ret += ft_git_status(); - printf("\x1b[38;5;184m%C ", L'›'); - fflush(NULL); ft_putstr("\033[22;37m"); - data_singleton()->line.prompt_size = ret + 6; + data_singleton()->line.prompt_size = ret + 4; } diff --git a/42sh/src/line-editing/heredoc.c b/42sh/src/line-editing/heredoc.c deleted file mode 100644 index dac00a24..00000000 --- a/42sh/src/line-editing/heredoc.c +++ /dev/null @@ -1,109 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* heredoc.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: gwojda +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/24 15:52:34 by gwojda #+# #+# */ -/* Updated: 2017/02/05 12:21: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] == ' ' || str[j] == '\n')) - ++j; - while (str[j + k] && str[j + k] != ' ' && str[j + k] != '\n') - ++k; - return (ft_strndup(str + j, k)); -} - -static void ft_after_retline(char *str, int *i) -{ - while (str[*i] && str[*i] != '\n') - ++(*i); - if (str[*i] == '\n') - ++(*i); -} - -static int ft_is_keyword(char *str, char *end) -{ - int i; - int j; - - i = 0; - while (str[i]) - { - ft_after_retline(str, &i); - j = 0; - while (str[i + j] && str[i + j] != '\n') - ++j; - if (str[i] && ft_strncmp(str + i, end, j) == 0) - return (0); - } - return (1); -} - -static void ft_check_heredoc_2(char **str, char *end) -{ - char boolean; - char *tmp; - char *tmp2; - - boolean = 0; - while (!boolean) - { - ft_putstr("heredoc> "); - data_singleton()->line.prompt_size = 9; - tmp = *str; - *str = ft_strjoin(*str, "\n"); - free(tmp); - tmp = *str; - data_singleton()->line.input = NULL; - data_singleton()->line.pos = 0; - tmp2 = ft_read_stdin(); - if (!ft_strcmp(end, tmp2)) - boolean = 1; - *str = ft_strjoin(tmp, tmp2); - free(tmp); - free(tmp2); - 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); - if (ft_is_keyword(*str, end)) - ft_check_heredoc_2(str, end); - free(end); - } - else - return ; - } - ++i; - } - if (!end) - return ; -} diff --git a/42sh/src/line-editing/readline.c b/42sh/src/line-editing/readline.c index a37b90fa..5d9795ec 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/14 15:17:33 by gwojda ### ########.fr */ +/* Updated: 2017/02/16 12:45:32 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,8 +28,13 @@ void ft_init_history(void) { int fd; char *str; + char *home; + char *path; - fd = open(".42sh_history", O_RDONLY); + if (!(home = ft_getenv(data_singleton()->env, "HOME"))) + return ; + path = ft_str3join(home, "/", ".42sh_history"); + fd = open(path, O_RDONLY); if (fd == -1) return ; while (get_next_line(fd, &str) > 0) @@ -38,6 +43,7 @@ void ft_init_history(void) ft_create_history_list(str)); free(str); } + free(path); free(str); close(fd); } @@ -46,7 +52,12 @@ struct termios *ft_save_termios(int save) { static struct termios *term_save = NULL; - if (save) + if (save < 0) + { + free(term_save); + return (NULL); + } + if (save > 0) { term_save = (struct termios *)malloc(sizeof(struct termios)); tcgetattr(0, term_save); @@ -73,9 +84,9 @@ void readline_init(char *prompt) { ft_init_line(); ft_init_history(); + ft_save_termios(1); beg = 1; } - ft_save_termios(1); ft_init_termios(); if (STR) ft_strdel(&STR); From ec9f2c91f32c744c8aaf8070ab9f7422ce9d3709 Mon Sep 17 00:00:00 2001 From: gwojda Date: Thu, 16 Feb 2017 14:23:04 +0100 Subject: [PATCH 67/98] fixe bugs sur la completion --- 42sh/src/line-editing/completion.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/42sh/src/line-editing/completion.c b/42sh/src/line-editing/completion.c index 708f3b2c..0e09cc3f 100644 --- a/42sh/src/line-editing/completion.c +++ b/42sh/src/line-editing/completion.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 14:15:55 by gwojda #+# #+# */ -/* Updated: 2017/02/05 16:48:20 by gwojda ### ########.fr */ +/* Updated: 2017/02/16 14:22:44 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,13 +15,17 @@ int ft_completion(int ret) { size_t tmp; + size_t pos_tmp; + int beg_len; char boolean; boolean = 0; + beg_len = ft_strlen(data_singleton()->line.input); if (((ret != TOUCHE_TAB && ret != 10) || (ret == 10)) && !(data_singleton()->comp)) return (0); tmp = POS; + pos_tmp = POS; if (data_singleton()->comp || ret == TOUCHE_TAB) boolean = completion(ret); if (boolean || ret == 10) @@ -29,7 +33,9 @@ int ft_completion(int ret) ft_puttermcaps("cd"); ft_current_str(STR, tmp); ft_get_next_str(STR, &tmp); - POS = tmp; + ft_putnc('\b', tmp - + (pos_tmp + ft_strlen(data_singleton()->line.input) - beg_len)); + POS = pos_tmp + ft_strlen(data_singleton()->line.input) - beg_len; } return (1); } From fbecb59a142ba1a46ed30563580fe1f1e7852f1c Mon Sep 17 00:00:00 2001 From: M600 Date: Wed, 15 Feb 2017 21:01:23 +0100 Subject: [PATCH 68/98] Reworked colors and fix a few bugs. Still missing advanced research --- 42sh/Makefile | 7 ++-- 42sh/includes/completion.h | 6 ++- 42sh/src/completion/c_files.c | 30 +++++++++++++- 42sh/src/completion/c_init.c | 3 +- 42sh/src/completion/c_matching.c | 10 ++++- 42sh/src/completion/c_output.c | 3 +- 42sh/src/completion/c_printer.c | 30 ++++++++------ 42sh/src/completion/c_rematch.c | 71 ++++++++++++++++++++++++++++++++ 42sh/src/completion/completion.c | 34 +++------------ 9 files changed, 145 insertions(+), 49 deletions(-) create mode 100644 42sh/src/completion/c_rematch.c diff --git a/42sh/Makefile b/42sh/Makefile index 2c2e3fbe..1b558a0a 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,7 +6,7 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/07 20:11:22 by jhalford ### ########.fr # +# Updated: 2017/02/15 20:00:50 by alao ### ########.fr # # # # **************************************************************************** # @@ -52,6 +52,7 @@ completion/c_output.c\ completion/c_parser.c\ completion/c_pathsolver.c\ completion/c_printer.c\ +completion/c_rematch.c\ completion/c_sizing.c\ completion/c_terminal.c\ completion/completion.c\ @@ -229,7 +230,7 @@ NB = $(words $(SRC_BASE)) INDEX = 0 all : - @make -j $(NAME) + @make $(NAME) $(NAME): $(LIBFT_LIB) $(OBJ_DIR) $(OBJS) @$(CC) $(FLAGS) $(D_FLAGS) \ @@ -241,7 +242,7 @@ $(NAME): $(LIBFT_LIB) $(OBJ_DIR) $(OBJS) @printf "\r\e[48;5;15;38;5;25m✅ MAKE $(NAME)\e[0m\e[K\n" $(LIBFT_LIB): - @make -j -C $(LIBFT_DIR) + @make -C $(LIBFT_DIR) $(OBJ_DIR) : @mkdir -p $(OBJ_DIR) diff --git a/42sh/includes/completion.h b/42sh/includes/completion.h index 86e5e57f..ca29ee0d 100644 --- a/42sh/includes/completion.h +++ b/42sh/includes/completion.h @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/02/18 11:13:04 by alao #+# #+# */ -/* Updated: 2017/02/03 15:47:35 by alao ### ########.fr */ +/* Updated: 2017/02/15 20:00:32 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -52,6 +52,8 @@ typedef struct s_clst ** c_pline : Number of item per line when printing. ** c_line : Number of line required to move to terminal up. ** win_x : Size of the window in length. +** key : The keypressed lastly. +** isfolder : If the match is a folder. boolean. ** lst : List of the item corresponding to the completion. */ @@ -71,6 +73,7 @@ typedef struct s_comp int c_line; int win_x; int key; + int isfolder; t_clst *lst; } t_comp; @@ -92,6 +95,7 @@ int c_sizing(t_comp *c); int c_updater(t_comp *c, char *select); int c_gtfo(t_comp *c, long int keypress); +int c_rematch(t_comp *c, long int keypress); /* ** Terminal related function (moving and printing the list) diff --git a/42sh/src/completion/c_files.c b/42sh/src/completion/c_files.c index 3eb56993..7fbbd5c4 100644 --- a/42sh/src/completion/c_files.c +++ b/42sh/src/completion/c_files.c @@ -6,12 +6,38 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:31:21 by alao #+# #+# */ -/* Updated: 2017/02/03 17:32:20 by jhalford ### ########.fr */ +/* Updated: 2017/02/15 19:33:11 by alao ### ########.fr */ /* */ /* ************************************************************************** */ #include "completion.h" +/* +** If the parsing for local file fail. The function is called to check if the +** match is actually a folder. If so, the command is updated with a trailing +** slash (/). +*/ + +static int c_exclusion_folder(t_comp *c) +{ + DIR *rep; + char *tmp; + + tmp = ft_strjoin(c->cpath, c->match); + if ((rep = opendir(tmp)) && (!closedir(rep))) + { + tmp ? ft_memdel((void *)&tmp) : (0); + tmp = ft_strjoin(c->rcmd, "/"); + if (c->trail) + data_singleton()->line.input = ft_strjoin(tmp, c->trail); + else + data_singleton()->line.input = ft_strdup(tmp); + data_singleton()->line.pos = data_singleton()->line.pos + 1; + c->isfolder = 1; + } + tmp ? ft_memdel((void *)&tmp) : (0); + return (0); +} /* ** Clear the binary from c->rcmd ans save the result in c->match. Return the ** path part of it if exist or NULL. @@ -56,5 +82,7 @@ int c_seek_files(t_data *s, t_comp *c) c->cpath = path_solver(c, path, NULL); path ? ft_memdel((void *)&path) : (0); c_parser(c, c->cpath, c->match); + if (c->lst == NULL) + c_exclusion_folder(c); return (0); } diff --git a/42sh/src/completion/c_init.c b/42sh/src/completion/c_init.c index 0b045bff..a61129c3 100644 --- a/42sh/src/completion/c_init.c +++ b/42sh/src/completion/c_init.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 11:21:16 by alao #+# #+# */ -/* Updated: 2017/02/03 17:32:24 by jhalford ### ########.fr */ +/* Updated: 2017/02/15 19:05:04 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -61,6 +61,7 @@ void c_init(t_data *s, long int input) s->comp->home = ft_strdup(ft_getenv(s->env, "HOME")); s->comp->pwd = ft_strdup(ft_getenv(s->env, "PWD")); s->comp->key = input; + s->comp->isfolder = 0; s->comp->prompt = s->line.prompt_size; c_matching(s, s->comp); } diff --git a/42sh/src/completion/c_matching.c b/42sh/src/completion/c_matching.c index 72bcc01d..d805e45c 100644 --- a/42sh/src/completion/c_matching.c +++ b/42sh/src/completion/c_matching.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/15 13:27:14 by alao #+# #+# */ -/* Updated: 2017/02/03 13:31:36 by alao ### ########.fr */ +/* Updated: 2017/02/15 19:06:32 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,13 @@ int c_matching(t_data *s, t_comp *c) { - if (!(ft_strchr(c->rcmd, ' '))) + if (c->rcmd[0] == '.' || c->rcmd[0] == '/') + { + c->rcmd[0] == '.' ? c->cpath = path_solver(c, "./", NULL) : 0; + c->rcmd[0] == '/' ? c->cpath = path_solver(c, "/", NULL) : 0; + c_parser(c, c->cpath, c->match); + } + else if (!(ft_strchr(c->rcmd, ' '))) c_seek_binary(s, c); else c_seek_files(s, c); diff --git a/42sh/src/completion/c_output.c b/42sh/src/completion/c_output.c index bd37994f..fe04ae4c 100644 --- a/42sh/src/completion/c_output.c +++ b/42sh/src/completion/c_output.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:10:38 by alao #+# #+# */ -/* Updated: 2017/02/03 17:32:36 by jhalford ### ########.fr */ +/* Updated: 2017/02/15 21:00:22 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -53,6 +53,7 @@ int c_gtfo(t_comp *c, long int keypress) if (keypress != 10) { +// c_rematch(c, keypress); c_clear(data_singleton()); return (1); } diff --git a/42sh/src/completion/c_printer.c b/42sh/src/completion/c_printer.c index 2a529fc6..694fca7b 100644 --- a/42sh/src/completion/c_printer.c +++ b/42sh/src/completion/c_printer.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 12:55:39 by alao #+# #+# */ -/* Updated: 2017/02/03 17:35:15 by jhalford ### ########.fr */ +/* Updated: 2017/02/15 19:28:43 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,21 +19,29 @@ ** - (10) Symlink: Cyan "\e[96m" */ -static void c_printer_node(t_clst *lst) +static void c_printer_node(t_clst *lst, int c_sx) { - lst->cursor ? ft_putstr(tgetstr("us", NULL)) : (0); - lst->cursor ? (ft_putstr_fd("\033[31m", 2)) : (0); - lst->type == 4 ? ft_putstr_fd("\e[1;31m", 2) : (0); - lst->type == 10 ? ft_putstr_fd("\e[1;96m", 2) : (0); + int i; + + i = lst->len; + if (lst->cursor) + ft_putstr_fd("\e[7m", 2); + else + { + lst->type == 4 ? ft_putstr_fd("\e[1;31m", 2) : (0); + lst->type == 10 ? ft_putstr_fd("\e[1;96m", 2) : (0); + } ft_putstr_fd(lst->name, 2); - ft_putstr_fd("\033[00m", 2); if (lst->type == 4) ft_putstr_fd("/", 2); else if (lst->type == 10) ft_putstr_fd("@", 2); else ft_putstr_fd(" ", 2); - lst->cursor ? ft_putstr(tgetstr("ue", NULL)) : (0); + while (i++ < (c_sx)) + ft_putstr(" "); + ft_putstr_fd("\e[00m", 2); + ft_putstr(" "); } /* @@ -47,7 +55,7 @@ static int c_printer_line(t_comp *c, t_clst *lst, int loop, int i) t_clst *ptr; ptr = lst->next; - c_printer_node(lst); + c_printer_node(lst, c->c_sx); while (loop) { i = 1; @@ -60,9 +68,7 @@ static int c_printer_line(t_comp *c, t_clst *lst, int loop, int i) if (ptr != c->lst) { i = lst->len; - while (i++ < (c->c_sx + 1)) - ft_putstr(" "); - c_printer_node(ptr); + c_printer_node(ptr, c->c_sx); lst = ptr; ptr = ptr->next; } diff --git a/42sh/src/completion/c_rematch.c b/42sh/src/completion/c_rematch.c new file mode 100644 index 00000000..222e0e62 --- /dev/null +++ b/42sh/src/completion/c_rematch.c @@ -0,0 +1,71 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_rematch.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/15 12:03:30 by alao #+# #+# */ +/* Updated: 2017/02/15 20:17:55 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +static int c_refresh_match(t_comp *c, long int keypress) +{ + DG("Refresh match"); + char *tmp; + char kpconv[2]; + + kpconv[0] = keypress; + kpconv[1] = '\0'; + tmp = c->match ? ft_strjoin(c->match, kpconv) : ft_strdup(kpconv); + c->match ? ft_memdel((void *)&c->match) : (0); + c->match = ft_strdup(tmp); + tmp ? ft_memdel((void *)&tmp) : (0); + (void)c; + return (0); +} + +static int c_refresh_list(t_comp *c) +{ + DG("Refresh list"); + t_clst *ptr; + t_clst *ptr_bk; + + ptr = c->lst; + c->lst->prev->next = NULL; + c->lst->prev = NULL; + while (ptr->next) + { + DG("Refresh list loop on [%s]", ptr->name); + if (ft_strncmp(c->match, ptr->name, ft_strlen(c->match)) != 0) + { + if (ptr == c->lst) + { + c->lst = ptr->next; + c->lst->prev = NULL; + } + ptr->prev->next = ptr->next; + ptr->next->prev = ptr->prev; + ptr_bk = ptr->next; + ptr->name ? ft_memdel((void *)&ptr->name) : (0); + ptr ? ft_memdel((void *)&ptr) : (0); + ptr = ptr_bk; + } + ptr = ptr->next; + } + DG("Refresh list end"); + return (0); +} + +int c_rematch(t_comp *c, long int keypress) +{ + if (ft_isascii(keypress)) + { + c_refresh_match(c, keypress); + c_refresh_list(c); + } + return (0); +} diff --git a/42sh/src/completion/completion.c b/42sh/src/completion/completion.c index e8d70302..2768f615 100644 --- a/42sh/src/completion/completion.c +++ b/42sh/src/completion/completion.c @@ -6,38 +6,12 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/09/20 14:50:33 by alao #+# #+# */ -/* Updated: 2017/02/03 17:33:41 by jhalford ### ########.fr */ +/* Updated: 2017/02/15 19:30:18 by alao ### ########.fr */ /* */ /* ************************************************************************** */ #include "completion.h" -/* -** DEBUG FUNCTION -*/ - -int test(t_comp *c) -{ - t_clst *tmp; - int i; - - i = 1; - if (!(c->lst)) - { - return (0); - } - if (c->lst->prev != c->lst) - { - tmp = c->lst->next; - while (tmp != c->lst) - { - i++; - tmp = tmp->next; - } - } - return (0); -} - /* ** Function to select the next item in the list if it has already been Created ** and if the keypressed is tab. @@ -64,6 +38,11 @@ static void c_next_item(t_comp *c) static int c_dispatcher(t_data *s) { + if (s->comp && s->comp->lst == NULL && s->comp->isfolder) + { + c_clear(s); + return(1); + } if (s->comp && s->comp->lst == NULL) { c_clear(s); @@ -119,6 +98,5 @@ int completion(long int keypress) else return (c_gtfo(s->comp, keypress)); } - test(s->comp); return (c_dispatcher(s)); } From 2abdf8c92527d5bc2bf38ebfca2d34c176b29b64 Mon Sep 17 00:00:00 2001 From: M600 Date: Thu, 16 Feb 2017 12:22:24 +0100 Subject: [PATCH 69/98] Advanced research update early version. Fix a few bugs. --- 42sh/includes/completion.h | 4 +- 42sh/src/completion/c_binary.c | 7 ++-- 42sh/src/completion/c_clear.c | 6 ++- 42sh/src/completion/c_files.c | 14 ++++--- 42sh/src/completion/c_output.c | 60 ++++++++++++++++++++++-------- 42sh/src/completion/c_pathsolver.c | 16 +++++--- 42sh/src/completion/c_printer.c | 19 +++++----- 42sh/src/completion/c_rematch.c | 58 ++++++++++++----------------- 42sh/src/completion/c_terminal.c | 33 +++++++++++++--- 42sh/src/completion/completion.c | 10 +++-- 10 files changed, 143 insertions(+), 84 deletions(-) diff --git a/42sh/includes/completion.h b/42sh/includes/completion.h index ca29ee0d..5848e590 100644 --- a/42sh/includes/completion.h +++ b/42sh/includes/completion.h @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/02/18 11:13:04 by alao #+# #+# */ -/* Updated: 2017/02/15 20:00:32 by alao ### ########.fr */ +/* Updated: 2017/02/16 01:19:17 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -103,6 +103,7 @@ int c_rematch(t_comp *c, long int keypress); void c_term_mv_down(t_comp *c); void c_term_mv_back(t_comp *c); +void c_term_clear(t_comp *c); void c_printer(t_comp *c); /* @@ -110,6 +111,7 @@ void c_printer(t_comp *c); */ int c_clear(t_data *s); +int c_clear_lst(t_comp *c); char *path_solver(t_comp *c, char *cmd, char *cwd); int test(t_comp *c); diff --git a/42sh/src/completion/c_binary.c b/42sh/src/completion/c_binary.c index 555488a7..4d9b05b3 100644 --- a/42sh/src/completion/c_binary.c +++ b/42sh/src/completion/c_binary.c @@ -6,15 +6,16 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:30:57 by alao #+# #+# */ -/* Updated: 2017/02/03 17:31:46 by jhalford ### ########.fr */ +/* Updated: 2017/02/16 12:02:41 by alao ### ########.fr */ /* */ /* ************************************************************************** */ #include "completion.h" /* -** Retrieve the path from the env and cycle through it to find the matching -** element with the c_parser() function +** Retrieve the path from the env and create a char ** from the PATH pattern. +** The function will cycle through it to find the matching element using the +** c_parser() function */ int c_seek_binary(t_data *s, t_comp *c) diff --git a/42sh/src/completion/c_clear.c b/42sh/src/completion/c_clear.c index 57141311..31c25201 100644 --- a/42sh/src/completion/c_clear.c +++ b/42sh/src/completion/c_clear.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 11:37:43 by alao #+# #+# */ -/* Updated: 2017/02/03 17:32:05 by jhalford ### ########.fr */ +/* Updated: 2017/02/16 11:37:43 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,7 +16,7 @@ ** Clear the list from the memory */ -static void c_clear_lst(t_comp *c) +int c_clear_lst(t_comp *c) { t_clst *c_lst; t_clst *p_lst; @@ -35,6 +35,7 @@ static void c_clear_lst(t_comp *c) } c_lst->name ? ft_memdel((void *)&c_lst->name) : (0); c_lst ? ft_memdel((void *)&c_lst) : (0); + return (0); } /* @@ -55,6 +56,7 @@ int c_clear(t_data *s) ptr->trail ? ft_memdel((void *)&ptr->trail) : (0); if (ptr->lst && ptr->lst->name) c_clear_lst(ptr); + s->comp ? ft_memdel((void *)&s->comp) : (0); s->comp = NULL; return (0); } diff --git a/42sh/src/completion/c_files.c b/42sh/src/completion/c_files.c index 7fbbd5c4..bf548265 100644 --- a/42sh/src/completion/c_files.c +++ b/42sh/src/completion/c_files.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:31:21 by alao #+# #+# */ -/* Updated: 2017/02/15 19:33:11 by alao ### ########.fr */ +/* Updated: 2017/02/16 12:04:10 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,6 +16,7 @@ ** If the parsing for local file fail. The function is called to check if the ** match is actually a folder. If so, the command is updated with a trailing ** slash (/). +** Exemple: cd folder[tab] to cd folder/ */ static int c_exclusion_folder(t_comp *c) @@ -62,7 +63,7 @@ static char *c_slicer(t_comp *c) while (i > 0 && tmp[i] && tmp[i] != '/') i--; tmp[i] == '/' ? i++ : (0); - rt = ft_strsub(tmp, 0, i); + rt = (i == (int)ft_strlen(tmp) - 1) ? NULL : ft_strsub(tmp, 0, i); if (i <= (int)ft_strlen(tmp) - i + 1) c->match = ft_strsub(tmp, i, ft_strlen(tmp) - i); tmp ? ft_memdel((void *)&tmp) : (0); @@ -78,9 +79,12 @@ int c_seek_files(t_data *s, t_comp *c) char *path; (void)s; - path = c_slicer(c); - c->cpath = path_solver(c, path, NULL); - path ? ft_memdel((void *)&path) : (0); + if (c->cpath == NULL) + { + path = c_slicer(c); + c->cpath = path_solver(c, path, NULL); + path ? ft_memdel((void *)&path) : (0); + } c_parser(c, c->cpath, c->match); if (c->lst == NULL) c_exclusion_folder(c); diff --git a/42sh/src/completion/c_output.c b/42sh/src/completion/c_output.c index fe04ae4c..b4df647a 100644 --- a/42sh/src/completion/c_output.c +++ b/42sh/src/completion/c_output.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:10:38 by alao #+# #+# */ -/* Updated: 2017/02/15 21:00:22 by alao ### ########.fr */ +/* Updated: 2017/02/16 12:10:24 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,48 +17,76 @@ ** position of the cursor in data->line.pos. If the autocompletion occur in ** the middle of the command, it will join the trailing part of it. Therefor ** recreating the commands completed. -** Once that done, it will clear all the memory related and return zero. +** Once that done, it will clear all the memory related and return one for the +** line edition module which will then trigger an update on the command line. */ -int c_updater(t_comp *c, char *select) +int c_updater(t_comp *c, char *select) { char *tmp; char *rt; - int new_pos; tmp = NULL; rt = NULL; - new_pos = c->ircmd + (ft_strlen(select) - ft_strlen(c->match)) + 1; - tmp = ft_strsub(c->rcmd, 0, ft_strlen(c->rcmd) - ft_strlen(c->match)); + if (c->match) + tmp = ft_strsub(c->rcmd, 0, ft_strlen(c->rcmd) - ft_strlen(c->match)); + else + tmp = ft_strdup(c->rcmd); rt = ft_strjoin(tmp, select); tmp ? ft_memdel((void *)&tmp) : (0); if (c->trail) data_singleton()->line.input = ft_strjoin(rt, c->trail); else data_singleton()->line.input = ft_strdup(rt); - data_singleton()->line.pos = new_pos; + data_singleton()->line.pos = ft_strlen(c->rcmd) + ft_strlen(select); rt ? ft_memdel((void *)&rt) : (0); c_clear(data_singleton()); return (1); } /* -** Placeholder to clear the memory if an other key than tab is pressed to know -** if the command should be updated or not before clearing the memory. +** Keypress handling function. +** +** The function will determine the right behavior depending on the key pressed +** If a delete key is called, the function will clear all the line and delete +** the module memory. +** if a validation key is called, the function will search for the selected +** node and call c_updater(). +** If none of the above behavior is right, the function will call for +** c_rematch() which will recreate the list by adding the keypressed to the +** c->match variable. +** +** RETURN VALUE: +** If the function doesn't require an update of the command line, it will +** return 0. Else it will return 1. +** +** Keypress values that cancel the module: +** 27: Escape +** 127: Backspace +** 2117294875: Delete +** +** Keypress values that validate the choice: +** 10: Enter +** 32: Space */ -int c_gtfo(t_comp *c, long int keypress) +int c_gtfo(t_comp *c, long int keypress) { t_clst *ptr; - if (keypress != 10) + if (keypress == 27 || keypress == 127 || keypress == 2117294875) { -// c_rematch(c, keypress); + c_term_clear(c); c_clear(data_singleton()); + return (0); + } + if (keypress == 10 || keypress == 32) + { + ptr = c->lst; + while (!ptr->cursor) + ptr = ptr->next; + c_updater(c, ptr->name); return (1); } - ptr = c->lst; - while (!ptr->cursor) - ptr = ptr->next; - return (c_updater(c, ptr->name)); + return ((c_rematch(c, keypress)) ? (0) : (1)); } diff --git a/42sh/src/completion/c_pathsolver.c b/42sh/src/completion/c_pathsolver.c index 140dae2d..22c5573b 100644 --- a/42sh/src/completion/c_pathsolver.c +++ b/42sh/src/completion/c_pathsolver.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/25 18:21:54 by alao #+# #+# */ -/* Updated: 2017/02/03 17:32:50 by jhalford ### ########.fr */ +/* Updated: 2017/02/16 12:18:45 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -55,6 +55,10 @@ char *ft_sstrtostr(char **s, char *sep) return (tmp); } +/* +** Solve the tilde pattern in the path +*/ + static char *tilde(t_comp *c, char *cmd) { char *t_home; @@ -75,8 +79,8 @@ static char *tilde(t_comp *c, char *cmd) } /* -** BUILTINS: Advanced dots purge if the first is not enough. Remove a /path/ -** from the raw command if .. is found. Delete the . . +** Advanced dots purge if the first is not enough. Remove a /path/ from +** the raw command if .. is found. Delete the . . */ static char *dots_purge(char **scwd, char **scmd, int i) @@ -109,7 +113,7 @@ static char *dots_purge(char **scwd, char **scmd, int i) } /* -** BUILTINS: Solve the dots pattern in the path +** Solve the dots pattern in the path */ static char *dots(char *cmd, char *cwd, int i) @@ -141,7 +145,7 @@ static char *dots(char *cmd, char *cwd, int i) } /* -** BUILTINS: Determine the type of commands and redistribute it +** Path solving function. Turn any abstract path to the full version. */ char *path_solver(t_comp *c, char *cmd, char *cwd) @@ -152,7 +156,7 @@ char *path_solver(t_comp *c, char *cmd, char *cwd) dir = NULL; tmp = NULL; - ncmd = cmd ? ft_strtrim(cmd) : NULL; + ncmd = (cmd != NULL) ? ft_strtrim(cmd) : NULL; cwd = getcwd(cwd, 512); !cwd ? cwd = ft_strdup(c->pwd) : (0); if (!ncmd || (*ncmd != '.' && *ncmd != '~' && *ncmd != '/')) diff --git a/42sh/src/completion/c_printer.c b/42sh/src/completion/c_printer.c index 694fca7b..6dc92063 100644 --- a/42sh/src/completion/c_printer.c +++ b/42sh/src/completion/c_printer.c @@ -6,17 +6,18 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 12:55:39 by alao #+# #+# */ -/* Updated: 2017/02/15 19:28:43 by alao ### ########.fr */ +/* Updated: 2017/02/16 12:20:20 by alao ### ########.fr */ /* */ /* ************************************************************************** */ #include "completion.h" /* -** AUTOCOMPLETION: Print the name with or without an underline and colored upon -** file type as follow: -** - (4) Folder: Red "\e[1;31m" -** - (10) Symlink: Cyan "\e[96m" +** Print the name with or without an underline and colored upon file type +** as follow: +** - (4) Folder: Red "\e[1;31m" +** - (10) Symlink: Cyan "\e[96m" +** If the element is under selection, the video mode is inverted instead. */ static void c_printer_node(t_clst *lst, int c_sx) @@ -45,9 +46,9 @@ static void c_printer_node(t_clst *lst, int c_sx) } /* -** AUTOCOMPLETION: Cycle through the line to print on the same line the -** number of time to fill it PER LINE and add 2 space after the print to -** accomodate the trailing / for folder and a space in between. +** Cycle through the line to print on the same line the number of time to +** fill it PER LINE and add 2 space after the print to accomodate the +** trailing / for folder and a space in between. */ static int c_printer_line(t_comp *c, t_clst *lst, int loop, int i) @@ -78,7 +79,7 @@ static int c_printer_line(t_comp *c, t_clst *lst, int loop, int i) } /* -** AUTOCOMPLETION: Control the number of time it cycle for LINE +** Control the number of time it cycle for LINE */ void c_printer(t_comp *c) diff --git a/42sh/src/completion/c_rematch.c b/42sh/src/completion/c_rematch.c index 222e0e62..1b27819f 100644 --- a/42sh/src/completion/c_rematch.c +++ b/42sh/src/completion/c_rematch.c @@ -6,15 +6,18 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/15 12:03:30 by alao #+# #+# */ -/* Updated: 2017/02/15 20:17:55 by alao ### ########.fr */ +/* Updated: 2017/02/16 12:15:28 by alao ### ########.fr */ /* */ /* ************************************************************************** */ #include "completion.h" +/* +** Recreate a c->match value by adding the new key pressed to it. +*/ + static int c_refresh_match(t_comp *c, long int keypress) { - DG("Refresh match"); char *tmp; char kpconv[2]; @@ -28,44 +31,31 @@ static int c_refresh_match(t_comp *c, long int keypress) return (0); } -static int c_refresh_list(t_comp *c) -{ - DG("Refresh list"); - t_clst *ptr; - t_clst *ptr_bk; - - ptr = c->lst; - c->lst->prev->next = NULL; - c->lst->prev = NULL; - while (ptr->next) - { - DG("Refresh list loop on [%s]", ptr->name); - if (ft_strncmp(c->match, ptr->name, ft_strlen(c->match)) != 0) - { - if (ptr == c->lst) - { - c->lst = ptr->next; - c->lst->prev = NULL; - } - ptr->prev->next = ptr->next; - ptr->next->prev = ptr->prev; - ptr_bk = ptr->next; - ptr->name ? ft_memdel((void *)&ptr->name) : (0); - ptr ? ft_memdel((void *)&ptr) : (0); - ptr = ptr_bk; - } - ptr = ptr->next; - } - DG("Refresh list end"); - return (0); -} +/* +** The function is called when the module already exist and a foreign key is +** pressed (like a new letter). If the input key is on the ascii table, the +** previous display of the list is cleared and a new c->match values is +** created. The previous list is then cleared followed by a call to +** c_seek_files() function which will try to recreate a list. If so, the sizing +** is updated and the function return 1. If the research for a new listing fail +** the function return 0 which will tell the next function to cancel the update +** and clear the module memory. +*/ int c_rematch(t_comp *c, long int keypress) { if (ft_isascii(keypress)) { + c_term_clear(c); c_refresh_match(c, keypress); - c_refresh_list(c); + c_clear_lst(c); + c->lst = NULL; + c_seek_files(data_singleton(), c); + if (c->lst) + { + c_sizing(c); + return (1); + } } return (0); } diff --git a/42sh/src/completion/c_terminal.c b/42sh/src/completion/c_terminal.c index 42245c97..c98efe70 100644 --- a/42sh/src/completion/c_terminal.c +++ b/42sh/src/completion/c_terminal.c @@ -6,15 +6,37 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/11 10:44:40 by alao #+# #+# */ -/* Updated: 2017/02/03 17:33:08 by jhalford ### ########.fr */ +/* Updated: 2017/02/16 12:16:30 by alao ### ########.fr */ /* */ /* ************************************************************************** */ #include "completion.h" /* -** AUTOCOMPLETION: Move the terminal up by the number of line needed and -** move it back up to the original position +** Clear the previous list from the screen and restore the same position. +*/ + +void c_term_clear(t_comp *c) +{ + int i; + int lcmd; + + ft_putstr(tgetstr("do", NULL)); + ft_putstr(tgetstr("cd", NULL)); + ft_putstr(tgetstr("up", NULL)); + i = 0; + lcmd = 0; + c->rcmd ? lcmd += (int)ft_strlen(c->rcmd) + c->prompt + 1 : 0; + while (i < lcmd) + { + ft_putstr(tgetstr("nd", NULL)); + i++; + } +} + +/* +** Move the terminal up by the number of line needed and move it back up to +** the original position. */ void c_term_mv_back(t_comp *c) @@ -40,8 +62,8 @@ void c_term_mv_back(t_comp *c) } /* -** AUTOCOMPLETION: Move the terminal down by the number of line needed and -** move it back up to the first line under the prompt +** Move the terminal down by the number of line needed and move it back up to +** the first line under the prompt */ void c_term_mv_down(t_comp *c) @@ -52,6 +74,7 @@ void c_term_mv_down(t_comp *c) while (i < c->c_line) { ft_putstr(tgetstr("do", NULL)); + ft_putstr(tgetstr("cd", NULL)); i++; } i = 0; diff --git a/42sh/src/completion/completion.c b/42sh/src/completion/completion.c index 2768f615..595ee337 100644 --- a/42sh/src/completion/completion.c +++ b/42sh/src/completion/completion.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/09/20 14:50:33 by alao #+# #+# */ -/* Updated: 2017/02/15 19:30:18 by alao ### ########.fr */ +/* Updated: 2017/02/16 11:47:59 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -41,11 +41,12 @@ static int c_dispatcher(t_data *s) if (s->comp && s->comp->lst == NULL && s->comp->isfolder) { c_clear(s); - return(1); + return (1); } if (s->comp && s->comp->lst == NULL) { c_clear(s); + return (1); } else if (s->comp && s->comp->lst == s->comp->lst->next) return (c_updater(s->comp, s->comp->lst->name)); @@ -96,7 +97,10 @@ int completion(long int keypress) if (keypress == TOUCHE_TAB) c_next_item(s->comp); else - return (c_gtfo(s->comp, keypress)); + { + if (c_gtfo(s->comp, keypress)) + return (1); + } } return (c_dispatcher(s)); } From b15e89e4fcb76dcadaace5a63cbd252917c4e22f Mon Sep 17 00:00:00 2001 From: M600 Date: Thu, 16 Feb 2017 15:19:02 +0100 Subject: [PATCH 70/98] Fix rematching and one leak --- 42sh/src/completion/c_binary.c | 2 +- 42sh/src/completion/c_matching.c | 5 ++++- 42sh/src/completion/c_output.c | 3 ++- 42sh/src/completion/c_rematch.c | 15 +++++++-------- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/42sh/src/completion/c_binary.c b/42sh/src/completion/c_binary.c index 4d9b05b3..4bbc824d 100644 --- a/42sh/src/completion/c_binary.c +++ b/42sh/src/completion/c_binary.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:30:57 by alao #+# #+# */ -/* Updated: 2017/02/16 12:02:41 by alao ### ########.fr */ +/* Updated: 2017/02/16 15:18:14 by alao ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/completion/c_matching.c b/42sh/src/completion/c_matching.c index d805e45c..7b267ac7 100644 --- a/42sh/src/completion/c_matching.c +++ b/42sh/src/completion/c_matching.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/15 13:27:14 by alao #+# #+# */ -/* Updated: 2017/02/15 19:06:32 by alao ### ########.fr */ +/* Updated: 2017/02/16 15:16:05 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -32,6 +32,9 @@ int c_matching(t_data *s, t_comp *c) else c_seek_files(s, c); if (c->lst) + { c_sizing(c); + return (1); + } return (0); } diff --git a/42sh/src/completion/c_output.c b/42sh/src/completion/c_output.c index b4df647a..72f36ec0 100644 --- a/42sh/src/completion/c_output.c +++ b/42sh/src/completion/c_output.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:10:38 by alao #+# #+# */ -/* Updated: 2017/02/16 12:10:24 by alao ### ########.fr */ +/* Updated: 2017/02/16 15:16:10 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -34,6 +34,7 @@ int c_updater(t_comp *c, char *select) tmp = ft_strdup(c->rcmd); rt = ft_strjoin(tmp, select); tmp ? ft_memdel((void *)&tmp) : (0); + data_singleton()->line.input ? ft_memdel((void *)&data_singleton()->line.input) : (0); if (c->trail) data_singleton()->line.input = ft_strjoin(rt, c->trail); else diff --git a/42sh/src/completion/c_rematch.c b/42sh/src/completion/c_rematch.c index 1b27819f..fcb4c121 100644 --- a/42sh/src/completion/c_rematch.c +++ b/42sh/src/completion/c_rematch.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/15 12:03:30 by alao #+# #+# */ -/* Updated: 2017/02/16 12:15:28 by alao ### ########.fr */ +/* Updated: 2017/02/16 15:17:52 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,13 +21,16 @@ static int c_refresh_match(t_comp *c, long int keypress) char *tmp; char kpconv[2]; - kpconv[0] = keypress; + kpconv[0] = (char)keypress; kpconv[1] = '\0'; tmp = c->match ? ft_strjoin(c->match, kpconv) : ft_strdup(kpconv); c->match ? ft_memdel((void *)&c->match) : (0); c->match = ft_strdup(tmp); tmp ? ft_memdel((void *)&tmp) : (0); - (void)c; + tmp = ft_strjoin(c->rcmd, kpconv); + c->rcmd ? ft_memdel((void *)&c->rcmd) : (0); + c->rcmd = ft_strdup(tmp); + tmp ? ft_memdel((void *)&tmp) : (0); return (0); } @@ -50,12 +53,8 @@ int c_rematch(t_comp *c, long int keypress) c_refresh_match(c, keypress); c_clear_lst(c); c->lst = NULL; - c_seek_files(data_singleton(), c); - if (c->lst) - { - c_sizing(c); + if (c_matching(data_singleton(), c)) return (1); - } } return (0); } From 7f7f5e8084e67b4c3885b2da3d341fd0025a5932 Mon Sep 17 00:00:00 2001 From: M600 Date: Thu, 16 Feb 2017 15:32:11 +0100 Subject: [PATCH 71/98] Rebase --- 42sh/src/completion/c_rematch.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/42sh/src/completion/c_rematch.c b/42sh/src/completion/c_rematch.c index fcb4c121..87acbcf2 100644 --- a/42sh/src/completion/c_rematch.c +++ b/42sh/src/completion/c_rematch.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/15 12:03:30 by alao #+# #+# */ -/* Updated: 2017/02/16 15:17:52 by alao ### ########.fr */ +/* Updated: 2017/02/16 15:31:40 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,6 +30,7 @@ static int c_refresh_match(t_comp *c, long int keypress) tmp = ft_strjoin(c->rcmd, kpconv); c->rcmd ? ft_memdel((void *)&c->rcmd) : (0); c->rcmd = ft_strdup(tmp); + c->ircmd++; tmp ? ft_memdel((void *)&tmp) : (0); return (0); } @@ -50,11 +51,19 @@ int c_rematch(t_comp *c, long int keypress) if (ft_isascii(keypress)) { c_term_clear(c); + ft_putchar(keypress); c_refresh_match(c, keypress); c_clear_lst(c); c->lst = NULL; if (c_matching(data_singleton(), c)) + { +// if (c->lst) +// { +// ft_putstr(tgetstr("le", NULL)); +// ft_putstr(tgetstr("nd", NULL)); +// } return (1); + } } return (0); } From 481821a88d55281a533703558af844f0f65b1120 Mon Sep 17 00:00:00 2001 From: M600 Date: Thu, 16 Feb 2017 16:01:44 +0100 Subject: [PATCH 72/98] Fix crash c[tab]d[tab] --- 42sh/src/completion/c_rematch.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/42sh/src/completion/c_rematch.c b/42sh/src/completion/c_rematch.c index 87acbcf2..e2885af4 100644 --- a/42sh/src/completion/c_rematch.c +++ b/42sh/src/completion/c_rematch.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/15 12:03:30 by alao #+# #+# */ -/* Updated: 2017/02/16 15:31:40 by alao ### ########.fr */ +/* Updated: 2017/02/16 16:01:12 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -64,6 +64,13 @@ int c_rematch(t_comp *c, long int keypress) // } return (1); } + if (c->lst == NULL) + { + DG("Clear"); + c_clear(data_singleton()); +// data_singleton()->line.pos += 1; + return (1); + } } return (0); } From f1808b39c66f387f47cc063c45f09b284c5a06e3 Mon Sep 17 00:00:00 2001 From: M600 Date: Thu, 16 Feb 2017 16:21:23 +0100 Subject: [PATCH 73/98] Fix shifting --- 42sh/src/completion/c_rematch.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/42sh/src/completion/c_rematch.c b/42sh/src/completion/c_rematch.c index e2885af4..d0aa9ded 100644 --- a/42sh/src/completion/c_rematch.c +++ b/42sh/src/completion/c_rematch.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/15 12:03:30 by alao #+# #+# */ -/* Updated: 2017/02/16 16:01:12 by alao ### ########.fr */ +/* Updated: 2017/02/16 16:21:02 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -51,24 +51,15 @@ int c_rematch(t_comp *c, long int keypress) if (ft_isascii(keypress)) { c_term_clear(c); - ft_putchar(keypress); + ft_print(keypress); c_refresh_match(c, keypress); c_clear_lst(c); c->lst = NULL; if (c_matching(data_singleton(), c)) - { -// if (c->lst) -// { -// ft_putstr(tgetstr("le", NULL)); -// ft_putstr(tgetstr("nd", NULL)); -// } return (1); - } if (c->lst == NULL) { - DG("Clear"); c_clear(data_singleton()); -// data_singleton()->line.pos += 1; return (1); } } From 7a35430c5c414f5b9a26507b04540446cd1448bc Mon Sep 17 00:00:00 2001 From: M600 Date: Thu, 16 Feb 2017 16:38:03 +0100 Subject: [PATCH 74/98] Fix duplicate letter on perfect match --- 42sh/src/completion/c_files.c | 5 ++++- 42sh/src/completion/c_parser.c | 2 +- 42sh/src/completion/c_rematch.c | 13 +++++++++---- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/42sh/src/completion/c_files.c b/42sh/src/completion/c_files.c index bf548265..941e6ba8 100644 --- a/42sh/src/completion/c_files.c +++ b/42sh/src/completion/c_files.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:31:21 by alao #+# #+# */ -/* Updated: 2017/02/16 12:04:10 by alao ### ########.fr */ +/* Updated: 2017/02/16 16:31:34 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,6 +21,7 @@ static int c_exclusion_folder(t_comp *c) { + DG("Exclusion"); DIR *rep; char *tmp; @@ -35,6 +36,8 @@ static int c_exclusion_folder(t_comp *c) data_singleton()->line.input = ft_strdup(tmp); data_singleton()->line.pos = data_singleton()->line.pos + 1; c->isfolder = 1; + tmp ? ft_memdel((void *)&tmp) : (0); + return (1); } tmp ? ft_memdel((void *)&tmp) : (0); return (0); diff --git a/42sh/src/completion/c_parser.c b/42sh/src/completion/c_parser.c index 08011808..bca42a13 100644 --- a/42sh/src/completion/c_parser.c +++ b/42sh/src/completion/c_parser.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:52:07 by alao #+# #+# */ -/* Updated: 2017/02/03 17:35:47 by jhalford ### ########.fr */ +/* Updated: 2017/02/16 16:32:44 by alao ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/completion/c_rematch.c b/42sh/src/completion/c_rematch.c index d0aa9ded..9d92a979 100644 --- a/42sh/src/completion/c_rematch.c +++ b/42sh/src/completion/c_rematch.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/15 12:03:30 by alao #+# #+# */ -/* Updated: 2017/02/16 16:21:02 by alao ### ########.fr */ +/* Updated: 2017/02/16 16:37:35 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -51,17 +51,22 @@ int c_rematch(t_comp *c, long int keypress) if (ft_isascii(keypress)) { c_term_clear(c); - ft_print(keypress); c_refresh_match(c, keypress); c_clear_lst(c); c->lst = NULL; - if (c_matching(data_singleton(), c)) - return (1); + c_matching(data_singleton(), c); if (c->lst == NULL) { c_clear(data_singleton()); return (1); } + else if (c->lst == c->lst->next) + return (1); + else + { + ft_print(keypress); + return(1); + } } return (0); } From 46d7e7ce4e436b94bd13cead50f19045779fa594 Mon Sep 17 00:00:00 2001 From: M600 Date: Thu, 16 Feb 2017 18:05:21 +0100 Subject: [PATCH 75/98] Fix completion nested in the command --- 42sh/includes/completion.h | 5 ++++- 42sh/src/completion/c_clear.c | 4 +++- 42sh/src/completion/c_files.c | 16 +++++----------- 42sh/src/completion/c_init.c | 26 ++++++++++++++++++++++++-- 42sh/src/completion/c_matching.c | 4 ++-- 42sh/src/completion/c_output.c | 31 ++++++++++++++++++++++++------- 42sh/src/completion/c_rematch.c | 7 ++++++- 42sh/src/completion/c_terminal.c | 6 +++--- 42sh/src/completion/completion.c | 4 +++- 9 files changed, 74 insertions(+), 29 deletions(-) diff --git a/42sh/includes/completion.h b/42sh/includes/completion.h index 5848e590..70951fdf 100644 --- a/42sh/includes/completion.h +++ b/42sh/includes/completion.h @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/02/18 11:13:04 by alao #+# #+# */ -/* Updated: 2017/02/16 01:19:17 by alao ### ########.fr */ +/* Updated: 2017/02/16 17:09:17 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -65,7 +65,10 @@ typedef struct s_comp char *match; char *home; char *pwd; + char *start; + char *between; char *trail; + int cutpoint; int prompt; int c_sx; int c_sy; diff --git a/42sh/src/completion/c_clear.c b/42sh/src/completion/c_clear.c index 31c25201..fac24088 100644 --- a/42sh/src/completion/c_clear.c +++ b/42sh/src/completion/c_clear.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 11:37:43 by alao #+# #+# */ -/* Updated: 2017/02/16 11:37:43 by alao ### ########.fr */ +/* Updated: 2017/02/16 17:43:57 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -53,6 +53,8 @@ int c_clear(t_data *s) ptr->cpath ? ft_memdel((void *)&ptr->cpath) : (0); ptr->home ? ft_memdel((void *)&ptr->home) : (0); ptr->pwd ? ft_memdel((void *)&ptr->pwd) : (0); + ptr->start ? ft_memdel((void *)&ptr->start) : (0); + ptr->between ? ft_memdel((void *)&ptr->between) : (0); ptr->trail ? ft_memdel((void *)&ptr->trail) : (0); if (ptr->lst && ptr->lst->name) c_clear_lst(ptr); diff --git a/42sh/src/completion/c_files.c b/42sh/src/completion/c_files.c index 941e6ba8..5df12b3a 100644 --- a/42sh/src/completion/c_files.c +++ b/42sh/src/completion/c_files.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:31:21 by alao #+# #+# */ -/* Updated: 2017/02/16 16:31:34 by alao ### ########.fr */ +/* Updated: 2017/02/16 18:00:04 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,22 +21,16 @@ static int c_exclusion_folder(t_comp *c) { - DG("Exclusion"); DIR *rep; char *tmp; + char *tmp2; tmp = ft_strjoin(c->cpath, c->match); if ((rep = opendir(tmp)) && (!closedir(rep))) { - tmp ? ft_memdel((void *)&tmp) : (0); - tmp = ft_strjoin(c->rcmd, "/"); - if (c->trail) - data_singleton()->line.input = ft_strjoin(tmp, c->trail); - else - data_singleton()->line.input = ft_strdup(tmp); - data_singleton()->line.pos = data_singleton()->line.pos + 1; - c->isfolder = 1; - tmp ? ft_memdel((void *)&tmp) : (0); + tmp2 = ft_strjoin(c->match, "/"); + c_updater(c, tmp2); + tmp2 ? ft_memdel((void *)&tmp2) : (0); return (1); } tmp ? ft_memdel((void *)&tmp) : (0); diff --git a/42sh/src/completion/c_init.c b/42sh/src/completion/c_init.c index a61129c3..b9978300 100644 --- a/42sh/src/completion/c_init.c +++ b/42sh/src/completion/c_init.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 11:21:16 by alao #+# #+# */ -/* Updated: 2017/02/15 19:05:04 by alao ### ########.fr */ +/* Updated: 2017/02/16 17:45:54 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,9 +19,11 @@ static char *c_trimmer(char *cmd, int st, int nd) { char *rt; + char *tmp; int len; rt = NULL; + tmp = NULL; len = ft_strlen(cmd); if (st == len) st--; @@ -31,7 +33,15 @@ static char *c_trimmer(char *cmd, int st, int nd) while (nd < len && cmd[nd] && cmd[nd] != ';' && cmd[nd] != ' ') nd++; rt = ft_strsub(cmd, st, nd - st); - return (rt); + data_singleton()->comp->cutpoint = st; + st = 0; + while (rt[st] == ' ') + st++; + tmp = ft_strsub(rt, st, ft_strlen(rt)); + if (st) + data_singleton()->comp->between = ft_strsub(rt, 0, st); + rt ? ft_memdel((void *)&rt) : (0); + return (tmp); } /* @@ -46,12 +56,19 @@ void c_init(t_data *s, long int input) if (!(s->comp = (t_comp *)malloc((sizeof(t_comp))))) return ; + s->comp->cutpoint = 0; + s->comp->between = NULL; s->comp->rcmd = c_trimmer(s->line.input, s->line.pos, s->line.pos); len_trail = ft_strlen(s->line.input) - s->line.pos; if (ft_strlen(s->line.input) > s->line.pos) s->comp->trail = ft_strsub(s->line.input, s->line.pos, len_trail); else s->comp->trail = NULL; + + if (s->comp->cutpoint) + s->comp->start = ft_strsub(s->line.input, 0, s->comp->cutpoint); + else + s->comp->start = NULL; s->comp->ircmd = s->line.pos; s->comp->match = NULL; s->comp->cpath = NULL; @@ -63,5 +80,10 @@ void c_init(t_data *s, long int input) s->comp->key = input; s->comp->isfolder = 0; s->comp->prompt = s->line.prompt_size; +// DG("Init end as:"); +// DG("Start [%s]", s->comp->start); +// DG("Between [%s]", s->comp->between); +// DG("RCMD [%s]", s->comp->rcmd); +// DG("Trail [%s]", s->comp->trail); c_matching(s, s->comp); } diff --git a/42sh/src/completion/c_matching.c b/42sh/src/completion/c_matching.c index 7b267ac7..a698ad66 100644 --- a/42sh/src/completion/c_matching.c +++ b/42sh/src/completion/c_matching.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/15 13:27:14 by alao #+# #+# */ -/* Updated: 2017/02/16 15:16:05 by alao ### ########.fr */ +/* Updated: 2017/02/16 17:57:51 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -31,7 +31,7 @@ int c_matching(t_data *s, t_comp *c) c_seek_binary(s, c); else c_seek_files(s, c); - if (c->lst) + if (s->comp && c->lst) { c_sizing(c); return (1); diff --git a/42sh/src/completion/c_output.c b/42sh/src/completion/c_output.c index 72f36ec0..e70f006c 100644 --- a/42sh/src/completion/c_output.c +++ b/42sh/src/completion/c_output.c @@ -6,12 +6,31 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:10:38 by alao #+# #+# */ -/* Updated: 2017/02/16 15:16:10 by alao ### ########.fr */ +/* Updated: 2017/02/16 18:02:47 by alao ### ########.fr */ /* */ /* ************************************************************************** */ #include "completion.h" +static int c_updater_rcmd(t_comp *c) +{ + char *tmp; + char *tmp2; + int new_pos; + + tmp = ft_strjoin(c->start, c->between); + tmp2 = ft_strjoin(tmp, c->rcmd); + c->rcmd ? ft_memdel((void *)&c->rcmd) : (0); + c->rcmd = ft_strjoin(tmp2, c->trail); + tmp ? ft_memdel((void *)&tmp) : (0); + tmp2 ? ft_memdel((void *)&tmp2) : (0); + data_singleton()->line.input ? ft_memdel((void *)&data_singleton()->line.input) : (0); + data_singleton()->line.input = ft_strdup(c->rcmd); + new_pos = ft_strlen(c->start) + ft_strlen(c->between) + ft_strlen(c->rcmd); + data_singleton()->line.pos = new_pos; + return (1); +} + /* ** Output function. Will update the data->line.input along with the ** position of the cursor in data->line.pos. If the autocompletion occur in @@ -34,14 +53,12 @@ int c_updater(t_comp *c, char *select) tmp = ft_strdup(c->rcmd); rt = ft_strjoin(tmp, select); tmp ? ft_memdel((void *)&tmp) : (0); - data_singleton()->line.input ? ft_memdel((void *)&data_singleton()->line.input) : (0); - if (c->trail) - data_singleton()->line.input = ft_strjoin(rt, c->trail); - else - data_singleton()->line.input = ft_strdup(rt); - data_singleton()->line.pos = ft_strlen(c->rcmd) + ft_strlen(select); + c->rcmd ? ft_memdel((void *)&c->rcmd) : (0); + c->rcmd = ft_strdup(rt); + c_updater_rcmd(c); rt ? ft_memdel((void *)&rt) : (0); c_clear(data_singleton()); +// DG("Module complete commands [%s] with pos [%d]", data_singleton()->line.input, data_singleton()->line.pos); return (1); } diff --git a/42sh/src/completion/c_rematch.c b/42sh/src/completion/c_rematch.c index 9d92a979..d7d33ba1 100644 --- a/42sh/src/completion/c_rematch.c +++ b/42sh/src/completion/c_rematch.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/15 12:03:30 by alao #+# #+# */ -/* Updated: 2017/02/16 16:37:35 by alao ### ########.fr */ +/* Updated: 2017/02/16 18:04:15 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -68,5 +68,10 @@ int c_rematch(t_comp *c, long int keypress) return(1); } } + else + { + c_term_clear(c); + c_clear(data_singleton()); + } return (0); } diff --git a/42sh/src/completion/c_terminal.c b/42sh/src/completion/c_terminal.c index c98efe70..b11c754c 100644 --- a/42sh/src/completion/c_terminal.c +++ b/42sh/src/completion/c_terminal.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/11 10:44:40 by alao #+# #+# */ -/* Updated: 2017/02/16 12:16:30 by alao ### ########.fr */ +/* Updated: 2017/02/16 16:58:53 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,7 @@ void c_term_clear(t_comp *c) ft_putstr(tgetstr("up", NULL)); i = 0; lcmd = 0; - c->rcmd ? lcmd += (int)ft_strlen(c->rcmd) + c->prompt + 1 : 0; + c->rcmd ? lcmd += c->ircmd + c->prompt + 1 : 0; while (i < lcmd) { ft_putstr(tgetstr("nd", NULL)); @@ -53,7 +53,7 @@ void c_term_mv_back(t_comp *c) ft_putstr(tgetstr("cr", NULL)); i = 0; lcmd = 0; - c->rcmd ? lcmd += (int)ft_strlen(c->rcmd) + c->prompt + 1 : 0; + c->rcmd ? lcmd += c->ircmd + c->prompt + 1 : 0; while (i < lcmd) { ft_putstr(tgetstr("nd", NULL)); diff --git a/42sh/src/completion/completion.c b/42sh/src/completion/completion.c index 595ee337..f1732087 100644 --- a/42sh/src/completion/completion.c +++ b/42sh/src/completion/completion.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/09/20 14:50:33 by alao #+# #+# */ -/* Updated: 2017/02/16 11:47:59 by alao ### ########.fr */ +/* Updated: 2017/02/16 17:59:23 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -91,6 +91,8 @@ int completion(long int keypress) s->line.input[s->line.pos] != '\0') return (0); c_init(s, keypress); + if (s->comp == NULL) + return (1); } else { From 61b193013e0a9952be438ecab8caf14b775eedcd Mon Sep 17 00:00:00 2001 From: M600 Date: Thu, 16 Feb 2017 22:19:56 +0100 Subject: [PATCH 76/98] Refreshed documentation on autocompletion module --- 42sh/Makefile | 3 +- 42sh/includes/completion.h | 48 +++++++++++++++++++++++---- 42sh/src/completion/c_binary.c | 4 +-- 42sh/src/completion/c_clear.c | 3 +- 42sh/src/completion/c_files.c | 6 ++-- 42sh/src/completion/c_init.c | 52 ++++++++++++++++-------------- 42sh/src/completion/c_matching.c | 16 ++++++--- 42sh/src/completion/c_misc.c | 52 ++++++++++++++++++++++++++++++ 42sh/src/completion/c_output.c | 20 ++++++++---- 42sh/src/completion/c_parser.c | 2 +- 42sh/src/completion/c_pathsolver.c | 49 ++-------------------------- 42sh/src/completion/c_printer.c | 26 ++++++--------- 42sh/src/completion/c_rematch.c | 3 +- 42sh/src/completion/c_sizing.c | 2 +- 42sh/src/completion/c_terminal.c | 2 +- 42sh/src/completion/completion.c | 4 +-- 16 files changed, 175 insertions(+), 117 deletions(-) create mode 100644 42sh/src/completion/c_misc.c diff --git a/42sh/Makefile b/42sh/Makefile index 1b558a0a..9c204824 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,7 +6,7 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/15 20:00:50 by alao ### ########.fr # +# Updated: 2017/02/16 22:19:03 by alao ### ########.fr # # # # **************************************************************************** # @@ -48,6 +48,7 @@ completion/c_clear.c\ completion/c_files.c\ completion/c_init.c\ completion/c_matching.c\ +completion/c_misc.c\ completion/c_output.c\ completion/c_parser.c\ completion/c_pathsolver.c\ diff --git a/42sh/includes/completion.h b/42sh/includes/completion.h index 70951fdf..b9d1874b 100644 --- a/42sh/includes/completion.h +++ b/42sh/includes/completion.h @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/02/18 11:13:04 by alao #+# #+# */ -/* Updated: 2017/02/16 17:09:17 by alao ### ########.fr */ +/* Updated: 2017/02/16 21:02:51 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -45,7 +45,10 @@ typedef struct s_clst ** match : Part of the command to match when searching. ** home : Path to home for the ~ solving. ** pwd : Current folder to solve local path. -** trail : The rest of the command after the position. +** start : See below. +** between : See below. +** trail : See below. +** cutpoint : See below. ** prompt : Size of the prompt. ** c_sx : Size of the longest word from the list. ** c_sy : Size of the list in number of item. @@ -55,6 +58,18 @@ typedef struct s_clst ** key : The keypressed lastly. ** isfolder : If the match is a folder. boolean. ** lst : List of the item corresponding to the completion. +** +** The complete command is cutted as follow using the command as exemple: +** +** Exemple: [ ls / ; cd (tab) ; pwd ] +** +** (int)cutpoint +** | +** | +** Become: [ls / ;] [ ] [cd ] [ ; pwd] +** | | | | +** | | | | +** (char *)start (char *)between (char *)rcmd (char *)trail */ typedef struct s_comp @@ -81,7 +96,14 @@ typedef struct s_comp } t_comp; /* -** Main autocompletion engine +** Main autocompletion engine: +** completion : Main function. +** c_init : Initialization. +** c_matching : Dispatcher for binary or local files. +** c_seek_binary : Search binary using env PATH. +** c_seek_files : Solve path and search. +** c_parser : Parser. +** c_sizing : Determine the size of the column/line. */ int completion(long int key); @@ -93,7 +115,11 @@ int c_parser(t_comp *c, char *path, char *name); int c_sizing(t_comp *c); /* -** Output functions. +** Output functions: +** +** c_updater : Output the result to struct data. +** c_gtfo : Keypress handling. +** c_rematch : Restart on keypress. */ int c_updater(t_comp *c, char *select); @@ -101,7 +127,12 @@ int c_gtfo(t_comp *c, long int keypress); int c_rematch(t_comp *c, long int keypress); /* -** Terminal related function (moving and printing the list) +** Terminal functions: +** +** c_term_mv_down : Make space for the list. +** c_term_mv_back : Reset the cursor position. +** c_term_clear : Delete the list from the terminal. +** c_printer : Printer of the list. */ void c_term_mv_down(t_comp *c); @@ -110,12 +141,15 @@ void c_term_clear(t_comp *c); void c_printer(t_comp *c); /* -** Support functions +** Support functions: +** +** c_clear : Memory clearing. +** c_clear_lst : List clearing. +** path_solver : Solve abstract path to absolute. */ int c_clear(t_data *s); int c_clear_lst(t_comp *c); char *path_solver(t_comp *c, char *cmd, char *cwd); -int test(t_comp *c); #endif diff --git a/42sh/src/completion/c_binary.c b/42sh/src/completion/c_binary.c index 4bbc824d..bccc73d8 100644 --- a/42sh/src/completion/c_binary.c +++ b/42sh/src/completion/c_binary.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:30:57 by alao #+# #+# */ -/* Updated: 2017/02/16 15:18:14 by alao ### ########.fr */ +/* Updated: 2017/02/16 21:03:18 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,7 +15,7 @@ /* ** Retrieve the path from the env and create a char ** from the PATH pattern. ** The function will cycle through it to find the matching element using the -** c_parser() function +** c_parser() function. */ int c_seek_binary(t_data *s, t_comp *c) diff --git a/42sh/src/completion/c_clear.c b/42sh/src/completion/c_clear.c index fac24088..815d12b5 100644 --- a/42sh/src/completion/c_clear.c +++ b/42sh/src/completion/c_clear.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 11:37:43 by alao #+# #+# */ -/* Updated: 2017/02/16 17:43:57 by alao ### ########.fr */ +/* Updated: 2017/02/16 22:03:41 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,6 +35,7 @@ int c_clear_lst(t_comp *c) } c_lst->name ? ft_memdel((void *)&c_lst->name) : (0); c_lst ? ft_memdel((void *)&c_lst) : (0); + c->lst = NULL; return (0); } diff --git a/42sh/src/completion/c_files.c b/42sh/src/completion/c_files.c index 5df12b3a..dba7bc4f 100644 --- a/42sh/src/completion/c_files.c +++ b/42sh/src/completion/c_files.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:31:21 by alao #+# #+# */ -/* Updated: 2017/02/16 18:00:04 by alao ### ########.fr */ +/* Updated: 2017/02/16 22:14:51 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,8 +15,9 @@ /* ** If the parsing for local file fail. The function is called to check if the ** match is actually a folder. If so, the command is updated with a trailing -** slash (/). +** slash (/) using c_updater. ** Exemple: cd folder[tab] to cd folder/ +** Returning 1 if success (trigger an update) or 0. */ static int c_exclusion_folder(t_comp *c) @@ -30,6 +31,7 @@ static int c_exclusion_folder(t_comp *c) { tmp2 = ft_strjoin(c->match, "/"); c_updater(c, tmp2); + tmp ? ft_memdel((void *)&tmp) : (0); tmp2 ? ft_memdel((void *)&tmp2) : (0); return (1); } diff --git a/42sh/src/completion/c_init.c b/42sh/src/completion/c_init.c index b9978300..d9701694 100644 --- a/42sh/src/completion/c_init.c +++ b/42sh/src/completion/c_init.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 11:21:16 by alao #+# #+# */ -/* Updated: 2017/02/16 17:45:54 by alao ### ########.fr */ +/* Updated: 2017/02/16 22:08:25 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,6 +14,7 @@ /* ** Trim if there's many commands in a raw separed with a semi colon. +** The cutpoint is saved and also between char **. */ static char *c_trimmer(char *cmd, int st, int nd) @@ -44,6 +45,26 @@ static char *c_trimmer(char *cmd, int st, int nd) return (tmp); } +/* +** Norme function for c_init(). +*/ + +static void c_init_base(t_comp *c) +{ + struct winsize win; + + ioctl(0, TIOCGWINSZ, &win); + c->win_x = win.ws_col; + c->cutpoint = 0; + c->between = NULL; + c->isfolder = 0; + c->match = NULL; + c->cpath = NULL; + c->lst = NULL; + c->trail = NULL; + c->start = NULL; +} + /* ** Init the completion structure by populating the default value from the main ** structure data and call for the c_matching() function. @@ -51,39 +72,22 @@ static char *c_trimmer(char *cmd, int st, int nd) void c_init(t_data *s, long int input) { - struct winsize win; + int len_trail; if (!(s->comp = (t_comp *)malloc((sizeof(t_comp))))) return ; - s->comp->cutpoint = 0; - s->comp->between = NULL; + c_init_base(s->comp); s->comp->rcmd = c_trimmer(s->line.input, s->line.pos, s->line.pos); len_trail = ft_strlen(s->line.input) - s->line.pos; - if (ft_strlen(s->line.input) > s->line.pos) - s->comp->trail = ft_strsub(s->line.input, s->line.pos, len_trail); - else - s->comp->trail = NULL; - if (s->comp->cutpoint) s->comp->start = ft_strsub(s->line.input, 0, s->comp->cutpoint); - else - s->comp->start = NULL; + if (ft_strlen(s->line.input) > s->line.pos) + s->comp->trail = ft_strsub(s->line.input, s->line.pos, len_trail); s->comp->ircmd = s->line.pos; - s->comp->match = NULL; - s->comp->cpath = NULL; - s->comp->lst = NULL; - ioctl(0, TIOCGWINSZ, &win); - s->comp->win_x = win.ws_col; + s->comp->key = input; + s->comp->prompt = s->line.prompt_size; s->comp->home = ft_strdup(ft_getenv(s->env, "HOME")); s->comp->pwd = ft_strdup(ft_getenv(s->env, "PWD")); - s->comp->key = input; - s->comp->isfolder = 0; - s->comp->prompt = s->line.prompt_size; -// DG("Init end as:"); -// DG("Start [%s]", s->comp->start); -// DG("Between [%s]", s->comp->between); -// DG("RCMD [%s]", s->comp->rcmd); -// DG("Trail [%s]", s->comp->trail); c_matching(s, s->comp); } diff --git a/42sh/src/completion/c_matching.c b/42sh/src/completion/c_matching.c index a698ad66..761f6ef3 100644 --- a/42sh/src/completion/c_matching.c +++ b/42sh/src/completion/c_matching.c @@ -6,17 +6,23 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/15 13:27:14 by alao #+# #+# */ -/* Updated: 2017/02/16 17:57:51 by alao ### ########.fr */ +/* Updated: 2017/02/16 21:57:47 by alao ### ########.fr */ /* */ /* ************************************************************************** */ #include "completion.h" /* -** Start the parsing for the autocompletion. If a space is found in the command -** it will call c_seek_files() function. If not, it assume it will be a binary -** so the function c_seek_binary() is called instead. -** Once that done, the printing function should occur. +** Start the parsing for the autocompletion. +** Check the first char of the c->rcmd for a . or /. to see if it's a local +** path to search even if there's no space in the command. +** If a space is found in the command. The function will assume it's a binary +** completion that is needed. Else the c_seek_files() is called to search for +** local path along with the binary part separated. +** If any of the other part successfully created a list, the c_sizing is called +** and 1 is returned. The last condition also check is the structure still +** exist. It's only when the c_rematch() called it that it can be the case. +** Else 0 is returned. */ int c_matching(t_data *s, t_comp *c) diff --git a/42sh/src/completion/c_misc.c b/42sh/src/completion/c_misc.c new file mode 100644 index 00000000..fbdd425a --- /dev/null +++ b/42sh/src/completion/c_misc.c @@ -0,0 +1,52 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_misc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: alao +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/16 22:17:10 by alao #+# #+# */ +/* Updated: 2017/02/16 22:18:43 by alao ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "completion.h" + +/* +** Support: Return the size of a char**. +*/ + +int ft_sstrlen(char **s) +{ + int i; + + i = 0; + while (s[i]) + i++; + return (i); +} + +/* +** Support: Tranform a char** as char* with char*sep in between. +*/ + +char *ft_sstrtostr(char **s, char *sep) +{ + char *tmp; + char *tmp2; + int i; + + tmp = NULL; + tmp2 = NULL; + tmp = ft_strjoin(s[0], sep); + i = 1; + while (s[i]) + { + tmp2 = ft_strjoin(tmp, s[i]); + ft_memdel((void *)&tmp); + tmp = ft_strjoin(tmp2, sep); + ft_memdel((void *)&tmp2); + i++; + } + return (tmp); +} diff --git a/42sh/src/completion/c_output.c b/42sh/src/completion/c_output.c index e70f006c..6b9f280d 100644 --- a/42sh/src/completion/c_output.c +++ b/42sh/src/completion/c_output.c @@ -6,12 +6,18 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/03 13:10:38 by alao #+# #+# */ -/* Updated: 2017/02/16 18:02:47 by alao ### ########.fr */ +/* Updated: 2017/02/16 22:00:38 by alao ### ########.fr */ /* */ /* ************************************************************************** */ #include "completion.h" +/* +** Update of the struct data. +** The broken out command is recomposed as one unique including the choice and +** put back in the main structure. The new cursor position is also updated. +*/ + static int c_updater_rcmd(t_comp *c) { char *tmp; @@ -22,12 +28,15 @@ static int c_updater_rcmd(t_comp *c) tmp2 = ft_strjoin(tmp, c->rcmd); c->rcmd ? ft_memdel((void *)&c->rcmd) : (0); c->rcmd = ft_strjoin(tmp2, c->trail); - tmp ? ft_memdel((void *)&tmp) : (0); - tmp2 ? ft_memdel((void *)&tmp2) : (0); - data_singleton()->line.input ? ft_memdel((void *)&data_singleton()->line.input) : (0); - data_singleton()->line.input = ft_strdup(c->rcmd); + if (data_singleton()->line.input) + { + ft_memdel((void *)&data_singleton()->line.input); + data_singleton()->line.input = ft_strdup(c->rcmd); + } new_pos = ft_strlen(c->start) + ft_strlen(c->between) + ft_strlen(c->rcmd); data_singleton()->line.pos = new_pos; + tmp ? ft_memdel((void *)&tmp) : (0); + tmp2 ? ft_memdel((void *)&tmp2) : (0); return (1); } @@ -58,7 +67,6 @@ int c_updater(t_comp *c, char *select) c_updater_rcmd(c); rt ? ft_memdel((void *)&rt) : (0); c_clear(data_singleton()); -// DG("Module complete commands [%s] with pos [%d]", data_singleton()->line.input, data_singleton()->line.pos); return (1); } diff --git a/42sh/src/completion/c_parser.c b/42sh/src/completion/c_parser.c index bca42a13..f611f4df 100644 --- a/42sh/src/completion/c_parser.c +++ b/42sh/src/completion/c_parser.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/09 13:52:07 by alao #+# #+# */ -/* Updated: 2017/02/16 16:32:44 by alao ### ########.fr */ +/* Updated: 2017/02/16 22:00:49 by alao ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/completion/c_pathsolver.c b/42sh/src/completion/c_pathsolver.c index 22c5573b..752d874d 100644 --- a/42sh/src/completion/c_pathsolver.c +++ b/42sh/src/completion/c_pathsolver.c @@ -6,55 +6,12 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/25 18:21:54 by alao #+# #+# */ -/* Updated: 2017/02/16 12:18:45 by alao ### ########.fr */ +/* Updated: 2017/02/16 22:17:53 by alao ### ########.fr */ /* */ /* ************************************************************************** */ #include "completion.h" -void ft_sstrdelete(char **s) -{ - int i; - - i = 0; - while (s[i]) - { - ft_memdel((void *)&s[i++]); - } - ft_memdel((void *)&s); -} - -int ft_sstrlen(char **s) -{ - int i; - - i = 0; - while (s[i]) - i++; - return (i); -} - -char *ft_sstrtostr(char **s, char *sep) -{ - char *tmp; - char *tmp2; - int i; - - tmp = NULL; - tmp2 = NULL; - tmp = ft_strjoin(s[0], sep); - i = 1; - while (s[i]) - { - tmp2 = ft_strjoin(tmp, s[i]); - ft_memdel((void *)&tmp); - tmp = ft_strjoin(tmp2, sep); - ft_memdel((void *)&tmp2); - i++; - } - return (tmp); -} - /* ** Solve the tilde pattern in the path */ @@ -136,8 +93,8 @@ static char *dots(char *cmd, char *cwd, int i) scmd = ft_strsplit(cmd, '/'); scwd = ft_strsplit(cwd, '/'); tmp = dots_purge(scwd, scmd, 0); - scmd ? ft_sstrdelete(scmd) : (0); - scwd ? ft_sstrdelete(scwd) : (0); + scmd ? ft_sstrfree(scmd) : (0); + scwd ? ft_sstrfree(scwd) : (0); } if (!cwd) tmp = ft_strdup("/"); diff --git a/42sh/src/completion/c_printer.c b/42sh/src/completion/c_printer.c index 6dc92063..f43163de 100644 --- a/42sh/src/completion/c_printer.c +++ b/42sh/src/completion/c_printer.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 12:55:39 by alao #+# #+# */ -/* Updated: 2017/02/16 12:20:20 by alao ### ########.fr */ +/* Updated: 2017/02/16 22:11:48 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,9 +15,10 @@ /* ** Print the name with or without an underline and colored upon file type ** as follow: -** - (4) Folder: Red "\e[1;31m" -** - (10) Symlink: Cyan "\e[96m" +** - (4) Folder: Red "\e[1;31m" and a trailing / is added. +** - (10) Symlink: Cyan "\e[96m" and a trailing @ is added. ** If the element is under selection, the video mode is inverted instead. +** The rest of the placeholder is filled with space to align the list. */ static void c_printer_node(t_clst *lst, int c_sx) @@ -25,20 +26,13 @@ static void c_printer_node(t_clst *lst, int c_sx) int i; i = lst->len; - if (lst->cursor) - ft_putstr_fd("\e[7m", 2); - else - { - lst->type == 4 ? ft_putstr_fd("\e[1;31m", 2) : (0); - lst->type == 10 ? ft_putstr_fd("\e[1;96m", 2) : (0); - } + lst->type == 4 ? ft_putstr_fd("\e[1;31m", 2) : (0); + lst->type == 10 ? ft_putstr_fd("\e[1;96m", 2) : (0); + lst->cursor ? ft_putstr_fd("\e[0;7m", 2) : (0); ft_putstr_fd(lst->name, 2); - if (lst->type == 4) - ft_putstr_fd("/", 2); - else if (lst->type == 10) - ft_putstr_fd("@", 2); - else - ft_putstr_fd(" ", 2); + lst->type == 4 ? ft_putstr_fd("/", 2) : (0); + lst->type == 10 ? ft_putstr_fd("@", 2) : (0); + lst->type != 4 && lst->type != 10 ? ft_putstr_fd(" ", 2) : (0); while (i++ < (c_sx)) ft_putstr(" "); ft_putstr_fd("\e[00m", 2); diff --git a/42sh/src/completion/c_rematch.c b/42sh/src/completion/c_rematch.c index d7d33ba1..13421f70 100644 --- a/42sh/src/completion/c_rematch.c +++ b/42sh/src/completion/c_rematch.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/15 12:03:30 by alao #+# #+# */ -/* Updated: 2017/02/16 18:04:15 by alao ### ########.fr */ +/* Updated: 2017/02/16 22:03:42 by alao ### ########.fr */ /* */ /* ************************************************************************** */ @@ -53,7 +53,6 @@ int c_rematch(t_comp *c, long int keypress) c_term_clear(c); c_refresh_match(c, keypress); c_clear_lst(c); - c->lst = NULL; c_matching(data_singleton(), c); if (c->lst == NULL) { diff --git a/42sh/src/completion/c_sizing.c b/42sh/src/completion/c_sizing.c index 76e616dc..2d7adda9 100644 --- a/42sh/src/completion/c_sizing.c +++ b/42sh/src/completion/c_sizing.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/10 08:50:26 by alao #+# #+# */ -/* Updated: 2017/01/19 15:45:35 by alao ### ########.fr */ +/* Updated: 2017/02/16 22:01:47 by alao ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/completion/c_terminal.c b/42sh/src/completion/c_terminal.c index b11c754c..1b5d28a2 100644 --- a/42sh/src/completion/c_terminal.c +++ b/42sh/src/completion/c_terminal.c @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/10/11 10:44:40 by alao #+# #+# */ -/* Updated: 2017/02/16 16:58:53 by alao ### ########.fr */ +/* Updated: 2017/02/16 22:01:37 by alao ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/completion/completion.c b/42sh/src/completion/completion.c index f1732087..42705b56 100644 --- a/42sh/src/completion/completion.c +++ b/42sh/src/completion/completion.c @@ -6,14 +6,14 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/09/20 14:50:33 by alao #+# #+# */ -/* Updated: 2017/02/16 17:59:23 by alao ### ########.fr */ +/* Updated: 2017/02/16 22:01:18 by alao ### ########.fr */ /* */ /* ************************************************************************** */ #include "completion.h" /* -** Function to select the next item in the list if it has already been Created +** Function to select the next item in the list if it has already been created ** and if the keypressed is tab. */ From 0f61c048ae23cddd29370e47e1d8393c84f5ee23 Mon Sep 17 00:00:00 2001 From: gwojda Date: Fri, 17 Feb 2017 10:32:25 +0100 Subject: [PATCH 77/98] fixe leak sur env --- 42sh/src/builtin/builtin_env.c | 3 ++- 42sh/src/history/history.c | 2 +- 42sh/src/line-editing/ft_prompt.c | 4 ++-- 42sh/src/line-editing/lib_line_editing/toolz2.c | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/42sh/src/builtin/builtin_env.c b/42sh/src/builtin/builtin_env.c index 67d0c2bb..f65e7357 100644 --- a/42sh/src/builtin/builtin_env.c +++ b/42sh/src/builtin/builtin_env.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:14:20 by jhalford #+# #+# */ -/* Updated: 2017/02/16 12:40:08 by gwojda ### ########.fr */ +/* Updated: 2017/02/17 10:27:05 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -131,5 +131,6 @@ int builtin_env(const char *path, char *const argv[], char *const envp[]) if (*argv) ++argv; } + ft_sstrfree(env); return (0); } diff --git a/42sh/src/history/history.c b/42sh/src/history/history.c index cab1a3ac..5464edc3 100644 --- a/42sh/src/history/history.c +++ b/42sh/src/history/history.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/02 15:22:19 by gwojda #+# #+# */ -/* Updated: 2017/02/09 16:24:02 by jhalford ### ########.fr */ +/* Updated: 2017/02/16 16:12:59 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/line-editing/ft_prompt.c b/42sh/src/line-editing/ft_prompt.c index 2302f512..a9a87efa 100644 --- a/42sh/src/line-editing/ft_prompt.c +++ b/42sh/src/line-editing/ft_prompt.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:51:33 by gwojda #+# #+# */ -/* Updated: 2017/02/16 12:38:58 by gwojda ### ########.fr */ +/* Updated: 2017/02/16 14:27:57 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -71,7 +71,7 @@ static int ft_currend_dir(void) env = data_singleton()->env; if (!(pwd = ft_getenv(env, "PWD"))) - return (0); + return (-1); if (ft_getenv(env, "HOME") && !ft_strcmp(pwd, ft_getenv(env, "HOME"))) { ft_printf("%c ", '~'); diff --git a/42sh/src/line-editing/lib_line_editing/toolz2.c b/42sh/src/line-editing/lib_line_editing/toolz2.c index 9db4d662..e22e9fb7 100644 --- a/42sh/src/line-editing/lib_line_editing/toolz2.c +++ b/42sh/src/line-editing/lib_line_editing/toolz2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/07 11:00:28 by gwojda #+# #+# */ -/* Updated: 2017/02/14 14:43:32 by gwojda ### ########.fr */ +/* Updated: 2017/02/16 16:05:40 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,7 +25,7 @@ void ft_puttermcaps(char *str) char *res; char *env; - env = getenv("TERM"); + env = ft_getenv(data_singleton()->env, "TERM"); if ((res = tgetstr(str, &env)) == NULL) return ; tputs(res, 0, ft_put); From 0e1595101b89c0f8c9353f7e5aeb5fb1aa3d0626 Mon Sep 17 00:00:00 2001 From: gwojda Date: Fri, 17 Feb 2017 11:15:32 +0100 Subject: [PATCH 78/98] commit merge --- 42sh/includes/completion.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/42sh/includes/completion.h b/42sh/includes/completion.h index b9d1874b..76b10e06 100644 --- a/42sh/includes/completion.h +++ b/42sh/includes/completion.h @@ -6,7 +6,7 @@ /* By: alao +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/02/18 11:13:04 by alao #+# #+# */ -/* Updated: 2017/02/16 21:02:51 by alao ### ########.fr */ +/* Updated: 2017/02/17 11:10:48 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -152,4 +152,11 @@ int c_clear(t_data *s); int c_clear_lst(t_comp *c); char *path_solver(t_comp *c, char *cmd, char *cwd); +/* +** ajout rapide gwojda pour compiler : +*/ + +int ft_sstrlen(char **s); +char *ft_sstrtostr(char **s, char *sep); + #endif From d136e2be04f10ef53d7bab152fafaa2c73fef04e Mon Sep 17 00:00:00 2001 From: gwojda Date: Fri, 17 Feb 2017 13:58:27 +0100 Subject: [PATCH 79/98] correction leak cd + 2-3 autres ptits trucs --- 42sh/src/builtin/builtin_cd.c | 17 ++++++++++++----- 42sh/src/builtin/builtin_env.c | 2 +- 42sh/src/builtin/builtin_setenv.c | 4 ++-- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/42sh/src/builtin/builtin_cd.c b/42sh/src/builtin/builtin_cd.c index adb0c8f4..c2323c21 100644 --- a/42sh/src/builtin/builtin_cd.c +++ b/42sh/src/builtin/builtin_cd.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* builtin_cd.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 11:57:53 by jhalford #+# #+# */ -/* Updated: 2017/01/11 14:29:14 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 13:51:18 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,7 +28,7 @@ static char *builtin_cd_special(char *const av[], char *const env[]) return (NULL); } else if (ft_strcmp(*av, "-") == 0) - target = ft_getenv((char**)env, "OLDPWD"); + target = ft_strdup(ft_getenv((char**)env, "OLDPWD")); else target = *av; return (target); @@ -66,12 +66,15 @@ int builtin_cd(const char *path, char *const av[], char *const envp[]) int i; int opts; char *target; + char *cwd; opts = 0; i = builtin_cd_opts(av, &opts); if (!(target = builtin_cd_special(av + i, envp))) return (0); - builtin_setenv(path, (char*[3]){"OLDPWD", getcwd(NULL, 0)}, envp); + cwd = getcwd(NULL, 0); + builtin_setenv(path, (char*[3]){"OLDPWD", cwd, NULL}, envp); + free(cwd); if (chdir(target)) { ft_printf(CDERR_1, target); @@ -79,6 +82,10 @@ int builtin_cd(const char *path, char *const av[], char *const envp[]) } else if (target != av[i]) ft_printf("%s\n", target); - builtin_setenv(path, (char*[3]){"PWD", getcwd(NULL, 0)}, envp); + cwd = getcwd(NULL, 0); + builtin_setenv(path, (char*[3]){"PWD", cwd, NULL}, envp); + free(cwd); + if (!ft_strcmp(*(av + i), "-")) + free(target); return (0); } diff --git a/42sh/src/builtin/builtin_env.c b/42sh/src/builtin/builtin_env.c index f65e7357..192ca25b 100644 --- a/42sh/src/builtin/builtin_env.c +++ b/42sh/src/builtin/builtin_env.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:14:20 by jhalford #+# #+# */ -/* Updated: 2017/02/17 10:27:05 by gwojda ### ########.fr */ +/* Updated: 2017/02/17 11:06:40 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/builtin/builtin_setenv.c b/42sh/src/builtin/builtin_setenv.c index 80359846..3c803bd5 100644 --- a/42sh/src/builtin/builtin_setenv.c +++ b/42sh/src/builtin/builtin_setenv.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* builtin_setenv.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:25:17 by jhalford #+# #+# */ -/* Updated: 2017/02/06 14:05:23 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 13:18:25 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ From 5e511b74410242c2767a0457ec711f37b9e1c7c3 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 17 Feb 2017 14:11:13 +0100 Subject: [PATCH 80/98] libft update for GNL --- 42sh/libft | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/42sh/libft b/42sh/libft index b9c0c4cb..a82ea94e 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit b9c0c4cbb1adf15f11e681951500f23ad1f34c60 +Subproject commit a82ea94ef7f50f8396d7bf6f9c08ab4a7faa994d From b8bf58fbab24c70ddffb94453e0ac64a96ddd2c2 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 17 Feb 2017 15:49:03 +0100 Subject: [PATCH 81/98] doing some bquote expansion fix --- 42sh/Makefile | 1 + 42sh/includes/glob.h | 3 ++- 42sh/src/exec/exec_pipe.c | 2 +- 42sh/src/glob/esc_print.c | 30 ++++++++++++++++++++++++++++++ 42sh/src/glob/is_char_esc.c | 2 +- 42sh/src/lexer/expand_bquotes.c | 2 +- 42sh/src/lexer/lexer_bquote.c | 4 ++-- 42sh/src/lexer/lexer_dquote.c | 2 +- 42sh/src/lexer/lexer_quote.c | 2 +- 42sh/src/lexer/stack_to_prompt.c | 2 +- 42sh/src/main/data_init.c | 2 +- 42sh/src/main/main.c | 2 +- 12 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 42sh/src/glob/esc_print.c diff --git a/42sh/Makefile b/42sh/Makefile index 9c204824..a1ff1d98 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -84,6 +84,7 @@ exec/redirect_less.c\ exec/redirect_lessand.c\ exec/set_exitstatus.c\ glob/dir_glob.c\ +glob/esc_print.c\ glob/expand_brace.c\ glob/expand_esc.c\ glob/expand_var.c\ diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 798b417b..56d25818 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/02/08 13:54:57 by wescande ### ########.fr */ +/* Updated: 2017/02/17 15:42:09 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -51,6 +51,7 @@ typedef struct s_expand */ char **glob(char *str, unsigned char *esc, unsigned char *dbl_esc); +void esc_print(char *str, unsigned char *esc); /* ** return TRUE if path file is a directory. diff --git a/42sh/src/exec/exec_pipe.c b/42sh/src/exec/exec_pipe.c index cd454b9b..833138c3 100644 --- a/42sh/src/exec/exec_pipe.c +++ b/42sh/src/exec/exec_pipe.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/27 21:13:23 by jhalford #+# #+# */ -/* Updated: 2017/01/09 16:19:38 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 14:36:28 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/glob/esc_print.c b/42sh/src/glob/esc_print.c new file mode 100644 index 00000000..0a5c9f60 --- /dev/null +++ b/42sh/src/glob/esc_print.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* esc_print.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: jhalford +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/17 15:38:14 by jhalford #+# #+# */ +/* Updated: 2017/02/17 15:44:48 by jhalford ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +void esc_print(char *str, unsigned char *esc) +{ + char *cur; + + cur = str; + while (*cur) + { + if (is_char_esc(esc,str,cur)) + printf("\\%c", *cur); + else + printf("%c", *cur); + ++cur; + } + printf("\n"); +} + diff --git a/42sh/src/glob/is_char_esc.c b/42sh/src/glob/is_char_esc.c index ef702e69..08c99318 100644 --- a/42sh/src/glob/is_char_esc.c +++ b/42sh/src/glob/is_char_esc.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/27 18:19:55 by wescande #+# #+# */ -/* Updated: 2017/02/07 16:33:47 by wescande ### ########.fr */ +/* Updated: 2017/02/17 15:45:15 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/expand_bquotes.c b/42sh/src/lexer/expand_bquotes.c index 73d70160..d2361877 100644 --- a/42sh/src/lexer/expand_bquotes.c +++ b/42sh/src/lexer/expand_bquotes.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 16:46:27 by jhalford #+# #+# */ -/* Updated: 2017/02/09 20:45:08 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 15:48:39 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_bquote.c b/42sh/src/lexer/lexer_bquote.c index e5e468dd..0ffbc04e 100644 --- a/42sh/src/lexer/lexer_bquote.c +++ b/42sh/src/lexer/lexer_bquote.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/09 22:03:48 by jhalford #+# #+# */ -/* Updated: 2017/02/09 22:07:04 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 15:36:49 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,7 +20,7 @@ int lexer_bquote(t_list **alst, t_lexer *lexer) token = (*alst)->content; token->type = TK_WORD; if (lexer->state == DQUOTE_BQUOTE) - token_append(token, lexer, 1, 1); + token_append(token, lexer, 1, 0); else token_append(token, lexer, 0, 0); if (lexer->str[lexer->pos] == '`') diff --git a/42sh/src/lexer/lexer_dquote.c b/42sh/src/lexer/lexer_dquote.c index 5dd9ccab..c3cdfcbd 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/02/10 00:33:34 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 15:36:36 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_quote.c b/42sh/src/lexer/lexer_quote.c index 2d3a6432..9b1afbd1 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/02/09 22:13:27 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 15:28:13 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/stack_to_prompt.c b/42sh/src/lexer/stack_to_prompt.c index b79c208b..3a5cc8ff 100644 --- a/42sh/src/lexer/stack_to_prompt.c +++ b/42sh/src/lexer/stack_to_prompt.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/09 21:25:26 by jhalford #+# #+# */ -/* Updated: 2017/02/09 22:49:51 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 14:41:08 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/data_init.c b/42sh/src/main/data_init.c index de9e0895..b4aae183 100644 --- a/42sh/src/main/data_init.c +++ b/42sh/src/main/data_init.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 19:26:32 by jhalford #+# #+# */ -/* Updated: 2017/02/09 16:31:07 by wescande ### ########.fr */ +/* Updated: 2017/02/17 14:37:52 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 6aad9f87..f988722f 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/14 15:37:13 by gwojda ### ########.fr */ +/* Updated: 2017/02/17 15:26:59 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From e10d64c05bf30d7b1e6ff3cebd16ad6289bf4152 Mon Sep 17 00:00:00 2001 From: gwojda Date: Fri, 17 Feb 2017 15:57:55 +0100 Subject: [PATCH 82/98] correction leak env --- 42sh/src/builtin/builtin_env.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/42sh/src/builtin/builtin_env.c b/42sh/src/builtin/builtin_env.c index 192ca25b..64b2f931 100644 --- a/42sh/src/builtin/builtin_env.c +++ b/42sh/src/builtin/builtin_env.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:14:20 by jhalford #+# #+# */ -/* Updated: 2017/02/17 11:06:40 by gwojda ### ########.fr */ +/* Updated: 2017/02/17 15:56:55 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -121,12 +121,12 @@ int builtin_env(const char *path, char *const argv[], char *const envp[]) { ft_sstrprint(env, '\n'); ft_putchar('\n'); - return (0); + break ; } if (*argv && ft_strcmp(*argv, "env")) { ft_env_execute(argv, env); - return (0); + break ; } if (*argv) ++argv; From 957d56835276f3db9f866c4c81badaafb2c0e95f Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 17 Feb 2017 16:39:28 +0100 Subject: [PATCH 83/98] bquotes expand correctly /w single quotes and double quotes --- 42sh/src/glob/esc_print.c | 2 +- 42sh/src/glob/is_char_esc.c | 2 +- 42sh/src/lexer/expand_bquotes.c | 30 +++++++++++++++++------------- 42sh/src/main/main.c | 2 +- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/42sh/src/glob/esc_print.c b/42sh/src/glob/esc_print.c index 0a5c9f60..0ac335ba 100644 --- a/42sh/src/glob/esc_print.c +++ b/42sh/src/glob/esc_print.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/17 15:38:14 by jhalford #+# #+# */ -/* Updated: 2017/02/17 15:44:48 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 16:29:42 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/glob/is_char_esc.c b/42sh/src/glob/is_char_esc.c index 08c99318..2309c885 100644 --- a/42sh/src/glob/is_char_esc.c +++ b/42sh/src/glob/is_char_esc.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/27 18:19:55 by wescande #+# #+# */ -/* Updated: 2017/02/17 15:45:15 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 16:29:20 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/expand_bquotes.c b/42sh/src/lexer/expand_bquotes.c index d2361877..098f15f7 100644 --- a/42sh/src/lexer/expand_bquotes.c +++ b/42sh/src/lexer/expand_bquotes.c @@ -6,21 +6,19 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 16:46:27 by jhalford #+# #+# */ -/* Updated: 2017/02/17 15:48:39 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 16:34:34 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ #include "lexer.h" -int bquotes_insert_words(t_list *cur_word, char *word, char *after_bq) +int bquotes_insert_words(t_list *cur_word, char *word, char *after_bq, char *ifs) { - char *ifs; t_list *new_word; t_list *after_word; t_token *token; after_word = cur_word->next; - ifs = ft_getenv(data_singleton()->env, "IFS"); if (ifs) word = ft_strtok(word, ifs); token = cur_word->content; @@ -46,6 +44,8 @@ int bquotes_substitute(t_list *cur_word, char *bq_start, char *bq_end) char *output; char *last_char; char *after_bq; + char *ifs; + t_token *token; *bq_start = 0; *bq_end = 0; @@ -57,7 +57,10 @@ int bquotes_substitute(t_list *cur_word, char *bq_start, char *bq_end) } DG("output = [%s]", output); after_bq = ft_strdup(bq_end + 1); - bquotes_insert_words(cur_word, output ? output : "", after_bq); + token = cur_word->content; + ifs = is_char_esc(token->esc, token->data, bq_start) ? + NULL : ft_getenv(data_singleton()->env, "IFS"); + bquotes_insert_words(cur_word, output ? output : "", after_bq, ifs); ft_strdel(&output); ft_strdel(&after_bq); return (0); @@ -66,17 +69,18 @@ int bquotes_substitute(t_list *cur_word, char *bq_start, char *bq_end) int bquotes_expand(t_list **alst) { t_list *cur_word; - t_list *lst; char *bq_start; char *bq_end; - t_flag tk; + t_flag tk_word; + t_token *token; - tk = TK_WORD; + tk_word = TK_WORD; cur_word = *alst; - while ((lst = ft_lst_find(cur_word, &tk, token_cmp_type))) + while ((cur_word = ft_lst_find(cur_word, &tk_word, token_cmp_type))) { - cur_word = lst; - if (!(bq_start = ft_strchr(((t_token*)cur_word->content)->data, '`'))) + token = cur_word->content; + if (!(bq_start = ft_strchr(token->data, '`')) + || is_char_esc(token->esc2, token->data, bq_start)) { cur_word = cur_word->next; return (0); @@ -88,9 +92,9 @@ int bquotes_expand(t_list **alst) } if (bquotes_substitute(cur_word, bq_start, bq_end)) return (-1); - if (!(*((t_token*)cur_word->content)->data)) + if (!(*token->data)) ft_lst_delif(alst, cur_word->content, ft_addrcmp, token_free); - cur_word = lst; + cur_word = *alst; } return (0); } diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index f988722f..8ab40dfb 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/17 15:26:59 by jhalford ### ########.fr */ +/* Updated: 2017/02/17 16:35:24 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ From 97b1dc268f52fe0138438fe6fcd9dd34e536adef Mon Sep 17 00:00:00 2001 From: wescande Date: Fri, 17 Feb 2017 18:19:26 +0100 Subject: [PATCH 84/98] init --- 42sh/Makefile | 4 +- 42sh/src/glob/expand_bquote.c | 130 ++++++++++++++++++++++++++++++++++ 42sh/src/glob/glob.c | 3 +- 3 files changed, 134 insertions(+), 3 deletions(-) create mode 100644 42sh/src/glob/expand_bquote.c diff --git a/42sh/Makefile b/42sh/Makefile index a1ff1d98..220e4cec 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,7 +6,7 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/02/16 22:19:03 by alao ### ########.fr # +# Updated: 2017/02/17 17:16:16 by wescande ### ########.fr # # # # **************************************************************************** # @@ -232,7 +232,7 @@ NB = $(words $(SRC_BASE)) INDEX = 0 all : - @make $(NAME) + @make -j $(NAME) $(NAME): $(LIBFT_LIB) $(OBJ_DIR) $(OBJS) @$(CC) $(FLAGS) $(D_FLAGS) \ diff --git a/42sh/src/glob/expand_bquote.c b/42sh/src/glob/expand_bquote.c new file mode 100644 index 00000000..2904df33 --- /dev/null +++ b/42sh/src/glob/expand_bquote.c @@ -0,0 +1,130 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* expand_bquote.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: wescande +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/17 17:47:53 by wescande #+# #+# */ +/* Updated: 2017/02/17 18:18:36 by wescande ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "glob.h" + +/* +** expand_bquote return expansion of a string after subshell execution +** input parameters are : +** -t_glob *gl -> struct of expanding +*/ + +static char **gen_tab(const char *pat, + const unsigned 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((const char *)esc); + } + else + { + my_tab[0] = (char *)pat; + my_tab[1] = (char *)esc; + } + my_tab[2] = NULL; + return (my_tab); +} + +static void iter_on_each(t_expand *me) +{ + int i; + char **my_new; + char *first; + unsigned char *second; + t_ld *wk_tmp; + + i = ft_tablen(me->split); + wk_tmp = *me->wk; + while (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), + (int [2]){ft_strlen(me->split[i]), 0}, + (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 int 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); + return (1); +} + +static int search_bquote(t_expand *me) +{ + char *start; + + start = NULL; + while (*me->str) + { + start = *me->str == '`' && !is_char_esc(me->esc, CH(*me->wk)[0], + me->str) && !start ? me->str : start; + if (start && start != me->str && + *me->str == '`' && !is_char_esc(me->esc, CH(*me->wk)[0], me->str)) + { + return (init_expand(me, start)); +// set_char_esc(me->esc, CH(*me->wk)[0], start); +// set_char_esc(me->esc, CH(*me->wk)[0], me->str); +// return (2); + } + ++me->str; + } + return (0); +} + +void expand_bquote(t_glob *gl) +{ + t_ld *tmp; + int do_it; + t_expand me; + + me = (t_expand){NULL, NULL, NULL, NULL, NULL, NULL}; + do_it = 1; + while (do_it) + { + do_it = 0; + while (gl->m_pat->next && !do_it) + { + me.wk = &gl->m_pat; + me.esc = UCH(gl->m_pat)[1]; + me.str = CH(gl->m_pat)[0]; + if ((tmp = gl->m_pat) && + (do_it = search_bquote(&me)) == 1) + ft_ld_del(&tmp, &ft_tabdel); + gl->m_pat = gl->m_pat->next; + } + gl->m_pat = ft_ld_front(gl->m_pat); + } +} diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index 54ec2b89..2c4dd9f1 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/02/07 19:57:44 by wescande ### ########.fr */ +/* Updated: 2017/02/17 17:47:27 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -45,6 +45,7 @@ char **glob(char *pat, unsigned char *esc, expand_var(&gl); ft_memdel((void **)&gl.esc2); expand_brace(&gl); + expand_bquote(&gl); while (gl.m_pat->next && !(gl.found = 0)) { gl.cur_dir = 1; From ea073dceafff3d951914af3b0d5ace580eaa19a6 Mon Sep 17 00:00:00 2001 From: gwojda Date: Sat, 18 Feb 2017 14:42:43 +0100 Subject: [PATCH 85/98] correction segv edition de ligne + ajout table de hash --- 42sh/Makefile | 5 + 42sh/includes/hash.h | 33 +++++ 42sh/includes/minishell.h | 3 +- 42sh/src/builtin/builtin_exit.c | 3 +- 42sh/src/exec/launch_process.c | 4 +- 42sh/src/exec/process_setexec.c | 7 +- 42sh/src/hash_table/ft_add_hash.c | 28 ++++ 42sh/src/hash_table/hash.c | 23 +++ 42sh/src/hash_table/hash_free.c | 34 +++++ 42sh/src/hash_table/hash_str.c | 29 ++++ 42sh/src/hash_table/is_hash.c | 34 +++++ 42sh/src/line-editing/queue.c | 4 +- 42sh/test | 236 ++++++++++++++++++++++++++++++ 42sh/testmake | 15 ++ 14 files changed, 449 insertions(+), 9 deletions(-) create mode 100644 42sh/includes/hash.h create mode 100644 42sh/src/hash_table/ft_add_hash.c create mode 100644 42sh/src/hash_table/hash.c create mode 100644 42sh/src/hash_table/hash_free.c create mode 100644 42sh/src/hash_table/hash_str.c create mode 100644 42sh/src/hash_table/is_hash.c create mode 100644 42sh/test create mode 100644 42sh/testmake diff --git a/42sh/Makefile b/42sh/Makefile index a1ff1d98..fea79a42 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -110,6 +110,11 @@ glob/lib_perso/ft_strsubf.c\ glob/lib_perso/ft_tabdel.c\ glob/lib_perso/ft_tablen.c\ glob/match_pattern.c\ +hash_table/ft_add_hash.c\ +hash_table/hash.c\ +hash_table/hash_free.c\ +hash_table/hash_str.c\ +hash_table/is_hash.c\ history/add_str_in_history.c\ history/history.c\ history/history_parsing.c\ diff --git a/42sh/includes/hash.h b/42sh/includes/hash.h new file mode 100644 index 00000000..fa43f929 --- /dev/null +++ b/42sh/includes/hash.h @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* hash.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 11:10:14 by gwojda #+# #+# */ +/* Updated: 2017/02/18 14:18:06 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef HASH_H +# define HASH_H + +# define MAX_HASH 200 + +extern t_list *g_hash[MAX_HASH]; + +typedef struct s_hash +{ + char *key; + char *path; +} t_hash; + +int ft_add_hash(t_process *p); +int ft_hash(t_process *p); +int ft_is_hash(t_process *p); +int ft_hash_str(char *str); + +void ft_free_hash_table(void); + +#endif diff --git a/42sh/includes/minishell.h b/42sh/includes/minishell.h index 5ba7c179..c034720b 100644 --- a/42sh/includes/minishell.h +++ b/42sh/includes/minishell.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/10 13:07:44 by jhalford #+# #+# */ -/* Updated: 2017/02/15 14:20:59 by gwojda ### ########.fr */ +/* Updated: 2017/02/18 11:10:50 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,6 +24,7 @@ # include "job_control.h" # include "glob.h" # include "completion.h" +# include "hash.h" # include # include diff --git a/42sh/src/builtin/builtin_exit.c b/42sh/src/builtin/builtin_exit.c index 42539ac2..fd884465 100644 --- a/42sh/src/builtin/builtin_exit.c +++ b/42sh/src/builtin/builtin_exit.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:28:41 by jhalford #+# #+# */ -/* Updated: 2017/02/16 12:44:44 by gwojda ### ########.fr */ +/* Updated: 2017/02/18 14:17:28 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -37,6 +37,7 @@ int builtin_exit(const char *path, char *const av[], char *const envp[]) status = 0; } ft_save_termios(-1); + ft_free_hash_table(); exit(status); return (0); } diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index 055109e0..e3e1f757 100644 --- a/42sh/src/exec/launch_process.c +++ b/42sh/src/exec/launch_process.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* launch_process.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 14:20:45 by jhalford #+# #+# */ -/* Updated: 2017/02/07 17:54:12 by jhalford ### ########.fr */ +/* Updated: 2017/02/18 13:27:16 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/exec/process_setexec.c b/42sh/src/exec/process_setexec.c index be358b0e..e5d0860d 100644 --- a/42sh/src/exec/process_setexec.c +++ b/42sh/src/exec/process_setexec.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* process_setexec.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ +/* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 17:07:10 by jhalford #+# #+# */ -/* Updated: 2017/02/07 12:07:43 by jhalford ### ########.fr */ +/* Updated: 2017/02/18 13:24:16 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,8 +28,7 @@ int process_setexec(t_type type, t_process *p) p->attributes |= PROCESS_SCRIPT; p->path = ft_strdup(p->av[0]); } - else if ((p->path = ft_findexec(ft_getenv( - data_singleton()->env, "PATH"), p->av[0]))) + else if (ft_hash(p)) { p->execf = &execve; p->attributes |= PROCESS_BINARY; diff --git a/42sh/src/hash_table/ft_add_hash.c b/42sh/src/hash_table/ft_add_hash.c new file mode 100644 index 00000000..ba18cc91 --- /dev/null +++ b/42sh/src/hash_table/ft_add_hash.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_add_hash.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 11:20:11 by gwojda #+# #+# */ +/* Updated: 2017/02/18 14:38:21 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +# include "minishell.h" + +int ft_add_hash(t_process *p) +{ + int id; + t_hash hash; + + if (!(hash.path = ft_findexec( + ft_getenv(data_singleton()->env, "PATH"), p->av[0]))) + return (0); + hash.key = ft_strdup(p->av[0]); + id = ft_hash_str(p->av[0]); + ft_lsteadd(&(g_hash[id]), ft_lstnew(&hash, sizeof(t_hash))); + p->path = ft_strdup(hash.path); + return (1); +} diff --git a/42sh/src/hash_table/hash.c b/42sh/src/hash_table/hash.c new file mode 100644 index 00000000..fa3604fd --- /dev/null +++ b/42sh/src/hash_table/hash.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* hash.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 11:06:19 by gwojda #+# #+# */ +/* Updated: 2017/02/18 14:16:35 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +t_list *g_hash[MAX_HASH] = {NULL}; + +int ft_hash(t_process *p) +{ + if (!ft_is_hash(p)) + if (!ft_add_hash(p)) + return (0); + return (1); +} diff --git a/42sh/src/hash_table/hash_free.c b/42sh/src/hash_table/hash_free.c new file mode 100644 index 00000000..8406c5c3 --- /dev/null +++ b/42sh/src/hash_table/hash_free.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* hash_free.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 14:12:22 by gwojda #+# #+# */ +/* Updated: 2017/02/18 14:20:20 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_hash_free(void *ptr, size_t size) +{ + (void)size; + free(((t_hash *)ptr)->key); + free(((t_hash *)ptr)->path); + free(ptr); +} + +void ft_free_hash_table(void) +{ + int i; + + i = 0; + while (i < MAX_HASH) + { + if (g_hash[i]) + ft_lstdel(&g_hash[i], &ft_hash_free); + ++i; + } +} diff --git a/42sh/src/hash_table/hash_str.c b/42sh/src/hash_table/hash_str.c new file mode 100644 index 00000000..98113a76 --- /dev/null +++ b/42sh/src/hash_table/hash_str.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* hash_str.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 11:32:18 by gwojda #+# #+# */ +/* Updated: 2017/02/18 14:38:05 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +int ft_hash_str(char *str) +{ + int i; + int id; + + i = 0; + id = 0; + while (str[i]) + { + id += str[i] * ft_pow(10, i); + id = id % MAX_HASH; + ++i; + } + return (id); +} diff --git a/42sh/src/hash_table/is_hash.c b/42sh/src/hash_table/is_hash.c new file mode 100644 index 00000000..67fad4bd --- /dev/null +++ b/42sh/src/hash_table/is_hash.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* is_hash.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 11:08:40 by gwojda #+# #+# */ +/* Updated: 2017/02/18 13:41:48 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +int ft_is_hash(t_process *p) +{ + t_list *list; + int id; + + id = ft_hash_str(p->av[0]); + if (!g_hash[id]) + return (0); + list = g_hash[id]; + while (list) + { + if (!ft_strcmp(((t_hash *)list->content)->key, p->av[0])) + { + p->path = ft_strdup(((t_hash *)list->content)->path); + return (1); + } + list = list->next; + } + return (0); +} diff --git a/42sh/src/line-editing/queue.c b/42sh/src/line-editing/queue.c index dded6bd6..c97e74fb 100644 --- a/42sh/src/line-editing/queue.c +++ b/42sh/src/line-editing/queue.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 16:52:57 by gwojda #+# #+# */ -/* Updated: 2017/02/14 11:18:22 by gwojda ### ########.fr */ +/* Updated: 2017/02/18 13:58:29 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -63,6 +63,8 @@ void ft_read_it(int input, size_t *pos, char **str) return ; ft_read_it_2(input, t); ft_read_it_3(str, t, pos, &j); + if (!*str) + return ; *pos = pos_tmp; ft_current_str((*str), *pos); ft_get_next_str((*str), pos); diff --git a/42sh/test b/42sh/test new file mode 100644 index 00000000..ab786912 --- /dev/null +++ b/42sh/test @@ -0,0 +1,236 @@ + shell_init.c 28 interactive shell settings + main.c 88 start of shell JOBC is ON + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + main.c 64 [] stack=[0] state=[0] + shell_exit.c 17 shell_exit() diff --git a/42sh/testmake b/42sh/testmake new file mode 100644 index 00000000..449a84eb --- /dev/null +++ b/42sh/testmake @@ -0,0 +1,15 @@ + shell_init.c 28 interactive shell settings + main.c 88 start of shell JOBC is ON + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [env] stack=[0] state=[4] + token_print.c 29 13:[env] + shell_exit.c 17 shell_exit() From c7d8da6f73402eff0084b370c87ffe6b2ba21d6b Mon Sep 17 00:00:00 2001 From: gwojda Date: Sat, 18 Feb 2017 14:44:24 +0100 Subject: [PATCH 86/98] correction segv edition de ligne + ajout table de hash --- 42sh/test | 236 -------------------------------------------------- 42sh/testmake | 15 ---- 2 files changed, 251 deletions(-) delete mode 100644 42sh/test delete mode 100644 42sh/testmake diff --git a/42sh/test b/42sh/test deleted file mode 100644 index ab786912..00000000 --- a/42sh/test +++ /dev/null @@ -1,236 +0,0 @@ - shell_init.c 28 interactive shell settings - main.c 88 start of shell JOBC is ON - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - main.c 64 [] stack=[0] state=[0] - shell_exit.c 17 shell_exit() diff --git a/42sh/testmake b/42sh/testmake deleted file mode 100644 index 449a84eb..00000000 --- a/42sh/testmake +++ /dev/null @@ -1,15 +0,0 @@ - shell_init.c 28 interactive shell settings - main.c 88 start of shell JOBC is ON - main.c 64 [ls] stack=[0] state=[4] - token_print.c 29 13:[ls] - main.c 64 [ls] stack=[0] state=[4] - token_print.c 29 13:[ls] - main.c 64 [ls] stack=[0] state=[4] - token_print.c 29 13:[ls] - main.c 64 [ls] stack=[0] state=[4] - token_print.c 29 13:[ls] - main.c 64 [ls] stack=[0] state=[4] - token_print.c 29 13:[ls] - main.c 64 [env] stack=[0] state=[4] - token_print.c 29 13:[env] - shell_exit.c 17 shell_exit() From 480c9810c9340075371250acf5cbc8aa0e07029e Mon Sep 17 00:00:00 2001 From: gwojda Date: Sat, 18 Feb 2017 16:52:55 +0100 Subject: [PATCH 87/98] =?UTF-8?q?ajout=20builtin=20hash=20+=20ajout=20reha?= =?UTF-8?q?sh=20si=20access=20ne=20fonctionne=20pas=20sur=20path=20donn?= =?UTF-8?q?=C3=A9=20dans=20la=20table?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/Makefile | 1 + 42sh/includes/builtin.h | 3 +- 42sh/includes/hash.h | 3 +- 42sh/src/builtin/builtin_exit.c | 2 +- 42sh/src/builtin/builtin_hash.c | 56 +++++++++++++++++++++++++++++++++ 42sh/src/builtin/is_builtin.c | 3 +- 42sh/src/hash_table/is_hash.c | 13 ++++++-- 42sh/test | 21 +++++++++++++ 42sh/testmake | 3 ++ 9 files changed, 98 insertions(+), 7 deletions(-) create mode 100644 42sh/src/builtin/builtin_hash.c create mode 100644 42sh/test create mode 100644 42sh/testmake diff --git a/42sh/Makefile b/42sh/Makefile index fea79a42..7c55625d 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -37,6 +37,7 @@ builtin/builtin_echo.c\ builtin/builtin_env.c\ builtin/builtin_exit.c\ builtin/builtin_export.c\ +builtin/builtin_hash.c\ builtin/builtin_history.c\ builtin/builtin_read.c\ builtin/builtin_setenv.c\ diff --git a/42sh/includes/builtin.h b/42sh/includes/builtin.h index bb3c2637..dd7b03a8 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/02/15 11:45:15 by gwojda ### ########.fr */ +/* Updated: 2017/02/18 16:44:35 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,5 +30,6 @@ 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[]); +int builtin_hash(const char *path, char *const av[], char *const envp[]); #endif diff --git a/42sh/includes/hash.h b/42sh/includes/hash.h index fa43f929..aa4dab8c 100644 --- a/42sh/includes/hash.h +++ b/42sh/includes/hash.h @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/18 11:10:14 by gwojda #+# #+# */ -/* Updated: 2017/02/18 14:18:06 by gwojda ### ########.fr */ +/* Updated: 2017/02/18 16:35:34 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,6 +28,7 @@ int ft_hash(t_process *p); int ft_is_hash(t_process *p); int ft_hash_str(char *str); +void ft_hash_free(void *ptr, size_t size); void ft_free_hash_table(void); #endif diff --git a/42sh/src/builtin/builtin_exit.c b/42sh/src/builtin/builtin_exit.c index fd884465..370e60ac 100644 --- a/42sh/src/builtin/builtin_exit.c +++ b/42sh/src/builtin/builtin_exit.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 14:28:41 by jhalford #+# #+# */ -/* Updated: 2017/02/18 14:17:28 by gwojda ### ########.fr */ +/* Updated: 2017/02/18 16:48:42 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/builtin/builtin_hash.c b/42sh/src/builtin/builtin_hash.c new file mode 100644 index 00000000..f030a63d --- /dev/null +++ b/42sh/src/builtin/builtin_hash.c @@ -0,0 +1,56 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* builtin_hash.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/02/18 16:37:43 by gwojda #+# #+# */ +/* Updated: 2017/02/18 16:51:43 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +static void ft_hash_lst_print(t_list *list) +{ + while (list) + { + ft_putstr(((t_hash *)list->content)->key); + ft_putchar('='); + ft_putstr(((t_hash *)list->content)->path); + ft_putchar('\n'); + list = list->next; + } +} + +static int ft_hash_opt(char *const av[]) +{ + if (av[1] && !ft_strcmp(av[1], "-r")) + ft_free_hash_table(); + else if (av[1]) + { + ft_dprintf(2, "42sh: hash: invalid option\n"); + ft_dprintf(2, "hash: usage: hash [-r]\n"); + return (1); + } + return (0); +} + +int builtin_hash(const char *path, char *const av[], char *const envp[]) +{ + int i; + + (void)path; + (void)envp; + if (ft_hash_opt(av)) + return (0); + i = 0; + while (i < MAX_HASH) + { + if (g_hash[i]) + ft_hash_lst_print(g_hash[i]); + ++i; + } + return (0); +} diff --git a/42sh/src/builtin/is_builtin.c b/42sh/src/builtin/is_builtin.c index 8dd86660..d9ba30bc 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/02/15 11:44:31 by gwojda ### ########.fr */ +/* Updated: 2017/02/18 16:44:56 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,6 +27,7 @@ t_stof g_builtin[] = {"bg", &builtin_bg}, {"history", &builtin_history}, {"read", &builtin_read}, + {"hash", &builtin_hash}, {NULL, NULL}, }; diff --git a/42sh/src/hash_table/is_hash.c b/42sh/src/hash_table/is_hash.c index 67fad4bd..03fdf717 100644 --- a/42sh/src/hash_table/is_hash.c +++ b/42sh/src/hash_table/is_hash.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/18 11:08:40 by gwojda #+# #+# */ -/* Updated: 2017/02/18 13:41:48 by gwojda ### ########.fr */ +/* Updated: 2017/02/18 16:42:12 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,19 +15,26 @@ int ft_is_hash(t_process *p) { t_list *list; + t_list *ref; int id; id = ft_hash_str(p->av[0]); - if (!g_hash[id]) - return (0); list = g_hash[id]; + ref = list; while (list) { if (!ft_strcmp(((t_hash *)list->content)->key, p->av[0])) { + if (access(((t_hash *)list->content)->path, X_OK)) + { + ref->next = list->next; + ft_lstdelone(&list, &ft_hash_free); + return (0); + } p->path = ft_strdup(((t_hash *)list->content)->path); return (1); } + ref = list; list = list->next; } return (0); diff --git a/42sh/test b/42sh/test new file mode 100644 index 00000000..2fc442d0 --- /dev/null +++ b/42sh/test @@ -0,0 +1,21 @@ + shell_init.c 28 interactive shell settings + main.c 88 start of shell JOBC is ON + main.c 64 [hash -r] stack=[0] state=[4] + token_print.c 29 13:[hash] + token_print.c 29 13:[-r] + main.c 64 [hash] stack=[0] state=[4] + token_print.c 29 13:[hash] + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [ls] stack=[0] state=[4] + token_print.c 29 13:[ls] + main.c 64 [grep] stack=[0] state=[4] + token_print.c 29 13:[grep] + main.c 64 [hash] stack=[0] state=[4] + token_print.c 29 13:[hash] + main.c 64 [hash -r] stack=[0] state=[4] + token_print.c 29 13:[hash] + token_print.c 29 13:[-r] + main.c 64 [hash] stack=[0] state=[4] + token_print.c 29 13:[hash] + shell_exit.c 17 shell_exit() diff --git a/42sh/testmake b/42sh/testmake new file mode 100644 index 00000000..e0995542 --- /dev/null +++ b/42sh/testmake @@ -0,0 +1,3 @@ + shell_init.c 28 interactive shell settings + main.c 88 start of shell JOBC is ON + shell_exit.c 17 shell_exit() From 923ffa1ea0dad66a36c320b64fe070bac16965b2 Mon Sep 17 00:00:00 2001 From: gwojda Date: Sun, 19 Feb 2017 12:02:34 +0100 Subject: [PATCH 88/98] correction free history + crash potentiel sur la table de hash --- 42sh/includes/hash.h | 2 +- 42sh/src/hash_table/hash_str.c | 8 +++++++- 42sh/src/history/history_parsing_toolz.c | 6 +++--- 42sh/test | 21 --------------------- 42sh/testmake | 3 --- 5 files changed, 11 insertions(+), 29 deletions(-) delete mode 100644 42sh/test delete mode 100644 42sh/testmake diff --git a/42sh/includes/hash.h b/42sh/includes/hash.h index aa4dab8c..ebdde0b7 100644 --- a/42sh/includes/hash.h +++ b/42sh/includes/hash.h @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/18 11:10:14 by gwojda #+# #+# */ -/* Updated: 2017/02/18 16:35:34 by gwojda ### ########.fr */ +/* Updated: 2017/02/19 10:59:19 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/hash_table/hash_str.c b/42sh/src/hash_table/hash_str.c index 98113a76..3881a69e 100644 --- a/42sh/src/hash_table/hash_str.c +++ b/42sh/src/hash_table/hash_str.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/18 11:32:18 by gwojda #+# #+# */ -/* Updated: 2017/02/18 14:38:05 by gwojda ### ########.fr */ +/* Updated: 2017/02/19 12:01:37 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,5 +25,11 @@ int ft_hash_str(char *str) id = id % MAX_HASH; ++i; } + if (id < 0) + { + id *= -1; + id = id % MAX_HASH; + } + ft_printf("id = %d\n", id); return (id); } diff --git a/42sh/src/history/history_parsing_toolz.c b/42sh/src/history/history_parsing_toolz.c index 3017d4ec..ef10163e 100644 --- a/42sh/src/history/history_parsing_toolz.c +++ b/42sh/src/history/history_parsing_toolz.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/25 14:09:39 by gwojda #+# #+# */ -/* Updated: 2017/02/03 17:03:23 by gwojda ### ########.fr */ +/* Updated: 2017/02/19 11:55:44 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -44,12 +44,12 @@ void ft_realloc_str_history(char **str, size_t pos, int nb_his, int len) 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(new_str); free(*str); *str = new_str3; } @@ -81,12 +81,12 @@ void ft_realloc_str_history_2(char **str, size_t pos, char *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(new_str); free(s); free(*str); *str = new_str3; diff --git a/42sh/test b/42sh/test deleted file mode 100644 index 2fc442d0..00000000 --- a/42sh/test +++ /dev/null @@ -1,21 +0,0 @@ - shell_init.c 28 interactive shell settings - main.c 88 start of shell JOBC is ON - main.c 64 [hash -r] stack=[0] state=[4] - token_print.c 29 13:[hash] - token_print.c 29 13:[-r] - main.c 64 [hash] stack=[0] state=[4] - token_print.c 29 13:[hash] - main.c 64 [ls] stack=[0] state=[4] - token_print.c 29 13:[ls] - main.c 64 [ls] stack=[0] state=[4] - token_print.c 29 13:[ls] - main.c 64 [grep] stack=[0] state=[4] - token_print.c 29 13:[grep] - main.c 64 [hash] stack=[0] state=[4] - token_print.c 29 13:[hash] - main.c 64 [hash -r] stack=[0] state=[4] - token_print.c 29 13:[hash] - token_print.c 29 13:[-r] - main.c 64 [hash] stack=[0] state=[4] - token_print.c 29 13:[hash] - shell_exit.c 17 shell_exit() diff --git a/42sh/testmake b/42sh/testmake deleted file mode 100644 index e0995542..00000000 --- a/42sh/testmake +++ /dev/null @@ -1,3 +0,0 @@ - shell_init.c 28 interactive shell settings - main.c 88 start of shell JOBC is ON - shell_exit.c 17 shell_exit() From f05172b9e1902daee323387bfbec648a7587b118 Mon Sep 17 00:00:00 2001 From: gwojda Date: Sun, 19 Feb 2017 12:58:59 +0100 Subject: [PATCH 89/98] oublie ligne de debug --- 42sh/src/hash_table/hash_str.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/42sh/src/hash_table/hash_str.c b/42sh/src/hash_table/hash_str.c index 3881a69e..f7e70f11 100644 --- a/42sh/src/hash_table/hash_str.c +++ b/42sh/src/hash_table/hash_str.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/18 11:32:18 by gwojda #+# #+# */ -/* Updated: 2017/02/19 12:01:37 by gwojda ### ########.fr */ +/* Updated: 2017/02/19 12:58:47 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,6 +30,5 @@ int ft_hash_str(char *str) id *= -1; id = id % MAX_HASH; } - ft_printf("id = %d\n", id); return (id); } From 8abf9fe43386a6c298d0e4eef33bd0f9c06d2653 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sun, 19 Feb 2017 14:43:45 +0100 Subject: [PATCH 90/98] lexer function increment lexer.pos not lexer.str --- 42sh/.gitignore | 1 + 42sh/file | 18 ------------------ 42sh/libft | 2 +- 42sh/src/lexer/lexer_greatand.c | 4 ++-- 42sh/src/lexer/lexer_lessand.c | 4 ++-- 42sh/src/main/main.c | 4 +++- 6 files changed, 9 insertions(+), 24 deletions(-) delete mode 100644 42sh/file diff --git a/42sh/.gitignore b/42sh/.gitignore index d5fb06f4..1ecc9980 100644 --- a/42sh/.gitignore +++ b/42sh/.gitignore @@ -2,6 +2,7 @@ minishell 21sh 42sh out +STDBUG debug .42sh_history *.dSYM diff --git a/42sh/file b/42sh/file deleted file mode 100644 index 982f231a..00000000 --- a/42sh/file +++ /dev/null @@ -1,18 +0,0 @@ -4 -42sh -Makefile -Session.vim -debug -donovan_segaults_06-02 -file -file1 -file2 -file3 -includes -libft -objs -out -pdf -script.sh -src -update_makefile.sh diff --git a/42sh/libft b/42sh/libft index a82ea94e..0ca8ca81 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit a82ea94ef7f50f8396d7bf6f9c08ab4a7faa994d +Subproject commit 0ca8ca817f32fc0345ef93ef74a3abe2583bd89c diff --git a/42sh/src/lexer/lexer_greatand.c b/42sh/src/lexer/lexer_greatand.c index d2da04ed..1c44c88e 100644 --- a/42sh/src/lexer/lexer_greatand.c +++ b/42sh/src/lexer/lexer_greatand.c @@ -21,13 +21,13 @@ int lexer_greatand(t_list **alst, t_lexer *lexer) if (ft_isdigit(lexer->str[lexer->pos])) { token_append(token, lexer, 0, 0); - lexer->str++; + lexer->pos++; return (lexer_greatand(alst, lexer)); } else if (lexer->str[lexer->pos] == '-') { token_append(token, lexer, 0, 0); - lexer->str++; + lexer->pos++; lexer->state = DEFAULT; return (lexer_lex(&(*alst)->next, lexer)); } diff --git a/42sh/src/lexer/lexer_lessand.c b/42sh/src/lexer/lexer_lessand.c index cf1547cc..f411b225 100644 --- a/42sh/src/lexer/lexer_lessand.c +++ b/42sh/src/lexer/lexer_lessand.c @@ -21,13 +21,13 @@ int lexer_lessand(t_list **alst, t_lexer *lexer) if (ft_isdigit(lexer->str[lexer->pos])) { token_append(token, lexer, 0, 0); - lexer->str++; + lexer->pos++; return (lexer_lessand(alst, lexer)); } else if (lexer->str[lexer->pos] == '-') { token_append(token, lexer, 0, 0); - lexer->str++; + lexer->pos++; lexer->state = DEFAULT; return (lexer_lex(&(*alst)->next, lexer)); } diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 8ab40dfb..09e5c839 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -53,7 +53,8 @@ int interactive_shell() token = NULL; ast = NULL; do { - ft_strappend(&lexer.str, readline(stack_to_prompt(lexer.stack))); + char *str = readline(stack_to_prompt(lexer.stack)); + ft_strappend(&lexer.str, str); if (get_lexer_stack(lexer) == BACKSLASH) pop(&lexer.stack); else if (get_lexer_stack(lexer) == DLESS) @@ -74,6 +75,7 @@ int interactive_shell() btree_print(STDBUG, ast, &ft_putast); if (ft_exec(&ast)) return (1); + DG("gonna free [%s] @ [%p]", lexer.str, lexer.str); ft_strdel(&lexer.str); return (0); } From c65e07038b41563529f96057360896dee378a42d Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sun, 19 Feb 2017 15:03:51 +0100 Subject: [PATCH 91/98] lexing problems w/ less and great --- 42sh/src/exec/process_redirect.c | 1 + 42sh/src/lexer/lexer_great.c | 8 ++++---- 42sh/src/lexer/lexer_less.c | 8 ++++---- 42sh/src/main/main.c | 3 +-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/42sh/src/exec/process_redirect.c b/42sh/src/exec/process_redirect.c index eec4d26d..33654306 100644 --- a/42sh/src/exec/process_redirect.c +++ b/42sh/src/exec/process_redirect.c @@ -54,5 +54,6 @@ int process_redirect(t_process *p) dup2_close(p->fdin, STDIN); if (p->fdout != STDOUT) dup2_close(p->fdout, STDOUT); + ft_lstdel(&p->redirs, ft_lst_cfree); return (0); } diff --git a/42sh/src/lexer/lexer_great.c b/42sh/src/lexer/lexer_great.c index 5731cdae..3bac3ca1 100644 --- a/42sh/src/lexer/lexer_great.c +++ b/42sh/src/lexer/lexer_great.c @@ -18,18 +18,18 @@ int lexer_great(t_list **alst, t_lexer *lexer) token = (*alst)->content; token_append(token, lexer, 0, 0); - if (lexer->str[lexer->pos + 1] == '&') + DG("lexer->str=[%s]", lexer->str); + lexer->pos++; + if (lexer->str[lexer->pos] == '&') { token->type = TK_GREATAND; - lexer->pos++; token_append(token, lexer, 0, 0); lexer->pos++; return (lexer_greatand(alst, lexer)); } - if (lexer->str[lexer->pos + 1] == '>') + if (lexer->str[lexer->pos] == '>') { token->type = TK_DGREAT; - lexer->pos++; token_append(token, lexer, 0, 0); lexer->pos++; lexer->state = DEFAULT; diff --git a/42sh/src/lexer/lexer_less.c b/42sh/src/lexer/lexer_less.c index 4f8eae63..1a8105c0 100644 --- a/42sh/src/lexer/lexer_less.c +++ b/42sh/src/lexer/lexer_less.c @@ -18,20 +18,20 @@ int lexer_less(t_list **alst, t_lexer *lexer) token = (*alst)->content; token_append(token, lexer, 0, 0); - if (lexer->str[lexer->pos + 1] == '&') + lexer->pos++; + if (lexer->str[lexer->pos] == '&') { token->type = TK_LESSAND; - lexer->pos++; token_append(token, lexer, 0, 0); lexer->pos++; return (lexer_lessand(alst, lexer)); } - if (lexer->str[lexer->pos + 1] == '<') + if (lexer->str[lexer->pos] == '<') { token_free(token, 0); (*alst)->content = token_init(); token->type = TK_DLESS; - lexer->pos += 2; + lexer->pos++; push(&lexer->stack, DLESS); lexer->state = DEFAULT; ft_lsteadd(&lexer->heredoc_stack, ft_lstnew(alst, sizeof(alst))); diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 09e5c839..a005c4ef 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -60,7 +60,7 @@ int interactive_shell() else if (get_lexer_stack(lexer) == DLESS) lexer.state = DLESS; ltoken = ft_lstlast(token); - if (lexer_lex((token ? <oken : &token), &lexer)) + if (lexer_lex(token ? <oken : &token, &lexer)) return (1); DG("[{mag}%s{eoc}] stack=[%i] state=[%i]", lexer.str, lexer.stack ? *(int*)lexer.stack->content : 0, lexer.state); token_print(token); @@ -75,7 +75,6 @@ int interactive_shell() btree_print(STDBUG, ast, &ft_putast); if (ft_exec(&ast)) return (1); - DG("gonna free [%s] @ [%p]", lexer.str, lexer.str); ft_strdel(&lexer.str); return (0); } From 694744bf0cbf42e89f47be97c9df98a3215d5196 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sun, 19 Feb 2017 15:18:46 +0100 Subject: [PATCH 92/98] PIPESINGLE macro was wrong --- 42sh/includes/exec.h | 2 +- 42sh/src/exec/launch_process.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/42sh/includes/exec.h b/42sh/includes/exec.h index c2743bea..70a3de50 100644 --- a/42sh/includes/exec.h +++ b/42sh/includes/exec.h @@ -33,7 +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)) +# define IS_PIPESINGLE(a) ((a & PROCESS_PIPESTART) && (a & PROCESS_PIPEEND)) # include "libft.h" # include "types.h" diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index e3e1f757..6409bf9b 100644 --- a/42sh/src/exec/launch_process.c +++ b/42sh/src/exec/launch_process.c @@ -18,6 +18,7 @@ int launch_process(t_process *p) int pid; exec = &data_singleton()->exec; + DG("launching"); if (p->attributes & PROCESS_UNKNOWN) { ft_dprintf(2, "{red}%s: command not found: %s{eoc}\n", SHELL_NAME, p->av[0]); @@ -25,6 +26,7 @@ int launch_process(t_process *p) } else if (p->attributes & PROCESS_BUILTIN && IS_PIPESINGLE(p->attributes)) { + DG("check 0"); if (process_redirect(p)) return (1); set_exitstatus((*p->execf)(p->path, p->av, data_singleton()->env), 1); @@ -40,6 +42,7 @@ int launch_process(t_process *p) set_exitstatus(126, 1); return (1); } + DG("gonna fork now"); pid = fork(); if (pid == 0) { From 56fe780999137843b9f763fdbc43734472a11f54 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sun, 19 Feb 2017 16:10:23 +0100 Subject: [PATCH 93/98] segfault on 'builtin | binary' fixed, 'binary | builtin' gets a SIGKILL somehow... --- 42sh/src/exec/exec_pipe.c | 2 +- 42sh/src/exec/launch_process.c | 3 --- 42sh/src/exec/process_setexec.c | 3 +++ 42sh/src/job-control/put_job_in_foreground.c | 3 +++ 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/42sh/src/exec/exec_pipe.c b/42sh/src/exec/exec_pipe.c index 833138c3..c68a0bc3 100644 --- a/42sh/src/exec/exec_pipe.c +++ b/42sh/src/exec/exec_pipe.c @@ -22,7 +22,7 @@ int exec_pipe(t_btree **ast) data = data_singleton(); p = &data_singleton()->exec.process; pipe(fds); - DG("pipe %i->%i", fds[PIPE_WRITE], fds[PIPE_READ]); + /* 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]; diff --git a/42sh/src/exec/launch_process.c b/42sh/src/exec/launch_process.c index 6409bf9b..e3e1f757 100644 --- a/42sh/src/exec/launch_process.c +++ b/42sh/src/exec/launch_process.c @@ -18,7 +18,6 @@ int launch_process(t_process *p) int pid; exec = &data_singleton()->exec; - DG("launching"); if (p->attributes & PROCESS_UNKNOWN) { ft_dprintf(2, "{red}%s: command not found: %s{eoc}\n", SHELL_NAME, p->av[0]); @@ -26,7 +25,6 @@ int launch_process(t_process *p) } else if (p->attributes & PROCESS_BUILTIN && IS_PIPESINGLE(p->attributes)) { - DG("check 0"); if (process_redirect(p)) return (1); set_exitstatus((*p->execf)(p->path, p->av, data_singleton()->env), 1); @@ -42,7 +40,6 @@ int launch_process(t_process *p) set_exitstatus(126, 1); return (1); } - DG("gonna fork now"); pid = fork(); if (pid == 0) { diff --git a/42sh/src/exec/process_setexec.c b/42sh/src/exec/process_setexec.c index e5d0860d..348a2f30 100644 --- a/42sh/src/exec/process_setexec.c +++ b/42sh/src/exec/process_setexec.c @@ -14,6 +14,7 @@ int process_setexec(t_type type, t_process *p) { + p->path = NULL; if (type == TK_SUBSHELL) { p->execf = &execve; @@ -21,7 +22,9 @@ int process_setexec(t_type type, t_process *p) p->path = ft_strdup(p->av[0]); } else if ((p->execf = is_builtin(p))) + { p->attributes |= PROCESS_BUILTIN; + } else if (ft_strchr(p->av[0], '/')) { p->execf = &execve; diff --git a/42sh/src/job-control/put_job_in_foreground.c b/42sh/src/job-control/put_job_in_foreground.c index 187ca02f..4985e4c4 100644 --- a/42sh/src/job-control/put_job_in_foreground.c +++ b/42sh/src/job-control/put_job_in_foreground.c @@ -26,8 +26,11 @@ int put_job_in_foreground(t_job *j, int cont) if (kill(-j->pgid, SIGCONT) < 0) DG("kill(SIGCONT) failed"); } + DG("check 00"); job_wait(j->id); + DG("check 01"); job_remove(j->id); + DG("check 02"); tcsetpgrp(STDIN, jobc->shell_pgid); From 7cc0aa0e978e1d84b6e85c47f27bf995bae4b92c Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Sun, 19 Feb 2017 17:15:07 +0100 Subject: [PATCH 94/98] removed DG messages --- 42sh/src/job-control/put_job_in_foreground.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/42sh/src/job-control/put_job_in_foreground.c b/42sh/src/job-control/put_job_in_foreground.c index 4985e4c4..187ca02f 100644 --- a/42sh/src/job-control/put_job_in_foreground.c +++ b/42sh/src/job-control/put_job_in_foreground.c @@ -26,11 +26,8 @@ int put_job_in_foreground(t_job *j, int cont) if (kill(-j->pgid, SIGCONT) < 0) DG("kill(SIGCONT) failed"); } - DG("check 00"); job_wait(j->id); - DG("check 01"); job_remove(j->id); - DG("check 02"); tcsetpgrp(STDIN, jobc->shell_pgid); From 9678900238df60afb95a1038ed9f0acd12310cd3 Mon Sep 17 00:00:00 2001 From: gwojda Date: Mon, 20 Feb 2017 14:35:18 +0100 Subject: [PATCH 95/98] =?UTF-8?q?on=20a=20retrouv=C3=A9=20le=20soldat=20TE?= =?UTF-8?q?RM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 42sh/src/line-editing/lib_line_editing/toolz2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/42sh/src/line-editing/lib_line_editing/toolz2.c b/42sh/src/line-editing/lib_line_editing/toolz2.c index e22e9fb7..ea8836fe 100644 --- a/42sh/src/line-editing/lib_line_editing/toolz2.c +++ b/42sh/src/line-editing/lib_line_editing/toolz2.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/07 11:00:28 by gwojda #+# #+# */ -/* Updated: 2017/02/16 16:05:40 by gwojda ### ########.fr */ +/* Updated: 2017/02/20 14:32:08 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,7 +25,7 @@ void ft_puttermcaps(char *str) char *res; char *env; - env = ft_getenv(data_singleton()->env, "TERM"); + env = getenv("TERM"); if ((res = tgetstr(str, &env)) == NULL) return ; tputs(res, 0, ft_put); From 169aa62b7edcaabef54ed07505c235e0e1e958f0 Mon Sep 17 00:00:00 2001 From: wescande Date: Mon, 20 Feb 2017 15:31:13 +0100 Subject: [PATCH 96/98] rectif nombreuses issues + ajout de l'expansion des backquote --- 42sh/Makefile | 1 + 42sh/file | 18 ---- 42sh/includes/glob.h | 3 +- 42sh/src/glob/expand_bquote.c | 159 ++++++++++++++------------------ 42sh/src/glob/expand_brace.c | 13 +-- 42sh/src/glob/expand_var.c | 11 ++- 42sh/src/glob/ft_strsplit_spe.c | 3 +- 42sh/src/glob/glob.c | 4 +- 42sh/src/glob/match_pattern.c | 6 +- 42sh/src/lexer/expand_bquotes.c | 5 +- 42sh/src/main/main.c | 9 +- 11 files changed, 102 insertions(+), 130 deletions(-) delete mode 100644 42sh/file diff --git a/42sh/Makefile b/42sh/Makefile index 220e4cec..af4c2ff4 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -85,6 +85,7 @@ exec/redirect_lessand.c\ exec/set_exitstatus.c\ glob/dir_glob.c\ glob/esc_print.c\ +glob/expand_bquote.c\ glob/expand_brace.c\ glob/expand_esc.c\ glob/expand_var.c\ diff --git a/42sh/file b/42sh/file deleted file mode 100644 index 982f231a..00000000 --- a/42sh/file +++ /dev/null @@ -1,18 +0,0 @@ -4 -42sh -Makefile -Session.vim -debug -donovan_segaults_06-02 -file -file1 -file2 -file3 -includes -libft -objs -out -pdf -script.sh -src -update_makefile.sh diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index 56d25818..f5acc6c3 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/02/17 15:42:09 by jhalford ### ########.fr */ +/* Updated: 2017/02/20 14:10:48 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -82,6 +82,7 @@ unsigned char *calc_expand_esc(const unsigned char *esc, void modify_esc_split(unsigned char *esc_dest, unsigned char *esc_src, int start, int len); void expand_brace(t_glob *tglob); +void expand_bquote(t_glob *gl); void expand_var(t_glob *tglob); int match_pattern(t_glob *tglob, char *str, char *full_word); int dir_research(t_glob *tglob, char *p, char *pat, int rec); diff --git a/42sh/src/glob/expand_bquote.c b/42sh/src/glob/expand_bquote.c index 2904df33..a3ec8d17 100644 --- a/42sh/src/glob/expand_bquote.c +++ b/42sh/src/glob/expand_bquote.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/17 17:47:53 by wescande #+# #+# */ -/* Updated: 2017/02/17 18:18:36 by wescande ### ########.fr */ +/* Updated: 2017/02/20 15:26:26 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,113 +18,94 @@ ** -t_glob *gl -> struct of expanding */ -static char **gen_tab(const char *pat, - const unsigned char *esc, int dup) +static void insert_bquote(t_glob *gl, char *pos, char *name, char *content) { - char **my_tab; + char *s1; + char *s2; + int delta; + unsigned char *new_esc; - if (!(my_tab = (char **)malloc(sizeof(char *) * 3))) - return (NULL); - if (dup) - { - my_tab[0] = ft_strdup(pat); - my_tab[1] = ft_strdup((const char *)esc); - } - else - { - my_tab[0] = (char *)pat; - my_tab[1] = (char *)esc; - } - my_tab[2] = NULL; - return (my_tab); + delta = pos - gl->pat; + s1 = ft_strsub(gl->pat, 0, delta); + delta += ft_strlen(name) + 1; + s2 = ft_strsubf(gl->pat, delta, ft_strlen(gl->pat) - delta, 1); + gl->pat = ft_strjoinf(ft_strjoin(s1, content), s2, 1); + new_esc = calc_expand_esc(gl->esc, ft_strlen(s1), + (int [2]){ft_strlen(content), 1}, + (int [2]){delta, ft_strlen(s2)}); + ft_memdel((void **)&gl->esc); + gl->esc = new_esc; + new_esc = calc_expand_esc(gl->esc2, ft_strlen(s1), + (int [2]){ft_strlen(content), 1}, + (int [2]){delta, ft_strlen(s2)}); + ft_memdel((void **)&gl->esc2); + gl->esc2 = new_esc; + ft_strdel(&s1); + ft_strdel(&s2); + ft_strdel(&content); } -static void iter_on_each(t_expand *me) +static void manage_bquote(int esc, char *str) { - int i; - char **my_new; - char *first; - unsigned char *second; - t_ld *wk_tmp; + int len; + char *ifs; + char *pos; - i = ft_tablen(me->split); - wk_tmp = *me->wk; - while (i--) + len = ft_strlen(str) - 1; + while (str[len] == '\n') { - first = ft_strjoinf(ft_strjoin(me->s1, me->split[i]), me->str + 1, 1); - second = calc_expand_esc(me->esc, - ft_strlen(me->s1), - (int [2]){ft_strlen(me->split[i]), 0}, - (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); + str[len--] = '\0'; } - me->wk = &wk_tmp; -} - -static int 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); - return (1); -} - -static int search_bquote(t_expand *me) -{ - char *start; - - start = NULL; - while (*me->str) + ifs = esc ? NULL : ft_getenv(data_singleton()->env, "IFS"); + if (ifs) { - start = *me->str == '`' && !is_char_esc(me->esc, CH(*me->wk)[0], - me->str) && !start ? me->str : start; - if (start && start != me->str && - *me->str == '`' && !is_char_esc(me->esc, CH(*me->wk)[0], me->str)) + while (*ifs) { - return (init_expand(me, start)); -// set_char_esc(me->esc, CH(*me->wk)[0], start); -// set_char_esc(me->esc, CH(*me->wk)[0], me->str); -// return (2); + while ((pos = ft_strchr(str, *ifs))) + *pos = ' '; + ++ifs; } - ++me->str; } - return (0); } +static char *get_cmd(t_glob *gl, const char *pat) +{ + const char *str; + + str = pat; + while (*str) + { + if (*str == '`' && !is_char_esc(gl->esc2, gl->pat, str)) + break ; + ++str; + } + if (*str) + return (ft_strsub(pat, 0, str - pat)); + return (NULL); +} + + void expand_bquote(t_glob *gl) { - t_ld *tmp; - int do_it; - t_expand me; + char *pat; + char *var; + char *content; - me = (t_expand){NULL, NULL, NULL, NULL, NULL, NULL}; - do_it = 1; - while (do_it) + pat = gl->pat; + while (*pat) { - do_it = 0; - while (gl->m_pat->next && !do_it) + if (*pat == '`' && !is_char_esc(gl->esc2, gl->pat, pat) && + (var = get_cmd(gl, pat + 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) && - (do_it = search_bquote(&me)) == 1) - ft_ld_del(&tmp, &ft_tabdel); - gl->m_pat = gl->m_pat->next; + if (ft_strlen(var)) + { + if ((content = command_getoutput(var))) + manage_bquote(is_char_esc(gl->esc, gl->pat, pat), content); + insert_bquote(gl, pat, var, content); + pat = gl->pat; + } + ft_strdel(&var); } - gl->m_pat = ft_ld_front(gl->m_pat); + ++pat; } } diff --git a/42sh/src/glob/expand_brace.c b/42sh/src/glob/expand_brace.c index 27b4b71d..418ed449 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/02/07 16:10:20 by wescande ### ########.fr */ +/* Updated: 2017/02/20 14:05:20 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -61,7 +61,7 @@ static void iter_on_each(t_expand *me) 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); + ft_ld_pushfront(me->wk, my_new); } me->wk = &wk_tmp; } @@ -87,22 +87,23 @@ static int init_expand(t_expand *me, char *start) static int search_brace(t_expand *me) { char *start; - int comma; + int com; int nb; start = NULL; nb = 0; - comma = 0; + com = 0; while (*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); - comma += *me->str == ',' && nb == 1; + com += *me->str == ',' && !is_char_esc(me->esc, CH(*me->wk)[0], me->str) + && nb == 1; if (!nb && start) { - if (comma) + if (com) return (init_expand(me, start)); set_char_esc(me->esc, CH(*me->wk)[0], start); set_char_esc(me->esc, CH(*me->wk)[0], me->str); diff --git a/42sh/src/glob/expand_var.c b/42sh/src/glob/expand_var.c index 374fbc87..c73d9c6c 100644 --- a/42sh/src/glob/expand_var.c +++ b/42sh/src/glob/expand_var.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/06 16:09:27 by wescande #+# #+# */ -/* Updated: 2017/02/07 17:18:33 by wescande ### ########.fr */ +/* Updated: 2017/02/20 15:24:34 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -29,7 +29,7 @@ static void insert_var(t_glob *gl, char *pos, char *name, char *content) s1 = ft_strsub(gl->pat, 0, delta); delta += ft_strlen(name) + 1; s2 = ft_strsubf(gl->pat, delta, ft_strlen(gl->pat) - delta, 1); - gl->pat = ft_strjoinf(ft_strjoinf(s1, content, 1), s2, 3); + gl->pat = ft_strjoinf(ft_strjoin(s1, content), s2, 1); new_esc = calc_expand_esc(gl->esc, ft_strlen(s1), (int [2]){ft_strlen(content), 1}, (int [2]){delta, ft_strlen(s2)}); @@ -40,6 +40,9 @@ static void insert_var(t_glob *gl, char *pos, char *name, char *content) (int [2]){delta, ft_strlen(s2)}); ft_memdel((void **)&gl->esc2); gl->esc2 = new_esc; + ft_strdel(&s1); + ft_strdel(&s2); + ft_strdel(&content); } static char *get_name(t_glob *gl, const char *pat) @@ -49,11 +52,11 @@ static char *get_name(t_glob *gl, const char *pat) str = pat; if (ft_isdigit(*str)) return (ft_strsub(pat, 0, str - pat + 1)); + if (*str == '?') + return (ft_strsub(pat, 0, str - pat + 1)); while ((ft_isalnum(*str) || *str == '_' || *str == '-') && !is_char_esc(gl->esc2, gl->pat, str)) ++str; - if (is_char_esc(gl->esc2, gl->pat, str)) - return (ft_strsub(pat, 0, str - pat)); return (ft_strsub(pat, 0, str - pat)); } diff --git a/42sh/src/glob/ft_strsplit_spe.c b/42sh/src/glob/ft_strsplit_spe.c index a76d475e..3948c79d 100644 --- a/42sh/src/glob/ft_strsplit_spe.c +++ b/42sh/src/glob/ft_strsplit_spe.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/31 20:49:30 by wescande #+# #+# */ -/* Updated: 2017/01/31 23:15:41 by wescande ### ########.fr */ +/* Updated: 2017/02/20 12:37:12 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -76,6 +76,7 @@ char **ft_strsplit_spe(const char *str, if (!(s1[i] = (char*)malloc(sizeof(**s1) * (len + 1)))) return (NULL); ft_strncpy(s1[i], str, len); + s1[i][len] = '\0'; str = str + len; ++i; while (*str && *str == c) diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index 2c4dd9f1..2a1a7b34 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/02/17 17:47:27 by wescande ### ########.fr */ +/* Updated: 2017/02/20 14:19:46 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -43,9 +43,9 @@ char **glob(char *pat, unsigned char *esc, gl = (t_glob){0, 0, ft_strdup(pat), dup_char_esc(esc, (len >> 3) + 1), dup_char_esc(esc2, (len >> 3) +1), NULL, NULL}; expand_var(&gl); + expand_bquote(&gl); ft_memdel((void **)&gl.esc2); expand_brace(&gl); - expand_bquote(&gl); while (gl.m_pat->next && !(gl.found = 0)) { gl.cur_dir = 1; diff --git a/42sh/src/glob/match_pattern.c b/42sh/src/glob/match_pattern.c index 086d768f..536cb08c 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/02/07 19:45:54 by wescande ### ########.fr */ +/* Updated: 2017/02/20 14:00:41 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -73,7 +73,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(gl, full_word, gl->pat + 1, 1); - if (!*++gl->pat) + if (!*gl->pat || (*gl->pat == '*' && !*++gl->pat)) return (1); fix = str + ft_strlen(str); while (fix > str) @@ -107,7 +107,7 @@ int match_pattern(t_glob *gl, char *str, char *full_word) return (0); } else if (*gl->pat == '?') - str++; + ; else if (*gl->pat == '[') { if (!match_bracket(gl, *str)) diff --git a/42sh/src/lexer/expand_bquotes.c b/42sh/src/lexer/expand_bquotes.c index 098f15f7..eec0e93e 100644 --- a/42sh/src/lexer/expand_bquotes.c +++ b/42sh/src/lexer/expand_bquotes.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/11 16:46:27 by jhalford #+# #+# */ -/* Updated: 2017/02/17 16:34:34 by jhalford ### ########.fr */ +/* Updated: 2017/02/20 14:17:03 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -68,6 +68,8 @@ int bquotes_substitute(t_list *cur_word, char *bq_start, char *bq_end) int bquotes_expand(t_list **alst) { + (void) alst; + /* t_list *cur_word; char *bq_start; char *bq_end; @@ -96,6 +98,7 @@ int bquotes_expand(t_list **alst) ft_lst_delif(alst, cur_word->content, ft_addrcmp, token_free); cur_word = *alst; } + */ return (0); } diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 8ab40dfb..f3bfdf13 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/17 16:35:24 by jhalford ### ########.fr */ +/* Updated: 2017/02/20 15:00:31 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -33,7 +33,7 @@ int non_interactive_shell(char *command) return (0); if (bquotes_expand(&token)) return (1); - token_print(token); + //token_print(token); if (ft_parse(&ast, &token)) return (1); if (ft_exec(&ast)) @@ -61,8 +61,7 @@ int interactive_shell() ltoken = ft_lstlast(token); if (lexer_lex((token ? <oken : &token), &lexer)) return (1); - DG("[{mag}%s{eoc}] stack=[%i] state=[%i]", lexer.str, lexer.stack ? *(int*)lexer.stack->content : 0, lexer.state); - token_print(token); + //token_print(token); } while (get_lexer_stack(lexer)); if (bquotes_expand(&token)) return (1); @@ -85,7 +84,7 @@ int main(int ac, char **av) data = data_singleton(); setlocale(LC_ALL, ""); shell_init(ac, av); - DG("{inv}{bol}{gre}start of shell{eoc} JOBC is %s", SH_HAS_JOBC(data->opts)?"ON":"OFF"); +// DG("{inv}{bol}{gre}start of shell{eoc} JOBC is %s", SH_HAS_JOBC(data->opts)?"ON":"OFF"); if (SH_IS_INTERACTIVE(data->opts)) { while (1) From 10596c48d996f5a6579a4030f843f29b8e4ac0cd Mon Sep 17 00:00:00 2001 From: wescande Date: Mon, 20 Feb 2017 19:11:52 +0100 Subject: [PATCH 97/98] optimisation du backquotting + mise a la norme --- 42sh/includes/glob.h | 16 ++- 42sh/libft | 2 +- 42sh/src/glob/esc_print.c | 7 +- 42sh/src/glob/expand_bquote.c | 175 ++++++++++++++++++-------------- 42sh/src/glob/expand_brace.c | 35 ++++--- 42sh/src/glob/expand_esc.c | 24 ++--- 42sh/src/glob/expand_var.c | 12 +-- 42sh/src/glob/ft_strsplit_spe.c | 7 +- 42sh/src/glob/glob.c | 36 +++---- 42sh/src/glob/is_char_esc.c | 10 +- 42sh/src/main/shell_exit.c | 4 +- 11 files changed, 188 insertions(+), 140 deletions(-) diff --git a/42sh/includes/glob.h b/42sh/includes/glob.h index f5acc6c3..33019718 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/02/20 14:10:48 by wescande ### ########.fr */ +/* Updated: 2017/02/20 19:03:45 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,8 @@ # define CH(x) ((char **)(x)->content) # define UCH(x) ((unsigned char **)(x)->content) +# define SCH(x) ((char **)(x).content) +# define SUCH(x) ((unsigned char **)(x).content) typedef struct s_ld { @@ -46,6 +48,16 @@ typedef struct s_expand char *s1; } t_expand; +typedef struct s_bquote +{ + t_ld **wk; + char *str; + unsigned char *esc; + unsigned char *esc2; + char *s1; + char *s2; + char *mid; +} t_bquote; /* ** interface of glob. */ @@ -86,6 +98,8 @@ void expand_bquote(t_glob *gl); void expand_var(t_glob *tglob); int match_pattern(t_glob *tglob, char *str, char *full_word); int dir_research(t_glob *tglob, char *p, char *pat, int rec); +char **gen_tab(const char *pat, const unsigned char *esc, + const unsigned char *esc2, int dup); 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/libft b/42sh/libft index a82ea94e..9aa3049d 160000 --- a/42sh/libft +++ b/42sh/libft @@ -1 +1 @@ -Subproject commit a82ea94ef7f50f8396d7bf6f9c08ab4a7faa994d +Subproject commit 9aa3049dd23424807316a6f027589a95cdf1fcdd diff --git a/42sh/src/glob/esc_print.c b/42sh/src/glob/esc_print.c index 0ac335ba..8938302d 100644 --- a/42sh/src/glob/esc_print.c +++ b/42sh/src/glob/esc_print.c @@ -6,20 +6,20 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/17 15:38:14 by jhalford #+# #+# */ -/* Updated: 2017/02/17 16:29:42 by jhalford ### ########.fr */ +/* Updated: 2017/02/20 18:49:02 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "glob.h" -void esc_print(char *str, unsigned char *esc) +void esc_print(char *str, unsigned char *esc) { char *cur; cur = str; while (*cur) { - if (is_char_esc(esc,str,cur)) + if (is_char_esc(esc, str, cur)) printf("\\%c", *cur); else printf("%c", *cur); @@ -27,4 +27,3 @@ void esc_print(char *str, unsigned char *esc) } printf("\n"); } - diff --git a/42sh/src/glob/expand_bquote.c b/42sh/src/glob/expand_bquote.c index a3ec8d17..d24e3892 100644 --- a/42sh/src/glob/expand_bquote.c +++ b/42sh/src/glob/expand_bquote.c @@ -6,106 +6,133 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/17 17:47:53 by wescande #+# #+# */ -/* Updated: 2017/02/20 15:26:26 by wescande ### ########.fr */ +/* Updated: 2017/02/20 19:11:11 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "glob.h" -/* -** expand_bquote return expansion of a string after subshell execution -** input parameters are : -** -t_glob *gl -> struct of expanding -*/ - -static void insert_bquote(t_glob *gl, char *pos, char *name, char *content) +static void expand_all_bquote(t_bquote *me, char *content, + char *ifs) { - char *s1; - char *s2; - int delta; - unsigned char *new_esc; + char *content2; - delta = pos - gl->pat; - s1 = ft_strsub(gl->pat, 0, delta); - delta += ft_strlen(name) + 1; - s2 = ft_strsubf(gl->pat, delta, ft_strlen(gl->pat) - delta, 1); - gl->pat = ft_strjoinf(ft_strjoin(s1, content), s2, 1); - new_esc = calc_expand_esc(gl->esc, ft_strlen(s1), - (int [2]){ft_strlen(content), 1}, - (int [2]){delta, ft_strlen(s2)}); - ft_memdel((void **)&gl->esc); - gl->esc = new_esc; - new_esc = calc_expand_esc(gl->esc2, ft_strlen(s1), - (int [2]){ft_strlen(content), 1}, - (int [2]){delta, ft_strlen(s2)}); - ft_memdel((void **)&gl->esc2); - gl->esc2 = new_esc; - ft_strdel(&s1); - ft_strdel(&s2); - ft_strdel(&content); + while ((content2 = ft_strtok(NULL, ifs))) + { + ft_ld_pushfront(me->wk, gen_tab(ft_strdup(content), + calc_expand_esc(me->esc, 0, + (int[2]){ft_strlen(content), 1}, (int[2]){0, 0}), + calc_expand_esc(me->esc2, 0, + (int[2]){ft_strlen(content), 1}, (int[2]){0, 0}), 0)); + content = content2; + } + ft_ld_pushfront(me->wk, gen_tab(ft_strjoin(content, me->s2), + calc_expand_esc(me->esc, 0, + (int[2]){ft_strlen(content), 1}, + (int[2]){ft_strlen(me->s1) + ft_strlen(me->mid), + ft_strlen(me->s2)}), + calc_expand_esc(me->esc2, ft_strlen(me->s1), + (int[2]){ft_strlen(content), 1}, + (int[2]){ft_strlen(me->s1) + ft_strlen(me->mid), + ft_strlen(me->s2)}), + 0)); } -static void manage_bquote(int esc, char *str) +static void init_expand(t_bquote *me, char *content, int esc) { - int len; - char *ifs; - char *pos; + char *ifs; + char *content2; - len = ft_strlen(str) - 1; - while (str[len] == '\n') - { - str[len--] = '\0'; - } ifs = esc ? NULL : ft_getenv(data_singleton()->env, "IFS"); - if (ifs) + content = ft_strtok(content, ifs); + if (!(content2 = ft_strtok(NULL, ifs))) + ft_ld_pushfront(me->wk, gen_tab(ft_strjoinf(ft_strjoin(me->s1, content), + me->s2, 1), + calc_expand_esc(me->esc, ft_strlen(me->s1), + (int[2]){ft_strlen(content), 1}, + (int[2]){ft_strlen(me->s1) + ft_strlen(me->mid), + ft_strlen(me->s2)}), + calc_expand_esc(me->esc2, ft_strlen(me->s1), + (int[2]){ft_strlen(content), 1}, + (int[2]){ft_strlen(me->s1) + ft_strlen(me->mid), + ft_strlen(me->s2)}), 0)); + else { - while (*ifs) - { - while ((pos = ft_strchr(str, *ifs))) - *pos = ' '; - ++ifs; - } + ft_ld_pushfront(me->wk, gen_tab(ft_strjoin(me->s1, content), + calc_expand_esc(me->esc, ft_strlen(me->s1), + (int[2]){ft_strlen(content), 1}, (int[2]){0, 0}), + calc_expand_esc(me->esc2, ft_strlen(me->s1), + (int[2]){ft_strlen(content), 1}, (int[2]){0, 0}), 0)); + expand_all_bquote(me, content2, ifs); } } -static char *get_cmd(t_glob *gl, const char *pat) +static char *get_output(char *command) { - const char *str; + char *output; + int len; - str = pat; - while (*str) - { - if (*str == '`' && !is_char_esc(gl->esc2, gl->pat, str)) - break ; - ++str; - } - if (*str) - return (ft_strsub(pat, 0, str - pat)); - return (NULL); + output = command_getoutput(command); + len = ft_strlen(output); + while (output[--len] == '\n') + output[len] = '\0'; + return (output); } +static int search_bquote(t_bquote *me) +{ + char *sta; + char *content; + + sta = NULL; + while (*me->str) + { + sta = *me->str == '`' && !sta + && !is_char_esc(me->esc2, CH(*me->wk)[0], me->str) ? me->str : sta; + if (sta && *me->str == '`' && me->str != sta + && !is_char_esc(me->esc2, CH(*me->wk)[0], me->str)) + { + me->mid = ft_strsub(sta, 1, me->str - sta - 1); + me->s1 = ft_strsub(CH(*me->wk)[0], 0, sta - CH(*me->wk)[0]); + me->s2 = ft_strdup(me->str + 1); + content = get_output(me->mid); + init_expand(me, content, is_char_esc(me->esc, CH(*me->wk)[0], sta)); + ft_strdel(&me->mid); + ft_strdel(&me->s1); + ft_strdel(&me->s2); + ft_strdel(&content); + return (1); + } + ++me->str; + } + return (0); +} void expand_bquote(t_glob *gl) { - char *pat; - char *var; - char *content; + t_ld *tmp; + t_bquote me; + int do_it; - pat = gl->pat; - while (*pat) + ft_ld_pushfront(&gl->m_pat, gen_tab(gl->pat, gl->esc, gl->esc2, 0)); + me = (t_bquote){NULL, NULL, NULL, NULL, NULL, NULL, NULL}; + do_it = 1; + while ((gl->m_pat = ft_ld_front(gl->m_pat)) && do_it) { - if (*pat == '`' && !is_char_esc(gl->esc2, gl->pat, pat) && - (var = get_cmd(gl, pat + 1))) + do_it = 0; + while (gl->m_pat && !do_it) { - if (ft_strlen(var)) - { - if ((content = command_getoutput(var))) - manage_bquote(is_char_esc(gl->esc, gl->pat, pat), content); - insert_bquote(gl, pat, var, content); - pat = gl->pat; - } - ft_strdel(&var); + me.wk = &gl->m_pat; + me.esc = UCH(gl->m_pat)[1]; + me.esc2 = UCH(gl->m_pat)[2]; + me.str = CH(gl->m_pat)[0]; + if ((tmp = gl->m_pat) && + (do_it = search_bquote(&me)) == 1) + ft_ld_del(&tmp, &ft_tabdel); + if (!gl->m_pat->next) + break ; + gl->m_pat = gl->m_pat->next; } - ++pat; } + ft_ld_reverse(&gl->m_pat); } diff --git a/42sh/src/glob/expand_brace.c b/42sh/src/glob/expand_brace.c index 418ed449..13cacf4d 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/02/20 14:05:20 by wescande ### ########.fr */ +/* Updated: 2017/02/20 18:54:19 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,24 +20,33 @@ ** -t_glob *gl -> struct of expanding */ -static char **gen_tab(const char *pat, - const unsigned char *esc, int dup) +char **gen_tab(const char *pat, + const unsigned char *esc, + const unsigned char *esc2, + int dup) { char **my_tab; - if (!(my_tab = (char **)malloc(sizeof(char *) * 3))) + if (!(my_tab = (char **)malloc(sizeof(char *) * (esc2 ? 4 : 3)))) return (NULL); if (dup) { my_tab[0] = ft_strdup(pat); my_tab[1] = ft_strdup((const char *)esc); + if (esc2) + my_tab[2] = ft_strdup((const char *)esc2); } else { my_tab[0] = (char *)pat; my_tab[1] = (char *)esc; + if (esc2) + my_tab[2] = (char *)esc2; } - my_tab[2] = NULL; + if (esc2) + my_tab[3] = NULL; + else + my_tab[2] = NULL; return (my_tab); } @@ -56,11 +65,11 @@ static void iter_on_each(t_expand *me) first = ft_strjoinf(ft_strjoin(me->s1, me->split[i]), me->str + 1, 1); second = calc_expand_esc(me->esc, ft_strlen(me->s1), - (int [2]){ft_strlen(me->split[i]), 0}, - (int [2]){me->str - CH(*me->wk)[0], ft_strlen(me->str + 1)}); + (int[2]){ft_strlen(me->split[i]), 0}, + (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); + my_new = gen_tab(first, second, NULL, 0); ft_ld_pushfront(me->wk, my_new); } me->wk = &wk_tmp; @@ -93,7 +102,7 @@ static int search_brace(t_expand *me) start = NULL; nb = 0; com = 0; - while (*me->str) + while (*++me->str) { start = *me->str == '{' && !is_char_esc(me->esc, CH(*me->wk)[0], me->str) && nb == 0 ? me->str : start; @@ -109,7 +118,6 @@ static int search_brace(t_expand *me) set_char_esc(me->esc, CH(*me->wk)[0], me->str); return (2); } - ++me->str; } return (0); } @@ -120,21 +128,22 @@ 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, 0)); me = (t_expand){NULL, NULL, NULL, NULL, NULL, NULL}; do_it = 1; while (do_it) { do_it = 0; - while (gl->m_pat->next && !do_it) + while (gl->m_pat && !do_it) { me.wk = &gl->m_pat; me.esc = UCH(gl->m_pat)[1]; me.str = CH(gl->m_pat)[0]; + --me.str; if ((tmp = gl->m_pat) && (do_it = search_brace(&me)) == 1) ft_ld_del(&tmp, &ft_tabdel); + if (!gl->m_pat->next) + break ; gl->m_pat = gl->m_pat->next; } gl->m_pat = ft_ld_front(gl->m_pat); diff --git a/42sh/src/glob/expand_esc.c b/42sh/src/glob/expand_esc.c index 00990cf7..35777c6f 100644 --- a/42sh/src/glob/expand_esc.c +++ b/42sh/src/glob/expand_esc.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/31 23:18:56 by wescande #+# #+# */ -/* Updated: 2017/02/07 15:49:15 by wescande ### ########.fr */ +/* Updated: 2017/02/20 17:25:43 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,23 +20,23 @@ unsigned char *calc_expand_esc(const unsigned char *esc, int pos; if (!(new_esc = (unsigned char *)ft_strnew(((nb_start + nb_middle[0] - + nb_end[1]) / 8) + 1))) + + nb_end[1]) >> 3) + 1))) return (NULL); index = -1; while (++index < nb_start) - new_esc[index / 8] |= - ((esc[index / 8] >> (7 - index % 8)) & 1) << (7 - index % 8); + new_esc[index >> 3] |= + ((esc[index >> 3] >> (7 - index % 8)) & 1) << (7 - index % 8); pos = -1; while (++pos < nb_middle[0]) { - new_esc[index / 8] |= nb_middle[1] << (7 - index % 8); + new_esc[index >> 3] |= nb_middle[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); + new_esc[index >> 3] |= + ((esc[pos >> 3] >> (7 - pos % 8)) & 1) << (7 - index % 8); ++index; } return (new_esc); @@ -52,8 +52,8 @@ void modify_esc_split(unsigned char *esc_dest, while (++index < len) { wk = index + start - 1; - esc_dest[wk / 8] |= - ((esc_src[index / 8] >> (7 - index % 8)) & 1) << (7 - wk % 8); + esc_dest[wk >> 3] |= + ((esc_src[index >> 3] >> (7 - index % 8)) & 1) << (7 - wk % 8); } } @@ -63,13 +63,13 @@ unsigned char *ft_sub_esc(const unsigned char *esc, unsigned char *new_esc; int index; - if (!(new_esc = (unsigned char *)ft_strnew(((len) / 8) + 1))) + if (!(new_esc = (unsigned char *)ft_strnew(((len) >> 3) + 1))) return (NULL); index = -1; while (++index < len) { - new_esc[index / 8] |= - ((esc[start / 8] >> (7 - start % 8)) & 1) << (7 - index % 8); + new_esc[index >> 3] |= + ((esc[start >> 3] >> (7 - start % 8)) & 1) << (7 - index % 8); ++start; } return (new_esc); diff --git a/42sh/src/glob/expand_var.c b/42sh/src/glob/expand_var.c index c73d9c6c..bcf85bc9 100644 --- a/42sh/src/glob/expand_var.c +++ b/42sh/src/glob/expand_var.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/06 16:09:27 by wescande #+# #+# */ -/* Updated: 2017/02/20 15:24:34 by wescande ### ########.fr */ +/* Updated: 2017/02/20 18:56:50 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -31,13 +31,13 @@ static void insert_var(t_glob *gl, char *pos, char *name, char *content) s2 = ft_strsubf(gl->pat, delta, ft_strlen(gl->pat) - delta, 1); gl->pat = ft_strjoinf(ft_strjoin(s1, content), s2, 1); new_esc = calc_expand_esc(gl->esc, ft_strlen(s1), - (int [2]){ft_strlen(content), 1}, - (int [2]){delta, ft_strlen(s2)}); + (int[2]){ft_strlen(content), 1}, + (int[2]){delta, ft_strlen(s2)}); ft_memdel((void **)&gl->esc); gl->esc = new_esc; new_esc = calc_expand_esc(gl->esc2, ft_strlen(s1), - (int [2]){ft_strlen(content), 1}, - (int [2]){delta, ft_strlen(s2)}); + (int[2]){ft_strlen(content), 1}, + (int[2]){delta, ft_strlen(s2)}); ft_memdel((void **)&gl->esc2); gl->esc2 = new_esc; ft_strdel(&s1); @@ -72,7 +72,7 @@ void expand_var(t_glob *gl) if (*pat == '$' && !is_char_esc(gl->esc2, gl->pat, pat) && (var = get_name(gl, pat + 1))) { - if (ft_strlen(var)) + if (var && *var) { content = ft_getenv(data_singleton()->env, var); insert_var(gl, pat, var, content); diff --git a/42sh/src/glob/ft_strsplit_spe.c b/42sh/src/glob/ft_strsplit_spe.c index 3948c79d..8c11de67 100644 --- a/42sh/src/glob/ft_strsplit_spe.c +++ b/42sh/src/glob/ft_strsplit_spe.c @@ -6,7 +6,7 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/31 20:49:30 by wescande #+# #+# */ -/* Updated: 2017/02/20 12:37:12 by wescande ### ########.fr */ +/* Updated: 2017/02/20 18:57:58 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -63,9 +63,8 @@ char **ft_strsplit_spe(const char *str, const char *fix; int len; - if (!str) - return (NULL); - if (!(s1 = (char**)malloc(sizeof(*s1) * (ft_nbstr_c(str, esc, c) + 1)))) + if (!str || !(s1 = + (char**)malloc(sizeof(*s1) * (ft_nbstr_c(str, esc, c) + 1)))) return (NULL); i = 0; fix = str; diff --git a/42sh/src/glob/glob.c b/42sh/src/glob/glob.c index 2a1a7b34..d5832efd 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/02/20 14:19:46 by wescande ### ########.fr */ +/* Updated: 2017/02/20 19:04:44 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,44 +22,44 @@ ** to just expanse in local directory and not in path dir */ -static char **treat_glob(t_ld **match) +static char **treat_glob(t_glob *gl) { - char **gl; + char **ret; - gl = NULL; - ft_ld_reverse(match); - gl = ft_ld_to_tab(*match); - ft_ld_clear(match, &ft_strdel); - return (gl); + ret= NULL; + ft_ld_clear(&gl->m_pat, &ft_tabdel); + ft_ld_reverse(&gl->match); + ret = ft_ld_to_tab(gl->match); + ft_ld_clear(&gl->match, &ft_strdel); + return (ret); } char **glob(char *pat, unsigned char *esc, - unsigned char *esc2) + unsigned char *esc2) { t_glob gl; int len; len = ft_strlen(pat); gl = (t_glob){0, 0, ft_strdup(pat), dup_char_esc(esc, (len >> 3) + 1), - dup_char_esc(esc2, (len >> 3) +1), NULL, NULL}; + dup_char_esc(esc2, (len >> 3) + 1), NULL, NULL}; expand_var(&gl); expand_bquote(&gl); - ft_memdel((void **)&gl.esc2); expand_brace(&gl); - while (gl.m_pat->next && !(gl.found = 0)) + while (gl.m_pat && !(gl.found = 0)) { gl.cur_dir = 1; - gl.pat = ((char **)gl.m_pat->content)[0]; - gl.esc = ((unsigned char **)gl.m_pat->content)[1]; - if (gl.pat[0] != '/') + gl.pat = CH(gl.m_pat)[0]; + if ((gl.esc = UCH(gl.m_pat)[1]) && gl.pat[0] != '/') dir_research(&gl, ".", gl.pat, 0); else dir_research(&gl, "/", gl.pat + 1, 0); if (!gl.found) ft_ld_pushfront(&gl.match, - ft_strjoin(gl.cur_dir ? "" : "./", ((char **)gl.m_pat->content)[0])); + ft_strjoin(gl.cur_dir ? "" : "./", CH(gl.m_pat)[0])); + if (!gl.m_pat->next) + break ; gl.m_pat = gl.m_pat->next; } - ft_ld_clear(&gl.m_pat, &ft_tabdel); - return (treat_glob(&gl.match)); + return (treat_glob(&gl)); } diff --git a/42sh/src/glob/is_char_esc.c b/42sh/src/glob/is_char_esc.c index 2309c885..1a7e8411 100644 --- a/42sh/src/glob/is_char_esc.c +++ b/42sh/src/glob/is_char_esc.c @@ -6,13 +6,13 @@ /* By: wescande +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/27 18:19:55 by wescande #+# #+# */ -/* Updated: 2017/02/17 16:29:20 by jhalford ### ########.fr */ +/* Updated: 2017/02/20 18:51:47 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ #include "glob.h" -int is_char_esc(const unsigned char *esc, +int is_char_esc(const unsigned char *esc, const char *ini_str, const char *str_pos) { int pos; @@ -27,7 +27,7 @@ int is_char_esc(const unsigned char *esc, return (0); } -void set_char_esc_mode(unsigned char *esc, +void set_char_esc_mode(unsigned char *esc, const char *ini_str, const char *str_pos, int mode) { int pos; @@ -38,7 +38,7 @@ void set_char_esc_mode(unsigned char *esc, esc[pos >> 3] |= mode << (7 - pos % 8); } -void set_char_esc(unsigned char *esc, +void set_char_esc(unsigned char *esc, const char *ini_str, const char *str_pos) { int pos; @@ -49,7 +49,7 @@ void set_char_esc(unsigned char *esc, esc[pos >> 3] |= 1 << (7 - pos % 8); } -void set_char_no_esc(unsigned char *esc, +void set_char_no_esc(unsigned char *esc, const char *ini_str, const char *str_pos) { int pos; diff --git a/42sh/src/main/shell_exit.c b/42sh/src/main/shell_exit.c index 658ae832..e5735074 100644 --- a/42sh/src/main/shell_exit.c +++ b/42sh/src/main/shell_exit.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/12 17:37:04 by jhalford #+# #+# */ -/* Updated: 2017/01/10 16:51:45 by jhalford ### ########.fr */ +/* Updated: 2017/02/20 18:37:46 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ void shell_exit(void) { - DG("shell_exit()"); +// DG("shell_exit()"); data_exit(); if (SH_HAS_JOBC(data_singleton()->opts)) job_kill_all(); From f9019aea8884ff318e14a8069bef994d601380f1 Mon Sep 17 00:00:00 2001 From: wescande Date: Mon, 20 Feb 2017 19:15:19 +0100 Subject: [PATCH 98/98] suppression ancien backquote + deplacement command output + modif main sur l'appel a expand_bquote --- 42sh/Makefile | 3 +- 42sh/src/{lexer => glob}/command_getoutput.c | 0 42sh/src/lexer/expand_bquotes.c | 104 ------------------- 42sh/src/main/main.c | 10 +- 4 files changed, 6 insertions(+), 111 deletions(-) rename 42sh/src/{lexer => glob}/command_getoutput.c (100%) delete mode 100644 42sh/src/lexer/expand_bquotes.c diff --git a/42sh/Makefile b/42sh/Makefile index af4c2ff4..f2e697ab 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -83,6 +83,7 @@ exec/redirect_greatand.c\ exec/redirect_less.c\ exec/redirect_lessand.c\ exec/set_exitstatus.c\ +glob/command_getoutput.c\ glob/dir_glob.c\ glob/esc_print.c\ glob/expand_bquote.c\ @@ -151,8 +152,6 @@ 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/expand_bquotes.c\ lexer/get_lexer_stack.c\ lexer/get_state_global.c\ lexer/get_state_redir.c\ diff --git a/42sh/src/lexer/command_getoutput.c b/42sh/src/glob/command_getoutput.c similarity index 100% rename from 42sh/src/lexer/command_getoutput.c rename to 42sh/src/glob/command_getoutput.c diff --git a/42sh/src/lexer/expand_bquotes.c b/42sh/src/lexer/expand_bquotes.c deleted file mode 100644 index eec0e93e..00000000 --- a/42sh/src/lexer/expand_bquotes.c +++ /dev/null @@ -1,104 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* expand_bquotes.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: jhalford +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/01/11 16:46:27 by jhalford #+# #+# */ -/* Updated: 2017/02/20 14:17:03 by wescande ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "lexer.h" - -int bquotes_insert_words(t_list *cur_word, char *word, char *after_bq, char *ifs) -{ - t_list *new_word; - t_list *after_word; - t_token *token; - - after_word = cur_word->next; - if (ifs) - word = ft_strtok(word, ifs); - token = cur_word->content; - token_append_str(token, word, 0, 0); - if (ifs) - while ((word = ft_strtok(NULL, ifs))) - { - token = token_init(); - token->type = TK_WORD; - token_append_str(token, word, 0, 0); - new_word = ft_lstnew(token, sizeof(*token)); - cur_word->next = new_word; - new_word->next = after_word; - cur_word = new_word; - } - token = cur_word->content; - ft_strappend(&token->data, after_bq); - return (0); -} - -int bquotes_substitute(t_list *cur_word, char *bq_start, char *bq_end) -{ - char *output; - char *last_char; - char *after_bq; - char *ifs; - t_token *token; - - *bq_start = 0; - *bq_end = 0; - if ((output = command_getoutput(bq_start + 1))) - { - last_char = output + ft_strlen(output) - 1; - while (*last_char == '\n') - *last_char++ = 0; - } - DG("output = [%s]", output); - after_bq = ft_strdup(bq_end + 1); - token = cur_word->content; - ifs = is_char_esc(token->esc, token->data, bq_start) ? - NULL : ft_getenv(data_singleton()->env, "IFS"); - bquotes_insert_words(cur_word, output ? output : "", after_bq, ifs); - ft_strdel(&output); - ft_strdel(&after_bq); - return (0); -} - -int bquotes_expand(t_list **alst) -{ - (void) alst; - /* - t_list *cur_word; - char *bq_start; - char *bq_end; - t_flag tk_word; - t_token *token; - - tk_word = TK_WORD; - cur_word = *alst; - while ((cur_word = ft_lst_find(cur_word, &tk_word, token_cmp_type))) - { - token = cur_word->content; - if (!(bq_start = ft_strchr(token->data, '`')) - || is_char_esc(token->esc2, token->data, bq_start)) - { - cur_word = cur_word->next; - return (0); - } - if (!(bq_end = ft_strchr(bq_start + 1, '`'))) - { - ft_dprintf(2, "{red}%s: parse error near '`'{eoc}\n", SHELL_NAME); - return (-1); - } - if (bquotes_substitute(cur_word, bq_start, bq_end)) - return (-1); - if (!(*token->data)) - ft_lst_delif(alst, cur_word->content, ft_addrcmp, token_free); - cur_word = *alst; - } - */ - return (0); -} - diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index f3bfdf13..a9bb0cec 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/20 15:00:31 by wescande ### ########.fr */ +/* Updated: 2017/02/20 19:13:50 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -31,8 +31,8 @@ int non_interactive_shell(char *command) } while (lexer.str[lexer.pos] == '\n'); if (!token) return (0); - if (bquotes_expand(&token)) - return (1); +// if (bquotes_expand(&token)) +// return (1); //token_print(token); if (ft_parse(&ast, &token)) return (1); @@ -63,8 +63,8 @@ int interactive_shell() return (1); //token_print(token); } while (get_lexer_stack(lexer)); - if (bquotes_expand(&token)) - return (1); +// if (bquotes_expand(&token)) +// return (1); if (!token) return (0); ft_add_str_in_history(lexer.str);