From 47fb7c22f8c9d75058c2a7471bd2be3b76145ff2 Mon Sep 17 00:00:00 2001
From: salad <fmoenne-@student.le-101.fr>
Date: Fri, 18 Dec 2020 16:30:40 +0100
Subject: nolik

---
 src/c_ctrls.c | 3 ++-
 src/c_ctrls.h | 2 +-
 src/c_init.c  | 4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)

(limited to 'src')

diff --git a/src/c_ctrls.c b/src/c_ctrls.c
index af0528e..485fb94 100644
--- a/src/c_ctrls.c
+++ b/src/c_ctrls.c
@@ -24,11 +24,12 @@
 #include "s_destroy.h"
 #include "u_utils.h"
 
-short	c_ctrl_d(t_msh *msh)
+short	c_ctrl_d(char *line, t_msh *msh)
 {
 	int tmp;
 
 	c_set_term_raw(0);
+	free(line);
 	write(STDERR_FILENO, "exit\n", 5);
 	u_eof_fd(msh->fd);
 	m_dump_hist(msh->curr_hist_ptr, msh);
diff --git a/src/c_ctrls.h b/src/c_ctrls.h
index 337a6f5..714f26b 100644
--- a/src/c_ctrls.h
+++ b/src/c_ctrls.h
@@ -19,7 +19,7 @@
 void	c_signal_int(int signo);
 void	c_signal_ign(int signo);
 short	c_ctrl_l(char *line, t_caps *tcaps, t_msh *msh);
-short	c_ctrl_d(t_msh *msh);
+short	c_ctrl_d(char *line, t_msh *msh);
 char	*c_ctrl_c(char **line, char *buf, t_msh *msh);
 
 #endif
diff --git a/src/c_init.c b/src/c_init.c
index cea3cce..c5c2dea 100644
--- a/src/c_init.c
+++ b/src/c_init.c
@@ -72,7 +72,7 @@ static short
 		return (c_ctrl_l(line, tcaps, msh));
 	else if ((*((unsigned int *)buf)) == CTRL_D &&
 			line[0] == '\0')
-		return (c_ctrl_d(msh));
+		return (c_ctrl_d(line, msh));
 	return (0);
 }
 
@@ -125,7 +125,7 @@ char
 static char
 	*c_process_key(char **line, char *buf, t_caps *tcaps, t_msh *msh)
 {
-	if (ft_isprint(buf[0]))
+	if (ft_isprint(buf[0]) && *line != NULL)
 		c_add_char(line, buf, tcaps);
 	else if (((*((unsigned int *)buf)) == UP_K) ||
 			((*((unsigned int *)buf)) == CTRL_P) ||
-- 
cgit v1.2.3