diff options
author | salad <fmoenne-@student.le-101.fr> | 2020-09-17 17:27:13 +0200 |
---|---|---|
committer | salad <fmoenne-@student.le-101.fr> | 2020-09-17 17:27:13 +0200 |
commit | a223de42f7a9a81972d9cd14a46f34e4c5ab617e (patch) | |
tree | 5e681007a68a55e5ad7561a938192235ca171f01 /src/c_keys.c | |
parent | multiligne prototype et plus de leaks (diff) | |
download | 42-minishell-a223de42f7a9a81972d9cd14a46f34e4c5ab617e.tar.gz 42-minishell-a223de42f7a9a81972d9cd14a46f34e4c5ab617e.tar.bz2 42-minishell-a223de42f7a9a81972d9cd14a46f34e4c5ab617e.tar.xz 42-minishell-a223de42f7a9a81972d9cd14a46f34e4c5ab617e.tar.zst 42-minishell-a223de42f7a9a81972d9cd14a46f34e4c5ab617e.zip |
norm, new file, ctrl + c
Diffstat (limited to '')
-rw-r--r-- | src/c_keys.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/src/c_keys.c b/src/c_keys.c new file mode 100644 index 0000000..d388d60 --- /dev/null +++ b/src/c_keys.c @@ -0,0 +1,84 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_keys.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/14 17:19:27 by rbousset #+# #+# */ +/* Updated: 2020/02/14 17:19:29 by rbousset ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include <term.h> +#include <libft.h> + +#include "c_init.h" +#include "c_utils.h" +#include "m_prompt.h" + +int16_t + c_ctrl_l(char *line, + t_caps *tcaps, + t_msh *msh) +{ + tputs(tgetstr("cl", NULL), 1, ft_putchar); + m_prompt_psx(1, msh); + c_redraw_line(line, tcaps, msh); + return (1); +} + +int16_t + c_home_key(t_caps *tcaps) +{ + uint16_t i; + + i = tcaps->cpos; + while (i > 0) + { + tputs(tgetstr("le", NULL), 1, ft_putchar); + i--; + } + tcaps->cpos = 0; + return (1); +} + +int16_t + c_end_key(uint16_t size, t_caps *tcaps) +{ + uint16_t i; + + i = tcaps->cpos; + while (i < size) + { + tputs(tgetstr("nd", NULL), 1, ft_putchar); + i++; + } + tcaps->cpos = size; + return (1); +} + +int16_t + c_key_right(uint32_t len, + t_caps *tcaps) +{ + if (tcaps->cpos < len) + { + tputs(tgetstr("nd", NULL), 1, ft_putchar); + tcaps->cpos++; + } + return (1); +} + +int16_t + c_key_left(uint32_t len, + t_caps *tcaps) +{ + (void)len; + if (tcaps->cpos >= 1) + { + tputs(tgetstr("le", NULL), 1, ft_putchar); + tcaps->cpos--; + } + return (1); +} |