Esempio n. 1
0
int			ft_open(t_var *v, char *file, int fd)
{
	char	*line;
	char	*buf;

	if ((fd = open(file, O_RDONLY)) == -1)
	{
		v->err = 1;
		return (1);
	}
	buf = ft_strnew(1);
	while ((v->err = get_next_line(fd, &line)) > 0)
	{
		buf = ft_strjoin2(ft_strjoin2(buf, line), "\n");
		free(line);
		v->line_nb++;
	}
	if (v->err == -1)
	{
		v->err = 2;
		return (1);
	}
	v->map = ft_strsplit(buf, '\n');
	if (ft_file_error(v->line_nb, buf, v) == 1)
		return (1);
	free(buf);
	return (0);
}
Esempio n. 2
0
size_t				ptr_conv(va_list *ap, int *i, t_opt *data)
{
	uint64_t		*address;
	char			*str;
	size_t			nbr;

	str = NULL;
	address = va_arg(*ap, void *);
	if (address == 0 && data->flags[1] == 0)
	{
		str = ft_strnew(1);
		str[0] = '0';
	}
	else
		str = ft_itoa_base((uint64_t)address, 16);
	str = apply_prec(data, str);
	str = ft_strjoin2("0x", str);
	str = apply_uoptions(data, str);
	str = apply_minsize(data, str);
	ft_putstr(str);
	*i = *i + 1;
	nbr = ft_strlen(str);
	ft_strdel(&str);
	return (nbr);
}
Esempio n. 3
0
int		get_next_line(int fd, char **line)
{
	static t_info	f;
	char			buff[BUFF_SIZE + 1];

	if (fd == -1)
		return (-1);
	if (!f.s)
		f.s = ft_strdup("");
	if (f.s[0] == '\n')
		return (split_tmp2(&f, line));
	else if (!(f.i = ft_strchr_len(f.s, '\n')))
	{
		while ((f.ret = read(fd, buff, BUFF_SIZE)) > 0)
		{
			buff[f.ret] = '\0';
			f.s = ft_strjoin2(f.s, buff, f.ret);
			if ((f.i = ft_strchr_len(f.s, '\n')))
				return (split_tmp(&f, line));
			else if (f.s[0] == '\n')
				return (split_tmp2(&f, line));
		}
	}
	else
		return (split_tmp(&f, line));
	return (f.ret);
}
Esempio n. 4
0
void	missing_quote(int dquote, t_token *token)
{
	char	*line;

	if (dquote)
	{
		g_handler.len = 8;
		ft_putstr("\033[31mdquote>\033[m ");
	}
	else
	{
		g_handler.len = 7;
		ft_putstr("\033[31mquote>\033[m ");
	}
	line = reader(IN, g_handler.hist);
	ft_strjoin2(&token->value, "\n");
	ft_strjoin2(&token->value, line);
	free(line);
	parse_string(&token);
	g_handler.len = 0;
}