Beispiel #1
0
int			glob_strncmp(char *s1, char *s2, size_t n)
{
	size_t	i;
	size_t	y;
	char	*bracket;

	if (n == 0 || init_strncmp(&i, &y, s1, s2) != -1)
		return (n);
	while (s1[i] != '\0' && i < n)
	{
		if (s2[y] == '[')
		{
			y++;
			bracket = make_bracket(s2, y);
			if (bracket == NULL)
				return (1);
			if ((ft_strchr(bracket, s1[i])) == NULL)
				return (free_bracket(bracket));
			free(bracket);
			while (s2[y] != ']')
				y++;
		}
		else if (s1[i] != s2[y] && s2[y] != '?')
			return ((unsigned char)s1[i] - (unsigned char)s2[y]);
		incrementation(&i, &y);
	}
	return (0);
}
long	*vector_incrementation(char *s)
{
	long	*v;
	int		nr;
	int		i;
	int		k;

	v = (long*)malloc(sizeof(long) * ft_strlen(s));
	nr = 0;
	i = 0;
	k = 0;
	while (s[i])
	{
		if (s[i] == '(')
		{
			ft_strcpy(s + i, s + i + 1);
			k = k + 2;
		}
		if (s[i] == ')')
		{
			k = k - 2;
			ft_strcpy(s + i, s + i + 1);
		}
		v[nr++] = incrementation(s[i], k);
		i++;
	}
	return (v);
}