Esempio n. 1
0
int				ft_setvar(char ***aarr, char *key, char *val)
{
	size_t			i;
	int				len;
	char			*tmp;
	char			**arr;

	i = 0;
	len = ft_strlen(key);
	tmp = ft_setvar_prepare(key, val);
	if (tmp == NULL)
		return (1);
	if (!aarr || *aarr == NULL)
		return (ft_arradd(aarr, tmp));
	arr = *aarr;
	while (arr[i] != NULL)
	{
		if (ft_strncmp(arr[i], key, len) == 0 && arr[i][len] == '=')
		{
			ft_strdel(&(arr[i]));
			arr[i] = tmp;
			return (0);
		}
		i++;
	}
	return (ft_arradd(aarr, tmp));
}
Esempio n. 2
0
void ft_setenv(t_env **env)
{
	char **split;

	if (array_size((*env)->av) > 1)
		if (ft_strchr((*env)->av[1], '=') != NULL)
		{
			split = ft_strsplit((*env)->av[1], '=');
			if (is_env(*env, split[0]) != -1)
				ft_replaceenv(&(*env), split, (*env)->av[1]);
			else
				(*env)->e = ft_arradd((*env)->e, (*env)->av[1]);
		}
		else
		{
			if (is_env(*env, split[0]) == -1)
				{
					split[0] = ft_strjoin(split[0], "=");
					(*env)->e = ft_arradd((*env)->e, split[0]);
				}		
		}
	else
		ft_putendl("Usage : setenv KEY=VALUE");
}