int main() { char current_char = EOF; int char_index = 0; while ((current_char = getchar()) != EOF) { if (current_char == '\t') { for (; char_index < get_tab_size(char_index); ++char_index) { putchar(' '); } } else if (current_char == '\n') { char_index = 0; putchar('\n'); } else { putchar(current_char); } ++char_index; } return 0; }
char *autocomp_word(char *str, char *path) { struct dirent *rd; DIR *rep; int i; char **tb; i = -1; if (!str) return (ft_select(autocomp_all(path))); if ((i = get_tab_size(path, str) == 0)) return (str); if (!(tb = (char**)malloc(sizeof(char*) * i + 1))) ft_exit("Malloc error"); if (!(rep = opendir(path))) ft_exit("Opendir failed"); i = -1; while ((rd = readdir(rep))) if (!(ft_strncmp(str, rd->d_name, ft_strlen(str)))) tb[++i] = ft_strdup(rd->d_name); if (i == -1) { ft_arrfree(&tb); return (str); } tb[i + 1] = NULL; closedir(rep); if (tb[1] && tb[1][0] == '\0') return (tb[0]); return (ft_select(tb)); }