int get_next_line(int const fd, char **line) { int ret; char *temp; static char *save; char *buff; buff = ft_strnew(BUFF_SIZE + 1); save = (save == NULL) ? ft_strnew(1) : save; if (buff == NULL || BUFF_SIZE <= 0 || line == NULL) return (-1); ret = 42; while ((ft_strchr(save, '\n') == NULL) && ret > 0) { if ((ret = read(fd, buff, BUFF_SIZE)) == -1) return (-1); buff[ret] = '\0'; temp = save; save = ft_strjoin(save, buff); ft_strdel(&temp); } ft_norm(&buff, line, &save, ret); if (ret == 0 && *line[0] == '\0') return (0); save = ft_stock(save); return (1); }
void ft_reput_prompt(int a) { ft_reset(); tputs(tgetstr("do", NULL), 1, ft_putonterm); tputs(tgetstr("cr", NULL), 1, ft_putonterm); tputs(tgetstr("cd", NULL), 1, ft_putonterm); ft_prompt(ft_stock(NULL, 1)); ft_strclr(g_e.buff); g_e.i = 0; (void)a; }
int main(int argc, char **argv) { if (argc == 2) ft_check(ft_stock(argv[1])); return (0); }