cd en cours

This commit is contained in:
Antoine Riard 2017-03-25 18:05:09 +01:00
parent 9cb51bbd8c
commit 5ebf38bf12
10 changed files with 30 additions and 32 deletions

View file

@ -43,7 +43,6 @@ builtin/builtin_func.c\
builtin/builtin_hash.c\ builtin/builtin_hash.c\
builtin/builtin_history.c\ builtin/builtin_history.c\
builtin/builtin_math.c\ builtin/builtin_math.c\
builtin/builtin_new_cd.c\
builtin/builtin_read.c\ builtin/builtin_read.c\
builtin/builtin_setenv.c\ builtin/builtin_setenv.c\
builtin/builtin_unset.c\ builtin/builtin_unset.c\

10
42sh/STDUG Normal file
View file

@ -0,0 +1,10 @@
41830 main.c 47 
41830 main.c 24 before readline
41830 readline.c 28 readline stind
41830 readline.c 30 after stdin
41830 main.c 26 after readline
41830 main.c 50 
41830 main.c 53 
41830 main.c 47 
41830 main.c 24 before readline
41830 readline.c 28 readline stind

View file

@ -0,0 +1,5 @@
objs/cliopts/cliopts_getmap.o: src/cliopts/cliopts_getmap.c \
includes/cliopts.h includes/libft.h includes/ft_types.h \
includes/error.h includes/color.h includes/lst.h includes/dlst.h \
includes/btree.h includes/str.h includes/sstr.h includes/math.h \
includes/mytime.h includes/get_next_line.h includes/sys.h

View file

@ -1,5 +0,0 @@
objs/cliopts/cliopts_has.o: src/cliopts/cliopts_has.c includes/cliopts.h \
includes/libft.h includes/ft_types.h includes/error.h includes/color.h \
includes/lst.h includes/dlst.h includes/btree.h includes/str.h \
includes/sstr.h includes/math.h includes/mytime.h \
includes/get_next_line.h includes/sys.h

View file

@ -1,11 +0,0 @@
objs/builtin/builtin_new_cd.o: src/builtin/builtin_new_cd.c \
includes/minishell.h includes/../libft/includes/libft.h \
libft/includes/ft_types.h libft/includes/error.h \
libft/includes/libft.h libft/includes/color.h libft/includes/cliopts.h \
libft/includes/lst.h libft/includes/dlst.h libft/includes/btree.h \
libft/includes/str.h libft/includes/sstr.h libft/includes/math.h \
libft/includes/mytime.h libft/includes/get_next_line.h \
libft/includes/sys.h includes/types.h includes/lexer.h \
includes/parser.h includes/ft_readline.h includes/job_control.h \
includes/exec.h includes/builtin.h includes/builtin_read.h \
includes/glob.h includes/completion.h includes/hash.h

View file

@ -1,11 +0,0 @@
objs/builtin/error_msg.o: src/builtin/error_msg.c includes/minishell.h \
includes/../libft/includes/libft.h libft/includes/ft_types.h \
libft/includes/error.h libft/includes/libft.h libft/includes/color.h \
libft/includes/cliopts.h libft/includes/lst.h libft/includes/dlst.h \
libft/includes/btree.h libft/includes/str.h libft/includes/sstr.h \
libft/includes/math.h libft/includes/mytime.h \
libft/includes/get_next_line.h libft/includes/sys.h includes/types.h \
includes/lexer.h includes/parser.h includes/ft_readline.h \
includes/job_control.h includes/exec.h includes/builtin.h \
includes/builtin_read.h includes/glob.h includes/completion.h \
includes/hash.h

View file

@ -6,7 +6,7 @@
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */ /* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2017/03/25 15:14:55 by ariard #+# #+# */ /* Created: 2017/03/25 15:14:55 by ariard #+# #+# */
/* Updated: 2017/03/25 17:05:24 by ariard ### ########.fr */ /* Updated: 2017/03/25 17:07:16 by ariard ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View file

@ -6,7 +6,7 @@
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */ /* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2017/03/25 02:00:40 by ariard #+# #+# */ /* Created: 2017/03/25 02:00:40 by ariard #+# #+# */
/* Updated: 2017/03/25 16:59:37 by ariard ### ########.fr */ /* Updated: 2017/03/25 17:08:31 by ariard ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -83,12 +83,16 @@ int builtin_cd(const char *path, char *const av[],
(void)envp; (void)envp;
(void)path; (void)path;
data.flag = CD_OPT_L; data.flag = CD_OPT_L;
DG();
if (cliopts_get((char **)av, g_cdopts, &data)) if (cliopts_get((char **)av, g_cdopts, &data))
return (1); return (1);
DG("after parsing opt");
if (data.av_data[0] && data.av_data[1]) if (data.av_data[0] && data.av_data[1])
return (SH_ERR(CD_USAGE)); return (SH_ERR(CD_USAGE));
if (!(target = cd_operand_exist(*data.av_data))) if (!(target = cd_operand_exist(*data.av_data)))
return (1); return (1);
DG();
return (0);
setwd("OLDPWD"); setwd("OLDPWD");
if (!target) if (!target)
target = cd_operand_begin(*data.av_data); target = cd_operand_begin(*data.av_data);

View file

@ -6,7 +6,7 @@
/* By: gwojda <gwojda@student.42.fr> +#+ +:+ +#+ */ /* By: gwojda <gwojda@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */ /* Created: 2016/12/15 14:19:48 by gwojda #+# #+# */
/* Updated: 2017/03/22 16:49:30 by gwojda ### ########.fr */ /* Updated: 2017/03/25 17:18:41 by ariard ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -25,7 +25,9 @@ int readline(int has_prompt, char **input)
return (ret); return (ret);
} }
readline_init(has_prompt); readline_init(has_prompt);
DG("readline stind");
ret = ft_read_stdin(input); ret = ft_read_stdin(input);
DG("after stdin");
if (ret < 0) if (ret < 0)
return (ret); return (ret);
if (data_singleton()->line.input) if (data_singleton()->line.input)

View file

@ -6,7 +6,7 @@
/* By: gwojda <gwojda@student.42.fr> +#+ +:+ +#+ */ /* By: gwojda <gwojda@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2017/03/20 14:45:40 by gwojda #+# #+# */ /* Created: 2017/03/20 14:45:40 by gwojda #+# #+# */
/* Updated: 2017/03/24 22:52:56 by ariard ### ########.fr */ /* Updated: 2017/03/25 17:14:28 by ariard ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -21,7 +21,9 @@ static int do_readline_routine(char **stream)
data = data_singleton(); data = data_singleton();
has_prompt = !(get_lexer_stack(data->lexer) has_prompt = !(get_lexer_stack(data->lexer)
|| data->parser.state == UNDEFINED || data->lexer.state == HEREDOC); || data->parser.state == UNDEFINED || data->lexer.state == HEREDOC);
DG("before readline");
ret = readline(has_prompt, stream); ret = readline(has_prompt, stream);
DG("after readline");
if (ret == -1) if (ret == -1)
{ {
ft_strdel(stream); ft_strdel(stream);
@ -42,10 +44,13 @@ static int handle_instruction(t_list **token, t_btree **ast)
data = data_singleton(); data = data_singleton();
while (1) while (1)
{ {
DG();
if ((ret = do_readline_routine(&stream)) > 0) if ((ret = do_readline_routine(&stream)) > 0)
return (ret); return (ret);
DG();
if (do_lexer_routine(token, stream) > 0) if (do_lexer_routine(token, stream) > 0)
continue ; continue ;
DG();
if ((ret = do_parser_routine(token, ast)) == 1 if ((ret = do_parser_routine(token, ast)) == 1
&& SH_NO_INTERACTIVE(data->opts)) && SH_NO_INTERACTIVE(data->opts))
return (ret); return (ret);