char *init_read_cmd(char *cmd, t_param *param) { if (mod_raw(param->fd_tty) == EXIT_FAILURE) { my_putstr("Error mod_raw termcap\n", 2, -1); return (NULL); } my_putstr(param->str_prompt, 1, -1); if (SIZE_BUFFER <= 0 || (cmd = malloc(sizeof(char) * SIZE_BUFFER)) == NULL) return (NULL); my_memset(cmd, SIZE_BUFFER, '\0'); cmd[0] = '\0'; param->pos = 0; param->pos_history = 0; return (cmd); }
static char *my_read_dyn(t_history *list) { struct termios save; struct termios t; char *cmd; if (tcgetattr(0, &save) == -1) return (NULL); t = save; if (mod_raw(&t) == -1) return (NULL); cmd = loop(list); if (tcsetattr(0, TCSANOW, &save) == -1) return (NULL); my_putchar('\r', 1); pars_ps1(g_data->env); return (cmd); }