summaryrefslogtreecommitdiffstats
path: root/src/c_keys.c
diff options
context:
space:
mode:
authorsalad <fmoenne-@student.le-101.fr>2020-09-17 17:27:13 +0200
committersalad <fmoenne-@student.le-101.fr>2020-09-17 17:27:13 +0200
commita223de42f7a9a81972d9cd14a46f34e4c5ab617e (patch)
tree5e681007a68a55e5ad7561a938192235ca171f01 /src/c_keys.c
parentmultiligne prototype et plus de leaks (diff)
download42-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.c84
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);
+}