From 296f228966acfe2c645a750b6f8c3fed9bddf615 Mon Sep 17 00:00:00 2001 From: salad Date: Fri, 6 Nov 2020 23:13:26 +0100 Subject: c_ctrls --- src/c_ctrls.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/c_ctrls.c (limited to 'src/c_ctrls.c') diff --git a/src/c_ctrls.c b/src/c_ctrls.c new file mode 100644 index 0000000..2f066d6 --- /dev/null +++ b/src/c_ctrls.c @@ -0,0 +1,55 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* c_ctrls.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rbousset +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/14 17:19:27 by rbousset #+# #+# */ +/* Updated: 2020/02/14 17:19:29 by rbousset ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include +#include +#include +#include + +#include "c_ctrls.h" +#include "c_utils.h" +#include "m_prompt.h" + +short 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); +} + +char *c_ctrl_c(char **line, char *buf, t_msh *msh) +{ + msh->ret = 130; + buf[0] = '\n'; + write(1, "\n", 1); + ft_memdel((void**)line); + return (ft_strdup("\0")); +} + +void c_signal_int(int signo) +{ + t_msh *msh; + + msh = NULL; + signal(SIGINT, c_signal_int); + (void)signo; + msh->ret = 130; + ioctl(1, TIOCSTI, "\002"); +} + +void c_signal_ign(int signo) +{ + signal(SIGINT, c_signal_int); + (void)signo; + signal(SIGTSTP, SIG_IGN); +} -- cgit v1.2.3