Ejemplo n.º 1
0
void		ft_strarray_add_first(char ***ar, char *str)
{
	char	**ret;
	char	*s;
	int		i;

	ret = NULL;
	i = 0;
	ret = (char **)ft_memalloc(sizeof(char *) * (ft_strarray_len(*ar) + 2));
	s = (char *)ft_memalloc(sizeof(char) * ct_w(*ar, str));
	if (ret && s && str)
	{
		ret[0] = s;
		while (*str)
			*s++ = *str++;
		*s++ = '\0';
		while ((*ar)[i])
		{
			ret[i + 1] = s;
			ft_strcpy(s, (*ar)[i]);
			s += ft_strlen(ret[i + 1]) + 1;
			i++;
		}
		ft_strarray_del(ar);
		*ar = ret;
	}
}
Ejemplo n.º 2
0
int		ftls_parse_cli_args_osx(t_env *e, int ac, char **av)
{
	int		i;
	int		j;
	char	c;
	char	**buf;

	if (!(buf = ft_strarray_dup(av)))
		return (1);
	if ((c = ft_parse_options_keep_doubles(buf, e->supported_option,
					&(e->cli_option))))
		return (ftls_print_error_illegal_option(e, av[0], c));
	if (!(e->cli_notopt = (char**)ft_memalloc(sizeof(char*) * (ac + 1))))
		return (1);
	i = 0;
	j = -1;
	while (++i < ac)
	{
		if (buf[i][0] && (e->iscli = 1) && ftls_isfile(buf[i], e->progname, 1))
			e->cli_notopt[++j] = ft_strdup(buf[i]);
		else if (!ft_strlen(buf[i]) && !ft_strlen(av[i]))
			exit(ft_printf("%s: fts_open: No such file or directory\n", av[0]));
	}
	ft_strarray_del(&buf);
	return (0);
}
Ejemplo n.º 3
0
void		sv_receive_command(t_sv_prop *sv, int cl)
{
	int 	rd;
	int		ret_cmd;

	if ((rd = E(-1, recv(CL_SOCK(cl), sv->fds[cl].rd, BUF_SIZE, 0), ERR_RECV, NO_EXIT)) > 0)
	{
		printf("[sv_receive_command] [client : %d] [commande : %s] [lu : %d]\n", cl, sv->fds[cl].rd, rd);
		sv->cmd->cmda = lexer(sv->fds[cl].rd);
		ret_cmd = execute(sv, cl);
		if (!ret_cmd)
			pterr(ERR_CMD_NOT_FOUND);
		ft_strarray_del(&(sv->cmd->cmda));
		//ft_bzero(sv->fds[cl].rd, rd);
		ft_bzero(sv->fds[cl].rd, BUF_SIZE + 1);		
	}
	else
		clean_fd(&(sv->fds[cl]));
}