From 2fab4b2763f5080a3f347a55dfc901ace4f04e1e Mon Sep 17 00:00:00 2001 From: gwojda Date: Thu, 23 Mar 2017 11:46:33 +0100 Subject: [PATCH] ajout haut et bas pour le surlignement --- 42sh/Makefile | 36 +++++++++-------- 42sh/includes/ft_readline.h | 4 +- .../{ => copy_cut_paste}/copy_cut_paste.c | 10 ++++- .../copy_cut_paste/underline_down.c | 39 +++++++++++++++++++ .../{ => copy_cut_paste}/underline_end.c | 0 .../{ => copy_cut_paste}/underline_function.c | 0 .../{ => copy_cut_paste}/underline_home.c | 0 .../{ => copy_cut_paste}/underline_left.c | 0 .../{ => copy_cut_paste}/underline_reset.c | 0 .../{ => copy_cut_paste}/underline_right.c | 0 .../copy_cut_paste/underline_up.c | 36 +++++++++++++++++ .../{ => init_line}/init_history.c | 0 .../line_editing/{ => init_line}/init_line.c | 0 .../{ => init_line}/init_termcaps.c | 0 .../line_editing/{ => move_term}/home_end.c | 0 .../{ => move_term}/move_left_and_right.c | 0 .../{ => move_term}/move_to_word.c | 0 .../{ => move_term}/move_up_and_down.c | 0 .../{ => print_del_completion}/completion.c | 0 .../print_and_del.c | 0 .../{ => print_del_completion}/queue.c | 0 21 files changed, 106 insertions(+), 19 deletions(-) rename 42sh/src/line_editing/{ => copy_cut_paste}/copy_cut_paste.c (89%) create mode 100644 42sh/src/line_editing/copy_cut_paste/underline_down.c rename 42sh/src/line_editing/{ => copy_cut_paste}/underline_end.c (100%) rename 42sh/src/line_editing/{ => copy_cut_paste}/underline_function.c (100%) rename 42sh/src/line_editing/{ => copy_cut_paste}/underline_home.c (100%) rename 42sh/src/line_editing/{ => copy_cut_paste}/underline_left.c (100%) rename 42sh/src/line_editing/{ => copy_cut_paste}/underline_reset.c (100%) rename 42sh/src/line_editing/{ => copy_cut_paste}/underline_right.c (100%) create mode 100644 42sh/src/line_editing/copy_cut_paste/underline_up.c rename 42sh/src/line_editing/{ => init_line}/init_history.c (100%) rename 42sh/src/line_editing/{ => init_line}/init_line.c (100%) rename 42sh/src/line_editing/{ => init_line}/init_termcaps.c (100%) rename 42sh/src/line_editing/{ => move_term}/home_end.c (100%) rename 42sh/src/line_editing/{ => move_term}/move_left_and_right.c (100%) rename 42sh/src/line_editing/{ => move_term}/move_to_word.c (100%) rename 42sh/src/line_editing/{ => move_term}/move_up_and_down.c (100%) rename 42sh/src/line_editing/{ => print_del_completion}/completion.c (100%) rename 42sh/src/line_editing/{ => print_del_completion}/print_and_del.c (100%) rename 42sh/src/line_editing/{ => print_del_completion}/queue.c (100%) diff --git a/42sh/Makefile b/42sh/Makefile index dac89603..10862470 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -244,15 +244,21 @@ lexer/token_cmp_type.c\ lexer/token_free.c\ lexer/token_init.c\ lexer/token_print.c\ -line_editing/completion.c\ line_editing/control_features.c\ -line_editing/copy_cut_paste.c\ +line_editing/copy_cut_paste/copy_cut_paste.c\ +line_editing/copy_cut_paste/underline_down.c\ +line_editing/copy_cut_paste/underline_end.c\ +line_editing/copy_cut_paste/underline_function.c\ +line_editing/copy_cut_paste/underline_home.c\ +line_editing/copy_cut_paste/underline_left.c\ +line_editing/copy_cut_paste/underline_reset.c\ +line_editing/copy_cut_paste/underline_right.c\ +line_editing/copy_cut_paste/underline_up.c\ line_editing/ft_prompt.c\ line_editing/get_key.c\ -line_editing/home_end.c\ -line_editing/init_history.c\ -line_editing/init_line.c\ -line_editing/init_termcaps.c\ +line_editing/init_line/init_history.c\ +line_editing/init_line/init_line.c\ +line_editing/init_line/init_termcaps.c\ line_editing/lib_line_editing/ft_nb_line.c\ line_editing/lib_line_editing/tool_line.c\ line_editing/lib_line_editing/tool_line_2.c\ @@ -260,19 +266,15 @@ 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/queue.c\ +line_editing/move_term/home_end.c\ +line_editing/move_term/move_left_and_right.c\ +line_editing/move_term/move_to_word.c\ +line_editing/move_term/move_up_and_down.c\ +line_editing/print_del_completion/completion.c\ +line_editing/print_del_completion/print_and_del.c\ +line_editing/print_del_completion/queue.c\ line_editing/readline.c\ line_editing/resize.c\ -line_editing/underline_end.c\ -line_editing/underline_function.c\ -line_editing/underline_home.c\ -line_editing/underline_left.c\ -line_editing/underline_reset.c\ -line_editing/underline_right.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 38113343..41bb2d9c 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/03/23 00:30:06 by ariard ### ########.fr */ +/* Updated: 2017/03/23 11:45:05 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -135,6 +135,8 @@ void underline_end(char **str, size_t *pos, size_t pos_ref); void underline_check_end_of_line(char *str, size_t pos); void reset_term(char **str, size_t *pos); void reset_and_remove_term(char **str, size_t *pos, char *copy_tmp); +void underline_down(char **str, size_t *pos, size_t pos_ref); +void underline_up(char **str, size_t *pos, size_t pos_ref); int ft_read_stdin(char **input); diff --git a/42sh/src/line_editing/copy_cut_paste.c b/42sh/src/line_editing/copy_cut_paste/copy_cut_paste.c similarity index 89% rename from 42sh/src/line_editing/copy_cut_paste.c rename to 42sh/src/line_editing/copy_cut_paste/copy_cut_paste.c index 37ba5f96..f76a8635 100644 --- a/42sh/src/line_editing/copy_cut_paste.c +++ b/42sh/src/line_editing/copy_cut_paste/copy_cut_paste.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/19 12:45:06 by gwojda #+# #+# */ -/* Updated: 2017/03/22 23:53:57 by gwojda ### ########.fr */ +/* Updated: 2017/03/23 11:44:51 by gwojda ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,6 +35,10 @@ int ft_x(char **str, size_t *pos) underline_home(str, pos, pos_ref); else if (ret == TOUCHE_END) underline_end(str, pos, pos_ref); + else if (ret == FLECHE_HAUT) + underline_up(str, pos, pos_ref); + else if (ret == FLECHE_BAS) + underline_down(str, pos, pos_ref); else if (ret != FLECHE_DROITE && ret != FLECHE_GAUCHE) break ; } @@ -66,6 +70,10 @@ int ft_c(char **str, size_t *pos) underline_home(str, pos, pos_ref); else if (ret == TOUCHE_END) underline_end(str, pos, pos_ref); + else if (ret == FLECHE_HAUT) + underline_up(str, pos, pos_ref); + else if (ret == FLECHE_BAS) + underline_down(str, pos, pos_ref); else if (ret != FLECHE_DROITE && ret != FLECHE_GAUCHE) break ; } diff --git a/42sh/src/line_editing/copy_cut_paste/underline_down.c b/42sh/src/line_editing/copy_cut_paste/underline_down.c new file mode 100644 index 00000000..5d6a1c85 --- /dev/null +++ b/42sh/src/line_editing/copy_cut_paste/underline_down.c @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* underline_down.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/03/23 11:43:40 by gwojda #+# #+# */ +/* Updated: 2017/03/23 11:45:20 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void underline_down(char **str, size_t *pos, size_t pos_ref) +{ + size_t pos_tmp; + int i; + + i = 0; + pos_tmp = *pos; + if ((*str)[pos_tmp] == '\n') + { + underline_right(str, pos, pos_ref); + ++pos_tmp; + } + i = ft_size_term(); + while (i && (*str)[pos_tmp] && (*str)[pos_tmp] != '\n') + { + underline_right(str, pos, pos_ref); + ++pos_tmp; + --i; + } + if ((*str)[pos_tmp] == '\n') + { + underline_left(str, pos, pos_ref); + --pos_tmp; + } +} diff --git a/42sh/src/line_editing/underline_end.c b/42sh/src/line_editing/copy_cut_paste/underline_end.c similarity index 100% rename from 42sh/src/line_editing/underline_end.c rename to 42sh/src/line_editing/copy_cut_paste/underline_end.c diff --git a/42sh/src/line_editing/underline_function.c b/42sh/src/line_editing/copy_cut_paste/underline_function.c similarity index 100% rename from 42sh/src/line_editing/underline_function.c rename to 42sh/src/line_editing/copy_cut_paste/underline_function.c diff --git a/42sh/src/line_editing/underline_home.c b/42sh/src/line_editing/copy_cut_paste/underline_home.c similarity index 100% rename from 42sh/src/line_editing/underline_home.c rename to 42sh/src/line_editing/copy_cut_paste/underline_home.c diff --git a/42sh/src/line_editing/underline_left.c b/42sh/src/line_editing/copy_cut_paste/underline_left.c similarity index 100% rename from 42sh/src/line_editing/underline_left.c rename to 42sh/src/line_editing/copy_cut_paste/underline_left.c diff --git a/42sh/src/line_editing/underline_reset.c b/42sh/src/line_editing/copy_cut_paste/underline_reset.c similarity index 100% rename from 42sh/src/line_editing/underline_reset.c rename to 42sh/src/line_editing/copy_cut_paste/underline_reset.c diff --git a/42sh/src/line_editing/underline_right.c b/42sh/src/line_editing/copy_cut_paste/underline_right.c similarity index 100% rename from 42sh/src/line_editing/underline_right.c rename to 42sh/src/line_editing/copy_cut_paste/underline_right.c diff --git a/42sh/src/line_editing/copy_cut_paste/underline_up.c b/42sh/src/line_editing/copy_cut_paste/underline_up.c new file mode 100644 index 00000000..b9e017bb --- /dev/null +++ b/42sh/src/line_editing/copy_cut_paste/underline_up.c @@ -0,0 +1,36 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* underline_up.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gwojda +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2017/03/23 11:35:48 by gwojda #+# #+# */ +/* Updated: 2017/03/23 11:39:49 by gwojda ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void underline_up(char **str, size_t *pos, size_t pos_ref) +{ + size_t pos_tmp; + int i; + + i = 0; + pos_tmp = *pos; + if ((*str)[pos_tmp] == '\n') + { + underline_left(str, pos, pos_ref); + --pos_tmp; + } + i = ft_size_term(); + while (i && (pos_tmp && (*str)[pos_tmp] != '\n') + && (pos_tmp + 1 > 0 && (*str)[pos_tmp - 1] != '\n')) + { + underline_left(str, pos, pos_ref); + --pos_tmp; + --i; + } + *pos = pos_tmp; +} diff --git a/42sh/src/line_editing/init_history.c b/42sh/src/line_editing/init_line/init_history.c similarity index 100% rename from 42sh/src/line_editing/init_history.c rename to 42sh/src/line_editing/init_line/init_history.c diff --git a/42sh/src/line_editing/init_line.c b/42sh/src/line_editing/init_line/init_line.c similarity index 100% rename from 42sh/src/line_editing/init_line.c rename to 42sh/src/line_editing/init_line/init_line.c diff --git a/42sh/src/line_editing/init_termcaps.c b/42sh/src/line_editing/init_line/init_termcaps.c similarity index 100% rename from 42sh/src/line_editing/init_termcaps.c rename to 42sh/src/line_editing/init_line/init_termcaps.c diff --git a/42sh/src/line_editing/home_end.c b/42sh/src/line_editing/move_term/home_end.c similarity index 100% rename from 42sh/src/line_editing/home_end.c rename to 42sh/src/line_editing/move_term/home_end.c diff --git a/42sh/src/line_editing/move_left_and_right.c b/42sh/src/line_editing/move_term/move_left_and_right.c similarity index 100% rename from 42sh/src/line_editing/move_left_and_right.c rename to 42sh/src/line_editing/move_term/move_left_and_right.c diff --git a/42sh/src/line_editing/move_to_word.c b/42sh/src/line_editing/move_term/move_to_word.c similarity index 100% rename from 42sh/src/line_editing/move_to_word.c rename to 42sh/src/line_editing/move_term/move_to_word.c diff --git a/42sh/src/line_editing/move_up_and_down.c b/42sh/src/line_editing/move_term/move_up_and_down.c similarity index 100% rename from 42sh/src/line_editing/move_up_and_down.c rename to 42sh/src/line_editing/move_term/move_up_and_down.c diff --git a/42sh/src/line_editing/completion.c b/42sh/src/line_editing/print_del_completion/completion.c similarity index 100% rename from 42sh/src/line_editing/completion.c rename to 42sh/src/line_editing/print_del_completion/completion.c diff --git a/42sh/src/line_editing/print_and_del.c b/42sh/src/line_editing/print_del_completion/print_and_del.c similarity index 100% rename from 42sh/src/line_editing/print_and_del.c rename to 42sh/src/line_editing/print_del_completion/print_and_del.c diff --git a/42sh/src/line_editing/queue.c b/42sh/src/line_editing/print_del_completion/queue.c similarity index 100% rename from 42sh/src/line_editing/queue.c rename to 42sh/src/line_editing/print_del_completion/queue.c