summaryrefslogtreecommitdiffstats
path: root/src/c_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/c_init.c')
-rw-r--r--src/c_init.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/c_init.c b/src/c_init.c
index 7296a2b..66e0541 100644
--- a/src/c_init.c
+++ b/src/c_init.c
@@ -66,9 +66,9 @@ c_read_cap(char *buf,
t_msh *msh)
{
if ((*((unsigned int *)buf)) == LEFT_K)
- return (c_key_left(ft_strlen(line), ft_strlen(msh->ps[0]), tcaps));
+ return (c_key_left(ft_strlen(line), ft_strlen(msh->ps[tcaps->psx]), tcaps));
else if ((*((unsigned int *)buf)) == RIGHT_K)
- return (c_key_right(ft_strlen(line), ft_strlen(msh->ps[0]), tcaps));
+ return (c_key_right(ft_strlen(line), ft_strlen(msh->ps[tcaps->psx]), tcaps));
else if ((*((unsigned int *)buf)) == HOME_K)
return (c_home_key(tcaps));
else if ((*((unsigned int *)buf)) == END_K)
@@ -81,7 +81,7 @@ c_read_cap(char *buf,
return (0);
}
-char
+static char
*c_process_key(char *buf,
t_caps *tcaps,
t_msh *msh)
@@ -102,17 +102,18 @@ char
tcaps->cpos++;
}
else if ((*((unsigned int *)buf)) == DEL_K)
- c_back_slash(&line, ft_strlen(msh->ps[0]), tcaps);
- else if (buf[0] == '\n')
- return (c_new_line(line, tcaps, msh));
+ c_back_slash(&line, ft_strlen(msh->ps[tcaps->psx]), tcaps);
else
c_read_cap(buf, line, tcaps, msh);
+ if (buf[0] == '\n')
+ return (c_new_line(line, tcaps, msh));
return (NULL);
}
int16_t
c_init_tcaps(int32_t fd,
char **line,
+ uint8_t psx,
t_msh *msh)
{
t_caps tcaps;
@@ -123,9 +124,9 @@ c_init_tcaps(int32_t fd,
if (!tgetent(NULL, term))
return (-1);
c_get_struct(1, &tcaps);
- c_init_line(&tcaps);
+ c_init_line(psx, &tcaps);
tputs(tgetstr("cr", NULL), 1, ft_putchar);
- m_prompt_psx(1, msh);
+ m_prompt_psx(psx, msh);
ft_bzero(nread, 5);
if (!(c_get_win_size(&tcaps.ws)))
return (-1);