Пример #1
0
static char		*get_next_word(const char *s, char c)
{
	size_t		length;
	char		*word;
	int			i;

	i = 0;
	length = ft_strlen_char(s, c);
	if (!(word = (char*)malloc(length + 1)))
		return (NULL);
	while (*s && *s != c)
		word[i++] = *s++;
	word[i] = '\0';
	return (word);
}
Пример #2
0
t_lst		*init_lst(char **env)
{
	t_lst	*node;
	t_lst	*head;

	head = NULL;
	while (*env)
	{
		node = (t_lst *)malloc(sizeof(t_lst));
		if (!node)
			return (NULL);
		node->next = NULL;
		node->line = ft_strdup(*env);
		node->name = ft_strsub(*env, 0, ft_strlen_char(*env, '='));
		if (ft_strccmp(*env, "USER="******"HOME=", 5) == 0)
			node->home = ft_strchr(*env, '/');
		push_node(node, &head);
		env++;
	}
	return (head);
}
Пример #3
0
void	list_remove(t_list **list, char *str)
{
	t_list	*it;
	t_list	*previous;

	it = *list;
	previous = 0;
	while (it != NULL)
	{
		if (ft_strnequ(it->str, str, ft_strlen_char(it->str, '=')) == 1)
		{
			if (previous)
				previous->next = it->next;
			else
				*list = it->next;
			free(it->str);
			free(it);
			return ;
		}
		previous = it;
		it = it->next;
	}
	ft_erreur(BUILTIN_UNSETENV, ERR_NON_EXISTING_KEY, str);
}