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;
}
Example #2
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));
}