/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* c_input.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 #include #include "c_init.h" #include "m_prompt.h" #include "m_loop.h" #include "s_struct.h" uint16_t c_get_win_size(struct winsize *ws) { if (!(ioctl(STDOUT_FILENO, TIOCGWINSZ, ws))) return (-1); if (!ws->ws_col) ws->ws_col = 80; if (!ws->ws_row) ws->ws_row = 80; return (1); } char *c_delchar(char *str, uint16_t cpos) { char *dst; uint16_t i; uint16_t j; j = 0; i = 0; if (!(dst = malloc((ft_strlen(str)) * sizeof(char)))) return (NULL); ft_printf("%d\n", cpos); while (j < (ft_strlen(str) - 1)) { if (i == cpos) i++; dst[j] = str[i]; i++; j++; } dst[j] = '\0'; ft_printf("dst : [%s]\n", dst); return (dst); } /* TODO: pos += 1 lettre / -1 si kl / +1 kr del*/ int16_t c_redraw_line(char *line, uint16_t cpos, t_msh *msh) { uint32_t i; int16_t ret; i = 0; (void)cpos; tputs(tgetstr("cr", NULL), 1, ft_putchar); while (i < ft_strlen(msh->ps[0])) { tputs(tgetstr("nd", NULL), 1, ft_putchar); i++; } ret = ft_printf("%s, %hu", line, cpos) + ft_strlen(msh->ps[0]); return (ret); }