Example #1
0
void	ft_loop(t_env *env)
{
	char	*line;
	char	**cmds;
	char	**args;
	int		status;

	status = 1;
	ft_getenv("USER", &env->username, &env);
	ft_printf("\033c");
	while (status)
	{
		ft_printf("[%s]$>", env->username);
		get_next_line(0, &line);
		cmds = ft_splitcommands(line);
		while (*cmds)
		{
			args = ft_split(*cmds);
			status = ft_execute(args, &env);
			if (status == 0)
				break ;
			cmds++;
		}
	}
	free(env->username);
}
Example #2
0
static int		parse_polygon_components(
					const char **tokens,
					t_polygon *new_polygon)
{
	int			i;
	int			nt;
	char		**ctokens;

	i = 0;
	if (!tokens_are_enough(tokens, 3))
		parser_die("A face must declare at least three vertices.");
	while (tokens[i])
	{
		nt = 0;
		if (strstr(tokens[i], "//"))
			nt = 1;
		ctokens = ft_split(tokens[i], "/\n");
		if (!add_vertex((const char **)ctokens, nt, new_polygon->vertices))
		{
			ft_free_tab(ctokens);
			return (0);
		}
		++i;
		ft_free_tab(ctokens);
	}
	return (1);
}
Example #3
0
void			ft_cd(char *buf, t_params *p)
{
	char	**av;
	char	*new_dir;
	int		ret;
	int		size;

	ret = 0;
	av = ft_split(buf);
	new_dir = NULL;
	size = av_size(av);
	if (size > 2)
		ft_putendl("cd: syntax error");
	else if (size == 1 || (size == 2 && !ft_strcmp(av[1], "~")))
		new_dir = ft_strdup(p->home);
	else
		new_dir = get_newdir(p, av[1]);
	if (new_dir && !(ret = check_path(new_dir)) && !chdir(new_dir))
		update_env(p, new_dir);
	else if (new_dir && !(ret = check_path(new_dir)) && chdir(new_dir) == -1)
		ft_print_error("cd: not a directory: ", av[1]);
	if (new_dir && ret && av[1])
		improper_path(ret, av[1]);
	ft_strdel(&new_dir);
	del_av(av);
}
int     main(int ac, char **av)
{
  char  **tab;

  if(ac == 2)
  {
    tab = ft_split(av[1]);
    tab = ft_sorttab(tab, av[1]);
    ft_showtab(tab, av[1]);
  }
  write(1, "\n", 1);
  return (0);
}
Example #5
0
void	rostring(char *str)
{
	int i;
	char **dest;

	i = 1;
	dest = ft_split(str);
	while (dest[i])
	{
		ft_putstr(dest[i++]);
		ft_putchar(' ');
	}
	ft_putstr(dest[0]);
	while (*dest)
		free(*dest++);
}
Example #6
0
int			parse_line(char *line)
{
	char	**tokens;
	int		(*parse_function)(const char **);

	if (!(tokens = ft_split(line, " \t\n")))
		return (0);
	parse_function = get_parse_func(tokens[0]);
	if (!parse_function)
	{
		puts(tokens[0]);
		ft_free_tab(tokens);
		parser_die("Unknown data type.");
	}
	(*parse_function)((const char **)(tokens + 1));
	ft_free_tab(tokens);
	return (1);
}
Example #7
0
int	main(void)
{
	char str[99] = "abcDDdefgDD";
	char charset[99] = "DD";
	int i;
	char **mat;

//	printf("%d\n", ft_check(str, charset, 9));
//	printf("%d\n", ft_strlen_tw(str, charset));
	i = 0;
	mat = ft_split(str, charset);
	while (mat[i])
	{
		printf("%s\n", mat[i]);
		i++;
	}
	return (0);
}
t_pipe			*ft_make_pipelst(char *str)
{
	char	*s;
	char	**arr;
	t_pipe	*start;
	int		i;

	i = 0;
	start = NULL;
	s = ft_strtrim(str);
	free(str);
	arr = ft_split(s);
	free(s);
	while (arr[i] != '\0')
	{
		make_list_item(arr[i], &start);
		free(arr[i]);
		i++;
	}
	free(arr[i]);
	free(arr);
	return (start);
}