Ejemplo n.º 1
0
static void		s_strcal(char **s, long n)
{
	if (n < 0)
	{
		ft_straddchar(s, '-');
		n = n * -1;
	}
	if (n < 10)
	{
		ft_straddchar(s, '0' + n);
	}
	else
	{
		s_strcal(s, n / 10);
		ft_straddchar(s, '0' + n % 10);
	}
}
Ejemplo n.º 2
0
static void		s_point(long t, long int pprec, long prec, char **str)
{
	prec = (prec == -1) ? 6 : prec;
	ft_straddchar(str, '.');
	--prec;
	while (t < pprec / 10 && prec > 0)
	{
		--prec;
		pprec /= 10;
		ft_straddchar(str, '0');
	}
	s_strcal_p(str, t, &prec);
	while (prec > 0)
	{
		ft_straddchar(str, '0');
		--prec;
	}
}
Ejemplo n.º 3
0
static void		s_strcal_p(char **s, long n, long *prec)
{
	if (n < 0)
	{
		ft_straddchar(s, '-');
		n = n * -1;
	}
	if (n < 10)
	{
		ft_straddchar(s, '0' + n);
	}
	else
	{
		--(*prec);
		s_strcal_p(s, n / 10, prec);
		ft_straddchar(s, '0' + n % 10);
	}
}
Ejemplo n.º 4
0
static char			*get_cmd(char **argv, int i)
{
	int		i_2;
	char	*cmd;

	if (!(cmd = ft_strnew(1)))
		return (NULL);
	i_2 = 0;
	while (argv[i])
	{
		while (argv[i][i_2])
		{
			ft_straddchar(&cmd, argv[i][i_2]);
			i_2++;
		}
		if (argv[i + 1])
			ft_straddchar(&cmd, ' ');
		i_2 = 0;
		i++;
	}
	return (cmd);
}
Ejemplo n.º 5
0
int			split_back_quote(char ***args, char **tmp, char *str, int i)
{
	ft_straddchar(tmp, '`');
	i++;
	while (str[i] && str[i] != '`')
	{
		if (str[i] == '\\' && (str[i + 1] == '`'))
		{
			i++;
			ft_straddchar(tmp, str[i++]);
		}
		else
			ft_straddchar(tmp, str[i++]);
	}
	if (*tmp && *tmp[0])
	{
		ft_straddchar(tmp, '`');
		i++;
		*args = add_and_free_double(*tmp, (*args));
	}
	return (i);
}
Ejemplo n.º 6
0
char		*builtin_echo_escape_sequence_x(char *s, int *i)
{
	char	*sub;
	char	*ret;
	size_t	j;
	int		n;

	sub = ft_strsub(s, 0, 2);
	n = ft_ahtoi(sub);
	ret = NULL;
	j = 0;
	while (ft_isdigit(sub[j]) || s_is_alpha(sub[j]))
		++j;
	*i += (j + 1);
	ft_strdel(&sub);
	ft_straddchar(&ret, n);
	return (ret);
}
Ejemplo n.º 7
0
static void			splitnext(t_list *ret, char *str, char **tmp, char c)
{
	int				index;

	index = 0;
	if (!ft_cinstr(str, c))
		ft_strfusion(tmp, &str);
	else
		while (str[index])
		{
			if (str[index] == c)
			{
				ret = ft_listadd(ret, *tmp);
				*tmp = STR_EMPTY;
			}
			else
				ft_straddchar(tmp, str[index]);
			index++;
		}
}